Advances in Network and Distributed Systems Security PDF
Advances in Network and Distributed Systems Security PDF
ADVANCES IN
NETWORK AND
DISTRIBUTED
SYSTEMS SECURITY
IFIP TC11 WG11.4
First Annual Working Conference on Network Security
November 26-27, 2001, Leuven, Belgium
Edited by
Bart De Decker
Katholieke Universiteit Leuven, DistriNet
Belgium
Frank Piessens
Katholieke Universiteit Leuven, DistriNet
Belgium
Jan Smits
Technische Universiteit Eindhoven
The Netherlands
eBook ISBN:
Print ISBN:
0-306-46958-8
0-792-37558-0
No part of this eBook may be reproduced or transmitted in any form or by any means, electronic,
mechanical, recording, or otherwise, without written consent from the Publisher
http://www.kluweronline.com
http://www.ebooks.kluweronline.com
CONTENTS
Preface
vii
Acknowledgements
ix
Part One
- Reviewed Papers
15
33
45
61
75
93
107
125
139
153
vi
173
187
System
Christopher Krgel, Thomas Toth, Engin Kirda
Author Index
Infrastructure
Security
201
203
PREFACE
The first Annual Working Conference of WG11.4 of the International Federation for Information Processing (IFIP), focuses on
various state-of-the-art concepts in the field of Network and Distributed Systems Security.
Our society is rapidly evolving and irreversibly set on a course
governed by electronic interactions. We have seen the birth of email in the early seventies, and are now facing new challenging
applications such as e-commerce, e-government, . . . . The more our
society relies on electronic forms of communication, the more the
security of these communication networks is essential for its wellfunctioning. As a consequence, research on methods and techniques
to improve network security is of paramount importance.
This Working Conference brings together researchers and practioners of various disciplines, organisations and countries, to discuss
the latest developments in security protocols, secure software engineering, mobile agent security, e-commerce security and security for
distributed computing .
We are also pleased to have attracted two international speakers
to present two case studies, one dealing with Belgiums intention to
replace the identity card of its citizens by an electronic version, and
the other discussing the implications of the security certification in
a multinational corporation.
This Working Conference should also be considered as the kickoff activity of WG11.4, the aims of which can be summarized as
follows:
rn
to promote research on technical measures for securing computer networks, including both hardware- and software-based
techniques.
to promote dissemination of research results in the field of
network security in real-life networks in industry, academia
and administrative institutions.
viii
ACKNOWLEDGEMENTS
Organised by:
K.U.Leuven, Dept. of Computer Science, DistriNet
IFIP/TC-11 Working Group 11.4 (Network Security)
Supported by:
Scientific Research Network on "Foundations of Software
Evolution", and as such, partially financed by the Fund for
Scientific Research - Flanders (Belgium)
xi
PART ONE
Reviewed Papers
A ROLE-BASED SPECIFICATION OF
THE SET PAYMENT TRANSACTION
PROTOCOL
Hideki Sakurada
NTT Communication Science Laboratories,
NTT Corporation,
3-1 Morinosato- Wakamiya, Atsugi, Kanagawa, 243-0198 Japan
sakurada0theory.brl.ntt.co.jp
Yasuyuki Tsukada
NTT Communication Science Laboratories,
NTT Corporation,
3-1 Morinosato- Wakamiya, Atsugi, Kanagawa, 243-0198 Japan
[email protected]
Abstract
Keywords:
1.
Introduction
Figure 1.
2.
Before presenting our protocol specification language, we briefly explain our design policy for it.
Security protocols are often explained by showing a typical message
flow. For example, a typical message flow of the Needham-Schroeder
shared-key protocol (Needham and Schroeder, 1978) is shown in Figure
1. The first line means that a participant A sends a message composed of
her name, the name of the participant she wants to authenticate, and a
fresh nonce (random number) to the authentication server S . The second
K A B ,{ K A BA
, } K ~ ~ } K
line means that S replies with message {NA,B,
to A . This message is obtained by encrypting N A , B , a newly generated
key K A Bto be shared by A and B , and { K A B A
, } K with
~ ~the key K A S .
The { K A B , A } Kis~obtained
~
by encrypting K A B and A with the key
K B S . A, B , and N A on the second line refer to themselves on the first
line, respectively. Since A is assumed to know K A S and is not assumed
, } K ~ ~and
} can
K ~ ~
to know K B S ,she can decrypt { N A ,B , K A B ,{ K A B A
not decrypt {KAB,A}Kes.
Explanations by showing a typical message flow are concise and intuitive. However, they can not explicitly handle what each participant can
see in a message because each line expresses the sending and receiving
of a message at the same time. For example, on the second and the
third line in the previous example, A receives a messages that includes
Figure 2.
{ K A BA, } K and
~ ~sends it to B. Without assumptions on the knowledge
of A , it is not clear whether if she knows the content { K A H , A of
} the
message or not,. This ambiguity may cause human-errors in specifying
complex protocols that use cryptography frequently.
To avoid this problem, we specify a protocol as a collection of processes
that express the roles of the participants in the protocol. To illustrate
this, we show, in Figure 2, a process that are related to As role in the
previous example. Note that we use a variable X for the encrypted
component in the message from S to A. It is clear that A sends the
component X to B as it is.
Now we define our protocol specification language. Since we assume
the Dolev-Yao (Dolev and Yao, 1981) model, we define the set of messages as an algebra made from participants names, natural numbers
(including nonces), and keys with tupling and cryptographic operations.
The formal syntax of messages is as follows.
::= A
{ M1, . * * 7 M n )
{M)K
H(M)
I N
I
I
; participants name
; key
; natural number
; tuple
; encryption of message M using key K
; hash of message M
H is a collision-free one-way hash function. We write K- for the decryption key of a key K . For example, { A , NA}Kis a message obtained
by encrypting a tuple of A and N A with K , where A , N A ,and K are an
participants name, a nonce, and a key, respectively.
Since our language has variables, we define the set of t e r m s by extending the previous syntax with variables.
.._ ...
..I
I
I
I
I
End
Send T P
Recv T P
New X P
Let X = T P
Assert Q P
; silent process
; sending of message T
; receiving of message T
; generating of a fresh nonce X
; binding of T to the local variable X
; checking of proposition Q
We dont specify the receiver and the sender of a message in Send TP and
Recv TP, respectively because we assume that there exist intruders that
can capture any message on networks and can send any message they can
construct. We understand that a process of the form New X P binds free
occurrences of X in P. In other words, in a process New X P, the variables X that occur in P refer to the newly generated nonce X. We also
understand that a process of the form Recv T P does pattern-matching
and variable-binding. For example, a process Recv { N, H (N)} P accepts
(2001, H(2001)}, where variable N is bound to the number 2001. The
process however does not accept (2001, H(2002)} .
Assert Q P acts as P if proposition Q holds, otherwise it acts as End.
The set of propositions depends on the system used for analysis. Since
we use Isabelle (Paulson, 1994), a proof checker of higher-order logics,
we can use any proposition in Isabelle.
As an example, we specify the role of A, the initiator, in the NeedhamSchroeder shared-key protocol in Figure 3. The process is parametrized
by her name A, the responders name B , and the key K A S .
3.
Figure 3.
The process that specifies the initiator role of the Needham-Schroeder
shared-key protocol
Cardholder
Merchant
Payment Gateway
PInitReq
[InitRes
PReg
AuthReg
AuthRes
t-PRes
c
--
Figure 4 .
AuthRes message. The merchant receives it and sends the result to the
cardholder in PRes message.
Various cryptographic operations are used in SET. We define each of
the operations used in our protocol as a function on the set of messages
in our language. The definitions are essentially the same as what Bella et
al. did in their verification of the SET cardholder registration protocol
(Bella et al., 2000). We show the definitions in Figure 5 . The subscripts
r and s of names of participants indicate that the participants appear
as the receiver and the sender of a message, respectively. L(Ml,M2)
contains a linkage from message MI to message Mz.SO(A,, M ) is the
signature of a participant A, on message M . S ( A , , M ) is message M
with the signature of A s . Enc models a signed-then-encrypted message.
EncB models a signed-then-encrypted message with an external baggage.
EK and SK are the functions that relate each participant to his public
encryption key and his public signature key, respectively.
The processes of a cardholder, a merchant, and a payment gateway
are shown in Figures 6, 7 and 8, respectively.
Here, C, M , and P are the names of a cardholder, a merchant, and a
payment gateway, respectively. OD, P A N , PurchAmt and AuthReqAmt
are an order description, the account number of a payment-card, the
amount of money that a cardholder will pay, and the amount of money
that a merchant requires, respectively. PANSecret is used to prevent
guessing attacks on P A N . ValidPANSet is the set of valid PANS. It
does not appear in the SET specification books. We introduce it to
model the authentication of payment-cards. Dual signature is used in
the PReq message. The message is composed of the following three parts:
SO (C, {H(PIData),H ( OIData)}), EX(P, L(PIHead, OIData), PANData,
K ) and { OIData, H(PIData)}.
Gateway(P,C, M , ValidPANSet) =
// AuthReq
Recv EncB( M , P, (RRPID3, FransID, AuthReqAmt}
{ SO(C, { H({{ RansID, HOD, PurchAmt}, PANData}),
HOIData}),
EX(P, { { RansID, HOD, PurchAmt},
HOIData}, PANData, K l ) } )
Assert PANData E ValidPANSet
Assert PurchAmt = AuthReqAmt
Let AuthAmt = AuthReqAmt
New K2
//
AuthRes
10
4.
Concluding Remarks
In this paper, we have defined a language for specifying security protocols and have used it to formally specify the SET payment transaction
protocol. In our language, a security protocol is specified as a collection
of processes. Each process defines the role of a participant. This is useful
in specifying complex protocols concisely and unambiguity.
We have simplified the SET payment transaction protocol and have
specified it formally. We aim at verifying various security properties of
the protocol including those that Meadows and Syversion discussed in
(Meadows and Syverson, 1998). Our specification can serve as a starting
point for a formal analysis that take into account dual signature of the
protocol.
We have already implemented our specification language on the Isabelle theorem prover (Paulson, 1994) and have written the specification
in it. We are also developing a protocol execution model and a language
to describe security properties concisely. In the execution model, a state
of a participant is modeled as a process in our language and an environment, a set of variable-value pairs. The environment corresponds to the
data that the participant uses. For example, in a key exchange protocol,
the environment of a participant may include the name of the agent that
a participant will talk with and the key she will exchange. The environments can also be used to describe security properties concisely. In the
previous example, the agreement between the participants about the key
can be expressed as coincidence between parts of the environments of
participants. We plan to describe security properties that the SET payment transaction protocol should satisfy in our language and to verify
them. We further have to make clear the correspondence between the
original payment transaction protocol used in actual e-commerce and
the simplified version we presented in this paper.
We finally mention some related works. There are a lot of works
applying formal methods to protocol analyses. We will mention a few
languages used to specify protocols in these works. CSP (Hoare, 1985) is
used to specify security protocols in many protocol verification systems
(Schneider, 1997; Roscoe, 1995). It seems that protocol specifications in
11
Acknowledgments
The authors thank Kazuo Ohta, Akira Takura, and Kiyoshi Shirayanagi for their helpful comments and encouragement.
12
References
Anderson, R. and Needham, R. (1995). Programming satan's computer. In Computer
Science Today: Recent Trends and Developments, volume 1000 of LNCS, pages
426-440. Springer-Verlag.
Bella, G., Massacci, F., Paulson, L. C., and 'Tkamontano, P. (2000). Formal verification of cardholder registration in SET. In 6th European Symposium on Research in Computer Security (ESORICS'00), volume 1895 of LNCS, pages 159-174.
Springer-Verlag.
Bolignano, D. (1997). Towards the formal verification of electronic commerce protocols. In 10th IEEE Computer Security Foundations Workshop, pages 133-146.
Burrows, M., Abadi, M., and Needham, R. (1990). A logic of authentication. ACM
Transactions on Computer Systems, 8(1):18-36.
Cervesato, I. (2001a). Typed MSR: Syntax and examples. In Information Assurance
in Computer Networks: Methods, Models, and Architectures for Network Security
(MMM-ACNS'01), volume 2052 of LNCS, pages 159-177. Springer-Verlag.
Cervesato, I. (2001b). Typed multiset rewriting specifications of security protocols.
In 1s Irish Conference on the Mathematical Foundations of Computer Science and
Information Technology (MFCSIT'00), ENTCS. Elsevier. To appear.
Clark, J. and Jacob, J. (1997). A survey of authentication protocol literature: Version
1 .0. Technical report, Department of Computer Science, University of York.
Denker, G., Millen, J., and Rue, H. (2000). The CAPSL integrated protocol environment. SRI Technical Report SRI-CSL-2000-02, SRI International.
Dolev, D. and Yao, A. C. (1981). On the security of public key protocols (extended
abstract). In 22nd Annual Symposium on Foundations of Computer Science, pages
350-357. IEEE.
Formal Systems Ltd (1998). FDR2 user manual.
Hoare, C. A. R. (1985). Communicating Sequential Processes. Prentice Hall.
Kessler, V. and Neumann, H. (1998). A sound logic for analysing electronic commerce protocols. In 5th European Symposium on Research i n Computer Security
(ESORICS'98), volume 1485 of LNCS, pages 345-360. Springer-Verlag.
Lu, S. and Smolka, S. (1999). Model checking SET Secure Electronic Transaction
Protocol. In 7th International Symposium on Modeling, Analysis and Simulation of
Computer and Telecommunication Systems (MASCOTS'99), pages 358-365. IEEE.
Meadows, C. (1996). The NRL protocol analyzer: an overview. Journal of Logic Programming, 26( 2):113-131.
Meadows, C. and Syverson, P. (1998). A formal specification of requirements for
payment transactions in the SET protocol. In Financial Cryptography '98, volume
1465 of LNCS, pages 122-140. Springer Verlag.
Needham, R. and Schroeder, M. (1978). Using encryption for authentication in large
networks of computers. Communications ofthe A C M , 2 1 ( 1 2 ) : 9 9 3 - 9 9 9 .
Paulson, L. C. (1994). Isabelle: A Generic Theorem Prover, volume 828 of LNCS.
Springer-Verlag.
Paulson, L. C. (1998). The inductive approach to verifying cryptographic protocols.
Journal of Computer Security, 6(1):85-128.
Roscoe, A. W. (1995). Modelling and verifying key-exchange protocols using CSP and
FDR. In 8th IEEE Computer Security Foundations Workshop, pages 98-107.
13
M.V.Kisimov
Department of Computer Science
Rand Afrikaans University
Johannesburg, South Africa
Tel + 27 11 673-0163 Fax + 27 1 I 673-0163
[email protected]
Abstract:
Keywords:
16
1.
INTRODUCTION
1.1
Outline
2.
2.1
17
Customer Satisfaction
2.2
18
2.3
2.4
19
2.5
2.6
Summary
20
3.
PROPOSED MODEL
3.1
Introduction
The proposed model outlines solutions for the problems encountered and
described in the previous section as well as adding some extra features,
which improve the overall security of the model. The model presents a
methodology called Trusted Third Party (TTP), for securing a totally
unsecured client, willing to perform online purchases, the authentication of
communicating parties during this online transaction, as well as a secure
transmission of sensitive information between them in the process of
completing the online purchase.
Fig 1.
3.2
Overview
21
the desired e-Merchant's web site (step 1). At this point the Merchant's
server initiates a SSL session as specified in [SSL 96], with the online
shopper. Once the initial SSL handshake procedure is initiated and the Server
DC is delivered to the Client, the Server requests similar DC from the Client
(step 2). If the Client is not in a possession of such certificate (step 3), the
SSL session with the Client is interrupted and the client is notified that he/she
needs to perform certain steps in order for the transaction to be secured. If he
does decide to take up these steps, the shopper is redirected to the trusted
CA's web site (step 4), while his session with the Merchant remains frozen.
At this point the root certificate of the trusted CA is delivered to the shopper
(step 5), followed by a small application, which is too installed at the client's
machine (step 6). Immediately after that a Java applet is delivered to the
client (step 7), which communicates with the installed application from step
6 and generates two pairs of asymmetric keys, followed by the generation of
corresponding DC. This completes the securing of the client and is followed
by resumption of the frozen Merchant session. This sees a different Java
applet delivered to the client (step 8) used for credit information gathering
and its encryption by the client residing application, as well as its
transmission to the Merchant (step 9). Steps 8 an 9 do not follow through
from entity to entity. This is done with the purpose of representing multiple
transmissions of data between clients and merchant, once a secure
communication between the two has been established and the appropriate
authentication has been performed on either side.
3.2.1
Based on the principal of trust, the trusted third party does not participate in
any online transactions. Its sole purpose is to provide means of authentication
and encryption for other entities, in order for them to be able to perform
secure transactions over an unprotected network. Such attributes are provided
by Certification Authorities [BPKIC 01]. The trusted third party within this
methodology will be referred to as Master CA. The Master CA, consistent
with the requirements of a CA, has a root certificate. One difference, which
is vital to this section, is to mention that the root certificate of the Master CA
is not self-signed, which is generally the practice of most well known CAs, it
however is cross certified by a third party CA, which does not belong or is
connected in any way to the Master CA.
22
3.2.2
3.2.3
3.3
Initial Steps
23
3.4
Once the online shopper is redirected to the Master CAs web site, the CAs
Server detects his Internet Browsers make. That done, the shopper is further
redirected (the whole process is automated) to download the Master CAs
Root DC, which is cross certified by the maker of the shoppers Internet
Browser. This done, the shoppers Internet Browser verifies the digital
signature of the cross certifying third party CA (not the Master CA). This is
possible, because each Internet Browser comes with the root certificate of the
maker of the IB. This coupled with the fact that the root certificate of the
Master CA is cross certified by the private key of the maker of the online
shoppers IB makes this verification possible. From this point onwards the
following procedures become more automated.
3.4.1
3.5
Background process
Once the Master CAs Root Certificate has been installed, any file or
application signed with the private key of the Master CA will be guaranteed
and be verifiable by the online shopper to be authentic and non malicious.
This is used for the base of downloading a small application, which is
24
Application
<-
-1- - --
>
-----
MasterCA
-..
__---
Fig 3.
The applet will simply be able to pass information to the process in the form
of structured data.
3.6
3.6.1
Review
The next step of the process sees the download of the application and its
installation followed by continuation of the connection with the Master CAs
server. After the installation procedure of the background process is
complete, the client is redirected by the CAs server to download a Java
applet.
3.6.2
This applet is signed by the Master CAs private key. The purpose of this
applet is to generate two pairs of keys using the RSA algorithm, or a similar
asymmetric algorithm. These key pairs have the purpose of encryption and
digital signing respectively. Once the applet is downloaded, its digital
signature is verified by the IB. Following this, the two pairs of keys are
generated. The public keys are passed to the background process, which
signs them with the just generated signing private key, encrypts them with
the public key of the Master CA, obtained from its certificate and passes
25
them back to the applet. The applet sends this encrypted information back to
the Master CA, which decodes this data and verifies the digital signature.
Digital Certificates are created, encapsulating these public keys. The
certificates are listed in the Master CAs Public Directory as well as these
DCs being sent back to the applet, which together with the corresponding
private keys are passed to the background process, for the purpose of storage
and further use.
3.6.3
Shopper
Fig 4.
3.6.4
Summary
This is the last step for securing a client in preparation for secure
communication with a possible e-Merchant. This completes the process of
establishing the basis of a methodology for secure and correct authentication
of communicating parties, as well as for secure transmission of sensitive data
over an open network. It is important to note that the process of securing the
client, can be performed by anybody willing to adopt the methodology of
secure communication as offered by the Master CA. This process does not
have to be initiated by an e-Merchant who detects insufficient security on a
clients machine; any concerned online shopper can initiate it.
26
3.7
3.7.1
Once the securing of the client is complete, there is no need for the abovedescribed procedures to be repeated ever again. The following step can be
part of a resumption of a frozen session between a previously unsecured
client with the e-Merchant, or as an initial step for submitting sensitive credit
information by the client to the Merchant in completing the online
transaction. This next step sees a Java applet downloaded from the eMerchants web site to the clients machine. The purpose of this applet is to
collect sensitive credit information from the client and return it to the
Merchant.
3.7.1.1
The Java applet
The Java applet is signed by the Master CAs private key. The applet takes as
an external component the Merchants Digital Certificate. The applet further
has security permissions to communicate with the clients background
process in the same manner described above as with the communication
between the applet used for key pair generation by the Master CA.
3.7.2
Merchant Authentication
27
In the possibility that at any authentication step yields a negative result, this
would indicate an attempt for a security breach by a malicious party and the
transaction is discontinued.
3.7.3
Information encryption
Once the authentication process on the client side is complete the shopper is
prompted to enter credit information in the downloaded applet. This
information is then passed to the clients background process, which includes
the shoppers DC and encrypts the whole package with the Merchants public
key, signs it with his Digital Signature private key and passes it back to the
applet which in tum transmits it to the online Merchant.
3.7.4
Client Authentication
Once the encrypted data is received, alongside with the Clients Digital
Certificate, a chain of trust is established if possible, based on the existing
trusted root certificates on the Merchant side. Following this, the certificates
authenticity is checked in the issuing CAs CRL as well as this certificates
validity is checked, by downloading this certificate from the CAs Public
Directory and performing a comparison versus the certificate transmitted by
the Client. If this authentication process does not run into any problems then
credit card information, once decoded is verified using appropriate channels.
This completes the transaction and the online shopper is notified of the fact
that his/hers transaction has been performed or not.
3.7.5
Summary
28
4.
4.1
The above described model serves the purpose of securing a client with the
required attributes for him or her to be able to perform a secure and
authenticated transaction with another party, equipped with similar attributes,
in a semi transparent manner. One of the attributes referred to is a pair of
Digital Certificates. These certificates are issued to every client who has
applied for them using the described above model or simply on his own
initiative applied for them. These two DCs have the purpose of creating a
digital identity for an applicant. This digital identity is created and based
upon information provided by each applicant. This varies from first name
and email address to surname and place of birth. Such information can be
easily falsified and thus the digital identity based on it becomes
untrustworthy. Examples of such digital identities, based on unverified
information are represented by most level one certificates issued by most
public CAs, to the general public.
4.2
Creating Trust
It becomes clear from the previous section that verification of user identity
becomes vital to the proposed models functionality. Such authentication of
user identity can only be performed by the trusted third party and that is the
Master CA. User authentication can be performed by a physical verification
of the user details, into public records or relative government departments.
This is assuming that the Master CA is based or has representation in each
country, in which it has clients or applicants. Even if this was the case,
physical verification of an applicants identity would take a reasonable
amount of time, far beyond what would be considered seamless and
transparent process for securing a client, as specified by the proposed model.
This would obviously not fit easily or at all in the described scenario of
previous sections and would seriously impede the theoretical and practical
flow of this methodology. Based on this, the need for an institution, which
can easily and quickly verify the identity of an applicant, is required.
Considering the fact that an applicant is at the point of purchasing goods or
services, before he or she is redirected to the TTP, it must be apparent that
this applicant is in the possession of some credit information such as a credit
card, which is issued by a reputable financial institution, which are banks in
most cases. Such institutions have performed a certain degree of
29
4.2.1
Verification details
The specific details required for an applicant to be issued with a high trust
certificate, deal with specific purchasing attributes e.g. credit card number,
coupled with the card owners name and a specific secret key. Such a key can
be the pin number for this card or some secret code known only by the
financial institution and the card owner. This would verify that the card is not
merely stolen but it is the possession of its rightful owner. Such supply of
information would be necessary for any other purchasing attribute apart from
a credit card.
4.2.2
Finalization of authorization
Once all the required information is supplied to the TTP this data is passed to
the relevant financial institution or issuing authority of purchasing attributes,
such as credit cards, in order for this data to be verified. Once this
information is verified, the financial institution can vouch for the identity of
the applicant. This will place a very high trust in the resulting Digital
Certificate(s). Following this approach, a financial institution such as a bank,
30
5.
CONCLUSION
This paper deals with presenting a new methodology for secure mutual
authentication between two communicating parties over an open network.
The process described here identifies and outlines clear steps for securing
network communications and the data being transmitted in them. It takes a
single point of trust in the name of a Certification Authority and with the
help of small network based applications and applets constructs authentic
way for identifying communicating hosts to one another via the use of
asymmetric cryptography and Digital Signatures. The end result represents
increased consumer confidence in a possible e-commerce environment,
avoidance of current security pitfalls and potential decrease in credit card
fraud.
6.
[SSL 96]
[PGP 95]
[BPKIC 01]
[DS 97]
[SON 97]
[CTNS 00]
[VS 01]
[SET 97]
31
SOFTWARE-BASED RECEIPT-FREENESS
IN ON-LINE ELECTIONS
Emmanouil Magkos*
Department of Informatics, University of Piraeus
80 Karaoli & Dimitriou, Piraeus, GREECE
[email protected]
Vassilios Chrissikopoulos
Department of Archiving and Libmry Studies, Ionian University
Corfu, 49100, GREECE
[email protected]
Nikos Alexandris
Department of Informatics, University of Piraeus
80 Karaoli & Dimitriou, Piraeus, GREECE
[email protected]
Abstract
34
1.
Introduction
Due to the rapid growth of the Internet, electronic voting could be a viable alternative for governmental elections, especially in the case of geographically distributed voters with access to open computer networks. If
not carefully designed and implemented, e-voting systems can be easily
manipulated, thus corrupting election results or violating voters privacy.
In traditional elections, a voting booth does more than allow voters
to keep their vote secret. The voting booth actually requires that voters
vote secretly. If the privacy of the vote was allowed but not required,
then a voter could easily sell her vote to a vote-buyer, or be coerced by a
coercer. All receipt-free schemes met in the literature use hardware assumptions to achieve receipt-freeness. In [15] there are tamper-resistant
smartcards that keep some information secret from the voter. Most other
schemes 1, 2, 9, 10, 12, 13, 14, 19] make physical assumptions about the
communication channel between the voter and the election authorities.
More specifically, they assume the existence of :
Untappable channels from the authority to the voter [l, 9, 10, 19]
Physical Voting Booths [2, 12].
Our Contribution.
We present a software-based receipt-free election scheme, which is secure against a coercer who has tapped all the
communication lines between a voter, say Victor, and the voting authorities. Victors vote is a computational time-lock puzzle [17], i.e.,
it requires a precise amount of time (real time, not CPU time) to be
solved, unless a trapdoor information is known in advance. In our election scheme, the trapdoor information is only known to a voting authority. A second authority exists to make sure that votes remain secret
35
until the end of the voting period. A coercer, who wants to find out who
Victor voted for, has no other way than running a dedicated computer
continuously for a certain amount of time. Even if Victor has incentives to prove his vote to a vote-buyer, there are no means to prove it,
since he does not know the trapdoor information. We do not assume
any untappable channels between Victor and the voting authority, or
any hardware devices. The only physical assumption we make use of
is an untappable channel between the two voting authorities that are
employed in our system.
The cost paid for receipt-freeness is that the voter constructs her vote
inefficiently, by repeatedly squaring a given value, for a significantly large
amount of time. However, we believe that this is a minimal tradeoff for
a software-based receipt-free solution. To our knowledge, our scheme
is the only receipt-free scheme in the literature without the physical
assumption of an untappable channel between the voter and the voting
authority. Voters axe able to exercise their electoral rights from their
home by using a personal computer with Internet access. Furthermore,
our scheme satisfies most security requirements met in the literature.
2.
In our model we assume that a coercer may have tapped the communication channel between the voter and the voting authority. It is clear
enough that the vote should be encrypted, for vote secrecy. The trapdoor
information for the encrypted vote may consist of a secret decryption key
and/or the randomness used in a probabilistic encryption scheme. If this
trapdoor is in the possession of the voter (e.g. as in [3, 13, 14]) then it
could also serve as a receipt for the vote. Even if the voter lies about
the encrypted vote [l, 9, 10, 19], a coercer who taps the communication
channel will eventually find out the value of the vote by eavesdropping
on the confidential information exchanged between the voter and the
authority. Note that simple encryption does not serve our purposes: a
coercer will tap the encrypted message as it is being sent from the voter
to the authority (or vice versa), and then require the voter to reveal
the trapdoor information. Even worse, the coercer may demand that
the voter uses some specific randomness. To summarize: the simplest
bit of information that will make the voters life easier during the construction of the encrypted vote, may also make the coercers life easier.
Thus, software-based receipt-freeness in the presence of a coercer who
taps communication lines can only be achieved if the voter does not use
any secret information other than the vote itself.
36
3.
Building Blocks
Our voting scheme makes use of blind signatures [4], which is a well
known technique, already implemented with the RSA algorithm [16, 20].
Blind signatures are the equivalent of signing carbon-paper envelopes:
a user seals a slip of a paper inside such an envelope, which is later
37
signed on the outside. When the envelope is opened, the slip bears the
carbon image of the signature. Furthermore, users in our scheme lock
their votes in a time-lock puzzle. The mechanism is a variation of a
well-known technique [17] and is presented below.
3.1.
Time-lock Puzzles
Our variation.
In our model, Alice is the voter and Bob is the
coercer. Alice does not know the trapdoor information @ ( n )(if she
knew it she could hand it over to Bob, e.g. in a vote-selling scenario),
so she cannot construct the puzzle efficiently. In addition, there are two
voting authorities. The first authority selects n, p and q, and publishes
n and t , where t is the number of squarings that Alice has to perform.
Alice selects a as previously and computes a2t. Alice's vote v takes the
place of the key K in equation (l), thus yielding:
C"
=v
+ a2'(mod n )
(2)
The public information will now be the set ( n ,a ,t , Cv). When the time
comes, Alice uses a clear channel to submit the time-lock puzzle of her
vote to the second voting authority. The first voting authority, who
possesses the trapdoor information is(n),will later cooperate with the
38
4.
In our protocol there are N voters and two authorities, the Registrar
and the Voting Center. The Registrar acts as an intermediate between
the voter and the Voting Center, while the Voting Center is responsible
for tallying the votes. We assume that each authority is semi-trusted [7],
i.e., the authority may misbehave but will not conspire with another
party. We also make use of a bulletin board, which is publicly readable.
Only the Voting Center can write to it, and nobody can delete from it.
The Voting Center is committed to everything that is published on the
bulletin board.
There is a certificate infrastructure and all participants are legally
bound by their signatures. Voters and authorities possess a private/public key pair for signature and encryption as well as the corresponding
certificates, issued by a trusted Certification Authority. We also assume
that there is an untappable channel between the Registrar and the Voting Center. Communication between voters and authorities takes place
through an anonymous channel: voters can send/accept messages that
cannot be traced (e.g., by using traffic analysis). For example, e-mail
anonymity can be established with Mixmaster re-mailers [ 5 ] , and HTTP
anonymity can be established with services such as the Onion-Routing
system [8]. The election protocol is depicted on Figure 1. It is split into
four stages, the Authorizing stage (Steps 1-2), the Voting stage (Steps
3-5), the Claiming stage (Step 6) and the Tallying stage (Steps 7-8).
Authorizing Stage.
A voter, say Victor, wishes to get a certified
pseudonym that will identify him to the Voting Center. Victor creates
a private/public key pair (SKps, P K p s ) , blinds P K p s (the public tallying key) to create the blinding bl and then signs a message consisting
of bl and the unique election identification number Electid (Step 1).
39
No tat ion
RE = the Registrar
V = the voter's
true
identity
(4)
~~,
SIGV[V.Elect-id]
shrdfedshuff l e d
.......... ............1
v v
=1..N
.............................................................
(7)
ii
.......... D
........Wn)
...... .b
I
@(n)
= trapdoor
__.*Normal
- - - - +Anonymous channel
.............
............. bUntappable Channel
shh f f 1 ed
Victor sends these to the Registrar and gets the blinding signed by the
Registrar (Step 2). Victor unblinds the Registrar's signature on bl and
is left with a certificate of the public tallying key, C E R T ( P K p s ) . This
certificate will be used later by the Voting Center to verify signatures
that are made with the secret tallying key, PKps The public key P K p s
will be Victor's official pseudonym.
40
Claiming Stage.
In step 6, the Voting Center publishes on the
board, in random order, the list of the authentic and pseudonymous
signatures S I G x and SIGps,, i = 1, ..., N. The Voting Center also
publishes all the time-lock puzzles TLP(votei) of the votes that have
been successfully submitted. In case Victors time-lock puzzle is not
published, he can protest by broadcasting SIGvc[TLP(vote)],with no
need to reveal in which way he actually voted. This is called an open
objection to the tally, introduced by Sako in [18].
Tallying Stage.
5.
Security Analysis
We evaluate the security of our scheme by examining some basic requirements, which most researchers seem to agree upon [6, 20]:
Eligibility.
Unduplicability.
(No one is able to vote more than once). The Registrar will not issue more than one tallying keys for each voter. In Step
6, all the authentic signatures of the voters are published. Consequently,
it is not possible to exist more tallying keys than authentic public keys,
so the Registrar cannot misbehave without being caught.
Untraceability.
(All votes remain anonymous). When Victor submits a tallying key for certification, he signs a message and the Registrar
checks his identity. However, the tallying key is blindly signed by the
Registrar in Steps 1-2. Consequently, the Registrar cannot trace any
signature SIGps, published in Step 6 , back to Victors real identity.
Furthermore, Victor in Step 3 uses an anonymous channel to submit
his validated time-lock puzzle. The puzzle cannot be traced back to its
sender, since it is signed under a certified pseudonym (the tallying key).
41
The link between Victors pseudonym and his real identity cannot be
done by either authority.
Fairness.
Atomic Verifiability. (Voters are able to verify that their vote has
been counted correctly). In Step 6, all the time-lock puzzles of the votes
are published by the Voting Center. Victor can check that his time-lock
puzzle has been published on the board. If not, Victor makes an open
objection: he anonymously broadcasts the receipt that was sent to him
in Step 4.
Receipt-Freeness. (No voter is able to prove the value of its vote).
The receipt freeness property is separately discussed in Section 2. It
must be noted that the scenario of a coercer who observes the voters at
the moment they vote, is not addressed at all. This attack cannot be
prevented by any e-voting scheme and is rather unrealistic in large-scale
elections.
Responsibility.
(Eligible voters who have not voted can be identified). This is an optional requirement, desirable in Australian elections [11]. All voters, who receive in Step 4, an acknowledgment of their
votes from the Voting Center, sign a message by using their authentic
signature keys and send this message to the Registrar, in Step 5 . The
Registrar has already received, in Step 1, the authentic signatures of all
eligible voters, so he is able to identify, by comparing the corresponding
lists, the eligible voters who have not voted.
42
6.
Discussion
References
[l] D. Alpert, D. Ellard, 0. Kavazovic, M. Scheff. Receipt-Free Secure Elections 6.857 Final Project, 6.857 Network and Computer Security, 1998,
http://www.eecs. harvard.edu/~ellard/6.857/final.ps.
[2] J. Benaloh, D. Tuinstra. Receipt-free secret-ballot elections, 26th Annual ACM
Symposium on the Theory of Computing, Proceedings, 1994, pp. 544-553.
[7] M.Franklin, M. Reiter. Fair exchange with a semi-trusted third party, 4th ACM
Conference on Computer and Communications Security, Proceedings, ACM 1997,
pp. 1-6.
[8] D. Goldschlag, M. Reed, P. Syverson. Onion Routing for Anonymous and Private
Communications, Communications of the ACM, Vol. 42(2), pp. ACM 1999, pp.
39-41.
[9] M. Hirt, K. Sako. Eficient Receipt-fie Voting Based on Homomorphic Encyption, Advances in Cryptology - EUROCRYPT 2000, Proceedings, Lecture Notes
in Computer Science, Vol. 1807, Springer-Verlag 2000, pp 539-556.
43
Abstract:
The signing structure of a multisignature scheme specifies the signing order for
all signers when signing messages, and any multisignature not obeying the
specified signing order will be verified as invalid. In accordance with the
different responsibilities of the participant signers, the signing structure of a
multisignature scheme could be further classified as the following three types:
serial, parallel and mixed, where the mixed structure is regarded as the mix of
the serial and the parallel. Based on the well-known ID-based public key
system, we will propose three ID-based structured multisignature schemes and
each scheme respectively realizes the serial, parallel and mixed signing
structures. In the proposed schemes, the length of a multisignature is fixed and
the verification of a multisignature is efficient, regardless of the number of
signers involved. Besides, any invalid partial multisignature can be effectively
identified during the generation of the multisignature.
Keywords:
1.
INTRODUCTION
46
signature scheme indicates the signing order among all participant signers
when signing messages, As a consequence, the multisignature of a message
in a structured multisignature scheme is said to be valid when the following
conditions are satisfied: (i) All signers had signed the message; (ii) All
signers perform their signing operations in compliance with the specified
signing structure; (iii) The multisignature and all partial multisignatures
generated during the multisignature generation process have been successfully verified. Typical applications of the structured multisignature scheme
are multisignatures used in a corporate organization or hierarchical environment. For example, a legitimate working report should be signed accordingly
in the order of the operators, the section leader and the department manager.
Signing structures can be classified into three basic types: serial, parallel, and
mixed, where the mixed structure is the mix of the serial and the parallel. For
the serial structure, all signers sign messages in a predetermined sequence,
and hence the generated multisignatures are sensitive to the signing order. As
to the parallel structure, all signers sign messages in a parallel manner and
the generated multisignatures are independent of the signing order. In the
mixed structure, the signing structure is composed by substructures that
could be serial, parallel, or another mixed structure, and the generated
multisignatures are sensitive to the signing order specified in the
corresponding signing structure. Figure I depicts these three types of signing
structures.
( c ) Mired ( e x a m p l e )
__1c
: signing order
: signer
47
48
2.
Let G=(u,,u2,
..., u,,)
be
a group consists of
signers and
ski = ( s k l i , s k 2 , ) be uis private key. The verification key for the partial
multisignatures generated by ui is named partial verification key and
denoted by P K , . The verification key for verifying the multisignatures
generated by G is named public verification key and denoted by V K , .
For each signer ui E G ,his identity IDi is a message digest of his/her
public identification information li using a one-way hash function, said F,
such that IDi = F ( l i ) . As defined in other ID-based crypto schemes [7, 18191, I i can be a combination of uis name, age, gender, telephone number or
home address, provided that this combination can uniquely identify ui . Note
that a system authority SA is assumed [7, 18-19] for setting up the ID-based
cryptosystem.
2.1
Signing Structure
Two types of notations are used for describing the signing structures.
SER[ ] denotes the serial structure; and PAR[ ] the parallel structure. For
GI =(u,,u2,u3], if the legal signing sequence is < u I , u 2 , u >
3 , then the
49
(a)
S E R [ U , . P A R [ U ~ . U ~ ] .( Ub ~) A]d d i n g n o d e s s a n d f r o (a)
0
: signer
4
:
signing order
2.2
System Parameters
2.3
50
3.
3.1
(If the test fails, then the signing process is stopped and ui-] is
reported as a malicious signer.)
Step 2. Compute the partial multisignature Si by
52
Proof:
Multiplying h(m) to Equation 2 and raising both sides of it to exponents
with
base
a
,
it
yields
a
recursive
relation
ak, h ( m ) = ak,-t h ( m ) s k l , . a h ( m ) s k 2 , (modN) , where the k, E Z i is randomly
chosen. By the above fact and a k o h ( m ) = w ~ (=S,(modN)
~ )
, we can
Q.E.D.
conclude Si = akih'm)(mod N ) by mathematical inductions.
Q.E.D.
THEOREM 2. Any disorder signing operation regarding SER[u, ,u2 ,...,u n ]
will be identified with the probability of ( w - l ) / w.
Proof:
By following SER[uI,u2,.., u,], u i should sign the partial multisignature
Si-] generated by
for message rn after verifying S,-, 's validity. Assume
a disorder operation takes place before ui signs, whether by mistake or
intentionally, that u j , where i c j I n , signs S,-]instead of ui . Then, the
partial multisignature generated hereby will be
Si = S,-,
ski.
1
~
.ah ( 1 n ) . s k 2(mod
N) .
(7)
53
In order for S,! to be valid, two distinct private keys (i.e. ski and s k i ) have
to satisfy Equation 7. Since the values of sk1,'s for all ui E G are randomly
selected and s k 2 , ' s are computed from Equation 2, it is to see that the
probability for ski and ski to satisfy Equation 7 is l / o . Therefore, the
probability for successfully identifying a disorder event is (W- 1)/ w . Q.E.D.
3.2
k, =PK,-'.rmodw.
Step 2. Select a random number ko, where k, E 2
., .
Step 3. Randomly select s k l , E 2: for i =1,2, ...,n .
Step 4. Calculate the value of sk2; as follows, for i =1,2,...,n .
sk2, = k , - k , .sklimodo.
Step 5. Securely distribute sk, = ( s k l j , s k 2 , )
Step 6 . Calculate the value of v by
to u, E
54
(10)
(If the test fails, then the signing process is stopped and u j is
reported as a malicious signer.)
Step 4. Calculate the multisignature MS after receiving and verifying all
S j 's, for j # i , u j E G, by the following equation.
n
1=1
MS = vh("). (n . S i )mod N .
(MS)vKG= ph('")(modN ) .
(12)
(n
MS = v ~ (. ~ )
1=1
55
Si)(modN)
3.3
~ k 2=, k; -(C
kj).skl,modw
u j E prev(u,)
56
ah(m).sk2,
mod N ,
<nuk E prev(t)Sk)modN .
Note that before u , signs, he should have verified the validity of each
received partial multisignature S j for u j E prev(u,) by testing if
(Sj)pK,
= ph'"'(rnodN).
57
If the test fails, the signing process is stopped and the corresponding u, is
reported as a malicious signer.
(MS)vKG= /?h(m)(mod
N).
4.
SECURITY ANALYSIS
a message m.
Analysis:
58
5.
CONCLUSIONS
ACKNOWLEDGEMENT
The authors would like to thank the anonymous referees for their useful
comments on improving our paper. This work was partially supported by the
Ministry of Education, Taiwan, Program of Excellence Research 90-E-FA041-1.
59
REFERENCES
L.M. Adleman and K.S. McCurley, Open problems in number-theoretic complexity,
II, Proc. First Algorithmic Number Theory Symposium, Springer-Verlag, 1994,
pp.291-322.
C. Boyd, Digital Multisignatures. IMA Conference on Cryptography and Coding,
Oxford University Press, 1989, pp. 241 -246.
C. Boyd, Multisignatures based on Zero Knowledge Schemes, Electronics Letters. 27
(22), October 199 1 , pp. 2002-2004.
M. Burmester. Y. Desmedt, H. Doi, M. Mambo, E. Okamoto, M. Tada and Y. Yoshifuji,
A structured EIGamal-type multisignature scheme, Proc. Workshop on Practice and
Theory in Public Key Cryptosystems, LCNS 1751, Springer-Verlag, 2000. pp. 466-483.
Y.S. Chang, T.C. Wu and S.C. Huang, EIGamal-like digital signature and
multisignature schemes using self-certified public keys, The Journal of Systems and
Software, 50 (2). 2000, pp. 99-105.
H. Doi, E. Okamoto and M. Mambo, Multisignature schemes for various group
structures, The 36-th Annual Allerton Conference on Communication, Control, and
Computing, 1999, pp. 7 13-722.
A. Fiat and A. Shamir, How to prove yourself: practical solution to identification and
signature problems. Advances in Cryptology - CRYPTO86, Springer-Verlag, 1987, pp.
I 86- 194.
T. Hardjono and Y. Zheng, A practical digital multisignature scheme based on discrete
logarithms. Advance in Cryptology-A USCRYPT92, Springer-Verlag, 1993, pp. 122132.
L. Ham and T. Kielser, New scheme for digital multisignatures, Electronics Letters,
25 (15), 1989, pp. 1002-1003.
K. ltakura and K. Nakamura, A public-key cryptosystem suitable for digital
multisignature, NEC Research and Development, Vol. 71, October 1983, pp. 1-8.
M. Mambo, K. Usuda and E. Okamoto, Proxy signatures: Delegation of the power to
sign messages, IEICE Tran. Fundamentals, E97-A (9), 1996, pp. 1338-1353.
M. Mambo, K. Usuda and E. Okamoto, Proxy signatures for delegating signing
operation, Proc. Conf on Computer and Comm. Security, ACM press 1996, pp. 48-57.
K. Ohta, S. Micali and L. Reyzin, Accountable-subgroup Multisignatures,
Manuscript, Massachusetts Institute of Technology, Cambridge, MA, USA, Nov. 2000.
K. Ohta and T. Okamoto, A digital multisignature scheme based on the Fiat-Shamir
scheme, Advance in Cryptology-ASIACRYPT91, Springer-Verlag, 1993, pp. 139-148.
K. Ohta and T. Okamoto, Multisignature schemes secure against active insider
attacks, IEICE Transactions on Fundamentals, E82-A ( 1 ), 1999, pp. 21-31.
T. Okamoto, A digital multisignature scheme using bijective public-key
cryptosystems, ACM Tran. Computer Systems, 6 (8), 1988, pp. 432-441.
R.L. Rivest, A. Shamir and L. Adleman, A method for obtaining digital signatures and
public key cryptosystems, Comm. of the ACM, 21 (2), 1978, pp. 120-126.
A. Shamir, Identity-based cryptosystems and signature schemes, Advances in
Cryprology - CRYPTO84, Springer-Verlag, 1985, pp. 47-53.
T.C. Wu, S.L. Chou and T.S. Wu, "Two ID-based multisignature protocols for
sequential and broadcasting architectures, Computer Comm. 19 (9-10). 1996, pp. 851856.
Marina Pudovkina
Moscow Engineering PhysicsInstitute
maripa @online.ru
Abstract:
Stream ciphers are often used in applications where high speed and low delay
are a requirement. The Solitaire keystream generator was developed by B.
Schneier as a paper-and-pencil cipher. Solitaire gets its security from the
inherent randomness in a shuffled deck of cards. In this paper we present
probabilistic relations for the Solitaire keystream generator and describe their
properties.
Keywords:
1.
INTRODUCTION
62
2.
63
2. The transformation FZ:X+Y=(y[O],. ..,y[n-1]). Let x[j]=n-2(B). If j# n1 and n-2 then move the B joker two elements down: y[j]=x[j+1],
y[j+l]=x[j+2], y[j+2]=n-2 (B). If j=n-1, move the B joker just below
x[ 1]. If j=n-2, move it just below x[0].
3. The transformation F3: Y 4 Z=(z[0], ...,z[n-1]). Perform a triple cut.
That is, swap the elements above the first joker with the elements below
the second joker. "First" and "second" jokers refer to whatever joker is
nearest to, and furthest from, the top of the deck. Ignore the "A" and "B"
designations for this step. The jokers and the elements between them
don't move; the other elements move around them.
4. The transformation F4: Z 3 S,+,. Perform a count cut. Let z[n-1]=k.
Swap the elements z[0],. ..,z[k] with the elements z[k+l],.. ., z[n-2]. The
element z[n-1] does not swap. A deck with a joker as z[n-l] will remain
unchanged by this step.
The output function f
Let si+,[O]=q.
If S~+~[O]=A
or S~+~[O]=B
then we have not an output element.
B then the output element ki=si+1[q] (mod m).
If S~+~[O]+A,
64
3.
THEOREM 1
Let dA(j)be the A joker distance at time j and dBQ) be the B joker distance at
time j . Let Sj=(F)( So) and kj =s,[n-l]. If for any t<j: dH[t]#n-i, dB[t]#n-2,
d~[t]
dB[t] #dA[t]+l and dA[t] #dB[t]+l, then the A joker distance and
the B joker distance satisfy the following relations.
1. If j=2i then
i-1
1-1
d&i)=[d~(O)+
2. If j=2i+1 then
i-l
d ~ ( 2 i + l ) =[-d~(O
(k2,+2
)+
-c
k*j+,)-(1+k2i+1)(mod n)-i-2] (mod n-1)
j=0
i- l
(2)
Proof.
We conduct the proof by induction. Let dlA be the A joker distance in a
permutation Y and dlHbe the B joker distance in a permutation Y Let dAbe
the A joker distance in a permutation Z and dlB be the B joker distance in a
permutation Z. Consider j=2k+l.
Let us remark that
65
d~(2k+l)=d~(2k)+l,
Recall that F2 FI(S2k)=Y and F3(Y) =Z. Note that the distances in
permutations SZk, Y, and Z satisfy the following relations.
d ~ ( 2 k +1)=n-l-d~(2k+ 1 )=n-3-dB(2k) ,
&+I
d&k+ 1)=[d~(2k+I)-( k2k+l+1) (mod n)] (mod n- I )=[n- 1-dB(2k+ 1 )(k2k+\+1) (mod n)] (mod n-l)= [-d~(2k+1)-( k2k+,+l)] (mod n-1)=
[-de(2k)-2-( k2k+i+l)l(mod n-1)d&k+ 1)=[dB(2k+ I)-( k2k+l
+ 1) (mod n)] (mod n- 1)= [n-1 -d,42k+ 1)(kZk+]+l)(mod n)](mod n-1)=[+fA(2k+1)-( k2k+l+l)(modn)] (mod n-1)
= [-d~(2k)-1-( k2k+l+1) (mod n)] (mod n-1).
It follows that
dA(2k+I)= -[dB(2k)+( I+k2k+l)(modn)+2] (mod n-I),
d ~ ( 2 k+I)= -[d~(2k)+(1+k2k+l)(modn)+l] (mod n-I).
Therefore,
de(2k +2)=-[d~(2k+l)+( l+k2k+2)(mOd n)+l] (mod n-l)= -[-d~(2k)(I+k2k+i)(mOd n)-2+( I +k2k+z)(mOd n)+l] (mod n-l)=-[-d&k)
+(k2k+2kzk+i)-l] (mod n-l)= [dB(2k) + (k2k+l-kzk+2)+1] (mod n-1).
We apply an induction over k and obtain.
66
x
k
k2k-k2k+2)+2](mod n-1)=....=[dB(0)+
(k2j+l- k2j+2)+k+l](modn-1).
j=O
c
c
(mod
n-l)=
-[dB(O)+
k-1
j=O
k-1
j=0
d~(zk+l)=-[d~(2k)+(
l+k2k+l)(mod
n)+l]
(mod
n-l)=
-[dB(0)+
k-1
(k2j+l-k2j++k+I+( l+k2k+l)
(mod
n)]
(mod
n-l)=[-dB(0)+
j =O
Proof.
Really, P( d~=n-l,d~=n-2,d~=n-I,d~=
dA +l,dA=dB +1}5341-l)!/n! +2*
(n-2)!/n!=3/n+2/(n- 1) n W n .
Let Prob(j) be a probability that the probabilistic relations at time j are
true.
67
REMARK 2
Prob(j)L (1-4/n)'
Proof.
Note that the probabilistic relations at time j are true if for any t<j:
d~[f]#n-l, d~[t]#n-2, d ~ [ t #n-l,
]
d ~ [ t ]#dA[t]+l and d ~ [ f ]#dB[t]+l- Using
remark 1 , we have P 2 ( 1 4 n y .
Let us consider some properties that obtained from the presented
probabilistic relations. By distAB(t)denote the number of elements between
the A joker and the B joker at time t. Proposition 1 and proposition 2 show
that diStAB(t) depends on t and dA(0)- dB(0).
PROPOSITION 1
Let x=(dA(i)- dB(i))(modn-1) then
diStAB(i)E { X-1, n-2-x}
Proof.
Let US remark that diStAB(i)=l dA(i)- dB(i)l-l.
Consider two possible cases.
a ) I f dA(i)>dB(i) then diStAB(i)= ( dA(i)- dB(i))(mOd n-l)-l=x-l
b) If dA(i)<dB(i) then X = ( dA(i)- dB(i))(mod n-1)= n-1+ dA(i)- dB(i).
Therefore, distAB(i)=dB(i)- dA(i)-l= n-2-X
The proposition is proved.
PROPOSITION 2
Let y=( dA(0)- dB(0)-k) (mod n-1) then
diStAB(k)E { y-1, n-2-y}
Proof.
Let x=( dA(i)- dB(i))(modn-1). By proposition I and (1), (2) we obtain.
a) If k=2i+1 then
b) If k=2i then
68
i-l
dA(O)+
(kZj+l- k2j+2)-i+b(O)+
j=O
j=O
REMARK 3
If we take x=(dB(k)+iA(k))(mod n-1) and y=(dB(O)dA(O)+k) (mod n-1)
then proposition 1 and proposition 2 remain true.
PROPOSITION 3
If d~(o)-d~(O)=2
then
diStAB(k)E {k +1, n-k-4}.
This proposition can be proved by direct calculations.
In propositions 4-7 we describe some properties which allow finding the
jokers location or elements of the permutation with high probabilities. Let
So, S, be two initial states. By dA, dB denote the A joker distance and the
B joker distance for S and by dA,dB denote distances for S".
P ROPOSITION 4
1 . If dA(O)= dA(O), dB(O)= dg(0) and dA(k)= dA(k) then dB(k)= dB(k).
2. If dA(O)= dA(O), dB(O)= dg(0) and dB(k)= dB(k) then dA(k)=dA(k).
Proof.
Let us prove item 1.
a) Let k=2i.
B y dA(k)= dA(k) and ( 1 ) we get
.i-l .
1-1 .
.
(kzj+l- k2j+2)-i]=[dA(0)+
[dlA(0)+
j=O
Therefore,
2
j=O
i-1
(k2j+l- k2j+2)=
j=O
(k2j+I-kz,+2)(mod n-1).
69
Note that
i-1
d&i)= [dB(O)+
j=O
j=O
[-dtB(0)+
j=O
i-1
[-dA(O)+
j=O
1-1
dB(k)= [-d~(o)+
(k2j+2-
k~j+~)+i-l-(
j=O
i-1
dB(k)= [-d~(0)+
j=O
we have
PROPOSITION 5
If we know either (dA(k), dB(k+l)) or (dB(k), dA(k+l)) then we can
determine the value of kk+l.
70
PROPOSITION 6
1. If we know either (dA(0), dA(2i) } or [de(0), d&i)
determine
} then we can
j=O
Proof.
Let us prove item 1.
Note that (1) we can rewrite as
i-1
dA(2i)=
j =O
i- l
I=
(kzj+l-k2,+2)= d ~ ( 2 i ) A ~ ( O ) (mod
+ i n-1),
j=O
71
PROPOSITION 7
1 . If dA(O)=dA(k) then dB(k)=( dB(O)+k) (mod n-1).
2. If dB(O)=dB(k) then dA(k)=(dA(0)- k) (mod n-1).
This proposition can be proved by direct calculations.
Let c be an element of the permutation S and CE (A, B ) and by dCQ)
denote the number of elements before c at time j. In proposition 8 we find
dC(1).
PROPOSITION 8
1 . I f either dA(O)< dc(0)< dB(0) or dB(O)< dc(0)< dA(0) then dc( 1)= [-d~(o)dB(O)-kl+ dc(0)-4] (mod n-1).
2. If either dc(0)c dA(0)<dB(O)or dB(0)< dA(0)< dc(0) then dc(l)= [dc(0)dA(0)-kl-2] (mod n-I).
3. If either d,(0)<dB(O)<dA(O) or dA(0)cdB(O)<dc(0) then dc(1)= [dc(0)dB(0)-kl-2] (mod n-1).
The proof is straightforward.
4.
THEOREM 2
Let K=kl,..., kL be a passphrase, where L is its length. Let So=(O, 1, 2,
. . .,n-3, A, B) and Sj=(Fj( So). Let dAQ)be the A joker distance at time j and
dB(i) be the B joker distance at time j . If for any t<j: ds[t]#n-l, dB[t]+n-2,
dA[t] #n-1, d ~ [ t +
] d ~ [ t ] + land dA[t]#dB[t]+], then the A joker distance and
the B joker distance satisfy the following relations.
1 . If j=2i then
2. If j=2i+1 then
72
dA(2i+l)=[ado)+
(k2,+2 -
j=O
i-1
dB(2i+l)= [-dA(0)+
We stress that the propositions which are proved in the previous section
remain true for the key scheduling algorithm but the operation mod (n-1) is
changed by (mod n).
5.
CONCLUSION
REFERENCES
Schneier B., "The Solitaire Encryption Algorithm, http://www.counterpane.com/
solitaire. html.
Pudovkina M, Varfolomeev A.A. A Cycle Structure of the Solitaire Keystream
Generator. 3nd International Workshop on Computer Science and Information
Technologies CSIT'2001, YFA, 2001.
Pudovkina M., Weakness in the Key Scheduling Algorithm of the Solitaire Keystream
Generator, SIBCOM-2001, TOMSK. (the paper is being published)
Varfolomeev A.A., Zhukov A.E., Pudovkina M., Analysis of Stream Ciphers ,
Moscow, MEPhI, 2000.
Crowley
P.
Problems
with
Bruce
Schneier
Solitaire.,
http://www.hedonism.demon.co.uk/ paul/solitaire/
Rueppel R.A. Analysis and Design of Stream Ciphers, Springer-Verlag,
Communications and Control Engineering Series, 1986.
73
[7]
[8]
Rivest R.L.,"TheRC4 encryption algorithm, RSA Data Security, Inc., Mar. 1992
R.J. Jenkins, ISAAC, Fast Software Encryption -Cambridge 1996, vol. 1039, D.
Gollmann ed.. Springer-Verlag.
[9]
Abstract
This paper describes a process for the generation and analysis of security
protocol requirements. It addresses some of the problems resulting from
the inadequacies of present development methods. It is based on a
hazard analysis technique which has been developed for safety critical
systems engineering. This provides a structured m e t h o d of analysis of
the requirements whilst avoiding the problems of being too restrictive.
1.
1.1.
Introduction
Security Protocol Development
76
1.2.
HAZOP.
Hazard Analysis
GUIDE
WORD
Omission
77
GENERIC MEANING
The service is never delivered, i.e. there is no communication. These are classified as either total or partial.
Commission A service is delivered when not required, i.e. there is
an unexpected communication. These are classified as
either spurious or repetition.
Early
The service (communication) occurs earlier than intended. This may be absolute (i.e. early compared to
a real-time deadline) or relative (early with respect to
other events or communications in the system).
Late
The service (communication) occurs later than intended. As with early, this may be absolute or relative.
Value
The information (data) delivered has the wrong value.
Table 1.
SHARD.
78
Figure 1.
2.
2.1.
79
80
Figure 2.
tect when such situations arise and also to protect or mitigate against
the violations of the requirements.
Our method takes into account the differing views of the stakeholders
in the protocol through the use of a team in the analysis. The team
should consist of representatives of each of the stakeholders in the protocol and, ideally, someone who is familiar with attacks and flaws which
are common in protocols, as well as the different verification techniques
which can be used on the protocols.
2.2.
81
82
SECURITY
PROPERTIES
VIOLATED
Availability
The event does not take place.
Omission
Commissior The event which takes place is not Spurious:
as expected. The different types of Authenticity,
Non-repudiat ion
commission:
Repetition:
spurious: a one off event.
Authenticity
repetition: a repeated event.
Non-repudiation
Non-redication.
The data obtained in the event has Integrity,
Value
the wrong value arid this can be de- Authenticity,
Non-repudiation
tected. This could be:
total: the data dclivered in the
event is totally corrupted.
extra: an event occurs as expected but with some unexpectedextra data/behaviour.
partial: parts of the expected
event are omitted.
The data in this event has b e e ndi- Confidentiality.
Disclosure
vulged to an unauthorised party.
The event occurs earlier than inten- Authenticity
Early
Timeliness.
ded. Early can be interpreted as:
absolute: early cornpared to a
real-time deadline.
relative: early with respect to
other events or communicationsin
the svstem.
Late
The event occurs later than inten- Authenticity ,
Timeliness,
ded. Late can be interpreted as:
absolute: late compared to a real- Availability.
time deadline.
relative: late with respect to
other events or communications in
the svstem.
GUIDE
WORD
GENERIC MEANING
83
rn
Analysis Documentation.
The analysis is documented in a table
such as that in SHARD and HAZOP. The documentation table may also
contain a column for recording comments arising in the course of the
discussion, this is useful for recording other issues and cross references
84
3.
Example Application
In this section, we provide a partial example of the use of the requirements analysis process for security protocols.
Scenario
3.1.
A vendor wishes to sell goods to its customers over the internet using
an electronic commerce protocol. It is envisaged that the customer will
send to the vendor an order for the goods and also payment details. The
vendor will then be able to obtain payment through the customers credit
card company. In return the customer will obtain the goods ordered.
Example Analysis
3.2.
Effect:
~~
No order is made.
(P) Customer doesnt send an order.
(S) Order lost by network/intruder actions.
(A) Customer waits indefinitely for response
from vendor.
( C ) Vendor looses an order if not detected.
~~
~~
Comments:
Commission
(Spurious):
Cause:
85
86
Value (Total):
Cause:
Effect:
Recommendations:
Comment:
Value (Extra):
Cause:
Effect:
Recommendations:
Comment:
Value (Partial):
Cause:
Effect:
Recommendations:
87
2 Pre-protocol exchange to ensure that vendor is alive and accepting orders and also so that vendor is able to anticipate
receipt of orders.
88
vacy.
Omission:
Cause:
Effect:
89
90
Low level r e q u i r e m e n t s
1 Periodic synchronisation of fresh element generator.
3.3.
4.
Conclusions
In this paper, we have described a process for the gathering and analysis of the requirements of security protocols before the actual design
of the protocol. This is the traditional starting point in the software
engineering life cycle. It is preferable to spend time in the early stages
of the protocol development than to risk a compromise of security, when
the protocol is put into use. Our approach differs from previous research
into the requirements of protocols which focused on the use of requirements in the verification of protocols [14]; for example, Syverson and
Meadows [15] formalised the requirements of authentication protocols
and used them to verify and find attacks on the Neuman-Stubblebine
protocol.
91
The hazard analysis approach described in this paper provides a simpler, more structured and systematic approach to deviation identification
than the heuristic methods in the literature. Work on inquiry-based requirements analysis [8] relies on the use of what-if? questions to prompt
deviations. In goal-based requirements analysis [3, 4], trivial obstacles
are assigned to each goal to investigate the possible ways in which a goal
may fail to complete. These obstacles are identified through the use of an
extensive set of heuristics. The obstacle analysis is further elaborated
through scenario analysis which examines the concrete circumstances
under which goals may fail. Lamsweerde and leitier [16] present formal
and heuristic methods for obstacle identification and resolution based
on temporal logic.
An advantage of the hazard analysis approach for protocol requirements over the temporal logic approach is the focus of the analysis on
security features of the protocol. The temporal logic approach is very
formal, requiring the gathering of the preconditions for the negation of
the goal expressed in logic, these preconditions are obstacles to the goal.
Some formal techniques have missed attacks due to their over abstraction of the protocols, since security attacks may be the result of the
exploitation of properties which are not easily expressible in logic.
Our approach to the analysis of the requirements does not, of course,
guarantee that all the attacks are avoided and secure protocols will be
designed. The requirements analysis process is useful for highlighting
weaknesses and flaws which have previously occurred in protocols.
Attack and threat avoidance techniques prompted by the guidelines
may not be appropriate, for instance, if the recommendations would be
too costly or time consuming. Consideration of the recommendations
should be carefully evaluated with respect to the requirements of the
protocol stakeholders. However, just being aware of potential problems
which may be caused by a particular requirement is an important benefit
of using the method. In such situations, if it is considered appropriate,
higher level requirements may be weakened in the light of the analysis.
Our method is suitable for identifying and investigating common
threats and attacks on protocols and prompting protection mechanisms
against them. This method is a step forward in providing a more structured approach to the development of secure protocols and we believe
that this approach to requirements analysis can be applied more widely
in the field of computer security.
Acknowledgments
We would like to thank John Clark, Jonathan Moffett, colleagues in
the High Integrity Systems Engineering research group and the anonymous reviewers for their helpful comments.
References
[1] Ross Anderson. How to Cheat at the Lottery (or, Massively Parallel Requirements Engineering). Invited Talk a t the 15th Annual Computer Security Applications Conference, Phoenix, Arizona, December 1999.
[2] Ross J. Anderson. Why Cryptosystems Fail. Communications of the ACM,
37(11):32-40, 1994.
[3] Annie I. Antn. Goal-Based Requirements Analysis. In 2nd IEEE International
Conference on Requirements Engineering, pages 136-144, April 1996.
[4] Annie I. Antn. Goal Identification and Refinement in the Specification of
Software-Based Information Systems. PhD thesis, Georgia Institute of Technology, Atlanta, June 1997.
[5] Barry W. Boehm. A Spiral Model of Software Development and Enhancement.
IEEE Computer, pages 61-72, May 1988.
[6] CISHEC. A Guide to Hazard and Operability Studies. The Chemical Industry
Safety and Health Council of the Chemical Industries Association Ltd, 1977.
[7] T. Kletz. HAZOP and HAZAN: Identifying and Assessing Process Industry
Hazards. Institution of Chemical Engineers, third edition, 1992.
[8] Colin Potts, Kenji Takahashi, and Annie I. Antn. Inquiry-Based Requirements
Analysis. IEEE Software , 11(2):21-32, March 1994.
[9] Roger S. Pressman. Software Engineering: A Practitioners Approach. McGraw
Hill, 5th edition, 2000. (European adaption by Daryl Ince).
[10] D.J. Pumfrey. The Principled Design of Computer System Safety Analyses.
Dphil Thesis, University of York, 2000.
[11] Felix Redmill, Morris Chudleigh, and James Catmur. System Safety: HAZOP
and Software HAZOP. Wiley, 1999.
[12] W. W. Royce. Managing the Development of Large Software Systems. In Proceedings of IEEE WESCON, pages 1-9, 1970. Reprinted in Thayer R.H.(ed.)
(1988) IEEE Tutorial on Software Engineering Project Management.
[13] Ian Sommerville. Software Engineering. Addison Wesley, 6th edition, 2000.
[14] Paul Syverson and Catherine Meadows. A Logical Language for Specifying
Cryptographic Protocol Requirements. In IEEE Symposium on Research into
Security and Privacy, pages 165-177. IEEE Computer Society Press, 1993.
[15] Paul Syverson and Catherine Meadows. Formal Requirements for Key Distribution Protocols. In Alfredo De Santis, editor, Advances in Cryptology - EUROCRYPT 94, volume 950 of Lecture Notes in Computer Science, pages 320-331.
Springer, May 1994.
[16] Axel van Lamsweerde and Emmanuel Letier. Handling Obstacles in GoalOriented Requirements Engineering. IEEE Transactions on Software Engineering, 26(10):978-1005, October 2000.
Vincent Naessens
K. U.Leuven, Campus Kortrijk (KULAK)
[email protected]. be
Bart Vanhaute
K.U.Leuven, Dept. of Computer Science, DistriNet
bart. [email protected]
Bart De Decker
K. U.Leuven, Dept. of Computer Science, DistriNet
[email protected]
Abstract:
Keywords:
94
1.
INTRODUCTION
1
Locations will mostly correspond with hosts; more precisely, they correspond to Java Virtual
Machine instantiations.
95
location level. We will discuss how each of these security features can be
built into the system.
The main goal of this case study is to provide a flexible and transparent
security framework for the RMI system. Flexibility means that it must be
possible to incorporate different mechanisms and services, according to the
degree of security that is required. Transparency mains that applications are
not aware of the security aspects built into the system. Hence, each of the
security features should be implemented into the RMI system itself. That
way, application programmers do not have to recompile their applications to
work with the secured framework.
A first section briefly describes the architecture of the RMI system. The
second section introduces the security components and discusses where these
services should be added in the RMI system. By including these components
in the RMI system itself, they are transparent with respect to the application.
The third section presents a security framework for RMI that is flexible
enough to support different levels of security. The next two sections discuss
the transparency and the flexibility of the framework. Next, we refer to some
related work in this area. The paper ends with a general conclusion.
2.
application
The RMI system [1] consists of three layers: the stub/skeleton layer, the
remote reference layer and the transport layer. The application itself runs on
top of this RMI system. When a client invokes an operation on a server
object, a stub object passes the method to the reference layer that initiates the
96
3.
SECURITY COMPONENTS
5?-Cli fnt.
3.1
97
Before messages are sent over the wire, a secure association must be
established between two hosts: the client and the server. This service is
provided at the location level. As a result of this phase, both parties possess
a key that will be used to exchange further messages. Thus, setting up a
secure association guarantees the confidentiality of the data that is exchanged
between both parties. The secure RMI system performs this task after the
connection is established and before the actual method invocation from the
stub object to the server object takes place. This task can be fully executed at
the transport layer, making use of the connection. The resulting key is also
kept at the transport layer. As this service does not require any information
about the objects, the same secure association can and will be reused over
multiple calls between the two hosts.
3.2
Authentication service
3.3
The access control service (or authorisation service) gives a party the
possibility to allow/disallow an action of the other party involved in the
communication. In an object oriented environment, access decisions can be
based on the method and the parameters that are sent to the server. This
service is performed at the object level. Thus, access control must be
performed at the reference layer, after the necessary information is
unmarshalled and before the method will be invoked. This service can also
make use of the security information that is stored at the transport layer.
98
3.4
The audit trail service is responsible for logging information. Two types
of logging are introduced. In the transport layer (i.e. at location level),
information about the authentication procedure is logged. At the reference
level (i.e. at object level), information about the authorisation and the method
invocation is logged.
4.
4.1
99
4.2
100
When a call is initiated at the client side and a new unsafe connection is
created, the association object can decide to exchange a session key with the
association object on the server side. Several encryption libraries provide
implementations of key agreement algorithms [ 5 ] . The resulting session key
is stored at both sides in the connection security context. As a result of this
step, further information can be sent in encrypted form to the connection
object. In other words, encryption is done on top of a connection and
therefore, it does not affect the implementation of a connection type.
Moreover, if the association object sees that the connection itself is
implemented to support secure communication (for instance by using SSL
secure sockets), it can decide not to execute this first step. When a
connection already exists, the association object can decide to update the
connection security context if necessary. For instance when the time a
particular key is valid, is exceeded, the vault object can ask for a new key
agreement session to take place.
After this, the vault object calls an authentication object if
authentication is not already done. Depending on its implementation, the
authentication object explicitly asks the user for authentication information
or makes use of credentials that are created when the user logs in on the
system. These credentials are generated automaticalIy when the user logs in
on the system. It can happen that authentication is performed in several
successive steps. For instance, the server side can ask for additional
credentials or can conclude that the authentication data are not valid any
more. In these two cases, the authentication continues. Authentication
Securing RMI
Communication
101
information can be sent along a secure data stream making use of the session
key obtained in the previous step. The authentication information is stored in
the connection security context and can later be used to make access
decisions.
Access control in an object-oriented environment mostly depends on the
method that must be executed and the parameters of the method call. At that
point in the execution, the information must be in an unmarshalled form.
Marshalling and unmarshalling happens in the remote reference layer. This
information is passed to the invocation security context object. After this
information is set, an access control object can make a decision using the
information kept by the security context. At the client side, access control
can be checked just before marshalling information; at the server side access
control executed after unmarshalling the operation and parameters and just
before the information is dispatched to the application level.
posh
poririrn
posirirn
negative veto
ncgrtivcvcto
102
Two types of log objects are introduced in the system: association log
objects and operation log objects. Association loggers are introduced at the
transport level and log information concerning the association. For instance,
an association logger can save which client is trying to make a connection, if
the authentication is successful, etc ... Operation loggers are introduced at
the reference layer and log information about the operations that have to be
executed or that have already been executed. For instance, an operation
logger can store the method a client tries to execute, the return value of the
access control decision object, the result of the method call, etc. In contrast
to vault objects and access control objects, we want to provide the possibility
to pick up several log objects at each level.
5.
TRANSPARENCY
Because the presented security features are all built into the RMI system,
it can be reused for every application. Access control and operation logging
happens at the reference layer; setting up a secure association and logging
associations happens at the transport layer. This also implies that stub
objects remain the same. Therefore, the rmic compiler that generates stubs,
does not have to be changed. This implies full transparency from the point of
view of the application programmer.
Providing full transparency to the end user of the application is difficult
to achieve. A secure distributed system wants the user to be authenticated at
some point in the execution. Depending on the implementation of the
authentication object, the user has to do it explicitly during the application
runtime or the authentication object can make use of the credentials created
when the user logs on the system.
From the point of view of the administrator of the system, one can say
that he has to make a decision about which security components have to be
loaded into the RMI system. He has to make a property file. The RMI
system consults this property file at runtime in order to know which instances
of the security components to create.
The presented framework can also be considered to be relatively
transparent to the RMI implementation because security components are
added to the system by loading security related objects and not by adapting
the implementation of existing objects in the system. For instance, a typical
connection implementation (UDP or TCP) does not have to be adapted
because encryption is provided on top of it.
6.
103
FLEXIBILITY
7.
RELATED WORK
The Java Secure Socket Extension (JSSE) [7] is a Java optional package
that provides Secure Socket Layer (SSL) and Transport Layer Security (TLS)
support for the Java 2 Platform. Using JSSE, developers can provide for the
secure passage of data between a client and a server. Secure sockets can be
added into the RMI system at transport level to set up a secure association.
This way, they are transparent in front of application programmers. In the
presented framework, the Vault object is responsible for setting up a secure
association between two hosts. An implementation of that Vault object can
use JSSE.
The Java Authentication and Authorization Service (JAAS) [7] is a
framework that supplements the Java 2 platform with principal-based
authentication and access control capabilities. It includes a Java
implementation of the standard Pluggable Authentication Module (PAM)
architecture, and provides support for user-based, group-based, or role-based
access controls. These modules can also be added transparently into the
presented framework.
The Java Authentication Service provides
104
API for network security in JavaTM 2 Standard Edition RMI, covering basic
security mechanisms: authentication (including delegation), confidentiality,
and integrity. The main problem is that the proposals are not transparent
enough towards applications. Our framework tries to achieve more
transparency towards application programmers because all of the security
features are built into the RMI system itself. However, the framework also
enables application programmers to load their own security modules into the
RMI system.
8.
CONCLUSION
105
REFERENCES
1.
2.
3.
4.
5.
6.
7.
8.
Abstract
Developing secure software systems is difficult and error-prone. Numerous implementations have been found vulnerable in the past; a recent
example is the unauthorised access to millions of online account details
at an American bank.
We aim to address this general problem in the context of development
in Java. While the JDK 1.2 security architecture offers features (such
as guarded objects) that provide a high degree of flexibility and the
possibility to perform fine-grained access control, these features are not
so easy to use correctly.
We show how to use a formal core of the Unified Modeling Language
(UML), the de-facto industry-standard in object-oriented modelling, to
correctly employ Java security concepts as such as signing, sealing, and
guarding objects. We prove results for verification of specifications wrt.
security requirements. We illustrate our approach with a (simplified)
account of the development of a web-based financial application from
formal specifications.
Keywords: Distributed systems security, access control, mobile code, Java security,
secure software engineering, Unified Modeling Language.
1.
Introduction
*Supported by the Studienstiftung des deutschen Volkes and the Computing Laboratory.
108
Overview.
After presenting some background on access control in
Java in the following section, we summarise our use of UML in section 3.
In Section 4 we outline the part of a design process relevant to enforcing
access control in Java and give some results on verifying access control
requirements. In Section 5 we illustrate our approach with the example
of the development of a web-based financial application from formal
specifications. We end with an account of related work, a conclusion
and indication of future work. Proofs have to be omitted due to space
reasons and will appear in an extended version.
2.
109
Object-oriented systems offer a very suitable framework for considering security due to their encapsulation and modularisation principles
[FDR94; Var95; ND97; Gol99; Sam00].
In the JDK 1.0 security architecture, the challenges posed by mobile code were addressed by letting code from remote locations execute
within a sandbox offering strong limitations on its execution. However,
this model turned out to be too simplistic and restrictive. From JDK
1.2, a more fine-grained security architecture is employed which offers a
user-definable access control, and the sophisticated concepts of signing,
sealing, and guarding objects [Gon99; Kar00b].
A protection domain [SS75] is a set of entities accessible by a principal.
In the JDK 1.2, permissions are granted to protection domains (which
consist of classes and objects). Each object or class belongs to exactly
one domain.
The system security policy set by the user (or a system administrator) is represented by a policy object instantiated from the class
java.security.Policy. The security policy maps sets of running code (protection domains) to sets of access permissions given to the code. It is
specified depending on the origin of the code (as given by a URL) and
on the set of public keys corresponding to the private keys with which
the code is signed.
There is a hierarchy of typed and parameterised access permissions, of
which the root class is java.security.Permission and other permissions are
subclassed either from the root class or one of its subclasses. Permissions
consist of a target and an action. For file access permissions in the class
FilePermission, the targets can be directories or files, and the actions
include read, write, execute, and delete.
An access permission is granted if all callers in the current thread
history belong to domains that have been granted the said permission.
The history of a thread includes all classes on the current stack and
also transitively inherits all classes in its parent thread when the current
thread is created. This mechanism can be temporarily overridden using
the static method doPrivileged() .
Also, access modifiers protect sensitive fields of the JVM: For example,
system classes cannot be replaced by subtyping since they are declared
with access modifier final.
The sophisticated JDK 1.2 access control mechanisms are not so easy
to use. The granting of permissions depends on the execution context
(which however is overridden by doPrivileged(), which creates other subtleties). Sometimes, access control decisions rely on multiple threads. A
thread may involve several protection domains. Thus it is not always
easy to see if a given class will be granted a certain permission.
110
3.
111
Figure
1. Class diagram
3.1.
Class Diagrams
Using class diagrams we can model which objects are signed or sealed
with which keys, and which are guarded by which Guard objects.
An attribute specification A = (att_name, att_type, init_value) is given
by a name att-name, a type att-type and an initial value init-value.
An operation specification 0 = (op_name, Arguments, op_type) is given
by a name op_name, a set of Arguments and the type op-type of the return
value. The set of arguments may be empty and the return type may be
the empty type denoting absence of a return value. An argument
A = (arg_name,arg_type) is given by its name arg_name and its type
arg_type.
112
Transition
Figure 2.
Initialstate
State
Start marker
Statechart Diagrams
3.2.
Statechart diagrams
3.3.
Deployment diagrams
113
Dependency
Figure 3.
Deployment diagram
information on kinds of the communication links between different components, inducing threat scenarios wrt. the physical security.
A system node N = (location, Components) is given by its location
(e.g. a URL or local system) and a set of contained Components.
A deployment diagram D = (Nodes, Links, Dependencies) is given by a
set of Nodes, a set of communication Links between nodes and a set of
logical Dependencies between components. A link l = (nds, stereo) consists of a two-element set nds of nodes being linked and a label (called
stereotype) indicating the kind of the link (e.g. Internet). Here a
dependency is a tuple (client, supplier, interface, tag) consisting of components client and supplier and a label (called tag) indicating the kind
of dependency (e.g.
ee { rmi}).
4.
Design process
We sketch the part of a design process for secure systems using UML
that is concerned with access control enforcement using guarded objects.
(1) Formulate the permission sets for access control for sensitive objects.
(2) Use statecharts to specify Guard objects that enforce appropriate
access control checks.
(3) Verify that the Guard objects protect the sensitive objects sufficiently by showing that they only grant access implied by the
security requirements.
(4) Ensure that the access control mechanisms are consistent with the
functionality required by the system by showing that the other
objects may perform their intended behaviour.
(5) Verify that mobile objects are sufficiently protected by considering
the threat scenario arising from the physical layer given in the
deployment diagram.
114
Here the access control requirements in step (1) can be of the following
form:
origin of requesting object (based on URL)
signatures of requesting object
external variables (such as time of day etc. ).
In Section 5 we sketch a formal verification of a specification following
these steps. They enforce the following two requirements.
Functionality requirement: Check that the access control requirements formulated are not overly restrictive, denying legitimate access from other components of the specification.
The functionality requirement is important since it is not always easy
to see if stated security requirements are at all implementable. If their
inconsistency is only noticed during implementation then, firstly, resources are wasted since work has to be redone. Secondly, most likely
security will be degraded in order to reduce this extra work.
4.1.
Verification
In this subsection, we sketch results to be applied in the above approach. The idea is to verify security properties by linking the different
views on a system given by the various kinds of diagrams. We convey
our ideas using a simplified semantics for UML statechart diagrams.
Any statechart diagram S defines a function US] from sequences of
input events to sets of sequences of output actions, each possibly with
arguments, often involving use of cryptographic operations (as detailed
in [Jr01f]). We say that S may eventually output a value v if there exists
a sequence e' of input events and a sequence a' E [Sg(Z)of corresponding
output actions such that v is output by one of the actions in a' (in
cleartex t ) [Jr01e].
The following definition uses the notion of an adversary from [Jr01e],
which is a function from sequences of output actions of the statechart
S to sequences of input events of S that captures the capabilities of an
3In future work we intend to formalise these requirements using an abstract security policy
specification language, enabling automatic generation of the corresponding guard object specifications.
115
Example.
The statechart in Figure 4 describes the behaviour of a
guard object grd enforcing a slightly more complicated access control
policy. The idea is that an entity named req may establish a shared key
K M in order to submit keys KSprotected by KM such that objects signed
with KS should be granted access to the guarded object. Here we assume
that the keys KS may be updated frequently, so that it is more efficient
to use the symmetric key KM to protect KS (rather than the public
key associated with grd). The identity of req is taken as given and is
bound to a public key in the certificate cert signed with the key Kc of
a certification authority (assuming RSA-type encryption and signing).
On request cert(), the guard object sends out a self-signed certificate
certifying its public key K. The object req sends back the symmetric key
116
Init
\return(k,Dec
(grd,K))
mst(key,cert)
[fst( (cert) )-req]
Figure 4
Statechart Example
K M signed with its private key (corresponding to the public key in cert)
and encrypted under K, together with the certificate cert (the functions
fst resp. snd applied to a pair returns its first resp. second component).
The guard object can receive the signature key KS encrypted under K M
and will then grant access to those objects signed by Ks.
Thus a typical message exchange to establish Ks may look like the
following:
return( K,DecK-
1 (grd,K))
grd
req
return(K,DecK-l (grd,K))
return(KA,Dec
*A
l(grd,KA))
Kii
* req
117
<<Internet>>
Server
Figure 5.
Deployment diagram
Here the theorem above does not apply since the security of the signing
key Ks is violated (in a subtle way). With our approach one can exhibit
subtle flaws like this (in this case, one would notice the flaw e.g. when
trying to show formally that the assumptions of the above theorem are
fulfilled). - This example is quite realistic; in fact it is derived from a
published protocol which was found to be flawed in [Jr01e] (cf. there
for details).
5.
We illustrate our approach with the example of a web-based financial application. The example was chosen to be tractable enough given
the space restrictions but still realistic in that it points out some typical
issues when considering access control for web-based e-commerce applications (namely to have several entities - service-providers and customers
- interacting with each other while granting the other parties a limited
amount of trust and by enforcing this using credentials).
We first describe the physical layer of the application in a UML diagram and state its security requirements. We show in UML diagrams
how to employ GuardedObjectsto enforce these security requirements.
We prove that the specification given by the UML diagrams is secure
by showing that it does not grant any access not implied by the security requirements. We end the section by giving supplementary results
regarding consistency of the security requirements.
Two (fictional) institutions offer services over the Internet to local
users: an Internet bank, Bankeasy, and a financial advisor, Finance.
The physical layer is thus given in Figure 5.
To make use of these services, a local client needs to grant the applets
from the respective sites certain privileges.
118
StoredFinan
BankData: FDal
Read():FDat
-1 SignedReq: Obj
Figure 6.
Class diagram
(1) Applets that originate at and are signed by the bank can read
and write the financial data stored in the local database, but only
between 1 pm and 2 pm (when the user usually manages her bank
account).
(2) Applets from (and signed by) the financial advisor may read an
excerpt of the local financial data created for this purpose. Since
this information should only be used locally, they additionally have
to be signed4 by a certification company, CertiFlow, certifying that
they do not leak out information via covert channels.
(3) Applets originating at and signed by the financial advisor may use
the micropayment signature key of the local user (to purchase stock
rate information on behalf of the user), but this access should only
be granted five times a week.
Financial data sent over the Internet is signed and sealed to ensure
integrity and confidentiality. Access to the local financial data is realised
using GuardedObjects. Thus the relevant part of the class diagram is
given in Figure 6.
[orig in=signed=bankeasy,timeslot]ketum
Figure 7.
Statechart FinGd
Here we assume that SignedObject is subclassed to allow multiple signatures on the same
object [Gon99].
[Gon99].
119
Figure 8.
Statechart ExcGd
Figure 9.
Statechart MicGd
Theorem 2 The specification given b y UML diagrams for the guard objects does not grant any permissions not implied by the access permission
requirements given in (1)-(3).
Regarding step (4) in Section 4, we exemplarily prove that InfoAp
In
can
purchase the article on behalf of the user, as intended.
Theorem 3 Suppose all applets in the current execution context originate from and are signed by Finance, and that use of the micropayment
key is requested, which has happened less than five times before in the
current week. Then the current applet is permitted to purchase articles
on behalf of the user.
Finally, following (5) in Section 4, the mobile objects are sufficiently
protected since all objects sent over the Internet were required to be
signed and sealed (a more detailed discussion has to be omitted).
120
6.
Related Work
7.
Using the JDK 1.2 access control mechanisms can be rather complicated in practice (especially when indirect access permissions
using authorisation tokens are employed), thus providing support
for correct specification of the relevant mechanisms in the context
of a widely used specification as UML seems quite useful.
121
A further benefit is that by using a widely accepted notation, our approach to secure Java development can be integrated with other work on
secure systems using UML (e.g. on electronic purse systems [Jr01c]).
As to the limitations of this first step in this direction of research, our
account remains relatively abstract for space restrictions and conciseness
of presentation. As a next step, one should consider more details of
Java security, such as the use of access modifiers (private, final,...), the
doPrivileged() method and the implies() method. Also, an extension to
JAAS [LGK+99; Kar00b] is planned.
Work in progress aims to provide tool support to validate UML specifications of access control guards against security requirements, building on work in [CCR01].
Regarding future work, it would be very useful to have a way to generate the correct behaviour specification of guard objects in statechart diagrams automatically from the (formalised) security requirements. Also,
it would be interesting to try to extend our approach to the extension
of the Java security architecture proposed in [HKK00]. We intend to
address CORBA security (cf. e.g. [VH96; Kar00a]) in a similar way.
Acknowledgments
The idea for the line of work using UML for security arose when doing
security consulting for a project during a research visit with M. Abadi
at Bell Labs (Lucent Tech.), Palo Alto, whose hospitality is gratefully
acknowledged. This work benefitted from discussions at the summer
school Foundations of Security Analysis and Design 2000 (in particular, Li Gong suggested to apply the UML-based approach to security to
guarded objects) and the Dagstuhl seminar "Security through Analysis
and Verification (in particular with D. Gollmann and B. Pfitzmann).
The work was presented in two talks at the Computing Laboratory at
the University of Oxford. Comments from S. Abramsky, C. Crichton
and G. Lowe are gratefully acknowledged. Finally, comments by the
anonymous referees have been very helpful.
122
References
[Aba00]
R. Anderson. Security Engineering: A Guide to Building Dependable Distributed Systems . Wiley, 2001.
B. Bokowski and J. Vitek. Confined types. In 14th Annual ACM SIGPLAN Conference on Object Oriented Programming Systems, Languages,
and Applications (OOPSLA '99), 1999.
[CCR01] R. Campo, A. Cavarra, and E. Riccobene. Simulating UML state machines.
In E. Borger and U. Glsser, editors, ASM'2001 , LNCS. Springer-Verlag,
2001. To be published.
[FDR94] J. C. Fabre, Y. Deswarte, and B. Randell. Designing secure and reliable applications using fragmentation-redundancy-scattering: an object-oriented
approach. In PDCS 2: Open Conference, pages 343-362, Newcastle-uponTyne, 1994. Dept of Computing Science, University of Newcastle, NE1
7RU, UK.
[GAS99] Stefanos Gritzalis, George Aggelis, and Diomidis Spinellis. Architectures
for secure portable executable content. Internet Research, 9( 1):16-24,
1999.
D. Gollmann. Computer Security. J. Wiley, 1999.
[Go199]
Gong.
Security
Architecture
(JDK1.2).
[Gon98] Li
http://java.sun.com/products/jdk/1.2/docs/guide/security/spec/securityspec.doc.html, October 2 1998.
[BV99]
[Gon99]
[GSG99]
[HKK00]
Manfred Hauswirth, Clemens Kerer, and Roman Kurmanowytsch. A secure execution framework for Java. In ACM conference on Computer and
communications security, 2000.
(HuB01]
H. HuBmann, editor. Fundamental Approaches to Software Engineering (FASE/ETA PS, International Conference) , volume 2029 of LNCS.
Springer-Verlag, 2001.
[Jr01a]
[Jr 01b]
Jan Jiirjens. Encapsulating rules of prudent security engineering. In International Workshop on Security Protocols, LNCS. Springer-Verlag, 2001.
To be published.
123
[Jr01c] Jan Jurjens. Modelling audit security for smart-card payment schemes
with UMLsec. In M. Dupuy and P. Paradinas, editors, Trusted Information: The New Decade Challenge, pages 93-108. International Federation for Information Processing (IFIP), Kluwer Academic Publishers, 2001.
Proceedings of SEC 2001 - 16th International Conference on Information
Security.
[Jr01d] Jan Jrjens. Principles for Secure Systems Design . PhD thesis, Oxford
University Computing Laboratory, 2001. In preparation.
[Jr01e] Jan Jrjens. Secrecy-preserving refinement. In Formal Methods
Europe (International Symposium), volume 2021 of LNCS, pages 135-152.
Springer-Verlag, 2001.
[Jr01f] Jan Jurjens. Towards development of secure systems using UMLsec. In
HuDmann [HuDOl], pages 187-200. Also OUCL TR-9-00 (Nov. 2000),
http://web.cornla b.ox.ac.u k/oucl/publications/tr/tr-9-00.html.
124
[VH96]
[WF98]
200A,
B-3001
Heverlee,
Belgium
Abstract
Since many applications are too complex to be solved ad hoc, mechanisms are being developed to deal with different concerns separately.
An interesting case of this separation is security. The implementation
of security mechanisms often interacts or even interferes with the core
functionality of the application. This results in tangled, unmanageable
code with a higher risk of security bugs.
Aspect-oriented programming promises to tackle this problem by offering several abstractions that help to reason about and specify the
concerns one a t a time. In this paper we make use of this approach
to introduce security into an application. By means of the example of
access control, we investigate how well the state of the art in aspectoriented programming can deal with the separation of security from an
application. We also discuss the benefits and drawbacks of this approach, and how it relates t o similar techniques.
Keywords:
1.
Introduction
In the open world of the Internet it is very important to use secure applications, servers and operating systems in order to avoid losing valuable
assets. According to different sources (e.g. CERT [cer, 2001]) updating
and patching these systems to fix security holes is necessary frequently.
The fact is that writing a secure application in an open, distributed environment is a far from straightforward task. There are several reasons
why this is so hard to achieve.
First, securing an application is a very complex matter and requires a
thorough understanding of what can go wrong and might be exploited.
An average application programmer has not enough expertise in this
area to know the exact requirements for his specific case. Moreover,
126
2.
127
Security as an aspect
128
2.1.
The example presented in this section discusses how to perform access control in an application. We have chosen this problem because it
very clearly shows that security related code can be separated from the
functionality of the application in an elegant way.
Basically, access control can be described as follows: at a certain
point, the application asks the user to authenticate himself, after which
it can allow/deny access based on his identity. However, this abstract
view hides several difficult details. The key to turn the above description
into an aspect-oriented application is the identification of the important
domain concepts and their mutual dependencies.
First, what is the exact entity that has to be authenticated? From a
user-oriented view the user of the global application might be a reasonable decision here. In this case the user has to login once, after which this
identity is used during the rest of the application. However, the granularity of this approach will clearly not suffice for some applications, e.g.
a multi-user or a multi-agent system. A second approach consists of
linking the identity to a certain object in the application. Here, login information will be reused as long as the actions are initiated by the same
object. However, the identity of the user might change over time. It is
then necessary to associate the identity with the initiator of a certain
action. In this case, an authentication procedure is required every time
the specific action is initiated.
Next, for what resources do we want to enforce access control? Again,
one can think of different scenarios. An identity might require access
to one resource instance (e.g. a printer). When more instances are
available, one could have access to the whole group or to only a particular
subgroup. In case of different resource types the identity could require
access to a specific combination of these resources. In general, this will
often correspond to a combination of (some parts of) application objects.
A last but not less important consideration deals with specifying
where the two previous concepts meet each other. This path from the authenticated entity to the resources is necessary to pass login information
to the access control mechanism. In a distributed system for instance,
authentication and access control might be performed on different hosts.
In that case, authentication information must evidently be passed to the
access control mechanism in order to ensure correct execution. One obvious example of such access path is the invocation of a specific service
of a resource.
Each of the above concepts (identity, resource and access path)is actually a crosscutting entity to the application and maps closely to an
129
130
}
aspect Authentication of
private Subject subject;
eachcflowroot(authenticationCall())
pointcut
serviceRequest()
pointcut
authenticationCall()
:
hasaspect (Identification)
calls(ServerInterface,
&&
service(..))
serviceRequest()
}
}
aspect Authorization {
pointcut checkedMethods () : executions(* service(..))
}
else{
throw new Exception("Access denied") ;
}
}
}
Figure 1.
2.2.
131
2.3.
For a secure distributed application, other security requirements besides authentication and authorization must be considered, such as confidentiality, non-repudiation etc. We will now briefly describe how they
could be implemented using aspects.
Encryption of objects is required for confidentiality and integrity. This
is a quite straightforward task using the Java JCA/JCE [Gong, 19981.
Two issues have to be considered. First, one has to decide where and how
to insert this into the application. One possibility is to encrypt objects
while they are written to a specific stream. For this case, the stream
can be wrapped by a specific encryption stream. Another possibility is
to encrypt objects whenever they are serialized. Therefore, the readOb-
132
abstract
aspect
Identification
of
eachobject(entities())
abstract
pointcut
entities()
;
}
abstract
aspect
Authentication
private Subject subject;
abstract
pointcut
eachcflowroot(authenticationCall())
of
serviceRequest()
...
}
abstract aspect Authorization {
abstract pointcut checkedMethods()
Figure 2.
133
3.
Discussion
For our work, the use of the current version of AspectJ (0.7) has also
some drawbacks (see further). On the one hand there are some technical
134
For each method call that has some security concern, the AspectJ
compiler will insert one or more extra calls. Therefore, the generated code is less efficient, and introduces more overhead than a
direct implementation would have. Unfortunately, this is the price
to pay for the genericity of our approach. However, it is certainly
riot, worse than some other systems discussed in the next section.
Building a more complex, but less general aspect combination tool
could solve this.
If not all code in the application can be trusted, one has to be very
certain the generated code does not add any security holes. For
instance in the case of authorization: it should not be possible for a
client to call the end-functionality of a server through some other,
by the aspect tool generated method, in order to circumvent the
authorization checks. This means the security implemeriter has to
have a very clear idea of what and how exactly the aspect tool
produces. At this moment, the output of the AspectJ compiler
cannot be trusted yet, because the original functionality, without
the new aspect code, is only moved into a new method with a
special name. However, this is only a problem if not all source code
is under the control of the AspectJ compiler. The fact that AspectJ
is not a formal proven language only increases this problem. This
might become one of our topics for future work.
rn
Another issue related to the generated code comes up when debugging. As the runtime code does not directly correspond to the code
the programmer wrote, it can be harder to figure out what is going
on. The aspect-oriented research community is a t the moment trying to build better support tools that would help the programmer
in relating runtime events with the source code it stems from.
rn
The implementer of the security code still has to have very detailed
knowledge of security mechanisms, their strong and weak points,
how to implement them. As AspectJ is a generic tool, it does not
help the programmer here, apart from providing a better modularization of the problem. However, this is not a particular problem
of AspectJ, but rather of our approach to the problem.
4.
135
Related work
There are already a large number of security architectures proposed
or implemented in Java, e.g. [De Win et al., 2000]. Sun for one has for
instance released JAAS [Lai et al., 1999] for authentication and authorization, SSE for secured network communication, and there are proposals
for a secure RMI implementation. These will often already realize the
intended result, and can therefore be used in the implementation of the
security aspects. The combination of existing technologies with aspectoriented programming is not expected t o pose severe problems. The
added value of aspects in this case is the possibility to have a much
more flexible security policy, and this at a granularity that corresponds
better with the application, i.e. at the level of method calls and objects.
Some of the proposed architectures also have a fine granularity, but the
configuration and mapping onto what happens inside an application can
be fairly difficult.
By using a number of object-oriented design patterns [Gamma et al.,
1994], the existing security architectures also try to be independent of an
application structure, and they all succeed in this to some degree. The
drawback of this design is that the structure of the solution becomes
more complex and harder to understand. With an aspect-oriented approach these implementations can be designed in a more natural way.
Transformations in AspectJ happen on the level of source code. Other
tools are available that work on the level of byte code [Cohen et al.,
1998, Keller and Holzle, 1998]. This has the advantage that you can
add your own aspects even when no source code is available for the
application. The disadvantage is that on the level of byte code, a lot of
the application logic is already lost. Reconstructing this is often hard,
and giving correct descriptions of how a series of byte codes has to be
changed to for instance implement authentication will be even harder.
Checking and debugging the result will also be difficult.
There is also research into a more declarative description of security
properties for an application [Evans and Twyman, 1999, Hagimont and
Ismail, 1997]. This corresponds to an aspect-oriented language of the
first type of section 2. The real challenge here is to think of the right
abstractions the description will consist of. This is not at all an evident
matter, certainly if a goal is to be generic. We think it is better to first
experiment with a generic aspect-oriented language as described in this
paper. From these experiments, we would hope to distill the important
abstractions.
Meta level architectures [Chiba, 1995, Robben et al., 1999, Stroud and
Wue, 1996] also make it possible to separate application from security
136
5.
Summary
137
1. AspectJ also supports other constructs like Introduction. Since they are not used
directly in this paper, we will not discuss them here.
2. From another point of view, application code might be the subject of authentication.
While the mechanism to establish the correct identity of the code originator might be different,
the overall authorization mechanism described in this paper will still be applicable.
3. cflowroot is a predefined keyword in AspectJ t h a t denotes every control flow leading
to that particular pointcut. Using this keyword, it is possible to 'follow' the invocation stack
and pass as such information from the caller to the callee.
4. By predicting the output of the aspect weaver, one might be able to circumvent this
access control mechanism under certain circumstances. We discuss this problem in detail in
section 3.
5. A similar separation of these tasks h a s been described in [Robben et al., 1999].
References
[asp, 2001] (2001). AspectJ Website. http://www.aspectj.org/.
[cer, 2001] (2001). CERT Website. http://www.cert.org/.
[Ancona et al., 1999] Ancona, M., Cazzola, W., and Fernandez, E. (1999). Reflective
Authorization Systems: Possibilities, Benifits anti Drawbacks. In Secure Internet
Programming: Security Issues for Mobile and Distributed Objects.
[Chiba, 1995] Chiba, S. (1995). A MetaObject Protocol for C++. In Proceedings of
the 1995 Conference on Object-Oriented Programming.
[Cohen et al., 1998] Cohen, S., Chase, J., and Kaminsky, D. (1998). Automatic Program Transformation with JOIE. In Proceedings of the 1998 USENZX Annual
Technical Symposium.
[De Win et al., 2000] De Win, B., Van den Bergh, J., Matthijs, F., De Decker, B., and
Joosen, W. (2000). A Security Architecture for Electronic Commerce Applications.
In Information Security for Global Information Infrastructures, pages 491-500.
IFIP TC11, Kluwer Academic Publishers.
[Demailly, 1996] Demailly, L. (1996).
http://www.demailly.com/ dl/netscapesec/ .
Netscape
Security
(problems).
[Evans and Twyman, 19991 Evans, D. and Twyman, A. (1999). Flexible PolicyDirected Code Safety. In Proceedings of the 1999 IEEE Symposium on Security
and Privacy.
[Fraser et al., 1999] Fraser, T., Badger, L., and Feldman, M. (1999). Hardening
COTS Software with Generic Software Wrappers. In Proceedings of the 1999 IEEE
Symposium on Security and Privacy.
[Gamma et al., 1994] Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1994).
Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley
Longman.
L.
[Gong,
1998]
Gong,
http://java.sun.com/security.
(1998).
Java
Security
Architecture.
138
[Keller and Holzle, 1998] Keller, R. and Holzle, U. (1998). Binary Code Adaptation.
In Proceeding of the 1998 European Conference on Object-Oriented Programming.
[Lai et al., 1999] Lai, C., Gong, L., Nadalin, A., and Schemers, R. (1999). User Authentication and Authorization in the Java Platform. In Proceedings of the 15th
Annual Computer Security Applications Conference.
[Robben et al., 19991 Robben, B., Vanhaute, B., Joosen, W., and Verbaeten, P.
(1999). Non-functional Policies. In Cointe, P., editor, Meta-Level Architectures
and Reflection, volume 1616 of Lecture Notes in Computer Science, pages 74-92.
Springer-Verlag.
[Stroud and Wue, 19961 Stroud, R. and Wue, Z. (1996). Using Metaobject Protocols
to Satifsy Non-functional Requirements. In Advances in Object-Oriented Metalevel
Architectures and Reflection.
[Vanhaute et al., 2001] Vanhaute, B., De Win, B., and De Decker, B. (2001). Building Frameworks in AspectJ. ECOOP2001 Workshop on Advanced Separation of
Concerns.
[Welch and Stroud, 2000] Welch, I. and Stroud, R. (2000). Using Reflection as a
Mechanism for Enforcing Security Policies in Mobile Code. In Proceedings of the
Sizth European Symposium on Research in Computer Security.
Marc Lobelle
Universit catholique de Louvain, Dept INGI
Place Ste-Barbe, 2, 1348 Louvain-la-Neuve, Belgium
[email protected]
Abstract
Keywords: Remote networks, Virtual private networks, IPSec, DHCP, NAT, RSIP.
140
1.
Figure 1.
1.1.
141
IP Masquerading
1.2.
The problem that VPNs are trying to solve is that of letting two
networks communicate securely when the only connection between them
is over a third network which they dont trust. VPNs use a gateway
between each of the communicating networks and the untrusted network.
Most of the current VPN packages use tunneling to create a private
network. The principle of tunneling is to encapsulate a packet within a
packet.
The gateway machines can encrypt packets entering the untrusted net
and decrypt packets leaving it, creating a secure tunnel through it (see
figure 1).
142
1.2.1
Simple tunneling protocol.
Most of the current operating system can enable simple tunnels between two gateways (without
any authentication or encryption: the tunnel is thus not secure). This
system is very simple. Gateways on each network encapsulate packets
destined to the distant network in a packet destined to the remote gateway. But this solution is limited to static IP addresses on gateways. In
our context, IP addresses of gateways will be dynamically allocated by
the provider. So we need to authenticate these gateways dynamically
and by other mean than its IP address.
1.2.2
The IPSec Protocol and its use in Virtual Private
Networks
IPSec is a mechanism for adding security to IP and up-
2.
143
DSL Modem
Figure 2.
university 1P address
Figure 3.
computer
DSL Modern
Figure 4.
144
VPN Terminatiir
I
,
.-.i
DSL Modem
130 :04 x y
Figure 5.
rn
145
2.1.
Requirements of the V P N
2.2.
rn
rn
146
Figure 6.
Hawser boots.
rn
Hawser logs into the provider network and gets a dynamic provider
address from, say, a radius server.
rn
3.
147
rn
3.1.
3.2.
DHCP configuration
148
3.3.
Address translation
3.4.
Summary
rn
rn
rn
rn
Hawser forwards the reply to the computer, starts address translation between 10.b.c.d and a.b.c.d, and enables the tunnel for the
address a.b.c.d
rn
rn
149
4.
Related Works
We did not find any other published paper on the problem of setting
up a remote subnetwork connected with a single temporary address allocated by a provider and using addresses belonging to a main network
and dynamically allocated by a server in this network. However, results
has been published about closely related problems.
Realm Specific IP (RSIP) is a new protocol, designed as an alternative
to NAT that preserves end to end packet integrity. RSIP allocates on
demand in a network A, addresses belonging to another network B. The
gateway between networks A and B has a pool of IP addresses of B and
will allocate them to hosts in A (called RSIP hosts) when requested.
Routes or tunnels must be provided in A for these RSIP hosts. They
can be considered as if they were really on the network B.
The advantage of this solution over NAT is that nothing in the packet
is modified. The drawback is that a driver is needed in each RSIP host
of the subnetwork.
RSIP was designed to solve a different problem than the one addressed
in this paper. However, it provides a similar service with different mean.
The main diference of the service provided by RSIP and the service
provided in our solution is that, since the RSIP server is on the gateway,
the range of addresses allocated to each remote subnetwork must be
allocated statically. Since our solution uses a central server, addresses
can be distributed on demand to several remote networks, which is a
more efficient allocation technique.
On the other hand, RSIP preserves the end to end integrity of packets
while our solution uses NAT coupled with DHCP which means that
packets are modified in the path. The price RSIP has to pay for this
advantage is to add some software to each host in the subnetwork.
More Information on RSIP can be found in [RSIP-PROTO].
150
5.
Conclusion
The paper identifies a new problem, which is to make a remote subnetwork, called remote bubble, really look like merged in another network,
with I P addresses belonging to this network centrally and dynamically
allocated.
It proposes a solution based on existing protocols (IPSec, DHCP,
NAT). Coupled DHCP relay and NAT protocol engines provide the hosts
of the remote bubble with addresses from the main network. IPSec allows the gateway itself to have a dynamic I P address and hide the contents of packets on the way between the remote bubble and the main
network. The situation of the hosts in the remote bubble is exactly the
same (except for communications delays) as if they were located inside
the main network.
The solution we propose presents many advantages. In addition to
secure communication, with the creation of an IPSec tunnel between
the remote bubble and the university network, its dynamic configuration
allows to manage easily many bubbles of any size, without wasting I P
addresses.
The administration of a bubble is quite simple: all the computers
plugged behind the gateway (Hawser) will be automatically on the university network.
Acknowledgements
This work has been performed in the framework of the SIN project
(Secure I P Networking) supported by grant FIRST 981/3749 by MRWDGTRE (Travaux raliss avec laide du Ministre de la Rgion Wallonne, en application du programme de formation et dimpulsion la
recherche scientifique et technologique ).
The authors express their thanks to the anonymous reviewers for their
useful comments.
References
[Ran00] Ranch, D. (2000). Linux IP Masquerading H O W T O . Technical report.
http://www.linuxdoc.org/HOWTO/IP-Masquerade-HOWTO.html.
[DH99] Doraswamy, N.; Harkins, D. (1999). IPSec :The New Security Standard for
the Internet, Intranets and Virtual Private Network. Prentice Hall PTR.
[RFC2401] Kent, S.; Atkinson, R. (1998). Security Architecture for the Internet Protocol. Request for Comments 2401. Network Working Group.
[RFC2402] Kent, S.; Atkinson, R. (1998). IP Authentication Header (AH). Request
for Comments 2402. Network Working Group.
[RFC2406] Kent, S.; Atkinson, R. (1998). IP Encapsulating Security Payload (ESP).
Request for Comments 2406. Network Working Group.
151
joris.claessens@esat. kuleuven.ac. be
Abstract
In current electronic commerce systems, customers have an on-line interaction with merchants via a browser on their personal computer. Also
payment is done electronically via the Internet, mostly with a credit
card. In parallel to this, e-services via wireless-only systems are emerging. This paper identifies security and functionality weaknesses in both
of these current approaches. The paper discusses why and how generalpurpose mobile devices could be used as an extension to PC based systems, to provide more security and functionality. General-purpose mobile devices are shown to be an alternative to costly special-purpose
hardware. This combined approach has in many cases more interesting properties than when using mobile devices only. As an example
of the combined approach, a GSM based electronic payment system is
proposed and investigated. The system enables users to order goods
through the World Wide Web and pay by using their mobile phone.
1.
Introduction
154
the fixed PC based systems, e-services are also emerging in the wireless
world. Current mobile devices have however rather limited functionality,
and in many applications, they are not suited to be used on their own.
This paper suggests a combined approach in which mobile devices are
used as an extension to the World Wide Web environment. The paper
starts with a description of the security properties of the World Wide
Web in Sect. 2, and the security features in some wireless systems, i.e.,
GSM and WAP, in Sect. 3. Section 4 discusses security and functionality weaknesses in both worlds, and suggests a combined approach. An
example of this approach is given in Sect. 5: a GSM based electronic
payment system for the WWW is proposed and investigated. Further
analysis of this system is presented in Sect. 6.
2.
There are many security issues related to the WWW. Within the
scope of this paper, we will only discuss the communications security
aspect, both at the network and the application level, and the payment
security aspect.
2.1.
Communications security
The communication between a web browser and a web server is secured by the SSL/TLS protocol. Historically, Secure Sockets Layer
(SSL) was an initiative of Netscape Communications. SSL 2.0 contains
a number of security flaws which are solved in SSL 3.0. SSL 3.0 was
adopted by the IETF Transport Layer Security (TLS) working group,
which made some small improvements and published the TLS 1.0 [8]
standard. SSL/TLS is used in this paper, as SSL is an acronym
everyone is quite familiar with; however, the use of TLS in applications
is certainly preferred to the use of the SSL protocols.
Within the protocol stack, SSL/TLS is situated underneath the application layer. It can in principle be used to secure the communication of any application, and not only between a web browser and
server. SSL/TLS provides entity authentication, data authentication,
and data confidentiality. In short, SSL/TLS works as follows: publickey cryptography is used to authenticate the participating entities, and
to establish cryptographic keys; symmetric key cryptography is used
for encrypting the communication and adding Message Authentication
Codes (MACs), to provide data confidentiality and data authentication
respectively. Thus, SSL/TLS depends on a Public Key Infrastructure.
Participating entities should have a public/private key pair and a certificate. Root certificates (the certification authorities certificates that
155
are needed to verify the entities certificates) should be securely distributed in advance (e.g., they are shipped with the browsers). Private keys
should be properly protected. Note that these two elements, i.e., distribution of root certificates in browsers and the protection of private keys,
is actually one of the weak and exploited points with respect to WWW
security (see further).
More detailed information on SSL/TLS, the security flaws in SSL 2.0,
and the differences between SSL 3.0 and TLS 1.0, can be found in [27].
2.2.
Application security
SSL/TLS only protects data while it is in transit. Moreover, exchanged messages are not digitally signed. Therefore it does not provide
non-repudiation. Both customers and merchants can always deny later
on having sent or received requests or confirmations from each other.
In addition to SSL/TLS, critical messages should thus be digitally
signed before they are sent through the secure channel. The concept
of digitally signing messages is not really integrated yet in todays web
browsers. Netscape though allows the content of forms to be digitally
signed using the Javascript signText() function. XML will be more
and more used on the WWW to represent content instead of the basic
HTML. In the future, browsers are therefore expected to implement
Signed XML [10], which specifies how XML documents should be digitally signed.
Note that an alternative protocol to secure the communication on the
WWW has been proposed in the past: S-HTTP [26]. This protocol is
situated at the application layer, and is specifically intended for HTTP.
It secures HTTP messages in a very similar way to the protocols for
secure email, and provides non-repudiation. SSL/TLS has however become the de-facto standard on the web, and S-HTTP was not a success.
2.3.
Payment security
156
3.
Wireless security
GSM and WAP are currently probably the two most popular and
widely used wireless technologies. They are briefly presented in the
following paragraphs. Thereafter, some other systems and initiatives in
the wireless world are discussed.
3.1.
GSM
157
ware. GSM does not use public-key cryptography. Symmetric keys are
derived from user related data using an algorithm under the control of
a master key.
The electronic payment system described in the example later in this
paper, requires the SIM to contain a small payment application, based on
the SIM Application Toolkit. The SIM Application Toolkit [13] provides
mechanisms which allow applications, existing in the SIM, to interact
and operate with any compliant mobile equipment. These mechanisms
include displaying text from the SIM to the mobile phone, sending and
receiving SMS messages, and initiating a dialogue with the user. In addition to the GSM security mechanisms, special SIM Application Toolkit
security features have been defined [ll, 12]. The security requirements
that have been considered are: (entity) authentication, message integrity, replay detection and sequence integrity, proof of receipt and proof of
execution, message confidentiality, and indication of the security mechanisms used. According to the standard, digital signatures can be used
to implement some of these requirements.
Note that the same distinction between communications security and
application security as made in the WWW security context, can be made
here: standard GSM security at the communications level, and SIM
Application Toolkit security at the application level.
3.2.
WAP
The Wireless Application Protocol (WAP) is a protocol stack for wireless communication networks. WAP is bearer independent; the most
common bearer is currently GSM.
Similar to SSL/TLS for the Internet, WTLS [39] is WAPs communications security solution. It also relies on a Public Key Infrastructure
[35, 34]. The main differences are that WTLS supports by default algorithms based on elliptic-curve cryptography, is adapted for datagram
communication (instead of connection), and supports its own certificate
format, besides X.509v3, optimized for size. TLS was as such modified
to make it more suitable in an environment where there are bandwidth,
memory, and processing limitations.
At the application layer, WAP provides digital signature functionality through the WMLScript Crypto Library [40], which is similar to
Netscapes Javascript signing. Comparable to the GSMs SIM, WAP
devices will use a Wireless Identity Module (WIM) [38] which can contain the necessary private and public keys to perform digital signatures
and certificate verification respectively.
158
3.3.
4.
Both the World Wide Web and the wireless world on their own have security and/or functionality problems. These shortcomings are explained
in the following paragraphs. An approach in which the two worlds and
their advantages are combined, is then motivated.
4.1.
WWW: problems
It is very common that only web servers have certificates with which
they are authenticated. In case user authentication is needed, it is almost
never done via SSL/TLS client authentication. Users are often authenticated via their I P address, which is vulnerable to I P spoofing [3], which
certainly does not provide mobility, and which is just not usable in an
open system. Fixed passwords are frequently used, which provide mobility, but which are vulnerable to guessing, dictionary attacks and social
engineering. Passwords that are only used once are not frequently used.
They would be more secure, but certainly less convenient.
Root certificates are needed when verifying a web server certificate.
It is very important that a user has an authentic copy of these certific-
159
ates. This is more or less ensured by shipping them together with the
browsers. It is however easy to add more or even replace root certificates. Moreover, the browser trust model causes a server certificate to be
trusted if it is successfully verified by any of the root certificates (since
there is usually no central policy management, this might easily include
an attackers root certificate). Finally, browsers generally also do not
yet check if a certificate has been revoked.
If the user has a public/private key pair - for SSL/TLS client authentication, for SET, or for digitally signing documents - the private key
will mostly reside on the hard disk of the machine. Even if it is protected
by a pass phrase, it is still very vulnerable, for example due to Trojan
horses. Users with such a software token are also hardly mobile. Smart
cards are a solution, but for particular applications, they might be inconvenient. Moreover, smart card readers are currently not installed on
each machine. Other special-purpose hardware, such as a Digipass [9], as
sometimes used in e-banking, might be too costly for small applications,
i.e., the investment for the customers and/or merchants would just be
too high compared to the expected benefits.
Current end-user computing systems tend to offer more functionality at the cost of security. This is actually the reason why for example
root certificates and private keys are so vulnerable on current end-user
machines. Specifically, there is currently a lack of secure operating systems [19] and trusted components [30]. Todays PC and browser offer
advanced functionality, but are therefore an insecure environment.
4.2.
Wireless: problems
While the security problems on the WWW are currently more related
to the secure management of the end-points, the security problems in
some wireless systems are still with the protocols and algorithms themselves. For example, algorithms used by many GSM providers have been
broken and over-the-air cloning and real-time eavesdropping have been
shown (at least in theory) to be feasible [28]. Security problems have
been discovered in other mobile systems too [6, 17]. Most of these problems are due to non-public design of the algorithms and protocols, leakage and/or publication of the details to the general public afterwards,
and discovery of flaws by the cryptographic community.
More conceptually, both GSM and WAP do not offer end-to-end security. GSM security only applies on the wireless link, i.e., from mobile
phone to base station, but not from mobile phone to mobile phone. The
fixed network is considered to be secure (more precisely, GSM intends
to offer the same security level as the fixed network). In the WAP ar-
160
4.3.
161
5.
5.1.
Involved entities
Customer.
The Customer wants to buy something via the WWW.
Payment will be done via his/her GSM. The Customer will receive a
receipt, with which he/she can pick up the goods (the system must
work with both physically deliverable goods and electronically available
goods). Obviously, the Customer should have a PC with Internet connection. This can also be a public terminal. He/she needs a mobile phone
with SIM Application Toolkit functionality. The SIM card should be
162
Merchant.
The Merchant wants to sell something via the WWW.
He/she should have a web server, and an access point to the mobile
network. Examples are an on-line bookstore, a pizza delivery chain, an
electronic parts shop, etc.
Deliverer. The Deliverer is the local (with respect to the Customer)
representative of the Merchant. It will deliver the goods after having
verified the receipt the Customer has obtained from the Merchant. The
Deliverer should have some equipment to verify this receipt. An example
is the pizza delivery boy/girl, etc. The Deliverer can also be another
company that made an agreement with the Merchant. For example, the
Merchant can send the goods to a gas station near the Customer; in this
case, the gas station is the Deliverer where the Customer can pick up
the goods.
Network Operator. The N.O. plays the role of the bank. It will deduct the necessary amount of money from the Customers balance (can
be credit or pre-payment based), and add this amount to the Merchants
balance. A commission on this amount will be taken, or a periodical fee
will be requested from the Customer and/or Merchant. In practice there
will be multiple N.O.s: N.O.(C), N.O.(M) and N.O.(D), for the Customer, the Merchant and the Deliverer respectively (as shown in Fig. 1).
Note that in reality, and from a non-technical point of view, it might
not be easy for any Network Operator to deploy an electronic payment
service (e.g., banking license). Alternatively, the Network Operator
could in this system be replaced by a real financial institution, which
makes an agreement with one or more operators.
5.2.
163
=I&,
of money
CLIENT ME
www
CUSTOMER
12
DELIVERER
MERCHANT
CLIENT PC
1.
2.
3.
4.
Purchase Request
Purchase Confirm
Verification by Customer
Debit Account
5. Inter-N.O.
6. Delivery OK
Figure 1.
7. Verification by Merchant
8. Receipt
9. Presentation of Receipt
10. Verification by Deliverer
164
4. Debit Account.
The SIM Application Toolkit application asks
the Customer a confirmation for sending a Debit Account message (4) to
the N.O.(C). This message includes the amount of money to be paid, the
TID, the Merchants ID and N.O.(M)s ID. The authentication of the
Customer relies on GSM entity authentication (the Customers mobile
phone number should be in the Merchants database). The TID will
allow verification by the Merchant afterwards.
5. Inter-N.O. The N.O.(C) deducts the proper amount of money
from the Customers balance, and forwards the Debit Account message
to N.O.(M). The N.O.(M) adds the amount to the Merchants account.
6. Delivery OK. The N.O.(M) sends a Delivery OK (6) to the Merchant. This message contains the amount of money and the TID, and
can be digitally signed by the N.O.(M).
165
166
received, the Merchant enables the access to the information; the TID
should not be known to other entities (however, note that the N.O.
should be trusted not to misuse its knowledge of the TID).
12. Confirmation of reception. After the Customer has obtained
the goods, it can optionally be required that he/she confirms the reception of the goods (12), e.g., by digitally signing a specific message. This
will prevent Customers from denying later on having received the goods.
6.
The proposed GSM based electronic payment system for the WWW is
analyzed further in this section. Some GSM specific comments are given,
the security and privacy of the system is evaluated, and a comparison
with a number of similar systems is made. Note that this section only
intends to discuss this particular example, and not the general combined
approach.
6.1.
GSM functionality
The protocol relies on SMS messages. These can only contain 160
characters, which should be taken into account when defining the exact
content of the protocol messages. Note that GSM provides a mechanism to send long messages as a concatenation of multiple SMS messages. Since the protocol involves on-line bi-directional communication
between the entities, there should be not much latency between sending
and receiving SMS messages. This might be a problem in the case of
international roaming.
6.2.
Security
The security features of SSL/TLS and GSM form together a basis for
the security of the proposed electronic payment system. By having a
close link between the two, the security is even improved.
The Customer can securely request a purchase via SSL/TLS. The
Customer will receive a confirmation via this same secure channel, and
also on its mobile phone. Therefore, the Customer can double-check
the Merchants identity, and the contents of the purchase, including the
amount of money to be paid.
The Merchant can rely on the GSM network to be sure to receive
an authenticated payment from the Customer via the Network Operator later on. Moreover, the Customer cannot cheat by requesting its
Network Operator to deduct a smaller amount of money than origin-
167
ally requested by the Merchant. The Merchant would notice the smaller
amount of money and not send a receipt.
The Deliverer can validate a receipt by verifying the digital signature
of the Merchant, and by checking if the receipt is fresh. Thus, receipts
cannot be forged, and cannot be replayed. Moreover, if the Customers
mobile phone number is included in the receipt, the Deliverer could rely
on GSM authentication and check if the receipt is actually presented
by the original initiator of the transaction (provided that the Customer
allows its own number to be sent to the receiving end; note also that
for some applications, Customers might desire to be able to forward the
receipt to another party that in its turn can pick up the goods).
As on top of SSL/TLS and GSM, some crucial messages are digitally
signed; this decreases the need for Customers and Merchants to trust
each other (i.e., they only need to trust they use the right public key,
which should be ensured by the certificates that are issued by mutually
trusted CAs). For example, since the receipt is digitally signed, it cannot
only be verified by the Deliverer, but also by a Judge, in case of a dispute.
Note that the latter also requires that the receipt includes a unique and
indisputable description of the goods that should be delivered.
The Network Operator is trusted to transfer the proper amount of
money from the Customers to the Merchants balance. It is expected to
do so, as its business would otherwise quickly collapse due to negative
publicity.
In some sense, the Customers mobile phone can be considered as a
secure and personal device (and care should therefore be taken that it is
not easily stolen or lost). The strength of the electronic payment system
proposed in this example relies particularly on the security of such a
device, which is combined with the advanced yet insecure environment
provided by the P C and the browser.
6.3.
Privacy
168
6.4.
Other approaches
7.
Conclusion
169
For the PC and its big screen will always be far more advanced than the
mobile device, but will never be mobile.
Acknowledgments
Joris Claessens is funded by a research grant of the Flemish Institute
for the Promotion of Industrial Scientific and Technological Research
(IWT). This work was also partially supported by the Concerted Research Action (GOA) Mefisto-666 of the Flemish Government.
This work was mainly initiated during a research visit at the Information Security Research Centre (ISRC) of Queensland University
of Technology (QUT), Brisbane, Australia. The first author wants to
thank Dr. Mark Looi of the ISRC for the interesting discussions on this
topic. The authors also want to thank Dr. Silke Holtmanns of Ericsson
for the various pointers to existing mobile payment systems, and the
anonymous reviewers for their constructive remarks and suggestions.
References
[1] American Express. Private Payments. ht tp:// www. americanexpress.com
/privatepayments/.
[2] Banxafe. htt p://www.banxafe.com/.
[3] S. M. Bellovin. Security Problems in the TCP/IP Protocol Suite. Computer
Communication Review, 19(2):32-48, April 1989.
[4] Simon Blake-Wilson, Magnus Nystrom, David Hopwood, Jan Mikkelsen, and
Tim Wright. TLS Extensions. IETF Internet Draft, June 2001.
[5] Bluetooth SIG. http://www.bluetooth.com/.
[6] Nikita Borisov, Ian Goldberg, and David Wagner.
Intercepting
Mobile
Communications:
The
Insecurity
of
802.11.
http://www.isaac.cs.berkeley.edu/isaac/wep-draft.pdf.
[7] Clara Centeno. Mobile Payment Industry Fora - Consolidation of Initiatives
Expected. Electronic Payment Systems Observatory - Newsletter, ePSO-N,
(8):8-12, July 2001. Available at http://epso.jrc.es/.
[8] T. Dierks and C. Allen. The TLS Protocol Version 1.0. IETF Request for
Comments, RFC 2246, January 1999.
[9] Digipass. http://www.vasco.com/.
[10] D. Eastlake, J. Reagle, and D. Solo. XML-Signature Syntax and Processing.
IETF Request for Comments, RFC 3075, March 2001.
[ll] ETSI. Digital cellular telecommunications system (Phase 2+); Security mechanisms for the SIM Application Toolkit; Stage 1. ETSI TS 1 01 180 (GSM 02.48).
[12] ETSI. Digital cellular telecommunications system (Phase 2+); Security mechanisms for the SIM Application Toolkit; Stage 2. ETSI TS 101 181 (GSM 03.48).
[13] ETSI. Digital cellular telecommunications system (Phase 2+); Specification
of the SIM Application Toolkit for the Subscriber Identity Module - Mobile
Equipment (SIM - ME) interface. ETSI TS 101 267 (GSM 11.14).
170
[14]
[15]
[16]
[17]
GiSMo. http://www.gismo.net/.
IETF Working Group. IP Routing for Wireless/Mobile Hosts (mobileip).
InternetCash. http://www.internetcash.com/.
Markus Jakobsson and Susanne Wetzel. Security Weaknesses in Bluetooth. In
D. Naccache, editor, Progress an Cryptology - Proceedings of the Cryptographers'
Drack at RSA 2001, Lecture Notes in Computer Science, LNCS 2020, pages 176191. Springer-Verlag, 2001.
[18] Jalda. http://www.jalda.com/.
[19] Peter A. Loscocco, Stephen D. Smalley, Patrick A. Muckelbauer, and Ruth C.
Taylor. The Inevitability of Failure: The Flawed Assumption of Security in Modern Computing Environments. In Proceedings of the 21 st National Information
Systems Security Conference, pages 303-314, October 1998.
[20]
[21]
[22]
[23]
[24]
[25]
[26]
Mint. http://www.mint.nu/.
Mobile Electronic Signature Consortium. http://www.msign.org/.
Mobile electronic Transactions. http://www.mobiletransaction.org/.
NTT DoCoMo. i-mode. http://www.nttdocomo.co.jp/i/.
Paybox. http://www.paybox.de/.
Proton. http://www.protonworld.com/.
E. Rescorla and A. Schiffman. The Secure HyperText Transfer Protocol. IETF
Request for Comments, RFC 2660, August 1999.
[27] Eric Rescorla. SSL and TLS: Designing and Building Secure Systems. AddisonWesley, 2000.
[28] Bruce Schneier. European Cellular Encryption Algorithms. Crypto-Gram,
December 1999.
[29] SET Secure Electronic Transaction LLC. SET Secure Electronic Transaction
Specification. http://www.setco.org/.
[30] Trusted Computing Platform Alliance. http://www.trustedpc.org/.
[31] The UMTS Forum. http://www.umts-forum.org/.
[32] Klaus Vedder. GSM: Security, Services and the SIM. In B. Preneel and V. Rijmen, editors, State of the Art in Applied Cryptography, Lecture Notes in Computer Science, LNCS 1528, pages 227-243. Springer-Verlag, 1998.
[33] M. Walker. On the security of 3GPP networks. Invited talk at Eurocrypt 2000.
[34] Wireless Application Protocol Forum. WAP Certificate and CRL Profiles. Approved 2 2-May-200 1.
[35] Wireless Application Protocol Forum. WAP Public Key Infrastructure. Version
24-Apr-2001.
[36] Wireless Application Protocol Forum. WAP TLS Profile and Tunneling. Version
11-April-2001.
[37] Wireless Application Protocol Forum. WAP Transport Layer End-to-end Security. Approved Version 28-June-2001.
[38] Wireless Application Protocol Forum. WAP Wireless Identity Module, Part:
Security. Version 12-July-2001.
[39] Wireless Application Protocol Forum. WAP Wireless Transport Layer Security.
Version 06-Apr-2001.
171
[40] Wireless Application Protocol Forum. WAP WMLScript Crypto Library. Ver-
sion 20-Jun-2001.
TWZO OEX, UK
Abstract
In this note we propose two methods t o improve t h e security and reliability of mobile agent based transactions in a n environment which may
contain some malicious hosts.
1.
Introduction
174
In this paper we are concerned with the second class of threats, and
in particular with threats to agents deployed for trading applications.
Specifically, users will need to give trading agents certain authority to
authorise transactions, whilst at the same time users will wish to protect
themselves against malicious merchants forcing an agent to make a nonoptimal purchase.
We consider simple ways in which deployment of multiple agents can
reduce the threat to trading agents from platforms outside of their direct
control. We consider two general approaches. In the first approach
multiple agents are equipped with shares of the means to commit to
a transaction. In the second approach a single trusted host provides
a location for multiple agents to report back information enabling a
purchasing decision to be made.
The paper has the following structure. The next section explores
threats to trading agents in more detail. This is followed in Sections 3
and 4 by a discussion of the models used here for agent platforms and
for trading agents. Sections 5 and 6 then explore the two approaches to
enhancing trading agent security.
2.
including manipu-
rn
rn
rn
rn
175
2.1.
176
This is when the host changes the requirements to favour its bid.
For example, it could add a requirement to buy from a certain
host, or remove constraints from the agent.
Figure 1.
177
Here a host would stop an agent from moving further on its route.
This of course could be traced if an agent reports when it arrives
on a host.
3.
Mobile agents roam between platforms. However, they can also communicate with each other, and with other hosts. This leads to the question as to the best "platform" model to use for trading (or indeed any
other) agents. There are clearly two basic approaches which we now
describe.
The first approach (see Figure 1) is to have a designated platform
(or a collection of such platforms) to which we can send an agent to
execute. This agent then communicates with merchant servers to seek
information and commit to purchases.
The second model (see Figure 2) is to have an agent roam to each
merchant server in turn and collect the information it requires. After
collecting all the information the agent can then either return to the
user to make the purchase, return to the chosen merchant to make the
purchase or make the purchase from the final host.
In a mobile telecommunications environment it may also be beneficial
to have a third model. This is where the requirements for a purchase are
communicated to a 'home platform' (the user's home PC or a network
operator controlled device) which then forms the agent and conforms to
one of the above models.
In the above, any of the platforms may be malicious, with the possible
exception of the home platform. The solutions proposed below can be
made to fit into any of the above situations, although they both fit better
into the first model.
The security risks associated with the above two models clearly differ.
In the first case, the designated platform might be trusted to keep
secret certain agent information. An example of where this might be
useful is when the agent contains details of the user expected price (or
maximum price), which it would be helpful not to reveal to the merchant.
Of course, the threat then arises that one of the designated platforms
will collude with one or more of the merchants. In the second case, it
is clearly impossible to try and keep any information in the agent secret
from the merchants. In both cases, however, as we will show in the
remainder of this paper, there are potential benefits to be gained from
the use of multiple agents, albeit not from the confidentiality perspective.
4.
Merchant
Merchant
Figure 2.
HMerchant
Merchant
179
In this scheme, using RSA, an agent carries both the hash value, h , of
the requirements and the signed hash value, hd mod n, where ( d , n ) is
the users private RSA key. To commit to a transaction for the user the
agent calculates
(hd)= hxd = (h)dmod n
effectively signing h where 2 is the servers offer. An alternative to this
where the agent carries its own private key which the user certifies is
given in [BMW01a].
Thus we assume that a trading agent will carry the following information:
User Identifier
5.
Threshold Scheme
180
The Scheme
Let T = {TI,
T2,.
. . ,Tn}be a set of agent platforms. The user then
sets up a (k,n ) voting scheme with shares s1,s2,. . . ,sn. Clearly k should
5.1.
A vote
si
5.2.
181
The Votes
As mentioned above, the votes can be assembled by either the selected merchant or a nominated third party. Note that there are clear
risks associated with giving votes to the merchant, since the merchant
could now possibly commit the user to a transaction of the merchants
choice (within any constraints imposed by the string R). That is, the
merchant is not forced to commit to the transaction as offered to the
agents. Hence the use of a nominated third party to reconstruct the
votes is the preferred approach. The possibility that this may not be
feasible in practise leads to an alternative approach.
One approach is thresholdcryptography.Threshold cryptography was
first proposed by Desmedt [Des88]. A typical example of a threshold
cryptosystem is one that would allow a set of t parties to sign any document such that any coalition of less than t parties cannot sign any other
document. Schemes tend to rely on a combiner which does not necessarily need to be trusted. Schemes based on both RSA and El Gamal
have been proposed.
Recently Shoup [Sho00] proposed an RSA scheme which is as efficient
as possible; the scheme uses only one level of secret sharing, each server
sends a single part signature to a combiner and must do work that is
equivalent, up to a constant factor, to computing a single RSA signature.
Although not perfect as a threshold signature scheme (as it relies on a
trusted party to form the shares) this scheme is ideal in our setting.
(Note that an alternative scheme without a trusted dealer is given in
[DK01]. This scheme also improves on Shoups scheme by not relying on
an RSA modulus made up of safe primes). An example of an El Gamal
scheme is given in [Lan95]. We note that a (n, n) threshold signature
scheme is just a multisignature; such schemes have been studied for many
years - see, for example, page 488 of [MvOV96].
We note, however, that such a threshold signature scheme does not
provide a means for the shares to incorporate an encoding of the string
R . Thus, if there were k colluding hosts they could sign (and reconstruct
a signature) for any document. One solution to this problem is for the
user to generate a special signature key pair for the particular purchase
(i.e. for this particular set of agents), and then to generate a certificate
for the public key incorporating a copy of R. When the signature is
reconstructed from the signature shares, it can be verified using this
certificate. However, it is possible to merge the undetachable signature
scheme given in [KBC00] with the threshold signature scheme of Shoup
[Sho00] and details of this are given in [BMW01b].
182
6.
Agent identifier - I
rn
rn
Host identifier
which would then visit each of the servers in S in turn. We note that
the requirements sent out do not need to include pricing information
(that is the maximum price the user is prepared to pay) or any other
information that the user wishes to be used to help make the decision,
but does not wish to communicate to the server. Another approach is
to form a single agent for each server. A third approach has the above
agent visiting a subset S' c S of the above servers. Whichever strategy
is employed, at each host the agent performs the following actions:
1 Find out the server's bid Bi for the item specified in the requirements R.
183
The agent returns to T when it has finished visiting all of its servers.
The agent on T then decides the best offer and commits to it using the
committal function.
We note some of the features of the above scheme.
rn
rn
rn
Using more than one agent that does not visit all the hosts could
then be used to (help) identify a malicious host.
If we use a single agent and it visits all the hosts, or we have an agent
that visits more than one host, the agent is subject to the following
at tacks:
An approach to enable a malicious host to underbid its competitors, is as follows. The host forms a new agent containing the
users requirements, a fictitious user identifier, and its own host
identifier. This agent would then traverse the route of the users
agent, and discover the bids offered for that set of requirements.
The host could then under bid its competitors, but the users agent
would have had to have been kept on the malicious host in the interim period. Thus monitoring the progress of an agent could help
determine if such an attack was being used.
184
will then try to undercut this (this undercut is a lie). If we then require,
we can apply rules to the results of the other agents, and attempt to
identify the malicious host. This also requires careful choice of agent
destinations and routing.
Note that to force T to purchase from a malicious host, the host has
to lie and then be unscrupulous, or just lie and possibly not profit as
much as it would expect. That is if the malicious host M wants to force
a user to trade with it, then it must have the best price. So it must either
charge more than its advertised price (possibly breaking the committal
function) or make less profit than it expects (because the price advertised
is less than the host should sell for).
We now consider the extent to which the user must trust the host T.
The user must trust that T does not favour a particular server for this
transaction. However, with a sufficiently good committal function then
this is the only trust requirement. For example using the Kotzanikolaou
et al. undetachable signature scheme [KBC00], as a committal function,
T can be given the means to commit to the transaction without being
trusted with a copy of the users private signature key. This may be a
situation where using an undetachable signature scheme has advantages
over the creation of a separate signature key for each agent.
7.
Conclusions
185
References
[BMW01a]
[BMW01b]
[Des88]
[DK01]
[FGS96]
[Has00]
[Hoh98a]
[Hoh98b]
[KBC00]
[Lan95]
[MvOV96]
[Ng00]
[RJ96]
186
[RS98]
[Sho00]
[ST971
[ST98]
http://www.icsi.berkley.edu/sander/publications/MA-protect.ps.
Giovanni Vigna. Protecting mobile agents through tracing. In Proceed[Vig97]
ings ofthe Third E C O O P Workshop on Operating System support for
Mobile Object Systems, 1997.
[WSB98]
U. G. Wilhelm, S. Staamann, and L. Buttyin.
On the
problem of trust in mobile agent systems.
Available from
http://www.isoc.org/isoc/conferences/ndss/98/ndss98.htm,
1998.
Network and Distributed System Security (NDSS98) Symposium.
[Yee97] Bennet Yee. A sanctuary for mobile agents. In DARPA Workshop o n Foundations for Secure Mobile code, 1997. Available from
http://www.cs.nps.navy.mil/research/languages/statemensts/bsy.ps.
SPARTA
A Mobile Agent based Intrusion Detection System
Christopher Krgel*
Distributed Systems Group, Technical University Vienna
[email protected]
Thomas Toth
Distributed Systems Group, Technical University Vienna
[email protected]
Engin Kirda
Distributed Systems Group, Technical University Vienna
[email protected]
Abstract
The large number of machines with different operating systems and applications
in an enterprise network makes it very difficult for the system administrator to
close all security holes and install the latest OS and software patches. When
the network is connected to the Internet and services are remotely available they
become a potential target for hackers. As the number of security related incidents
is constantly increasing at an alarming rate the need for automated tools to detect
intrusions becomes evident. Such tools are called intrusion detection systems.
We present Sparta, a system that allows to detect security policy violations
and network intrusions in a heterogeneous, networked environment. We have
designed a pattern language in order to express intrusions (i.e. offending event
patterns) in a declarative manner. This allows to specify what to detect instead of
how to detect. A fully distributed approach to find the given patterns is presented
as well. We use mobile agents to correlate event data instead of moving the
whole information to a central location. This increases the fault tolerance and
scalability of our system.
Keywords:
Intrusion Detection, Mobile Agents, Pattern Specification Language, Event Correlation, Network Security
*Contact Author
188
Introduction
Virtually every organization depends on sensitive data which has to be protected against unauthorized access. Such data is often stored on machines
which are remotely available over a network. The growth of the Internet has
caused an increase of the size of individual networks as well as an increase of
transported traffic. This makes it extremely difficult to manually manage and
protect valuable assets. Combined with an alarming rise of attacks and hacking attempts, organizations need tools like intrusion detection systems (IDS) to
enforce security and detect hacking attempts.
Sparta(an acronym for Security Policy Adaptation Reinforced Through
Agents) is the name of a system architecture which is capable of monitoring a
network to detect network intrusions and security policy violations. The system
monitors local events at hosts which are connected by a network, relates them
and provides an interface where the user can query the gathered information.
This makes it possible to apply our design to a broad range of applications and
use it for a number of network related tasks, ranging from network management
to intrusion detection.
The contribution of this paper is the description of an architecture to collect
and relate distributed data in an efficient way by using mobile agents and its
application to network intrusion detection. In contrast to traditional designs
where data is gathered and analyzed at a central location, the application of mobile agents allows distributed analysis. This approach improves the scalability
and increases the fault tolerance in our opinion.
1.
Functional Description
Sparta is an architectural framework which allows to identify and relate interesting events that may occur at different hosts on a network. A single event
is described by specifying appropriate values for its attributes. A number of
events can be connected by defining temporal or spatial relationships between
them or imposing certain constraints on their attributes thereby creating a pattern. In order to deal with complex patterns and systems, it is not sufficient
to select events based on content alone. It is necessary to consider multiple
events at the same time and deduce knowledge that is beyond the scope of an
individual event. The process of detecting a set of events with given properties
is called correlation.
This general correlation capability allows the Sparta architecture to be used
for different distributed applications, ranging from network security to network
management implementations. We currently build a security policy and ID
application based on our design.
The basic functionality can be described as follows. Interesting events are
locally collected and stored. The collection of all local information can be
189
Sparta
2.
System Architecture
190
Figure I.
Sparta Architecture
write patterns which relate high level events and have the system automatically
consider all actual instances (i.e. subclasses) of such generic events.
Sensors store their generated data in a local data storage component, prefer-
ably a database. The data storage component must be able to support the
inheritance relationship of events. When queries specify parent class events,
derived events have to be returned as well.
The mobile agent subsystem is responsible for providing a communication
system to move the state and the code of agents between different hosts and for
providing an execution environment for them. Additionally, the system has to
provide protection against security risks involved when utilizing mobile code
(see Section 5 for more details). An important task of the agent subsystem is the
provision of a directory service. When agents have to look for event patterns,
they need to access a list of all hosts with an installed agent platform. The
agent platform also provides clock synchronization with a maximum guaranteed
deviation. This is needed to be able to temporally relate events at different nodes.
The user interface allows users to specify queries and claim the results.
The agent launch and query unit initiates the launch of appropriate agents and
provides a way for them to communicate back their results. Queries are written
in a language called Event Query Language (EQL), which we have developed to
conveniently specify patterns that reflect a security violation. This is described
in more detail below in Section 3.1. The user interface itself is realized as a
web interface using HTML and JavaScript on the client side and Servlets on the
server side. The communication between the client and the server is secured
by using SSL connections. This setup allows a user to access the system via a
standard browser from any computer that needs no Sparta components installed.
3.
Pattern Specification
191
Sparta
Definition:
Pattern P is valid, iff the following properties hold.
These definitions actually only allow tree-like pattern structures (i.e. the
connection graph is a tree), where the node with the root set is the root of the
tree. Although this restriction seems limiting at a first glance, most desirable
situationscan still be described. Usually, activity at a target host only depends on
events that have occurred earlier at several other hosts. This situation can easily
be described by our tree patterns where connection links from those several hosts
192
end at the root node. The opposite case, where events on two different nodes
both depend on the occurrence of a single event at a third node is more difficult.
In this case, the connection links do not end at the root node, but have their origin
there. Such a situation cannot be directly expressed in our pattern language (as
the root node set would contain two send events). Nevertheless, an application
might split the original, illegal pattern into subpatterns (each representing a
legal tree like structure) and relate the results itself. This allows to define
arbitrary complex patterns at the expense of performance and network traffic.
The major advantage of the proposed limitation is the possible implementation
of an efficient search algorithm (for details, see Section 4) which transfers as
little data as possible over the network.
Our query language allows to combine pattern specifications with the possibility to extract statistical data. A pattern instance is a set of events that satisfy
the constraints of a valid pattern. Obviously, it might be possible that a single
pattern is satisfied by more than one event set. Two event sets are said to be
distinct, if they contain at least one distinct event element. An event element
can be uniquely identified by its timestamp and the host, where it occurred.
Statistical data can be computed for the set of all distinct instances of a given
pattern. One can obtain the number of elements in that set (i.e. valid instances)
or the maximum or minimum values for the number of instances at each host.
Additionally, one can query attribute values of a certain single event of the
pattern. The sum, maximum or minimum for an attribute may be calculated.
3.1.
This section describes the syntax and semantics of our Event Query Language
(EQL) in more detail. We omit the complete language grammar, instead we
gradually introduce the language by giving explanations on several examples.
A query is written as follows (similar to SQL).
SELECT results FROM nodes WHERE conditions
The results section is used to define the type of information the user is interested in. The operator COUNT can be used for patterns and returns a list of
all nodes with the number (i.e. count) of found pattern instances at each one.
The operators SUM, MAX and MIN may be used for complete patterns or for an
attribute of a single event. When used for patterns, these operators return the
sum, the maximum or the minimum number of detected pattern instances per
node, respectively. When used for an event attribute, the sum or the extreme
value (maximum/minimum) for a certain attribute value over all instances is
returned.
The nodes section is used to assign an identifier to each node that is later
used in the pattern definition. Additionally, one can impose restrictions on each
node to have the agents only consider a limited set of actual hosts.
193
Sparta
SELECT COUNT FROM host_1 range (10.1.17.0, 10.1.17.255)
#
#
The conditions section specifies the pattern. It consists of a list of event sets,
one for each node that appears in the node section. The event set is a list of
identifiers, each describing an event. In order to be able to specify statistics
operations on event attributes, one can assign identifiers (i.e. a label) to each
of them. Two predefined labels called send and r e c e i v e are used to identify
the send and receive events, respectively, for linking event sets (see Section 3).
Each event can optionally be defined more precisely by constraints on the
events attribute values. These attribute values can be related to constant values
or to variables by standard operators (=, !=, c , > , >= and <= with their
usual semantic meaning) or by a range or an i n operator as defined below.
x range
H zo
(~0~~1)
x in (zo,z~,
...,z,,)
C)
5 z 5 21
3i (0 5 i 5 n) and x =xi
A variable is defined the first time it is used. One must assign a value (bind
an attribute value) to each defined variable exactly once while it may be used
arbitrarily often as a right value in constraint definitions. The scope of variables
is global and its type is inherited from the defining attribute.
With these explanations, we may introduce the syntax (in BNF) of the conditions section (all identifiers represent strings).
conditions
event set
event
constraint
assignment
relation
value
operator
connection
label
: {event set}+
{I
{event)+
)
[connection] event-identif
[ {constraint ; )* 1
assignment I [label] relation
$variable-identifier
I=
( attribute-id I constant )
attribute-id operator
[(] {value , 1* value [)I
constant | $variable-identifier
< I > I I <= I I > = I a I ! = I I in I range
send(target-id):
I receive(source-id):
label-identifier:
: node-identifier
:
:
:
:
:
:
:
:
The following example shows a classical telnet chain pattern that describes a
connection from Node I to port 23 at Node2 and from there to port 23 at Node 3.
Node3 describes the root node set (i.e. has no outgoing send event).
Telnet Chain:
Note1 { send(node2): tcp-connect
[]
Node2 { receive(node1): tcp-accept
[ port = 23; 3
send(node3) : tcp-connect []
1
Node3 { receive(node2):
tcp_accept [ port = 23 ; 1 1
194
4.
Pattern Detection
Sparta
195
Ncde
Step 2
Step 1
Step 4
Step 3
Figure 2 .
Pattern Detection
When no events are found, the agent immediately continues its journey. Otherwise, all receive events are identified. In the telnet chain case only receive
events exist but more complex patterns are possible. For the distributed detection algorithm, a receive event is important because it establishes a relationship
between nodes which is used to select a promising next place where an agent
should look further. For each receive event, a helper agent is spawned which
follows the link to the host with the corresponding send event (see Step 2 of
Figure 2). By using the send event (determined by the receive event of the
node the agent was coming from) it looks for events which fulfill the current
part of the pattern. In the case of our telnet chain example, the agent already
knows that the send event to Node 3 exists (as it is coming from there) and now
searches for another accepted TCP connection at port 23 (from Node 1).
When the local event set contains receive events itself, the process recursively
repeats by having the agent spawning helper agents and waiting for their return
(see Step 3 of Figure 2). When the helper agents return, they report their
findings (i.e. pattern instances) back to the agent waiting at the originating
node (helper agents only move over a single hop). When pattern instances are
returned, the waiting agent processes them (e.g. match variables or perform
statistical evaluation) and eventually continues. When all helper agents have
returned a pattern might be detected by the agent waiting at the root node as all
information is available (see Step 4 of Figure 2).
Usually, only a small amount of data has to be transferred as it is not necessary
to transport all pattern instances themselves but merely time stamps or single
attribute values which have been assigned to variables.
Variables are treated in the following way. When a variable has already
been bound to a value, it is straightforward to use this value directly for the
196
5.
Security
Mobile code introduces a number of security issues that our design has to
deal with. Especially when building systems for security sensitive applications (like our intrusion detection system), it is important not to introduce new
vulnerabilities by the security monitoring tool itself. The security threats to
mobile agents are classified by four categories, namely agent-to-agent, agentto-platform, platform-to-agent and other-to-agent.
Agent-to-agent threats describe the set of attacks, where one agent exploits the vulnerabilities of another agent. In Sparta, agents only locally
communicate with helper agents they have previously spawned. As arbitrary interagent communication is prohibited, possible vulnerabilities
cannot be exploited and agent-to-agent attacks can be prevented.
Agent-to-platform threats describe attacks, where an agent performs malicious activities against its environment (i.e. platform). To prevent these
kind of attacks, the runtime permissions of agents are rigorously restricted. They are not allowed to access resources directly. Instead, agents
gain information by querying the data storage component.
Platform-to-agent threats describe situations, where the platform compromises the agents security. This sort of threats is extremely difficult to
197
Sparta
defend against when agents need unrestricted movement around the network (Jansen and Karygiannis, 1999) and Sparta has no special mechanisms to defend against such attacks. In contrast to a central server system,
we still have the advantage that even if a single node is compromised, all
patterns which do not touch this host are still detectable.
Other-to-agent attacks involve threats against agents performed by external entities while they are in transit over the network (e.g. eavesdropping or tampering). Sparta uses an asymmetric (public/private key
pair) cryptosystem to secure agents when they are transferred over the
network. The agent code is signed and can be authenticated before it is
executed. In order to manage the asymmetric cryptosystem, a Public Key
Infrastructure (PKI) is provided.
6.
Related Work
198
only a high-level system design has been presented. The possible advantages of
mobile agents in intrusion detection systems are summarized in (Jansen et al.,
1999) and (Kriigel and Toth, 2001).
7.
Conclusion
References
Asaka, M., Taguchi, A., and Goto, S. (1999). The implementation of ida: An intrusion detection
agent system. In Proceedings of the 11th FIRST Conference.
Balasubramaniyan, J. S., Garcia-Fernandez, J. O., Isacoff, D., Spafford, E., and Zamboni, D.
(1998). An architecture for intrusion detection using autonomous agents. In 14th IEEE Computer Security Applications Conference.
de Queiroz, J. D., da Costa Carmo, L. F. R., and Pirmez, L. (1999). Micael: Anautonomousmobile
agent system to protect new generation networked applications. In 2nd Annual Workshop on
Recent Advances in Intrusion Detection.
Jansen, W. and Karygiannis, T. (1999). Mobile agents and security. Special Pub. 800-19, NIST.
Jansen. W., Mell, P., Karygiannis. and Marks, D. (1999). Applying mobile agents to intrusion
detection and response. Interim Report (IR) 6416. NIST.
Kemmerer, R. A. (1997). A model-based real-time network intrusion detection system. Technical
report, Computer Science Dep., University of California Santa Barbara, November.
Krgel, C. and Toth, T. (2001). Applying mobile agent technology to intrusion detection. In
ICSE Workshop on Software Engineering and Mobility.
NFR (2001).Network Flight Recorder. http://www.nfr.net/.
Perrochon. L., Jang, E., and Luckham, D. C. (2000). Enlisting event patterns for cyber battlefield
awareness. In ARPA Information Survivability Conference and Exposition (DISCEX'00).
Perrochon, L., Kasriel, S., and Luckham, D. C. (1999). Managing event processing networks.
Technical Report CSL-TR-99-877, Stanford Computer Systems Laboratory.
Porras, P. A. and Neumann. P. G. (1997). Emerald: Event monitoring enabling responses to
anomalous live disturbances. In Proceedings of the 20th NISSecurity Conference.
Pratt, V. (1 986). Modelling concurrency with partial orders. Int. Journal of Parallel Programming,
15(1):33-7 1.
RAPIDE (1997). Rapide 1.0 Pattern Language Reference. Stanford University.
_
RealSecure (2001). Realsecure. http://www.iss.net/customer_care/resource_center/product_lit/.
Sheers, K. R. (1996). HP OpenView Event correlation. Hewlett-Packard Journal.
Staniford-Chen, S., Cheung, S.. Crawford, R., Dilger, M., Frank, J., Hoagland, J., Levitt, K., Wee,
C., Yip, R., and Zerkle, D. (1996). Grids - a graph based intrusion detection system for large
networks. In Proceedings of the 20th National Information Systems Security Conference,
volume 1, pages 361-370.
PART TWO
Invited Papers
Abstract
Pieter van Dijken (51, Dutch) manages the global information security consultancy team in Shell Services International. This team
operates from locations around the world in support of the information security requirements of the Royal Dutch/Shell Group
of companies. His team facilitated very recently a strategic, world
wide security certification programme, called Trust Domain. Objective of this programme is to establish a common set of information security standards and controls for IT infrastructure throughout the Shell Group, based on a subset of the BS 7799 standard.
Benefits of having such a common set are numerous, e.g. facilitate information sharing across the Shell Group without making
Shell companies vulnerable to unauthorised access; having lower
cost and more capabilities through the use of standard security
202
AUTHOR INDEX
Alexandris, Nikos
Bonnet, Aurlien
Borselius, Niklas
Chrissikopoulos, Vassilios
Claessens, Joris
De Decker, Bart
De Win, Bart
Foster, Nathalie
Hwang, Jing-Jang
Jacob, Jeremy
Jrjes, Jan
Kirda, Engin
Kisimov, M.V.
Krgel, Christopher
Lin, Chih-Yin
Lobelle, Marc
Magkos, Emmanouil
Mitchell, Chris J.
Naessens, Vincent
Preneel, Bart
Pudovkina, Marina
Sakurada, Hideki
Toth, Thomas
Tsukada, Yasuyuki
Vandewalle, Joos
van Dijken, Pieter
Vanhaute, Bart
Von Solms, S.H.
Wilson, Aaron
Wu, Tzong-Chen
33
139
173
33
153
93, 125
125
75
45
75
107
187
15
187
45
139
33
173
93
153
61
1
187
1
153
20 1
93, 125
15
173
45