Academia.eduAcademia.edu

Intrusion Tolerance in Distributed Computing Systems

1991, Research in Security and …

An intrusion-tolerant distributed system is a system which is designed so that any intrusion into apart of the system will not endanger confidentiality, integrity and availability. This approach is suitable for distributed systems, because distribution enables isolation of elements so that an intrusion gives physical access to only a part of the system. By intrusion, we mean not only computer breakins by non-registered people, but also attempts by registered users to exceed or to abuse their privileges. In particular, possible malice of security administrators is taken into account. This paper describes how some functions of distributed systems can be designed to tolerate intrusions, in particular security functions such as user authentication and authorization, and application functions such as file management.

Intrusion Tolerance in Distributed Computing Systems Yves Deswarte Laurent Blain Jean-Charles Fabre LAAS-CNRS and INRIA 7, avenue du Colonel Roche 31077 Toulouse (France) Abstract An intrusion-tolerant distributed system is a system which is designed so that any intrusion into apart of the system will not endanger confidentiality, integrity and availability. This approach is suitable for distributed systems, because distribution enables isolation of elements so that an intrusion gives physical access to only a part of the system. By intrusion, we mean not only computer breakins by non-registered people, but also attempts by registered users to exceed or to abuse their privileges. In particular, possible malice of security administrators is taken into account. This paper describes how some functions of distributed systems can be designed to tolerate intrusions, in particular security functions such as user authentication and authorization, and application functions such as file management. the distributed system, a local TCB is responsible for the authentication of local users, and for the aeeess control to local objects. For accesses from local subjects to remote objects, the local TCB must cooperate with the remote TCBS responsible for the objects. The enforcement of the authorization policy is based on cooperation between the TCBS, which must therefore trust each other, i.e. all the computers of the distributed system must enforce the same seettrity concepts, with a consistent knowledge of subjects and objects, and with homogeneous security protocols. Consequently, this approach is unsuitable for current heterogeneous open distributed systems. Moreover, a successful intrusion into a local TCB can endanger the security of the whole distributed system. Such a case has to be seriously considered since, with current workstations, it is easy for a 10MI user to obtain complete local control (e.g. as superuser). In addition, TCB administrators maybe tttrgets for bribery. Introduction In our approach, the required trust comes from the cooperation and the consensus of a majority of seeurity entities. Each entity can be individually untrusted, as long as a majority of them can be trusted. Therefore, an intrusion into apart of the system will have no consequence on the system security if only a minority of the security entities is affected by the intrusion : this approach is thus “intrusion-tolerant”. Most of the currently developed secure systems are based on paradigms such as access control matrix, reference monitor, security kernel or trusted computing base concepts. These concepts are essentially centralized, in order to keep their implementation simple and verifiable. Such a centralized approach is inconsistent with distribution, 10MI autonomy and concurrency that distributed systems are supposed to provide. Moreover, a centralized implementation of these concepts would constitute a “single point of failure”, with respect both to accidental faults (a single site More precisely, let us consider a distributed system composed of standard workstations, the clients, and of intrusion-tolerant disrnbuted servers. Each server is constituted by a set of untrusted sites, the server being trusted as a whole. That means that an intrusion into the distributed server sites should not endanger the confidentiality and integrity of the sensitive data stored or processed by the server, and should not produce any denial of service: to be successful, an attacker would have to intrude into a majority of the server sites, or bribe a majority of the site administrators. This approach can be envisaged for application servers, such as file servers or data processing servers, failure can produce a denial of service for the whole dis- tributed system), and to intrusions (a successful intrusion into a single site is sufficient to annihilate the security of the whole distributed system). For such distributed systems, the “Red Book” (Trusted Network Interpretation of the Trusted Computer System Evaluation Criteria [15]) proposes the building of a Network Trusted Computing Base, composed of a set of cooperating Trusted Computing Bases. Within each site of 110 CH2986-8/91/0000/01 10$01 .00@ 1991 IEEE tor can (but should not) halt a computer at some as well as for specific security servers, responsible for user authentication and for authorization (i.e. control of access to application servers). The following parts of this paper will be&voted to the design of such servers. inappropriate instant, causing a denial of servicel. Intrusion targets can be * information confidentiality the intrusion attempts to disclose confidential information, . information integrity: the intrusion attempts to create false information or to alter or destroy sensitive information, s service availability the intrusion attempts to prevent legitimate users from using the system (denial of service). The clients can be off-the-shelf workstations, but running only one user session at a time, and only for local users. Except during local user sessions, no sensitive data is stored on the workstation (temporary files and other session information are wiped out at the end of each session). No trust is placed on the workstation since all security relevant operations are run by intrusion tolerant servers. However, this paper does not address the threat of intrusions into the workstation during a user session, nor the problem of malicious logic (e.g. Trojan horses) inserted into a client or a server. Moreover, this paper does not consider input-output operations which are not located on the workstation the intrusion tolerance approach does not seem suitable for printer servers or scanner servers, for instance. On the other hand, intrusion tolerance techniques can be applied to gateways and communication links [11, 20] or to data processing servers [8, 23], but such applications are beyond the scope of this paper. In dependability terminology [13], intrusions are intentional operational external faults, i.e. one particular class of faults. Classically, dependability is obtained by a mixture of fault prevention and fault tolerance. This dual approach can also be applied to intrusions, i.e. we can consider intrusion prevention and intrusion tolerance, Intrusion prevention is the aim of most of physical and logical access control mechanisms. When one considers the possibility that such mechanisms can be defeated, intrusion tolerance techniques can be contemplated. As a matter of fact, intrusion tolerance is not a new concept. Cryptography, for instance, can be viewed as a very efficient technique for tolerating intrusions against data confidentiality as well as for detecting unauthorized data modifications (by means of cryptographic signatures). Moreover, classical fault tolerance techniques can be useful for tolerating intrusion error detection-and-recovery or error masking techniques can be applied to maintain data integrity or service availability in spite of intrusions. However, such fault-tolerance techniques are usually considered as harmful for data confidentiality, due to the redundancy that they imply, The first section of this paper describes the intrusion tolerance approach more precisely, while the following sections are devoted to various particular intrusion tolerant servers: authentication servers, authorization and directory servers and persistent file servers, 1 Intrusion tolerance By intrusion we mean a large class of attacks, covering not only computer break-ins by external attackers, but also illegitimate use by registered users [3]. Such intrusions can be classified according to the intruder privileges, or according to the intrusion targets. Intruders can be: “ external intruders, i.e. who are not registered as users of the computing system; thus, they have to deceive or by-pass the authentication and authorization mechanisms, or “ internal intruders, i.e. who are registered as legitimate users, but who: - try to exceed their privileges, for instance by trying to read confidential data or modify sensitive information for which they have no authorized access: to do this, they have to by-pass the authorization mechanisms, or - abuse their privileges for some illegitimate (but authorized) actions; for instance a security officer can (but should not) take malicious actions, or an opera- Our approach to intrusion-tolerance takes advantage of the geographic distribution of a distributed system in order to achieve confidentiality and integrity of sensitive information, and availability for the service. One of the techniques we propose for this purpose is the fragmentation-redundancy-scattering technique [6], which consists in first cutting all sensitive information into fragments, in such a way that any isolated fragment does not contain significant information, and second scattering the fragments among the different sites of the distributed system, so that an intrusion into a part of the distributed system give access only to unrelated fragments. Redundancy is added to the fragments (e.g. by replication) in order to tolerate accidental or deliberate destruction or alteration of fragments. The 1 Such intrusions are possible only because the leasr privilege principle is not perfectly implemented: otherwise, no illegitimate action would be authorized. 111 following chapters show how this technique can be applied to different functions. 2 User registration and authentication In our distributed system model, clients are untrusted, offthe-shelf workstations. Therefore, user authentication cannot rely on the workstation authentication mechanism user authentication has to be implemented by a trusted authentication server, which must also be responsible for user registration. This approach is very similar to Kerberos [14] or Strongbox [24], except that these two authentication facilities are not intrusion-tolerant. For instance, the Kerberos server stores plain text passwords for all the users, which means that if an intrusion succeeds on the server, the intruder can use this information to impersonate any user. Strongbox uses zero-knowledge protocols, and then disclosure of information stored on the authentication server is not sufficient for an intruder to masquerade other users. However, such masquerade is possible with the complicity of one of the authentication server administrators: an administrator can modify any user registration information. 2.1 Intrusion tolerance for user registration and authentication An intrusion-tolerant registration and authentication server must tolerate all the kinds of intrusions which have been presented in section 1, This can be done by the use of distribution among a set of authentication sites. Thus, availability of the authentication function can be achieved in spite of failures of one or a minority of sites. Another characteristic is that each site can be managed by a different security administrator: this enables intrusions by a minority of malicious security administrators to be tolerated. Thus, the authentication server can be viewed as composed of a trusted set of untrusted authentication sites managed by a trusted set of untrusted security administrators. 2.1.1 public keys are used, different authenticators have to be stored on the different authentication sites for the same user. This can be considered as an implementation of the concept of separation of duty one or a minority of secttrity administrators cannot register an illegitimate user and cannot prevent the registration of a legitimate user at a majority of authentication sites. Moreover, if such malicious administrators try to use local information stored on their sites in order to impersonate a registered user, they will fail because they cannot be authenticated by the other sites. 2.1.2 Authentication protocol When a registered user wants to access remote servers from a workstation, he/she has to be authenticated by the authentication serve~ an authentication protoqol has to be run between the user site and the authentication sites. This protocol is composed of three phases. In the first phase, the user site attempts an independent authentication with each of the authentication sites. This authentication can be based on classical authentication algorithms [16, 12,...1, but with different authenticators (or different challenges with public key systems) for the different authentication sites. In this fwst phase, each authentication site independently decides, for itself, whether or not the authentication attempt succeeds. During the second phase, each authentication site broadcasts its individual decision to all the other authentication sites, and receives the decisions of these other sites. In the third phase, according to the majority of all the received decisions and its own decision, the authentication site authorizes (or not) the session for the user, and confirms this session authorization by sending to the user site a session key (or a ticket containing the session key, depending on the authentication algorithm which has been selected) . A different session key is randomly generated by each authentication site. This session key or ticket will be used by the user site to authenticate its requests in the authorization process (see section 3). In this protocol, majority voting on the different authentication decisions enables the system to tolerate accidental faults affecting the registration data stored on the different authentication sites or communication faults during the User registration protocol, as well as to tolerate intrusions into a minority of authentication sites which could lead to false local decisions. Moreover, different session keys are generated independently by each authentication site, and sent only to the user sit~ thus, no intruder, even with the complicity of an administrator, can impersonate the user site (except if he/she breaks the classical authentication algorithms), Registration of a new user in the system must be performed under the control of the security administrator at each authentication site. The user is registered at the first site by the first security administrator, at the second site by the second administrator and so on. At each site, the identity of the user is stored with some authenticator which will be used by the authentication process to verify the claimed identity. The authenticator can be a password, a secret permanent key or a public key. However, except if To conclude this part, we can say that the authentication server described above has two essential characteristics. A read intrusion into one or into a minority of authentication 112 sites does not give enough information to impersonate a user and the destruction of data of one or of a minority of sites does not make the authentication function unavailable. sion-tolerant using distribution among a set of authorization sites and the application of the following techniques replication, secret sharing and agreement. 3.1 2.2 Implementation authentication of the registration protocols system authorization An authorization server has to check the rights of users who wish to access remote servers or objects. It also manages all user rights for all objects which could be accessed and which need to be protected. When a new object is created by a user or when a new server is installed, the authorization server stores the access rights, the reference (information which enables direct access to the object) and other information, which together form the object or server descriptor. The access right management must obey an authorization policy, which has to be implemented by the authorization server. It would be difficult for a user to memorize several strong independent passwords. A better solution is to store secret keys on a personal smartcard, the owner of which has only to memorize his/her PIN. Our current implementation uses Bull CP8 smartcards with shared keys, one smartcard for each user and one for each authentication site administrato~ all the administrators of a given authentication site have identical master smartcards, except for the identification and the PIN of the administrator. On the user smartcard, there is a set of areas, one area for each authentication site, i.e. for each master smartcard. This means that when a user is registered by an authentication site, the local master smartcard generates a secret key that it writes within its own reserved area on the user smartcard. When the user has been registered by the N sites, his/her smartcard possesses N secret keys within N areas. In the authentication phase, each authentication site sends a challenge to the user. The user smartcard applies a one-way function to this challenge and the shared secret key and sends the result to the authentication site. The master smartcard performs the same operations on the same data and compares the results. This protocol is performed by every authentication site. The two roles of an authorization server are given abovex access right checking and access right management according to an authorization policy. In most secure distributed systems, these two roles are performed by the secured application servers. For instance, in the Kerberos system [14, 22] an authentication server and a ticket granting server verify the identity of a user who wishes to access a remote application server and establish the session between the user site and the application server, but the authorization is carried out by the application server itselfi once a session has been established between the user site and the application server, the authentication server and the ticket granting server play no further role, and the application server is alone responsible for access right checking as well as for access right management. The major drawback of this system is that, when a new authentication site is added, all users must be registered by the new site. Another solution for implementation of these services is the use of public-key cryptosystems such as RSA [18] or E1-Gamal [4] or zero-knowledge protocols [5]. The interesting point of these systems is that they do not need shared secrets. Only the user (or the user smartcard) knows the secret and there is no risk of masquerade by security administrators. Another advantage is that when anew authentication site is added, it can immediately perform user authentication because it has only to copy locally the public keys which are stored on the other authentication sites. Unfortunately, currently there is no efficient public-key smartcard available. 3 Distributed and The Kerberos approach possesses the advantage of incremental modularity: it is easy to add a new server in the system, just by adding server identification information to the ticket-granting server database. This approach also permits flexibility of authorization management each server administrator manages access rights the way he/she wishes to, with some local authorization policy he/she selects. The price paid for this flexibility is the necessity to develop specific authorization mechanisms for each server, and to administrate individually each server. Moreover, the consistency of the distributed system authorization policy and the consistency of the administration of the whole distributed system are based upon the cooperation and the benevolence of server administrators. Authorization and directory servers Another approach is to implement a central reference monitor on a specialized site, such as for the Secure File System of the Distributed Secure System architecture proposed in [19]. In that case, the authorization policy consistency is easily enforced, and the security administration of ‘Ihe aim of this section is to describe a distributed, intru- sion-tolerant authorization server. This server has to store and manage access-rights and to grantor deny user accesses to remote application servers. The server is made intru- 113 the distributed system is very simple. But, since the reference monitor is the mediator for every communication between the user site and the server, this reference monitor site is a bottle-neck for the communications and a single point of failure. Our approach can be considered as a compromise between these two approaches: an authorization server is responsible for access right checking and access right management, but when an access from a user site to an object is granted, tickets are distributed by the authorization server to the user site and to the server managing the object, so that the user site can directly access the server for all its requests to that objecc when the application server receives a request, it has only to check that this request is allowed by the corresponding ticket. An application of this protocol is presented in section 4. This kind of authorization server gives the same authorization policy consistency and administration simplicity as the central reference monitor, but with no communication bottle-neck. Section 3.3 shows how to make this authorization server intrusion-tolerant and faulttolerant in order to avoid it constituting a single point of failure. objects will be a subtree, the root of which will be under the global root. This tree has both nodes and leaves. The nodes are object directories and do not correspond to real objecw, they are only means for managing a hierarchy of objects. The leaves are descriptors of real objects and keep atl the information needed for access. If the distributed system is large enough, all the servers and objects may not be represented in a single authorization server. In such a case, the distributed system can be partitioned into multiple management domains, with an authorization server in each domain. In this case, the tree of objects and servers managed by an authorization server is represented in other authorization servers by a link from a node to the root of this tree (figure 1). /\ Data Integration of directory tion functions %f and authoriza- The descriptors (access-rights, references,...) for all the objects are stored on the authorization serve~ thus it is necessary to have a representationand a request model for these descriptors. The two problems of concern here are how to store and how to access these descriptors. A very convenient model is the Directory Service standard [2], The data representation given in this standard is a tree where all the leaves are descriptors and the nodes are directories [9]. The tree model permits the building of a hierarchy of objects. For each node or leaf of the tree, there is a set of attributes which describes the object, the server or the directory. According to the object type, the attributes are differen~ this facilitates the representation of the various types of servers which exist in the system. The authorization server has to manage two kinds of access controls. The first concerns access to application servers, such as a data processing servers, which manage no specific persistent objects. In the tree structure, the descriptors of such servers are leaves directly connected to the root there is no obvious reason to structure these servers as a hierarchy. The second kind concerns accesses to persistent objects maintained by application servers, such as the Persistent File Server presented in scztion 4. In this case, access control concerns not only the servers but also the objects which are stored inside (files in this example). The representation of these servers and their Pers tent File Serv r ProOxsing Server I“ 3.2 ROOT of anothar AuthorizationServa ROOT /[ a /\ [ Cnr( i ti& /\/\ B \ Figure1: Example of directory structure. Within the tree, the leaves are descriptors of real objects or application servers which can be accessed. For each leaf, there is a set of attributes which compose together all the information about the corresponding objects (or application servers). These attributes am: o access control list, which detlnes which access-rights to the object are granted and to whom; reference, which is information which enables direct addressing of the objector serveq other information according to the object type. ● ● For directories, except for links to other authorization servers, there is no reference attribute because they do not match a real object in the system. The only attribute for directories is an access-control list. Once created this data must be accessed by users, as for any classical Dmectory Service, by means of requests to the authorization server (X500”requests such as descriptor read, modification, adding and deleting). An important point is that when the authorization server receives the reques~ it acts according to the authorization policy which has been implemented. The authorization policy does not depend on the representation model, so that any type of policy can be implemented (multi-level, discretionary.,.), Nevertheless, if a mandatory policy is selected, then this policy must be enforced within the user site, which is not realistic with current off-the-shelf workstations, However, a discretionary authorization policy, compatible with these requirements, has been proposed in [1]. 3.3 Intrusion-tolerant Other data items are more sensitive, since they could be used to by-pass or deceive the access controlx that is the case of permanent keys, such as the fragmentation key used by the persistent file facility (see section 4). These very confidential data items are object attributes which must be managed in such a way that only an agreement between a majority of the authorization sites can give access to them: such secrets are thus to be “shared” [21] by the authorization sites, A very satisfactory solution to this problem is given by the “threshold scheme” concepc a threshold scheme is used on the user site to build different “shadows” of the confidential information. Then, these shadows are sent to all the authorization sites. The local attribute stored at a single authorization site is only a part of the overall attribute of the objec~ this attribute cart be only rebuilt on the user site which gets a sufficient number of shadows (greater or equal to the threshold, which can be for instance the majority of authorization sites). This means that a minority of authorization sites cannot use this attribute to perform illegal operations. Only the authorized user site can rebuild the confidential data when it receives a majority of correct shadows. implementation The problem raised in the above section is “how to make a centralized authorization server intrusion-tolerant ?“. This raises the question of “how to store the objects descriptors on the server” and “how to run the server” so that intrusions have no consequence on the information confidentiality and integrity and on the service availability, The answer is distribution, data replication, secret sharing and majority voting. 3.3.1 Distribution First of all, just as with the authentication server, the authorization server is distributed among several sites called authorization sites. Each authorization site is administrated by a different security administrator. No individual site or administrator is trusted, although a majority of them are trusted. Finally, a third kind of confidential data is managed by authorization sites: user session keys, server keys, etc. But these data items are different on each authorization site: security is maintained as long as only a minority of these data items are disclosed. The authorization server is strongly related to the authentication server since only users that have been previously authenticated can access remote servers. At least for small distributed systems, the simplest solution is to locate the two servers on the same set of sites. But it is also possible to isolate authentication sites (which have to store only user registration information) from authorization sites (which have to store only server and object information): in such a case, the authentication server manages a directory tree consisting of just a link to an authorization server, i.e. the relation between the authentication server and the authorization server is the same as the link from one authorization server to another one. 3.3.2 Data replication 3.3.3 Majority tocol voting and authorization pro- The authorization protocol is quite similar to the authentication protocol: whatever the user request, first a local decision is taken by each authorization site according to the user access rights which are locally stored; then this local decision is broadcast to the other authorization sites; the authorization decisions received from the other sites are voted on locally (together with the locrd decision), and, according to the result of the vote, the user request is locally executed or not. This majority voting technique ensures that a legitimate request cannot be denied and an illegitimate request cannot be granted, unless a majority of authorization data copies have been destroyed or altered. and secret sharing Among all the information stored by the directory-andauthorization servers, some data items are less sensitive than others. For instance, one can consider that the tree structure and the access control lists are not confidential enough to prevent security administrators from reading them, the integrity and availability of these data items being much more important than their confidentiality: In fact, two kinds of user requests have to be considered. The first one concerns only the authorization and directory sites, such as directory read or modification, or access control list modifications, etc. In such cases, the authorization process is limited to the local execution of the user request at each authorization site. In other cases, the user request such datacan be replicated on all the authorization sitesl. 1 If a subtree stmcture belongs to a confidentiality level higher than the rest of the tree, this subtree can be isolated in another authorization server, operated by other, more trusted security administrators, with a link from the main tree to the subttee (see figure 1). 115 is to access an objector an application server which is not located on the authorization sites. For that purpose, after majority voting, if access is authorized, each authorization site will send one ticket to the user site and another to the application server. ● Two types of intrusions have to be considered. First, confidentiality can be attacked by tapping the communication medium or by intruding into the file server. Second, an intruder cart attempt to modify or to destroy a file on the file server (integrity and availability attacks). In addhion, accidental faults can also endanger file integrity and availability. To deal with these threats, we propose to use the fragmentation-redundancy-scattering technique which has been defined in section 1. The user site ticket is quite similar to the ECMA PAC (Privilege Attribute Certificate) defined in [10]. The ticket contains tamperproof information concerning the operations which are allowed on the objector on the server. It also contains the object or server reference, but this reference is only transmitted by means of different “shadows” (see section 3.3.2) from each authorization site: only the user site which receives the different tickets from a majority of authorization sites can rebuild the effective nference. This means that no other site can impersonate the user, even with the complicity of the administrators of a minority of authorization sites. The fragmentation and scattering technique when applied to file storage involves cutting every sensitive file into several fragments in such a way that one or several fragments (but not all) are insufficient to reconstitute the file. The level of information granularity is such that the contents of one or several fragments together do not disclose any significant information. The fragments are stored in several copies on different geographically distributed sites, which can be viewed as fragment server machines (see figure 2). When the user site has rebuilt the reference, it can reconstitute the access ticket containing the tampetproof access information, the complete reference and a user identity certificate. This ticket is valid for several accesses as long as they concern the same object or server with the same authorized operations (e.g. all read accesses for one persistent file, see section 4.2.2.). This ticket is sent by the user site to the application server with each request. The application server has only to check the validity of this ticket according to the majority of tickets it has received from the authorization sites, and to verify if the user request and the reference are valid, before executing the request. 4 Persistent 4.1 at the end of the session, all fideupdates are sent to the persistent file server (if write access is granted by the authorization server), and all local user data items are deleted. Fragmantation Replication I Scattering E! f:: :::::::, 0 ~~ ?::i M file server Overall framework File The aim of this section is to give an example of an intrusion-tolerant application server that takes advantage of authorization servers to simplify security management and administration. The application server presented here is a persistent file server, i.e. a server which stores the user files between user sessions [6, 7]. In our distributed system model, a typical user session consists of the following: the user starts his/her workstation (from which all user data have been wiped out at the end of the previous session) and runs the authentication protocol with the authentication server, “ the user reads a particular file from the persistent file server (if read access is granted by the authorization server), the user modifies the local file copy on his/her workstation, Es El ; Ii!i@ Fragments network ~ ::: \:: :l!!! ... .,: ::: .,. Sto’age sites ~ Figure2: Fragmentation-and-scattering applied to persistent file storage 4.2 ● The file server structure A persistent file is processed using a set of operations as described below. Some of the fde management operations are carried out in the user site, others are remotely executed by the storage sites. To ensure a high level of security, whole files are never available except on the user site during the user session. Thus, data items transmitted by the network are always in a fragmented form, with no possibility of identifying the different fragments belonging to a ● 116 given file (otherwise, eavesdropping of the communication channel could annihilate the added advantages of this technique). That means that the fragmentation and naming of fragments are executed in the user site. 4.2.1 Each storage site acts as a file server which can only store fixed length files, with a “flat directory” structure. The operations managed by these storage sites are fragment reading, fragment writing, and fragment deletion. Only fragment names are visible at any storage siw, thus, an intruder who has obtained the control of a storage site cannot determine where a fragment comes from or to which file a fragment belongs. User site operations Every user site is able to access the persistent file operations by means of specific library functions for storing and retrieving the files within the distributed file system. These user site operations use the fragment server functions of the different storage sites and the directory functions of the authorization server. The library provides all the usual file operations such as creation, deletion, opening, closing, reading, writing, etc. 4.2.3 Fragment control (authorization) As has been described above, authorization is not performed by the storage sites but by an authorization server. The authorization server manages and verifies rights for files and not for the fragments because it knows neither their names nor their location. For each file, the directory function of the authorization server stores a reference of the file, which is in fact the fragmentation key which permits generation of the fragment names. The fragmentation key is “globally shared and each authorization site has only one shadow of the key. When a user site rebuilds the key, it is able to access the fragments directly. As stated earlier, two basic operations related to file security are provided in the user site: fragmentation and fragment naming. The fragmentation operation uses a fragmentation key which is stored and distributed by the security server by means of a threshold scheme. The fragmentation operation is based on fast and simple algorithms that give flexible access to any file whilst ensuring a high level of security due to the scattering of information. The names given to the different fragments are generated by cryptographic methods using the fragmentation key, such that no information can be derived from these names. Naming is carried out in such a way that fragments have a unique identifier, derived from the fragmentation key, the name of the file and some other parameters. During the read operation, the original file is reconstituted by using a similar algorithm and the same key as for fragmentation. Section 4.3 details these operations. 4.2.2 Access As described in section 3.3.3, the user site and the storage sites receive different tickets. The storage site ticket cannot contain the file name because the storage sites cannot know which file a request for a fragment corresponds w, this ticket cannot either contain the reference (fragmentation key) which concerns only the user site. Therefore, how does a storage site know that a fragment corresponds to a file that a user has been authorized to access? The solution is to store a tag within the fragment which is the result of a hash function applied to the fragment name and the file name. This tag is generated by the user site during the fragment write operation. The storage site ticket contains the hashed file name generated by the authorization server. The storage site, when receiving a request for a fragment, applies the hash function to the ftagment name and the hashed file name, and compares the result with the fragment tag: if they are identical, this means that the fragment belongs to the file the user is authorized to access. The last field of the storage site ticket corresponds to the authorized operations and to the user identity certificate; these data items are compared to the ticket the user site transmits with its request. server site operations The persistent file server relies on fragment server functions provided by a set of storage sites. The operations of these sites correspond to simple space allocations on the physical storage devices and data transfers between the storage device and the network. These fragment operations are only available to the file management operations embetided in the user sites, and only if an authorization server has sent the corresponding ticket (see 4.2.3). When writing a file, the user site sends the fragments over the communication channel to the set of fragment server sites. For any fragment, each site decides whether or not it should be stored locally, depending on a distributed algorithm ensuring security and availability, based on principles discussed in section 4.4. For the read operation, the user site broadcasts the names of the fragments, and for each fragment, every storage site which had stored a fragment copy sends it to the user site. 4.3 Fragmentation principles A general approach is proposed for the fragmentation operation. While, the file may be of any length and of any type, the fragmentation operation must ensure that no useful information can be obtained from isolated fragments, which implies that all the fragments (from all the files) must have the same fixed length and that their names do 117 graphic techniques must still be employed. There are two gml reasons first, the geographical scattering of fragments makes the theft of individual storage media of no avail to the intruder - even if he/she possesses the cypher key, c secondly, the added security of scattering means that the ciphers employed can be much simpler and thus faster than conventional ones. not allow any information to be deduced. Finally, an important requirement concerns data integrity: modification of a fragment must be easily detected when the file is read. 4.3.1 ● Partitioning A method has to be defined that is suitable for producing fragmentsof identical length from files with very different lengths. The solution proposed is first to cut each file into pages of fixed size (partitioning). The files are padded out to reach a size equal to a multiple of a page size (figure 3). FRAGMENTS P A G E 1 Page E Page FILE . . . b DISTRIBUTION Page j jj$ & ..yj& $ J j$ * :.:,* ;* :$ .\% * .# ::::::J y .,..,.,, . . . ,, .,.,. m Page Figure4: Cipheringand fragmentation : Page We have thus chosen to fragment ciphered pages (figure 4): each page is first ciphered and the fragments are obtained from this ciphered page. The distribution uses a fixed scheme wherein each successive quantum of data is put into one of the fragments; this distribution does not depend on the key. This operation leads to a fine-grain scattering of the data among all the fragments. 1 Page : Padding Figure3: A file partitionedinto pages In order to make it as difficult as possible for an intruder to decipher an individual fragment or sub-set of fragments, it is prefemble to choose a cipher scheme that makes the ciphertext of each data-quantum, and thus each fragment, dependent on the others. This maybe realized by using a stream cipher, for instance by means of cipher block chaining (CBC). In order to make the cryptanalysts more difficult (even if the intruder is eavesdropping the network and is observing several versions of the same fragments), a random nonce (generated each time a page is written) is added at the beginning of the plain text page. Once the ciphered block is obtained, regular fragmentation is carried OULfragment number j contains the fixed quantum (bits, bytes, words...) number i such that j=i (mod N), N being the number of fragments. Every page may then be fragmented into an identical number of fragments. All the fragments so obtained have the same length, which may be chosen equal to that of a packet sent on the communication channel, or a quantum in the mass storage, for example, in order to improve the speed of access to information. Another advantage is that one does not need to get the whole file: pages can be retrieved independently. So, a user does not need to reassemble a whole file if he/she only needs a single page. A cryptographic checksum is added to each pagq this checksum is checked by the read operation to verify the integrity of the page. The mean space overhead due to padding information is half a page (if the mean file length is much larger than the page length), and is of course a large overhead for very small files. The shorter a page is, the smaller this overhead is, but the longer is the management time, mainly due to fragment storage time. 4.3.2 CIPHER b Fragment naming consists in assigning a unique identifier to every fragmenu this unique identifier is derived from the fragmentation key, the name of the file, the index of the page and the index of the fragment. The naming algorithm is based on one-way cryptographic functions such that no information concerning a fragment can be derived from its name, Fragmentation Fragmentationis performedat the user site and is realized in conjunction with classical cryptographic methods. One may wonder why fragmentation is used since crypto- The fragment writing, reading and deletion requests which are transmitted by the user site to the storage sites are sent 118 who is eavesdropping the network or who gets a copy of the ciphered file (e.g. a file server back-up tape) can take all the time and all the computer power he/she wants to cryptanalyze the filq with one intrusion, he/she gets all the information he/she needs. With our technique, the intruder who gets all the fragments of a page, would have to try, say, 1013 arrangements before cryptanalyzing the ciphered page (cf. section 4.3.2). That means that our cipher can be =1013 times less strong, and can be much faster. For integrity, the two techniques are comparable. For availability, the two twhniques are equivalent for accidental server failures, but the fragmentation-replicationscattering technique is less robust against simultaneous destruction of storage sites if an intruder is able to destroy R (out of N) storage sites at the same time, he/she will make many more files unavailable than if he/she destroys R ciphered file servers. The overhead of the two techniques are equivalent for the communications and the storage space, but fragmentation-replication-scattering can be made much less CPU-consuming than the ciphered file approach. in a random order for each page. That means that if an intruder is eavesdropping the network or controls a storage site, he/she can receive all the fragments of a given page, but he/she is not able to know in which order he/she has to put the fragments in order to attempt a cryptanalysts of the page. For instance, if a page is cut in 16 fragments, an intruder should attempt 16! /2 = 1013 trials to find the correct arrangement. Thus, the confidentiality depends more on this random order than on the efficiency of the cipher. 4.4 Scattering principles Once the file is fragmented at the user site, the fragments are broadcast to the storage sites in order to be stored with a fixed number of copies (i.e. on a fixed number of different storage sites) in order to ensure availability via replication; the number of copies is a file parameter which depends on the availability requirements of the user for that file. Using a broadcast communication channel, each fragment is sent only once and is, in general, received by all the storage sites. Once a fragment has been received by the storage sites, a decision has to be taken by these sites in order to ensure that (exactly) R copies will be stored. A distributed pseudo-random algorithm is then executed that takes into account the relative available space at each site in order to decide the final placements of the fragments. The need to take into account the available space at each site is necessary in order to maintain a good balance among the different fragment server sites. On the other hand, (pseudo)random behaviour is advantageous for preventing an intruder from knowing the actual locations of the replicates. Another technique has been proposed by Rabin for faulttolerant file server.cxthe “Information Dispersal” approach [17]. This technique consists in coding the file with a special error-correcting code and in splitting the coded file in n pieces, such that m out of n of these pieces are sufficient to rebuild the complete file. Then file pieces are stored by different storage servers. The coded file is longer than the original file, but the redundancy is much smaller than replication in (n - m + 1) copies, for nearly the same availability and integrity. But this code is much more CPU consuming than the fragmentation and does not ensure file confidentiality: to prevent information disclosure to eavesdroppers and storage site intruders, the fde has to be ciphered before coding. To summarize, the storage and communication overhead is much less in the Rabin’s technique, but it consumes much more CPU time. Scattering increases confidentiality because a number of concerted intrusions is necessary in order to get all the fragments derived from a single page. It also increases data availability, due to the replication of fragments. An intruder would have to destroy as many sites as the number of replicates to make a fragment unavailable. Integrity properties are provided because an intruder would have to modify all the replicates and so must realize several intrusions. Moreover, it is very unlikely that an intruder could modify even one byte of a fragment without modifying the cryptogmphic checksum of the page. 4.5 Comparison to other related Conclusion The intrusion tolerance approach looks very promising for open distributed systems whose elements cannot be all trusted. In particular, the intrusion-tolerant authentication and authorization servers enables a consistent security policy to be implemented on a set of heterogeneous, untrusted sites, administrated by untrusted (but non-conspiring) people. techniques Other techniques could be used to implement a secure persistent file server. The first one consists in ciphering the file on the user site, and storing the ciphered file in several copies on different file servers. In that case, confidentiality relies on the efficiency of the cipher algorithm: an intruder A prototype of the persistent file server presented in this paper has been successfully developed and implemented as part of the Delta-4 project of the European ESPRIT programme. An intrusion-tolerant security server, gathering the authentication function and the directory and authoriza- 119 IFIP/SEC’8.5, Dublin (Ireland), August 1985, pp. 203-218. tion function, is currently being developed for the Delta-4 projec~ completion of a prototype is planned for the end of 1991. In parallel, application of the fragmentationredundancy-scattering technique to data processing is explored [8, 23]: in that case, process parallelism and distribution are used to prevent information disclosure, while process replication is used to ensure availability and integrity. [7] Fray J.M., Deswarte Y. and Powell D,, “lntrusiontolerance using fiie-grain fragmentation-scattering”, Proceedings of the 1986 IEEE Symposium on Security and Privacy, Oakland (Ca.), April 1986, pp. 194-201. [8] Fray J.M. and Fabre J.C., “Fragmented Data Processing: an Approach to Secure and Reliable Processing in Distributed Computing Systems”, Proceedings of the Ist IFIP International Conference on Dependable Computing for Critical Applications (DCCA), Santa Barbara (Ca.), August 1989, pp. 131-137. Acknowledgements The authors are grateful to Jean-Claude Laprie, David Powell and Joni Fraga for the original principles of the fragmentation-twhtndancy-scattering technique as well as to Jean-Michel Fray, Pierre-Guy Rant% and Gilles Trouessin for their contribution to the development of this technique. Brian Randell has helpd to make the final version of this paper more readable. This research is partly supported by the PDCS (Predictably Dependable Computing Systems) project n03092 of the European ESPRIT program me, while some aspects have been implemented as part of the Delta-4 (Definition and Design of an open Dependable Distributed architecture) project n02252 of ESPRIT. [9] Gasser M., Goldstein A., Kaufman C. and Lampson B., “The Digital Distributed System Security Architecture”, Proceedings of NCSC, 1989. [10] Hoffmann G,, Lechner S., Leclerc M. and Steiner F,, “Authentication and Access Control in a Distributed System”, Proceedings of the European Symposium in Computer Security (ESORICS 90), Toulouse (France), October 1990, Pub. AFCET, ISBN 2-9036778-9, pp. 71-84 References [1] Blain L. and Deswarte Y., “An intrusion-tolerant security server for an open distributed system”, Proceedings of the European Symposium in Computer Security (ESORICS 90), Toulouse (France), October 1990, Pub. AFCET, ISBN 2-9036778-9, pp. 97-104 [2] CCITT, The Directory, Recommendation December 88. [3] Denning D.E., “An intrusion-detection model”, Proceedings of the 1986 IEEE Symposium on Security and Privacy, Oakland (Ca.), April 1986, pp. 118-131 [4] [a [a [11] Koga Y,, Fukushima E. and Yoshirara K., “Error recoverable and securable data communication for computer network”, Proceedings of the 12th International Symposium on Fault-Tolerant Computing (FTCS-12), IEEE, Santa-Monica (Ca.), June 1982, pp. 183-186 [12] Lamport L., “Password authentication with insecure communication”, Communications of the ACM, Vol. 24, n“l 1, November 1981, pp. 770-772 X500, [13] Laprie J.C., “Dependability: a unifying concept for reliable computing and fault-tolerance”, in Dependability of Resilient Computers, BSP Professional Books, Oxford (UK), Ed. T. Anderson, 1989, pp.1-28 El Gamal T., “A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms”, IEEE Transactions on Information Theory, VO1.31, n04, July 1985, pp. 469-472. [14] Miller S.P., Neuman B.C., Schiller J.I. and Saltzer J.H., “Kerberos Authentication and Authorization system”, MIT Project Athena Technical Plan, Sect. E.2.1, December 1987. Fiat A. and Shamir A., “How to prove yourselfi practical solutions of Identification and signature Problems”, Advances in Cryptology - CRYPTO 86, Santa Barbara (Ca.), August 1986, Springer-Verlag, VO1.263, ISBN 0-387-18047-8, pp. 186-194. [151 NCSC, Trusted Network Interpretation of the Trusted Computer System Evaluation Criteria, Tech. Rept. NCSC-TG-005, National Computer Security Center, 31 July 1987. Da Silva Fraga J. and Powell D., “A Fault- and Intrusion-Tolerant File System”, Proceedings of the 3rd International Conference on Computer Security, [lq 120 Needham R.M. and Schroeder M.D., “Using encryption for authentication in large networks of com- puters”, Communications of the ACM, VO1.21, n012, December 1978, pp. 993-999 [21] Shamir A., “How to Share a Secret”, Communications of the ACM, VO1.22, n“l 1, November 1979, pp. 612-613. [17] Rabin M.O,, “Efficient dispersion of information for security, load balancing and fault tolerance”, Journal of the ACM, Vol. 36, n02, April 1989, pp. 335-348 [22] Steiner J. G., Neuman C. and Schiller J. I., “Kerberos: An Authentication Service for Open Network Systems”, Proceedings of the USENIX Winter Conference, Dallas (Texas), February 1988. [18] Rivest R. L., Shamir A. and Adleman L., “A Method for Obtaining Digital Signatures and Public Key Cryptosystems”, Communications of the ACM, VO1.21, n02, February 1978, pp. 120-126 [19] Rushby J.M. and Randell B., “A distributed secure system”, IEEE Computer, Vol. 16, n07, July 1983, pp. 55-67 [23] Trouessin G., Fabre J.C. and Deswarte Y., “Reliable processing of confidential information”, Proceedings of the 7th International Conference on Computer Security, ZFZP/SEC’91, Brighton (UK), 15-17 May 1991. [20] Rutledge L.S,, A spatial encoding mechanism for network security, Ph.D. dissertation, Institute for Information Science and Technology, Washington, March 1987 [24] Yee B. S., Tygar J. D. and Spector A. Z., “Strongbox: A Selj-Securing Protection System for Distributed Programs”, Technical Report CMU-CS87-184, January 1988, 18p. 121