Distributed Security and Authentication Protocols, Fault-Tolerant Databases
Distributed Security and Authentication Protocols, Fault-Tolerant Databases
Distributed Security and Authentication Protocols, Fault-Tolerant Databases
Authentication Server
_____________________________________
I. Problem statement
Published at CARDIS'94
1st Smart Card Research and Advanced Application Conference
Lille (F), Oct.1994
1
granted to unauthorized users, enabling them to perform unauthorized actions with total
impunity.
In distributed systems, user authentication can be realized by the user terminal (or
workstation), by the remote application server, or by a dedicated security server.
Terminal-based authentication is usually unreliable since it is relatively easy for a user to
control or modify his terminal or workstation to impersonate another user. On the other
hand, in large distributed systems, it is generally impracticable to implement
authentication within application servers because such servers can be too numerous,
making too complex the security management: for instance to register a new user or to
remove a former user, the user identity (and corresponding authentication information)
has to be added or removed consistently on every application server. A more efficient
solution consists in specializing a server for the authentication; this authentication server
has to be trusted by the application servers as being able to guarantee user identities.
With this solution, the user has to be authenticated only once whatever servers he wishes
to access.
2
sites (i.e., the administrators and the mothercards) is necessary to achieve the
registration and the authentication. By this way, the system tolerates failures (due to
accidental or intentional faults) of a minority of sites, smartcards or security
administrators.
All the involved protocols have been implemented on a prototype in the framework
on the ESPRIT project Delta-4 [Powell 91] using the Bull CP8 MP smartcards. In
Section IV.2, we describe how similar protocols with the same properties can be
implemented by using public key smartcards.
The authentication server is a single point of failure and thus must be strongly
protected against different kind of accidental or intentional faults. Kerberos is built so as
to tolerate at least some accidental faults by means of replication: on-line slave back-up
servers enable users to be authenticated even if the master Kerberos server is out of
service (but the database can be updated only on the master server). But if an intruder
succeeds in gaining administrator’s privileges on the Kerberos server or if an
administrator, by mistake or by malice, performs illegitimate operations, the whole
distributed system security is compromised. In particular, the confidentiality of the user
password database is very critical.
This point can be improved by using smartcard based authentication protocols. Let us
give an example of such protocols: when the user logs in a workstation, a challenge is
issued from the server; the response to this challenge is computed by the user smartcard
according to a secret key, specific of this user smartcard, registered within the protected
memory of the smartcard; this response is sent back to the server which compares it to
the response computed by the server smartcard, according to the server smartcard key
and the user smartcard identity. The two responses are to be identical because the user
smartcard key has been created by the server smartcard (called master smartcard or
mothercard), from its own secret key and the user smartcard identity during the user
3
smartcard personalization phase. Such mothercards limit the possibilities of external
intrusions from people who do not possess them, but the administrator remains a single
point of failure, as well as his mother smartcard.
• the private data which are secret data, different on each site: for instance
diversified authentication keys (see §IV.1.2), different session keys (see
§IV.1.4) or shadows of a threshold scheme [Blain 92].
The sites are all running at the same time, all playing the same role: there is no mas-
ter/backup sites. From the viewpoint of the user's workstation, the link established with
the server is composed of N independent communications with the N sites. All the
operations are repeated N times and the user must keep N private data necessary to
communicate with the N sites.
4
of a requesting user (in our case, this information is sent during authorization phase and
not during authentication, and it will not be described here).
However, while the server is trusted, this is not necessary the case of each of its
sites. Indeed, from the viewpoint of another site (user site, remote server or even an
other authentication site), a single authentication site is not trusted: but the majority of
them are. It means that a site does not take into account only one or a minority of
identical messages coming from authentication sites but only a majority ((N+1)/2). If the
site receives a majority of identical messages (identical stands for the same meaning, not
for the same value), it knows it can consider the message as correct. For instance, only if
the authentication is accepted by a majority of authentication sites, the user site
considers itself as authenticated. On the contrary, if the authentication is denied by a
majority the user site considers it is not authenticated. The main assumption is that at
most a minority of authentication sites will fail and that a majority will always be safe
and secure.
the user site broadcasts its authentication request to all the authentication sites,
each authentication site performs independently the authentication by using the
secret data,
each authentication site broadcasts its decision to the other authentication sites,
each one votes on the decisions,
each one sends the final result to the user site,
the user site votes on the replies to be sure it has been successfully
authenticated by a majority of authentication sites; if so, it can send other types
of requests to the authorization server in order to access remote servers.
The steps 3, 4, and 5 permit to avoid problems due to the network, the user site or
the authentication sites which would lead to an inconsistency of the states of the sites -
i.e., a minority of the sites has taken a decision different of the majority's. Indeed as we
increase the number of involved sites we increase as well the probability of faults, it is
thus necessary to add some mechanisms to tolerate them. After this agreement, all the
correct authentication sites are sure of the identity of the requesting user, and each one
can reply OK or not OK - i.e., the result of the vote - to the user site.
5
DECISION
BROADCAST
LOCAL GLOBAL
AUTHENTICATION DECISION
AUTHENTICATION ANSWER
REQUEST
RESULTING
AUTHENTICATION
Figure 1: Authentication protocol between a user site and the authentication sites.
This architecture and the corresponding protocol are intended to provide a safe and
secure service in spite of possible (N-1)/2 failed authentication sites. It deals with
failures produced by accidental faults, external intrusions or user attempts to extend their
rights. We have however still to solve the problem of the administrator.
each message issued from an authentication site cannot be issued from others
(the other sites must be sure of the origin of a message).
6
This means that a security administrator does not only own all privileges on data
managed by his site but also on those issued from it and nothing on those managed or
issued by the others. This is essential when using smartcards for authentication.
We use N different mothercards, one for each site, and one grand-mother card which
generates all the other cards. Each security administrator is given a mothercard which is
able to authenticate all the user cards on one authentication site1. The creation of a new
user card requests the collaboration of the security administrators, and at the end of this
phase none of the mothercards or of the grand-mothercard has full access rights on the
user's card. Like for the security administrators, a collusion of a majority of mothercards
is necessary to succeed an intrusion. The grand-mothercard which is unique is necessary
to create new mothercards or user cards. But it is not a single point of failure. Indeed,
the only malicious action that the owner of this card can do is to make incorrect cards
and thus to make the registration service unavailable. The error can be easily detected
and the problem can be quickly fixed. In order to prevent the complete unavailability of
the service, the grand-mothercard can be replicated and one copy given to each of the
security administrators. Since the power of this card on the others is temporary (between
the creation of the user card and the registration by the administrator's cards), it does not
matter who possesses effectively it (assuming this is someone considered as relatively
trusted).
In this part, we shall describe the different protocols for two cryptographic
techniques. The first one is based on secret shared keys and has been implemented on
Bull CP8 MP (MP stands for Multi Purpose) smartcards. The second is based on public
keys and was studied and formally described, but not implemented yet.
1 Several mothercards can be generated for each authentication sites, one for each person who can be
administrator of this site. Of course, the same person cannot be administrator of˝several sites.
7
IV.1. Protocols for shared secret keys
The Bull CP8 MP smartcards present two characteristics we were interested in:
the card is divided into several areas; each area is protected by a different key.
This last feature makes the implementation of fault and intrusion tolerant
protocols possible.
Each card has a different identity, an ID, created by the manufacturing process, which
cannot be changed and which is absolutely unique. There exist three kinds of cards:
• the grand-mothercard which can define the different areas of the other cards
and which initialise the access-control information,
• the mothercards which can modify the content and the access-control
information of the areas they are authorized to access,
• the user smartcards which cannot modify either their own structure or other
smartcards: the only operations allowed are those authorized by the
access-control mechanism.
A Bull CP8 smartcard is composed of several areas, each one possesses its own
access control mechanism which is based on an access key and rights. The key is
necessary to enter the area, and the rights define the operations authorized for the
different parts of the area. Each area contains two sorts of zones:
• a write-only confidential zone, where are stored the access keys and data which
can be processed by the card but not exported outside of it,
• a read-write transaction zone where are stored data which can be exported
outside the card.
We use two functions provided by the CP8 MP smartcards: the diversification and
the certificate. The diversification is used by the grand-mothercard and the mothercard
to issue a new access key on another card from an access key they possess. This new˝key
is the result of a one-way function (D) based on DES with the known key and the ID of
the card as inputs. This new diversified key will be then specific for the card (the ID is
unique) and can be regenerated at anytime by the mothercard or the grand-mothercard.
But someone who does not possess the initial access key is unable to create the
diversified key and thus to enter the protected area. The diversification function is also
applied to other keys such as the authentication keys. The diversification function
permits to a mothercard to generate many cards (as many as different IDs) without
storing all the secret keys stored on the users smartcards: one key (the generator of all
8
others) is sufficient. Obviously, the function must be carefully built, first to prevent the
possibility to find the generator from a diversified key, second to avoid collisions - i.e.,
two different IDs producing the same keys.
The other function is the certification (C) which is also a one-way function but with
different inputs and with a different result. The certification is intended to check that a
value is stored in the transaction area. The inputs are an external random number, a local
authentication key and the number to be certified. The result is a certificate which can be
exported or not outside the card. It is impossible to compute the authentication key or
the number from the certificate without breaking DES. Moreover, each mothercard
provides a random number generator which permits to compute certificates and to
generate new messages for each new authentication and so to avoid the replay attacks.
The security of all these cards is ensured by their physical protection against
unauthorized read or write access, by a PIN the card user must enter to validate the
subsequent access to the card and by the access control mechanisms of the different
areas.
The mothercards are initialized by the grand-mothercard by the creation of two areas
(Fig. 2). The first area contains an access key (GMi) specific to the mothercard
necessary to read and write in one area of the user's smartcard (see below). The second
area contains nothing at this moment. In this state, everyone who knows GMi can write
into the mothercards: it means essentially all the administrators without distinction. But,
the mothercard at this moment is unable to do anything, registration or˝authentication.
Then each security administrator gets his card and changes the second area by
protecting it with a new key (Mi) he is alone to know. He writes into the confidential
part of this area the authentication key (AKi) and the session key generator (SKi). They
are both not exportable outside the card. Another data item (Ti), used by the
certification function, is stored in the transaction zone. In the confidential zone of the
other area, he puts the access key (Mi) necessary to be diversified and to protect the
users cards (see below). Mi, AKi, SKi and Ti are secret values, known only by the
administrator of site i. The grand-mothercard can thus only create a wrong key, or can
generate an incorrect user card that the administrator can easily detect during the
registration phase.
9
At the end of this phase, each security administrator owns a smartcard he is alone to
be able to use since he has got two secrets, the PIN and the access key (Mi) 2. The card
contains all the confidential items necessary to register a new user and to authenticate
him later. The mothercard is ready to use and fully protected since even the
grandmother-card cannot read or write in the second area.
ID
Grandmother Card Original mothercard
⊗
GM1 GMi GMN
•• •• Initialization
ID GMi
Void
Administrator
of the the
security site i ⊗ Personalization
ID GMi Mi
Mi AKi
SKi
Ti
IV.1.2. Registration
• the actual registration performed by each of the N mothercards which store the
secret keys in its own area: to do so, the mothercard must compute the same
value D(GMi,ID) (from its GMi field) and use this key to access the area i ,
then it uses the same function to compute the diversified authentication
(D(AKi,ID)) and generation keys (D(SKi,ID)) which will then be stored in the
user’s smartcard. Another secret value (Ti) which will be used by the
certification function is stored in the transaction area. At last, it changes the
access key of the area as D(Mi,ID).
2
If several persons are to administrate the same authentication site, each one will be given a
mothercard with the same values Mi, AKi, SKi and Ti but with a different PIN.
10
In this second step, an administrator could prevent a correct registration by writing in
more than one areas. If the administrator of site i can get the grand-mothercard (and its
PIN and access key), he can obtain the GMi of the other mothercards; and then he can
initialize the other areas of the user card. However, such an intrusion would be detected
easily as well as the responsible.
After this step, only the mothercard i is able to re-compute the values D(Mi, ID)
D(AKi, ID) and D(SKi, ID) with the secret keys it owns and the ID of the card.
ID
Grandmother Card Original Card
GM1
⊗
GMi GMN
•• ••
Initialization
Mother Card i • •
GMi Mi
⊗
Mi AKi
SKi Personalization
Ti
This registration protocol permits to avoid that one card becomes a single point of
failure:
• the grand-mothercard cannot access the personalized mothercards or the
registered users cards since it does not know the Mi keys, nor it cannot create a
false user’s card which would not be identified false by the mothercards,
• a mothercard can only read and write the corresponding area on the user cards
and cannot access the other areas protected by access keys it does not know:
thus it cannot impersonate a user nor create a new one,
• the secret authentication key is split into N different parts (the AKi), nobody
knowing the whole,
• a registered card cannot guess the secret keys of others since all depend on the
unique ID of the card and the generators AKi, SKi it does not know,
• the availability of the system is ensured since if stolen or destroyed, a new card
can be easily regenerated - a mothercard can be regenerated with the secret
information (Mi, AKi, SKi) only known by the administrator and a user’s card
with the mothercards -,
11
Even if a mothercard was stolen as well as its PIN, then it would be only necessary to
change on the user cards the contents of the corresponding area without any
modification on the others, and the authentication service would still be available with N-
1 authentication sites before the changes were completely done.
In order to make this recovery easy, it would be useful that the registration of a user's
card could be done remotely. The current implementation implies that the user puts his
card into the different smartcard readers connected to the authentication sites to be
registered, but the CP8 smartcards functionality enables the remote registration.
IV.1.3. Authentication
the user’s card computes the N certificates Ci’ = C(D(AKi,ID),X,Ti) then sends
them to the authentication sites,
each mothercard compares the two certificates Ci and Ci’ and sends the result
to the authentication site: if they are identical the security site considers that the
user’s smartcard has been successfully authenticated,
each authentication site broadcasts its decision to others: the messages are
signed with a private key,
12
each authentication site checks the signatures of the received messages with the
public keys of the other sites, then it votes on all the decisions: if a majority
accepts the authentication then the authentication is locally granted, else it is
denied.
The independence of the authentication process and the splitting of the whole
authentication value into N secret keys make the protocol fault and intrusion tolerant
whatever happens on a minority of authentication sites:
• a legitimate user will be successfully authenticated by at least the majority of the
authentication sites,
• an intruder, whoever he is, can be successfully authenticated by only a minority
of faulty authentication sites.
The security of the protocol itself is based on the security of the certification function
provided by the card and on the efficiency of the random number generator also
provided by the card.
The final step consists in generating the session keys which will be used to
communicate securely between the user's site and the authentication sites. In our case,
the authentication server acts also as an authorization server [Deswarte 91]. A session
key is thus necessary to ensure both the confidentiality of private exchanges and the
authenticity (by way of a signature) of the messages.
An authentication site (or its mothercard) cannot guess the value of the other sites'
keys since they are generated from data known only by one mothercard. There is no
exchange of information between them during this phase.
At the end of the protocol the user possesses N keys. Each authentication site
possesses one key and has no information on the other keys. The user site can then use
these keys to communicate with the different authentication sites. Each message if it is
ciphered can be deciphered by only one authentication site which owns the key. And the
user site is sure of the origin of a message signed with a session key.
13
These session keys have a limited lifetime necessary to ensure that an intruder who
performs successfully an intrusion on the user site can only carry out a limited number of
operations. When the lifetime is elapsed, the intruder cannot get a new session key or be
authenticated again (except if he has got the user's smartcard and knows his PIN). The
session keys are temporary because the user site does not tolerate faults or intrusions
and is only protected by classical security means.
All these protocols have been implemented on a prototype which is running on Bull
computers and workstations. The authentication server is composed of 5 sites, each one
connected to a smartcard reader wherein the administrator mothercard is inserted. Each
user workstation is itself connected to a smartcard reader which the user puts his card
into. The authentication sites play as well the role of authorization sites controlling the
access to an intrusion and fault tolerant file server [Deswarte 91].
The following table summarizes the security means to ensure the security of the
authentication server with respect to intrusions, illegitimate operations or accidental
faults.
Public key protocols present several advantages over secret key schemes: the public
key algorithms are generally stronger than DES and public keys can be replicated
without compromising the secret keys. Moreover, the protocols are much easier to
implement. Indeed, in the public key technique the component which authenticates the
other cards has not to know the private keys. It knows only the corresponding public
14
keys. The private key is stored only within the user's smartcard and is never exported
out the smartcard.
However these cards present a main drawback which is how the key is generated.
Indeed, these public key cards are usually based on an identity-based algorithms
[Shamir 84] that we cannot use because such protocols use an external key generator
which creates the keys from the card identity. This generator knows how to create false
cards and how to guess the secret key of a given card. This generator is then the single
point of failure we want to avoid.
Moreover, if a public key scheme presents some advantages over the shared secret
key scheme, we have studied and chosen the latter for the implementation because at
time the public keys cards were rare and difficult to use and to connect to our system.
Moreover, the authentication sites do not need to own a particular smartcard3: the
site itself is able to verify the identity of the user - i.e., the validity of his private key. The
mothercards disappear in this scheme, only the grand-mothercard still remains to create
the users cards. But in many cases this card exists only at the factory where the cards are
made and has not to be taken into account in our system.
• first, the initial user card generates both the public and the private keys: the
private key is stored in a confidential area from where it cannot be exported, the
public key is stored in a transaction area from where it can be read,
• second, each authentication site reads the public key and stores it in a database
with the identity of the user (the ID of the card has not to be stored on the
authentication site).
For each user, there is so only one public key which is replicated on all the sites and
this information does not provide any way to impersonate a user, nor to create a false
user. Moreover, the replication scheme permits to recover lost data much more easily
than the secret key scheme. One needs only to copy data stored the others authentication
sites and it is not necessary to register again the users.
3 Public key smartcards can be used by the authentication sites to sign exchanges, in particular
during agreement protocol.
15
The authentication and the session keys distribution protocols are then easy to define.
We can use well-known algorithms such as [Guillou 88], [Fait 86], etc. We only need to
add an agreement protocol between the authentication sites. The protocol looks like this:
the user site broadcasts an authentication request to all the authentication sites,
each authentication site using the public key establishes a protocol with the user
site and authenticates or not the card,
each authentication site broadcasts its decision to others (the messages are
signed with a private key),
each authentication site checks the signature of the received messages with the
public keys it owns, then it votes on all the decisions: if a majority accepts the
authentication then the authentication is locally granted, else it is denied,
each authentication site generates a random session key and sends it ciphered
with the user's public key to the user site,
the user's card deciphers the message and gets N different session keys . 4
V. Conclusion
This paper describes a new approach to build an authentication server able to tolerate
an arbitrary number of faults and intrusions, without any single point of failure. The
server is made of several sites, each one managed by a different security administrator.
Registration and authentication protocols were studied and implemented on Bull CP8
MP smartcards in order to guarantee the fault tolerance properties. The cryptographic
functions of these cards are DES based. We split the secret authentication value between
the different mothercards of the administrators. We have used the multi-area protection
scheme of these cards to separate the privileges of the different administrators, and a
three level hierarchy to ensure a full security and reliability at each step of the protocols.
But it has also been shown how to implement the same server with public keys
smartcards.
Acknowledgements: This work has been partially supported by the European ESPRIT
programme, project n° 2252: Delta-4 (Definition and Design of an open Dependable
Distributed architecture). The authors are grateful to Renaud Gandara and Jean-Michel
Pons for their contribution to the implementation of our prototype, and Michel Dinghin
of Bull-CP8 for facilitating the use of CP8 smartcards. The intrusion tolerance
techniques have been defined and developed with the help of Jean-Claude Laprie, David
Powell and Jean-Charles Fabre.
4
These session keys are used because symmetric ciphers are faster than asymmetric ones.
16
References
[Blain 92]
L. Blain, "La tolérance aux fautes pour la gestion de la sécurité dans les
systèmes répartis", Thèse de doctorat de l'INPT, LAAS Report n° 92 011, 152
p. (in French).
[Deswarte 91]
Y. Deswarte, L. Blain, J.-C. Fabre, "Intrusion Tolerance in Distributed
Computing Systems", in Proc. of Symposium on Research in Security and
Privacy, IEEE Computer Society Press, pp. 110-121, Oakland (CA), May
1991.
[Fiat 86]
A. Fiat, A. Shamir, "How to Prove Yourself: Practical Solutions of
Identification and Signature Problems", in Proc. of CRYPTO'86, Santa Barbara
(CA), August 1986, (A.M. Odlyzko, Eds), Springer-Verlag, Lecture Notes in
Computer Science, Vol. 263, pp. 186-194, ISBN 3-540-18047-8.
[Guillou 88]
L.C. Guillou, J.J. Quisquater, "A Practical Zero-knowledge Protocol Fitted to
Security Microprocessor Minimizing both Transmission and Memory", in Proc.
of EUROCRYPT'88, Davos (Switzerland), May 1988, (C.G. Günther, Eds),
Springer-Verlag, Lecture Notes in Computer Science, Vol. 330, pp. 123-128,
ISBN 3-540-50251-1-3.
[Needham 78]
R.M. Needham, M.D. Schroeder, “Using encryption for authentication in large
networks of computers”, Communications of the ACM, vol.21, n°12
(December 1978), pp. 993-999.
[Powell 91]
Delta4 - A Generic Architecture for Dependable Distributed Computing,
Springer-Verlag, (D. Powell, Ed.), 484 p., ISBN 3-540-54985-4, 1991.
[Shamir 84]
A. Shamir, "Identity-Based Cryptosystems and Signature Schemes", in Proc.
of CRYPTO 84, Santa Barbara (CA), August 1984, (G. R. Blakley, D; Chaum,
Eds.), Springer-Verlag, Lecture Notes in Computer Science, Vol. 196, pp. 47-
53, ISBN 3-540-15685-5.
[Steiner 88]
J.G. Steiner, C. Neuman, J.J. Schiller, "Kerberos: an Authentication Service for
Open Network Systems", in Proc. of USENIX Winter Conference, Dallas
(Texas), February 9-12, 1988, pp. 191-202.
17