BACKGROUND OF THE INVENTION
Field of the Invention
[0001] The present invention relates to security of computer networks, and deals more particularly
with methods, systems, computer program products, and methods of doing business whereby
access to a wireless network is controlled based on a device's presence within a spatial
boundary. The disclosed techniques may also be used for determining whether devices
remain within a spatial boundary.
Description of the Related Art
[0002] US Patents 5,924,034 and 5,592,180 describe examples of conventional wireless networks.
[0003] "WiFi" (for "wireless fidelity") or "Wi-Fi"® is the label commonly applied to devices
following the Institute of Electrical and Electronics Engineers ("IEEE") 802.11b specification.
This abbreviation is taken from the logo of an industry interoperability group (Wireless
Ethernet Compatibility Alliance, Inc., or "WECA", also known as the Wi-Fi Alliance)
that certifies compliant products. ("Wi-Fi" is a registered trademark of Wireless
Ethernet Compatibility Alliance, Inc.) WiFi technology allows a raw wireless data
transmission rate of approximately 11 Mbps at indoor distances from several dozen
to several hundred feet, and outdoor distances of several to tens of miles using an
unlicensed portion of the 2.4 GHz band in 14 overlapped channels.
[0004] While two modes of operation are possible, namely peer-to-peer and network, most
WiFi installations use the network form where an "access point" serves as a hub bridging
client adapters to one another and to a wired network, often using Network Address
Translation ("NAT") technology. See Fig. 1, where this configuration is illustrated.
When a client wants to join a network hosted by an access point, it must first synchronize
with that network by performing the following synchronization protocol steps. First,
to establish initial communications, it either listens for a "beacon" sent periodically
by the access point or sends a "probe" and awaits a response. Next, the client undergoes
an authentication process with the access point. If that is successful, the client
proceeds to an association process which sets up a logical session over which higher-layer
protocols and data may flow. At any point thereafter, either the access point or the
client may terminate the association, shutting down further data communications. After
the association is terminated, no further data communication can occur until the aforementioned
synchronization protocol is repeated to join the network anew.
[0005] The world of WiFi is no longer confined to expensive-gadget-happy geeks, but is being
embraced by everyday people who love the convenience of being mobile. Mass production
has made access points and client adapters so inexpensive that WiFi is being widely
used for networking in many places, including homes and small offices, replacing the
high-cost special wiring of the past and allowing folks to easily move their computing
workspace on a moment-to- moment whim. As the majority of users purchasing commodity-priced
WiFi gear are non- technical, they have no insight to the underlying technology nor
do they understand the side effects of its use.
[0006] Unfortunately, WiFi has also attracted the hacker fringe, who view its deployment
as an invitation to steal access to the Internet and/or locally-available services.
The poor security which has been identified in WiFi's standard protocols (see, for
example, "Wireless networks wide open to hackers" by Robert Lemos, which may be found
on the Internet at http://news.com.com/2100-1001-269853.html?tag=bplst), coupled with
cheap ways to intercept the radio signals miles outside the nominal 300 foot service
radius (see "Antenna on the Cheap" by Rob Flickenger, located on the Internet at http://www.oreillynet.com/cs/weblog/view/wlg/448)
has opened the barn door to even the lowly budget-strapped high school "script kiddy".
With this trend, new terms for wireless hacking have emerged, such as "War Driving"
and "Warchalking". War driving is the activity of locating WiFi networks that can
easily be tapped from a laptop in a car. (See "WAR DRIVING" by Sandra Kay Miller,
located on the Internet at http://www.infosecuritymag.com/articles/november01/technology_wardriving.s
html, for an article on this topic.). warchalking is the practice of marking the presence
of WiFi networks (for example, on the side of a building where a WiFi network is detected
by a "war driver", or on the sidewalk in front of the building) so they are easy to
locate without a device such as the $6.45 "Pringles" can antenna (described in the
above-mentioned "Antenna on the Cheap" article) used by the war drivers.
[0007] What is needed is a way of improving security in WiFi networks to prevent intrusion
by unauthorized devices. The solution must be easy to set up, even in a home environment,
and must not require changes to the WiFi standards or to existing client device adapters.
SUMMARY OF THE INVENTION
[0008] An object of the present invention is to improve security in WiFi networks.
[0009] Another object of the present invention is to provide security improvements for WiFi
networks by establishing a spatial boundary around a WiFi network and rejecting network
traffic from devices outside the boundary.
[0010] A further object of the present invention is to provide improvements to WiFi networks
that are easy to set up, even in a home environment, and that do not require changes
to the WiFi standards or to existing client device adapters.
[0011] Other objects and advantages of the present invention will be set forth in part in
the description and in the drawings which follow and, in part, will be obvious from
the description or may be learned by practice of the invention.
[0012] In accordance with the present invention, there is now provided a method of controlling
access to a wireless local area network ("WLAN"), comprising steps of: receiving,
at a first device on the WLAN, measurement data from a plurality of measurement points
on the WLAN, wherein the measurement data for each measurement point comprises a reading
for a client device, the reading observed by a plurality of antenna elements of the
measurement point, the antenna elements being capable of determining an angle to a
source of radio transmission; computing, by the first device, a current location of
the client device using the received measurement data; determining, by the first device,
whether the current location of the client device is within a predetermined spatial
boundary; and allowing the client device to access the WLAN only if its current location
is determined to be within the predetermined spatial boundary.
[0013] Viewing the present invention from another aspect, there is now provided A system
for controlling access to a wireless local area network ("WLAN"), comprising: means
for receiving, at a first device on the WLAN, measurement data from a plurality of
measurement points on the WLAN, wherein the measurement data for each measurement
point comprises a reading for a client device, the reading observed by a plurality
of antenna elements of the measurement point, the antenna elements being capable of
determining an angle to a source of radio transmission; means for computing, by the
first device, a current location of the client device using the received measurement
data; means for determining, by the first device, whether the current location of
the client device is within a predetermined spatial boundary; and means for allowing
the client device to access the WLAN only if its current location is determined to
be within the predetermined spatial boundary.
[0014] Viewing the present invention from yet another aspect, there is now provided A computer
program product for controlling access to a wireless local area network ("WLAN"),
the computer program product embodied on one or more computer readable media readable
by a computing system in a computing environment and comprising: computer-readable
program code means for receiving, at a first device on the WLAN, measurement data
from a plurality of measurement points on the WLAN, wherein the measurement data for
each measurement point comprises a reading for a client device, the reading observed
by a plurality of antenna elements of the measurement point, the antenna elements
being capable of determining an angle to a source of radio transmission; computer-readable
program code means for computing, by the first device, a current location of the client
device using the received measurement data; computer-readable program code means for
determining, by the first device, whether the current location of the client device
is within a predetermined spatial boundary; and computer-readable program code means
for allowing the client device to access the WLAN only if its current location is
determined to be within the predetermined spatial boundary.
[0015] To achieve the foregoing objects, and in accordance with the purpose of the invention
as broadly described herein, the present invention provides methods, systems, and
computer program products for controlling access to wireless networks. In a preferred
embodiment, this technique comprises: receiving, at a first device on the wireless
local area network ("WLAN"), measurement data from a plurality of measurement points
on the WLAN, wherein the measurement data for each measurement point comprises a reading
for a client device, the reading observed by a plurality of antenna elements of the
measurement point, the antenna elements being capable of determining an angle to a
source of radio transmission; computing, by the first device, a current location of
the client device using the received measurement data; determining, by the first device,
whether the current location of the client device is within a predetermined spatial
boundary; and allowing the client device to access the WLAN only if its current location
is determined to be within the predetermined spatial boundary. Preferably, the first
device also functions as one of the plurality of measurement points that observes
readings for the client device. The measurement data may be received for a plurality
of client devices, in which case the determination is preferably made for each such
client device.
[0016] The received measurement data preferably identifies the client device using an association
identifier, and is preferably stored in a data structure at the first device. The
computation of the client device's current location may be performed when measurement
data has been received from each of the measurement points (or from more than one
of the measurement points), when a collection interval expires at the first device,
or when newly- received measurement data for the client device is detected in the
data structure.
[0017] The first device may poll each of the measurement points for their measurement data,
in which case the received measurement data is received in response to this polling.
[0018] The reading in the measurement data for each measurement point preferably comprises
a measurement of an angular relationship between the client device and the antenna
elements of the measurement point, the angular relationship having been observed for
a particular transmission from the client device. The measurement of the angular relationship
may be a phase angle for the measurement point, and in this case, the computation
for a 2-dimensional space preferably further comprises: determining a first vector
where the client device could be located using the phase angle for the measurement
point plus or minus a tolerance of the measurement point, or using the phase angle
for the measurement point plus 180 degrees, plus or minus the tolerance of the measurement
point; determining a second vector where the client device could be located using
the phase angle for a different measurement point plus or minus a tolerance value
of the different measurement point, or using the phase angle for the different measurement
point plus 180 degrees, plus or minus the tolerance value of the different measurement
point; and computing an intersection zone of the first and second vectors, wherein
the intersection zone indicates the client device's approximate position in the 2-dimensional
space. For a 3- dimensional space, an additional (third) vector is similarly computed,
using the phase angle for a third measurement point plus or minus a tolerance value
of the third measurement point (and where the phase angle for the first and second
vectors may not consider the plus 180 degrees possibility), and the intersection zone
is then computed from the first, second, and third vectors to indicate the client
device's approximate position in the 3-dimensional space.
[0019] The first device preferably learns the predetermined spatial boundary at set-up time,
where this preferably comprises: moving a training client device around a spatial
boundary while the training client device communicates with a set-up application in
the first device; recording, by the set-up application, successive locations of the
training client device from these communications; and using, by the set-up application,
the successive locations to define the predetermined spatial boundary.
[0020] The present invention may also be provided as a method whereby a service is offered
to clients for monitoring access to their wireless LAN. This service may be provided
under various revenue models, such as pay-per-use billing, monthly or other periodic
billing, and so forth.
[0021] The present invention will now be described with reference to the following drawings,
in which like reference numbers denote the same element throughout.
BRIEF DESCRIPTION OF THE DRAWINGS
[0022]
Fig. 1 depicts devices in a simple wireless network configuration, according to the
prior art;
Fig. 2 illustrates a plurality of remote wireless sensors and a base station, also
referred to herein as "measurement points", deployed in a wireless network for determining
a client device's location according to preferred embodiments of the present invention;
Fig. 3 shows several client devices that may attempt to access the wireless network
of Fig. 2;
Figs. 4, 6, and 8 provide flowcharts depicting logic that may be used to implement
preferred embodiments of the present invention;
Fig. 5 illustrates how angular measurements at two measurement points may suffice
to narrow the spatial position of a transmission source to an intersection zone, according
to preferred embodiments of the present invention; and
Fig. 7 shows an example of a data structure that may be used at the base station to
store measurements from the various measurement points, for a plurality of client
devices.
DESCRIPTION OF PREFERRED EMBODIMENTS
[0023] Security of wireless networks is improved by rejecting traffic from a wireless device
located outside a defined spatial boundary. The device's spatial position with respect
to the boundary is determined using multiple directional antenna arrays and calculating
where the vectors intersect. Problems of prior art approaches are solved by the present
invention, which provides a novel application of existing technologies.
[0024] Most client adapters in existing devices use omni-directional antennas. However,
in addition to the significant attenuation of the radio signal as it passes through
intervening objects like walls and furniture, these so-called omni-directional antennas
exhibit significant variations in gain patterns, i.e., they are not really omni-directional.
Thus, the signal strength seen at a receiver is of no use in determining the distance
to the transmitter.
[0025] The present invention overcomes problems of the prior art using a modified WiFi access
point (also called a "base station") and at least two remote wireless sensors, all
participating in the WiFi network to be protected, and preferably deployed in an equilateral
triangle configuration. See Fig. 2. These devices are referred to herein as "measurement
points". Each measurement point is equipped with a directional antenna capable of
determining the angle to the source of radio transmissions. By intersecting the directional
vectors measured at each measurement point, the present invention determines the spatial
position of devices attempting to access the network, and classifies them as being
inside or outside a defined boundary. See Fig. 3. Devices inside the boundary are
allowed to connect to the network (assuming, of course, that the previously-discussed
synchronization protocol completes successfully), while devices outside the boundary
are not.
[0026] Preferred embodiments of the present invention use an antenna array at each measurement
point to determine the angular direction of the client's transmission. An "antenna
array" is any prior-art arrangement of antenna elements capable of discerning the
directionality of a radio signal. (That is, the measurement point's directional antenna
may be a single antenna comprised of multiple antenna elements in an array, or a plurality
of antennas that are individually not directional but which are directional when used
together as an array.) In simple wireless networks such as a single-occupant house
or an office building, two-element arrays at each measurement point may suffice to
define a 2-dimensional boundary. For more complex arrangements where a 3-dimensional
spatial boundary is needed, each measurement point can employ a multiple-element array
to measure the angle of the received signals in 3 dimensions.
[0027] The base station, upon receiving angular readings from each measurement point for
a given association (i.e., for a given client session with the base station), computes
the client's position with respect to a defined boundary. If this position falls outside
the defined boundary, the base station terminates the association, forcing the client
to re-authenticate before it can receive or send layer three data. This process is
described in more detail below, with reference to Fig. 6.
[0028] Each measurement point is equipped with an antenna array that intercepts radio transmissions
from client devices. The processing of a client transmission at a measurement point
is illustrated by logic in Fig. 4. Upon detecting a transmission (Block 400), the
measurement point preferably measures the angular relationship between the signal
source and the antenna array (Block 410), decodes the WiFi packet to extract the client
association identifier (Block 420), locates an appropriate slot in a buffer corresponding
to the association (Block 430), and saves the angular value in that slot (Block 440).
The angular relationship may be determined using suitable prior art techniques such
as phase angle, which may be implemented using a digital signal processor or other
suitable hardware/software combination.
[0029] To prevent excessive communications overhead between the base station and the other
measurement points and to reduce the base station's processing load, the measurement
points preferably collect, sort, and reduce instantaneous readings over a short period,
say a few seconds. For every unique association seen in client transmissions, the
measurement point then reports a single, most-recent angle for this association to
the base station. This reporting process is illustrated in Fig. 4, where Block 450
tests to see if the reporting is triggered. (For example, when a timer is used to
measure the preferably-short reporting period, Block 450 comprises determining whether
the timer has popped.) If so, then the measurement point transmits saved values for
one or more associations to the base station (Block 460). Alternatively, the processing
of Blocks 450 and 460 may be separated from the processing of Blocks 400 - 440. (For
example, a separate thread may be used for implementing the reporting.) In this case,
the reporting may occur independently of receiving a client transmission.
[0030] The diagram in Fig. 5 depicts how angular measurements at two measurement points,
each having a plurality of antenna elements capable of determining an angle to a source
of radio transmission, may suffice to narrow the spatial position of a transmission
source to an intersection zone. Depending on the type of antenna array employed, it
may not be possible to know the precise angle. The phase angle method in preferred
embodiments of the present invention can determine a vector (e.g., vector a), where
the transmitter could be located at a degrees +/- some tolerance, with respect to
an individual antenna array. (Depending on the antenna array in use, the phase angle
method might only be able to determine that the transmitter is either at a degrees,
plus or minus some tolerance, or at a + 180 degrees, plus or minus the same tolerance.)
The intersection of these vectors from the two measurement points forms an "intersection
zone", where this intersection zone indicates the transmitter's approximate position
in a 2-dimensional space.
[0031] To a define 2-dimensional planar boundary, e.g., using 3 measurement points, ideally
the measurement points are positioned in an equilateral triangle with vertices near
the defined boundary. Figs. 2 and 3 illustrate a circular boundary using a dotted
line. In this example, the cell phone and laptop devices would be prevented from accessing
the network, since they are outside the spatial boundary, but the pager device would
be allowed access. Preferably, each measurement point's antenna array is oriented
approximately 60 degrees from the other two measurement points' antenna arrays.
[0032] With less-than-ideal arrangements, the spatial tolerance becomes less precise. The
tolerance will vary with the angle to an antenna array and between the devices. In
preferred embodiments, each measurement point reports its observed angles as if they
are perfect, i.e., having a zero tolerance; however, each measured angle is affected
by the tolerance (i.e., variance) of its antenna. In a typical implementation using
mass-marketed antennas, the tolerance angle is likely a function of the type of antenna
array, and thus may be defined as a constant or configurable value to be used by the
base station when computing client positions. Alternatively, an implementation may
allow for the measurement points to transmit their tolerance angle to the base station,
if it is known. It should be noted that the tolerance angle need not be uniform among
measurement points. Instead, each measurement point simply needs a tolerance angle
that is reasonable, i.e., not too large, and that is known by or available to the
base station.
[0033] To determine the transmitter's position in a 3-dimensional space (e.g., a suite within
an office building), preferred embodiments use three measurement points and intersect
three vectors. A larger number of measurement points can be used, if desired.
[0034] The remote measurement points are themselves WiFi clients and at regular short intervals
transmit their measurement data (a list of association, angle pairs) to the base station.
There are numerous ways to encode and to synchronize the transmissions from the remote
measurement points, and the scope of the present invention is not limited by choice
of a particular approach. One approach that may be used will now be described with
reference to logic in Fig. 6.
[0035] On receiving measurement data from a remote measurement point (Block 600), the base
station stores this data in a table or similar data structure (Block 610). Recall
that, in preferred embodiments, the base station itself hosts an additional measurement
point, and thus locally-received input (which may be processed by the base station,
in its role as a measurement point, using logic in Fig. 4) is also stored in this
table. (Alternatively, an additional remote measurement point might replace the base
station in its role of observing and reporting device locations, without deviating
from the scope of the present invention.) Preferably, the rows of the table correspond
to client associations observed during a measurement interval. The first column contains
the association identifier. Additional columns correspond to each measurement point.
See Fig. 7, where a sample table is illustrated. In this sample table 700, the association
identifier is stored in column 705, the data observed by the base station itself is
stored in column 710, and data reported by two remote measurement points ("MP1" and
"MP2") is stored in columns 715 and 720, respectively. Additional columns may be added
for implementations using more than three measurement points.
[0036] Returning to the discussion of Fig. 6, the base station checks (Block 620) to see
if it is time to process the table entries. If not, control returns to Block 600 to
await input from another measurement point. Otherwise, Block 630 processes this table
to determine each client's position. Block 640 compares the client position to the
defined boundary, and if the client is outside the boundary, this association is terminated
(Block 650). In either case, control preferably returns to Block 600.
[0037] In one aspect, the test in Block 620 is timer-driven. For example, a collection interval
may be defined, and the table entries that have been collected during this interval
are then processed when the collection interval expires. One way in which this aspect
may be implemented is illustrated by logic in Fig. 8. Upon receipt of data from a
measurement point, a time stamp is preferably associated with the data as it is recorded
in an augmented version of the table of Fig. 7 (Block 610'). This time stamp may be
the arrival time at the base station, or in alternative implementations it may be
a time stamp reported by the measurement point. (In the latter case, a reliable clock-synchronizing
algorithm is preferably used to synchronize the clocks of the various measurement
points. Clock-synchronizing algorithms are known in the art, and do not form part
of the inventive concepts of the present invention.)
[0038] Block 620' comprises checking to see if more than one measurement point (including
the base station) has reported data during the current collection interval. The collection
interval is preferably a predefined constant (or a configurable parameter), and should
be small enough so that if a client is mobile (e.g., in a car or being carried by
a person), it cannot have travelled very far during the interval. The collection interval
should also be greater than or equal to the reporting interval used by the measurement
points, so that if the measurement points report at different times, data from multiple
measurement points will be available within a single collection interval. Thus, if
the test in Block 620' has a negative result, control returns to Block 600 of Fig.
6 to await measurements from other measurement points within this collection interval.
When data is available from multiple measurement points for this collection interval,
on the other hand, Block 800 locates all such data (and may remove stale entries from
the table, or may simply discard any measurements that fall outside the current interval),
and this data is used in Block 630 of Fig. 6 when computing the client's position.
[0039] In another aspect, the test in Block 620 and the subsequent table-processing logic
may be separated from the receipt of measurement data in Block 600, such that the
determination of whether the table should be processed is independent of receiving
new input data. In one approach within this aspect, the test in Block 620 has a positive
result upon expiration of a timer (which preferably coincides with the collection
interval). As another approach, a continuous looping process may be used. In this
case, the test in Block 620 has a positive result when a measurement point has reported
new data (and at least one other measurement is available).
[0040] In a further aspect, a demand-driven protocol may be used, whereby the base station
periodically polls the measurement points for their input on a particular association.
The logic in Fig. 6 may then be used for processing the responses from the measurement
points. In this aspect, the test in Block 620 preferably comprises determining whether
each polled measurement point has reported its data.
[0041] A key advantage of the present invention is ease of setup. When deploying the system,
there is no need to precisely position the measurement points. They are simply placed
at approximately equal angles near the defined boundary, with each measurement point's
directional antenna aimed toward the center of the protected area. Setup can be accomplished
with very simple instructions that almost anyone can follow, even if they have very
little (or no) technical expertise.
[0042] Preferably, the defined boundary is learned at set-up time by carrying a client device
around the intended boundary while communicating with a set-up application in the
base station. With the remote reporting interval having been set to a very small value,
the base station learns the angular coordinates of the boundary with respect to the
measurement points, but need not know the actual dimensions involved (since it does
not know the scale of distance involved). Setting the reporting interval to a larger
or smaller value (and/or altering the speed of movement of the client device) during
this set-up process allows a base station to learn a boundary at a different level
of granularity.
[0043] Prior art software approaches are known which attempt to use relative signal strength
triangulation to locate wireless local area network ("WLAN") clients. As one example,
the Positioning Engine from Ekahau, Inc. is a commercially-available product that
may be used for tracking device locations in a WLAN. While this product offers a number
of advantages, because of signal attenuation and device transmission characteristics,
extensive mapping of the entire area of coverage may be needed to produce highly-accurate
results. (Accurate results require using client adapters whose relative characteristics
to the device used in the mapping are known. That is, the transmitted power or effective
radiated power from the attached or built-in antenna, at various angles, must be known,
since this approach relies on signal strength.) This approach also needs multiple
full-wired access points (at least three), and changing the content of the area monitored
(for example, moving furniture around) requires a recalibration. For each interior
mapped point, location coordinates are needed to pair with the signal strength readings.
[0044] The present invention uses a different approach, as described in detail above. It
does not rely on signal strength and hence on client adapter/antenna characteristics.
The present invention is not impacted by the content (e.g., furniture, walls, books,
etc.) of the monitored area or changes to that content. The training process used
in preferred embodiments comprises simply walking the boundary, without needing to
tell the system where the moving device is at each measurement. The remote sensing
device uses the WLAN to report readings, and therefore does not need multiple access
points.
[0045] The present invention has been described with reference to its use in determining
whether mobile devices are inside or outside a spatial boundary. However, this is
for purposes of illustration and not of limitation. The inventive techniques described
herein may be used for devices that are stationary devices as well (including a mobile
device that has become stationary). The present invention may also be used to ensure
that one or more devices remain within a defined spatial boundary. For example, a
theft-prevention system may be implemented in an office setting, retail store, warehouse,
etc. using techniques disclosed herein, Suppose that an electronics store wishes to
prevent thefts of relatively-expensive wireless gadgets. The devices can be defined
as participants in a WLAN. An enumerated list of these devices can be created, and
a system using techniques disclosed herein can then test for the devices on this list
remaining within the defined boundary (e.g., the showroom and/or stockroom). If a
device that is supposed to be within the store moves outside the boundary, instead
of rejecting its participation in the wireless network (as described above with reference
to Blocks 640 and 650 of Fig. 6), the base station might activate an audible alarm
or perhaps send a signal to the device to cause it to sound its own alarm, flash lights,
etc. Similarly, the continued presence of wireless devices at a museum, trade show,
hotel, office, or other business location can be monitored in the same manner. Guests
can therefore use the devices while visiting the premises, but are effectively discouraged
from removing the devices from that location.
[0046] Another application of the disclosed techniques is to disable the functionality of
a wireless device if the device crosses a defined boundary. For example, a cryptographic
key might be transmitted from the base station to a wireless device periodically,
allowing the device to "unlock" its software and render that software usable. If the
device moves outside the boundary, the base station ceases transmitting the key. The
device may then continue to work from an electrical standpoint, but the absence of
the key causes the software to just stop working.
[0047] These and other applications are within the scope of the present invention.
[0048] The present invention may be provided as method(s) of doing business. For example,
a business entity may provide a service that monitors access to a WLAN using techniques
disclosed herein. This service may be provided under various revenue models, such
as pay-per- use billing, monthly or other periodic billing, and so forth.
[0049] While preferred embodiments have been described with reference to radio-based wireless
(i.e., WiFi or 802.11b) networks, this is for purposes of illustration but not of
limitation; the disclosed techniques may be applied to other types of wireless networks
as well.
[0050] As will be appreciated by one of skill in the art, embodiments of the present invention
may be provided as methods, systems, or computer program products. Accordingly, the
present invention may take the form of an entirely hardware embodiment, an entirely
software embodiment (augmented by the antennas and measurement point devices and adapters),
or an embodiment combining software and hardware aspects. Furthermore, the present
invention may be embodied in a computer program product which is embodied on one or
more computer-usable storage media (including, but not limited to, disk storage, CD-ROM,
optical storage, and so forth) having computer-usable program code embodied therein.
[0051] The present invention has been described with reference to flowchart illustrations
and/or block diagrams of methods, apparatus (systems), and computer program products
according to embodiments of the invention. It will be understood that each block of
the flowchart illustrations and/or block diagrams, and combinations of blocks in the
flowchart illustrations and/or block diagrams, can be implemented by computer program
instructions. These computer program instructions may be provided to a processor of
a general purpose computer, special purpose computer, embedded processor, or other
programmable data processing apparatus to produce a machine, such that the instructions
(which execute via the processor of the computer or other programmable data processing
apparatus) create means for implementing the functions specified in the flowchart
and/or block diagram block or blocks.
[0052] These computer program instructions may also be stored in one or more computer-readable
memories, where each such memory can direct a computer or other programmable data
processing apparatus to function in a particular manner, such that the instructions
stored in the computer-readable memory produce an article of manufacture including
instruction means which implement the function specified in the flowchart and/or block
diagram block or blocks.
[0053] The computer program instructions may also be loaded onto one or more computers or
other programmable data processing apparatus to cause a series of operational steps
to be performed on the computers or other programmable apparatus to produce, on each
such device, a computer implemented process such that the instructions which execute
on the device provide steps for implementing the functions specified in the flowchart
and/or block diagram block or blocks.
[0054] While preferred embodiments of the present invention have been described, additional
variations and modifications in those embodiments may occur to those skilled in the
art once they learn of the basic inventive concepts. Therefore, it is intended that
the appended claims shall be construed to include the preferred embodiments and all
such variations and modifications as fall within the scope of the invention.
1. A method of controlling access to a wireless local area network ("WLAN"), comprising
steps of:
receiving, at a first device on the WLAN, measurement data from a plurality of measurement
points on the WLAN, wherein the measurement data for each measurement point comprises
a reading for a client device, the reading observed by a plurality of antenna elements
of the measurement point, the antenna elements being capable of determining an angle
to the client device;
computing, by the first device, a current location of the client device using the
received measurement data;
determining, by the first device, whether the current location of the client device
is within a predetermined spatial boundary; and
allowing the client device to access the WLAN only if its current location is determined
to be within the predetermined spatial boundary.
2. The method according to Claim 1, wherein the first device also functions as one of
the plurality of measurement points that observes readings for the client device.
3. The method according to Claim 1, wherein the received measurement data identifies
the client device using an association identifier.
4. The method according to Claim 1, wherein the received measurement data from each measurement
point is stored in a data structure at the first device.
5. The method according to Claim 1, wherein the computing step operates when measurement
data has been received from each of the measurement points.
6. The method according to Claim 1, wherein the computing step operates when a collection
interval expires at the first device.
7. The method according to Claim 4, wherein the computing step operates when newly- received
measurement data for the client device is detected in the data structure.
8. The method according to Claim 1, wherein the computing step operates when measurement
data has been received from more than one of the measurement points.
9. The method according to Claim 1, wherein the first device polls each of the measurement
points for their measurement data, and wherein the received measurement data is received
in response to this polling.
10. The method according to Claim 1, wherein the reading in the measurement data for each
measurement point comprises a measurement of an angular relationship between the client
device and the antenna elements of the measurement point, the angular relationship
having been observed for a particular transmission from the client device.
11. The method according to Claim 10, wherein the measurement of the angular relationship
is a phase angle for the measurement point, and wherein the computing step further
comprises steps of:
determining a first vector where the client device could be located using the phase
angle for the measurement point plus or minus a tolerance of the measurement point,
or using the phase angle for the measurement point plus 180 degrees, plus or minus
the tolerance of the measurement point;
determining a second vector where the client device could be located using the phase
angle for a different measurement point plus or minus a tolerance value of the different
measurement point, or using the phase angle for the different measurement point plus
180 degrees, plus or minus the tolerance value of the different measurement point;
and
computing an intersection zone of the first and second vectors, wherein the intersection
zone indicates the client device's approximate position in a 2-dimensional space.
12. The method according to Claim 10, wherein the measurement of the angular relationship
is a phase angle for the measurement point, and wherein the computing step further
comprises steps of:
determining a first vector where the client device could be located using the phase
angle for the measurement point plus or minus a tolerance of the measurement point;
determining a second vector where the client device could be located using the phase
angle for a second measurement point plus or minus a tolerance value of the second
measurement point;
determining a third vector where the client device could be located using the phase
angle for a third measurement point plus or minus a tolerance value of the third measurement
point; and
computing an intersection zone of the first, second, and third vectors, wherein the
intersection zone indicates the client device's approximate position in a 3-dimensional
space.
13. The method according to Claim 1, wherein the measurement data is received at the first
device from the measuring points, for a plurality of client devices, and wherein the
computing, determining, and allowing steps are performed for each of the client devices.
14. The method according to Claim 1, wherein the first device learns the predetermined
spatial boundary at set-up time, further comprising steps of:
moving a training client device around a spatial boundary while the training client
device communicates with a set-up application in the first device;
recording, by the set-up application, successive locations of the training client
device from these communications; and
using, by the set-up application, the successive locations to define the predetermined
spatial boundary.
15. A method of controlling access to a wireless local area network ("WLAN"), comprising
steps of:
monitoring access to the WLAN by a plurality of client devices according to the method
of claim 1;
if the monitoring step determines that the current location of the particular client
device is within the predetermined spatial boundary, allowing the client device to
access the WLAN; and
charging a fee for carrying out the monitoring and allowing steps
16. A system for controlling access to a wireless local area network ("WLAN"), comprising:
means for receiving, at a first device on the WLAN, measurement data from a plurality
of measurement points on the WLAN, wherein the measurement data for each measurement
point comprises a reading for a client device, the reading observed by a plurality
of antenna elements of the measurement point, the antenna elements being capable of
determining an angle to the client device;
means for computing, by the first device, a current location of the client device
using the received measurement data;
means for determining, by the first device, whether the current location of the client
device is within a predetermined spatial boundary; and
means for allowing the client device to access the WLAN only if its current location
is determined to be within the predetermined spatial boundary.
17. A computer program product for controlling access to a wireless local area network
("WLAN"), the computer program product embodied on one or more computer readable media
readable by a computing system in a computing environment and comprising:
computer-readable program code means which, when loaded onto and executed by a programmable
data processing apparatus, cause the apparatus to perform a method as claimed in any
of claims 1 to 15.
1. Verfahren zur Steuerung des Zugriffs auf ein drahtloses lokales Netzwerk (wireless
local area network "WLAN"), das die folgenden Schritte umfasst:
an einer ersten Einheit in dem WLAN Empfangen von Messdaten von einer Vielzahl von
Messpunkten in dem WLAN, wobei die Messdaten für jeden Messpunkt einen Messwert für
eine Client-Einheit umfassen, wobei der Messwert von einer Vielzahl von Antennenelementen
des Messpunkts ermittelt wird, wobei die Antennenelemente einen Winkel zu der Client-Einheit
ermitteln können;
Berechnen eines aktuellen Standorts der Client-Einheit durch die erste Einheit unter
Verwendung der empfangenen Messdaten;
Feststellen durch die erste Einheit, ob sich der aktuelle Standort der Client-Einheit
innerhalb einer vorher festgelegten räumlichen Grenze befindet; und
Gestatten des Zugriffs auf das WLAN durch die Client-Einheit nur dann, wenn festgestellt
wird, dass sich ihr aktueller Standort innerhalb der vorher festgelegten räumlichen
Grenze befindet.
2. Verfahren nach Anspruch 1, wobei die erste Einheit auch die Funktion von einem der
Vielzahl der Messpunkte hat, der Messwerte für die Client-Einheit ermittelt.
3. Verfahren nach Anspruch 1, wobei die empfangenen Messdaten die Client-Einheit mit
Hilfe einer Zuordnungskennung ausweisen.
4. Verfahren nach Anspruch 1, wobei die von jedem Messpunkt empfangenen Messdaten in
einer Datenstruktur an der ersten Einheit gespeichert werden.
5. Verfahren nach Anspruch 1, wobei der Schritt der Berechnung durchgeführt wird, wenn
von jedem der Messpunkte Messdaten empfangen worden sind.
6. Verfahren nach Anspruch 1, wobei der Schritt der Berechnung durchgeführt wird, wenn
an der ersten Einheit ein Erfassungsintervall abläuft.
7. Verfahren nach Anspruch 4, wobei der Schritt der Berechnung durchgeführt wird, wenn
in der Datenstruktur neu empfangene Messdaten für die Client-Einheit festgestellt
werden.
8. Verfahren nach Anspruch 1, wobei der Schritt der Berechnung durchgeführt wird, wenn
von mehr als einem der Messpunkte Messdaten empfangen worden sind.
9. Verfahren nach Anspruch 1, wobei die erste Einheit jeden der Messpunkte nach seinen
Messdaten abfragt und wobei die empfangenen Messdaten als Reaktion auf diese Abfrage
empfangen werden.
10. Verfahren nach Anspruch 1, wobei der Messwert in den Messdaten für jeden Messpunkt
eine Messung einer Winkelbeziehung zwischen der Client-Einheit und den Antennenelementen
des Messpunkts umfasst, wobei die Winkelbeziehung bei einer bestimmten Übertragung,
die von der Client-Einheit erfolgte, ermittelt worden ist.
11. Verfahren nach Anspruch 10, wobei die Messung der Winkelbeziehung ein Phasenwinkel
für den Messpunkt ist und wobei der Schritt der Berechnung des Weiteren die folgenden
Schritte umfasst:
Ermitteln eines ersten Vektors für den möglichen Standort der Client-Einheit, wobei
der Phasenwinkel für den Messpunkt zuzüglich oder abzüglich eines Toleranzwerts des
Messpunkts oder der Phasenwinkel für den Messpunkt plus 180 Grad zuzüglich oder abzüglich
des Toleranzwerts des Messpunkts verwendet wird;
Ermitteln eines zweiten Vektors für den möglichen Standort der Client-Einheit, wobei
der Phasenwinkel für einen anderen Messpunkt zuzüglich oder abzüglich eines Toleranzwerts
des anderen Messpunkts oder der Phasenwinkel für den anderen Messpunkt plus 180 Grad
zuzüglich oder abzüglich des Toleranzwerts des anderen Messpunkts verwendet wird;
und
Berechnen eines Kreuzungsbereichs des ersten Vektors und des zweiten Vektors, wobei
der Kreuzungsbereich die ungefähre Position der Client-Einheit in einem zweidimensionalen
Raum angibt.
12. Verfahren nach Anspruch 10, wobei die Messung der Winkelbeziehung ein Phasenwinkel
für den Messpunkt ist und wobei der Schritt der Berechnung des Weiteren die folgenden
Schritte umfasst:
Ermitteln eines ersten Vektors für den möglichen Standort der Client-Einheit, wobei
der Phasenwinkel für den Messpunkt zuzüglich oder abzüglich eines Toleranzwerts des
Messpunkts verwendet wird;
Ermitteln eines zweiten Vektors für den möglichen Standort der Client-Einheit, wobei
der Phasenwinkel für einen zweiten Messpunkt zuzüglich oder abzüglich eines Toleranzwerts
des zweiten Messpunkts verwendet wird;
Ermitteln eines dritten Vektors für den möglichen Standort der Client-Einheit, wobei
der Phasenwinkel für einen dritten Messpunkt zuzüglich oder abzüglich eines Toleranzwerts
des dritten Messpunkts verwendet wird; und
Berechnen eines Kreuzungsbereichs des ersten Vektors, des zweiten Vektors und des
dritten Vektors, wobei der Kreuzungsbereich die ungefähre Position der Client-Einheit
in einem dreidimensionalen Raum angibt.
13. Verfahren nach Anspruch 1, wobei die Messdaten an der ersten Einheit von den Messpunkten
für eine Vielzahl von Client-Einheiten empfangen werden und wobei der Schritt der
Berechnung, der Schritt der Feststellung und der Schritt des Gestattens des Zugriffs
auf das WLAN für jede der Client-Einheiten durchgeführt werden.
14. Verfahren nach Anspruch 1, wobei die erste Einheit die vorher festgelegte räumliche
Grenze zum Zeitpunkt der Konfiguration erlernt, wobei das Verfahren des Weiteren die
folgenden Schritte umfasst:
Bewegen einer zu Schulungszwecken vorgesehenen Client-Einheit um eine räumliche Grenze,
während die zu Schulungszwecken vorgesehene Client-Einheit mit einer Konfigurationsanwendung
in der ersten Einheit Daten austauscht;
auf der Grundlage der Datenaustausch-Operationen Aufzeichnen von aufeinander folgenden
Standorten der zu Schulungszwecken vorgesehenen Client-Einheit durch die Konfigurationsanwendung;
und
Verwenden der aufeinander folgenden Standorte durch die Konfigurationsanwendung, um
die vorher festgelegte räumliche Grenze zu bestimmen.
15. Verfahren zur Steuerung des Zugriffs auf ein drahtloses lokales Netzwerk ("WLAN"),
das die folgenden Schritte umfasst:
Überwachen des Zugriffs auf das WLAN durch eine Vielzahl von Client-Einheiten gemäß
dem Verfahren nach Anspruch 1;
wenn in dem Schritt der Überwachung festgestellt wird, dass sich der aktuelle Standort
der jeweiligen Client-Einheit innerhalb der vorher festgelegten räumlichen Grenze
befindet, Gestatten des Zugriffs auf das WLAN durch die Client-Einheit; und
Erheben einer Gebühr für die Durchführung des Schritts der Überwachung und des Schritts
des Gestattens des Zugriffs auf das WLAN.
16. System zur Steuerung des Zugriffs auf ein drahtloses lokales Netzwerk ("WLAN"), das
Folgendes umfasst:
ein Mittel, um an einer ersten Einheit in dem WLAN Messdaten von einer Vielzahl von
Messpunkten in dem WLAN zu empfangen, wobei die Messdaten für jeden Messpunkt einen
Messwert für eine Client-Einheit umfassen, wobei der Messwert von einer Vielzahl von
Antennenelementen des Messpunkts ermittelt wird, wobei die Antennenelemente einen
Winkel zu der Client-Einheit ermitteln können;
ein Mittel, um einen aktuellen Standort der Client-Einheit durch die erste Einheit
unter Verwendung der empfangenen Messdaten zu berechnen;
ein Mittel, um durch die erste Einheit festzustellen, ob sich der aktuelle Standort
der Client-Einheit innerhalb einer vorher festgelegten räumlichen Grenze befindet;
und
ein Mittel, um der Client-Einheit den Zugriff auf das WLAN nur dann zu gestatten,
wenn festgestellt wird, dass sich ihr aktueller Standort innerhalb der vorher festgelegten
räumlichen Grenze befindet.
17. Rechnerprogrammprodukt zur Steuerung des Zugriffs auf ein drahtloses lokales Netzwerk
("WLAN"), wobei sich das Rechnerprogrammprodukt auf einem oder mehreren rechnerlesbaren
Datenträgern befindet, die von einem Datenverarbeitungssystem in einer Datenverarbeitungsumgebung
gelesen werden können, und wobei das Rechnerprogrammprodukt Folgendes umfasst:
rechnerlesbare Programmcode-Mittel, die, wenn sie in eine programmierbare Datenverarbeitungsvorrichtung
geladen und von ihr ausgeführt werden, die Vorrichtung veranlassen, ein Verfahren
nach einem der Ansprüche 1 bis 15 durchzuführen.
1. Un procédé pour commander l'accès à un réseau local sans fil ("WLAN"), comprenant
les étapes consistant à :
recevoir, à un premier dispositif sur le WLAN, des données de mesure venant d'une
pluralité de points de mesure sur le WLAN, dans lequel les données de mesure pour
chaque point de mesure comprennent une lecture pour un dispositif client, la lecture
étant observée par une pluralité d'éléments d'antenne du point de mesure, les éléments
d'antenne étant capables de déterminer un angle par rapport au dispositif client ;
calculer, par le premier dispositif, un emplacement actuel du dispositif client, en
utilisant les donnée de mesure reçues ;
déterminer, par le premier dispositif, le fait que l'emplacement actuel du dispositif
client se trouve dans une limite spatiale prédéterminée ;
2. Le procédé selon la revendication 1, dans lequel le premier dispositif sert également
d'un de la pluralité des points de mesure, observant des lectures pour le dispositif
client.
3. Le procédé selon la revendication 1, dans lequel les données de mesure ayant été reçues
identifient le dispositif client, par utilisation d'un identificateur d'association.
4. Le procédé selon la revendication 1, dans lequel les données de mesure, reçues pour
chaque point de mesure, sont stockées dans une structure de données au premier dispositif.
5. Le procédé selon la revendication 1, dans lequel l'étape de calcul est effectuée lorsque
les données de mesure ont été reçues de chacun des points de mesure.
6. Le procédé selon la revendication 1, dans lequel l'étape de calcul est effectuée lorsqu'un
intervalle de collecte expire au niveau du premier dispositif.
7. Le procédé selon la revendication 4, dans lequel l'étape de calcul est effectuée lorsque
des données de mesure nouvellement reçues, pour le dispositif client, sont détectées
dans la structure de données.
8. Le procédé selon la revendication 1, dans lequel l'étape de calcul est effectuée lorsque
des données de mesure ont été reçues de plus d'un des points de mesure.
9. Le procédé selon la revendication 1, dans lequel le premier dispositif de mesure scrute
chacun des points de mesure au sujet de leurs données de mesure, et dans lequel les
données de mesure reçues le sont en réponse à cette scrutation.
10. Le procédé selon la revendication 1, dans lequel la lecture dans les données de mesure,
pour chaque point de mesure, comprend une mesure d'une relation angulaire entre le
dispositif client et les éléments d'antenne du point de mesure, la relation angulaire
ayant été observée pour une transmission particulière par le dispositif client.
11. Le procédé selon la revendication 10, dans lequel la mesure de la relation angulaire
est un angle de phase pour le point de mesure, et dans lequel l'étape de calcul comprend
en outre les étapes consistant à :
déterminer un premier vecteur auquel le dispositif client pourrait être situé, en
utilisant l'angle de phase pour le point de mesure, plus ou moins une tolérance du
point de mesure, ou utiliser l'angle de phase pour le point de mesure plus 180 degrés,
plus ou moins la tolérance du point de mesure ;
déterminer un deuxième vecteur, auquel le dispositif client pourrait être situé en
utilisant l'angle de phase pour un point de mesure différent, plus ou moins une valeur
de tolérance du point de mesure différent, ou en utilisant l'angle de phase pour le
point de mesure différent plus 180 degrés, plus ou moins la valeur de tolérance du
point de mesure différent ; et
calculer une zone d'intersection des premier et deuxième vecteurs, dans lequel la
zone d'intersection indique la position approximative du dispositif client, dans un
espace à deux dimensions.
12. Le procédé selon la revendication 10, dans lequel la mesure de la relation angulaire
est un angle de phase pour le point de mesure, et dans lequel l'étape de calcul comprend
en outre les étapes consistant à :
déterminer un premier vecteur auquel le dispositif client pourrait être situé, en
utilisant l'angle de phase pour le point de mesure, plus ou moins une tolérance du
point de mesure ;
déterminer un deuxième vecteur auquel le dispositif client pourrait être situé, en
utilisant l'angle de phase pour un deuxième point de mesure, plus ou moins une valeur
de tolérance du deuxième point de mesure ;
déterminer un troisième vecteur auquel le dispositif client pourrait être situé, en
utilisant l'angle de phase pour un troisième point de mesure, plus ou moins une valeur
de tolérance du troisième point de mesure ; et
calculer une zone d'intersection des premier, deuxième et troisième vecteurs, dans
lequel une zone d'intersection indique la position approximative du dispositif client,
dans un espace à 3 dimensions.
13. Le procédé selon la revendication 1, dans lequel les données de mesure sont reçues
au premier dispositif depuis les points de mesure, pour une pluralité de dispositifs
clients, et dans lequel les étapes de calcul, de détermination et d'autorisation,
sont accomplies pour chacun des dispositifs clients.
14. Le procédé selon la revendication 1, dans lequel le premier dispositif acquiert par
apprentissage la limite spatiale prédéterminée au moment de l'installation, comprenant
en outre les étapes consistant à :
déplacer un dispositif client en apprentissage autour d'une limite spatiale, tandis
que le dispositif client en apprentissage communique avec une application d'installation
dans le premier dispositif ;
enregistrer, par l'application d'installation, des emplacements successifs du dispositif
client en apprentissage, à partir de ces communications ; et
utiliser, par l'application d'installation, les emplacements successifs, afin de définir
la limite spatiale prédéterminée.
15. Un procédé de commande d'accès à un réseau local sans fil ("WLAN"), comprenant les
étapes consistant à :
surveiller l'accès au WLAN par une pluralité de dispositifs clients, selon le procédé
de la revendication 1 ;
si l'étape de surveillance détermine que l'emplacement actuel du dispositif client
particulier est situé dans la limite spatiale prédéterminée, autoriser le dispositif
client accéder au WLAN ; et
imputer une redevance pour l'accomplissement des étapes de surveillance et d'autorisation.
16. Un système d'accès contrôlé à un réseau local sans fil ("WLAN"), comprenant :
des moyens, pour recevoir, à un premier dispositif sur le WLAN, des données de mesure
venant d'une pluralité de points de mesure sur le WLAN, dans lequel les données de
mesure pour chaque point de mesure comprennent une lecture pour un dispositif client,
la lecture, observée par une pluralité d'éléments d'antenne du point de mesure, les
éléments d'antenne étant capables de déterminer un angle par rapport au dispositif
client ;
des moyens, pour calculer, par le premier dispositif, un emplacement actuel du dispositif
client, en utilisant les données de mesure reçues ;
des moyens, pour déterminer par le premier dispositif, si l'emplacement actuel du
dispositif client est dans une limite spatiale prédéterminée; et
des moyens, pour autoriser le dispositif client à accéder au WLAN, uniquement si son
emplacement actuel est déterminé comme étant dans la limite spatiale prédéterminée.
17. Un produit de programme pour ordinateur pour contrôler l'accès à un réseau local sans
fil ("WLAN"), le produit de programme pour ordinateur étant mis en oeuvre dans un
ou plusieurs supports lisibles par ordinateur, lisibles par un système informatique,
dans un environnement de calcul, et comprenant :
des moyens de code de programme lisibles par ordinateur, qui, une fois chargés sur
et exécutés par un dispositif de traitement de données programmables, provoquent la
mise en oeuvre, par le dispositif, d'un procédé, tel que revendiqué à l'une quelconque
des revendications 1 à 15.