|
|
|
| United States Patent | 6105027 |
| Link to this page | http://www.wikipatents.com/6105027.html |
| Inventor(s) | Schneider; David S. (Woodland Hills, CA); Lipstone; Laurence R. (Calabasas, CA); Jensen; Daniel (Van Nuys, CA); Ribet; Michael B. (Oak Brook, IL) |
| Abstract | A scalable access filter that is used together with others like it in a
virtual private network to control access by users at clients in the
network to information resources provided by servers in the network. Each
access filter uses a local copy of an access control data base to
determine whether an access request is made by a user. Changes made by
administrators in the local copies are propagated to all of the other
local copies. Each user belongs to one or more user groups and each
information resource belongs to one or more information sets. Access is
permitted or denied according to of access policies which define access in
terms of the user groups and information sets. The rights of
administrators are similarly determined by administrative policies. Access
is further permitted only if the trust levels of a mode of identification
of the user and of the path in the network by which the access is made are
sufficient for the sensitivity level of the information resource. If
necessary, the access filter automatically encrypts the request with an
encryption method whose trust level is sufficient. The first access filter
in the path performs the access check and encrypts and authenticates the
request; the other access filters in the path do not repeat the access
check. |
|
|
|
Title Information  |
|
|
|
|
|
|
| Publication Date |
August 15, 2000 |
|
|
|
|
|
| Filing Date |
March 4, 1998 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
CROSS REFERENCE TO RELATED PATENT APPLICATIONS
The present patent application claims priority from the provisional
applications Ser. No. 60/039,542, Schneider, et al., Distributed Network
Security, filed Mar. 10, 1997, and Ser. No. 60/040,262, Schneider et al.,
Secure Electronic Network Delivery, also filed Mar. 10, 1997. The present
patent application is further one of four patent applications that have
the same Detailed Description and assignee as the present patent
application and are being filed on the same date. The four applications
are:
U.S. Ser. No. 09/034,507, David Schneider, et al., Distributed
Administration of Access to Information;
U.S. Ser. No. 09/034,503, David Schneider, et al., User Interface for
Accessing Information Resources;
U.S. Ser. No. 09/034,576, David Schneider, et al., Secure Delivery of
Information in a Network; and
U.S. Ser. No. 09/034,587, David Schneider, et al., Scalable Access Filter. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates generally to control of access to data and relates more specifically to control of access to data in a distributed environment.
2. Description of Related Art
The Internet has revolutionized data communications. It has done so by providing protocols and addressing schemes which make it possible for any computer system anywhere in the world to exchange information with any other computer system
anywhere in the world, regardless of the computer system's physical hardware, the kind of physical network it is connected to, or the kinds of physical networks that are used to send the information from the one computer system to the other computer
system. All that is required for the two computer systems to exchange information is that each computer system have an Internet address and the software necessary for the protocols and that there be a route between the two machines by way of some
combination of the many physical networks that may be used to carry messages constructed according to the protocols.
The very ease with which computer systems may exchange information via the Internet has, however, caused problems. On the one hand, it has made accessing information easier and cheaper than it ever was before; on the other hand, it has made it
much harder to protect information. The Internet has made it harder to protect information in two ways:
It is harder to restrict access. If information may be accessed at all via the Internet, it is potentially accessible to anyone with access to the Internet. Once there is Internet access to information, blocking skilled intruders becomes a
difficult technical problem.
It is harder to maintain security en route through the Internet. The Internet is implemented as a packet switching network. It is impossible to predict what route a message will take through the network. It is further impossible to ensure the
security of all of the switches, or to ensure that the portions of the message, including those which specify its source or destination, have not been read or altered en route.
FIG. 1 shows techniques presently used to increase security in networks that are accessible via the Internet. FIG. 1 shows network 101, which is made up of two separate internal networks 103(A) and 103(B) that are connected by Internet 111.
Networks 103(A) and 103(B) are not generally accessible, but are part of the Internet in the sense that computer systems in these networks have Internet addresses and employ Internet protocols to exchange information. Two such computer systems appear in
FIG. 1 as requestor 105 in network 103(A) and server 113 in network 103(b). Requestor 105 is requesting access to data which can be provided by server 113. Attached to server 113 is a mass storage device 115 that contains data 117 which is being
requested by requestor 105. Of course, for other data, server 113 may be the requester and requester 105 the server. Moreover, access is to be understood in the present context as any operation which can read or change data stored on server 113 or
which can change the state of server 113. In making the request, requestor 105 is using one of the standard TCP/IP protocols. As used here, a protocol is a description of a set of messages that can be used to exchange information between computer
systems. The actual messages that are sent between computer systems that are communicating according to a protocol are collectively termed a session. During the session, Requestor 105 sends messages according to the protocol to server 113's Internet
address and server 113 sends messages according to the protocol to requestor 105's Internet address. Both the request and response will travel between internal network 103(A) and 103(B) by Internet 111. If server 113 permits requestor 105 to access the
data, some of the messages flowing from server 113 to requester 105 in the session will include the requested data 117. The software components of server 113 which respond to the messages as required by the protocol are termed a service.
If the owner of internal networks 103(A and B) wants to be sure that only users of computer systems connected directly to networks 103(A and B) can access data 117 and that the contents of the request and response are not known outside those
networks, the owner must solve two problems: making sure that server 113 does not respond to requests from computer systems other than those connected to the internal networks and making sure that people with access to Internet 111 cannot access or
modify the request and response while they are in transit through Internet 111. Two techniques which make it possible to achieve these goals are firewalls and funneling using encryption.
Conceptually, a firewall is a barrier between an internal network and the rest of Internet 111. Firewalls appear at 109(A) and (B). Firewall 109(A) protects internal network 103(A) and firewall 109(B) protects internal network 103(B).
Firewalls are implemented by means of a gateway running in a computer system that is installed at the point where an internal network is connected to the Internet. Included in the gateway is an access filter: a set of software and hardware components in
the computer system which checks all requests from outside the internal network for information stored inside the internal network and only sends a request on into the internal network if it is from a sources that has the right to access the information. Otherwise, it discards the request. Two such access filters, access filter 107(A), and access filter 107(B), appear in FIG. 1.
A source has the right to access the requested information if two questions can be answered affirmatively:
Is the source in fact who or what it claims to be?
Does the source have the right to access the data?
The process of finding the answer to the first question is termed authentication. A user authenticates himself or herself to the firewall by providing information to the firewall that identifies the user. Among such information is the
following:
information provided by an authentication token (sometimes called a smartcard) in the possession of the user;
the operating system identification for the user's machine; and
the IP address and the Internet domain name of the user's machine.
The information that the firewall uses for authentication can either be in band, that is, it is part of the protocol, or it can be out of band, that is, it is provided by a separate protocol.
As is clear from the above list of identification information, the degree to which a firewall can trust identification information to authenticate a user depends on the kind of identification information. For example, the IP address in a packet
can be changed by anyone who can intercept the packet; consequently, the firewall can put little trust in it and authentication by means of the IP address is said to have a very low trust level. On the other hand, when the identification information
comes from a token, the firewall can give the identification a much higher trust level, since the token would fail to identify the user only if it had come into someone else's possession. For a discussion on authentication generally, see S. Bellovin and
W. Cheswick, Firewalls and Internet Security, Addison Wesley, Reading, Mass., 1994.
In modem access filters, access is checked at two levels, the Internet packet, or IP level, and the application level. Beginning with the IP level, the messages used in Internet protocols are carried in packets called datagrams. Each such
packet has a header which contains information indicating the source and destination of the packet. The source and destination are each expressed in terms of IP address and port number. A port number is a number from 1 to 65535 used to individuate
multiple streams of traffic within a computer. Services for well-known Internet protocols (such as HTTP or FTP) are assigned well known port numbers that they `listen` to. The access filter has a set of rules which indicate which destinations may
receive IP packets from which sources, and if the source and destination specified in the header do not conform to these rules, the packet is discarded. For example, the rules may allow or disallow all access from one computer to another, or limit
access to a particular service (specified by the port number) based on the source of the IP packet. There is, however, no information in the header of the IP packet about the individual piece of information being accessed and the only information about
the user is the source information. Access checking that involves either authentication of the user beyond what is possible using the source information or determining whether the user has access to an individual piece of information thus cannot by done
at the IP level, but must instead be done at the protocol level.
Access checking at the application level is usually done in the firewall by proxies. A proxy is a software component of the access filter. The proxy is so called because it serves as the protocol's stand-in in the access filter for the purposes
of carrying out user authentication and/or access checking on the piece of information that the user has requested. For example, a frequently-used TCP/IP protocol is the hyper-text transfer protocol, or HTTP, which is used to transfer World-Wide Web
pages from one computer to another such computer system. If access control for individual pages is needed, the contents of the protocol must be inspected to determine which particular Web page is requested. For a detailed discussion of firewalls, see
the Bellovin and Cheswick reference supra.
While properly-done access filtering can prevent unauthorized access via Internet 111 to data stored in an internal network, it cannot prevent unauthorized access to data that is in transit through Internet 111. That is prevented by means of
tunneling using encryption. This kind of tunneling works as follows: when access filter 107(A) receives an IP packet from a computer system in internal network 103(A) which has a destination address in internal network 103(B), it encrypts the IP packet,
including its header, and adds a new header which specifies the IP address of access filter 107(A) as the source address for the packet and the IP address of access filter 107(B) as the destination address. The new header may also contain authentication
information which identifies access filter 107(A) as the source of the encrypted packet and information from which access filter 107(B) can determine whether the encrypted packet has been tampered with.
Because the original IP packet has been encrypted, neither the header nor the contents of the original IP packet can be read while it is passing through Internet 111, nor can the header or data of the original IP packet be modified without
detection. When access filter 107(B) receives the IP packet, it uses any identification information to determine whether the packet is really from access filter 107(A). If it is, it removes the header added by access filter 107(A) to the packet,
determines whether the packet was tampered with and if it was not, decrypts the packet and performs IP-level access checking on the original header. If the header passes, access filter 107(B) forwards the packet to the IP address in the internal network
specified in the original header or to a proxy for protocol level access control. The original IP packet is said to tunnel through Internet 111. In FIG. 1, one such tunnel 112 is shown between access filter 107(A) and 107(B). An additional advantage
of tunneling is that it hides the structure of the internal networks from those who have access to them only from Internet 111, since the only unencrypted IP addresses are those of the access filters.
The owner of internal networks 103(A) and 103(B) can also use tunneling together with Internet 111 to make the two internal networks 103(A and B) into a single virtual private network (VPN) 119. By means of tunnel 112, computer systems in
network 103(A) and 103(B) can communicate with each other securely and refer to other computers as if network 103(A) and 103(B) were connected by a private physical link instead of by Internet 111. Indeed, virtual private network 119 may be extend ed to
include any user who has access to Internet 111 and can do the following:
encrypt Internet packets addressed to a computer system in an internal network 103 in a fashion which permits an access filter 107 to decrypt them;
add a header to the encrypted packet which is addressed to filter 107; and
authenticate him or herself to access filter 107.
For example, an employee who has a portable computer that is connected to Internet 111 and has the necessary encryption and authentication capabilities can use the virtual private network to securely retrieve data from a computer system in one of
the internal networks.
Once internal networks begin using Internet addressing and Internet protocols and are connected into virtual private networks, the browsers that have been developed for the Internet can be used as well in the internal networks 103, and from the
point of view of the user, there is no difference between accessing data in Internet 111 and accessing it in internal network 103. Internal network 103 has thus become an intranet, that is, an internal network that has the same user interface as
Internet 111. Of course, once all of the internal networks belonging to an entity have been combined into a single virtual private intranet, the access control issues characteristic of the Internet arise again--except this time with regard to internal
access to data. While firewalls at the points where the internal networks are connected to Internet 111 are perfectly sufficient to keep outsiders from accessing data in the internal networks, they cannot keep insiders from accessing that data. For
example, it may be just as important to a company to protect its personnel data from its employees as to protect it from outsiders. At the same time, the company may want to make its World Wide Web site on a computer system in one of the internal
networks 103 easily accessible to anyone who has access to Internet 111.
One solution to the security problems posed by virtual private intranets is to use firewalls to subdivide the internal networks, as well as to protect the internal networks from unauthorized access via the Internet. Present-day access filters
107 are designed for protecting the perimeter of an internal network from unauthorized access, and there is typically
only one access filter 107 per Internet connection. If access filters are to be used within the internal networks, there will be many more of them, and virtual private networks that use multiple present-day access filters 107 are not easily
scalable, that is, in virtual private networks with small numbers of access filters, the access filters are not a serious burden; in networks with large numbers of access filters, they are. Among the problems posed by present-day access filters when
they are present in large numbers in a virtual private network are the following:
Present-day access filters are designed to be centrally-administered by a small number of data security experts. As the number of access filters increases, central administration becomes too slow, too expensive, and too error-prone.
Present-day access filters are designed on the assumption that there are only a small number of access filters between the source and destination for data. Where there are many, the increase in access time and the reduction in access speed
caused by the filters becomes important.
Present-day access filters are designed on the assumption that the Internet side of the filter is completely insecure and the internal network side of the filter is completely secure. In fact, both kinds of networks offer varying degrees of
security. Because security adds overhead, the access filter should neither require nor provide more than is necessary.
Present-day access filters, where they use encryption, require that each access filter know encryption keys for each other access filter. Large numbers of access filters require substantial duplicated effort in key maintenance.
Present-day access filters do not provide any mechanism for giving the user a view of the information resources that corresponds to the user's access rights.
What is needed if intranets and virtual private networks are to achieve their full promise is access filters that do not present the above problems for scalability.
SUMMARY OF THE INVENTION
The claims attached to the present application describe solutions to the problem of speeding up access across a network by a user at a client to an information resource provided by a server when there are a number of access filters in the path
through the network from the client to the server. One solution is an access filter which has an access check confirmer that determines whether another access filter has already made a determination whether the user may request the access. The access
check confirmer causes the access filter to make the determination only if the determination has not been made by another access filter. Having made the determination, the access filter adds authentication information to the access request indicating
that the access filter has made the determination. In one embodiment, the authentication information is inherent in the use of encryption destined for another access filter in the VPN, where all of the access filters in the VPN authenticate each other
via certificates signed by mutually trusted certificate authorities. Encryption may be by one of several methods. The access filter that first handles a request for data selects a method which is sufficient for a sensitivity level of the resource being
accessed. After encrypting the access request, the other access filter adds authentication information as described above.
In another aspect of the invention, each of the access filters has a local copy of access control information and an access checker that uses the local copy to determine whether the user may access the resource. Each access filter further
includes an editor for making changes in the local copy and a change propagator for propagating the changes to others of the plurality of access filters. Included in the local copy of the access control information is information indicating whether a
given user may make a change in a predetermined part of the local copy. The access control information also permits a user who has the right to make a change in the predetermined part of the local copy to delegate that right to another user.
Other objects and advantages of the invention will be apparent to those skilled in the arts to which the invention pertains upon perusing the following Detailed Description and Drawing, wherein:
BRIEF DESCRIPTION OF THE DRAWING
FIG. 1 is an overview of techniques used in prior art to control access of information via the Internet;
FIG. 2 is an overview of a VPN that uses access filters incorporating the techniques disclosed herein;
FIG. 3 is an overview of an access control database that is used in the access filters;
FIG. 4 shows access checking and tunneling in a VPN that uses access filters incorporating the techniques disclosed herein;
FIG. 5 shows access by a "roamer" to information in the VPN;
FIG. 6 is a table used in defining the relationship between sensitivity and trust levels and authentication and encryption techniques;
FIG. 7 is an example of the application of SEND;
FIG. 8 is a flow chart of the policy creation process;
FIG. 9 shows a display used to define user groups;
FIG. 10 shows a display used to define information sets;
FIG. 11 shows a display used to define access policies;
FIG. 12 shows a display used to define an access filter 203;
FIGS. 13A, 13B are a schema of the part of access control database 301 that defines user groups;
FIG. 14 is a schema of the part of access control database 301 that defines information sets;
FIG. 15 is a schema of the part of access control database 301 that defines sites in the VPN and the servers, services, and resources at each site;
FIGS. 16A, 16B are schema of the part of access control database 301 that defines policies;
FIGS. 17A, 17B, 17C are a schema of the part of access control database 301 that defines servers;
FIG. 18 shows the display used in the IntraMap interface;
FIG. 19 shows how changes are made to access control database 301;
FIG. 20 is a detailed block diagram of the architecture of an access filter 203;
FIG. 21 is a diagram of the structure of an MMF file 2303;
FIG. 22 is a diagram of a mess age sent using SKIP;
FIGS. 23A, B, and C are a table of the MMF files employed in a preferred embodiment;
FIG. 24 is a diagram of an implementation of the IntraMap interface; and
FIG. 25 is a diagram illustrating delegation in VPN 201.
The reference numbers in the drawings have at least three digits. The two rightmost digits are reference numbers within a figure; the digits to the left of those digits are the
number of the figure in which the item identified by the reference number first appears. For example, an item with reference number 203 first appears in FIG. 2.
DETAILED DESCRIPTION
The following Detailed Description will first provide an overview of access filters that are easily scalable, of how they are used to control access in intranets, and of how they can be used to construct virtual private networks. Thereupon, the
Detailed Description will provide details of the access control database used in the filters, of the manner in which it is changed and those changes are distributed among the filters, and of the manner in which an individual filter controls access.
A Network with Access Filters that do not Interfere with Scalability: FIG. 2
FIG. 2 shows a virtual private network (VPN) 201 in which access to data is controlled by access filters that are designed to avoid the problems posed by multiple access filters. VPN 201 is made up of four internal networks 103 which are
connected to each other by Internet 121. Also connected to VPN 201 via Internet 121 is a roamer 217, that is, a computer system which is being used by a person who may access data in intranet 201, but is connected to the internal networks only by
Internet 121. Each internal network 103 has a number of computer systems or terminals 209 belonging to users and a number of servers 211 which contain data that may be accessed by users at systems or terminals 209 or by a user at roamer 217. However,
no computer system or terminal 209 or roamer 217 is connected directly to a server 211; instead, each is connected via an access filter 203, so that all references made by a user at a user system to a data item on a server go through at least one access
filter 203. Thus, user system 209(i) is connected to network 213(i), which is connected to access filter 203(a), while server 211(i) is connected to network 215(i), which is also connected to access filter 203(a), and any attempt by a user at user
system 209(i) to access data on server 211(i) goes through access filter 203(a), where it is rejected if the user does not have the right to access the data.
If VPN 201 is of any size at all, there will be a substantial number of access filters 203, and consequently, scaling problems will immediately arise. Access filters 203 avoid these problems because they are designed according to the following
principles:
Distributed access control database. Each access filter 203 has its own copy of the access control database used to control access to data in VPN 201. Changes made in one copy of the database are propagated to all other copies.
Distributed administration. Any number of administrators may be delegated responsibility for subsets of the system. All administrators may perform their tasks simultaneously.
Distributed access control. Access control functions are performed at the near-end access filter 203. That is, the first access filter 203 in the path between a client and the server determines if the access is allowed and subsequent access
filters in the path do not repeat the access checks made by the first access filter.
End-to-end encryption. Encryption occurs between the near-end access filter and the furthest encryption endpoint possible. This endpoint is either the information server itself or the far-end access filter 203--the one last in the route from
client to server. Dynamic tunnels are created based on current network routing conditions
Adaptive encryption and authentication. Variable levels of encryption and authentication requirements are applied to traffic passed through the VPN, based on the sensitivity of the information being transmitted.
All of these aspects of the design will be discussed in more detail below.
It should be pointed out at this point that access filter 203 may be implemented in any fashion which ensures that all references to data in VPN 201 which are made by users who may not be authorized to access that data go through an access filter
203. In a preferred embodiment, access filter 203 is implemented on a server and runs under the Windows NT.RTM. operating system manufactured by Microsoft Corporation. In other embodiments, access filter 203 may be implemented as a component of an
operating system and/or may be implemented in a router in VPN 201.
Distributed Policy Database: FIG. 3
Each access filter 203 has a copy of an access control database 301 that holds all data relevant to access control in VPN 201. One access filter, shown as access filter 203(a) in FIG. 2, has a master copy 205 of access control database 301.
Because of this, access filter 203(a) is termed the Master Policy Manager. The master copy 205 is the one that is used to initialize new access filters 203 or replace a damaged access control database 301. The backup for the master policy manager
computer is access filter 203(b). Backup 207 is a mirror image of master copy 205. Report manager 209, finally, includes software for generating reports from the information in access control database 301 and from logs obtained from all other access
filters 203. Any copy of access control database 301 may be altered by any user who has the access required to do so; as will be described in more detail later, any such alteration is propagated first to master policy manager 205 and then to all of the
other access filters 203 in virtual private network 201.
FIG. 3 is a conceptual overview of access control database 301. The primary function of the database is to respond to an access request 309 from access filter 203 which identifies a user and an information resource with an indication 311 of
whether the request will be granted or denied. The request will be granted if both of the following are true:
The user belongs to a user group which data base 301 indicates may access an information set to which the information resource belongs; and
the request has a trust level which is at least as high as a sensitivity level belonging to the information resource.
Each user belongs to one or more of the user groups and each information resource belongs to one or more information sets; if none of the user groups that the user belongs to is denied access to an information set that the resource belongs to and
any of the user groups that the user belongs to is allowed access to any of the information sets that the information resource belongs to, the user may access the information resource, provided that the request has the requisite trust level.
The sensitivity level of a resource is simply a value that indicates the trust level required to access the resource. In general, the greater the need to protect the information resource, the higher its sensitivity level. The trust level of a
request has a number of components:
the trust level of the identification technique used to identify the user; for example, identification of a user by a token has a higher trust level than identification of the user by IP address.
the trust level of the path taken by the access request through the network; for example, a path that includes the Internet has a lower trust level than one that includes only internal networks.
if the access request is encrypted, the trust level of the encryption technique used; the stronger the encryption technique, the higher the trust level.
The trust level of the identification technique and the trust level of the path are each considered separately. The trust level of the path may, however, be affected by the trust level of the encryption technique used to encrypt the access
request. If the request is encrypted with an encryption technique whose trust level is higher that the trust level of a portion of the path, the trust level of the portion is increased to the trust level of the encryption technique. Thus, if the trust
level of a portion of a path is less than required for the sensitivity level of the resource, the problem can be solved by encrypting the access request with an encryption technique that has the necessary trust level.
The information contained in database 301 may be divided into five broad categories:
user identification information 313, which identifies the user;
user groups 315, which de | | |