or < G1 … Gl 2 , c1…cl2, cms >, u uses one of the preassigned keys to obtain K from c1…cl2 first and then decrypts cms with K to output ms. So broadcast cost and broadcast computation cost are all 1 if the processing time of the fast encryption FK operation is omitted. i
i
A Practical Clumped-Tree Multicast Encryption Scheme
171
CCj multicasts his own messages to intended users just as he forwards messages originated from GC . If CCj intends to send a message to any collection of other subtrees such as TCCi and so on, he first sends his message to GC , and then lets it be transmitted. The two-layer scheme also makes it possible to use the same clumpedtree by distinct GC for broadcasting completely different information.
3.3 Rekeying Strategies
To join a set of users, GC assigns them to certain TCCj or creates a new 4-ary TCCj by associating all joining users with leave of TCCj . The initialization of TCCj is the same as initiation in section 3.2. Since a leaf of a container-tree is often an organization or a company, a containertree tends to be static. To revoke a TCCj , all keys of nodes along the path from CCj to GC are updated before multicast encryption. The key updating is bottom up. The rekeying strategy is key-oriented [3]. To distribute a new key of some ancestor node v of CCj , GC encrypts the new key with the current keys of a certain sibling of all descendant nodes on the path from v to CCj independently. Fig. 1 depicts the key management in a container-tree. In low state case, to revoke a user u , all keys along the path from u to CCj are updated. The key updating is also bottom up. Fig. 2 is the key management in a clumped-tree. To distribute a new key of certain ancestor node v of u , CCj encrypts the new keys with the current key of a certain sibling of all descendant nodes on the path from v to u independently. We note that the effect of revoking a user is limited within the corresponding clumped-tree, and does not disperse to the container-tree. A clumped-tree is an independent autonomous rekeying unit. i
i
i
i
Container tree
GC
Path for key distribution
CC
Container tree
GC
CC All nodes from revoked node to CC (key distribution)
Revoked Clumped tree
Fig. 1. Key management in container-tree
Fig. 2. Key management in clumped-tree
Given n is the total users number of 4-ary tree T. Given a set R of r revoked users, the Steiner tree ST(R) has r leaves. An internal node is in ST(R) iff it is on some path to a point in R , therefore there are at most rlog4n nodes in ST(R). A finer analysis takes into account multi-counting of the nodes closer to the root and the fact that a node of outdegree 4 in ST(R) produces at most 3 subsets, and shows that the number of subsets is at most 3r(log4(n/r)). So in stateless user case, message length is at most
172
L. Dong and K. Chen
3r(log4(210/r)); In low-state user case, revocation cost is at most 3r(log4(210/r)) and revocation computation cost is 1. Joining or leaving a single user produces revocation cost 3(log4(210))=15. 3.4 Digital Label Method
There are two main considerations on improving performance while collecting privileged subtrees: first, we divide revoked user into two types: one is a leaver who requests to leave; another is an expeller who is expelled by the center of the group. Given an interval, the revoking user information of an expeller will be performed immediately, while the information of a batch of leavers will be performed in batches. When the privileged set is the complement of a batch of r users, rekeying work can be done simultaneously and only the newest keys are transmitted. Second, we present a digital label method to obtain the cover of the privileged subtrees quickly. Any node in the clumped-tree is the vertex of a complete subtree, which we regard it as an elementary group. The collection of privileged subsets in the digital label method corresponds to union of some elementary groups. It should ensure that this collection covers all nodes in N \ R and only them. The cover size is at most (α-1)rlogα(n/r). To multicast encryption, GC must encrypt a newly chosen session key K with each subset key of the cover. Assume clumped-tree center CC has constructed a α-ary tree T of height d with all the privileged users associated with the leave of the tree. We represent each vertex in the clumped-tree by its depth from the root and the width from his leftmost sibling with the same parent, expressed as a d digit number in base α. Let labeli be reprer r sented as a d digital number in base α by ar i x i b i where ai is a sequence of x-1 length digits, xi is the xth depth bit and the value y of xi is actually the width that represents r the yth child of his parent, b i is a sequence of d-x length digits. The nodes in T are labeled according to preorder traversal, which visit parent, the leftmost child … then rightmost child. The root CC is represented by 00…00, its leftmost child is 10…00, the second child is 20…000, etc. The label ending with 0 must be a non-leaf subtree and that subtree is considered to be an elementary group. The number of trailing zeros in the label determines how big the subtree is. Thus the full structure of any subtree or user can be completely inferred from just the digital label, i.e., any elementary group Gi or user ui can determine its size and its relative position in the whole tree immediately from its digital label. For a set R = {ulabel1, ... ulabelr} of revoked users, the following cover algorithm finds a collection G of disjoint subsets G1 … Gi that covers P = N \ R . This algorithm builds the subsets collection iteratively: 1. Let the collection G be NULL, the depth x set to 1. Construct a comparative set r C ={ G1brj , G2brj , G3brj , G4brj }, here b j = 0 . r r 2. Compare C with every revoked user’s label: a j and the xth bit. Collect all G arjxj b j in r comparative set C where a j is the same and xj is different from that of x label , r r r x label … x labelr , and add to G . If b j in Garjxjbj is a sequence of nonzeros, then G arjxj b j is a user, otherwise a subtree. 1
2
A Practical Clumped-Tree Multicast Encryption Scheme
00000
11111 11112 11113 11114
173
CC
44331 44332 44333 44334
Fig. 3. Illustration of a 4-ary clumped-tree
3. Increase x by 1 until x=d+1. Reconstruct the comparative set C= r r r r r { Garj1b j, Garj 2bj , Garj 3b j , Garj 4b j | a j is the same as one of the x-1 length digits of r x label , x label … x labelr and the x-1 bit value of a j is nonzero}, and repeat step 2. 1
2
The contribution of digital label method is threefold. First, the cover collection of privileged subtrees is more efficiently obtained than before since bit operations in computer are quick. The more revoked users, the more efficient this digital label method will be, for collecting works are performed once. There are a lot of scenarios with simultaneously leaving users for an interval such as TV subscribers, similar game users etc. Second, the entire history of revocation event can be recorded easily via a linked list of the revoked users’ digital label. In stateless user case, the history of revocation event should be recorded to protect forward confidentiality information from previous revoked users. Digital label method makes it easy to construct a linked list of previous revoked users, to insert a newly revoked user, and to delete a resumed user. Third, the digital label method is especially efficient for multicast encryption. For example, the multicast group G13200 - G13220 = G13200 ∩( ¬ G13220 )= G13210 G13230 ∪ G13240 can be deduced directly base on Lemma 3.
∪
4 Security of the Scheme Assumed that our scheme is running in a network controlled by an adversary who can pool the secret information of all revoked users, and it may eavesdrop, intercept, alter, forge and replay a message except encrypting and decrypting a secret without key. We present the security analysis of PCME scheme following the idea of SD. The scheme is secure means that even if all revoked users have provided their secret information to a flexible adversary, the adversary can learn nothing about the encrypted message. Here “learn ” means distinguishing an encryption of the true message ms from an encryption of a random message Rms of length |ms|. Theorem 1. Let Α be a PCME scheme where the keys are chosen uniformly at random and independently from each other, the fast encryption algorithm FK using short-lived keys is chosen plaintext attack secure, EL using long-lived keys is chosen ciphertext attack secure. Then Α is secure in the sense of above assumptions about adversary’s ability with security parameter σ ≤ 2є1+2є2(l1ω1+ l2ω2).
174
L. Dong and K. Chen
Proof: Let the fast encryption algorithm FK using short-lived keys is chosen plaintext attack secure, then the probability that adversary B distinguishes between an encryption of ms and an encryption of a random message Rms of length |ms| is negligible:
|Pr[ B outputs ‘i’| FK(ms)] – Pr[ B outputs ‘i’| FK(Rms)]|≤ є1 Let long term encryption method EL using long-lived keys is chosen ciphertext attack secure. For a random plaintext x, the probability that B distinguishes between an encryption of x and an encryption of a random string Rx of length | x | is negligible: |Pr[ B outputs ‘i’| EL(x)] – Pr[ B outputs ‘i’| EL(Rx)]|≤ є2 Let A be a PCME scheme where the keys are chosen uniformly at random, then the probability that any feasible adversary B distinguishes a key kG from a random key R k of similar length is negligible: i
Gi
|Pr[B outputs ‘i’| kG ] – Pr[B outputs ‘i’|R k ]|≤ є3= 0 i
Gi
Let a collection of subtrees G1,......, Gm be the cover of P = N \ R defined by A, and let kG ......kGm be their corresponding keys. Now that all the keys in PCME are independently from each other, for a flexible adversary B who pools the secret information of all r members of R, the probability that B distinguishes the keys kG ......kGm from random keys Rk ......Rk of similar length is negligible: 1,
1,
G 1,
Gm
|Pr[ B outputs ‘i’| kG ......kGm ] – Pr[ B outputs ‘i’| Rk ......Rk ]|≤ m*є3= 0 1,
G 1,
Gm
While multicasting message < CC 1 … CCl 1 , E kCC (K)… E k (K), FK(ms)>: let σ1 be the probability in container-tree that B distinguishes between an encryption of ms and that of a random message Rms of similar length, ω1 is the total number of subtrees in the container-tree and l1 is the maximum size of a cover. According to theorem 11 in [5], A is secure with security parameter σ1 ≤ є1+2 l1ω1(є2+4ω1є3)= є1+2 l1ω1є2. While multicasting message < G1 … Gl , E kG (K) … E kG (K), FK(ms)>: let σ2 be the probability in clumped-tree that B distinguishes between an encryption of ms and an encryption of a random message Rms, ω2 is the total number of subtrees in the clumped-tree and l2 is the maximum size of a cover. According to theorem 11 in [5], A is secure with security parameter σ2 ≤ є1+2l2ω2(є2+4ω2є3)= є1+2l2ω2є2. Let σ be the overall probability that B distinguishes between an encryption of ms and that of a random message Rms of similar length, hence the overall security parameter of A satisfies σ ≤ σ1+σ2 =є1+2l1ω1є2+є1+2l2ω2є2 =2є1+2є2(l1ω1+l2ω2) □ CCl 1
l
2
1
l2
A parameter that is often considered is t, the upper bound on the size of the coalition an adversary can assemble. Let Α be a PCME scheme where the keys are chosen uniformly at random and independently from each other, then even to a random or arbitrary adversarial coalition of various sizes, adversary who pools the secret information of all revoked user can still learn nothing about the new session key. According to theorem 1, the session key will provide a secure encryption of the message. Hence, PCME scheme is resistant to adversary coalition of various sizes.
A Practical Clumped-Tree Multicast Encryption Scheme
175
5 Comparison Recall that we present two new notions for multicast encryption. One notion is autonomy based on two-layer tree, so the rekeying cost in low state user case or message length in stateless user case involves only an autonomous clumped-tree; another is digital label method, which has accelerated the collection of privileged subsets and the multicast of encryption. The separation between the static container-tree and the dynamic clumped-tree greatly simples the key distribution works. A comparison of PCME with other previously known schemes in stateless user case is in table 2. Table 2. Comparison of PCME with other schemes in stateless user case
broadcast cost message length GC storage CC storage user storage broadcast computation cost
LKH
SD
LSD
PCME
1 rlogn 2n-1 / logn+1 1
1 2r-1 2n(log n-1)+2 / logn(log n+1)/2 1
1 4r-2 >O(n) / log1+٤n 1
1 3r(log4(210/r)) n/29 –1 (212-1)/3+log(n/210)+1 6 1
In low-state user case, revocation cost is reduced to at most 3r(log4(210/r)) in a clumped-tree, compared to O(rlog n) of LKH; GC storage is reduced to at most n/29-1 compared to O(nlogn) of SD; CC storage is reduced to at most (212-1)/3+log(n/210)+1; user storage is reduced to at most 6 compared to O(log2n) of SD. In stateless user case, message length is 3r(log4(210/r)) compared to 2r-1 of SD. Here is a practical example to illustrate the advantages of PCME. Consider a large broadcasting operation with 228 ≈ 256,000,000 users as in [6]. These users is partitioned into (228/210)= 218 subgroups, each subgroup is a clumped-tree with 210 users. If each key is a 7-byte DES key, the requirement for user storage is 6* 7= 42 bytes <100 bytes compared to 406*7 of SD, 146*7 of LSD, which can be fit into a customer smart card easily; CC storage is ((212-1)/3+log(228/210)+1)*7=(1365+19)*7=9688 bytes < 10 Kbytes, GC storage is (219-1) * 7=3670009 bytes < 4 Mbytes compared to (229(28-1)+2)*7 of SD. For 512 revocations which is one ten thousandths of all privileged users, PCME actually achieves message length at most 512 compared to message length 1023 of SD, 2046 of LSD, 14336 of LKH. For most multicast application, similar users tend to be in the same subtree and perform joining or leaving operation simultaneously, hence message length or revocation cost will fall sharply in PCME when there are a lot of revoked users. Except for efficiency, PCME is fully scalable since it separates the static containertree and the dynamic clumped-trees. And it is also resistant to random or arbitrary adversarial coalitions of various sizes. From above analysis, we believe that building a PCME multicast scheme that can scale to a large number of memory-constrained users spreading across a wide-area network is practical. Acknowledgement. We would like to thank anonymous referees for their useful comments on an earlier version of this paper.
176
L. Dong and K. Chen
References 1. S. Berkovits: How to Broadcast a Secret. In Proc. EUROCRYPT 1991, LNCS 547 pp. 535–541, 1991. 2. A. Fiat and M. Naor: Broadcast Encryption. In Proc. CRYPTO 1993, LNCS 773, pp. 480–491, 1994. 3. C. K. Wong, M. Gouda and S. S. Lam: Secure Group Communications Using Key Graphs. IEEE/ACM Transactions on Networking, Vol. 8, No. 1, pp.16–29, Feb. 2000. 4. D. M. Wallner, E. J. Harder and R. C. Agee: Key Management for Multicast: Issues and Architectures. In Internet draft draft-wallner-key-arch-01.txt, Sep. 1998. 5. D. Naor, M. Naor, and J. Lotspiech: Revocation and Tracing Schemes for Stateless Receivers. In Proc. CRYPTO 2001, LNCS 2139, pp.41–62, 2001. 6. D. Halevy and A. Shamir: The LSD Broadcast Encryption Scheme. In Proc. CRYPTO 2002, LNCS 2442, pp.47–60. 2002. 7. E. Gafni, J. Staddon, and Y. L. Yin: Efficient Methods for Integrating Traceability and Broadcast Encryption. In Proc. CRYPTO1999, LNCS 1666, pp.372-387, 1999. 8. R. Canetti, T. Malkin, and K. Nissim: Efficient Communication–Storage Tradeoffs for Multicast Encryption. In Proc. EUROCRYPT 1999, LNCS 1592, pp.459–474, 1999. 9. Y. Desmedt and Y. Wang: Perfectly Secure Message Transmission Revisited (Extended Abstract). In Proc. EUROCRYPT 2002, LNCS 2332, pp.502–517, 2002. 10. D. Micciancio and S. Panjwani: Optimal Communication Complexity of Generic Multicast Key Distribution. In Proc. EUROCRYPT 2004, LNCS 3027, pp.153–170, 2004. 11. M. T. Goodrich, J. Z. Sun, and R. Tamassia: Efficient Tree-Based Revocation in Groups of Low-State Devices. In Proc. CRYPTO 2004, LNCS 3152, pp.511–527, 2004. 12. N. Jho, J.Y. Hwang, J. H. Cheon, M. H. Kim, D. H. Lee, and E. S. Yoo: One-Way Chain Based Broadcast Encryption Schemes. In Proc. EUROCRYPT 2005, LNCS 3494, pp. 559–574, 2005. 13. B. Chor, A. Fiat and M. Naor: Tracing traitors. In Proc. CRYPTO 1994, LNCS 839, pp.257–270, 1994. 14. B. Chor, A. Fiat, M. Naor and B. Pinkas: Tracing traitors. IEEE Transactions on Information Theory, Vol. 46, No. 3, pp.893–910, May 2000. 15. H. Chabanne, D. H. Phan, and D. Pointcheval: Public Traceability in Traitor Tracing Schemes. In Proc. EUROCRYPT 2005, LNCS 3494, pp.542–558, 2005. 16. R. Canetti, J. Garay, G. Itkis, D. Micciancio, M. Naor, and B. Pinkas: Multicast Security: A Taxonomy and Some Efficient Constructions. In Proc. INFOCOM 1999, Vol. 2, pp.708–716, New York, NY, Mar. 1999. 17. D. Boneh, G. Durfee, and M. Franklin: Lower Bounds for Multicast Message Authentication. In Proc. EUROCRYPT 2001, LNCS 2045, pp.437–452, 2001. 18. A. Perrig, R. Canetti, D. Song, J. D. Tygar: Efficient and Secure Source Authentication for Multicast. In Proc. NDSS 2001, pp.1–12, San Diego, 2001. 19. C. K. Wong, and S. S. Lam: Digital Signatures for Flows and Multicasts. IEEE/ACM Transactions on Networking, Vol. 7, No. 4, pp.502-513, Aug. 1999 20. E. Jung, X.Y. A. Liu, and M. G. Gouda: Key Bundles and Parcels: Secure Communication in Many Groups. In Proc. NGC/ICQT 2003, LNCS 2816, pp.119–130, Munich, Germany, Sep. 2003.
Trojan Horse Attack Strategy on Quantum Private Communication Jinye Peng1 , Guangqiang He2 , Jin Xiong2 , and Guihua Zeng2 1
2
School of Information Science and Technology, Northwest University, Xi’an, 710069, China [email protected] Department of Electronic Engineering, Shanghai Jiaotong University, Shanghai 200030, China {gqhe, jinxiongt, ghzeng}@sjtu.edu.cn
Abstract. Fragility of quantum private communication based on Einstein-Podosky-Rosen (EPR) pair as pre-shared key against trojan horse attack strategy is investigated in detail. To prevent this kind of attack strategy, the EPR pairs employed in the quantum private communication is transferred into non-orthogonal entangled states by employing unitary transformations which are actually rotation operations on the quantum signal. Analysis show that the improved scheme is robust against the trojan horse attack strategy without reducing the security against other kinds of attack strategies.
1
Introduction
In private communication and data security system attackers always try to break the employed confidential system for their benefits. To protect effectively the legitimate information, cryptography has been employed widely to prevent these attack. However, as virtue rises one foot, vice rises ten. To break the private communication and data security system provided by employing cryptographic approach, a concomitant subject called as cryptoanalysis has also been arisen [1]. The so called cryptoanalysis is a science and study of methods of breaking ciphers. Many attack strategies for converting encrypted messages into plaintext without initial knowledge of the key employed in the encryption have been investigated and used in practice. But, success of these strategies completely depends on the drawbacks of the cryptographic system, i.e., cryptosystem. These drawbacks come from two major aspects, i.e., the inappropriate fundamentals, which is employed as a foundation for the scheme, and the imperfection of the cryptosystem’s construction. Actually, any improper design will create drawbacks in the cryptosystem, subsequently the attacker may break in principle the scheme by means of these drawbacks. Trojan horse attack strategy (THAS) may be generated from the drawback of construction of the system (e.g., device, computer program, algorithm or protocol et al.). When a trojan horse is hidden without easy detection in a system, attacker can break the system and obtain useful information by employing trojan K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 177–186, 2006. c Springer-Verlag Berlin Heidelberg 2006
178
J. Peng et al.
horses. Unfortunately, this strategy is not only available in classic cryptography but also in the recently proposed quantum cryptography [2, 3, 4, 5, 6]. For the attack of this strategy on the quantum key distribution has been analyzed in [7, 8], and a scheme for preventing this strategy was proposed in [9]. In this paper we study the THAS on the quantum private communication, which employs EPR pair(s) as the symmetrical key [10, 11]. Three aspects will be investigated in this work, including the mechanism, the attack way on the quantum private communication system, and the preventing approach for this attack strategy. Especially an improvement scheme will be investigated in details. This paper is arranged as follows. In Sec.2, mechanism of the THAS is analyzed firstly. Then in Sec.3 we investigate the fragility of quantum private communication based on EPR pair(s) against the trojan horse attack. An improvement scheme for preventing the THAS is presented in Sec.4. After these a simple remark will be presented in Sec.5. Finally a conclusion is drawn in Sec.6.
2
Mechanism for Trojan Horse Attack Strategy
Let us firstly investigate mechanism of the THAS in cryptography (including classic cryptography and quantum cryptography. Here ‘classic’ refers to ‘quantum’.). In essential, all attack approaches proposed in cryptoanalysis can be categorized mainly as three kinds of attack strategies, i.e., the strategy based on fundamentals drawbacks (SFD), the strategy based on obtained information (SOI), and the strategy based on assistant systems (SAS). In the SFD attacker makes use of fundamentals drawbacks to break the cipher and obtain useful information. As an example, the classic cryptosystem is based on the complexity assumption which has not been proven, thus a fundamentals drawback is usually contained. With the development of mathematics these drawbacks become a means for breaking the cryptosystem [1]. Another example is the attack approaches presented in quantum cryptography, by far most attack strategies such as the individual and collective attacks [8] are based on the fundamentals, i.e., quantum laws. Fortunately all proofs are advantaged to the quantum cryptography but not to the cryptoanalysis. In the SOI attacker makes use of leaked information of the cryptosystem, the ciphertext, and/or the obtained parts of plaintext to break the cryptosystem [1]. We would like to stress here the SAS, which relies on an assistant systems to break the cryptosystem. One of typical approaches in this situation is the THAS. To study mechanism of the THAS, let us firstly consider what is trojan horse in the field of information protection, since the trojan horse is an important ingredient in the THAS. In data security the trojan horse is defined as a small program inserted by an attacker in a computer system. It performs functions not described in the program specifications, taking advantage of rights belonging to the calling environment to copy, misuse or destroy data not relevant to its stated purpose. For example, a trojan horse in a text editor might copy confidential information in a file being edited to a file accessible to another. More generally, the so-called trojan horse is a ‘robot horse’ which can become a part of the legitimate users’ systems. Then the ‘robot horse’ can be surreptitiously
Trojan Horse Attack Strategy on Quantum Private Communication
179
exploited the legitimate authorizations of operation (e.g., measurement, detection et al.) to the detriment of security. For example, break the system via feeding back information to the attacker (e.g., the dishonest manufacturer or even the adversary) or directly destroying the legitimate data. To the legitimate users’ system the trojan horse is actually an additional system with passive effects. Many things, such as devices and small programs inserted in the users’ system, probing signals entering users’ system through a public channel et al, or even the attacker, can become trojan horse. However, we must emphasize that it is impossible for any trojan horse to play the same role as legitimate users since the trojan horse is only a small part of the legitimate system. There are mainly two kinds of trojan horses, i.e., pre-lurked trojan horse and online trojan horse. The pre-lurked trojan horse is a ‘robot horse’ which is preinserted in legitimate users’ system, such as programs, apparatuses or even offices. At an appropriate condition the lurked trojan horse is activated automatically by the legitimate system, and then it feeds back available information to attackers even destroy the users’ system. The online trojan horse is actually a probing signal which may enter the confidential system without awareness of legitimate communicators and then back-reflect to the attacker. Both kinds of trojan horses may be classic as well as quantum. In addition, the trojan horse may also be a combination of the ‘quantum horse’ and ‘classic horse’ in quantum private communication. If a trojan horse can be inserted successfully in users’ system, the attacker may break the employed cryptosystem and obtain available information by means of the feedback information of the ‘robot horse’. This attack strategy is called as THAS. Corresponding to various kinds of the trojan horses there are two kinds THASs, i.e., the strategy relied on a pre-lurked trojan horse and the strategy depended on the probing signal. While the attack ways may be classic approaches or quantum approaches determined by the features of the employed trojan horses. For example, if employing a pointer state of the legitimate system as a trojan horse, or a pre-inserted tiny device as a trojan hose, which is exploited to detect the quantum state of the quantum bits as the key, the attacker can obtain useful messages by analyzing the feedback information of the trojan horse. Consider the case of sending light pulses (probing signal) into the fiber and entering legitimate users’s apparatuses, then the attacker may obtain useful information by analyzing the backreflected light [8]. Obviously, the THAS can do nothing without the trojan horse, since the feedback information of the trojan horse is very important in this kind of attack strategy. Obviously this strategy is different from the strategies which always involved in the quantum cryptography, e.g., the intercept/resend attack and the entanglement attack [3, 5, 6], where the attacker can directly obtain the information for attack.
3
Fragility of Quantum Private Communication Based on EPR-Pair Against Trojan Horse Attack
It has been shown that the quantum private communication may be implemented by exploiting a quantum cryptographic key algorithm with EPR pair(s), i.e.,
180
J. Peng et al.
entangled quantum optical signal, as the pre-shared key. This kind of algorithms is provably secure for the SFD and the SOI. However, they can not circumvent the THAS, which employs pre-lurked trojan horse (in the following we suppose the trojan horse is a tiny device pre-inserted in Alice’s or/and Bob’s apparatus). To show fragility of the quantum cryptographic algorithm employing EPR pair(s) as key against the THAS, we first give a simple description for this kind of algorithm. Suppose communicators Alice and Bob share n EPR pairs as the key K = {|k1 , |k2 , · · · , |kn }. Each EPR pair can be expressed as, 1 |ki = √ |0ia 0ib + |1ia 1ib = |Φ+ i , 2
(1)
where subscripts a, b denote Alice’s particle Pa and Bob’s particle Pb of each EPR pair, |ki denotes the ith element in the key K, and i = 1, 2, · · · , n. Denote the plaintext (message) by, |ψ m = α|0 + β|1,
(2)
the corresponding set of particles is expressed by Pm , where |α|2 + |β|2 = 1. Suppose Alice is the sender, then Alice encrypts the qubit |ψ m by making use of the quantum controlled-NOT operations on each EPR particle Pa (key particle) and the message particle Pm . After that, Alice obtains the ciphertext |Ψ c , which can be denoted as, n−1 n 1 |Ψ c = Cmk |kn {Cmk |kn−1 {· · · {Cmk |k1 |ψ m }}},
(3)
i where Cmk denotes the ith quantum controlled-NOT gate on Pm and Pa , the subscript mk denotes the quantum gate operating on the key particle and the message particle, and the controlled-NOT gate C is defined as,
C|1 |2 = |1 |1 ⊕ 2 , 1,2 ∈ {0, 1}, in matrix form C can be denoted as, C=
I 0 . 0 σx
(4)
(5)
After encrypting all plaintext elements Alice sends the ciphertext |Ψ c to Bob via a quantum channel. Then Bob decrypts the ciphertext by making use of an −1 inverse process controlled under the key, i.e., the Cmb on Bob’s particles set Pb and the received particles set Pm . Finally Bob get the message. Now let us investigate the THAS on the above quantum algorithm. First, we consider the situation of using only one EPR pair as the key. In this case, the key is just the EPR pair, i.e, |K = |Φ+ , which can be denoted as, 1 |Φ+ = √ (|0a 0b + |1a 1b ) . 2
(6)
Then ciphertext can be expressed as, |Ψ c = Cma |Φ+ |ψ m = |0a 0b ⊗ |ψ m + |1a 1b ⊗ Xm |ψ m .
(7)
Trojan Horse Attack Strategy on Quantum Private Communication
181
where Xm denotes the quantum X-gate on the particle Pm . Eq. (7) illustrates that when Alice’s and Bob’s EPR particles are in the states |0a 0b then the message particle is in the state |ψ m , otherwise, the state of the message particle is in Xm |ψ m . Obviously, if Alice’s and Bob’s EPR particles can not be disturbed by the attacker, above algorithm is secure. However, if the attacker can pre-lurks a trojan horse in Alice’s or Bob’s apparatus, the legitimate communicators Alice and Bob will be no luck since the attacker can obtain their useful information through the THAS. This can be done very easily. Suppose the attacker puts successfully a trojan hose, Υ , e.g., a set of tiny devices which can distinguish the eigenstates states |0 and |1 (for example a device can recognize the ‘bright’ and ‘dark’ pulse) and send feedback information, in Alice’s apparatus (this is available since in practice the users are not experts so that they can not easily find the ’robot horse’ which is pre-lurked ulteriorly by the dishonest manufacturers), then the key can be written as |Φ+ (Υ ). Subsequently Alice’s encrypting transformation by making use of controlled-NOT yields a ciphertext state, which can be written as, |Ψhc = |0a (h )0b ⊗ |ψ m + |1a (h⊥ )1b ⊗ Xm |ψ m ,
(8)
where h and h⊥ are the feedback information of the trojan horse. After Alice has encrypted her message |ψ m using the EPR pair, the trojan horse is activated automatically. As an example, if the attacker pre-lurks a measurement bases for the eigenstates states |0 and |1, the trojan horse only needs to distinguish Alice’s EPR particle. Now the ’horse’ feeds back the result h when the recognized result is |0, otherwise the ’horse’ feeds back the result h⊥ . Then, what the attacker needs to do is to wait Alice’s ciphertext |Ψ c and the feedback information of the trojan horse. If the attacker can successfully intercept the ciphertext particle Pm which is sent to Bob, then the attacker can obtain completely the qubit |ψm by making use of the feedback information h and h⊥ , and the intercepted particle Pm . For example, if the feedback information shows that Bob’s key bit is |0, attacker gets |ψ m . If the feedback information shows that Bob’s key bit is |1, attacker gets Xm |ψ m . By these knowledge, the attacker can completely obtain the plaintext (message). In the above we have analyzed the trojan horse attack strategy for the situation which makes use only one EPR pair as a key. For the case of making use of + two EPR pairs |Φ+ 1 and |Φ2 as key, the trojan horse attack strategy can also be successful. In this case the key can be denoted as, 1 1 1 |k1 = |Φ+ |0a 0b + |11a 11b , 1= √ 2 and
(9)
1 2 2 |k2 = |Φ+ |0a 0b + |12a 12b . (10) 2= √ 2 Suppose the attacker pre-lurks successfully two ‘horse’ Υ1 and Υ2 into Alice’s or Bob’s devices using the similar ways described in above. After Alice’s encryption
182
J. Peng et al.
using controlled-X and controlled-Z gates on the key particle and message particle, the ciphertext state can be written as, + m |Ψhc = CaZ2 m {(CaX1 m (|Φ+ 1 (Υ1 )|ψ ))|Φ2 (Υ2 )} 1 = |01a 01b (h1 ) |02a 02b (h2 ) ⊗ |ψ m + |12a 12b (h2⊥ ) ⊗ Zm |ψ m 2 1 + |11a 11b (h1 ) |02a 02b (h2 )⊗Xm |ψ m + |12a 12b (h2⊥ )⊗Xm Zm |ψ m (11) 2
where the superscripts ‘1’ and ‘2’ refer to the particles in the pairs |Φ+ 1 and 1 1 2 |Φ+ , h and h are feedback information of the trojan horse Υ , h and h2⊥ are 1 2 ⊥ feedback information of the trojan horse Υ2 . Υ1 and Υ2 are associated with Bob’s particles. It is clear that the attacker can get the message by a similar way as that of employing one EPR pair as key. Therefore, the quantum cryptographic key algorithms based on the EPR pair(s) as keys are fragile against the THAS, although they are provably secure against other attack strategies. For demonstrating clearly, the THAS on the quantum private communication employing EPR pair(s) as the symmetrical key can be illustrated in Fig. 1. When Alice makes use of her ‘machine’ to encrypt the message the trojan horse activates automatically a monitor system for obtaining Alice’s available information. The obtained information is transmitted automatically to the attacker via certain ways, e.g., classic channel or quantum channel. After eavesdropping ciphertext from the quantum channel, the attacker can obtain the plaintext by the feedback information and the ciphertext. In summarization, at the situation of communicators’ key particles (e.g., Alice’s particle Pa and/or Bob’s particle Pb ) being orthogonal states, any quantum cryptographic algorithm which employs directly such kind key is not robust against the THAS. Because in such situation a trojan horse can recognize the possible states of the key particle. For example, while Alice and Bob employ the EPR pair as the key then Alice’s or Bob’s key particle takes the state |0 or |1. Then a proper trojan horse, e.g., a device which can distinguish the eigenstates |0 and |1, can recognize exactly the state of the key particle as described in above. Thus available feedback information can be obtained by the attacker. It is obvious that the teleportation can not circumvent the THAS. Therefore, Trojan horse attacking Attacker
Eavesdropping Plaintext
Alice
⊕C Pa
Ciphertext ψ c
EPR
⊕C Pb
Plaintext
Bob
Fig. 1. Diagram of the trojan horse attack strategy on quantum cryptographic algorithm
Trojan Horse Attack Strategy on Quantum Private Communication
183
to prevent the THAS one should use non-orthogonal states as a sharing key or employing operations to change orthogonal state in the quantum private communication based on symmetrical quantum cryptographic key algorithm.
4
Preventing Trojan Horse Attack in the Quantum Private Communication
In this section we show that the THAS can be prevented by transferring the EPR pair(s) into non-orthogonal entanglement state. The process is as follows. The legitimate users Alice and Bob create a set of EPR pairs or pre-share EPR pair(s) as key, each pair can be denoted as, 1 1 |Φ+ = √ (|0a 0b + |1a 1b ) = √ (| +a +b + | −a −b ), 2 2
(12)
where |± = √12 (|0 ± |1). Before encryption, Alice or Bob randomly choose an operator U from {I, H} to apply on her (his) EPR particles until all EPR pairs have been operated, where I and H are respectively the unit operation and the Hadamard gate. This operation yields, |ψ1 = I|Φ+ = |Φ+ ,
(13)
|ψ2 = H|Φ+ .
(14)
and Employing bases {|0, |1} and {|+, |−}, |ψ2 can be expressed as, 1 1 |ψ2 = √ (|1a +b + |0a −b ) = √ (| +a 1b + | −a 0b ). 2 2
(15)
After these operation, Alice and Bob obtain a random sequence which is consist of {|ψ1 , |ψ2 }. Finally Alice and Bob take this sequence as key. Since |ψ1 |ψ2 |2 = 0 which means that the states |ψ1 and |ψ2 are non-orthogonal, any quantum attack strategies can not be available [12]. This property is guaranteed by the well-known no-cloning theorem [13]. In the following we will show this property can also be employed to prevent the trojan horse attack strategy. First we demonstrate how to encrypt and decrypt the plaintext based on the above transformation. Supposed only Alice operates randomly the particles of n sharing EPR pairs by using of U, then Alice knows results of operation. Of course Bob as well as any attacker don’t know Alice’s operation results. Define a new Controlled-NOT gate D, σx 0 D= . (16) 0 I where σx and I are x-component of Pauli matrix and unit matrix, respectively. One can prove easily that the gate D is a unitary matrix. The controlled-Not gate D generates the following transformation,
184
J. Peng et al.
D|λ| = |λ| ⊕ δ+,λ .
(17)
where ∈ {0, 1}, λ ∈ {+, −} and δ+,+ = 1, δ+,− = 0. Applying the quantum logic gates C and D which is controlled by the operation result of U, Alice encrypts the plaintext |ψ m . It is noted that the gate C corresponds to the key element |ψ1 and D corresponds to the key element |ψ2 . In other words if the key element is the Bell state, Alice encrypts the plaintext by employing C, otherwise, Alice encrypts the plaintext by employing D. In Bob’s side, Bob decrypts the ciphertext always uses the quantum logic gate C on his particle and the ciphertext particle. To the attacker, the key |K is a mix state of |ψ1 and |ψ2 , i.e., |K = {|ψ1 , |ψ2 }.
(18)
For convenience, we provide that the probabilities of |ψ1 and |ψ1 are the same. Under the control of the key |K with the quantum logic gates C and D, the proposed algorithm generates the following ciphertext state, which can be written as, |Ψec {|K=|ψ1 } = Cam |ψ1 |ψ m = α|0a 0b ⊗ |ψ m + β| +a 1b ⊗ Xm |ψ m , (19) or |Ψec {|K=|ψ2 } = Dam |ψ2 |ψ m = β| −a 0b ⊗ |ψ m + α|1a 1b ⊗ Xm |ψ m , (20) After the encrypting transformation, Alice obtains the ciphertext |Ψec = {|Ψec {|K=|ψ1 } , |Ψec {|K=|ψ2 } }.
(21)
After that, Alice sends the particle Pm to Bob. The encryption and decryption processes is shown in Fig. 2. Q can be viewed as a ‘quantum switch’, which can be implemented by using optical switch in fiber communication on the quantum optical signal. When the key element is |ψ1 , Alice connects ‘1’ with ‘2’, otherwise Alice connects ‘1’ with ‘3’. It is noted that Alice and Bob pre-share EPR pair in the proposed scheme as the quantum cryptographic algorithm described in section III. The difference between our
Plaintext
⊕C 1 ⊕D
2
Q Ciphertext
3
⊕C
Plaintext
U
Alice
Bob
Pa
EPR
Pb
Fig. 2. Diagram of the proposed cryptographic algorithm
Trojan Horse Attack Strategy on Quantum Private Communication
185
algorithm and previous algorithm is the employment of a random operation U on the EPR pair which is transferred into one of non-orthogonal entangled states {|ψ1 , |ψ2 }. Now let us show how to prevent the trojan horse attack strategy in the improvement scheme. Suppose the attacker lurks successfully a ‘horse’, Υ , in Bob’s apparatus, then the ciphertext state takes, |Ψec (Υ ) = {|Ψec (Υ ){|K=|ψ1 } ), |Ψec (Υ ){|K=|ψ2 } }.
(22)
|Ψec (Υ ){|K=|ψ1 } = α|0a 0b (h ) ⊗ |ψ m + β| +a 1b (h? ) ⊗ Xm |ψ m ,
(23)
|Ψec (Υ ){|K=|ψ2 } = β| −a 0b (h? ) ⊗ |ψ m + α|1a 1b (h⊥ ) ⊗ Xm |ψ m ,
(24)
where
and
where h? and h? denote the inconclusive feedback information. Although the key is a mix state (see Eq.(18)), Alice and Bob only choose one state from {|ψ1 , |ψ2 } as the key element in each encrypting operation. Accordingly, if the attacker prelurk one trojan horse, e.g., Υ1 (for {|0, |1}), in Bob’s apparatus, then another states, i.e., {|+, |−} can not be recognized exactly. If the attacker employs two trojan horses, e.g., ’robot horse’ Υ1 and ’robot horse’ Υ2 (for {|+, |−}), the attacker can also be impossible to get the useful feedback information. Because Alice and Bob’s choices for the key is completely random, this leads the impossibility for the trojan horses Υ1 and Υ2 to follow completely the changes of the key elements. By other terms, because there are two pairs random bases, i.e., {|0, |1} and {|+, |−} in Alice’s and Bob’s apparatuses, it is impossible for the the attacker’s ‘horse’ to recognize these bases. Subsequently, the ‘horses’ are ‘blind’ and can not gives correct feedback information. The security is the same as the BB84 protocol [3].
5
Remarks
In above we have analyzed the fragility of quantum private communication based on quantum cryptographic key algorithm against the trojan horse attack strategy, where the EPR pair(s) are employed as a key. However, we would like to stress that the quantum key distribution protocols which are implemented by making use of the EPR pair(s) do not suffer this kind of drawbacks. Since the EPR pair carries initially no information in the quantum key distribution. Especially the users’s measurement for obtaining the final key is random. This features leads the trojan horse employed in the above section to be unavailable so that the THAS is impossible in the EPR key distribution protocol [4].
6
Conclusion
In this work, the fragility of the THAS on the quantum private communication based on quantum cryptographic key algorithm implemented by the EPR pairs as
186
J. Peng et al.
the key has been analyzed in details. It is found that any quantum cryptographic key algorithm exploiting a set of orthogonal states as the symmetrical key can not circumvent the THAS. To prevent this kind attack strategy we proposed a new approach which makes use of the non-orthogonal entangled states. The improvement scheme is robust to the THAS. In addition, the mechanism for the THAS on the quantum cryptography as well as the classic cryptography is also investigated.
Acknowledgement This work is supported by the National Natural Science Foundation of China (Grant no. 60472018).
References 1. Schneier, B.: Applied Cryptography:protocols, algorithms, and source code in C (John Wiley & Sons, Inc., 1994) 2. Wiesner, S., Conjugate coding. Sigact News. 15 (1983), 78-98. 3. Bennett, C. H., and Brassard, G.: Advances in Cryptology: Proceedings of Crypto’84, August 1984, Springer-Verlag, 475 (1984) 4. Ekert, A. K.: Quantum cryptography bases on Bell’s theorem. Phys. Rev. Lett. 67 (1991), 661-664. 5. Bennett, C. H., Bessette, F., Brassard,G., Salvail, L. and Smolin, J.: Experimental quantum cryptography. J. Cryptology, 5 (1992), 3-28. 6. Hillery, M., Buzek,V., and Berthiaume,A.: Quantum secret sharing. Phys. Rev. A, 59(1999), 1829-1834. 7. Lo, H.-K. and Chau,H.F.: Unconditional Security of Quantum Key Distribution over Arbitrarily Long Distances. Science, 283 (1999), 2050-2057. 8. Gisin, N., Ribordy,G., Tittel, W. and Zbinden, H.: Quantum cryptography. Reviews of Modern Physics, 74(2002), 145-195. 9. Larsson, J.: http://xxx.lanl.gov/quant-ph/0111073, 13 Nov 2001. 10. Y. Zhang, C. Li and G. Guo, Phys. Rev. A 64, 024302 (2001). 11. Leung, D. W.: Quantun vernam cipher. Quantum information and computation, 2 (2002), 14-30. 12. Karlsson, A., Koashi,M., and Imoto,N.: Quantum entanglement for secret sharing and secret splitting. Phys. Rev. A, 59 (1999), 162-168. 13. Wootters, W. and Zurek, W.: A single quantum cannot be cloned. Nature, 299 (1982), 802-803.
Linkable Democratic Group Signatures Mark Manulis , Ahmad-Reza Sadeghi, and J¨org Schwenk Horst-G¨ortz Institute, Ruhr-University of Bochum, D-44801, Germany {mark.manulis, joerg.schwenk}@nds.rub.de, [email protected]
Abstract. In a variety of group-oriented applications cryptographic primitives like group signatures or ring signatures are valuable methods to achieve anonymity of group members. However, in their classical form, these schemes cannot be deployed for applications that simultaneously require (i) to avoid centralized management authority like group manager and (ii) the signer to be anonymous only against non-members while group members have rights to trace and identify the signer. The idea of recently introduced democratic group signatures is to provide these properties. Based on this idea we introduce a group-oriented signature scheme that allows the group members to trace the identity of any other group member who issued a signature while non-members are only able to link the signatures issued by the same signer without tracing. For this purpose the signature scheme assigns to every group member a unique pseudonym that can be used by any non-member verifier to communicate with the anonymous signer from the group. We present several group-oriented application scenarios where this kind of linkability is essential. We propose a concrete linkable democratic group signature scheme for twoparties, prove its security in the random oracle model, and describe how to modularly extend it to the multi-party case. Keywords: democratic group signatures, anonymity, pseudonymity, linkability, group communication.
1 Introduction Designing anonymity-preserving cryptographic schemes for group-oriented applications, such as group signatures and ring signatures (c.f. Section 2), has been an appealing subject of the research. In this paper we consider group communication scenarios between members of a group and non-members where the anonymity of group members should be preserved only against non-members, but is not desired within the group. In other words, signed messages on behalf of the group must be verifiable by group members and non-members, but the signer’s identity should be revealed only by other group members. Since a non-member may receive signed messages from different group members, it is essential for non-members to distinguish between signatures
The author was sponsored by the European Commission through IST-2002-507932 ECRYPT.
K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 187–201, 2006. c Springer-Verlag Berlin Heidelberg 2006
188
M. Manulis, A.-R. Sadeghi, and J. Schwenk
produced by the same signer (linkability of signatures) in order to respond accordingly. In this context it is likely that the unique pseudonyms of group members may be used to provide this kind of linkability for non-members. Further, we consider communication scenarios where no central management authorities needed who controls the initialisation of the group and the communication process. In their classical form group and ring signatures cannot be deployed for those applications that require the mentioned properties. Recently the idea of a democratic group signature was introduced in [20] that allows group members to initialise the group and maintain it over dynamic group changes in a collective manner without relying on any centralized authority like group manager. However, the proposed model is too strong for the communication scenarios considered in this paper. This is because the model in [20] requires unlinkability of issued group signatures. Clearly, if signatures are unlinkable then non-members are not able to distinguish between messages signed by the anonymous communication partner from the group, and are, therefore, not able to respond to the signer. Therefore, in this paper we propose a relaxed model for linkable democratic group signatures. As a consequence more efficient schemes can be designed. In the following we describe some communication scenarios for linkable democratic group signatures. Consultative Group Decision. Consider a group of people G who has to make their common decision based on anonymous consultations with third parties in T . Every member of G is allowed to initiate an anonymous consultation with any party ti ∈ T such that only other group members can identify it and follow the consultation process. Any party ti may be queried from different members at the same time and must, therefore, be able to determine the sender to respond accordingly. Concrete applications are: anonymous review and discussion of submitted papers by the program committee, selection of participants for a project tender based on their proposals. Group members may use linkable democratic group signatures to sign their queries to ti . If referees want to discuss several topics of the submitted paper with its authors without revealing their identities, then they can use the scheme to sign their messages. The authors are able to distinguish between queries of different referees using pseudonyms and respond accordingly. Distributed Group Control. Consider a scenario of the distributed control, e.g., in a battlefield. Given set F of field devices and set C of control devices, such that any device in C can send its orders to any device in F with respect to some control policy P . Any field device that receives an order must be able to respond to the control device that has issued the order. For strategic reasons field devices should not know, which control device has issued the order, but still must be able to verify that the order comes from an authentic control device in C. Any other device in C must know which orders have been sent and also which control device is the issuer of a certain order. The latter allows the control devices to exclude a malicious control device whose orders are not conform with P . The solution based on linkable democratic group signatures is that all control devices from C form a group, whereas field devices are considered as non-members. Any control device ci broadcasts its signed order so that upon its reception any party in C and in F can verify whether the order is from a ci ∈ C but only members of C can determine the identity of ci while members of F can communicate with ci over its pseudonym.
Linkable Democratic Group Signatures
189
Anonymous Intergroup Communication. Linkable democratic group signatures allow authentic anonymous communication between members of multiple groups. Members of different groups can exchange signed messages without revealing own identities such that only members of their groups are able to open their signatures. For example, two teams want to carry out a fair two-player game competition (e.g., chess). Assume that players of one team know strengths and weaknesses of players of another team. Thus, if a player knows its opponent then it might benefit from this knowledge during the game. Therefore, to achieve fairness it is preferable that players do not know their opponents. However, once the game is started, both players have to be able to verify that all game moves come from the same opponent. After competition is finished, both teams should be able to figure out the authentic result, and reveal the identities of the opponent players for each pair. It is thinkable to realize linkable democratic group signatures using certified pseudonyms [19] issued by a certification authority (CA) to every group member. However, this trivial construction requires an active involvement of the CA during the initialisation and is, therefore, opposed to the assumed trust model. The solution with certified pseudonyms is also impracticable if the group has to be formed spontaneously, e.g., teams in the example of anonymous intergroup communication may be built ad-hoc for each game from a pool of players. In this case a solution without active involvement of the CA is preferable. Organization. In Section 2 we discuss the main differences between linkable democratic group signatures and other known group-oriented signatures. The formal model and security requirements of linkable democratic group signatures are described in Section 3. We propose a concrete scheme for two parties and prove its security in the random oracle model in Section 4. In Section 5 we describe a straightforward extension for the multi-party case.
2 Related Work Although there exist various group-oriented digital signatures, linkable democratic group signatures differ from them in trust relationship and signer’s anonymity as discussed in the following. Group signatures introduced by Chaum et. al. [11] and later studied and improved in [10, 9, 2, 7, 4, 8, 16] allow members of a group to sign messages on behalf of the group so that it is not possible to distinguish who the actual signer is. Nevertheless, there exists a designated group manager that can open the signature, i.e., reveal the identity of its signer. We are interested in two security requirements of group signatures, namely the unlinkability and the anonymity. The first one means that no party except for the group manager should be able to relate two or more signatures as being produced by the same signer. The second one means that no party except for the group manager should be able to reveal the signer’s identity [2]. There are several differences between group signatures and linkable democratic group signatures: Firstly, in group signatures all group members trust the group manager that computes all group secrets. This is obviously is not the case in the trust model of linkable democratic group signatures. Secondly,
190
M. Manulis, A.-R. Sadeghi, and J. Schwenk
group signatures are unlinkable. Thus, group members and non-members that receive a signed message are not able to relate it to any previously received signed message. The only party that is able to do this is the group manager. Obviously, this is an obstacle for the communication in scenarios described above. Thirdly, the anonymity requirement of group signatures allows only the group manager to reveal the identity of the signer from the signature. In linkable democratic group signatures, however, all group members are allowed to do this. Traceable signatures introduced by Kiayias et. al. [15] extend group signatures as follows. There exist several members, called tracers, that receive a tracing trapdoor from the group manager and are able to link all group signatures that correspond to that tracing trapdoor. The tracing trapdoor reveals no information about the identity of the signer. Thus, tracers are able to collect all signatures of a certain group member without being able to identify him, while the group signatures produced by other group members remain unlinkable, unless the group manager reveals their tracing trapdoors too. Like in classical group signatures only group manager is able to identify the signer. Another property of traceable signatures is that group members are able to produce claiming proofs for their group signatures, i.e. a group member can convince any verifier that he is the author of a certain signed message. In the context of linkable democratic group signatures tracing trapdoors can be seen as pseudonyms that allow tracers to follow the communication by linking signed messages of the same authors. Since, by definition, tracing trapdoors are only known to the group manager, other group members and also non-members are not able to distinguish signatures generated by the same member. The property of traceable signatures that allows members to claim their signatures can be utilized to overcome this obstacle, i.e., after the signer has generated a signature and a claiming proof he sends the signature to all communication participants (group members and non-members), but sends the claiming proof only to group members that are then able to identify the signer during the verification of the proof. This can be achieved by encryption of the proof with the secret group key. Obviously, the drawback of this realisation is the increased communication and computation due to the additional generation and distribution of claiming proofs and their encryption, besides that the group manager is still the only authority that can identify the signer. Ring signatures introduced by Rivest et. al. [21] and further studied in [18] and [5] do not require any group manager to form a group. For the signature generation every user builds a set of public keys that includes his public key and the public keys of other users. A generated signature does not reveal the public key of the signer, but a set of public keys of all possible signers. Therefore, ring signatures cannot be used for a direct communication between a verifier and a signer. Additionally, ring signatures provide unconditional anonymity, i.e., no party can reveal the signer’s identity. Linkable democratic group signatures are similar to ring signatures in the sense that no group manager is required to initialise a group, and that a verifier knows the set of possible signers without being able to identify the signer. However, the differences are that in linkable democratic group signatures: (i) every member actively participates in the initialisation process, (ii) a non-member verifier is able to respond to the signer using the signer’s pseudonym, and (iii) group members are able to identify the signer.
Linkable Democratic Group Signatures
191
Democratic group signatures introduced recently in [20] result from changes to the standard model of group signatures caused by elimination of the group manager’s role and distribution of the tracing rights to individuals. Group members initialise the group and control it over dynamic changes in a collective manner. Every group member has individual right to trace issued signatures to their signers. To provide individual tracing rights group members agree on a tracing trapdoor. The signer’s anonymity is provided against non-members. However, the model in [20] requires unlinkability of signatures. This property is an obstacle for the direct communication between a non-member and an anonymous group member, because the non-member would no more be able to distinguish the messages of the same signer. Therefore, we relax the model of democratic group signatures to provide the linkability of generated signatures. Additionally, this results in a more efficient construction, i.e., the signatures in our scheme have the length of O(1) whereas the signatures in [20] have the length of O(n).
3 Model 3.1 Notations and Terminology For a string x, |x| denotes its length. For a finite set or tuple X, |X| denotes its size. We use {, } to specify a set, and (, ) to specify a tuple. denotes an empty string, tuple or set according to the context. We use x := y to define value of x to be y where y can be $ a value, a tuple or a set. If y is a tuple then x := y specifies a random permutation of values in y. If T is a randomized algorithm or protocol then [T (X)] denotes the set of random $ variables having positive probability of being output by T on input X, and Y ← T (X) denotes a concrete output of T on the same input with freshly generated coins. For a $ finite set X, x ← X denotes the algorithm that samples an element uniformly at random from X. If T is deterministic then Y ← T (X) denotes the output of T on input X. We say one-argument function v : N → N is negligible if for any positive polynomial poly there exists l ∈ N, such that for all l ∈ N, l > l : v(l) < 1/poly(l). We say twoargument function w : N × N → N is negligible if for any polynomial time function f : N → N for that exists a positive polynomial poly, such that f (k) ≤ poly(k), ∀k ∈ N, the one-argument function wf (l) = w(l, f (l)) is negligible for all l ∈ N. This definition of two-argument negligibility introduced in [2] is used in our scheme to show the negligibility of functions which are parameterized with a security parameter and a number of group members. In the context of the security requirement < req > we use Exp<req> to denote an A experiment with an algorithm A aiming to break this requirement. By Adv<req> we A denote the advantage function of A. 3.2 Linkable Democratic Group Signatures: Algorithms and Protocols Definition 1. A linkable democratic group signature scheme LDGS = {Setup, Sign, Verify, Trace} is a digital signature scheme that consists of:
192
M. Manulis, A.-R. Sadeghi, and J. Schwenk
– A randomized protocol Setup between all members that takes as input a security parameter l ∈ N and a number of members n ∈ N. The public output is a set of identities ID and a set of pseudonyms PS of group members. The identity and the pseudonym of a member i are denoted idi and psi , respectively. The private output for each member i is the individual secret signing key ski from the set SK. – A randomized algorithm Sign that on input a secret signing key sk ∈ SK and a message m, outputs a signature σ on m. – A deterministic algorithm Verify that on input a candidate signature σ, a message m, and the set of pseudonyms PS outputs either a pseudonym ps if it accepts the signature or ⊥ if it rejects it. – A deterministic algorithm Trace that on input a candidate signature σ, a message m, any secret signing key sk ∈ SK, the set of pseudonyms PS, and the set of identities ID outputs either an identity id or the symbol ⊥ if a failure occurs. Since every ski ∈ SK can be used as input to the signing and tracing algorithms there should exist a tracing trapdoor as part of every ski . Remark 1. In linkable democratic group signatures the scheme is initialised in a collective manner by all group members. Note that members may be in possession of certified public keys for the authentication of their messages during the Setup protocol, but we stress that no third trusted party like a certification authority (CA) is actively involved in the protocol. Note that the stronger model of democratic group signatures in [20] that requires unlinkability of signatures considers additional protocols for dynamic groups, i.e., protocols that handle joins and exclusions of group members. However, in dynamic groups the property of linkability would allow non-members to reveal identities of group members that have joined to the group or have been excluded from it. In case of join a nonmember may record the identity of the joining member. Then it can simply figure out which pseudonyms in the changed group formation are linkable to pseudonyms of the previous group formation, and so find out the pseudonym which cannot be linked, i.e. the pseudonym of the joined member. Similar, in case of the exclusion a non-member can record the identity of the excluded group member, then relate the pseudonyms from the previous group formation to the pseudonyms of the changed group formation, and figure out the pseudonym of the excluded member. Therefore, we consider linkable democratic group signatures only for static groups. 3.3 Trust Model and Assumptions After the scheme is initialised every group member must be trusted not to reveal its secret signing key or any information that can be used to link any idi and psi for the same i to any other party. The setup protocol must also be resistant against attacks that aim to reveal such links. We require also the existence of at least one honest group member who acts according to the setup protocol and does not take part in any collusion of group members trying to cheat against non-members.
Linkable Democratic Group Signatures
193
3.4 Security Requirements Definition 2 (Correctness). A linkable democratic group signature scheme LDGS from Definition 1 is correct if for all l, n ∈ N, (ID, PS, SK) ∈ [Setup(l, n)], ski , skj ∈ $ SK, idi ∈ ID, psi ∈ PS, m ∈ {0, 1}∗ , and σ ← Sign(ski , m) : Verify(σ, m, PS) = psi ∧ Trace(σ, m, skj , PS, ID) = idi The following security requirements are derived from the full-anonymity and fulltraceability requirements proposed by Bellare in [2] for group signature schemes and have been modified with respect to the model of linkable democratic group signatures. The modified requirements subsume the standard requirements on anonymity, collusion-resistance, framing and unforgeability requirements. We require from a linkable democratic group signature scheme, once initialised, to be resistant against the following attacks. Anonymity. Informally, in an anonymity attack against a linkable democratic group signature scheme the adversary tries to figure out the identity idi of the signer of a signature. The formal definition is given by experiment Expanon−b (l, n) in Figure 1. A Adversary A operates in two stages: choose and guess. In the choose stage it is given the set of identities ID, the set of pseudonyms PS produced by the protocol Setup(l, n), and outputs two identities id0 , id1 , a message m ∈ {0, 1}∗ , and some state information St to be used in the second stage of the attack. In the guess stage A is given St, and a signature σb of the member with idb on m where b is a random bit. In order to cover chosen message attacks A is also allowed to query oracle Sign∗ on any message m∗ of its choice. The oracle answers with the signature σb∗ on m∗ . At the end of the stage A outputs bit d as a guess for b. Definition 3. The anonymity advantage of A is given by the function anon−1 Advanon (l, n) = 1] − Pr[Expanon−0 (l, n) = 1]. A (l, n) = Pr[ExpA A
Expanon−b (l, n): A (ID, PS, SK) ← Setup(l, n); $ (St, id0 , id1 , m) ← A(choose, ID, PS); $ $ b ← {0, 1}; σ ← Sign(skb , m); ∗ $ d ← ASign (·) (guess, St, σ); return d; $
Exptrace A (l, n): (ID, PS, SK) ← Setup(l, n); St := (ID, PS); IDc := ; SKc := ; next := 1; Until (next = 0) do $ (next, St, idi ) ← ASign(·,·) (corrupt, St, SKc ); If next = 1 then IDc ← IDc ∪ {idi }; SKc ← SKc ∪ {ski } EndIf EndUntil; $ (σ, m) ← ASign(·,·) (forge, St); If Verify(σ, m, PS) = ⊥ then return 0 EndIf; If Trace(σ, m, PS, skj ) = ⊥ for any 0 ≤ j < n then return 1 EndIf; idi ← Trace(σ, m, PS, skj ); If idi ∈ IDc and Sign(·, ·) was not queried on (idi , m) then return 1 else return 0 EndIf; $
Fig. 1. Experiments used to define anonymity and traceablity of LDGS
194
M. Manulis, A.-R. Sadeghi, and J. Schwenk
A linkable democratic group signature scheme LDGS from Definition 1 is anonymous if for any polynomial time adversary A the anonymity advantage Advanon A (l, n) is negligible in terms of negligibility of two-argument functions. Traceability. Informally, in a traceability attack against a linkable democratic group signature scheme the adversary A is allowed to corrupt members (obtain their secret signing keys), and tries to generate a forged signature that either cannot be traced to any member or can be traced to an uncorrupted member. The formal definition is given by experiment Exptrace A (l, n) in Figure 1. Adversary A operates in two stages: corrupt and forge. A starts its attack by adaptively corrupting a set IDc of members. The adversary has free choice of the identities and the number of corrupted members. At the end of the corrupt stage the set IDc contains identities of corrupted members. In the stage forge adversary knowing the set SKc of secret signing keys of corrupted members outputs a forgery (σ, m). The experiment returns 1 if σ fulfils verification requirements, but the tracing algorithm outputs either ⊥ or an identity idi of an uncorrupted member. In both stages adversary is given access to the signing oracle Sign that outputs a signature of the member with idi on a query (idi , m ). Definition 4. The traceability advantage of A is given by the function trace Advtrace A (l, n) = Pr[ExpA (l, n) = 1].
A linkable democratic group signature scheme LDGS from Definition 1 is traceable if for any polynomial time adversary A the traceability advantage Advtrace A (l, n) is negligible in terms of negligibility of two-argument functions. 3.5 Discussion on Sizes Since every member has its unique identity, pseudonym and secret signing key we follow that the lower size bounds of ID, PS and SK are equal to n. To the contrary, it is preferable that the size of a generated signature σ remains constant, i.e., does not grow with n.
4 A Two-Party Linkable Democratic Group Signature Scheme In this section we present a linkable democratic group signature scheme for two parties. A straightforward extension for a multi-party case is given later in Section 5. After description of required cryptographic primitives we specify the protocols and algorithms of the scheme and prove its security in the random oracle model. 4.1 Cryptographic Primitives Proof of the Equality of Two Discrete Logarithms. Let G :=< g, p, q > be a cyclic subgroup of the multiplicative group Z∗p with generator g and order q, where q and p are large prime numbers with q|(p − 1). In our scheme we use a non-interactive zeroknowledge (NIZK) proof system (P, V) for the equality of two discrete logarithms. A probabilistic proving algorithm P on input x = (g0 , g1 , y0 , y1 ) ∈ G4 and w ∈ Zq
Linkable Democratic Group Signatures
195
outputs a non-interactive proof π for the equality w = logg0 (y0 ) = logg1 (y1 ). A deterministic verifying algorithm V on input x, and a proof π checks whether π is a correct proof and outputs either 1 or 0 (1 if V accepts the proof). Both algorithms have access to a random oracle R from the family of random oracles (c.f. [3]). The proof system (P, V) must satisfy the usual requirements of completeness, soundness and zero-knowledge. Note that the equality of two discrete logarithms in the context of digital signature schemes has already been used by Goh and Jarecki in [13]. Their scheme utilizes a NIZK proof system for the signature generation and is proven to be secure in the random oracle model. Our scheme is designed to work with any NIZK proof system for the equality of two discrete logarithms in the random oracle model, e.g., the efficient scheme used in [13] can be applied. In this case the random oracle R in the description of our algorithms can be replaced by a cryptographic secure hash function. Due to some technical reasons concerning the zero-knowledge simulation we have to use adaptive NIZK proof systems in our security proof. In the full version we provide a more detailed description and the definition of adaptive NIZK proof systems in the random oracle model based on the description of these systems in the common reference string model along the lines in [12] and [22]. Simultaneous Decisional Diffie-Hellman Assumption. In the following we introduce a cryptographic assumption which we call a simultaneous decisional Diffie-Hellman (SDDH) assumption. This assumption is an extension of a well-known Decisional Diffie-Hellman (DDH) assumption [6] and is essential for the anonymity property of our scheme as shown below. Definition 5 (SDDH Assumption). Given a cyclic subgroup G :=< g, p, q > and security parameter l as above. Let As be a polynomial time distinguisher that tries to distinguish between two distributions D0 and D1 according to the following experiment: Expsddh−b (l): As $
n ∈ N; y ← Zq ; $ For i = 0 to n − 1 do xi , ri ← Zq EndFor; x0 xn−1 y D0 := (g, g , . . . , g , g , g r0 , . . . , g rn−1 ); x0 xn−1 D1 := (g, g , . . . , g , g y , g x0 y , . . . , g xn−1 y ); $ b ← {0, 1}; $ d ← As (Db ); return d;
The advantage function of As is defined as sddh−1 Advsddh (l) = 1] − Pr[Expsddh−0 (l) = 1] As (l) = Pr[ExpA A s
(1)
s
The SDDH assumption is that Advsddh As (l) is negligible. Theorem 1 (SDDH ⇔ DDH). The SDDH assumption is equivalent to the Decisional Diffie-Hellman (DDH) assumption. Formally, for all distinguishers A, As and for all ddh l ∈ N : Advsddh As (l) = AdvA (l).
196
M. Manulis, A.-R. Sadeghi, and J. Schwenk
Proof. The proof is provided in the full version of this paper. The idea of SDDH assumption in the context of our scheme is that every group member i has a temporary private key xi ∈ Zq and the corresponding public key g xi which is used as identity idi . In our scheme both group members compute the same tracing trapdoor k ∈ Zq as part of their secret signing keys and the blinded version g k is public. The pseudonym psi of a group member i contains a value g xi k . According to Definition 1 a verifier obtains the signer’s pseudonym. In order to provide anonymity the verifier must not be able to distinguish which temporary public key g xi corresponds to the obtained signer’s pseudonym. Considered that y is the tracing trapdoor k, the distribution D1 from the experiment Expsddh−b (l) consists of public keys and pseudonyms of all As group members. Intuitively, if an adversary is able to distinguish between D1 and D0 then it is able to distinguish which pseudonym corresponds to which temporary public key. 4.2 Parameters All computations in our scheme are performed in the cyclic subgroup G :=< g, p, q > of the multiplicative group Zp∗ with generator g and prime order q, such that q|(p−1). In our scheme we use a NIZK proof system (P, V) with a random oracle R as described in Section 4.1 and a publicly known strong collision-resistant hash function H : {0, 1}∗ → Zp . We assume that members agree on the description of G, R and H before they begin with the setup procedure. All protocols and algorithms of our scheme implicitly know the description of G and R. Every participant i is equipped with an identity certificate that contains its authenticated public key pkeyi . The corresponding private key skeyi is known only to this participant. We assume that the key pair (pkeyi , skeyi ) is used by member i to authenticate his messages during the setup protocol. Each secret signing key ski consists of the member’s temporary private key xi and the tracing trapdoor k that is known only to the group members. For simplicity the identity idi of member i is given by its temporary public key yi , such that yi ← g xi , hence ID := {y0 , y1 }. The pseudonym psi of member i is a tuple (bk, y˜i ), where bk ← g k is the blinded common tracing trapdoor, and y˜i ← yik is its pseudonym token. 4.3 Protocols and Algorithms Protocol Setup: Both participants 0 and 1 perform protocol Setup in Figure 2. We require that all information sent by a participant i during this protocol is signed with a secure digital signature scheme using its private key skeyi , denoted Sigskey (), and i is verified by every recipient. For simplicity we omit the indication of the verification procedure. In the beginning of the protocol both participants 0 and 1 choose own temporary key pairs (x0 , y0 ) and (x1 , y1 ), respectively, exchange the temporary public keys in an authentic manner and compute the tracing trapdoor k as a secret shared key according to the authenticated Diffie-Hellman key agreement. Every member blinds the tracing trapdoor to bk and computes the pseudonym tokens y˜0 and y˜1 . In order to allow third parties to verify signatures, the sets ID and PS have to be made public in an authentic manner
Linkable Democratic Group Signatures Member 0
197
Member 1
x0 ← Zq ; y0 ← g x0
x1 ← Zq ; y1 ← g x1
$
k ← y1x0 ; bk ← g k ∀i = 0, 1 : y˜i ← yik , psi := (bk , y˜i ) ID := {y0 , y1 }; PS := {ps0 , ps1 }; sk0 := (x0 , k, ps0 );
$
(y0 , Sigskey (y0 )) 0 − −−−−−−−−−−−−→ − − (y1 , Sigskey (y1 )) 1 − ← −−−−−−−−−−−−− −
k ← y0x1 ; bk ← g k ∀i = 0, 1 : y˜i ← yik , psi := (bk , y˜i ) ID := {y0 , y1 }; PS := {ps0 , ps1 }; sk1 := (x1 , k, ps1 );
Fig. 2. Protocol Setup with n := 2
such that no third party can relate any psi ∈ PS to idi ∈ ID for the same i. For this pur$ pose the order of pseudonyms in PS must be randomized, denoted PS := {ps0 , ps1 }. A simple possibility to provide authenticity of ID and PS is that one member, w.l.o.g. member 0, publishes the computed sets signed with skey0 and member 1 verifies the correctness of the published sets and complains upon any inconsistency. If no complains occur then ID and PS are authentic. Remark 2. To simplify the security proof we assume that published sets ID and PS remain correct during the whole lifetime of the scheme. Algorithms Sign, Verify, Trace: Algorithms Sign, Verify, and Trace in Figure 3 allow members to generate and verify signatures and trace signer’s identities according to Definition 1. The signer i uses its secret signing key ski to generate a signature on a
Sign(ski , m):
Verify(σ, m, PS):
Parse ski as (xi , k, psi ); Parse psi as (bk, y˜i ); $ $ r ← Zp ; h ← H (m, r); z ← hxi ; $ π ← P(R, h, bk, z, y˜i , xi ); σ := (r, z, psi , π); return σ;
Parse σ as (r, z, ps, π); Parse ps as (bk, y˜); If ps ∈ PS then return ⊥ EndIf; $ h ← H (m, r); If V(R, h, bk, z, y˜, π) = 1 then return ps else return ⊥ EndIf;
Trace(σ, m, sk, PS, ID): If Verify(σ, m, PS) = ⊥ then return ⊥ EndIf; Parse σ as (r, z, ps, π); Parse ps as (bk, y˜); Parse sk as (x, k, ps ); y ← y˜1/k ; If y ∈ ID then return y else return ⊥ EndIf;
Fig. 3. Algorithms Sign, Verify, Trace
198
M. Manulis, A.-R. Sadeghi, and J. Schwenk
message m. It hashes the message m with a random string r to obtain h, and computes z ← hxi , where xi is its temporary private key. In order to bind the signature to own pseudonym psi = (bk, y˜i ) the signer computes a non-interactive zero-knowledge prove π of logh (z) = logbk (˜ yi ) using the proving algorithm P. The idea behind this is that π can only be constructed by the signer who is in possession of the temporary private key xi = logh (z) = logbk (˜ yi ). This is important for the traceability (unforgeability) property of the scheme. The signature of member i consists of r, z, psi and π. Note that instead of including psi in the signature it is sufficient to include only the index of psi in PS. The verification is done by recomputing the hash value h, and by the verification of the proof π. The verification algorithm returns the pseudonym ps of the signer if it accepts the signature or ⊥ if the signature is rejected. In order to trace the signature to the identity of its signer the knowledge of the tracing trapdoor k is required. Since k is part of every secret signing key ski , every member i is able to perform the tracing algorithm. After the signature is verified the identity of its signer is computed as y ← y˜1/k , where 1/k is the inverse value of the tracing trapdoor and y˜ is the pseudonym token of the signer obtained from the signature. This is possible due to the construction of the latter as y˜ = y k . 4.4 Security Analysis Let (P, V) be an adaptive1 NIZK proof system for the equality of two discrete logarithms in the random oracle model, and let 2−LDGS = (Setup, Sign, Verify, Trace) be a two-party linkable democratic group signature scheme from our construction in Section 4.3. Theorem 2. The two-party linkable democratic group signature scheme 2−LDGS is correct. Proof. According to Definition 2 we have to show that Verify(σ, m, PS) = psi ∧ Trace(σ, m, skj , PS, ID) = idi for all l, n ∈ N, (ID, PS, SK) ∈ [Setup(l, n)], ski , skj ∈ SK, idi ∈ ID, psi ∈ PS, m ∈ $ {0, 1}∗ , and σ ← Sign(ski , m). The proof of the correctness is obvious from the constructions given in figures 2 and 3. The signature can be parsed as σ = (r, z, psi , π). After the verification of the pseudonym (i.e., psi ∈ PS) and of the proof π, the pseudonym psi is returned by the verification algorithm. The tracing algorithm checks first whether the signature σ is verifiable. This step ensures also the validity of the pseudonym psi . 1/k The computation of the identity yi ← y˜i from the pseudonym token y˜i is valid according to the construction y˜i ← yik . The identity idi is returned by the tracing algorithm after its verification (i.e., idi ∈ ID). Thus, 2−LDGS is correct. In the following we prove anonymity and traceability of our linkable democratic group signature scheme in the random oracle model. Theorem 3. The two-party linkable democratic group signature scheme 2−LDGS is anonymous in the random oracle model assuming that (P, V) is an adaptive NIZK proof 1
For the security analysis we require the adaptivity of (P, V).
Linkable Democratic Group Signatures
199
system for the equality of two discrete logarithms and that the SDDH assumption holds in G =< g, p, q >. Proof (Sketch). The complete proof is given in the full version of this paper. To prove the anonymity of 2−LDGS in the random oracle model we suppose that H is a random oracle and show that for any polynomial time adversary A against the anonymity property it is possible to construct a polynomial time distinguisher D against the zeroknowledge property of the NIZK proof system (P, V) (i.e., D distinguishes between simulated and real proofs), and adversary As that is able to break the SDDH assumption, such that for all l ∈ N zk sddh Advanon A (l, 2) < 2AdvD (l) + 2AdvAs (l) +
2 poly(l)
Obviously, Advanon A (l, 2) is negligible in terms of the negligibility of a two-argument function. Hence, 2−LDGS is anonymous. Theorem 4. The two-party linkable democratic group signature scheme 2−LDGS is traceable in the random oracle model assuming that (P, V) is an adaptive NIZK proof system for the equality of two discrete logarithms and that the Computational DiffieHellman (CDH) assumption holds in G =< g, p, q >. Proof (Sketch). The complete proof is given in the full version of this paper. To prove the traceability of 2−LDGS in the random oracle model we suppose that H is a random oracle and show that for any polynomial time adversary A against the traceability property it is possible to construct a polynomial time adversary Ac that is able to break the CDH [6] assumption in the random oracle model, such that for all l ∈ N 3 cdh Advtrace A (l, 2) < 2AdvAc (l) + poly(l) Obviously, Advtrace A (l, 2) is negligible in terms of the negligibility of a two-argument function. Hence, 2−LDGS is traceable.
5 Extension to a Multi-party Linkable Democratic Group Signature Obviously, the tracing process in 2−LDGS is trivial, because one member upon receiving a signature which it has not generated immediately knows that another member is the signer, i.e., the execution of the tracing algorithm is not required. However, tracing becomes more interesting in a multi-party case. Our 2−LDGS scheme can be immediately extended to a multi-party case using the idea proposed for democratic group signatures in [20]. The clue is to replace an authenticated Diffie-Hellman protocol in the computation of the tracing trapdoor by an authenticated Diffie-Hellman based group key agreement protocol. Amongst so-called contributory group key agreement (CGKA) protocols there exists protocols like [14] and [17] where each member i contributes its temporary public key yi = g xi for the interactive computation of the secret shared key k (common tracing trapdoor). To keep the extended n−LDGS scheme secure the applied
200
M. Manulis, A.-R. Sadeghi, and J. Schwenk
CGKA protocol should satisfy the security requirements stated in [14]. For some practical details and comparison of known CGKA protocols we refer to [1]. Note that the algorithms Sign, Verify and Trace of 2−LDGS remain unchanged in 2−LDGS because xi , and k are part of the secret signing key ski , and y˜i can still be computed as yik .
6 Conclusion In this paper we have proposed a model for linkable democratic group signatures that can be applied in communication scenarios for groups where a centralized control by a trusted authority is undesirable and the anonymity of the signer is required only against non-members while other group members have rights to trace and identify the signer. By the assignment of a unique pseudonym to every group member any non-member verifier is able to communicate with the anonymous signer from the group.
References 1. Y. Amir, Y. Kim, C. Nita-Rotaru, and G. Tsudik. On the performance of group key agreement protocols. ACM Transactions on Information and System Security, 7(3):457–488, 2004. 2. M. Bellare, D. Micciancio, and B. Warinschi. Foundations of group signatures: Formal definitions, simplified requirements, and a construction based on general assumptions. In Advances in Cryptology (EUROCRYPT 2003),Lecture Notes in Computer Science, volume 2656, pages 614–629. Springer-Verlag, 2003. 3. M. Bellare and P. Rogaway. Random oracles are practical: a paradigm for designing efficient protocols. In Proceedings of the 1st ACM conference on Computer and communications security, pages 62–73. ACM Press, 1993. 4. M. Bellare, H. Shi, and C. Zhang. Foundations of group signatures: The case of dynamic groups. In CT-RSA, Lecture Notes in Computer Science, volume 2656, pages 136–153. Springer-Verlag, 2005. 5. A. Bender, J. Katz, and R. Morselli. Ring signatures: Stronger definitions, and constructions without random oracles. In Theory of Cryptography Conference 2006 (to appear), Lecture Notes in Computer Science. Springer-Verlag, 2006. 6. D. Boneh. The Decision Diffie-Hellman problem. In ANTS-III: Proceedings of the Third International Symposium on Algorithmic Number Theory, pages 48–63. Springer-Verlag, 1998. 7. D. Boneh, X. Boyen, and H. Shacham. Short group signatures. In Advances in Cryptology— CRYPTO 2004, volume 3152 of Lecture Notes in Computer Science, pages 41–55. SpringerVerlag, 2004. 8. J. Camenisch and J. Groth. Group signatures: Better efficiency and new theoretical aspects. In SCN, Lecture Notes in Computer Science, volume 3352, pages 120–133. Springer-Verlag, 2004. 9. J. Camenisch and M. Michels. A group signature scheme with improved efficiency. In Proceedings of the International Conference on the Theory and Applications of Cryptology and Information Security, pages 160–174. Springer-Verlag, 1998. 10. J. Camenisch and M. Stadler. Efficient group signature schemes for large groups. In Proceedings of the 17th Annual International Cryptology Conference on Advances in Cryptology, Lecture Notes in Computer Science, volume 1294, pages 410–424. Springer-Verlag, 1997. 11. D. Chaum and E. van Heyst. Group signatures. In Advances in Cryptology (EUROCRYPT 1991),Lecture Notes in Computer Science, volume 547, pages 257–265. Springer-Verlag, 1991.
Linkable Democratic Group Signatures
201
12. U. Feige, D. Lapidot, and A. Shamir. Multiple non-interactive zero knowledge proofs under general assumptions. SIAM Journal on Computing, 29(1):1–28, September 1999. 13. E.-J. Goh and S. Jarecki. A signature scheme as secure as the Diffie-Hellman problem. In Advances in Cryptology - EUROCRYPT 2003, volume 2656 of Lecture Notes in Computer Science, pages 401–415. Springer-Verlag, 2003. 14. J. Katz and M. Yung. Scalable protocols for authenticated group key exchange. In Advances in Cryptology (CRYPTO 2003),Lecture Notes in Computer Science, volume 2729 of Lecture Notes in Computer Science, pages 110–125. Springer-Verlag, 2003. 15. A. Kiayias, Y. Tsiounis, and M. Yung. Traceable signatures. In Advances in Cryptology (EUROCRYPT 2004), volume 3027 of Lecture Notes in Computer Science, pages 571–589. Springer-Verlag, 2004. 16. A. Kiayias and M. Yung. Group signatures with efficient concurrent join. In Advances in Cryptology - EUROCRYPT 2005, volume 3494 of Lecture Notes in Computer Science, pages 198–214. Springer-Verlag, 2005. 17. Y. Kim, A. Perrig, and G. Tsudik. Tree-based group key agreement. ACM Transactions on Information and System Security, 7(1):60–96, 2004. 18. J. K. Liu, V. K. Wei, and D. S. Wong. Linkable spontaneous anonymous group signature for ad hoc groups (extended abstract). In Information Security and Privacy: 9th Australasian Conference, ACISP 2004., volume 3108 of Lecture Notes in Computer Science, pages 325–335. Springer-Verlag, 2004. 19. A. Lysyanskaya, R. L. Rivest, A. Sahai, and S. Wolf. Pseudonym systems. In Proceedings of the 6th Annual International Workshop on Selected Areas in Cryptography, pages 184–199. Springer-Verlag, 2000. 20. M. Manulis. Democratic Group Signatures (On an Example of Joint Ventures - Fast Abstract). In Fast Abstracts Proceedings of ACM Symposium on Information, Computer and Communications Security (ASIACCS’06). ACM Press, 2006. Full version at: http://eprint.iacr.org/2005/446. 21. R. L. Rivest, A. Shamir, and Y. Tauman. How to leak a secret. In ASIACRYPT ’01: Proceedings of the 7th International Conference on the Theory and Application of Cryptology and Information Security, volume 2248 of Lecture Notes in Computer Science, pages 552–565. Springer-Verlag, 2001. 22. A. Sahai. Non-malleable non-interactive zero knowledge and adaptive chosen-ciphertext security. In FOCS ’99: Proceedings of the 40th Annual Symposium on Foundations of Computer Science, page 543. IEEE Computer Society, 1999.
Identity-Based Key Agreement with Unilateral Identity Privacy Using Pairings Zhaohui Cheng1 , Liqun Chen2 , Richard Comley1 , and Qiang Tang3 1
School of Computing Science, Middlesex University, The Burroughs Hendon, London NW4 4BT, UK {m.z.cheng, r.comley}@mdx.ac.uk 2 Hewlett-Packard Laboratories, Bristol, UK [email protected] 3 Information Security Group, Royal Holloway, University of London, Egham, Surrey TW20 0EX, UK [email protected] Abstract. In most of the existing identity-based key agreement schemes, it is usually assumed that either the communicated parties know each other’s identifier before the protocol starts or their identifiers are transferred along with the protocol messages. However, these schemes are not suitable for use in many real-world applications aimed to achieve unilateral identity privacy, which means that one communicating party does not want to expose his identifier to an outsider while his partner cannot know his identifier in advance. In this paper, we propose an efficient identitybased two-party key agreement scheme with unilateral identity privacy using pairing, and formally analyze its security in a modified BellareRogaway key agreement security model.
1
Introduction
Two-party key agreement has been well investigated since the Diffie-Hellman key exchange was proposed [14]. Because the key agreement schemes are usually supposed to be used in open networks, where the communication is fully controlled by adversaries, most of the research efforts have been devoted to the authenticated key agreement schemes. An authenticated key agreement (AK for short) scheme can establish a secret between the involved parties and guarantee no other party aside from the intended one can gain access to the established session secret key. Moreover, an authenticated key agreement with key confirmation (AKC for short) [19] further guarantees that if the protocol successfully ends then every party can be assured that the others actually possess the same session key. Besides the basis security properties required by AK and AKC, the following general security properties (some of them are discussed in [19, 8]) might also be required depending on the deployment environment. – Known session key security (KnSK). The compromise of one session key should not compromise the keys established in other sessions. – Forward secrecy (FwS). If one party’s private key is compromised, the secrecy of session keys previously established by the party should not be affected. K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 202–213, 2006. c Springer-Verlag Berlin Heidelberg 2006
Identity-Based Key Agreement with Unilateral Identity Privacy
203
Perfect forward secrecy (PFS) requires that the session key is still secure even when both parties’ private keys are compromised. In identity-based schemes, there is a master key which could be compromised as well. The master-key forward secrecy requires that the session keys generated before are still secure even when the master key is compromised. – Key-compromise impersonation resilience (KCI). The compromise of party A’s long-term private key should not enable the adversary to impersonate other parties to A. – Unknown key-share resilience (UknKSh). Party A should not be able to be coerced into sharing a key with party C when in fact A thinks that he is sharing the key with some party B. Apart from these general security properties, other special security properties might also be required in certain environment. In this paper we are especially interested in preserving one user’s Identity Privacy (IP) during every (key agreement) protocol execution, which means that no outsider adversary can determine the user’s identity. User identity privacy is very important in some environments such as the mobile networks. In particular, the privacy of user identity over the air interface of mobile networks is essential to guarantee the user’s location privacy and prevent an adversary from associating a user with his activities [4, 16]. Even in general network environments, some key agreement protocols such as the Internet Key Exchange protocol [15], also regard identity privacy as a desirable property. Authenticated key agreement protocols can be built based on either symmetric or asymmetric cryptography. If symmetric cryptography is used then either a symmetric key or a password should be distributed before the key agreement protocol is executed. If traditional (certificate-based) asymmetric cryptography is used, normally a public key infrastructure (PKI) will be required to be deployed. Shamir proposed the concept of identity-based cryptosystem [22] in which each party’s public key is the party’s identity which can be an arbitrary string. Hence, in the identity-based systems no certificate is required, so that the management of public keys is greatly simplified. Following Shamir’s work many identity-based two-party key agreement schemes have been proposed, e.g., [17, 24, 23, 11, 18, 5, 25]. Except for [17], the remaining schemes make use of pairings. These protocols are designed to achieve the general security properties of an AK protocol. Based on the assumption that two participants know each other’s identity in advance, some of these schemes also achieve user identity privacy. However, such assumption that two parties know each other’s identity in advance might not hold in many practical environments. For example, in the mobile networks of infrastructure mode, a mobile station could know the identifier of an access point (or a base station in the telecommunication networks) by some means, such as through a broadcast message from the access point, but the access point cannot know the mobile station’s identifier a prior. Similarly in the remote log-in services, a server cannot know a log-in user’s identifier before hand. Achieving identity privacy in a key agreement protocol is not a new challenge. Many efforts were made to address this issue, especially in the mobile networks, e.g., [4, 1, 16]. However, these solutions rely on either the symmetric cryptography
204
Z. Cheng et al.
or the traditional asymmetric cryptography so that it might cause problems when practically deployed. In this paper we mainly focus on the identity-based (using pairings) two-party key agreement scheme aimed to achieve user identity privacy. The rest of the paper is organised as follows. In Section 2 we briefly introduce pairings, the related assumptions, and some other necessary primitives. In Section 3 we describe the security model used to evaluate a two-party key agreement protocol with identity privacy. In Section 4 we propose an efficient authenticated key agreement with unilateral user identity privacy, investigate its security, and compare its security attributes and computation complexity with some existing protocols. Finally, we conclude this paper.
2 2.1
Preliminary Bilinear Pairings and Assumptions
In this subsection we briefly introduce some background knowledge of pairings. Definition 1. [3] A pairing is a bilinear map eˆ : G1 × G1 → G2 with two cyclic groups G1 and G2 of prime order q, which has the following properties: 1. Bilinear: eˆ(sP, tR) = eˆ(P, R)st for all P, R ∈ G1 and s, t ∈ Zq . 2. Non-degenerate: eˆ(P, P ) = 1G2 for P ∈ G∗1 . 3. Computable: eˆ(P, Q) for any P, Q ∈ G1 is efficiently computable. In the literature the security of many the identity-based schemes are based on the following assumptions. Assumption 1 (Bilinear Diffie-Hellman (BDH) [3]). For x, y, z ∈R Z∗q , P ∈ G∗1 , eˆ : G1 × G1 → G2 , given (P, xP, yP, zP ), computing eˆ(P, P )xyz is hard. Assumption 2 (Decisional Bilinear Diffie-Hellman (DBDH)). For x, y, z, r ∈R Z∗q , P ∈ G∗1 , eˆ : G1 × G1 → G2 , distinguishing between the distributions (P , xP , yP , zP , eˆ(P, P )xyz ) and (P , xP , yP , zP , eˆ(P, P )r ) is hard. Assumption 3 (Gap Bilinear Diffie-Hellman (GBDH)). With the help of an oracle to solve the DBDH problem, solving the BDH problem is still hard. 2.2
Some Primitives
In order to hide one user’s identity in the proposed scheme, we need to employ a one-time symmetric-key encryption scheme specified below. Definition 2. [13] A one-time symmetric-key encryption E consists of two deterministic polynomial-time algorithms: – Encrypt E(EK, m): Given a secret key EK ∈ K (the secret key space) and a message m from message space M, the algorithm outputs the ciphertext c. – Decrypt D(EK, c): Given a secret key EK ∈ K and a cipertext c, the algorithm outputs the plaintext m. which satisfy D(EK, E(EK, m)) = m.
Identity-Based Key Agreement with Unilateral Identity Privacy
205
A one-time symmetric-key encryption secure against passive attacks requires that for any passive adversary who possesses a pair of probabilistic polynomialtime (PPT) algorithms (A1 , A2 ), the following function (k) is negligible. (k) = Pr[b = b |
((m1 , m2 ), σ) ← A1 (1k ); b ← {0, 1}; EK ← {0, 1}k ; ] c∗ ← E(EK, mb ); b ← A2 (1k , σ, c∗ )
where m1 and m2 are of equal length from the message space M. A passively-secure one-time symmetric-key encryption achieves the ciphertext indistinguishability property with no access to the encryption or decryption oracle for the adversary (i.e., the IND-P0-C0 security [20]). As suggested in [13], this type of encryption scheme can be built from standard encryption techniques, such as using a pseudo-random bit generator (PRG) to extend EK and then employing the “one-time pad” operation. To provide key confirmation for AKC, we shall use a secure message authentication code (MAC). Definition 3. [2] A message authentication code (MAC) is a deterministic polynomial time algorithm MAC(·) (·). To authenticate a message m with a key M K, one computes the authenticated message pair (m, α) = (m, MACM K (m)), where α = MACM K (m) is called the tag on m. A MAC is a secure MAC if for every PPT adversary F which has the access to an oracle O that computes MACs under a randomly chosen key M K, the function (k) defined by (k) = Pr[M K ← {0, 1}k ; (m, α) ← F : (m, α) = MACM K (m)] is negligible, where m has not been queried to the oracle O.
3
Security Model of Key Agreement with Identity Privacy
In this paper we use a modified Blake-Wilson et al.’s security model [8], which extends the Bellare-Rogaway model [7] (referred to as the BR model) to the public key setting, to evaluate the security of the proposed protocol. In the BR model [7], each party involved in a session is treated as an oracle, and an adversary can access the oracle by issuing some specified queries (defined s below). An oracle Πi,j denotes the s-th instance of party i involved with a partner s party j in a session (note that an oracle Πi,j can be uniquely identified by i s and s). The oracle Πi,[j] executes the prescribed protocol Π and produces the s s s s output as Π(1k , i, [j], Si , Pi , [Pj ], convi,[j] , ri,[j] , x)= (m, δi,[j] , σi,j , [j]) where x is the input message; m is the outgoing message; Si and Pi are the private/public s key pair of party i; δi,[j] is the decision of the oracle (accept/reject the session or s no decision yet); σi,j is the generated session key and Pj is the public key of the intended partner j (see [7, 8] for more details). After the response is generated, s s the conversation transcript convi,[j] is updated as convi,[j] .x.m (where “a.b” denotes the result of the concatenation of two strings, a and b).
206
Z. Cheng et al.
When the identity privacy property is considered, an oracle may not know its partner identity before some stage of the protocol. Hence here the partner’s identifer and its public key are presented as an optional input (denoted by [z]) to the protocol’s algorithm Π. If an oracle does not know its partner’s identifier, it cannot use this information when generating the response, but at the end of the protocol the oracle should be able to output the intended partner’s identifier, if it accepts the session. There is an obstacle in the BR model to simulate the situation that an adversary only passively eavesdrops the conversation between two parties when the protocol has identity privacy, because in the BR model, the adversary supposes to fully control the network and schedule the messages among the parties. Without knowing the identity of oracles, the adversary cannot dispatch the messages. In [10], Canetti et al. introduced an extra identifier “destination address” to simulate the “post-specified peer setting” which is a related notion to identity privacy. In the model of [10], a session is activated by the adversary using (i, t, d) where i is the party identifier, t is the session identifier, and d is the destination address. However, although using destination address d can simulate the situation that the party sends out a message to an unknown party, such activation still allows the adversary to know the source identifier of the message. Instead of introducing further complexity into the model, we consider identity privacy only when simulating the behavior of an honest party (who strictly follows the protocol specification and is modelled as an oracle) and allow the adversary to know the (source and possibly destination) identifiers of each message generated by these honest parties (we can think that in the attack the honest parties reveal to the adversary the hidden identifiers in messages). While, the adversary is not required to know the identifiers in a message faked by itself. Hence the adversary’s ability is not restricted, but the model is only used to test the common security attributes, such as mutual authentication and session key security. Identity privacy has to be scrutinized separately. The security of a protocol is tested by a game with two phases. In the first phase, an adversary E is allowed to issue the following queries in any order. s s , x). Oracle Πi,j executes 1. Send a message with knowing partner: Send(Πi,j k s s s s Π(1 , i, j, Si , Pi , Pj , convi,j , ri,j , x) and responds with m and δi,j . If Πi,j does not exist, an oracle shall be generated as an initiator if x is empty λ, otherwise as a responder. This is a standard query formalized in [7, 8]. s s 2. Send a message without knowing partner: Send(Πi,∗ , x). Oracle Πi,∗ who k s does not know its partner so far, follows the protocol Π(1 , i, Si , Pi , convi,∗ , s ri,∗ , x) to generate response. If the oracle recovers a partner identifier j s s through some algorithm F : j = F (1k , i, Si , Pi , convi,∗ , ri,∗ , x), it replaces the unknown partner identifier ∗ with j and retrieves j’s public key Pj . This is a new query in the model, but a similar formulation has been used in [10]. s 3. Reveal a session’s agreed session key: Reveal(Πi,∗ ). If the oracle has not accepted, it returns ⊥; otherwise, it must have known its partner j, and then
Identity-Based Key Agreement with Unilateral Identity Privacy
207
s s Πi,j reveals the session’s private output σi,j . Here, the oracle is not required to disclose the partner’s identity even if it has accepted the session (we note that the adversary may not know the oracle’s partner). 4. Corrupt a party: Corrupt(i). The party i responds with the private key Si .
Once the adversary decides that the first phase is over, it starts the second s s phase by choosing a fresh oracle Πi,∗ and issuing a T est(Πi,∗ ) query, where the s s fresh oracle Πi,∗ and T est(Πi,∗ ) query are defined as follows. s s Definition 4 (fresh oracle). An oracle Πi,∗ is fresh if (1) Πi,∗ has accepted s (hence it knows the partner j); (2) Πi,j is unopened (not being issued the Reveal query); (3) j is not corrupted (not being issued the Corrupt query); (4) there is t s no opened oracle Πj,i , which has had a matching conversation to Πi,j .
It should be noted that this concept of fresh oracle is particularly defined to address the key-compromise impersonation resilience property [12] since it implies that the user i could have been issued a Corrupt query. s s 5. T est(Πi,∗ ). Oracle Πi,∗ which is fresh, so knows its partner j, as a challenger, s randomly chooses b ∈ {0, 1} and responds with σi,j , if b = 0; or a random s sample generated using the distribution of the session secret σi,j , if b = 1.
If the adversary guesses the correct b, we say that it wins. The adversary’s advantage is defined as AdvantageE (k) = max{0, Pr[E wins] − 12 }. We use the session ID, which can be the concatenation of the messages in s a session (see [6]), to define matching conversations, i.e., two oracles Πi,j and t Πj,i have the matching conversations if they derive the same session ID from their own conversation transcripts. A secure authenticated key (AK) agreement protocol is defined as follows. Definition 5. [8] Protocol Π is a secure AK if: 1. In the presence of the benign adversary, which faithfully conveys messages, s t on Πi,j and Πj,i , both oracles always accept holding the same session key σ, and this key is distributed uniformly at random on {0,1}k ; and if for every adversary E: s t 2. If two oracles Πi,j and Πj,i have accepted1 with matching conversations and both i and j are uncorrupted, then both hold the same session key σ; 3. AdvantageE (k) is negligible. 1
In [8] it is required that two oracles with matching conversation should both accept. While in a protocol with identity privacy, a party may know its partner only when it has accepted the session. We note that only when the partner is determined, a meaningful matching conversation can be defined. In [10], an unfinished oracle is assumed to have a matching conversation to any other oracle.
208
Z. Cheng et al.
As demonstrated in [8, 12] that if a protocol is secure regarding the above formulation, it achieves the session key authentication and the general security properties: known session key security, key-compromise impersonation resilience and unknown key-share resilience. As in principle, there is no public-key based Diffie-Hellman style key agreement without signature that can achieve PFS, in this paper we adopt a weaker definition of PFS. Definition 6. An AK protocol is said to be forward secure if the adversary wins the game with negligible advantage when it chooses as the challenger (i.e., s in place of the fresh oracle) an unopened oracle Πi,j which has a matching cont versation to an unopened oracle Πj,i and both oracles accepted. If both i and j can be corrupted then the protocol achieves perfect forward secrecy. Apart from the requirements in Definition 5, an AKC additionally requires that the following No-Matching event can only happen with a negligible probability. Definition 7. N o-matching E (k) is the event that there exist i, j, s such that an s t oracle Πi,j accepted and there is no accepted oracle Πj,i which has engaged in a s matching conversation to Πi,j and party j is uncorrupted.
4
A Key Agreement Protocol with Identity Privacy
In this section we propose an efficient identity-based two-party key agreement protocol with the client identity privacy for use in the client-server environment, and discuss its security properties. It should be noted that it can also be used in other environments with the same security requirements. 4.1
Description of the Scheme
In the system there is a Key Generation Center (KGC) which with the given security parameter k generates the system parameters as follows: 1. Generate two cyclic groups G1 and G2 of prime order q and a bilinear pairing map eˆ : G1 × G1 → G2 . Pick a random generator P ∈ G∗1 . 2. Pick a random s ∈ Z∗q as the master key and compute Ppub = sP . 3. Pick six cryptographic hash functions H1 : {0, 1}∗ → G1 , H2 : G1 ×G1 → Z∗q , H3 : G2 → {0, 1}n , H4 : G2 → {0, 1}l , H5 : {0, 1}∗ × {0, 1}∗ × G1 × G1 × G2 → {0, 1}w , and H6 : G2 → {0, 1}w for some integers n, w, l > 0, and a passively-secure symmetric-key encryption E, specifically the “one-time pad” with pseudorandom bit stream scheme defined in Section 2.2. The KGC keeps the master key as a secret and publishes other parameters. For any user with an identity ID ∈ {0, 1}∗ , the KGC computes QID = H1 (ID), dID = sQID and passes dID as the private key to this party via some secure channel. We suppose that the client possesses the identity A and the server possesses the identity B. Without loss of generality, we assume that there is always an
Identity-Based Key Agreement with Unilateral Identity Privacy
209
association procedure (such as a TCP connection procedure or a physical connection establishment phase) between the client and the server before starting the key agreement protocol. Once the association has been established, A and B run a key agreement protocol as shown in Fig. 1, where the operations marked with [ ] are specified for the AKC version. The protocol includes the following five steps: 1. The server B randomly chooses rB ∈ Z∗q and sends (B, rB QB ) to the client, where QB = H1 (B). It should be noted that the server B does not know the identity of the client. 2. The client A responds as follows: 1) randomly choose rA ∈ Z∗q ; 2) compute h = H2 (rA QA , rB QB ) with QA = H1 (A); 3) compute the agreed secret K = eˆ(dA , rB QB + hQB )rA with its private key dA = sQA obtained from KGC; 4) generate an encryption key EK = H3 (K); 5) use E to encrypt message m = (A, rA ) with the secret key EK as {m}EK ; 6) send rA QA along with the ciphertext {m}EK to the server B. 3. The server B processes the incoming message as follows: 1) compute h = H2 (rA QA , rB QB ); 2) compute the agreed secret K = eˆ(rA QA , dB )rB +h with its private key dB = sH1 (B) obtained from the KGC; 3) generate a decryption key EK = H3 (K); 4) decrypt {m}EK with EK to recover (IDC , rC ); 5) check if the equation rC H1 (IDC ) = rA QA holds. If the equation does not hold, B aborts the protocol. 4. On completion of the AK protocol, both parties compute the session key SK = H5 (A, B, rA QA , rB QB , K). 5. To provide key confirmation, we extend the protocol with the standard MAC methodology by using a secure MAC scheme defined in Definition 3. In the (Client)A
B(Server) B,r Q
←−−−−−B−−B−−−− rB ∈R Z∗q rA ∈R Z∗q ; rA QA , {m}EK , [MAC1 ]
h = H2 (rA QA , rB QB ); − −−−−−−−−−− → K = eˆ(dA , rB QB + hQB )rA ; EK = H3 (K); m = A, rA ; [M K = H4 (K); MAC1 = MACM K (A, B, rA QA , rB QB )]
h = H2 (rA QA , rB QB ); K = eˆ(rA QA , dB )rB +h ; EK = H3 (K); m = IDC , rC ; [M K = H4 (K); check MAC1 ;] ?
rC H1 (IDC ) = rA QA [MAC2 ]
[check MAC2 ] ← −−−−−−−−−− − [MAC2 = MACM K (B, A, rB QB , rA QA )] SK = H5 (A, B, rA QA , rB QB , K) [SK = H6 (K)]
SK = H5 (A, B, rA QA , rB QB , K) [SK = H6 (K)]
Fig. 1. The Protocol
210
Z. Cheng et al.
second flow (Step 2), the client A computes a MAC key M K = H4 (K) and generates a message tag as MACM K (A, B, rA QA , rB QB ). The tag is sent to the server along with the other components in the AK version. Once the server B receives the message, it proceeds as in Step 3 of AK, but veri? fies the MAC tag before checking the equation rC H1 (IDC ) = rA QA (this would slightly help the server against the deny-of-service attack). If both checks succeed, the server B sends the third message including a message tag MACM K (B, A, rB QB , rA QA ) to the client A. The client A then has to verify the validity of the third message (the tag MAC from the server). If the check succeeds, the session key is generated as SK = H6 (K). In this work, we assume that at least one input of the used pairing will be checked in the specified group in general. Such check is important because the behavior of a pairing is not defined when an input is not from the specified group, and the output could be with much smaller order. Only one input (the second input) needs to be checked in the proposed protocol, because the other is either guaranteed to be in the specified group or checked in the protocol explicitly (rA QA is checked in the protocol mandatorily). While we can simply exchange the inputs of the pairing, if the check on the first input is available. We note that such check may be trivial for some pairing instances, such as the Tate pairing which allows the second input to be any point on the curve. 4.2
Security Analysis
We firstly investigate the security of AK version of the proposed protocol. s As defined in Definition 4, for a chosen fresh oracle Πi,j in the game, party i can be corrupted (this is particularly used to address the known-key impersonation resilience property). Because the protocol differentiates the role of parties (some are clients and others are servers. This can be done by requiring that the client and the server identifers are in two separate sets, say (IDC , IDS )), we consider the security of the AK protocol in the following two cases: (1) Server authentication. We consider the known-(client)-key attack that the adversary tries to impersonate a server to a client whose private key is known to s the adversary, i.e., the chosen fresh oracle Πi,j is with i ∈ IDC and j ∈ IDS . Theorem 1. The protocol is secure against the known-client-key attack, provided the BDH assumption is sound and the hash functions are modelled as random oracles. Due to the space limitation, the proof is omitted. Please refer to the full version of the paper [9] for details. (2) Client authentication. Now we consider the known-(server)-key attack that the adversary tries to impersonate a client to a server whose private key is known s to the adversary, i.e., the chosen fresh oracle Πi,j is with i ∈ IDS and j ∈ IDC . Theorem 2. The protocol is secure against the known-server-key attack, provided the GBDH assumption is sound and the hash functions are modelled as random oracles.
Identity-Based Key Agreement with Unilateral Identity Privacy
211
The proof is presented in the full version of the paper [9]. Theorem 1, 2 show that the AK protocol possesses the following security property: session key authentication, known session key security, key-compromise impersonation resilience and unknown key-share resilience. Based on these results and the fact that the BDH assumption implies the corresponding GBDH assumption, it is straightforward that the following theorem holds. Theorem 3. The protocol is a secure AK, provided the GBDH assumption is sound and the hash functions are modelled as random oracles. Now let’s look at the the forward secrecy (note that a protocol satisfies Definition 5 does not necessary achieve the forward secrecy). The AK protocol achieves PFS. Theorem 4. The AK protocol has PFS regarding Definition 6, provided that the GBDH assumption is sound and the hash functions are modelled as random oracles. The proof is sketched in the full version of the paper [9]. It is clear that, if the adversary knows the master key s then it can compute K, so that the scheme does not achieve the master-key forward secrecy. However, this property may not be a defect since it provides a possible way for legal interception which is also important in the mobile communications. If the masterkey forward secrecy is necessary in some environments, we can strength the protocol with reasonable cost to achieve this property (see the full version [9] for details). User identity privacy is achieved for the following reasons. (1) We note that rA is randomly sampled from Z∗q , hence rA QA is evenly distributed in message space G∗1 which could be sampled by any other client with the same distribution. So, rA QA for client A is indistinguishable from rX QX for any other client X. (2) The client’s identity is hidden by the symmetric-key encryption applied in the second flow. The used key is the output from a hash function on the agreed secret so that it is evenly distributed in the key space of the used encryption if we assume the hash function can be modeled as a random oracle. Hence, the ciphertext of one plaintext should be indistinguishable from those of other plaintexts because the used E possesses the indistinguishability security property. The AKC version of the protocol employs the standard mechanism (MAC) to provide key confirmation. The security can be proved using the similar methods as in Theorem 1, 2. 4.3
Evaluation of Security and Complexity
Here we summarise in Table 1 the security properties and computation complexity of the proposed protocol and some other schemes in the literature (we only count the heavy operations: Pairing, Scalar and Exponentiation as presented). From the table, we can find that the proposed protocols have strong security with good computation efficiency. Moreover, the proposed protocol can work in both modes with and without user identity privacy.
212
Z. Cheng et al. Table 1. Computation Complexity and Security Property
Proposal Smart Protocol[23] CK Protocol[11] Wang Protocol[25]
5
KnSK
FwS UknKSh KCI
IP Comp Complexity 1P+2S+1E χ 2P+3S χ 1P+2S χ 1P+3S
Conclusion
User identity privacy is an important security property for protocols used in several environments such as mobile networks. In this paper we investigate the user identity privacy in the protocols employing identity-based primitives from pairings. By considering both security strength and computation efficiency, we present an identity-based protocols using pairing which preserves both user identity privacy and high efficiency.
Acknowledgement We would like to thank Steven Galbraith for helpful discussions on pairings and Kim-Kwang Raymond Choo for comments on the draft of the paper.
References 1. M. Abadi. Private authentication. In Proceedings of Privacy Enhancing Technologies 2002, LNCS 2482, pp. 27-40, 2002. 2. M. Bellare, R. Canetti and H. Krawczyk. Keying hash functions for message authentication. In Proceedings of Advances in Cryptology - Crypto 96, LNCS 1109, pp. 1-15, 1996. 3. D. Boneh and M. Franklin. Identity based encryption from the Weil pairing. In Proceedings of Advances in Cryptology - Crypto 2001, LNCS 2139, pp. 213-229, 2001. 4. C. Boyd and A. Mathuria. Key establishment protocols for secure mobile communications: a selective survey. In Proceedings of Australasian Conference on Information Security and Privacy’98, LNCS 1438, pp. 344-355, 1998. 5. C. Boyd, W. Mao and K. Paterson. Key agreement using statically keyed authenticators. In Proceedings of Applied Cryptography and Network Security – ACNS’2004, LNCS 3089, pp. 248-262, 2004. 6. M. Bellare, D. Pointcheval and P. Rogaway. Authenticated key exchange secure against dictionary attacks. In Proceedings of Proceedings of Advances in Cryptology - Eurocrypt 2000, LNCS 1807, pp. 139-155, 2000. 7. M. Bellare and P. Rogaway. Entity authentication and key distribution. In Proceedings of Advances in Cryptology - Crypto ’93, LNCS 773, pp. 232-249, 1993. 8. S. Blake-Wilson, D. Johnson and A. Menezes. Key agreement protocols and their security analysis. In Proceedings of the Sixth IMA International Conference on Cryptography and Coding, LNCS 1355, pp. 30-45, 1997.
Identity-Based Key Agreement with Unilateral Identity Privacy
213
9. Z. Cheng, L. Chen, R. Comley and Q. Tang. Identity-based key agreement with unilateral identity privacy using pairings. The full version, available on Cryptology ePrint Archive, Report 2005/339. 10. R. Canetti and H. Krawczyk. Security analysis of IKE’s signature-based keyexchange protocol. In Proceedings of Advances in Cryptology - Crypto 2002, LNCS 2442, pp. 143-161, 2002. 11. L. Chen and C. Kudla. Identity based authenticated key agreement from pairings. In Proceedings of the 16th IEEE Computer Security Foundations Workshop, pp. 219-233, June 2003. 12. Z. Cheng, M. Nistazakis, R. Comley and L. Vasiu. On the indistinguishability-based security model of key agreement protocols-simple cases. In Proceedings of ACNS 2004 (technical track). The full paper available on Cryptology ePrint Archive, Report 2005/129. 13. R. Cramer and V. Shoup. Design and analysis of practical public-key encryption schemes secure against adaptive chosen ciphertext attack. SIAM Journal on Computing, 33, pp. 16-226, 2003. 14. W. Diffie and M. Hellman. New directions in cryptography. IEEE Transactions on Information Theory, IT-22 (6), pp. 644-654, 1976. 15. D. Harkins and D. Carrel. The Internet key exchange protocol (IKE). IETF RFC 2409, Nov. 1998. 16. G. Horn, K. Martin and C. Mitchell. Authentication protocols for mobile network environment value-added serivices. IEEE Transactions on Vehicular Technology, 51(2):383-392, 2002. 17. ISO/IEC 11770-3. Information technology - Security techniques - Key management - Part 3: Mechanisms using asymmetric techniques. International Organization for Stadndardization, Geneva, Switzerland, 1999 (first verstion). 18. N. McCullagh and P.S.L.M. Barreto. A new two-party identity-based authenticated key agreement. In Proceedings of CT-RSA 2005, LNCS 3376, pp. 262-274, 2005. 19. A. Menezes, P. van Oorschot and S. Vanstone. Handbook of applied cryptography. CRC Press, 1996. 20. J. Katz and M. Yung. Characterization of security notions for probabilistic privatekey encryption. To appear in Journal of Cryptology. 21. M. Scott. Authenticated ID-based key exchange and remote log-in with insecure token and PIN number. Cryptology ePrint Archive, Report 2002/164. 22. A. Shamir. Identity-based cryptosystems and signature schemes. In Proceedings of Advances in Cryptology-Crypto ’84, LNCS 196, pp. 47-53, 1984. 23. N.P. Smart. An identity based authenticated key agreement protocol based on the Weil pairing. Electronics Letters 38, pp.630-632, 2002. 24. R. Sakai, K. Ohgishi and M. Kasahara. Cryptosystems based on pairing. In Proceedings of 2000 Symposium on Cryptography and Information Security, Okinawa, Japan, 2000. 25. Y. Wang. Efficient identity-based and authenticated key agreement protocol. Cryptology ePrint Archive, Report 2005/108.
Short (Identity-Based) Strong Designated Verifier Signature Schemes Xinyi Huang1 , Willy Susilo1 , Yi Mu1 , and Futai Zhang2, 1
School of Information Technology and Computer Science, University of Wollongong, Australia 2 School of Mathematics and Computer Science, Nanjing Normal University, P.R. China [email protected], [email protected], [email protected], [email protected]
Abstract. The notion of strong designated verifier signature was put forth by Jakobsson, Sako and Impagliazzo in 1996, but the formal definition was defined recently by Saeednia, Kremer and Markowitch in 2003 and revisited by Laguillaumie and Vergnaud in 2004. In this paper, we firstly propose the notion of short strong designated verifier signature scheme, and extend it to the short identity-based strong designated verifier scheme. Then, we propose the first construction of short strong designated verifier signature scheme. We also extend our scheme to construct a short identity-based strong designated verifier signature scheme. The size of the signature of our schemes is the shortest compared to any existing schemes reported in the literature. We provide formal security proofs for our schemes based on the random oracle model. Finally, we also discuss an extension of our scheme to construct a short strong designated verifier signature without random oracle. Keywords: short signature, strong designated verifier signature scheme, identity based, designated verifier signature, random oracle model.
1
Introduction
The concept of undeniable signature was proposed by Chaum and van Antwerpen [3] to enable signers to have complete control over their signatures. In this scheme, the verification of the signer’s signature requires the participation of the signer in an interactive protocol. The signer can reject invalid signatures, but she must not be able to deny valid signatures. However, these types of signature schemes do not always achieve their goal, because the signer does not know to whom he is proving the validity of a signature [4, 5].
This work is supported by ARC Discovery Grant DP0557493. Partially supported by Ministry of Education of Jiangsu Province Grant 03KJA520066 and Xidian University’s Open Grant of Key Laboratory on Computer Network and Information Security of Ministry of Education of China.
K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 214–225, 2006. c Springer-Verlag Berlin Heidelberg 2006
Short (Identity-Based) Strong Designated Verifier Signature Schemes
215
To overcome this problem, Jakobsson, Sako and Impagliazzo proposed designated verifier signature (DVS) schemes in [6]. This signature scheme is the first non-interactive undeniable signature scheme that transforms Chaum’s scheme [2] into a non-interactive verification using a designated verifier proof. In a DVS scheme, the signature provides authentication of a message without providing a non-repudiation property of traditional signatures. A designated verifier scheme can be used to convince a single third party, i.e. the designated verifier, and only the designated verifier who can be convinced about its validity or invalidity of the signatures, due to the fact that the designated verifier can always construct a signature intended for himself that is indistinguishable from an original signature. There is no interaction with the presumed signer required in this type of signature schemes. In [6], Jakobsson et al. also briefly discussed a stronger notion called a strong designated verifier signature (SDVS) scheme. This notion was formally defined and strengthened by Saeednia et al. in [14] and strengthen by Laguillaumie and Vergnaud [7]. Following Saeednia et al.’s work, Susilo et al. proposed an identitybased (or ID-based, for short) SDVS scheme based on pairings in [17]. Recently a new property, Delegateability, was discussed in [11]. There are also some other works about the designated verifier signature [7, 8, 10, 15, 16]. Notations Throughout this paper, let log2 (n) denote the length of the binary representation of n. p|q means p divides q. The ring of integers modulo a number p is denoted by ZZp , and its multiplicative group, which contains only the integers relatively prime to p, by ZZ∗p . Our Contributions In this paper, we propose the first construction of short strong designated verifier signature scheme. Compared to the existing schemes [6, 14, 7], our scheme is very efficient in terms of signature generation and the signature length. We also extend our scheme to construct a short identity-based strong designated verifier signature scheme. In contrast to the previous construction in [17], our scheme produces a significantly shorter signature length. We also provide a variant of our scheme that produces signature length less than log2 (q). Finally, we show a modification of our scheme to construct an SDVS scheme without random oracle. Organization of the paper The rest of this paper is organized as follows. In the next section, we will provide some preliminaries and background required throughout the paper. In Section 3, we introduce the new notion of short strong designated verifier signature schemes and their identity-based variant. In Section 4, we provide our concrete short SDVS scheme, together with its security proof. In Section 5, we present our concrete short ID-based SDVS scheme and its security proof. We compare the performance of our schemes to other existing schemes in Section 6. We will also discuss variants of our scheme that produce shorter signature length and a scheme that is secure under the standard assumption. Finally, Section 7 concludes the paper.
216
2 2.1
X. Huang et al.
Preliminaries Basic Concepts on Bilinear Pairings
Let G1 , G2 be cyclic additive groups generated by P1 , P2 , respectively, whose orders are a prime q. Let GT be a cyclic multiplicative group with the same order q. We assume there is an isomorphism ψ : G2 → G1 such that ψ(P2 ) = P1 . Let eˆ : G1 × G2 → GT be a bilinear mapping with the following properties: 1. Bilinearity: eˆ(aP, bQ) = eˆ(P, Q)ab for all P ∈ G1 , Q ∈ G2 , a, b, ∈ ZZq . = 1GT . 2. Non-degeneracy: There exists P ∈ G1 , Q ∈ G2 such that eˆ(P, Q) 3. Computability: There exists an efficient algorithm to compute eˆ(P, Q) for all P ∈ G1 , Q ∈ G2 . For simplicity, hereafter, we set G1 = G2 and P1 = P2 . We note that our scheme = G2 . can be easily modified for a general case, when G1 Bilinear pairing instance generator is defined as a probabilistic polynomial time algorithm IG that takes as input a security parameter and returns a uniformly random tuple param = (q, G1 , GT , eˆ, P ) of bilinear parameters, including a prime number q of size greater than , a cyclic additive group G1 of order q, a multiplicative group GT of order q (q ≥ 2 ), a bilinear map eˆ : G1 × G1 → GT and a generator P of G1 . For a group G of prime order, we denote the set G∗ = G \ {O} where O is the identity element of the group. Complexity Assumptions The related complexity assumptions are as follows. 1. Bilinear Diffie-Hellman (BDH) Problem. Given a randomly chosen P ∈ G1 , as well as aP, bP and cP (for unknown randomly chosen a, b, c ∈ ZZ∗q ), compute eˆ(P, P )abc . For the BDH problem to be hard, G1 and GM must be chosen so that there is no known algorithm for efficiently solving the Diffie-Hellman problem in either G1 or GM . 2. Decisional Bilinear Diffie-Hellman (DBDH) Problem. Given a randomly chosen P ∈ G1 , as well as aP, bP, cP (for unknown randomly chosen a, b, c ∈ ZZ∗q ) and h ∈ GM , decide whether h = eˆ(P, P )abc . 3. Gap Bilinear Diffie-Hellman (Gap BDH) Problem. Given a randomly chosen P ∈ G1 , as well as aP, bP and cP (for unknown randomly chosen a, b, c ∈ ZZ∗q ), compute eˆ(P, P )abc with the help of the DBDH oracle. 4. Computational Diffie-Hellman (CDH) Problem. Given a randomly chosen P ∈ G1 , as well as aP, bP , for unknown a, b ∈ ZZ∗q , compute abP . 5. Decisional Diffie-Hellman (DDH) Problem. Given a randomly chosen ?
P ∈ G1 , aP, bP and h ∈ G1 , decide whether h = abP . It is known that DDH in G1 is easy and can be solved in polynomial time. 6. Gap Diffie-Hellman (GDH) Problem. A prime order group G1 is a GDH group if there exists an efficient polynomialtime algorithm that solves the DDH problem in G1 and there is no probabilistic polynomial-time algorithm that solves the CDH problem with non-negligible probability. The Diffie-Hellman problem on such a group is
Short (Identity-Based) Strong Designated Verifier Signature Schemes
217
called Gap Diffie-Hellman Problem, that states given a randomly chosen generator g, and g a , g b for unknown a, b ∈ ZZ∗q , compute g ab with the help of the DDH oracle.
3
Short (ID-Based) Strong Designated Verifier Signatures Schemes
In this section, we present our new notion of short SDVS schemes (SSDVS) (we note that it is arguably that shortness of signature schemes is not a notion rather than a property of signature schemes). We also extend our notion to its ID-based variant to create the short ID-based SDVS scheme (SIDSDVS). 3.1
Short Strong Designated Verifier Signatures
There exist two participants in the system, namely Alice and Bob, who act as the sender and the receiver (or the designated verifier), respectively. We assume that both Alice and Bob have setup their public key setting, and we denote SKi , PKi as a pair of secret key and public key for user i, where i ∈ {A, B}. A short SDVS scheme(SSDVS) consists of three essential algorithms as follows. – Signature Generation: A deterministic algorithm that uses the signer’s secret key, the designated verifier’s public key and a message m to generate a signature σ. That is, σ ← Sign(SKA , PKB , m), where SKA , PKB denote the signer’s secret key and the verifier’s public key, respectively. – Signature Verification: A deterministic algorithm that accepts a message m, a signature σ, the signer’s public key PKA and a secret key SKB and returns True if the signature is correct, or ⊥ otherwise. That is, True, ⊥ ← Verify(PKA , SKB , m, σ). – Transcript Simulation: An algorithm that is run by the verifier to produce identically distributed transcripts that are indistinguishable from the original protocol. In addition to the above main algorithms, we also require the following. – Correctness. All signatures that are generated correctly by Sign algorithm, will always pass the verification algorithm. That is, P r (T rue ← Verify(PKA , SKB , m, Sign(SKA , PKB , m))) = 1. – Transcript Simulation Generation. We require that the verifier, who holds the secret key SKB can always produce identically distributed transcripts that are indistinguishable from the original protocol via the Transcript Simulation algorithm. Formal Security Notion Unforgeability of SSDVS We provide a formal definition of existential forgeability of a short SDVS scheme (SSDVS) under a chosen message attack(EF-CMA). It is defined using the following games between an adversary A and a challenger C.
218
X. Huang et al.
– Setup: Input the security parameter , C runs the algorithm to obtain the secret key and public key pair (SKA , PKA ), (SKB , PKB ) to represent the signer, A, and the receiver, B, respectively. – Sign Queries: A can request a signature on a message m for the signer A, and the designated verifier B. In respond, C outputs a signature σ for a message m. – Verify Queries: A can request a signature verification on a pair (m, σ) for signer A, and the designated verifier B. In respond, C outputs True if it is correct, or ⊥ otherwise. – Output: Finally, A outputs a new pair (m∗ , σ ∗ ), where m∗ has never been queried during the Sign Queries and σ ∗ is a valid signature. The success probability of an adversary to win the game is defined by −CMA SuccEF SSDV S,A ()
Definition 1. We say that a short SDVS scheme is EF-CMA secure under a chosen message attack if the probability of success of any polynomially bounded −CMA adversary in the above game is negligible. In other words, SuccEF SSDV S,A () ≤ . Privacy of Signer’s Identity We give a formal definition of the privacy of signer’s identity (or the strongness property of the DVS scheme) under a chosen message attack (PSI-CMA) defined using the following games between an adversary A and a challenger C. – Setup: Input a security parameter , C runs the algorithm to obtain the secret key and public key pair (SKA0 , PKA0 ), (SKA1 , PKA1 ), (SKB , PKB ) to represent the two signers, A0 , A1 , and the receiver, B, respectively. – Sign Queries: A can request a signature on a message m for the signer Ar (r ∈ {0, 1}), and the designated verifier B. In respond, C outputs a signature σ for a message m. – Verify Queries: A can request a signature verification on a pair (m, σ) for signer Ar , r ∈ {0, 1}, and the designated verifier B. In respond, C outputs True if it is correct, or ⊥ otherwise. – Output: Finally, A outputs a target message m∗ ∈ {0, 1}∗ and provides it to C. C performs a coin tossing to select a random r ∈ {0, 1} and computes σ ∗ ← Sign(SKr , PKB , m) and returns it to A. A must perform an educated guess to obtain the correct value of r. During this time, A can request Sign = σ ∗ . After all the queries, and Verify queries to C, for any m = m∗ and σ A outputs a bit r . The Advantage of an PSI-CMA adversary A to win the game is defined by P SI−CM A AdvSSDV S,A () = |2P r[r = r] − 1|. Definition 2. We say that a short SDVS scheme is a strong DVS scheme under a chosen message attack if the advantage of any polynomially bounded adversary PSI −CMA in the above game is negligible. In other words, AdvSSDV S,A () ≤ .
Short (Identity-Based) Strong Designated Verifier Signature Schemes
3.2
219
Short ID-Based Strong Designated Verifier Schemes
The notion of short ID-based SDVS scheme is similar to the definition of the short SDVS scheme defined in section 3.1. There exist two participants in the system, namely Alice and Bob, who act as the sender and the receiver (or the designated verifier), respectively. All participants have their identity, IDi , i ∈ {A, B}, published. There exists a Private Key Generator (PKG) in the system that will provide a secret key to a participant during an Extract algorithm. Each participant’s secret key is denoted by SKIDi , which is derived from the Extract algorithm. Without losing generality, we assume that A is the signer and B is the designated verifier. A short ID-based SDVS scheme(SIDSDVS) consists of the following algorithms. – Signature Generation. A deterministic algorithm that uses the signer’s secret key, the ID of the designated verifier and a message m to generate a signature σ. That is, σ ← IDSign(IDB , SKIDA , m). – Signature Verification. A deterministic algorithm that receives a message m, a signature σ, a verifier’s secret key SKIDB and a sender’s identity IDA , that returns True if the signature is correct, or ⊥ otherwise. That is, {T rue, ⊥} ← IDVerify(IDA , SKIDB , m, σ). – Transcript Simulation. An algorithm that is run by the verifier to produce identically distributed transcripts that are indistinguishable from the original protocol. In addition to the above main algorithms, we also require the following. – Correctness. All signatures that are generated correctly by IDSign algorithm, will always pass the verification algorithm. That is, P r (T rue ← IDVerify(IDA , SKIDB , m, IDSign(IDB , SKIDA , m))) = 1. – Transcript Simulation Generation. We require that the verifier, who holds the secret key SKIDB can always produce identically distributed transcripts that are indistinguishable from the original protocol via the Transcript Simulation algorithm. Formal Security Notion Unforgeability of SIDSDVS We provide a formal definition of existential unforgeability of a short ID-based SDVS scheme (SIDSDVS) under a chosen message attack. It is defined using the following game between an adversary A and a challenger C. – Setup: C runs this algorithm to generate system’s parameter. – Key Extraction Queries: A can request the secret key of the user with the identity IDi . C will return SKIDi as the answer. – IDSign Queries: A can request a signature on a message m for a signer IDi , and the designated verifier IDj . In respond, C outputs a signature σ for a message m.
220
X. Huang et al.
– IDVerify Queries: A can request a signature verification on a pair (m, σ) for signer IDi , and the designated verifier IDj . In respond, C outputs True if it is correct, or ⊥ otherwise. – Output: Finally, A outputs a new pair (m∗ , σ ∗ ) with the signer IDi∗ and the designated verifier IDj ∗ such that: 1. A didn’t submit IDi∗ or IDj ∗ during the Key Extraction Queries. 2. m∗ has never been queried during the IDSign Queries with the signer IDi∗ and the designated verifier IDj ∗ 3. σ ∗ is a valid signature of the message m∗ with the signer IDi∗ and the designated verifier IDj ∗ . The success probability of an adversary to win the game is defined by −CM A SuccEF SIDSDV S,A ()
Definition 3. We say that a short ID-based SDVS scheme(SIDSDVS) is existentially unforgeable under a chosen message attack if the probability of success of any polynomially bounded adversary in the above game is negligible. In other −CMA words, SuccEF SIDSDV S,A () ≤ . Privacy of Signer’s Identity We give a formal definition of the privacy of signer’s identity (or the strongness property of the Identity-based DVS scheme) under a chosen message attack (PSI-CMA) defined using the following games between an adversary A and a challenger C. – Setup: C runs this algorithm to generate system’s parameter. – Key Extraction Queries: A can request the secret key of the user with the identity IDi . C will return SKIDi as the answer. – IDSign Queries: A can request a signature on a message m for a signer IDi , and the designated verifier IDj . In respond, C outputs a signature σ for a message m. – IDVerify Queries: A can request a signature verification on a pair (m, σ) for signer IDi , and the designated verifier IDj . In respond, C outputs True if it is correct, or ⊥ otherwise. – Output: Finally, A outputs a target message m∗ ∈ {0, 1}∗ with the possible signer IDA0 , IDA1 and designated verifier IDB to C. The requirements are that 1. A didn’t submit IDA0 , IDA1 or IDB during the Key Extraction Queries. 2. m∗ has never been queried during the IDSign Queries with the signer IDAr , r ∈ {0, 1} and the designated verifier IDB . C performs a coin tossing to select a random r and computes σ ∗ ← IDSign (IDB , SKIDAr , m∗ ) and returns it to A. A must perform an educated guess to the correct value of r. During this time, A can request IDSign and IDVerify queries to C with the requirements that 1. m∗ can’t be queried during the IDSign Queries with the signer IDAr , r ∈ {0, 1} and the designated verifier IDB .
Short (Identity-Based) Strong Designated Verifier Signature Schemes
221
2. (m∗ , σ ∗ ) can’t be queried during the IDVerify Queries with the signer IDAr , r ∈ {0, 1} and the designated verifier IDB . The Advantage of an PSI-CMA adversary A to win the game in SIDSDVS is P SI−CM A defined by AdvSIDSDV S,A () = |2P r[r = r] − 1|. Definition 4. We say that a short ID-based SDVS scheme(SIDSDVS) is a strong IDDVS scheme under a chosen message attack if the advantage of any polynomially bounded adversary in the above game is negligible. In other words, PSI −CMA AdvSIDSDV S,A () ≤ .
4
A Concrete Short SDVS Scheme
In this section, we present our concrete construction of a short SDVS scheme. The description of our scheme is as follows. – Setup: Let p be a large prime and q a prime divisor of p − 1. Let g is the element in ZZ∗p with the order q. Let p, q ≥ 2 , where is the security parameter. Let H : {0, 1}∗ → ZZ∗q be a cryptographic hash function. The signer, Alice, randomly selects her secret key xA ∈ ZZ∗q and computes her public key as yA = g xA (mod p). Here, PKA := yA . The designated verifier, Bob, also selects his secret key xB ∈ ZZ∗q and sets his public key as yB = g xB (mod p). Here PKB := yB . Let SKA := xA and SKB := xB . xA – Sign: To sign a message m ∈ {0, 1}∗ for Bob, Alice computes k = yB (mod p) and the signature σ = H(m, k). – Verify: To verify the validity of a signature σ on a message m, Bob computes ? xB k = yA (mod p) and tests whether H(m, k) = σ holds with equality. If it holds, then output True.Otherwise, output ⊥. – Transcript Simulation: Bob can produce the signature σ ˆ intended for himself, by performing the following. xB (mod p). • Compute k = yA • Compute σ ˆ = H(m, k). Note that the signature is indistinguishable from the original signature created by Alice. xB xA ) = H(m, g ab ) = H(m, yB ). Correctness: σ = H(m, yA
4.1
Security Analysis
Theorem 1. Our short SDVS scheme is a designated verifier signature scheme. Theorem 2 (Unforgeability). Let A be an EF-CMA-adversary against our −CM A short SDVS scheme with success probability SuccEF SSDV S, A . In time t he can make qH queries to the H : {0, 1}∗ → ZZ∗q (q ≥ 2 , is the system’s security parameter), qS queries to the signing algorithm and qV to the verifying algorithm, then there exists an algorithm B who can use A to solve an instance of the GDH problem qV −CM A ≥ SuccEF with the probability: SuccGDH B SSDV S, A − 2 −qH −qS .
222
X. Huang et al.
Theorem 3 (Privacy of Signer’s Identity). Let A be an PSI-CMA-adversary P SI−CM A against our short SDVS scheme with advantage AdvSSDV S, A . In time t he can ∗ ∗ make qH queries to the H : {0, 1} → ZZq (q ≥ 2 , is the system’s security number), qS queries to the signing algorithm and qV to the verifying algorithm, then there exists an algorithm B who can use A to solve an instance of the GDH problem qV P SI−CM A ≥ 12 AdvSSDV with the probability: SuccGDH B S, A − 2 −qH −qS . Remark: For the proof of the above theorems, we refer the reader to the full version [9].
5
A Concrete Short ID-Based SDVS Scheme
In this section, we present our concrete construction of short ID-based SDVS scheme (SIDSDVS). The SIDSDVS scheme consists of the following algorithms. – Setup: PKG generates two groups (G1 , +) and (GT , ·) of prime order q (q ≥ 2 , is the system’s security number) and a mapping eˆ : G1 × G1 → GM , together with an arbitrary generator P ∈ G1 . He also selects his secret key (or master key) s ∈ Z∗q and set Ppub = sP . Finally, two cryptographically hash functions are selected, H0 : {0, 1}∗ → G1 and H1 : {0, 1}∗ → Z∗q . The system parameters and their descriptions are (G1 , GT , q, eˆ, P, Ppub , H0 , H1 ). Each user has his/her identity, IDi , published. In this scenario, Alice has published her identity, IDA , and Bob has published his identity, IDB . Let QID = H0 (ID) and the user’s secret key is computed as SID = sQID . – IDSign: To sign a message m ∈ {0, 1}∗ for Bob, Alice performs the following. • Compute k = eˆ(QIDB , SIDA ). • Compute σ = H1 (m, k). The signature on a message m is σ. – IDVerify: To verify the validity of a signature σ on a message m, Bob tests ? whether H1 (m, eˆ(QIDA , SIDB )) = σ holds with equality. If it does, then output True. Otherwise, output ⊥. – Transcript Simulation: Bob can produce the signature σ ˆ intended for himself for a message of his choice. This is done as follows: compute k = eˆ(QIDA , SIDB ) and compute σ = H1 (m, k). We note that the resulting signature is indistinguishable from the original one that was produced by Alice. Correctness. σ = H1 (m, eˆ(QIDB , SIDA )) = H1 (m, eˆ(QIDB , sQIDA )) = H1 (m, eˆ(SIDB , QIDA )) 5.1
Security Analysis
Using the same technique as we used in Section 4.1, we obtain the following theorems. Theorem 4. Our SIDSDVS is a designated verifier signature scheme.
Short (Identity-Based) Strong Designated Verifier Signature Schemes
223
Theorem 5 (Unforgeability). Let A be an EF-CMA-adversary against our −CM A short SIDSDVS scheme with success probability SuccEF SIDSDV S, A . In time t he can make qH queries to the H1 : {0, 1}∗ → ZZ∗q (q ≥ 2 , is the system’s security parameter), qS queries to the signing algorithm and qV to the verifying algorithm, then there exists B who can use A to solve an instance of the Gap BDH problem BDH qV −CM A ≥ SuccEF with probability: SuccGap SIDSDV S, A − 2 −qH −qS . B Theorem 6 (Privacy of Signer’s Identity). Let A be an PSI-CMA-adversary P SI−CM A against our SIDSDVS scheme with advantage AdvSIDSDV S, A . In time t he can ∗ ∗ make qH queries to the H1 : {0, 1} → ZZq (q ≥ 2 , is the system’s security number) , qS queries to the signing algorithm and qV to the verifying algorithm, then there exists B who can use A to solve an instance of the Gap BDH problem BDH qV P SI−CM A ≥ 12 AdvSIDSDV with probability: SuccGap S, A − 2 −qH −qS . B
6
Efficiency Comparison
In this section, we compare efficiency of the proposed schemes with the existing schemes. We will compare the efficiency of the schemes based on the length of the signature and the number of operations required. Firstly, we compare our scheme against the most efficient strong DVS scheme proposed in [14] and [7]. In this comparison, we set q = 160 for Saeednia et al.’s scheme [14], Laguillaumie and Vergnaud’s scheme [7] and our SSDVS scheme. Our signature length is the shortest (only 160 bits), which is shorter than Saeednia et al.’s(480 bits) and Laguillaumie and Vergnaud’s(271 bits). In terms of the number of operations required, our scheme only requires 2 exponentiations in ZZ∗q and 2 hash operations, and there is no pairing operation required. We also compare our scheme against the ID-based DVS scheme proposed in [17], which is an ID-based version of [14]. We assume that the bit length of the element in G1 is 1024 bits, and q = 160. Then the signature length in [17] is 1344 bits, however the signature length of ours is only 160 bits. Our scheme only requires 2 pairing operations and 2 hash operations, while the scheme in [17] requires 3 pairings, 1 addition, 2 multiplication in G1 , 3 exponentiation in G2 and 2 hash operations. 6.1
Further Improvement
More Efficient Schemes It is easy to see that the signature length of our scheme is based on the hash function employed, H1 . Hence, if we replace the hash function definition of H1 with the following H1 : {0, 1}∗ → ZZ∗2 where is the security parameter, then our signature length will be 2 . Assuming such a hash function exists and secure, then our signature scheme becomes more efficient. A Scheme without Random Oracle We shall point out that a variant of our scheme can be used to construct a short (ID-based) SDVS signature scheme without random oracle. Without losing
224
X. Huang et al.
generality, we illustrate the modification in a non-ID-based setting. The signature and verification algorithm are modified as follows. 1. Sign: To sign a message m ∈ {0, 1}∗ for Bob, Alice performs the following. xA (mod p). – Compute k = yB – Compute σ = Ek (m), where E denotes a symmetric key encryption, such as AES. The signature on a message m is σ. 2. Verify: To verify the validity of a signature σ on a message m, Bob computes ? xB and tests whether σ = Ek (m) holds with equality. If it holds, then k = yA output True. Otherwise, output ⊥. One can view this scheme as a standard MAC scheme that uses a shared key k. The security of this scheme is based on the CDH assumption and the security of the underlying symmetric key encryption scheme Ek .
7
Conclusion
In this paper, we presented the first short strong designated verifier signature scheme and its ID-based variant. Our schemes outperform the existing schemes known in the literature. Our construction has opened a new area of research, namely short strong designated verifier signature schemes, which have never been investigated before. Unlike the previous constructions, our schemes only produce 160 bits (if q = 160) signature which is very short compared to the existing schemes. We provided security proofs for our schemes based on the random oracle model. We also provided variants of our scheme which is more efficient and provably secure under the standard assumption. Acknowledgement. The authors would like to express their gratitude thanks to the anonymous referees of the 2nd Information Security Practice and Experience Conference (ISPEC 2006) for the suggestions to improve this paper.
References 1. M. Bellare, R. Canetti and H. Krawczyk. Keying Hash Functions for Message Authentication. Advanced in Cryptology - CRYPTO’96, Lecture Notes in Computer Science 1109, pages 1 – 15, Springer-Verlag, Berlin, 1996. 2. D. Chaum. Zero-Knowledge Undeniable Signatures. Advances in Cryptology Eurocrypt’90, Lecture Notes in Computer Science 473, pages 458–464, SpringerVerlag, Berlin, 1990. 3. D. Chaum and H. van Antwerpen. Undeniable Signatures. Advances in Cryptology - Crypto’89, Lecture Notes in Computer Science 435, pages 212–216, SpringerVerlag, Berlin, 1990. 4. Y. Desmedt and C. Goutier and S. Bengio. Special Uses and Abuses of the FiatShamir Passport Protocol. Advances in Cryptology - Crypto’87, Lecture Notes in Computer Science 293, pages 21–39, Springer-Verlag, Berlin, 1998.
Short (Identity-Based) Strong Designated Verifier Signature Schemes
225
5. Y. Desmedt and M. Yung. Weaknesses of Undeniable Signature Schemes. Advances in Cryptology - Eurocrypt ’91, Lecture Notes in Computer Science 547, pages 205 – 220, Springer-Verlag, Berlin, 1991. 6. M. Jakobsson, K. Sako, and R. Impagliazzo. Designated Verifier Proofs and Their Applications. Advances in Cryptology - Eurocrypt ’96, Lecture Notes in Computer Science 1070, pages 143–154, Springer-Verlag, Berlin, 1996. 7. F. Laguillaumie and D. Vergnaud. Designated Verifiers Signature: Anonymity and Efficient Construction from any Bilinear Map. Fourth Conference on Security in Communication Networks’04 (SCN 04), Lecture Notes in Computer Science 3352, pages 107–121, Springer-Verlag, Berlin, 2004. 8. F. Laguillaumie and D. Vergnaud. Multi-Designated Verifiers Signatures. Information and Communications Security (ICICS 2004), Lecture Notes in Computer Science 3269, pages 495–507, Springer-Verlag, Berlin, 2004. 9. X. Huang, Y. Mu, W. Susilo, and F. Zhang. Short (Identity-based) Strong Designated Verifier Signature Schemess. http://www.uow.edu.au/ ymu/pubs.html 10. X. Huang, Y. Mu, W. Susilo, and F. Zhang. Short Designated Verifier Proxy Signature from Pairings. The First International Workshop on Security in Ubiquitous Computing Systems (SecUbiq‘05), Lecture Notes in Computer Science 3823, pages 835 – 844, Springer Verlag, Berlin, 2005. 11. H. Lipmaa, G. Wang and F. Bao. Designated Verifier Signature Schemes: Attacks, New Security Notions and A New Construction. The 32nd International Colloquium on Automata, Languages and Programming, ICALP 2005, Lecture Notes in Computer Science 3580, pages 459–471, Springer-Verlag, Berlin, 2004. 12. W. Ogata, K. Kurosawa, and S.-H. Heng. The Security of the FDH Variant of Chaums Undeniable Signature Scheme. Public Key Cryptography - PKC 2005: 8th International Workshop on Theory and Practice in Public Key Cryptography, Lecture Notes in Computer Science 3385, pages 328–345, Springer-Verlag, Berlin, 2005. 13. R. L. Rivest, A. Shamir, Y. Tauman. How to Leak a Secret. Proceedings of Asiacrypt 2001, Lecture Notes in Computer Science 2248, pages 552–565, SpringerVerlag, Berlin, 2001. 14. S. Saeednia, S. Kramer, and O. Markovitch. An Efficient Strong Designated Verifier Signature Scheme. The 6th International Conference on Information Security and Cryptology (ICISC 2003), pages 40–54, Springer-Verlag, Berlin, 2003. 15. R. Steinfeld, L. Bull, H. Wang, and J. Pieprzyk. Universal Designated-Verifier Signatures. Proceedings of Asiacrypt 2003, Lecture Notes in Computer Science 2894, pages 523–543, Springer-Verlag, Berlin, 2003. 16. R. Steinfeld, H. Wang, and J. Pieprzyk. Efficient Extension of Standard Schnorr/RSA Signatures into Universal Designated-Verifier Signatures. Proceedings of PKC 2004, Lecture Notes in Computer Science 2947, pages 86–100, Springer-Verlag, Berlin, 2004. 17. W. Susilo, F. Zhang, and Y. Mu. Identity-based Strong Designated Verifier Signature Schemes. Proceedings of the Information Security and Privacy, 9th Australasian Conference, ACISP 2004, Lecture Notes in Computer Science 3108, pages 313–324, Springer-Verlag, Berlin, 2004.
Identity Based Key Insulated Signature Yuan Zhou, Zhenfu Cao , and Zhenchuan Chai Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai 200030, P.R. China [email protected]
Abstract. Exposure of secret keys can be the most devastating attack on a signature scheme since such that security is entirely lost. In a certificated based environment, the certification revocation list (CRL) can be used to minimize the damage caused by key exposure. In an identity based environment however, key exposure may means that the corresponding entity of the exposed key cannot use his identity information as his public key any more, and is in fact removed from the identity based system. In last few years the notion of and implementations of key insulated cryptosystems have been suggested for protecting the security of cryptosystems. In this work, we apply the method of key insulation to identity based signature, and solve the key exposure problem existing in the identity based schemes. We start by developing the formal model for identity based key insulated signature. We then use the fact to construct a identity based key insulated signature scheme. Keywords: identity based cryptosystem, key insulated cryptosystem, bilinear Diffie-Hellman.
1
Introduction
1.1
Background and Related Work
To guarantee the authenticity of a public key, the traditional (certificate based) public key signature system uses a certificate that is a digitally signed statement binding an entity and his public key. While the certificate based public key environment provides valuable security services such as confidentiality, integrity, and non-repudiation, the need for public key infrastructure supporting certificates is considered the main difficulty in the deployment and management of certificate based public key system [1]. In 1984, Shamir solved this problem with an identity based public key environment [2]. In identity based schemes, any public key can be determined by identity information, e.g. use’s name, e-mail address et al. The identity information of an entity is a natural link to the entity itself. Exposure of secret keys can be the most devastating attack on a signature system since such that all security guarantee are lost. In real world, this problem is probably the greatest threat to cryptography: it is easer to obtain a secret key
Corresponding Author.
K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 226–234, 2006. c Springer-Verlag Berlin Heidelberg 2006
Identity Based Key Insulated Signature
227
from a stolen device than to break the computational assumption on which the system is based. The threat is increasing with users carrying mobile devices which holds the corresponding secret key of for producing signature. In certificated based schemes, the certification revocation list (CRL) can be used to minimize the damage caused by key exposure. In identity based schemes however, key exposure may means that the corresponding entity of the exposed key cannot use his identity information as his public key any more, and may be removed from the identity based signature system. There are several methods to deal with this problem. The first method is distribution of the key across multiple servers via secret sharing [3]. There are numerous instantiations of this idea including threshold cryptography [4], and procative cryptography [5]. Distribution however is quite costly. While a large corporation or a certification authority might be able to distribute their keys, the average user, with just one machine or a mobile device, does not have this option.Forward security [6, 7] is another solution to the problem of key exposure. In a forward secure scheme, compromise of the current secret key does not enable an adversary to break the scheme for any prior time period. However, such a complete exposure the secret key necessarily compromises the security of all future system, and the public key cannot be used any more. In 2002, Dodis et al. proposed the method of key insulated cryptography [8]. In key insulated scheme, physical security (and hence secrecy of stored data) is guaranteed for a single base device that holds a master key SK0 corresponding to a fixed key P K. All decryption, however, is performed by an insecure device which key exposure is expected to be a problem. The lifetime of the protocol is divided into distinct periods 1, · · · , N . At the beginning of each period, the insure device refreshes its temporary secret key by interacting with the secure base device. In fact, the insecure device can get any period at any time. The exposure of up to t of the N periods, chosen adaptively by the adversary, still keeps any period that was not exposed secure. The optimal t achieved by some of the schemes is N −1 where the remaining period is still secure. When applying the method of key insulation into identity based signature, the key exposure of identity based scheme can be solved efficiently. 1.2
Our Contribution
We focus on the identity based key insulated signature scheme. In section 2, we will give a rigorous notion of security for identity based key insulated signature. We review bilinear maps with certain properties in Section 3. In section 4 and 5, we will present an identity based key insulated signature scheme from bilinear pairing and analysis its security. Finally, we draw our conclusion in section 6.
2
Definitions
In this section, we first review the notion of key insulated signature and its security [9], then we provide definition of identity based key insulated cryptosystem (IDKIC).
228
2.1
Y. Zhou, Z. Cao, and Z. Chai
Key Insulated Signature
Definition 2.1. A key insulated signature scheme is a 4-tuple of PPT algorithms (G, T KD, SIG, V) such that: – The key generation algorithm G takes as input a security parameter 1k , and possibly other parameters, to return a public key P K, and corresponding secret key SK. The algorithm is probabilistic. – The template key derivation algorithm T KD takes as input the public key P K, the secret key SK, and the index i of a time period, to return the template secret key T SKi . – The signature algorithm SIG takes as input P K, the template secret key T SKi , and a message M , to return a signature pair (i, σ). – The verification algorithm V takes as input P K, a message M , and a signature pair (i, σ), to return a bit b, where b = 1 means the signature is accepted. Definition 2.2. A key insulated signature scheme is is said to be strongly existentially unforgeable under chosen-message attacks if no polynomially bound adversary A has a non-negligible advantage against the Challenger in the following game: 1. The challenger takes a security parameter 1k and runs the G algorithm. It gives the adversary F the public key P K, it keeps the secret key SK to itself. 2. The adversary issues queries q1 , q2 , · · · , qm where query qj is: - Template secret key query (i). The challenger responds by running algorithm T KD to generate the template secret key T SKj,i . It sends T SKj,i to the adversary. - Signature query (M , i). The challenger responds by running algorithm SIG to generate the signature (i, σ) to the adversary. 3. The adversary F generates a tuple {M ∗ , (i∗ , σ ∗ )}. Here, the index i∗ of a time period did not appear in any template secret key query in the second step and the tuple (M ∗ , i∗ ) did not appear in any signature query in the second step. The adversary F wins the game if the signature verification algorithm outputs 1 when it is run on the tuple {M ∗ , (i∗ , σ ∗ )}. The adversary’s avvantage is defined to be the probability of producing a forgery. 2.2
Identity Based Key Insulated Signature (IDKIS)
Definition 2.3. A IDKIS scheme is a 5-tuple of PPT algorithms (S, EX T , T KD, SIG, V) such that: – The Setup algorithm S takes as input a security parameter 1k , and possibly other parameters, to return system parameters P M , and master-key M K. The algorithm is probabilistic.
Identity Based Key Insulated Signature
229
– The Extract algorithm EX T takes as input the system parameters P M , the master key M K, and an arbitrary ID ∈ {0, 1}∗ , to return a base secret key SK. – The template key derivation algorithm T KD takes as input P M , ID, a base secret key SK, and index i of a time period, to return the template secret key T SKi . – The signature algorithm SIG takes as input P M , ID, an index i of a time period, the template secret key T SKi , and a message M , to return a signature pair (i, σ). – The verification algorithm V takes as input ID, a message M , and a signature pair (i, σ), to return a bit b, where b = 1 means the signature is accepted. 2.3
Security Notions for IDKIS
When we access the security of an IDKIS scheme, as [key insulated signature], selective time periods accack should be considered. Moveover, as the general ID-based signature, the attacker may implement template secret key extraction attack, which first appears in [9]. Definition 2.4. An IDKIS is identity based key insulated existentially unforgeable (ID-KI-UFM) under chosen-message attacks, selective time periods accacks if no polynomially bound adversary A has a non-negligible advantage against the Challenger in the following game: 1. The challenger takes a security parameter 1k and runs the S algorithm. It gives the adversary the system parameter P M , It keeps the master key M K to itself. 2. The adversary issues queries q1 , q2 , · · · , qm where query qj is one of: - Extraction query (IDj ). The challenger responds by running algorithm EX T to generate the base secret key SKj corresponding to (IDj ). It sends SKj to the adversary. - Template secret key query (IDj , i) where i is the index of period and satisfies 0 ≤ i ≤ N . The challenger responds by running algorithm T KD to generate the template secret key T SKj,i corresponding to the time period i. It sends T SKj,i to the adversary. - Signature query (M , ID i). The challenger responds by running algorithm SIG to generate the signature (i, σ) to the adversary. 3. The adversary F generates a tuple {M ∗ , ID∗ , (i∗ , σ ∗ )}. Here, ID∗ did not appear in any extraction query in the second step, the tuple (ID∗ , i∗ ) of a time period did not appear in any template secret key query in the second step and the tuple (M ∗ , i∗ ) did not appear in any signature query in the second step. The adversary F wins the game if the signature verification algorithm outputs 1 when it is run on the tuple {ID∗ , M ∗ , (i∗ , σ ∗ )}. The adversary’s avvantage is defined to be the probability of producing a forgery.
230
3
Y. Zhou, Z. Cao, and Z. Chai
Bilinear Maps and Computational Diffie-Hellman Problem
Bilinear maps was formalized by Boneh and Franklin [12]. We briefly review the relevant facts as they appear in [12, 13]. Let G1 and G2 be two (multiplicative) cycle groups of prime order q. A bilinear pairing is a map e: G1 × G1 → G2 with the following properties: 1. Bilinear: e(P a , Qb ) = e(P, Q)ab , where P , Q ∈ G1 , and a, b ∈ Zq∗ . 2. Non-degeneracy: There exists P ∈ G1 and Q ∈ G1 such that e(P, Q) =1. 3. Computability: There exists an efficient algorithm to computer e(P, Q) for P , Q ∈ G1 . Definition 3.1. Given multiplicative cycle group G1 of prime order q, then the computational Diffie-Hellman (CDH) Problem is defined as follows: Given (P , P a , P b ) for some a, b ∈ Zq∗ as input, compute P ab ∈ G1 . The advantage of an algorithm A solving CDH is Adv(A) = P r[A(P, P a , P b ) = P ab ] where the probability is over the random choice of a, b in Zq∗ , the random choice of P ∈ G∗1 and the random bits of A.
4
Our Identity Based Key Insulated Signature Scheme
We describe a identity based key insulated signature scheme. Our scheme is based on SOK-IBS (Sakai-Ogishi-Kasahara identity based signature) [10]. The algorithm S(1k ) does the following: 1. Take the security parameter k as input, generate groups G1 , G2 of prime order q > 2k and bilinear map e. 2. Select a random generator P ∈ G1 and a random s ∈ Zq∗ . Set Ppub = P s . 3. Choose cryptographic hash functions H1 , H2 , H3 : {0, 1}∗ → G1 . 4. The system parameter is P M = (G1 , G2 , e, P , Ppub , H1 , H2 , H3 ). The master key is s. The algorithm EX T (P M , s, ID) does the following: 1. Compute QID = H1 (ID) ∈ G∗1 . 2. Set the secret key dID to be dID = (QID )s where s is the master key. The algorithm T KD(P M , ID, dID , i) does as follows: 1. Compute QID = H1 (ID). 2. Choose a random ρ ∈ Zq∗ and compute SiID = P ρ and then Ji = H2 (ID, SiID , i). 3. Compute TiID = dID · (Ji )ρ . The template secret key T SKi = (SiID , TiID ). Here, i is index of a certain period.
Identity Based Key Insulated Signature
231
The algorithm SIG(P M , ID, T SKi , M ) does as follows: 1. Choose a random r ∈ Zq∗ and compute U = P r and then H = H3 (ID, M, U ). 2. Compute V = TiID · H r . The signature on M is σ = (U , V , SiID ). The algorithm V(P M , ID, i, σ) does the following: To verify a signature σ = (U , V , SiID ) on message M for an identity ID, the verifier first computes QID = H1 (ID), Ji = H2 (ID, SiID , i) and H = H3 (ID, M, U ). He then accepts the signature if e(P , V ) = e(Ppub , QID )· e(Ji , SiID )· e(U , H).
5
Security
In this section, we study the security of our proposed scheme. The following theorem formally relates the security of the scheme to CDH assumption in the random oracle model. Theorem 5.1. In random oracle model, if there is a PPT forger F for an adaptively chosen message attack, key extraction attack and template secret key extraction attack to our scheme with advantage when running time t and asking qHi queries to random oracles Hi (i = 1,2,3), qE queries to key extraction oracle, qT queries to the template key secret key extraction oracle and qS queries to the signature oracle, then the CDH problem can be solved with an advantage >
− qT (qH2 + qT )/2k − (qS (qH2 + qH3 + qS ) + 1)/2k e(qE + 1)
within time t < t + (qH1 + qH2 + qH3 + qHE + 2qHT + 3qHS )tm + (qHS + qHE + 1)te where e is the base of the natural of logarithm, tm is the time to compute a multiplication in G1 and te is the time to perform a exponentiation in G1 . Proof. Our proof idea comes from [10, 11]. We show how a forger F can be used by a PPT algorithm B to solve the CDH problem. Let (X = P x , Y = P y ) ∈ G1 × G1 be a random instance of the CDH problem taken as input by B. The goal of B is to output P xy ∈ G1 . Algorithm B initializes algorithm F with Ppub = X as a system’s overall public key. Then, algorithm B continues interaction with algorithm F as follows. H1 -queries: At any time algorithm F can query the random oracle H1 . To responds to these queries algorithm B maintains a list of tuples (ID, a, C) as explained below. We refer to this list as the H1list . The list is initially empty. When F queries the oracle H1 at a point ID algorithm B responds as follows: 1. If the query ID already appears on the H1list in a tuple (ID, a, C) then algorithm B responds with H1 (ID) = C(P a ) + (1 − C)(Y a ). 2. Otherwise, B generates a random coin C ∈ {0, 1} so that P r[C = 0] = qE1+1 .
232
Y. Zhou, Z. Cao, and Z. Chai
3. Algorithm B picks a random a ∈ Zq∗ . If C = 0 holds then B responds to F with P a , otherwise with Y a . H2 -queries: At any time algorithm F can query the random oracle H2 . To responds to these queries algorithm B maintains a list of tuples (ID, SiID , i, b) as explained below. We refer to this list as the H2list . When F queries the oracle H2 at a tuple (ID, SiID , i) algorithm B responds as follows: 1. If the query (ID, SiID , i) already appears on the H2list in a tuple (ID, SiID , i, b) then algorithm B responds with H2 (ID,SiID ,i) = P b . 2. Otherwise, algorithm B picks a random b∈Zq∗ . Then B responds to F with P b . H3 -queries: At any time algorithm F can query the random oracle H3 . To responds to these queries algorithm B maintains a list of tuples (ID, M , U , c) as explained below. We refer to this list as the H3list . When F queries the oracle H3 at a tuple (ID, M , U ) algorithm B responds as follows: 1. If the query (ID, M , U ) already appears on the H3list in a tuple (ID, M , U , c) then algorithm B responds with H3 (ID, M, U ) = P c . 2. Otherwise, algorithm B picks a random c∈Zq∗ . Then B responds to F with P c . Extraction queries: When F queries the private key associated to an identity ID, B recovers the corresponding (ID, a, C) from H1list . If C = 1, then B outputs ”failure” and halts. Otherwise, it means that H1 (ID) was previously defined to be P a ∈ G1 and (Ppub )a = X a ∈ G1 is then returned to F as a private key associated to ID. Template secret key queries: When F queries the template secret key associated to a tuple (ID, i) (Here, ID is an identity and i is an index of a time period), B first recovers the previously defined value QID = H1(ID) ∈ G1 from H1 (ID). It then chooses u, v ∈ Zq∗ at random, sets TiID = (Ppub )u = X u ∈ G1 , SiID = (Ppub )v −1 = X v ∈ G1 and defines the hash value H2 (ID, SiID , i) as (P u (QID )−1 )v ∈ G1 (B halts and outputs ”failure” if H2 turns out to be already defined for the input (ID, SiID , i)). The pair (SiID , TiID ) is returned to F. Signature queries: When F queries the signature oracle on a message M for a tuple (ID, i) (Here, ID is an identity and i is an index of a time period), B first recovers the previously defined value QID = H1(ID) ∈ G1 from H1 (ID). It then chooses u, v, w ∈ Zq∗ at random, sets V = (Ppub )u = X u ∈ G1 , SiID = (Ppub )v = X v ∈ G1 , U = (Ppub )w = X w ∈ G1 , and defines the hash value H2 (ID, SiID , i) −1 −1 as (P w (QID )−1 )v ∈ G1 , the hash value H3 (ID, M, U ) as (uP u (P w )−1 )w ∈ G1 (B halts and outputs ”failure” if H2 turns out to be already defined for the input (ID, SiID , i) or H3 turns out to be already defined for the input (ID, M , U )). The pair (U , V , SiID ) is returned to F. Forgery: Eventually, the forger F produces a message M ∗ , an identity ID∗ , an index of a time period i∗ and a fake signature (U ∗ , V ∗ , SiID∗ ) for the pair (M ∗ , ID∗ , i∗ ) where ID∗ did not appear in any extraction query, (ID∗ , i∗ ) did not
Identity Based Key Insulated Signature
233
appear in any template secret query and (M ∗ , ID∗ , i∗ ) did not appear in any signature query. When outputs the fake signature above the algorithm B try to solve the CDH problem. B recovers the tuple (ID∗ , a∗ , C ∗ ) from H1list . If C ∗ = 0, then B outputs ”failure” and halts. Otherwise, it goes on. The list H2list and H3list must contain an entity (ID∗ , SiID∗ , i∗ , b∗ ) and an entity (ID∗ , M ∗ , U ∗ , c∗ ) with overwhelming probability respectively (Otherwise, B stops and outputs ”failure”.). Hence, B knows that e(P, V ∗ ) = e(Ppub , Q∗ID ) · e(Ji∗ , SiID∗ ) · e(U ∗ , H ∗ ) ∗
∗
with Q∗ID = P a ∈ G1 , Ji∗ = H2 (ID∗ ,SiID∗ ,i∗ ) = P b ∈ G1 and H ∗ = H3 (ID∗ , ∗ M ∗ ,U ∗ ) = P c ∈ G1 for some known elements a∗ , b∗ , c∗ ∈ Zq∗ . Then, it also knows that ∗ ∗ ∗ e(P, V ∗ (Ji∗ )−b (U ∗ )−c ) = e(X, (Y )a ) ∗
∗
and that V ∗ (Ji∗ )−b (U ∗ )−c ∈ G1 is the solution to the CDH instance (X, Y ) ∈ G1 ×G1 . We first assess B’s probability of failure. Its probability to fail in handling a template secret key query because of a conflict on H2 is at most qT (qH2 +qT )/2k . Its probability to fail in handling a signature query because of a conflict on H3 is at most qS (qH2 + qH3 + qS )/2k while the probability for F to output a valid forgery (U ∗ , V ∗ , SiID∗ ) on M ∗ without asking the corresponding H3 (ID∗ , M ∗ ,U ∗ ) query is at most 1/2k . So, it comes that B’s advantage is at most >
− qT (qH2 + qT )/2k − (qS (qH2 + qH3 + qS ) + 1)/2k e(qE + 1)
Algorithm B’s running time is the same as F ’s running time plus the time it takes to respond to (qH1 +qH2 +qH2 +qT +qS ) hash queries, qE extraction queries, qT template secret key queries and qS signature queries, and the time to transform’s forgery into the CDH solution. Each multiplication in G1 takes time tm and each exponentiation in G1 takes time te . Hence, the total time is at most t+(qH1 + qH2 + qH3 +qHE + 2qHT + 3qHS )tm + (qHS +qHE + 1)te .
6
Conclusion
In this paper, we applied the technique of key insulation to solve the problem key exposure in identity based signature scheme and proposed the notion of identity based key insulated signature (IDKIS). At the same time, we discuss the security of IDKIS. After that, we present an concrete scheme, which security is tightly related to Computational Diffie-Hellman (CDH) problem in the Random Oracle Model.
Acknowledgement This research is supported by the National Natural Science Foundation of China for Distinguished Young Scholars under Grant No. 60225007.
234
Y. Zhou, Z. Cao, and Z. Chai
References 1. D. H. Yum and P. J. Lee. Identity-Based Cryptography in public Key Management. EuroPKI 2004, LNCS Vol. 3093, pp. 71-84, Springer-Verlag, 2004. 2. A. Shmir. Identity-based cryptosystems and signature schemes, Crypto 1984, LNCS Vol. 196, pp. 47-53, Springer-Verlag, 1984. 3. A. Shmir. How to share a secret. Comm. of the ACM 22(11):612-613, 1979. 4. Y. Desmedt and Y. Frankel. Threshold cryptosystems. Crypto 1989, LNCS Vol. 435 , pp. 307-315, Springer-Verlag, 1989. 5. R. Ostrovsky and M. Yung. How to withstand mobile virus attacks. PODC’91, pp. 51-59, ACM, 1991. 6. R. Anderson. Two remarks on public key cryptology. Invited Lecture, ACMCCS’97. Http://www.cl.cam.ac.uk/ftp/users/rja14/forwardsecure.pdf. 7. M. Bellare, S. Miner A Forward-Secure Digital Signature Scheme. Crypto’99, LNCS Vol. 1666, pp. 431-448, Springer-Verlag, 2003. 8. Y. Dodis, J. Katz, S. Xu and M. Yung. Key-Insulated Public-Key Cryptosystems. Eruocrypt 2002, LNCS Vol. 2332, pp. 65-82, 2002. 9. Y. Dodis, J. Katz, S. Xu and M. Yung. Strong Key-Insulated signature schemes. Proc. PKC2003, LNCS Vol. 2567, pp. 130-144, 2003. 10. M. Bellare, C. Namprempre, and G. Neven. Security Proofs for Identity-Based Identification and Signature Schemes. Eurocrypt 2004, LNCS vol. 3027, pp. 268286, Springer-Verlag, 2004. 11. B. Libert and J. J. Quisquater. The Exact Security of an Identity Based Signature and Its Applications. Availiable from http://eprint.iacr.org/2004/102. 12. D. Boneh and M. Franklin. Identity based encryption from the Weil pairing. Crypto 2001, LNCS vol. 2139, pp. 213-229, Springer-Verlag, 2001. 13. D. Baneh, B. Lynn, and H. Shacham. Short signatures from the Weil pairing. Asiacrypt 2002, LNCS vol. 2248, pp. 514-532, Springer-Verlag, 2001.
Design and Implementation of an Extended Reference Monitor for Trusted Operating Systems Hyung Chan Kim1 , Wook Shin2 , R.S. Ramakrishna1 , and Kouichi Sakurai3 1
3
Department of Information and Communications, Gwangju Institute of Science and Technology, Gwangju 500-712, Rep. of Korea {kimhc, rsr}@gist.ac.kr 2 Department of Computer Science, University of Illinois at Urbana-Champaign, IL 61801, USA [email protected] Faculty of Computer Science and Communication Engineering, Kyushu University, Fukuoka 812-8581, Japan [email protected]
Abstract. Conventional access control schemes have supported confidentiality and integrity acknowledging the necessary organizational security policy in operating systems. However, many runtime attacks in operating systems involve behavioral semantics, indicating that attacks should be seen as a sequence of access operations. Ironically these attacks are legitimate under any access control policy. This is due to the lack of behavioral dimension in security enforcement. We propose an extended reference monitor to include this dimension. Our method is based on safety property specification on system call sequences. The reference monitor checks the trace at runtime for behavior control in Linux operating system.
1
Introduction
A Trusted Operating System (TOS) is an operating system that includes a security kernel providing protection from diverse threats. The security kernel approach assists in realizing the reference monitor with a trusted computing base (TCB) that enforces the security policy of a given system [1]. Most recent TOS projects have incorporated enhanced access controls such as Mandatory Access Control (MAC) and Role-Based Access Control (RBAC) beyond conventional Discretionary Access Control (DAC). MAC enables the TOS to operate with mandated information flow from low to high [2]. RBAC [3] offers flexibility in enforcement and policy neutrality. It also lessens the burden of administration. Both present advantages covering the lack of DAC to enhance OS’s access control service. K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 235–247, 2006. c Springer-Verlag Berlin Heidelberg 2006
236
H.C. Kim et al.
As for enhanced access control, researchers seem to commonly adopt privilege transition mechanism in the prototype. GRSecurity’s role transition [17] and SELinux’s domain transition [18] provide examples of the trend. These are analogous to the set-user-id (setuid) mechanism in generic Unix or Linux OS. Usually privilege transition is needed when a user has to perform a special task such as changing the password, configuring the system, or enabling/disabling hardware devices. Security administrators insist on safe execution of such programs, i.e., bounded execution by operations defined (compiled) in the program binary. However, we have constantly witnessed runtime bugs in such programs from security advisories. If the program is subverted by Stack Overflow attack [4], for example, the attacker can hold the transfered privilege of the program; and this is clearly not intended by the administrators. If we carefully observe the attack process, we find that the underlying DAC access control context is valid even though the attack has succeeded. The attacker’s subversion relies on the change of behavior of the program under legitimate access control context. The situation with TOS is no different if it (the TOS) includes the privilege transition mechanism in its access control scheme for whatever reason. This deficiency is due to the lack of another dimension in security enforcement setting aside the access control. In this paper, we propose an extended reference monitor mechanism for TOS. We were motivated by the aforementioned observation. The security enforcement should be two dimensional. The access control checks the right of the subject to perform a certain operation on an object. Any access control scheme may be adopted in this regard. We extend the enforcement facility with a view to constrain the behavior of operations. This addresses the lack of access control thereby countering program attacks that might succeed due to issues connected with behavioral semantics. Our approach checks the runtime trace based on behavioral specifications. A proof-of-concept implementation in Linux kernel is presented to support our approach. The rest of this paper is organized as follows. In section 2, we present motivation for the work. We propose the extended enforcement model in section 3. An example policy specification will be given in section 4. Section 5 presents a poof-of-concept implementation of the proposed mechanism. Discussion and related work will be given in section 6. We conclude this paper in section 7.
2
Motivating Examples: Analysis of Program Attack
We encounter various types of program runtime attacks such as Stack and Heap Overflow, Double Free, Format String, besides Race Condition related attacks. Most attacks aim to mess up the privilege beyond the currently active user’s rights. The problem is that the conventional access control in Unix can not effectively counter these attacks. This is because the invasion proceeds under the cover of legitimate access control context. In this section we analyse two types of attack from the point of view of program behavior: Stack Overflow [4] and Time-Of-Check-ToTime-Of-Use (TOCTTOU) [5]. These are representative examples of such attacks involving a single process and concurrency among multiple processes respectively.
Design and Implementation of an Extended Reference Monitor for TOSs
2.1
237
Stack Overflow
In Linux OS, access control is achieved based on credentials of process information and permission bits labeled on objects (file or device) and the scheme is categorized as DAC. Sometimes a user process temporarily needs to transit from a mode with certain privileges to a mode with certain other privileges for achieving some special aim. A representative example is changing the password; and during the modification of the password file the user process is in a privileged mode. This function is supported by setuid (set user identity) mechanism. The user process can be made to change its privilege by setting the effective uid (euid ), to be equal to the saved uid (suid ). If suid is the uid of the super user (zero), the user process can perform the privileged operation during the transited execution. In the privileged mode, the process can follow only the defined operations specified by the suid program binary. After finishing the privileged jobs, the privileged mode is terminated by setting the euid back to its original value (the value of real user id) or by terminating the process. However, if the setuid program contains a runtime bug and an attacker can change its execution flow by exploiting it, the flow is not defined by the program binary; and then, the attacker can corrupt the transited privilege. If the modified execution spawns a shell then the process stays in the privileged mode beyond its original extent. For an example, we define access context in Linux as a quadruple (ruid, euid, suid, perm), which is a tuple of real uid, effective uid, saved uid, and the permission (operation on some objects) respectively. Table 1 shows the behavioral access contexts of an example program. The left column contains a sequence of intended behavior and the unwanted case is in the right column. The asterisk in the table refers to an arbitrary trace of operations. From line 1 through line 5 the operation sequences of both the columns are the same. The user john executes a setuid program (./prog) to execute some special job with root privilege. Thus the euid and the suid are changed to zero. After finishing the job, the process terminated and the credentials of privilege are back to the user’s original value as in line 7 of the left column. Now, suppose that the attacker can successfully insert some content, which is used to modify Table 1. Behavioral access context of stack overflow Intended Behavior Exploited Behavior 1 (john,john,john,*) (john,john,john,*) 2 (john,john,john,execve(./prog)) (john,john,john,execve(./prog)) 3 (john,root,root,*) (john,root,root,*) 4 (john,root,root,read(buffer)) (john,root,root,read(buffer)) 5 (john,root,root,*) (john,root,root,*) 6 (john,root,root,exit(0)) (john,root,root,setreuid(0,0)) 7 (john,john,john,*) (root,root,root,*) 8 (john,john,john,*) (root,root,root,execve(/bin/sh))
238
H.C. Kim et al.
the return address of the current function. This results in an overflow of the currently executing function stack thereby altering the return address of the stack (line 4 and possible strcpy function invocation in line 5). At the time of the function epilog, the modified return address lets the execution continue from where the attacker’s program code resides (the buffer itself, environmental arguments or wherever), thereby directing the execution flow to the attacker’s program fragment. The attacker’s code contains a sequence of operations such as setreuid(0,0), execve(/bin/sh) that makes the real uid the same as its euid (zero). Finally it executes a shell. Because the current credentials is set to that of the super user, the spawned shell can be quite dangerous. The important point here is contained in the right column of Table 1. All the access contexts are totally legal: all the credential values in each line are possible under normal setuid mechanism. There is no violation of the underlying DAC enforced by the OS. The attacker only alters the operational semantics (behavior) such as the type or the sequence of the operations. 2.2
TOCTTOU Binding Flaw
The second example is an attack involving concurrency among multiple processes, the so called time-of-check-to-time-of-use (TOCTTOU) attack. TOCTTOU attack may be caused when programmer incorrectly assumes that the reference of the resource will not change between the time of check and the time of use. Unfortunately, this is not true because modern operating systems handle multiple processes concurrently and the process scheduler manages the lot. We take an archetypal TOCTTOU binding flaw example to illustrate the attack in Table 2. The open system call (time of use) is invoked right after the access system call (time of check) and programmers do not suspect that something can go wrong between two consecutive system calls. However, the process scheduler mediates the execution of each process and, there is always the possibility of other actions being performed by other processes between the two time instants. In the example shown here, if the reference of temporary file is modified by unlink and symlink in stage 2 and 3 during the time scheduled for the attacker’s program, the system program writes some contents provided by arguments not to the original file /tmp/X but to /etc/passwd file in stage 5. Hence the attacker can insert dummy accounts to /etc/passwd file without having the privilege of the administrator. Note that, as in the case of stack overflow, all access contexts Table 2. An archetypal TOCTTOU attack System Program Attacker’s Program 1 (root,root,root,access(/tmp/X)) 2 (john,john,john,unlink(/tmp/X)) 3 (john,john,john,symlink(/etc/passwd,/tmp/X)) 4 (root,root,root,open(/tmp/X)) 5 (root,root,root,write(/tmp/X))
Design and Implementation of an Extended Reference Monitor for TOSs
239
in Table 2 are legitimate. The problem arises because of the specific sequence, made by the attacker, of the two processes.
3
The Mechanism of Extended Reference Monitor
This section proposes an extended reference monitor model for TOSs that supports access control and behavior control in an unified manner. 3.1
The Access Control System
An atomic access operation in a trusted system is directed from a user (subject) to an object with a certain operation. The access rights are defined by a certain access control policy. These are contained in a set of triplets representing the user’s access to an object for performing certain operation (user, operation, object). The set of access rights is analogous to the access matrix model of DAC and MAC [1]. Recently it has also been shown that RBAC can be interpreted through an access matrix [7]. Therefore it is reasonable to define an arbitrary access control scheme in the following manner. Definition 1. The access control system is defined formally as follows – U SER, OP R, OBJ: the set of users, operations and objects. – AR ⊆ U SER × OP R × OBJ: the set of access rights configured by access control policy. – access(u : U SER, op : OP R, ob : OBJ) → {true, f alse}: On invocation of an operation of op with an object ob by a user u, it returns true for a permitted access and, false for rejected accesses. • (∀u : U SER, ∀op : OP R, ∀ob : OBJ)access ⇒ [(u, op, ob) ∈ AR]. 3.2
The Behavior Control System
Our approach to control the behavior from access traces specifies the behavioral property and checks it at runtime. In other words, we specify safety for the reference monitor from the trace of executions. The specification is based on a type of B¨ uchi Automata A = (Σ, Q, q0 , δ) where Q is a countable set of automaton states, q0 ∈ Q is the initial state, δ is the transition function (δ : Q × Σ −→ Q), and Σ is the set of system call operations on objects in the TOS. During the execution, a process produces a trace of operations; if the trace violates the specification concerning the behavioral property, then the process is forced to terminate. This property is known as the safety property [8] which ensures that if a trace is not in accordance with the behavioral policy in a certain operation in the trace, then the execution must be terminated at the earliest. The specification employs Boolean guarded predicates.
240
H.C. Kim et al.
Definition 2. The behavior speicification is given below. – ST AT Ei : a finite set of state variables. – T RAN Si : a finite set of Boolean guarded commands of the form: • guard → command – BEHAVi = (ST AT Ei , T RAN Si ): a behavior and it is itself a function which returns the result of guarded command on its input symbol. – BEHAV = {b | ∃i[b = BEHAVi ]}: the set of behaviors in the overall system. – behave(b : BEHAV, op : OP R, ob : OBJ) → {true, f alse}: it returns the result of a Boolean guarded command in the behavior specification of b on a current input symbol (op, ob). In a transition, the guard is a predicate which refers current associated state variables and operation to an input symbol. If a guard is satisfied, then a consequent command is executed. Usually a command updates state variable encoding. Our Boolean guarded command is slightly different from that used in [6, 9] in that a command must return a Boolean value. Moreover, if no match is found in all the Boolean guarded commands, then it is assumed that false is returned. We give a simple example of a behavior specification. Example 1. The policy “no send after read” in [6] can be encoded as follows: ({i : 0}, {op = ¬read ∧ i = 0 → return true, op = read ∧ i = 0 → i = 1; return true, op = ¬send ∧ i = 1 → return true, otherwise return false }). A series of queries behave(b, read, ob1 ); behave(b, open, ob2 ); behave(b, send, ob3 ) will fail (return false) with the above specification, because the operation sequence violates the specification. In a TOS, a behavior is realized in the presence of a process. Therefore we need to define the relation between a process and the desired property that is used to place a constraint on the process’s behavior. Usually a single process can be assigned many behavior specifications. Conversely, a behavior specification can involve several processes. Definition 3. The process-to-behavior association – P ROC: the set of processes. – exec(u : U SER) → 2P ROC : executing processes activated by a user u. – P BA ⊆ P ROC × BEHAV : a many-to-many process-to-behavior assignment. 3.3
Security Decision
On a given access instance, security decision is made on the basis of the result of access control and the result of the behavior control.
Design and Implementation of an Extended Reference Monitor for TOSs
241
Definition 4. Security decision on a given access instance is defined as follows: – sdf (u : U SER, p : P ROC, op : OP R, ob : OBJ) → {true, f alse}: the security decision which returns a true for a permitted access instance and return false for rejected accesses. • (∀u : U SER, ∀p : P ROC, ∀op : OP R, ∀ob : OB)sdf ⇒ (∃b : BEHAV ) [p ∈ exec(u) ∧ (p, b) ∈ P BA ∧ access(u, op, ob) ∧ behave(b, op, ob)].
4
Policy Specifications
We present three examples of behavioral specification here. The first two examples are specifications against attacks within a single process, and the specification in the third example is against attacks involving concurrency (race condition). Note that our assumption is DAC with behavior control to show behavioral specifications against attacks from real life examples in generic Linux OS. DAC configuration is assumed to be the conventional file permission setting. 4.1
Shell Restriction After the Escalation of Privilege
A runtime program attack usually spawns a shell after changing the execution flow in the privileged mode. A sequence ∗; setreuid(0, 0); ∗; execve(SHELL) 1 is such an example. We need to check if the euid is equal to zero issued by setreuid
Σ−{setreuid(ANY, 0)}
0
Σ−{execve(SHELL)}
setreuid(ANY, 0)
1
setreuid(ANY, ¬0)
Fig. 1. No shell execution after setting the euid to be 0
function. If the setreuid function invoked setting the euid to be equal to the uid of the super user, then we have to watch the act of shell invocation. If the process proceeds in the normal way, without any disturbance, the value of the euid will be back to the uid of the orignal user and we need to focus our investigation on its first state. Figure 1 describes this property and the following example is the corresponding specification. 1
(*) refers to an arbitary sequence of operations other than those explicitly shown before and after. If the asterisk is used right after an operation such as open()*, then it indicates multiple invocation of the preceding operation.
242
H.C. Kim et al.
Example 2. The behavior policy “No shell execution after setting the euid as 0” can be encoded as follow: For a process p, (b, p) ∈ P BA where b = ({i : 0}, {op = ¬setreuid(AN Y, 0) ∧ i = 0 → return true, op = setreuid(AN Y, 0) ∧ i = 0 → i = 1; return true, op = ¬execve(SHELL) ∧ i = 1 → return true, op = setreuid(AN Y, ¬0) ∧ i = 1 → i = 0; return true, otherwise return false }). 4.2
Preventing the Escape of Chroot
Usually we use the chroot system call to provide the security layer to protect the original root file systems. However, it is possible to circumvent the security layer [10]. If a process is confined to a specific directory with chroot, one can escape that confinement by the following behavior: open(temp dir); chroot(temp dir); chdir(“..”)∗; chroot(“.”); execve(SHELL). Σ−{chroot(¬ˈ/ˉ)}
0
Σ−{chdir(ˈ/ˉ)}
chroot(¬ˈ/ˉ) chroot(ˈ/ˉ)
1
chdir(ˈ/ˉ)
2 Σ−{chroot(ˈ/ˉ)}
Fig. 2. Preventing the escape of chroot
Figure 2 shows our specification for coping with the attack. If a protection layer is built by chroot to confine the behavior within the non-root directory, we direct our attention to another state (state 1) in which we watch whether the current directory by the chdir operation refers to the root directory “/”. In state 2, invoking chroot(“/”) violates the specification. The following example encodes the aforementioned specification. Example 3. The behavior policy “Preventing the escape of chroot in not root directory” can be encoded as follow: For a process p, (b, p) ∈ P BA where b = ({i : 0}, {op = ¬chroot(¬“/”) ∧ i = 0 → return true, op = chroot(¬“/”) ∧ i = 0 → i = 1; return true, op = ¬chdir(“/”) ∧ i = 1 → return true, op = chroot(“/”) ∧ i = 1 → i = 0; return true, op = chdir(“/”) ∧ i = 1 → i = 2; return true, op = ¬chroot(“/”) ∧ i = 2 → return true, otherwise return false }).
Design and Implementation of an Extended Reference Monitor for TOSs
4.3
243
Race Condition (TOCTTOU)
On the object reference ob, Figure 3 shows the specification against TOCTTOU attack, and its example sequence is ∗; access(ob); ∗; unlink(ob); ∗; symlink(X, ob); ∗; open(ob); ∗. CHECK can be replaced with any other system call, such as access, readlink, and stat that check the reference of an object and U SE also can be replaced with open, mount, chmod and the like as mentioned in [11]. Example 4 encodes the above specification. Because TOCTTOU attack involves multiple processes, we need to configure P BA relation to assign the involved processes to the behavior specification. Σ− {USE(ob), unlink(ob)}
Σ−{CHECK(ob)}
0
CHECK(ob) USE(ob)
USE(ob)
1
unlink(ob)
2 Σ− {USE(ob), symlink(ANY,ob)}
Fig. 3. TOCTTOU protection
Example 4. The behavior policy “TOCTTOU” can be encoded as follow: For two arbitary processes p1 and p2, (p1, b) ∈ P BA and (p2, b) ∈ P BA where b = ({i : 0}, {op = ¬CHECK(ob) ∧ i = 0 → return true, op = CHECK(ob) ∧ i = 0 → i = 1; return true, (op = ¬U SE(ob) ∧ op = ¬unlink(ob)) ∧ i = 1 → return true, op = U SE(ob) ∧ i = 1 → i = 0; return true, op = unlink(ob) ∧ i = 1 → i = 2; return true, (op = ¬U SE(ob) ∧ op = ¬symlink(AN Y, ob)) ∧ i = 2 → return true, op = U SE(ob) ∧ i = 2 → i = 0; return true, otherwise return false })
5
Implementation
We have built a proof-of-concept system in Linux kernel 2.6.12.3 in Fedora Core 4 system. We take the general enforcement architecture [Fig. 4] to clearly discriminate between the access enforcement and the access decision [12, 13]. Access Enforcement Facility (AEF) is implemented in a way that appropriate positions within system calls are patched to mediate the given access operation by Security Decision Subsystem (SDS). Once an operation is invoked, the query for security
244
H.C. Kim et al. User Programs
Load policy binary
System call invocation Access Enforcement Facility Kernel Subsystems
Network
IPC
File System
Process Mgmt.
q/r
SeeCure Subsystem (Security Decision) refer update Security Policy DB
States Hardware
Fig. 4. System architecture
decision is made by the SDS which refers to Security Policy DB (SPDB). SPDB contains the security policy: access and behavior control configuration respectively 2 . At decision time, SDS makes security decisions based on sdf (Definition 4). The access control decision is taken with the underlying access control mechanism. The behavior decision might need to update its state variables. The state information is associated with the process management subsystem (task struct structure in Linux process definition) through the P BA relation. We performed a benchmark test on patched system calls with a modified HBench-OS tool [14]. The hardware we used is 2.4 GHz PC with 1GB memory. The results showed 3.8% overhead on process creation which involves fork and execve system calls. The other system call performance was from 0.1% to 4.3%.
6
Related Work
There are many TOS projects that employ the kernel-based reference monitors. The architecture of Rule-Set Based Access Control (RSBAC) for Linux Kernel [16] is based on Generalized Framework for Access Control (GFAC) and it supports multiple access control policies, especially MAC. The Security-Enhanced Linux (SELinux) [18] implements the Flask architecture to support several access control polices with a high degree of flexibility. The major access control schemes of SELinux are RBAC and DTE (Domain and Type Enforcement). Both RSBAC and SELinux makes a clear separation of enforcement from decision facility; and these architectures are now commonly incorporated. REMUS [19] also has a similar enforcement architecture, but its access control mechanism is based on a detailed analysis and empirical classification of Linux system calls. RSBAC, SELinux, and REMUS make access decisions on a given single access solely through access control policy; and this point sets our approach apart. We 2
Our previous research on access control of TOS is on RBAC [15]. Here we just describe on DAC to show real life examples.
Design and Implementation of an Extended Reference Monitor for TOSs
245
also incorporate behavior as well as a given single access operation for decisions. Thus we have an extended reference monitor. On the other hand, there are also efforts that constrain the behavior by specifying a behavioral policy. Linux Intrusion Detection System (LIDS) [20] and Blue Box [21] are policy-driven intrusion detection systems in the kernel layer. Both can specify the policy about behavior based on process’ capability. However, their specification model is based on an empirical approach rather than a formal one. SASI (Security Automata SFI Implementation) [23] is a reference monitor framework that enforces security policies based on Security Automata. Its implementation layer is at a lower than ours as their target operation unit is x86 machine instruction. The intrusion detection based on the specification language [22] also describes behavioral policy to detect the unknwon behavior of applications. The above systems do not provide a provision for the enhanced access control schemes such as MAC or RBAC. Our work can be considered as a lightweight version of Runtime Verification (RV) [24]. Usually the approach of RV is as follows: first specify the intended behavior with variants of linear temporal logics (LTL) and construct monitors by translating the given LTL specifications into B¨ uchi or Alternating Automata to enforce it at runtime. On the other hand, some approaches use rewriting techniques exploiting the recursive nature of temporal logics. We did not adopt (Future-time) LTL for specification because its semantics are not well suited to security decisions in a reference monitor: involving eventualities in specifications leads to predictive rather than exact decisions.
7
Conclusion
We have shown that a TOS with an extended reference monitor can support an additional dimension of enforcement beyond conventional access control. Most program runtime attacks in Unix/Linux have legitimate access context, and each operation of an attack sequence passes the underlying access control policy. Therefore an extension to the reference monitor to make further decisions on the basis of behavior is worth the effort. Our approach on behavioral decision was based on the specification of behavioral (safety) property that is equivalent to the Security Automata. We have presented example specifications and a proofof-concept implementation on Linux kernel to demonstrate the effectivness the proposal against real attacks. Our next plan includes the design of a policy language which can effectively describe both access and behavior control. Acknowlegements. The authors gratefully acknowledge the reviwer’s helpful comments in preparing the final manuscript. This research was supported in part by the BK21 of Ministry of Education of Korea, and in part by the Strategic Software Research of International Information Science Foundation of Japan.
246
H.C. Kim et al.
References 1. E. G. Amoroso, Fundamentals of computer security technology, AT & T Bell Laboratories, Prentice-Hall PTR, 1994. 2. D. E. Bell and L. J. LaPadula, Secure computer systems: Mathematical foundations, MITRE Tech. Report 2547, Vol I, 1973. 3. R. S. Sandhu, E. J. Coyne, H. L. Feinstein, and R. Chandramouli, Role-based access control models, IEEE Comput., Vol. 29, No. 2, pp. 38-47, Feb. 1996. 4. Alphe One, Smashing the stack for fun and profit, Phrack Magazine Vol.7 Issue. 49, File 14 of 16, 1996. 5. M. Bishop and M. Dilger, Checking for race conditions in file accesses, Comput. Syst., Vol. 9, No. 2, pp. 131-152, 1996. 6. F. B. Schneider, Enforceable security policies, ACM Trans. on Inf. & Syst. Sec., Vol. 3, No. 1, pp. 30-50, Feb. 2000. 7. G. Saunders, M. Hitchens, and V. Varadharajan, Role-based access control and the access control matrix, LNCS, Vol. 2836, pp. 145-157, 2003. 8. B. Alpern and F. B. Schneider, Recognizing safety and liveness, Dist. Comput., Vol. 2, pp. 117-126, Feb. 1987. 9. P. Naldurg, R. H. Campbell, and M. D. Mickunas, Developing dynamic security policies, Proc. of the DARPA Active Networks Conf. and Expo., pp. 204-215, 2002. 10. Simes, How to break out of a chroot() jail, 2002. (http://www.bpfh.net/computing/docs/chroot-break.html) 11. B. Schwarz, et al., Model checking an entire linux distribution for security Violations, Reserach Report, Berkely University, 2004. (http://www.cs.berkeley.edu/∼bschwarz/main.pdf) 12. M. D. Abrams, L. J. LaPadula, K. W. Eggers, and I. M. Olson. A generalized framework for access control: An informal description. Proc. of the 13th Nat’l Comput. Sec. Conf., pp. 135-143, 1990. 13. R. Spencer, S. Smalley, P. Loscocco, M. Hibler, D. Andersen, and J. Lepreau, The flask security architecture: system support for diverse security policies, Proc. of The 8th USENIX Sec. Symp., pp. 123-139, 1999. 14. A. Brown, HBench-OS operating system benchmarks (http://www.eecs.harvard.edu/vino/perf/hbench/) 15. W. Shin, J. Y. Park, and D. I. Lee, Extended role based access control with procedural constraints for trusted operating systems, IEICE Trans. Inf. & Syst. Vol.E88-D, No. 3, pp. 619-627, 2005. 16. A. Ott, The rule set based access control linux kernel security extension, Int’l Linux Kongress 2001, 2001. (http://www.rsbac.org) 17. B. Spengler, Increasing performance and granularity in role-based access control systems (A case study in Grsecurity) (http://www.grsecurity.net/) 18. P. Loscocco and S. Smalley, Integrating flexible support for security policies into the linux operating system, 2001 USENIX Annual Tech. Conf., 2001. (http://www.nsa.gov/selinux/index.html) 19. M. Bernaschi, E. Gabrielli, and L. V. Mancini, REMUS: A security-enhanced operating system, ACM Trans. on Inf. & Syst. Sec., Vol. 5, No. 1, pp. 36-61, 2002. 20. Linux intrusion detection system, (http://www.lids.org) 21. S. N. Chari and P. Cheng, BlueBox: A policy-driven, host-based intrusion detection system, ACM Trans. on Inf. & Syst. Sec., Vol. 6, No. 2, pp. 173-200, 2003.
Design and Implementation of an Extended Reference Monitor for TOSs
247
22. R. Sekar, T. Bowen, and M. Segal, On preventing intrusions by process behavior monitoring, In Proc. of Workshop on Intrusion Detection and Network Monitoring, pp. 29-40, 1999. 23. U. Erlingsson and F. B. Schenider, SASI enforcement of security policies: A retrospective, In Proc. of the New Security Paradigm Workshop, pp. 87-95, 1999. 24. K. Havelund and G. Ro¸su, Monitoring java programs with java PathExplorer, Electr. Notes Theor. Comput. Sci., Vol. 55, Iss. 2, pp. 200-217, 2001.
A Design and Implementation of Profile Based Web Application Securing Proxy Youngtae Yun1, Sangseo Park1, Yosik Kim1, and Jaecheol Ryou2 1 National Security Research Institute, 161 Kajeong-dong, Daejon, 305-350, Korea {ytyun, sangseo, guyonx86}@etri.re.kr 2 IIRTRC, Chungnam National University, 220, Kung-dong Daejon, 305-764, Korea [email protected]
Abstract. Recently, the security threat on web application is increasing rapidly and especially open source web applications are becoming popular target of web server hacking. And more there was a worm which spread via web application vulnerabilities. Web application attack uses the vulnerability not in web server itself, but in structural, logical, and code errors. The majority of flaws in web applications are caused by absence of the user input validation. But, it is difficult to detect various abnormal user inputs by pattern matching method. In this paper, we propose the web application securing proxy based on profiling which can be constructed by learning usual normal activity. The proposed proxy system can detect and filter out attacker's abnormal requests via anomaly detection mechanism. Keywords: Web application, Anomaly detection, Hacking, Proxy.
1 Introduction Recently, web server hacking is trending toward web application hacking which is comparatively easy to attack. Web application hacking does not mean that attacks on operating system or web server itself, but mean that attacks on application structure, logic errors, and code errors. According to the threat report of Symantec[1], the number of web application vulnerabilities are increasing continually by half a year as shown in Fig. 1. Between July 1 and December 31, 2004, Symantec catalogued 670 vulnerabilities affecting web applications. This is a substantially higher than the 39% document in the first six months of 2004. This indicates that web applications will likely continue to be a target of attack activity in the near future. And more, malicious worm uses web application vulnerabilities, so web application based vulnerabilities will be increase continually[2][3]. Nowadays, web servers are usually connected with databases which have user information, or important data. Web applications interact with databases for retrieval of information and storing data. So, it is possible to attack databases by using web interface via web application vulnerability. K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 248 – 259, 2006. © Springer-Verlag Berlin Heidelberg 2006
A Design and Implementation of Profile Based Web Application Securing Proxy
249
Fig. 1. The increase in web application vulnerabilities over 18 months
There are some countermeasures against web application vulnerabilities. These are almost related to secure web application building method at source code level. However, it is difficult to solve whole problems at source code level. And, in case of web hosting corporations, the defense at source code level will be more difficult. In this paper, we propose a method to secure the web applications based on profiling method which can detect and filter out malicious request. It is very efficient that the use of proposed detection method because web application are uses formal request for dedicated links. This paper is comprised as follows. Section 2 presents related works on web application attack and existing countermeasures. Section 3 describes the proposed system structure. Section 4 explains the proposed detection and filtering mechanisms. Section 5 contains the experimental results and analysis. Section 6 contains conclusions and remarks for future work.
2 Related Works In this section we describe related works on countermeasures against web application vulnerabilities. The details are categories of web application vulnerability, embedded security module on apache and Santy worm. 2.1 OWASP Open Web Application Security Project is an open group focused on understanding and improving the security of web applications and web services. Web application security had become a hot topic as companies race to make contents and services accessible through the web. At the same time, hackers are turning their attention to the common weakness created by application developers. OWASP released Top 10 vulnerability list in web application and services in 2004[4]. These are unvaldated input, broken access control, broken authentication and session management, cross site scripting, buffer overfllows, injection flaws, improper error handling, insecure storage, denial of service, and insecure configuration management[5].
250
Y. Yun et al.
In this paper, we propose the profiling techniques as a validating method for improper input. The proposed profiling method extract the application structures and input parameter and length from the user request. In implementation, we uses a HTTP proxy which can intercept all request between user and web applications. The proxy accept the user input value and detect whether it is normal or abnormal compare with the prepared profile record. 2.2 Apache Security Module(ModSecurity) ModSecurity is an open source intrusion detection and prevention engine for web application. It operates as embedded into the web server, thus it can inspect all of HTTP/HTTPS protocol layer data[6]. ModSecurty has great features, such as incoming request filtering, anti-evasion techniques, understanding of HTTP protocol, POST payload analysis, audit logging, HTTPS filtering[7][8]. ModSecurity has great advantages in filtering for web application security, because it operates embedded into the apache web server. Especially, filtering the HTTPS protocol data is a difficult thing in proxy based structure. However, rule based filtering module in modsecurity is difficult to defend against unknown attacks. The proposed profiling module will be supplement for this leakage, and we'll supply the functionality for ModSecurity in next research. 2.3 Santy Worm Santy worm which attacked web server running the popular phpBB discussion forum software to deface vulnerable systems spread widely across the network in Dec. 2004[2]. Santy worm was occurred just when security communities were having discussion about the worm using web application vulnerabilities. It is a shown example that web application vulnerability can be developed into the worm. Santy worm variants continue to occur as Santy.A, Santy.B, and Santy.C. And there was a variants which uses 50 php web application vulnerabilities[3]. The Santy worm searches for vulnerable forum sites using Google. when a suitable target is found, Santy uses a remote exploit to gain access and deface it before resuming its scanning activity. To prevent worm spreading, Google search engine made an effort to invalidate the search pattern used by Santy worm. However, it is possible to prevent the Santy worm by validating the user requested URL parameter and it's value. In this paper, we propose the validating mechanism which can check the parameter and parameter value with prepared profile record. So, it can detect and prevent the Santy worm and it's variants effectively.
3 Profile Based Web Application Security Web application profile is a prepared normal activity record that extracted from the normal activity period or from the normal log data. It learns from the previous normal activities. So, it can stand for the characteristics of the web applications. Web application uses a limited parameter and it is determinate. Thus, it is very applicable to use a profile for anomaly detection.
A Design and Implementation of Profile Based Web Application Securing Proxy
251
3.1 System Architecture In order to establish a profile, it is necessary to access transferring data between user's browser and web server. In this paper we implement a proxy server for gaining the transferring data. Fig. 2 shows the system architecture. This system operates along the following steps. First, user request arrive at proxy module. And then, proxy module checks the request destination whether it is target to verify. If the request destination is not a predefined web application, then the proxy module relay the request to the web server. The web server reply the result to the proxy module, and then the proxy module relays the response to the user.
Fig. 2. The proposed system architecture
The purpose of checking target is to reduce the size of the profile record. And the target can be determined as an application path. In case that the request is matching with target paths, proxy module checks if incoming request is normal or abnormal. In normalization step, the module parses the requested URL and decodes encoded characters. And then extract the request identifier and the characteristics of the parameters. If there is no match with the profile record, it is dealt as a abnormal request and then error message is transferred to the user. If the parsed request is matched with the profile record, the module checks the characteristics by comparing them with the proper profile record. The characteristic check is consist of checking the length and the value of parameter value. The details of the characteristic check will be explained in section 4. If the request is determined as a normal request, proxy transfers the user request to the web server, and then relay the response of web server to the user. [9] and [10] describe research results on policy and access control model related to the parameter length and type. In this paper, we propose a model to detect automatically the anomaly by learning from the previously acquired normal request. The proposed mechanism does not need to prepare the access rules and can detect automatically abnormal request by using the difference from the previous activity.
252
Y. Yun et al.
3.2 Web Application Profiling Web application profile is a database which can be constructed by analyzing the web application structure and parameter characteristics. Web profiler operates like a proxy module in Fig. 2, and it generate the profile record by parsing the user request as shown in Fig. 3. In [11], Michael Benedik has tried to test the user input and check the vulnerability by connecting to the web site dynamically. However, we acquire the user input statistics via web profiler which operate as a proxy. We made an another profiler which can extract the profile record from the log data in implementation. The user request is divided by '?' character, and parameter variables are matched with value by '=' character. The profile identifier is constructed by concatenating the parameter names and is used as a key in profile record. Parameter values are decoded as acceptable URL characters and space characters in raw value are removed.
Fig. 3. The I/O of the web profiler
When the user request is represented as (1), the query set Q and the profile identifier Key(Q) can be represented as (2) and (3), where p and v represent a parameter name and a parameter value respectively. The reason why we construct the Key(Q) as shown in (3) is that it is possible to distinguish each request. When the attacker uses a hidden parameter in request URL, it can be detected via detection method of profile identifier, because the request will be absent in profile record. http://host/cgi-bin/vuln.cgi?p1=v1&p2=v2&p3=v3&...&pn=vn
(1)
Set Q={(p1,v1), (p2, v2), (p3, v3), ......, (pn,vn)}
(2)
Key(Q) = http://host/cgi-bin/vuln.cgi-p1p2p3......pn
(3)
The user request in (1) is a GET method representation and is different in POST method. The POST method is usually used when sending the large form data, the content type of POST when data transferring usually have two types. One is
A Design and Implementation of Profile Based Web Application Securing Proxy
253
"application/x-www-form-urlencoded" and the other is "multipart/form-data". The former can be divided by '&' character when we parse parameter name and values from the request, but the later can be divided by "boundary=" strings. However, we can transform these representations as shown in (1) easily. The profile record is consist of profile identifier, parameter value length, and parameter value type. Web profiler generate these values automatically. Web profiler calculates the maximum length from the user request, and distinguishes the type as numeric, alphabet, alphanumeric, meta character, or file character. These attributes are used in determining the user request is normal or not.
4 Anomaly Detection In this section, we use three method to detect abnormal request. The first is detection with a profile identifier, the second is detection with parameter length, and the third is detection with parameter type. These methods are used together in implementation with the precedence described order. 4.1 Profile Identifier Detection The detection method using profile identifier decides the user request being an abnormal event when the user request is absent from profile record. This method is very efficient in detection when the attacker uses hidden internal variables in open source application using php, asp etc. Because, the profile record are stored together with the normal requests as a combination of parameters which is externally opened. So, it is possible to detect if the request uses newly appeared parameters. In implementation, we used a hashed linked list for efficiency of searching time as shown in Fig. 4. The user request is transformed to the profile identifier type. Then
Fig. 4. The searching of profile record
254
Y. Yun et al.
the index is calculated using the type as a key. And then module searches the exact matching record from the linked-list. If the profile record were found, it checks the parameter length and type. In other case, the request is decided to be a abnormal. 4.2 Parameter Length Detection In case of buffer overflow or command injection attack, the length of user request is relatively longer than that of normal operation. So, we can detect the abnormal request by profiling its length from the normal activity. A query to the web server has a typical form as shown in (1). The parameter is divided by '&' character. Thus we can represent the consecutive queries as q1, q2, q3, ..., qk as shown in (4), where qk represents k-th query incoming to the web server. We can calculate the length profile as show in (5), where MaxLen is the maximum string length between the incoming values. We use this length which is calculated from profiling as a critical value for detection. If the request exceeds the length found from the profile record, it is determined as a abnormal request. However it may occur the false alarm, so profiled length need to be revised by administrator. q1 = {(p1, v11), (p2, v12), ..., (pn, v1n)}, q2 = {(p1, v21), (p2, v22), ..., (pn,v2n)}, ...., qk = {(p1, vk1), (p2, vk2), ..., (pn, vkn)}
(4)
Profile(Q)={(p1,MaxLen(v11, v21, ..., vk1)), (p2,MaxLen(v12, v22, ..., vk2)), ..., (pn,MaxLen(v1n, v2n, ..., vkn))}
(5)
Fig. 5. State diagram for parameter determination
A Design and Implementation of Profile Based Web Application Securing Proxy
255
4.3 Parameter Type Detection Our parameter type detection method determines the abnormal request by comparing the request parameter value type with the profiled variable types. In case the command injection in PHP, many special characters are used to separate each command and to specify the directory and file. The command injection attack usually has meta characters like single quote, double quote, colon, semi-colon, and back slash. In this paper, we define the type of parameter values as Number, Alpha, Alnum(alpha-numeric), Filechar, and Meta. We use the state diagram to determine the type of incoming parameter values as shown in Fig. 5. The state diagram have four start states and five final states. The consecutive input of numbers are determined as a Number state. If there is a alphabet charter in the interim, it is determined as a Alnum state. And, if there is a special character except Filechar, it will be determined as a Meta state. The reason why we separate the FileChar state from Meta state is that many applications use the filename as an input value.
5 Experiments and Analysis We implemented the proxy and profiler on the Redhat Linux 9.0, and experimented and analyzed on Apache web server focused on two aspects: the effectiveness of the proposed profiling method and the usefulness of the detection method. The former was inspected by the number of profile record that should be managed, and the latter by the rate of the false alarm. We chose four web applications that are widely used in real world, and each application is developed by different languages as shown in table 1. Table 1. Web applications that are used in experiments
Web application Zeroboard 4.1 p14 phpBB CrazyWebBoard 3.01 Awstats
Role Web BBS application Forum application Web BBS application Web statistics application
Type PHP PHP CGI Perl
5.1 Profiling Test We prepared the test data from existing web server and teleport program which can explore all links in pages and duplicate the web sites. We gathered profile records about several web servers which are operating phpBB, Crazywebboard, and awstats on the internet respectively as shown in Fig. 6. In case of zeroboard, we extracted the profile record from log data of our own web server which is currently operating. The result of the profiling test is shown in table 2. The number of total requests are related to only web application, and the profile rates are small relative to total request. We calculated the variation of the increment of profile record and divided the request
256
Y. Yun et al.
Fig. 6. Profiling test environment Table 2. The number of profile record
Web application Zeroboard 4.1 p14 phpBB 2.09 CrazyWebBoard 3.01 Awstats 6.2
Total Request 145,947 538 1,837 1124
# of profile record 152 18 8 16
Profile rate(%) 0.10 3.34 0.43 1.42
Fig. 7. The increment of profile record
into 10 % to 100% respectively. Then we generated the profile record for each data. Fig. 7 shows the increment of profile record. The increment rate of profile record is gradual. Thus, we can assure that the profile based detection method is applicable to the web application. 5.2 False Rate Test We executed a false rate test on the log data of 2005 of our own web server which is running zeroboard. We divided the log data into normal and abnormal respectively. The size of normal log data is 20.7MB and the number of requests are 145,947. And the size of abnormal log data is 265KB and the number of requests are 1,495. In order to test false positive rate, we divided the normal log data into 10% to 90% respectively. We generated the profile record for each percent, and used the remains
A Design and Implementation of Profile Based Web Application Securing Proxy
257
Fig. 8. False Positive Rate
as a test data. Figure 8 shows the false positive test result. The more profile rate increase, the more false positive rate decrease rapidly. When we changed profile rate form 10% to 20%, the false positive rate decreased rapidly. The reason is that the number of profile record has increased 80 to 96. In order to decrease the false positive rate, the profile record must be completely learned about full link of web application, and the profiled length and type have to be revised by administrator. In order to test the false negative rate, we profiled whole normal log data. And then, we used the abnormal log data as test data. The abnormal log data can be categorized as shown in table 3. Table 3. The number of profile record
Attack Type Remote PHP injection File disclosure Use of internal variables Query Manipulation Use of system command Request non-pages
# of Request 142 15 656 20 3 659
Table 4. The detection distribution
Attack Type Remote PHP injection File disclosure Use of internal variables Query Manipulation Use of system command Request non-pages # of detection
Profile Identifier 139 14 656 0 0 659 1468
Parameter Length 0 0 0 20 0 0 20
Parameter Type 3 1 0 0 3 0 7
258
Y. Yun et al.
As a result we got the table 4, and there was no false negative error. The reason is that most attacks are complex attacks which use remote php injection and internal variables. So, it was detected by detection method using profile identifier.
6 Conclusion In this paper, we proposed the web server securing method based on profiling which can detect and filter out the abnormal request on web application. And, we experimented and analyzed the result on implemented system. The implemented system is not dependant on web server and web applications, and operates as an application gateway. We can assure that profiling method is applicable to secure the web applications from the experimental result. We used four popular web applications which are implemented with different languages. It was verified that the number of profile record is relatively smaller than the number of request, and it can characterize whole requests. There was no false negative error in our experiment, so we can make sure that the proposed mechanism is effective. But, it is need to be examined more. The profiling based detection has a false positive problem, but it can be reduced by administrator's tuning. Finally, our future work will be aimed at implementing the proposed detection mechanism as a web server embedded module, as well as evaluating our system with more data sets.
References 1. Dean Turner, Stephen Entwisle, et al., "Semantec Internet Security Threat Report Volume VII", Semantec, Mar. 2005. 2. http://www.theregister.co.uk/2004/12/21/santy_worm/ 3. http://isc.sans.org/diary.php?date=2004-12-25 4. Jeffry R. Williams et al., "The Ten Most Critical Web Application Security Vulnerabilities", OWASP, 2004. 5. Mark Curphey, Joel Scambray, Erik Olson, "Improving Web Application Security: Threats and Countermeasures", Microsoft Corporation, 2003. 6. Ivan Ristic, "Web Intrusion Detection with Mod_Security", OWASP AppSec Europe. 7. Shreeraj Shah, "Defending Web Services using Mod Security(Apache)", NetSquare, 2004. 8. Ryan C.Barnett, "mod_security Web Intrusion Detection And Prevention", SANS, Dec 2003. 9. Scott, D., Sharp. R, "Abstracting Application-Level Web Security", Proc. of the World Wide Web Conference, 2002. 10. Y. W. Huang et al, “Securing Web Application Code by static Analysis and Runtime Protection”, Proc. of the World Wide Web Conference, May. 2004. 11. Michael Benedikt, Juliana Freire, Patri Godeproid, "VeriWeb: Automatically Testing Dynamic Web Sites", Proc. of the World Wide Web Conference, 2002. 12. Mark Curphey, David Endler, "A Guide to Building Secure Web Applications", OWASP, Sep 2002.
A Design and Implementation of Profile Based Web Application Securing Proxy
259
13. Christoher Kruegel, Giobanni Vigna, William Robertson, "A multi-model approach to the detection of web-based attacks", Computer Networks: vol.48, no.5, pp. 717-738, August 2005 14. Robert Auger, Ryan Barnett, "Web Application Security Consortium: Threat Classification Version 1.0", Web Application Security Consortium(www.webappsec.org), 2004. 15. Ory Segal, "Web Application Forensics: The unchatterd Territory", SANCTUM, 2002. 16. Sverre H. Huseby, "Common Security Problems in the Code of Dynamic Web Applications", Web Application Security Consortium(www.webappsec.org), June 2005. 17. BugTraq, http://www.securityfocus.com/archive/1
An Efficient and Practical Fingerprint-Based Remote User Authentication Scheme with Smart Cards Muhammad Khurram Khan and Jiashu Zhang Research Group for Biometrics and Security, Sichuan Province Key Laboratory of Signal and Information Processing, Southwest Jiaotong University, Chengdu, Sichuan, P.R. China [email protected], [email protected]
Abstract. Recently, Lee et al. proposed a fingerprint-based remote user authentication scheme using smart cards. We demonstrate that their scheme is vulnerable and susceptible to the attack and has some practical pitfalls. Their scheme performs only unilateral authentication (only client authentication) and there is no mutual authentication between user and remote system, so their scheme suscepts from the server spoofing attack. Furthermore, in their scheme, remote system generates and assigns the passwords, and users cannot choose and change their passwords. Moreover, passwords are long pseudorandom numbers and difficult to remember for a user. To solve these problems, we propose an efficient and practical fingerprint-based remote user authentication scheme using smart cards, which is based on one-way collision free hash functions. Proposed scheme not only overcomes all the drawbacks and problems of Lee et al.’s scheme, but also provides a secure and user-friendly fingerprint-based remote user authentication over insecure network. In addition, computational costs and efficiency of the proposed scheme are better than Lee et al.’s scheme.
1 Introduction Remote authentication is a mechanism to authenticate remote users over insecure communication network. Password-based authentication schemes have been widely deployed to verify the legitimacy of the remote users. In 1981, Lamport [1] proposed a password-based authentication scheme using password tables to verify remote user over insecure network channel. In Lamport’s scheme passwords are stored in database on the remote machine. But, if the passwords are compromised or stolen by the attacker, then it could have catastrophic affect on the integrity of the whole authentication system. To reduce this risk, in 2000, Hwang and Li [2] presented a novel id-based remote user authentication method without using the password table, and their scheme is based on El-Gamal public key encryption method [3]. Their scheme stores user credentials on the smart card and there is no need to maintain passwords on the remote system. Later on, many researchers proposed several Idbased remote users authentication schemes without using the password tables [4-23] and each scheme has its pros and cons. Recently, biometric-based authentication systems are becoming very popular because of their ability to differentiate between a legitimate user and imposter by K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 260 – 268, 2006. © Springer-Verlag Berlin Heidelberg 2006
An Efficient and Practical Fingerprint-Based Remote User Authentication Scheme
261
verifying their physiological or behavioral characteristics [24]. Most commonly use biometric techniques are face, fingerprint, iris, voice, and palm print etc., but fingerprint-based biometric authentication systems have attracted more attention and mostly deployed [25]. On the basis of excellent properties and easiness of fingerprint-based biometric authentication systems, recently Lee et al. [8] proposed a remote user authentication scheme using fingerprint and smart cards. Their scheme is an extension of Hwang and Li’s [2] scheme, which is based on ElGamal public key cryptosystem and does not require password tables on the remote server. In contrast with Hwang and Li’s scheme, Lee et al. utilized two secret keys to strengthen the security and claimed that introducing two secret keys can protect the system from the impersonation attack and forgery attack. Unfortunately, Bin et al. [9] identified that Lee et al.’s scheme suffers from the impersonation attack. They mentioned that Lee et al.’s scheme is insecure even using the fingerprint-based technique. More recently, Lin-Lai [20] and Ku et al. [22] also pointed out that Lee et al.’s scheme is susceptible to simple forgery and impersonation attacks, in which any intruder can impersonate a legitimate user without knowing the passwords and being verified by the fingerprint verification. Ku et al. identified that Lee et al.’s scheme is not repairable and has weakness; even they utilized two secret keys and fingerprint-biometric [22]. However, in this paper, we also demonstrate that Lee et al.’s scheme suffers from more attacks and has some practical pitfalls, which make their scheme infeasible to implement. We point out that their scheme only performs unilateral authentication (only client authentication) and user has no information about the authenticity of the remote system. Thus, their scheme is vulnerable to the server spoofing attack. We also identify that in their scheme, users can not choose and change their passwords, and passwords are computed by the remote system and assigned to the users, which are large pseudorandom numbers and difficult to remember. Furthermore, cost of maintaining and protecting two secret keys in Lee et al.’s scheme is also high, which is not an ideal solution. For the remedy of the problems and pitfalls in Lee et al.’s scheme, we propose an efficient and practical fingerprint-based remote user authentication scheme using smart cards. In contrast with Lee et al.’s scheme, our scheme is completely based on the oneway collision free hash functions, which are computationally faster than modular exponentiations [6]. Our scheme allows users to choose and change their passwords freely and securely, and length of passwords is according to user’s need and ease. Furthermore, in our scheme, user and remote system authenticate each other and perform mutual authentication. In addition, proposed scheme maintains only one secret key and there is no need to save the password tables on the server. Moreover, proposed scheme also improves those weaknesses of Lee et al.’s scheme which are identified by Bin et al [9], Lin-Lai [20], and Ku et al. [22]. Besides, the computation cost, security, and efficiency of the presented scheme is much better than Lee et al.’s scheme. Rest of the paper is organized as follows; Section II briefly reviews Lee et al.’s scheme, Section III demonstrates the weaknesses and practical pitfalls of their scheme, Section IV proposes an efficient and practical fingerprint-based remote user authentication scheme, Section V performs security analysis of the proposed scheme, Section VI elaborates efficiency of the presented scheme, and Section VII concludes this paper.
262
M.K. Khan and J. Zhang
2 Review of Lee et al.’s Scheme Lee et al.’s scheme is based on ElGamal public key cryptosystem and does not require maintaining the password tables in the database. Public elements are stored on the smart card and each user has to verify him/her by fingerprint-biometric. Their scheme is divided into three phases, namely; registration, login, and authentication. In the following subsections, we briefly review their scheme. Registration Phase In the registration phase, user Ui chooses his IDi, password Pwi, and imprints his/her fingerprint at the sensor. Then, remote system performs the following operations: 1. Computes IDi' = ( IDi ) SK1 mod p , where SK1 is the first private key of the server and p is a large prime number. 2. Computes PWi = ( IDi' ) SK 2 mod p , where SK2 is the second private key of the server and p is a large prime number. 3. Remote system personalizes the smart card, which contains the fingerprint template of the Ui and public information f ( ), p; and issues smart card to the Ui. Login Phase In the login phase, user inserts his smart card into the reader machine or terminal and enters his IDi and PWi , and imprints his fingerprint at the sensor. If user is verified, smart card performs the followings operations: 1. Generate a random number r using co-ordinates of minutia of the input fingerprint 2. Computes C1 = ( ID i ) r mod p
3. Computes t = f (T ⊕ PWi ) mod ( p − 1) , where T is the current timestamp of the input
device and ⊕ denotes XOR operation 4. Computes M = ( IDi ) t mod p 5. Computes C 2 = M ( PWi ) r mod p 6. User sends login message C = {IDi , C1 , C2 , T } to the remote server. Authentication Phase Remote system receives the message from the user and performs the following '
operations at time T : 1. Checks the format of IDi. If the format is not correct, remote system rejects the login request. 2. Verify the validity of time interval between T and T . If (T ' − T ) ≥ ∆T , where '
∆T denotes the expected valid time interval for transmission delay, then remote system rejects the login request. 3. If C 2 (C1SK 2 ) −1 mod p = ( IDiSK 1 ) f (T ⊕ PWi ) , the remote system accepts the login request otherwise, the login request is rejected.
An Efficient and Practical Fingerprint-Based Remote User Authentication Scheme
263
3 Weaknesses and Practical Pitfalls of Lee et al.’s Scheme Lee et al.’s scheme is vulnerable to the attacks and can easily be cryptanalyzed. In the following subsections, we demonstrate the weaknesses and pitfalls of their scheme. 1. Lee et al.’s scheme performs unilateral authentication i.e. only client authentication and there is no authenticity of the remote system. Their scheme has risk of manipulating the user’s data by setting up fake server by an adversary [21] [26] [27]. Here we assume that their scheme is deployed for e-banking or e-commerce applications and in these applications, client also wants to authenticate the remote party. However, in Lee et al.’s scheme, authentication is only one-way and client has no way to authenticate the server, so client cannot make trust on the originality of the remote server. Hence, their scheme is susceptible to the server spoofing attack. 2. In Lee et al.’s scheme, user of the system has no right to choose his/her password. Password is computed by the remote system and assigned to the Ui, but length of the password is very long and it is randomly generated by the secret key of the system. Here, we assume that the large prime number i.e. p is 1024 bits long to make discrete logarithm problem infeasible to compute, then the length of the password would become very long. So, it is almost impossible for a user to remember random and very long password assigned by the server, and which cannot be changed in their scheme. Hence, this drawback of Lee et al.’s scheme does not satisfy the requirement of the authentication protocols [12]. 3. In Lee et al.’s scheme, if the password of Ui is compromised or he/she wants to change the password for any reasons, then there is no-way to change or update the password. The only option for Ui is to change the smart card and apply for a new card, which is an inefficient solution and is cost and time effective. So, this drawback also not fulfills the user’s requirement of authentication protocols, because users of the system should be given right to change their passwords whenever they want [18] [22]. 4. Lee et al. claimed that use of two secret keys can protect their scheme from the impersonation attack, but unfortunately their scheme cannot withstand the impersonation attack as revealed in [9], [20], and [22]. So, use of the two secret keys in Lee et al.’s scheme is not an ideal and novel solution of protecting the system from the attacks. Moreover, the cost of maintaining two secret keys is also high in their scheme.
4 Proposed Efficient and Practical Scheme In this section, we propose an efficient and practical fingerprint-based remote user authentication scheme with smart cards, which can withstand the security and practical pitfalls found in Lee et al.’s scheme. Registration Phase In the registration phase, user Ui chooses his/her IDi and password Pwi, and submits to the registration center. Ui also imprints his/her fingerprint impression at the sensor, and then registration system performs the following operations:
264
M.K. Khan and J. Zhang
1. Computes Ai = h( IDi ⊕ x) , where x is the private key of the remote system and h(.) is collision free one-way hash function. 2. Computes Vi = Ai ⊕ h( pwi ⊕ S i ) , where Si is the extracted fingerprint template of the user. 3. Remote system personalizes the smart card with the secure information {IDi , Ai ,Vi , S i , h(.)} and issues smart card to the Ui. Login Phase If Ui wants to login into the system, he/she inserts his smart card into the terminal, *
enters IDi and pwi , and imprints fingerprint-biometric at the sensor. If Ui is successfully verified by his/her fingerprint-biometric, smart card performs the following operations: 1. Computes Bi = Vi ⊕ h( pwi* ⊕ S i ) , and verifies whether Bi equals to the stored
Ai or not. If they are equal, smart card performs further operations, otherwise terminates the operation. 2. Computes C1 = h( Bi ⊕ Tu ) , where Tu is the current timestamp of the input device. 3. At the end of login phase, Ui sends login message m = {IDi , C1 , Tu } to the remote server over an insecure network. Authentication Phase In the authentication phase, remote system receives the message from the user and performs the following operations:
1. Checks either if the format of IDi is invalid or Ts = Tu , where Ts is the current time stamp of the remote system, then rejects the login request. 2. If (Ts − Tu ) > ∆T , where ∆T denotes the expected valid time interval for transmission delay, then remote system rejects the login request. 3. Computes C1* = h ( h( IDi ⊕ x ) ⊕ Tu ) . If C1 is equal to the received C1 , it means user is authentic and remote system accepts the login request, and performs step 4 otherwise, the login request is rejected. 4. For the mutual authentication, remote system computes C 2 = h(h( IDi ⊕ x) ⊕ Ts ) and then sends mutual authentication message {C2 , Ts } to the Ui. 5. Upon receiving the message {C 2 , Ts } , user verifies either Ts is invalid or Tu = Ts , then user Ui terminates this session otherwise performs step 6. 6. Ui computes C 2* = h( Bi ⊕ Ts ) and compares C 2* ? = C 2 . If they are equal, user *
believes that the remote party is authentic system and the mutual authentication between Ui and remote server is completed, otherwise Ui terminates the operation.
An Efficient and Practical Fingerprint-Based Remote User Authentication Scheme
Password Change Phase Whenever Ui wants to change or update his/her old password
265
pwi to the new
' i,
*
password pw he/she inserts smart card into the terminal and enters his IDi and pwi , and also imprints fingerprint biometric at the sensor. If Ui is verified successfully, smart card performs the following operations without any help of the remote system: 1. Computes Bi = Vi ⊕ h ( pwi i* ⊕ S i ) = h ( IDi ⊕ x ) , 2. Verifies whether Bi equals to the stored
Ai or not. If they are equal, smart card
performs further operations, otherwise terminates the operation. 3. Computes Vi ' = Bi ⊕ h( pwi' ⊕ S i ) '
4. Stores Vi on the smart card and replaces the old value of Vi . Now, new password is successfully updated and this phase is terminated.
5 Security Analysis of the Proposed Scheme In this section, we perform security analysis of the presented scheme. 1. It is very difficult for anyone to derive the server’s secret key x from the hash value of Ai = h( IDi ⊕ x) , because of the security property of one-way hash functions [6]. 2. To withstand replay attacks, neither the replay of an old login message {IDi , C1 , Tu } nor the replay of the remote system’s response {C2 , Ts } will work. It would be failed in steps 2 and 5 of the authentication phase, because of the time interval validation, respectively. 3. From the login message {IDi , C1 , Tu } , it is infeasible to compute
Bi by using
equation C1 = h( Bi ⊕ Tu ) , because it is computed by the secure one-way hash function. 4. Proposed scheme protects from the forgery attack and impersonation attack found in Lee et al.’s scheme. An attacker can attempt to modify login message {IDi , C1 , Tu } into {IDi , C A , TA } . However, this impersonation attempt will be failed in the step 3 of the authentication phase, because an attacker has no way of obtaining the value of Bi* = h( IDi ⊕ x) to compute the valid value of C1 . 5. Server spoofing attack is completely solved by providing the mutual authentication between user and remote system. Remote system sends mutual authentication message {C 2 , Ts } to the user. If an attacker intercepts it and resends the forge message i.e. {C A , T A } to the user, it will be verified in steps 5 and 6 of the authentication phase because the value of C 2 is computed by C 2 = h (h ( IDi ⊕ x ) ⊕ Ts ) . In addition, replay of this message can be exposed because of the time stamp.
266
M.K. Khan and J. Zhang
6. The proposed scheme can prevent from the parallel session attack [14] and reflection attack [28], because remote server and user check whether Tu = Ts , respectively. 7. In the password change phase, user has to verify himself/herself by fingerprintbiometric and it is not possible to impersonate a legal user, because biometric is unique. Furthermore, the value of Bi is also compared with the value of Ai on the smart card. If these two values are not same, user is not allowed to change the password. Moreover, if the smart card is stolen or theft, unauthorized users can not change new password. Hence, our scheme is protected from the denial-of-service attack through stolen smart cards [21].
6 Efficiency of the Proposed Scheme The performance and efficiency of the proposed scheme are summarized in table 1. Our scheme is completely based on one-way collision free hash functions, which are computationally faster than modular exponentiations [6]. In the registration, login, and authentication phases, without mutual authentication, Lee et al.’s scheme requires 8 times exponential and 2 times hash operations. While on the other hand, proposed scheme requires only 9 hash computations with the mutual authentication so, the computational complexity of our scheme, in the authentication life cycle, is less than Lee et al.’s scheme. Furthermore, proposed scheme enables users to choose their passwords freely at the time of registration, while Lee et al.’s scheme does not allow users to choose their passwords, and passwords are computed by remote system, which are long and random, and user can not easily remember them. In our scheme users can change or update their passwords securely without the help of remote system. In contrast, in Lee et al.’s scheme, users have no way to change or update their passwords, which is an inefficient solution and it does not full fill the Table 1. Comparisons of efficiency
Lee et al.’s Scheme [8] Computation in registration phase
Proposed Scheme
2 TExp
2 TH
Computation in login phase
3 TExp, 1 TH
2 TH
Computation in authentication
3 TExp, 1 TH
phase
5 TH (with mutual authentication)
Choose password
Not Allowed
Allowed
Password change phase
Not supported
Supported
Mutual authentication
Not supported
Supported
Public information on smartcard
f(.), p
h(. )
Length of authentication message
C = {IDi , C1 , C 2 , T }
m = {IDi , C1 , Tu }
TExp : the computation time for modular exponentiation. TH : the computation time for a one-way hash function.
An Efficient and Practical Fingerprint-Based Remote User Authentication Scheme
267
requirement of authentication protocols [18] [22]. In addition, compared with Lee et al.’s scheme, only our scheme supports mutual authentication to protect the system from the server spoofing attack [21] [26]. By mutual authentication user also authenticates the remote party and establishes a trust on the authenticity of the server. The memory space on the smart cards is limited and it is cost effective [29], so to keep this issue in mind, our scheme consumes less memory space on the smart card to store user’s public information. Besides, length of the transmitted authentication message to the remote system is also short in our scheme. Hence, it is obvious that the proposed scheme is more efficient and securer than Lee et al.’s scheme in terms of computations, performance, efficiency, and security.
7 Conclusion In this paper, we demonstrated that a recently proposed fingerprint-based remote user authentication scheme, by Lee et al., is vulnerable and susceptible to the attack and has some practical pitfalls. To overcome the discrepancies of their system, we proposed an efficient and practical fingerprint-based remote user authentication scheme using smart cards. The proposed scheme is based on one-way collision free hash functions and does not maintain password tables on the remote server. Furthermore, users can choose their passwords freely and change or update them securely whenever they want. In addition, mutual authentication between user and remote system is also introduced, and users can trust on the authenticity of the remote party. Hence, the proposed scheme is protected from server-spoofing attack found in Lee et al.’s scheme. Moreover, lower computational cost, improved security, more user-friendliness, and increased efficiency of our scheme has proved a big achievement over Lee et al.’s scheme.
Acknowledgements This project is supported by ‘Southwest Jiaotong University Doctors Innovation Funds 2005’.
References 1. Lamport, L.: Password Authentication with Insecure Communication, Communications of the ACM, 24 (11) (1981) 770-772. 2. Hwang, M.S., Li, L.H. A New Remote User Authentication Scheme using Smart Cards, IEEE Transactions on Consumer Electronics 46 (1) (2000) 28-30. 3. El Gamal, T.: A Public-key Cryptosystem and a Signature Scheme Based on Discrete Logarithms, IEEE Transactions on Information Theory 31 (4) (1985) 469-472. 4. Wang, S. J., Chang, J.F.: Smart Card Based Secure Password Authentication Scheme, Computers and security 15(3) (1996) 231-237. 5. Yang, W.H., Shieh, S.P.: Password Authentication Schemes with Smart Cards, Computers and Security 18 (8) (1999) 727-733. 6. Sun H.M., An Efficient Remote User Authentication Scheme Using Smart Cards, IEEE Transactions on Consumer Electronics 46(4) (2000) 958– 961.
268
M.K. Khan and J. Zhang
7. Lee, C. C., Hwang, M. S., Yang W. P.: A Flexible Remote User Authentication Scheme Using Smart Cards, ACM Operating Systems Review 36 (3) (2002) 46-52. 8. Lee, J.K., Ryu, S.R., Yoo, K.Y.: Fingerprint-based Remote User Authentication Scheme Using Smart Cards, IEE Electronics Letters, (12) (2002) 554–555 9. Hsieh, B.T., Yeh, H.T., Sun, H.M., Lin, C.T, Cryptanalysis of a Fingerprint-based Remote User Authentication Scheme Using Smart Cards’. Proc. IEEE 37th Annual 2003 Int. Carnahan Conf. on Security Technology, Taipei, Taiwan, (2003) 349-350. 10. Shen, J. J., Lin, C. W., Hwang M. S., A Modified Remote User Authentication Scheme Using Smart Cards, IEEE Transactions on Consumer Electronics 49 (2) (2003) 414-416. 11. Chang, C. C., Hwang K. F.: Some Forgery Attacks on a Remote User Authentication Scheme Using Smart Cards, Informatics, 14 (3) (2003) 289 -294. 12. Shyi-Tsong, Wu., Bin-Chang C.: A User Friendly Remote Authentication Scheme with Smart cards, Computers & Security 22 (6) (2003) 547-550. 13. Leung, K. C., Cheng L. M., Fong A. S., Chan C. K.: Cryptanalysis of a Modified Remote User Authentication Scheme Using Smart Cards, IEEE Transactions on Consumer Electronics 49 (4) (2003) 1243-1245. 14. Hsu, C.L.: Security of Chien et al.’s Remote User Authentication Scheme Using Smart Cards, Computer Standards and Interfaces 26 (3) (2004) 167– 169. 15. Kumar, M.: New Remote User Authentication Scheme Using Smart Cards, IEEE Transactions on Consumer Electronics 50 (2) 2004) 597-600. 16. Yang, C. C., Wang R. C.: Cryptanalysis of a User Friendly Remote Authentication Scheme with Smart cards, Computers & Security 23 (5) (2004) 425-427. 17. Wu, S.T., Chieu B.C., A Note on a User Friendly Remote User Authentication Scheme with Smart Cards, IEICE Transactions Fundamentals 87-A (8) (2004) 2180-2181. 18. Yoon, E. J., Ryu E. K., Yoo K.Y.: Efficient Remote User Authentication Scheme based on Generalized ElGamal Signature Scheme, IEEE Trans. Consumer Electronics 50 (2) (2004) 568-570. 19. Hsu C.L.: Security of Chien et al.’s Remote User Authentication Scheme Using Smart Cards, Computer Standard and Interfaces, 26(3) (2004) 167-169 20. Lin, C.H., Lai, Y.Y, A Flexible Biometrics Remote User Authentication Scheme, Computer Standard and interfaces 27 (1) (2004) 19–23. 21. Yoon, E. J., Ryu E. K., Yoo K.Y: An Improvement of Hwang-Lee-Tang’s Simple Remote User Authentication Scheme, Computers and Security 24 (2005) 50-56. 22. W.C, Ku, S.T. Chang., M.H. Chiang.: Further Cryptanalysis of Fingerprint-based Remote User Authentication Scheme Using Smartcards, IEE Electronics Letters 41 (5) 2005 23. Lu, R., Cao, Z.: Efficient Remote User Authentication Scheme Using Smart Card”, Computer Networks (article in press), Online April 2005. 24. Jain, A.K., and Uludag, U.: Hiding Biometric Data. IEEE Transactions Pattern Analysis and Machine Intelligence, vol. 25(11) (2003) 1494-1498. 25. Jain, A.K., Hong L, Bolle R.: On-Line Fingerprint Verification. IEEE Transactions Pattern Analysis and Machine Intelligence, vol. 19(4) (1997) 302-314 26. Asokan, N., Debar, H., Steiner M, Waidner M.: Authenticating Public Terminals, Computer Networks 31 (8) (April 1999) 861-870. 27. Anderson, R. J.: Why Cryptosystems Fail, Proc. of First ACM Conference on Computer and Communications Security, USA (Nov. 1993) 215–227. 28. Mitchell, C.: Limitations of Challenge-response Entity Authentication, Electronic Letters, 25(17) (Aug. 1989) 1195-1196 29. Rankl, W., W. Effing (Editors): Smart Card Handbook, Third Edition, John Wiley & Sons UK, (2003).
Domain-Based Mobile Agent Fault-Tolerance Scheme for Home Network Environments Gu Su Kim and Young Ik Eom School of Information and Communication Eng., Sungkyunkwan University, 300 cheoncheon-dong, Jangan-gu, Suwon, Gyeonggi-do 440-746, Korea {gusukim, yieom}@ece.skku.ac.kr
Abstract. Mobile agent technology is very useful in home network environments and ubiquitous environments. For several reasons, a particular mobile agent may fail to operate during its movement between various platforms. For mobile agent recovery, a checkpoint can be used. However, devices in home network environments generally have minimal or no secondary storage. Therefore, a checkpoint cannot be saved on the device within a home network. In this paper, a scheme that safely recovers a mobile agent using a checkpoint saved within the home gateway is presented. When the mobile agent enters the single home network environment, , it registers its recovery policy and saves its checkpoint on the home gateway. At the checkpoint saving instance, a symmetric key generated by the home gateway encrypts the checkpoint, this symmetric key is also encrypted and stored together with the checkpoint. When the mobile agent is abnormally terminated or the device suddenly turns off from battery exhaustion or failure, the home gateway recognizes the exception in the mobile agent or device, recovering the mobile agent with the checkpoint according to the previously registered recovery policy.
1
Introduction
In a broad sense, an agent represents any program that acts on behalf of a (human) user. A mobile agent can be described as a program representing the user in a computer network, with the ability to migrate autonomously from node to node, performing select computation on behalf of the user [1, 2]. Several advantages such as reduction of network traffic, asynchronous and autonomous computation activities, dynamic adaptation capability, and robustness and faulttolerance [3] are gained by deploying mobile agent environments. Therefore, by applying the mobile agent concept to home networks, remote interactions and network traffic is reduced among the home network devices [4, 5]. When the mobile agent moves within devices in home networks, the device may suddenly turn off due to battery exhaustion or failure. At this point, the mobile agent may abnormally terminate. Therefore, fault-tolerance capabilities
This work was supported by National Center of Excellence in Ubiquitous Computing and Networking (CUCN), Korea.
K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 269–277, 2006. c Springer-Verlag Berlin Heidelberg 2006
270
G.S. Kim and Y.I. Eom
of the mobile agent need to be supported. In most systems supporting mobile agent fault-tolerance, the checkpoint is saved in a file system and the mobile agent is recovered using the checkpoint. However, devices in home network environments cannot save the checkpoint of the mobile agent in their storage because these devices have minimal or no storage and also have limited batter power. In this paper, a scheme safely recovering a mobile agent from failure due to device battery exhaustion or failure, or an exception of the mobile agent itself in home network environments is proposed. The proposed scheme stores the checkpoint of each device on the file system in the home gateway. For checkpoint confidentiality and security, the scheme encrypts the checkpoint at the checkpoint storing point. In Section 2, related work on the fault-tolerance scheme of the mobile agent is described. Section 3 describes our system architecture and the recovery process of the mobile agent using the checkpoint. Section 4 presents an analysis of the safeness of our mechanism described in Section 3. Finally, Section 5 concludes with a summary.
2
Checkpoint Security of Mobile Agents
A mobile agent may abnormally terminate at any location due to host failure (the platform that supporting the execution environment for the mobile agent) or the mobile agent itself [6]. For providing fault-tolerance capability, a mobile agent replication scheme has been proposed [7]. This scheme replicates a mobile agent and executes multiple instances of the mobile agent concurrently. Even through an instance of the agent abnormally terminates, other agents can complete the given job. However, this scheme increases the load on the system due to the execution of multiple instances and incurs the selection problem in that a voting mechanism needs to be provided to select the correct result among the results produced by many instances of the agent. There is another scheme designed for fault-tolerance, using checkpoints to recover mobile agents from the failure [8], this scheme is adopted in commercial mobile agent systems such as Voyager[9], Tacoma[10], and Concordia[11]. In this scheme, the checkpoint of a mobile agent includes the execution image, byte code, and the internal status of the mobile agent, the system saves the checkpoint when required during execution. When a mobile agent fails to operate, the system restarts the mobile agent from the checkpoint to recover the mobile agent. In this scheme, the mobile agent transmits the termination event to its home platform when it abnormally terminates, enabling the home platform to start the recovery procedure. Fault-tolerance schemes using checkpoints can be classified into agent-based schemes and platform-based schemes. In agent-based fault-tolerance schemes, a platform creates a special monitor agent. For example, Tacoma[10] creates a rear guard agent to monitor the execution of mobile agents in visiting platforms. If the rear guard agent finds an abnormal termination of a mobile agent, the rear guard
Domain-Based Mobile Agent Fault-Tolerance Scheme
271
recovers the mobile agent from its latest checkpoint. If the rear guard terminates, the mobile agent platform simply recreates another rear guard. Using a monitor agent for fault tolerance has the merit that different recovery policy can be applied for each mobile agent, however, it also has the disadvantage that frequent message exchanges occur between the monitor agent and the mobile agent. In platform-based fault-tolerance schemes, each platform manages checkpoints involved in the recovery process of the mobile agents. This scheme is used in Voyager[9] and Concordia[11]. In this scheme, a mobile agent periodically stores its checkpoint in the file system of the visiting platform. When the platform finds an abnormal termination of the mobile agent, the platform recovers the mobile agent using the latest checkpoint. This scheme uses no message exchange between agents, but there are disadvantages, a platform can provide only one recovery policy to all mobile agents in the platform and it is very difficult to provide a consistent recovery policy over all platforms. Using the checkpoint concepts can cause several security problems.Other mobile agents or programs can read or modify the checkpoints, because the checkpoint is saved in the file system. To keep the confidentiality and integrity of the checkpoint, it is necessary to encrypt the checkpoint, as used in Concordia. In Concordia, when an agent arrives at a platform, the Concordia Server creates a symmetric key and this key is delivered to the agent. The agent uses the symmetric key when encrypting its checkpoints. The symmetric key is also encrypted with the public key of the platform and stored with the encrypted checkpoints. In the recovery stage, it is necessary to decrypt the checkpoints, this decryption process requires the server’s private key. The system (or administrator) must ensure the confidentiality of the private key, this can be accomplished by storing the key on a secure file system or on removable media that can be physically secured by the administrator. Fault-tolerance scheme of Concordia guarantees the security of the checkpoints, but still has the inherent disadvantages of the platform-based schemes. Existing schemes use a method saving the checkpoint of the mobile agent in the file system of each platform and recovering the mobile agent with the checkpoint saved. These schemes are not suitable for devices on home network environments with very small or no secondary storage and low CPU speed.
3
Domain-Based Fault-Tolerance Scheme of the Mobile Agent
In this section, a mobile agent fault-tolerance scheme based on the checkpoint for the home network environments is described. 3.1
System Architecture and Assumption
We had developed the lightweight mobile agent system, called KAgent System [12], which is executable on the small devices based on Java 2 Micro Edition(J2ME) environments. The prototype of our domain-based fault-tolerance scheme is implemented in the KAgent System.
272
G.S. Kim and Y.I. Eom
ADF ARM
Cp
HG Single Home Network Environments (Domain)
MA
HG: Home Gateway ADF : Agent Directory Facility ARM: Agent Recovery policy Manager Cp: Checkpoint MA: Mobile Agent
Fig. 1. System Architecture
In the proposed scheme, the domain is defined as a single home network environment. A domain consists of a home gateway and several digital appliances. The home gateway has a high CPU speed, with abundant memory and secondary storage. Conversely, digital appliances have a low CPU speed with minimal memory and secondary storage. In addition, all devices in a domain have a platform assumed to support the execution environment for mobile agents. A home gateway periodically monitors whether devices in its domain are running or turned off. Home gateway manages Agent Directory Facility (ADF ) providing a directory service for mobile agents running on the domain. When the mobile agent moves between platforms, the target platform transmits the new location of the mobile agent to the ADF. The home gateway has the Agent Recovery policy Manager (ARM ) component for managing the recovery policy of the mobile agent. Figure 1 presents the proposed system architecture. In this architecture, We assume that the home gateway in the domain is trustable and not malicious. Our scheme is not the mobile agent protection scheme but the protection scheme of mobile agent’s checkpoint saved in the home gateway, therefore we don’t mention the mobile agent protection method against malicious attackers in the appliances. 3.2
Checkpoint Management
When a mobile agent is created on the home platform, a unique verification value, called vkey, is obtained from the home platform. This value is generated as follows: vkey = hash(M Aimage, KM A ) The MAimage is the code image of the mobile agent, and KM A is the private key of the mobile agent. The home platform stores the ID of the mobile agent and its vkey. The vkey is used to verify the checkpoint exception notification message during the recovery stage, discussed in Section 3.3.
Domain-Based Mobile Agent Fault-Tolerance Scheme
273
When a mobile agent enters a domain, the mobile agent moves to the platform in the domain through the home gateway. The home gateway first saves the checkpoint of the mobile agent in its file system. The checkpoint is protected from eavesdropping by other agents or software entities, because the checkpoint has important private information. To ensure protection, the proposed scheme encrypts the details, before storing the checkpoint in the file system. The key used to encrypt the checkpoint should be safely managed. The recovery process is performed according to the recovery policy of the mobile agent. When a mobile agent enters a domain, the mobile agent registers its ID, the recovery policy, and its vkey with the ARM. Recovery policy may have one of the following values: – REPORT ONLY : the home gateway only reports an exception to the mobile agent user. – REPORT RETURN : the home gateway transmits an exception report and the intermediate result of the mobile agent to the user. – RECOVER RESTART : the home gateway recovers the mobile agent with its checkpoint and again moves it to its current visiting domain. – RECOVER NEXTDOMAIN : the home gateway recovers the mobile agent with its checkpoint and moves it to the next domain to be visited. The home gateway manages the checkpoint according to the recovery policy of the mobile agent. If the recovery policy is REPORT ONLY, then the home
MakeCheckpoint(MobileAgent ma) // input : ma – mobile agent refrence { int MAID = ma.GetID(); // Extract the ID of the ma int rpolicy = ma.GetRecoveryPolicy(); // Extract the recovery policy from the ma byte *vkey = ma.GetVKey (); // Extract the verify key from the ma SaveRecoveryPolicy(ARM, MAID, rpolicy, vkey); if (rpolicy != REPORT_ONLY) { Checkpoint cp = GenerateCheckpoint(ma); // Generate the checkpoint of the ma SymKey Ks= GenerateSymmetricKey(MAID); // Generate the symmetric key for encryption byte *pecp = Encrypt(cp, Ks); // Encrypt the checkpoint with Ks if (rpolicy == REPORT_RETURN) { PublicKey Ku = GetPlatformPulbicKey(ma); // Get the public key of the home platform of ma byte *pekey = Encrypt(Ks, Ku); // Encrypt Ks with Ku SaveCheckpoint(pecp, pekey); // Save the checkpoint and key } else { // rpolicy is RECOVER_RESTART or RECOVER_NEXTDOMAIN Publickey Ku = GetHGPublicKey(); // Get the public key of the home gateway byte *pekey = Encrypt(Ks, Ku); // Encrypt Ks with Ku SaveCheckpoint(pecp, pekey); // Save the checkpoint and key } } }
Fig. 2. The algorithm of the checkpoint generation according to the recovery policy
274
G.S. Kim and Y.I. Eom
gateway doesn’t store the checkpoint. If the recovery policy is REPORT RETURN, the home gateway generates the symmetric key, Ks , and encrypts the checkpoint with Ks . The Ks is encrypted with the public key of the mobile agent’s + home platform, Khp , and stored with the checkpoint in the home gateway file system. In this case, in order to decrypt the checkpoint, the private key of the home platform, Khp , is required. Therefore, only a mobile agent’s home platform can recover the mobile agent with the encrypted checkpoint. If the recovery policy is RECOVER RESTART or RECOVER NEXTDOMAIN, the home gateway encrypts Ks using its own public key, Kg+ , storing it with the checkpoint in the file system. The stored checkpoint has the following appearance: + Khp (Ks )||Ks (Checkpoint) or Kg+ (Ks )||Ks (Checkpoint)
The image of the mobile agent recovered from the checkpoint is identical to the image of the mobile agent when first entering into the domain. Figure 2 shows the algorithm of the checkpoint generation according to the recovery policy when the mobile agent enters a domain. 3.3
The Recovery Process of the Mobile Agent
A mobile agent may abnormally terminate at a place due to the failure of a device or mobile agent itself. When a mobile agent moves through a device in a domain, a device can suddenly turn off due to battery exhaustion or failure, and the abnormal termination. If a device is turned off, the home gateway detects t device failure and searches mobile agents in the ADF for the failed device, attempting to recover the mobile agent with checkpoints according to the mobile agents specific recovery policy registered in the ARM. Another case the failure is the failure of the mobile agent itself. If the mobile agent is abnormally terminated by a software exception, the platform reports the mobile agent exception to the home gateway. The home gateway attempts to recover the mobile agent with its checkpoint according to its recovery policy registered in the ARM. Figure 3 presents the algorithm used when the home gateway recovers a specific mobile agent, according to its recovery policy. If the recovery policy is REPORT ONLY, the home gateway only transmits the exception notification to the home platform of the failed mobile agent. If the recovery policy is REPORT RETURN, the home gateway transmits the exception notification message with the encrypted checkpoint. The exception notification message consists of the following structure: + < M A ID, M AC, Khp (Ks )||Ks (Checkpoint) >
The M A ID represents the ID of the mobile agent, MAC represents the hash value of the checkpoint using vkey, saved in the ARM for checkpoint verification. Therefore, in this case, the recovery of the mobile agent can be performed only by its home platform. In the case where the recovery policy is RECOVER RESTART or RECOVER NEXTDOMAIN, the symmetric key, Ks , is encrypted by Kg+ , the public key of
Domain-Based Mobile Agent Fault-Tolerance Scheme
275
Recovery(int MAID) // input : MAID – the ID of the mobile agent for recovery { int rpolicy = GetRecPolicy(MAID); // Get the recovery policy of the mobile agent from ARM if(rpolicy == REPORT_ONLY) { // Send only exception notification message to the home platform of the mobile agent SendMessage(homeplatform, EXCEPTION_REPORT); } else { byte *ecp = GetCheckPoint(MAID); // Extracts the checkpoint from the file system byte *vkey = GetVkey (MAID); // Extracts the vkey of the mobile agent form ARM // Extracts the symmetric key for decrypting the checkpoint byte *ekey = GetCheckPointKey(ecp); if(rpolicy == REPORT_RETURN ) { // Calculates the MAC value for the encrypted checkpoint with vkey byte *pmac = GetMacValue(ecp, vkey); // Send the mac value, the checkpoint of the mobile agent, // and the encrypted key to the home platform SendCheckpoint(homeplatform, MAID, pmac, ecp, ekey); } else { // Read the encrypted checkpoint corresponding to MAID from the file system byte *ecp = ReadCheckPoint(MAID); byte *cp = DecryptCheckpoint(ecp, Kr); // Kr is the private key of HG // Recovers the mobile agent from the checkpoint MA ma = RecoveryFromCheckpoint(cp); if(rpolicy == RECOVER_RESTART) { Migrate(mydomain, ma); // Migrates the ma to the current domain } else { // RECOVER_NEXTDOMAIN Migrate(nextdomain, ma); // Migrates the ma to the next domain that should be visited DeleteCheckpoint(MAID); // Deletes the checkpoint from the file system } } } }
Fig. 3. The algorithm of the mobile agent recovery according to recovery policy
the home gateway. The home gateway decrypts Ks using Kg , the private key of the home gateway, decrypting the checkpoint using Ks . If the recovery policy is RECOVER RESTART, then the home gateway moves the mobile agent to its current visiting domain. If the recovery policy is RECOVER NEXTDOMAIN, then the home gateway moves the mobile agent to the next domain that should be visited. When the mobile agent leaves the domain, the home gateway removes its checkpoint and the recovery policy of the mobile agent in the ARM from its file system.
4
Safety Analysis
A mobile agent stores its checkpoint in the file system at the home gateway. If the checkpoint is simply stored in the file system, other programs can read the private information of the mobile agent and/or modify the contents of the checkpoint. In this section, possible attacks are presented and methods to prevent these attacks are discussed.
276
G.S. Kim and Y.I. Eom
(1) A situation where other programs attempt to read the contents of the checkpoint. Each home gateway encrypts the checkpoint of the mobile agent with Ks , pro+ ducing {Khp (Ks )||Ks (Checkpoint)} or {Kg+ (Ks )||Ks (Checkpoint)} according to the recovery policy, storing it in its file system. Therefore, for other programs to read the contents of the checkpoint, they must know Ks . + Ks ← Khp (Khp (Ks )) Checkpoint ← Ks (Ks (Checkpoint)) or Ks ← Kg (Kg+ (Ks )) Checkpoint ← Ks (Ks (Checkpoint))
Therefore, only the home platform or home gateway possessing Khp or Kg , + can read the contents of the checkpoint because the Ks is encrypted with Khp , + the public key of the home platform, or Kg , the public key of the home gateway, according to the recovery policy. (2) A situation where other programs attempt to modify the checkpoint. + For other programs modifying the checkpoint to create {Khp (Ks ) || Ks (Check + point )} or { Kg (Ks )||Ks (Checkpoint )}, they must be able to obtain Ks . Similar to situation (1), only the home platform can obtain Khp or only the home gateway can obtain Kg . Therefore, other programs cannot modify the checkpoint and the integrity of the checkpoint can be guaranteed. + (3) A situation where the home platform receives {Khp (Ks ) || Ks + (Checkpoint )} instead of {Khp (Ks )||Ks (Checkpoint)} from a malicious home gateway. + The home platform can receive the checkpoint of another mobile agent, Khp (Ks )||Ks (Checkpoint ), from a malicious home gateway at the recovery stage when the recovery policy is REPORT RETURN. The exception notification message has following structure: + < M A ID, M AC , Khp (Ks )||Ks (Checkpoint) > M AC = hash(Checkpoint , vkey )
During the recovery stage, when the home platform receives the checkpoint of another mobile agent, it compares the M AC in the exception notification message and with the MAC, the home platform hashes Checkpoint with vkey which the original mobile agent registers with the home platform. When the two values do not match, the home platform discards the checkpoint and does not recover the mobile agent. Therefore, the home platform recovers the mobile agent from checkpoint only with the MAC value hashed by the correct vkey.
5
Conclusion
In this paper, a scheme that can recover mobile agents with a checkpoint during abnormal termination according to the recovery policy designated by the user is
Domain-Based Mobile Agent Fault-Tolerance Scheme
277
presented. This proposed scheme uses the home gateway for saving the checkpoint because devices of home network environments have minimal or no storage. Therefore, the scheme saves the checkpoint of the mobile agent in the file system of the home gateway in the domain. When the mobile agent enters one domain, the home gateway registers the recovery policy of the mobile agent in the ARM and encrypts the checkpoint of the mobile agent with the symmetric key, storing it in the file system of the home gateway. The symmetric key used to encrypt the checkpoint is encrypted with the public key of the mobile agent’s home platform or the public key the home gateway according to the recovery policy stored with the checkpoint. Consequently, the confidentiality of the checkpoint stored is guaranteed because of the confidentiality of the asymmetric key. If device failure from battery exhaustion or failure, as well as an exception of the mobile agent itself occurs, the home gateway detects the abnormally terminated mobile agent and attempts to recover the mobile agent with its checkpoint according to the recovery policy.
References 1. N. M. Karnik and A. R. Tripathi, “Design Issues in Mobile-Agent Programming Systems,” IEEE Concurrency, Vol. 6, No. 3, Jul.-Sep. 1998. 2. N. M. Karnik and A. R. Tripathi, “Agent Server Architecture for the Mobile-Agent System,” Proc. PDPTA’98, Jul. 1998. 3. D. B. Lange and M. Ohima, Programming and Deploying Java Mobile Agents with Aglets, Addison Wesley, 1998. 4. J. Yoo and D. Lee, “Scalable Home Network Interaction Model Based on Mobile Agents,” Proc. PerCom’03, Mar. 2003. 5. K. TAKASHIO, G. SOEDA, and H. TOKUDA, “A Mobile Agent Framework for Follow-Me Applications in Ubiquitous Computing Environment,” Distributed Computing System Workshop 2001 International Conference, Apr. 2001. 6. W. Lin and Q. Yanping, “An Analytic Survey of Fault-Tolerance Mobile Agent Architecture,” http://www.cs.concordia.ca/agent/FTMA/FTMAsurvey.pdf. 7. S. Pleisch and A. Schiper, “Modeling Fault-Tolerant Mobile Agent Execution as a Sequence of Agreement Problems,” Proc. of the 19th IEEE Symposium on Reliable Distributed Systems, Germany, Oct. 2000. 8. A. R. Tripathi, T. Ahmed, and N. M. Karnik, “Experiences and Future Challenges in Mobile Agent Programming,” Microprocessors & Microsystems (Elsevier), Vol. 25, No. 2, Apr. 2001. 9. ObjectSpace Inc., “ObjectSpace Voyager Core Package Technical Overview,” Technical report, ObjectSpace Inc., Jul. 1997. 10. D. Johansen, R. Renesse, and F. B. Schneider, “Operating System Support for Mobile Agents,” Proc. the 5th IEEE Workshop on Hot Topics in Operating Systems, May 1995. 11. J. Peng and B. Li, “Mobile Agent in Concordia,” http://www.cs.albany.edu/mhc/Mobile/Concordia.pdf. 12. H. Cho, G. S. Kim, K. Kim, H. Shim, and Y. I. Eom, “Development of Lightweight Mobile Agent Platform for URC Environments,” Proc. of The 2nd International Conference on Ubiquitous Robots and Ambient Intelligence (URAmI 2005), Daejeon, Korea, Nov. 2005.
Using π-Calculus to Formalize Domain Administration of RBAC Yahui Lu1,2 , Li Zhang1 , Yinbo Liu1,2 , and Jiaguang Sun1,2 1
2
School of Software, Tsinghua University, Beijing 100084, China Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China {luyh03, lizhang, lyb01, jgsun}@mails.tsinghua.edu.cn
Abstract. With the wide implementations of Role-based access control (RBAC) models in the information systems, the access control for RBAC itself, administration of RBAC, becomes more and more important. In this paper, we propose a Domain Administration of RBAC Model, DARBAC, which defines an administrative domain for each administrative role. The administrative role can execute administrative operations on the users, roles, objects and child administrative roles within its administrative domain. Then we use π-calculus to formalize the elements of DARBAC model and their interactions. Although π-calculus has been successfully used in many security areas such as protocol analysis and information flow analysis, as we have known, our approach is the first attempt to use π-calculus to formalize RBAC and its administrative model.
1
Introduction
Role-based access control (RBAC) models[1, 2] have been widely used in the database management, security management and network operating system products. In RBAC model, the access rights to objects are assigned to roles, and users must be assigned to a role to get the access rights to objects. RBAC is more flexible and manageable than previous discretionary and mandatory models. In another view, the elements of RBAC model, such as roles, users, objects and their relationships, also need to be managed by access control mechanisms in order to guarantee the system security. Several RBAC administrative models have been proposed to set up access control rules on the management of RBAC[3, 4, 5, 6, 7]. But the administrative roles in these models can only manage parts of the elements of RBAC model. ARBAC[3, 4] and SARBAC[5] only focus on roles and modular administration[6] only focus on users and objects. In this paper, we propose a domain administrative model DARBAC for RBAC. In DARBAC, we introduce the administrative domain, which includes users, roles, objects in RBAC and child administrative roles in DARBAC. Each administrative role is assigned to an administrative domain and can only execute administrative operations within its administrative domain. The administrative domain is autonomic and extendable. So DARBAC can be easily used in distributed environments. K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 278–289, 2006. c Springer-Verlag Berlin Heidelberg 2006
Using π-Calculus to Formalize Domain Administration of RBAC
279
There are many methods in the formalization of RBAC administrative models, especially in the formalization of administrative objects and administrative operations. ARBAC uses role range[3] and SARBAC uses administrative scope[5] to represent roles managed by administrative role. Wedde et al use predicate logic[6] and Koch et al use Graph Transformation[7] to represent administrative operations. In this paper, we use π-calculus to formalize the RBAC administrative model. π-calculus is a kind of process algebra. It has the ability to communicate data through channels and change the connection relationships through process[9]. It has been successfully used in the protocol analysis[12], information flow analysis [13] and Workflow modeling[14]. As we have known, our paper is the first attempt to use π-calculus to formalize RBAC and its administrative model. This is the main contribution of our paper. This paper is organized as follows. Section 2 proposes the domain administration of RBAC model. Section 3 introduces the definition of π-calculus. Section 4 describes the formalization of DARBAC in π-calculus. Section 5 concludes our work and proposes further work.
2
DARBAC: Domain Administration of RBAC Model
In this section, we first introduce the related work in the research of RBAC administrative model. Then we describe the definition of DARBAC model. 2.1
Related Work
ARBAC [3, 4] is the first hierarchical administrative model which introduces administrative roles to manage the RBAC model itself. ARBAC includes three separate models: URA model to manage user-role assignment, PRA model to manage role-permission assignment and RRA to manage roles and role graph. ARBAC has several disadvantages. First, to represent roles, it uses the concept of role range, which makes the whole administrative model complicated and uneasy to be implemented. Second, it only manages roles and doesn’t mention how to manage users and objects. Ferraiolo et al define the administrative functions and their semantics in the proposed NIST RBAC Standard[2]. But they don’t define how to implement these administrative functions with RBAC and these administration functions are more conveniently implemented in centralized administrative environments. In SARBAC [5], Crampton et al introduce the concept of administrative scope to represent the roles managed by administrative roles. Administrative roles can be combined with role graph. So the administrative scope of each administrative role can be calculated directly by this role and administrative role graph. SARBAC avoids the first disadvantage of ARBAC, but it still mainly aims at the administration of roles. Wedde et al propose a model of modular authorization and administration[6]. They define units to organize the users and objects and define authorization sphere to include these units. The authorization teams can only manage the units
280
Y. Lu et al.
within their authorization sphere. But in their model, roles are not included in the authorization sphere and the management on roles can only be controlled by predicate logic expressions. Koch et al use graph to formalize the RBAC and use graph transformation rules to formalize the administrative operations on the elements of RBAC[7]. They also use the graph method to formalize the SARBAC model[8]. But in their graph formalization, the user is public and can be created and deleted by every administrative role without any restriction. One of the main disadvantages of these administration models is that in these models the administrative roles can only manage parts of the elements of RBAC. ARBAC, SARBAC and Graph formalization only focus on roles and modular administration only focus on users and object. To overcome this disadvantage, we propose the Domain Administration of RBAC model, in which we introduce the administrative domain to include users, roles and objects that can be managed by administrative roles. 2.2
Definition of DARBAC
We give the definition of DARBAC elements as follows (Figure 1). The detailed explanations by π-calculus of these elements are described in Section 4.
AOARA ARADA
AOP
AR
UARA
AD
AOUA
AO
AOPA
AORA RH
U URA
R
OP
P
OBJ
RPA
Fig. 1. The DARBAC Model
Definition 1. The DARBAC model has the following components: – U, R, AR, OBJ, OP: the set of users, roles, administrative roles, objects and operations on object. – P: the set of all permissions. P ⊆ 2OBJ×OP . – URA⊆ U × R : a many-to-many user to role assignment relation. – RPA⊆ R × P : a many-to-many permission to role assignment relation. – RH⊆ R × R : the role hierarchy. – UARA⊆ U × AR : a many-to-many user to administrative role assignment relation. – AOP: the set of all administrative operations, which include CreateUser, DeleteUser, AssignRoleUser, DeAssignRolePerm etc.
Using π-Calculus to Formalize Domain Administration of RBAC
281
– AO ⊆ 2U ×R×P ×AR : the set of all administrative objects, which include the child administrative roles, users, roles and permissions. – AD ⊆ 2AO×AOP : the set of all administrative domains. The administrative domain includes administrative objects and the administrative operations on these administrative objects. – ARADA ⊆ AR × AD : a one-to-one administrative role to administrative domain assignment relation. – AOARA ⊆ AR×AO : a many-to-many administrative role to administrative objects assignment relation. – AOU A ⊆ U × AO : a many-to-many user to administrative objects assignment relation. – AORA ⊆ R×AO : a many-to-many role to administrative objects assignment relation. – AOP A ⊆ P × AO : a many-to-many permission to administrative objects assignment relation. The main part of DARBAC is administrative domain. The administrative domain includes administrative objects and the administrative operations on these administrative objects. The administrative object includes users, roles, permissions, and child administrative roles. These inclusion relationships are defined by AOARA, AOUA, AORA and AOPA relations. The administrative operations which can be used by administrative role are also defined within the administrative domain. Example 1. Figure 2 shows the administrative domains and administrative roles in a software development department. The administrative domain of Product Team1 is defined as: PT1::={{},{Alice, Bob, Carl},{Designer, Auditor, Employee}, {{Code, read, write}, {Requirement, read}}, {CreateUser, AssignRoleUser, AssignRolePerm, DeAssignRoleEdge}}. PT1 includes users, roles, permissions and administrative operations. And in PT1 there haven’t child administrative roles. We assign Project Security Officer PSO1 to this PT1 domain. PSO1 can give Alice the write right to Code by assign Alice to Designer role and assign Designer role to permission (Code, write). PSO1 can also create users into PT1 domain but PSO1 can not delete any users in this domain. We can also define Senior Security Officer SSO, who has the administrative domain SDD::={{PSO1},{ }, {Manager},{ },{CreateRole, DeleteRole}}. SSO has all the administrative privileges of PSO1, and he can also assign Manager role to the users and permissions. In DARBAC model, the administrative role can operate on users, roles and permissions which are included in its domain. This is the main difference between DARBAC and other administrative models. Each administrative role can be flexibly defined and changed by modifying its administrative domain. So
282
Y. Lu et al.
SSD: Adm inistrative Dom ain of SSO
SSO
PT 1: Adm inistrative Dom ain of PSO1
PSO1 Manager
Alic e
Carl Bob
Designer
Auditor
Requirem ent Code
Em ployee
Fig. 2. The administrative domain and administrative role
the DARBAC model is more easy to be implemented in the distributed environments. Further more, because each administrative role can only execute the specified operations within its domain, even if this administrative role executes wrong operations, it can not influence users or permissions beyond its domain. Thus, the DARBAC model provides a safer mechanism for authorization and administration in RBAC model.
3
Introduction to π-Calculus
The π-calculus is a mathematical model of processes whose interconnections change as they interact[9, 10, 11]. In the π-calculus, there are two basic concepts. One is name. The channels, ports, variables, data are names. The other is processes, representing the entity in systems. The interaction between processes is done through a pair of complementary ports. Definition 2. The syntax of processes expression in the π-calculus is give bellow [10, 11]: – Prefixes: π ::= a<x>|a(x)|τ – Agents: P::=0 |π.P |P+Q |P|Q |if x=y then P else Q |if x =y then P else Q |(υx) P |A(y1 , · · · , yn ) – Definitions: A(x1 , · · · , xn )::=P, where i = j =⇒ xi = xj – Polyadic: a<x1 , · · · , xn >.P ::= (νp)a.p<x1 >.p<x2 >. · · · .p<xn >.P a(x1 , · · · , xn ).P ::= a(p).p(x1 ).p(x2 ). · · · .p(xn ).P Here are some explanations on the syntax: 1. 0 is inaction, which can not perform any action. 2. The output prefix a<x>: name x is sent along the name a. 3. The input prefix a(x): a name is received along a name a, and x is a placeholder for the received name.
Using π-Calculus to Formalize Domain Administration of RBAC
283
4. The unobservable prefix τ.P : Process can evolve to P invisibly to observer. 5. Sum P+Q: an agent can enact n either P or Q. A sum of several agents P1 + P2 + · · · + Pn is written as i=1 Pi . 6. Composition P|Q: the components P and Q can proceed independently and can interact via shared names. A composition of several agents P1 |P2 |· · · n |Pn is written as i=1 Pi . 7. Match if x=y then P else Q : this agent will behave as P if x and y are the same name, otherwise it behave as Q. 8. Mismatch if x =y then P else Q: this agent will behave as P if x and y are not the same name, otherwise it behave as Q. 9. Restriction υx.P: the scope of name x is limited to P and can be used for communication between the component within P. The channel may be passed over another channel for use by another process. 10. Identifier A(y1 , · · · , yn ): every Identifier has a Definition A(x1 , · · · , xn ) = P where xi must be pairwise distinct, and the A(y1 , · · · , yn ) behaves as P with yi replacing xi for each i. 11. Polyadic expression is extension to allow multiple objects in communications. We here also admit the case n=0 when there is no object at all and we denote this as a<> and a(). Definition 3. For convenience, we define some other notations which will be used in later. – AND::= then if. For example, if x=y AND z=s then P ⇔ if x=y then if z=s then P. − → – − x→ n ::= (x1 , x2 , · · · , xn ). xn is representation for n-dimension vector. − → − → – xn ↑ x ::= (x1 , x2 , · · · , xn , x).− x→ n ↑ x means we add x to vector xn to compose a n+1-dimension vector. ⎧ (x2 , · · · , xn ) f or i = 1 ⎨ (x1 , x2 , · · · , xi−1 , xi+1 , xn ) f or 1 < i < n – − x→ n ↓ xi ::= ⎩ (x1 , x2 , · · · , xn−1 ) f or i = n − − → x→ n ↓ xi means we delete xi from vector xn to become a n-1-dimension vector. – if x∈ /− x→ = x1 AND x = x2 · · · AND x = xn then P. n then P:: = if x – if x∈ − x→ n then P(yi ) ::= if x = x1 then P (y1 ) else if x = x2 then P (y2 ) · · · else if x = xn then P (yn ).
4
Formalize DARBAC Using π-Calculus
The π-calculus representation of elements in DARBAC is shown in Table 1 and Figure 3. In our formalization, every process has several ports which can be accessed by other processes. There are two kinds of ports: administrative ports such as du, dr, do and dar which can be accessed by administrative role, and the access ports such as role access port r and object access ports opi .
284
Y. Lu et al. Table 1. The π-calculus representation of DARBAC elements DARBAC element User Role Object Administrative Role Object Operation Role Hierarchy Administrative Object Administrative Operation User Role Assignment Role Permission Assignment
π-calculus Process U Process R Process O Process AR Channel Channel Channel Process Channel Channel
Port du dr and r do, op1 , · · · , opn dar op1 · · · opn link with r port link with du,dr,do and dar link with r port link with op1 · · · opn port
dar AR du
dr
r U
R
do op[1..n] OBJ
Fig. 3. The representation of DARBAC elements
4.1
User Process
The main task of user process is : – Receive the role access port name from the administrative role and link or unlink with this port – Interact with role process along the role access port – Receive the delete command from the administrative role and destroy itself n → → Definition 4. U(du,n,− rn )::= i=1 ri <>.U (du, n, − rn )+ (υx) du(command, x).if command=DELETE then 0 → → else if command=ARU AND x∈ /− rn then U(du,n,− rn ↑x) → → − else if command=DRU AND x∈ rn then U (du,n-1, − rn ↓ ri ) The User process has one administrative port du which can be accessed by administrative role process, and n links to role processes. It can access role process by ri channel, or destroy itself if the administrative role process execute the DeleteUser command, or receive the role access channel ri from administrative role process to link or unlink with that role process. Example 2. We can define the following user processes in Example 1. Alice::= U(du alice, 1, r des). Bob::= U(du bob, 0, 0). Carl::= U(du carl, 0, 0). The Alice process links with one role access port r des which means Alice is assigned with Designer role. The Bob and Carl processes have no role access ports.
Using π-Calculus to Formalize Domain Administration of RBAC
4.2
285
Object Process
The main task of object process is: – Receive the access from roles – Receive the query command from the administrative role and returns the required object operation port name – Receive the delete command form the administrative role and destroy itself n −−→ −→ −−→ Definition 5. OBJ(do,n,− op→ n ,topn ) ::= i=1 opi ().OBJ(do, n, opn , topn )+ (νx) do(command, x, type). if command=DELETE then 0 −−→ else if command=QUERY AND type∈ topn − − → then (x.OBJ(do, n, − op→ n , topn )) The OBJ process has one administrative port do which can be accessed by administrative role process and n operation ports which can be accessed by role processes. The object process can wait the access by role process along opi channel, or destroy itself if the administrative role process execute the DeleteObject command, or receive query command from administrative role process and returns the operation port opi . Here we use topi to identify the type of each operation port. For example, the name of one operation port is op1 and its type is read. The operation channel opi of each object process is different, but their type topi may be the same. Thus the administrative role process don’t need to store every operation port name of every object process, it just need to store the do port and use topi to query the real operation port name of that object. Example 3. We can define the following object processes in Example 1. Requirement::= OBJ(do req, 1, op5, read). Code::= OBJ(do code, 2, op1, op2, read, write). The Requirement object can be read via port op5. The Code object can be read via port op1 and written via port op2. 4.3
Role Process
The main task of role process is: – Receive the query command from administrative role and return its access port name – Receive the access by user and other roles along its access port – Receive the object access port name from administrative role and link or unlink this port – Receive the child role access port name from administrative role and link or unlink this port – Receive the delete command form the administrative role and destroy itself → −→) ::= r().R(dr, r, n, − → −→)+ Definition 6. R(dr, r, n, − rn , m, − op rn , m, − op m m n m − → − − → − → −→)) + (ri <>.R(dr, r, n, rn , m, opm )) + j=1 (opj <>.R(dr, r, n, rn , m, − op m i=1 (νx) dr(command, x). if command=DELETE then 0
286
else else else else else
Y. Lu et al.
if if if if if
→ −→)) command=QUERY then (x.R(dr,r, n, − rn ,m,− op m − − → → − −→ ↓ op ) op command=DRP AND x∈ opm then R(dr,r,n,rn , m-1, − m i − − → → − − −→ ↑ x) command=ARP AND x∈ / opm then R(dr,r,n,rn ,m+1,op m → −→) → command=DRR AND x∈ − rn then R(dr,r,n-1,− rn ↓ ri ,m,− op m → − → − − −→) command=ARR AND x∈ / rn then R(dr,r,n+1,rn ↑ x,m,op m
The role process contains one administrative port dr to be accessed by administrative role process, one access port r to be accessed by user and other role processes, n links to its child roles and m links to object access ports. The role graph can be maintained by storing the child roles’ access ports and changed by administrative role’s AssignRoleEdge and DeAssignRoleEdge commands. Example 4. We can define the following role processes in Example 1: Manager::=R(dr man,r man,2,r des,r aud,0,0). Designer::=R(dr des,r des,1,r emp,1,op2). Auditor::=R(dr aud,r aud,1,r emp,0,0). Employee::=R(dr emp,r emp,0,0,0,0). The Manager role process has role access ports of its child role: port r des (Designer role) and port r aud (Auditor role). The Designer role process has one role access port r emp (Employee role) and one object access port op2 which means Designer can write Code object via op2. 4.4
Administrative Role Process
The main task of administrative role process is: – Store the administrative ports of users, roles, objects and child administrative roles within its administrative domain – Execute administrative operations in its administrative domain −−→ −−→ −→ −−→ −−→ Definition 7. AR(ar,s,dars ,k,duk ,l,drl ,m,dom , n, topn )::=(υ du,dr,r,do,− op→ n) −−→ −−→ −→ −−→ −−→ (CreateUser(ar,du)|AR(ar,s,dars ,k+1,duk ↑ du,l,drl ,m,dom , n, topn )) −−→ −−→ −→ −−→ −−→ +(CreateRole(ar,dr,r)|AR(ar,s,dars ,k,duk ,l+1,drl ↓ dr,m,dom , n, topn )) −−→ −−→ −→ −−→ −−→ −−→ +(CreateObj(ar,do,− op→ n , topn )|AR(ar,s,dars ,k,duk ,l,drl ,m+1, dom ↑ do, n, topn )) k −−→ −−→ −→ −−→ −−→ + i=1 (DeleteUser(ar,dui ).AR(ar,s,dars ,k-1,duk ↓ dui ,l,drl ,m,dom , n, topn )) l −−→ −−→ −→ −−→ −−→ + i=1 (DeleteRole(ar,dri ).AR(ar,s,dars ,k,duk ,l − 1, drl ↓ dri ,m,dom , n, topn )) m −−→ −−→ −→ −−→ −−→ + i=1 (DeleteObj(ar,doi ).AR(ar,s,dars ,k,duk ,l,drl ,m-1,dom ↓ doi , n, topn )) k l + (AssignRoleUser(ar,dui ,drj )+DeAssignRoleUser(ar,dui ,drj )) k i=1k j=1 + i=1 j=1 (AssignRoleEdge(ar,dri ,drj )+DeAssignRoleEdge(ar,dri ,drj )) l m n + i=1 j=1 t=1 (AssignRolePerm(ar,dri ,doj , topt )+ −−→ −−→ −→ −−→ −−→ DeAssignRolePerm(ar,dri ,doj , topt )) .AR(ar,s,dars ,k,duk ,l,drl ,m,dom , n, topn ) The administrative role process has one administrative port ar to be accessed by other administrative roles, s administrative ports of child administrative role processes, k administrative ports of user processes, l administrative ports of role processes, m administrative ports of object processes and n operation types of objects. The administrative role process is composed by administrative operations.
Using π-Calculus to Formalize Domain Administration of RBAC
287
Example 5. We define the following administrative role processes in Example 1: SSO::=AR(dar sso,1,dar pso1,0,1,dr man,0,0). PSO1::=AR(dr pso1,0,3,du alice,du bob,du carl,3,dr des,dr aud,dr emp,2, do code,do req,2,read,write). The SSO administrative role(dar sso) has 1 child administrative role PSO1 (port dar pso1) and one role Manager (port dr man)in its domain. The PSO1 administrative role(dar pso1) has three users(du alice,du bob,du carl), three roles (dr des,dr aud,dr emp) and two objects (do code,do req) in its domain. 4.5
Administrative Operation Process
The administrative operations are used by administrative role to manage users, roles, objects and their relations within its administrative domain. Process reduction rules can be used to explain the meaning of each administrative operation. Definition 8. The administrative operation processes are defined as follows: CreateUser(ar,du)::=U(du,0,0) CreateRole(ar,dr,r)::=R(dr,r,0,0,0,0) −−→ −→ −−→ CreateObj(ar,do,− op→ n , topn )::=OBJ(do,n,opn , topn ) DeleteUser(ar,du)::=du m DeleteObj(ar,do)::=do. i=1 DeAssignRolePerm(dri ,do) k DeleteRole(ar,dr)::=dr. i=1 DeAssignRoleUser(dui ,dr). l i=1 DeAssignRoleEdge(dri ,dr) AssignRoleUser(ar,du,dr)::=(υt)(dr.t(x).du) DeAssignRoleUser(ar,du,dr)::=(υt)(dr.t(x).du) AssignRolePerm(ar,dr,do,top)::=(υt)(do.t(x).dr) DeAssignRolePerm(ar,dr,do,top)::=(υt)(do.t(x).dr) AssignRoleEdge(ar,dr1 ,dr2 )::=(υt)(dr2 .t(x).dr1 ) DeAssignRoleEdge(ar,dr1 ,dr2 )::=(υt)(dr2 .t(x).dr1 ) Here are some examples of administrative operations. Example 6. SSO creates user David (Figure 4). SSO::= AR(dar sso,1,dar pso1,0,0,1,dr man,0,0) =⇒ CreateUser(dar sso,du dav) | AR(dar sso,1,dar pso1,1,du dav,1,dr man,0,0) =⇒ · · · =⇒ U(du dav,0) | AR(dar sso,1,dar pso1,1,du dav,1,dr man,0,0) = David | SSO Example 7. PSO1 assign Bob to Auditor role(Figure 5). PSO1 | Auditor | Bob =⇒ AssignRoleUser(dar pso1,du bob,dr aud) | Auditor | Bob | PSO1 =⇒ (υt)(dr aud.t(x).du bob) | R(dr aud,r aud,1,dr emp,0,0) | U(du bob,0,0) | PSO1 =⇒ (υt)(t(x).du bob) | (t.R(dr aud,r aud, 1, r emp,0,0)) | U(du bob,0,0) | PSO1 =⇒ · · · =⇒ R(dr aud,r aud,1,r emp,0,0) | U(du bob,1,r aud) | PSO1 = Auditor | Bob | PSO1
288
Y. Lu et al. dar_sso
dar_sso SSO'
dar_pso1
dr_m an
David
dar_pso1
r_m an
dr_m an r_m an
Manager
PSO1
du_dav SSO'
CreateUser
Manager
PSO1
Fig. 4. Create User dar_pso1
dar_pso1
PSO1
PSO1 dr_aud r_aud Bob
Auditor
dr_aud AssignRoleUser
r_aud Bob'
Auditor
Fig. 5. AssignRoleUser
Example 8. SSO deletes Manager role. SSO | Manager =⇒ DeleteRole(dar sso,dr man).AR(dar sso,1,dar pso1,0,0,0,0) | Manager =⇒ · · · =⇒ AR(dar sso,1,dar pso1,0,0,0,0)
5
Conclusion and Future Work
In this paper, we propose DARBAC model, a domain administration model for RBAC. In this model, administrative role can execute administrative operations on users, roles, objects and child administrative roles within its administrative domain. Then we use π-calculus to formalize the elements of DARBAC model. Process reduction rule can be used to explain the meaning of each administrative operation. The work presented in this paper can be extended in several directions. First, in this paper we only use the process reduction to represent the dynamic behaviors of administrative role. We can use other π-calculus analysis methods, such as bisimulation, congruence and modal mu-calculus, to further analyze the safety properties and expressive powers of our DARBAC model. Second, we can use the method in this paper to formalize other access control models such as DAC, MAC etc and compare the safety properties and expressive powers of these models in a unified π-calculus background.
Acknowledgement The work described in this paper was partially supported by The National Basic Research Program of China (Grant No. 2002CB312006) and the National HighTech R&D Program of China (Grant No.2003AA411022).
Using π-Calculus to Formalize Domain Administration of RBAC
289
References 1. Ravi S. Sandhu, Edward J. Coyne, Hal L.Feinstein, and Charles E. Youman. Rolebased access control models. IEEE Computer, 29(2):38–47, February 1996. 2. David F. Ferraiolo, Ravi Sandhu, S. Gavrila, D. Richard Kuhn and R. Chandramouli. Proposed NIST Standard for Role-Based Access Control. ACM Transactions on Information and System Security, 4(3):224–274, August 2001. 3. Ravi S. Sandhu, Venkata Bhamidipati, Qamar Munawer: The ARBAC97 Model for Role-Based Administration of Roles. ACM Transactions on Information and Systems Security, 2(1): 105-135 (1999). 4. Sejong Oh, Ravi S. Sandhu. A model for role administration using organization structure. SACMAT 2002: 155-162 5. Jason Crampton and George Loizou. Administrative scope: A foundation for rolebased administrative models. ACM Transactions on Information and System Security, 6(2), 201-231, 2003 6. H F. Wedde and M. Lischka. Modular Authorization and Administration. ACM Transactions on Information and System Security, 7(3): 363-391, August 2004. 7. M.Koch, LVMancini, F.Parisi-Presicce. A Graph based Formalism for RBAC. ACM Trans. Information and System Security, 5(3): 332-365, August 2002. 8. Manuel Koch, Luigi V. Mancini, Francesco Parisi-Presicce: Administrative scope in the graph-based framework. SACMAT 2004: 97-104. 9. R. Milner, J.Parrow, and D.Walker. A Calculus of Mobile Processes, Part I/II, Journal of Information and Computation, 100(1):1-77, Sept.1992. 10. Joachim Parrow. An Introduction to the Pi calculus, Handbook of Process Algebra, Elsevier, 2001,pp. 479-543. 11. Davide Sangiorgi and David Walker. The pi calculus: A theory of Mobile Processes, Cambridge University Press, 2001. 12. Martin Abadi, Andrew D. Gordon. A Calculus for Cryptographic Protocols: The Spi Calculus. ACM Conference on Computer and Communications Security 1997: 36-47. 13. M. Hennessy and J. Riely. Information Flow vs. Resource Access in the Asynchronous Pi-Calculus. ACM Transactions on Programming Languages and Systems, 24(5):566–591, September 2002. 14. Julian A. Padget, Russell J. Bradford: A pi-calculus Model of a Spanish Fish Market - Preliminary Report. First International Workshop on Agent Mediated Electronic Trading, AMET 1998: 166-188
An Efficient Way to Build Secure Disk∗ Fangyong Hou, Hongjun He, Zhiying Wang, and Kui Dai School of Computer, National University of Defense Technology, Changsha, 410073, P.R. China [email protected]
Abstract. Protecting data confidentiality and integrity is important to ensure secure computing. Approach that integrates encryption and hash tree based verification is proposed here to protect disk data. Together with sector-level operation, it can provide protection with characters as online checking, high resistance against attacks, any data protection and unified low-level mechanism. To achieve satisfied performance, it adopts a special structure hash tree, and defines hash sub-trees corresponding to the frequently accessed disk regions as hot-access-windows. Utilizing hot-access-windows, simplifying the layout of tree structure and correctly buffering portion nodes of hash tree, it can reduce the cost of protection sufficiently. At the same time, it is convenient for fast recovery to maintain consistency effectively. Related model, approach and system realization are elaborated, as well as testing results. Theoretical analysis and experimental simulation show that it is a practical and available way to build secure disk.
1 Introduction Providing a privacy and tamper-proof environment is crucial factor for ensuring secure or trusted computing. In this paper, we focus on protecting data confidentiality and integrity of mass storage device, with the specific instance of locally connected hard disk. Here, confidentiality means to prevent unauthorized data disclosure, while integrity means protection of data from corruption or unauthorized modification. Providing confidentiality is usually fulfilled through cryptography, and secret key cryptography (or symmetric cryptography, such as block cipher like AES) is applied to protect a mass of data. Generally, the process of encryption/decryption is relative straightforward. Providing solid integrity is a difficult task, especially when online checking and resistance against replay attack are required. Online mode is to check integrity after each access. It can avoid committing error result (for example, checking integrity of a file cannot detect an invalid data block before all the data blocks of the file reached; if portions of the file have taken effect before the entire file is verified, errors may be committed), but requires more frequent checking than offline checking (which checks whether the untrusted storage device performs correctly after a ∗
This work is supported by National Laboratory for Modern Communications (No. 51436050505KG0101).
K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 290 – 301, 2006. © Springer-Verlag Berlin Heidelberg 2006
An Efficient Way to Build Secure Disk
291
sequence of operations have been performed). A replay attack means that an intruder stores a message and its signature (which is often a hash result), then uses them to spoof users later. Generally, integrity is verified by its integrity code, which is also referred to as MAC (Message Authentication Code). However, MAC is brittle to replay attack. To resist against replay attack, hash tree, or Merkle tree [1], is widely used. Hash tree regards the content of all files/blocks at some point as one continuous set of data, and maintains a single (all of the data, hash) pair. Relying on its trusted root, an arbitrarily large storage can be verified and updated [2]. In such way, an intruder cannot replace some of the files (or blocks) without being detected. Although hash tree can provide online checking and resist against replay attack, a naive hash tree will make the system too slow to use, as its checking process involves many node accesses. Some optimizing measures are put forward. For example, CHTree [3] uses L2 Cache to store portion nodes of hash tree to improve the performance when applying hash tree for memory verification. LHash/H-LHash [4] uses an incremental multisets hash method to maintain access logs to make checking at a latter time (which should be seen as offline checking). There exist many systems that protect mass data. Among them, some only provide confidentiality, some give integrity relying on MAC, and some use the principle of hash tree to resist against replay attacks. CFS [5] and Cryptfs [6] encrypt file data to provide confidentiality. Tripwire [7] uses the principle of MAC to check the integrity of files. SFSRO [8] uses hash of a file-data block as the block identifier to guarantee the integrity of content data. SUNDR [9] uses a hash of a block as the block identifier and a hash tree to provide data integrity at the file system level. PFS [10] keeps a list called the block map to map a file system block number to a hash of a block to protect data integrity. Arbre [11] builds hash tree into file system design tightly to protect integrity of the entire file system. But nearly all of these existing systems suffer from integrity protection. For example, PFS cannot prevent replay attack. Arbre inherits some limitations that other tree-structured file systems have, which makes an application requiring frequent synchronizations performs poorly. In this paper, we bring forward an approach to protect hard disk confidentiality and integrity. Firstly, it operates at sector level to give low-level protection, which makes meta-data and file data to be protected at the same time and is easy to be deployed into existing systems. Secondly, it applies encryption to prevent intruders from understanding data. Lastly, it constructs a hash tree to provide integrity with online mode, and to verify the whole protected data space as a single unit to resist against the intractable replay attack. Through simplifying the structure of hash tree, utilizing local character of hard disk access, buffering some of the hash tree nodes, as well as other measures like asynchronous verification, it can optimize hash tree checking process adequately to achieve high performance. The rest of this paper is organized as follows. Section 2 elaborates the fundamental method of our protection. Section 3 describes the specific system realization. Section 4 makes performance evaluation. Section5 discusses some related things. Section 6 concludes this paper.
292
F. Hou et al.
2 Protection Approach 2.1 Model Considering the case that a hard disk connects to host through local interface/bus (such as IDE or ATA), the protection model is shown as fig.1. 7UXVWHG 8QWUXVWHG +RVW 6HFXUH'ULYHU
,QWHUIDFH
+DUG'LVN
Fig. 1. The considered protection model. The trusted boundary lies between host and the attached hard disk.
In fig.1, hard disk is assumed to be vulnerable to attack. The trusted boundary lies between host and hard disk; that is, both processor/controller and system memory are treated to be trusted. This is reasonable when considering hard disk protection individually. Existing techniques [3, 12] can be used to verify or protect system memory, if necessary. A special component of “SecureDriver” lies in the inner part of trusted boundary, and it is to: (i) provide confidentiality by encrypting any data stored to hard disk, (ii) provide integrity by checking the value that host loads from a particular location of disk is the most recent value that it stored to the same place. With the proposed model, our approach tries to achieve the following purposes. − Low-level protection. We want protection mechanism not to touch file system and to work at the lowest level of disk operation. Directly operating upon each disk sector makes our mechanism a unified protection and can protect any data in disk (metadata, file data, as well as temp regions like the swapped pages of virtual-memory). At the same time, neglecting high-level data managements gives transparent protection to existing systems, and such low-level mechanism can be implemented straightforwardly on both legacy and modern storage systems (no matter for a file system or for a raw disk, and no matter using UNIX or Windows OS). − Data encryption. Any data stored in hard disk should be encrypted. − Integrity checking with online mode and resistance against replay attack. To realize such purpose, hash tree is perhaps the only feasible way. However, hash tree may incur a big cost to complete its checking processes, which is contradictory to realizing high performance. So, making sufficient optimizing of hash tree becomes the key solution to disk protection. − Consistency. As hard disk is permanent storage device, maintaining a consistent state in the event of a system crash is required. − Performance. To make protection to be worthwhile, it must not impose too great a performance penalty. Related protection processes should be high performance.
An Efficient Way to Build Secure Disk
293
2.2 Integrity Verification Through Hash Tree Hash Tree Optimizing. Utilizing the character of the protection model, we propose a simple but available method to optimize hash tree checking process as following. We build a single hash tree on the whole protected disk space, then, we define an access-window to be a hash sub-tree that corresponds to one hard disk sub-space. Thus, the entire hash tree consists of a number of access-windows. As disk access has strong local pattern, we define hot-access-windows to be the special access-windows that are frequently accessed for a given period, while other access-windows to be cool-accesswindows. Basing on these concepts, a tree style hash scheme is illustrated in fig.2. URRW K
K K KK KRW:LQ
8SSHUPRVW/HYHO 5RRW
K
0LGGOH/HYHO 7RS /RZHVW/HYHO /HDI
Fig. 2. The special hash tree with simplified structure and hot-access-windows. Structure specialization and hot-access-window give the way to make optimization.
In fig.2, a special hash tree with fixed three levels is constructed. The lowest-level nodes are leaf nodes. Each middle-level node is the collision-resistance hash of the leaf nodes affiliated with it. The root node lies in the uppermost-level, and is created from hashing the result that concatenates all the middle-level nodes. The whole protected space is split into access-windows, and each access-window has one middle-level node as the top node of its hash sub-tree. For example, h1, h2, h3 and h4 compose an accesswindow. When being frequently accessed, it becomes a hot-access-window, such as hotWin1. In hotWin1, one middle-level node of hash tree, h5, becomes the top node of the hash sub-tree in hotWin1. The integrity of h1, h2, h3 and h4 can be verified by h5, and updating of them can be aggregated at h5. The integrity of h5, as well as other top nodes of access-windows (e.g., h6), can be verified by root, and updating of them can be aggregated at root. In such way, dynamically changing data in the whole protected space can be verified and updated. To make it work well, rules and processes are designed as below. − Rules. Access-window has fixed width. Hot-access-windows can be located continuously to cover a bigger protected region, or distributed discretely in different places to cover many small regions. − Process1-- Initialize. Do once for normal working cycle: (i) reads all the protected data blocks to construct all the nodes of hash tree; (ii) saves all the top nodes of access-windows to non-volatile storage device (such as flash memory disk, or be placed in a special region of hard disk); (iii) saves the root node to non-volatile and secure place (such as an equipped flash memory device in the inner part of trusted boundary).
294
F. Hou et al.
− Process2-- Start. At the very beginning of each normal start, to do: (i) loads the saved top nodes and fills them into working buffer; (ii) concatenates all the top nodes of access-windows together, and computes the hash of the concatenated data; (iii) checks that the resultant hash matches the saved root node. − Process3-- Prepare an access-window. To do: (i) reads the protected data blocks covered by this access-window; (ii) hashes each block to get each leaf node; (iii) concatenates all the leaf nodes of this access-window together, and computes the hash of the concatenated data to get the top node. − Process4-- Construct a hot-access-window. To do: (i) executes as "Process3"; (ii) checks that the new generated top node matches the buffered top node of this hotaccess-window; (iii) buffers all the generated leaf nodes. − Process5 -- Verify a read covered by a hot-access-window. To do: (i) calculates the hash of the data block that is currently read; (ii) checks that the resultant hash matches the corresponding buffered leaf node. − Process6-- Update for a write covered by a hot-access-window. To do: (i) sets a flag to indicates that this hot-access-window has been modified; (ii) calculates the hash of the data block that is currently written; (iii) replaces the corresponding buffered leaf node with the resultant hash result. − Process7-- Remove a hot-access-window. For a no longer frequently accessed hotaccess-window, to do: (i) jumps to step (iv) directly, if this hot-access-window hasn’t ever been modified; (ii) concatenates all the leaf nodes of this hot-accesswindow together, and computes the hash of the concatenated data; (iii) updates the corresponding buffered top node of this hot-access-window with the resultant hash; (iv) withdraws this hot-access-window to abolish its buffered leaf nodes; (v) builds a new hot-access-window in another place (during working time, it implies to create a new hot-access-window if withdrawing an old one). − Process8-- Verify a read covered by a cool-access-window. To do: (i) executes as "Process3"; (ii) checks that the new generated top node matches the buffered top node of this cool-access-window. − Process9-- Update for a write covered by a cool-access-window. To do: (i) executes as "Process3"; (ii) replaces the buffered top node of this cool-access-window with the new generated one. − Process10-- Exit. At each normal exit, to do: (i) withdraws all the hot-accesswindows as "Process7" (without creating new hot-access-windows); (ii) concatenates all the top nodes of access-windows together, and computes the hash of the concatenated data; (iii) updates the root node with the resultant hash; (iv) saves back all the top nodes to their permanent storage place (as mentioned in "Process1"). The concept of hot-access-window is similar to Hou et al. [13]. But here, as system memory is treated to be trusted, related processes are significantly different to make better utilization of a relative big trusted buffer. It also has some similarities with CHTree method. But its simplified structure and regular allocation scheme differ greatly. Additionally, its regularity gives more facilities for the recovery process than CHTree does. By buffering all the leaf nodes of hot-access-window, checking in hot-accesswindow doesn’t need additional disk accesses. Checking in cool-access-window only
An Efficient Way to Build Secure Disk
295
need to read the disk region covered by one access-window. Top nodes of hot-accesswindows are updated only when withdrawing, and root node is updated only when exiting. So, most costly updates of higher-level hash nodes are combined and delayed without affecting the run-time performance, while it still provides online verifying. Fast Recovery. A consistent state can be treated as: (i) a write to a disk sector is completed, and (ii) corresponding hash tree update along the checking path until reaching the root node is completed. Recovery must ensure these two steps to be synchronous (encryption process won’t incur an inconsistent state). Although consistency can be maintained by executing "Section3.1, Algorithm1" again after unexpected crash, it requires big reading cost and has no security assurance. Fast recovery is proposed to make fast and secure recovery through a special data structure called Update-Snap. For the moment, we only describe how to make fast recovery, and we will discuss its security later. Three fields are contained in Update-Snap. One field is a flag, called UFlag, to indicate that if the top node of one access-window is consistent with the protected disk region covered by this access-window (flag value of “Y” means consistency, while “N” means inconsistency). Another field, called UHash, holds the value of the top node of one access-window. The last field is an index to associate each (UFlag, UHash) pair with its corresponding access-windows. To maintain Update-Snap, SecureDriver does as below. − For any modification to the protected region covered by an access-window, sets the corresponding UFlag to "N". This should be completed at the beginning of “Section2.2, 1), Process6, Update for a write covered by a hot-access-window” and “Section2.2, 1), Process9, Update for a write covered by a cool-access-window”. − For any updating to the top node, writes the value of this top node to the corresponding UHash, and sets its UFlag to "Y". This should be executed at the ending of “Section2.2, 1), Process7, Remove a hot-access-window”, as well as the ending of “Section2.2, 1), Process9, Update for a write covered by a cool-access-window”. To make recovery from a crash, SecureDriver does as below. − For each record in Update-Snap, fetches UHash directly if UFlag equals "Y". Otherwise, reads the disk region covered by the corresponding access-window to recalculates its top node; then, replaces UHash with the new calculated value and sets UFlag to be "Y". − Replaces the saved top nodes mentioned in "Section2.2, 1), Process1, Initialize" with these new values gotten in the above step. − Concatenates all the top nodes together, and computes the hash of the concatenated data; then, updates the root node with the resultant hash. For fast recovery, the worst case is that when system crashes, all the hot-accesswindows have been modified but haven’t been removed or withdrawn; the current update falls into cool-access-window, but the corresponding top node hasn’t been updated in time. In such case, it only requires to read the disk regions covered by all the hot-access-windows and one cool-access-window. This cost is far smaller than reading the entire protected disk space. Additionally, recording Update-Snap during
296
F. Hou et al.
the working time only occurs occasionally and related operations are lightweight. So, fast recovery is suitable for the case that recovery time is critical. Asynchronous Verification. Online checking may stall the next disk access to wait the current checking to be completed, especially when disk accesses are bursting. In order to give better performance, we allow a limited asynchronous integrity checking. For this purpose, a queue is used to hold several disk accesses to let one access start following the last one immediately without waiting the result of verification, until the queue is full. Thus, influence to the system caused by the delay of verification can be decreased. “Limited” means that the length of the queue is much shorter than pure offline verification (which makes one checking for one operation sequence about millions times of accesses, such as LHash). When asynchronous checking is applied, execution is actually “speculative”. An invalid sector may have been used before integrity violation is detected. As the length of asynchronous checking queue is limited, the probability of committing error result can also be restricted within an acceptable level. Existence of such buffer may affect the correctness of fast recovery. Possible solution is set UFlag immediately when a write transaction is put into this queue, although related checking process hasn’t been executed. 2.3 Data Encryption We apply a cipher in SecureDriver to encrypt/decrypt any data sector to/from hard disk. The cipher used by SecureDriver is the block cipher of AES. In fact, file or file system encryption need a complex key management process, such as how to apply cryptographic keys and how keys are revoked. Different systems control this process in various ways. In real usage cases, the secret key used by the cipher of SecureDriver should be changeable through an interface to high level management program. In this paper, we leave these things alone (assuming such management is the task of others, such as OS). For convenience, we assume that AES cipher always uses the same 128bit secret key. Like the root key of hash tree, AES secret key should also be kept in a secure and non-volatile memory device.
3 System Realization Specific realization needs to choose specific parameters of hash tree. One is the block size covered by each leaf node, which is set to be one disk sector (usually 512B). Another is the width of access-window. A wider value will burden more cost on preparing an access-window, and slower the process of hashing leaf nodes to match the top node. A narrower width can give more proper coverage on disk regions that are frequently accessed, but needs more buffer to hold more top nodes of accesswindows. A compromised selection is set the width to cover a 64KB disk region or 128 continuous sectors. Such width can make matching the top node of accesswindow to be quickly enough, disk coverage to be reasonable, and the number of access-windows won’t be too large. The last one is the number of hot-accesswindows. More of them can speed checking more; bur requires more buffer to hold more leaf nodes. Additionally, it may slow down the process of fast recovery. For
An Efficient Way to Build Secure Disk
297
common cases, maintaining 1K hot-access-windows is appropriate. This makes about (64KB * 1K = 64MB) protected space to be covered by hot-access-windows at any time. Additionally, we use SHA-1 hash function to produce hash tree nodes with the results of 160bit or 20B. With these selections, the root node is hold in secure memory with the capacity requirement of 20B. For a 10GB hard disk partition, there is about (10GB / 64KB ≈ 0.16M) access-windows. So, buffering top nodes and leaf nodes of hot-accesswindows needs a buffer about (0.16M*20B + 128*20B*1K ≈ 5.7MB). The concise modules of SecureDriver realization is shown in fig.3. 7UHH&KHFNHU 1RGH%XIIHU 6HFWRU%XIIHU
6HFXUH0HPRU\ $(6&LSKHU 6QDS5HFRUGHU
&RXSOHU
+DUGGLVNLQWHUIDFH Fig. 3. Modules of the specific realization of SecureDriver. Such security program operates at the disk driver layer, and uses system memory as its trusted buffer.
In fig.3, "Coupler" is to get sectors to/from disk. According to the addresses (i.e., sector numbers), it can determine which disk regions should be covered by hot-accesswindows. To allow asynchronous checking, a queue of "Sector Buffer" is used to hold several numbers of disk accessing. A comprised value is set the queue to be 16KB. "Tree Checker" executes the actions of hash tree optimization. "Node Buffer" holds all the top nodes of access-windows, as well as the leaf nodes of hot-access-windows. In order to avoid duplicating the read of the same disk region, it also holds the leaf nodes of the current cool-access-window (requiring additional 128*16B). So, subsequent checking in the same cool-access-window, as well as converting it into hotaccess-window immediately, needn’t read the corresponding disk region again. "Secure Memory" holds root node of hash tree permanently, as well as the AES secret key. "AES Cipher" is a cryptograph routine to convert one sector into its ciphertext or vice versa. At the end, "Snap Recorder" maintains Updating-Snap to prepare for fast recovery. For a 10GB hard disk, the size of Updating-Snap is about (UFlag+UHash+Index) * (number of access-windows) = (1bit+160bit+20bit) * 0.16M ≈ 3.6MB.
4 Performance Simulation Compared with the speed of disk accessing, encryption/decryption latency won’t become the bottleneck of performance. For integrity checking, the main cost comes from fetching disk sectors. Without considering initialization, system start and exit, three cases will affect the performance. Constructing a new hot-access-window is the first case, which requires reading
298
F. Hou et al.
the disk region covered by this hot-access-window to build the corresponding hash sub-tree (need to read 128 continuous sectors). Checking an access in a new coolaccess-window is the second case, which spends a cost similar to the first case. Fortunately, these two cases don’t take place frequently, in proportion to the whole number of disk accesses. The last case is that the checking throughput of hot-access-window cannot keep up with the bandwidth of disk accessing. In such case, although accesses are covered by hot-access-windows, checking delay will postpone the following ones. But we should be aware that calculating several hashes and making a match in system memory can be completed much quickly, when compared with the speed of disk I/O. Additionally, the asynchronous checking queue will do great help to eliminate the checking delays caused by these cases above. To appraise performance and correctness, we build a simulation framework in a PC with 1.7GHz P4 CPU, 256MB PC2100 DDR SDRAM and ATA100 disk. We write a block driver for the Linux kernel to implement our SecureDriver. A 10GB disk partition is tested. To check its correctness, we exit normally after running some times. Then, we re-construct hash tree and make comparison with those saved top nodes, as well as the root node. Matching means that it works correctly. For simplification, we don’t implement fast recovery when making simulation. Simulation results are shown in fig.4.
7UDFH$7UDFH% 7UDFH& D
E
Fig. 4. (a) Main performance results; measured for 128-sector access-window width, 1024 hotaccess-window number, and 16KB asynchronous checking queue; comparing each sample separately, and set the cases without protection to be "1.0". (b) Performance results of different width of access-window; tested for 128-, 256-, 2048-sector per access-window separately; maintaining the same capacity of working buffer, that is, the number of hot-access-window is adjusted also; setting the best one to be "1.0".
In fig.4, we use several disk-traces to imitate different disk usages. Trace-A is captured from Andrew benchmark [14] (gotten from I/O monitoring when running it on the same original PC), while Trace-B and Trace-C are edited from HP-Labs TPC-C and TPC-D [15] trace files separately (we cut some segments from these two traces). Fig.4 (a) shows that there is a slight performance penalty less than 5% for common cases (Trace-A and Trace-B). Trace-C has a visible performance decline about 12%. The reason is that Trace-C comes from TPC-D, which reflects the disk usage of DSS (Decision Support System) applications. In TPC-D applications, big disk space is scanned (such as searching or summing in a big database) and such scan doesn’t always have strong physical locality. So, the utilization of hot-access-window is greatly affected; that is, more hot-access-windows are frequently removed and many disk accesses fall into cool-access-windows.
An Efficient Way to Build Secure Disk
299
Some parameters are also adjusted to make more deep investigations. Fig.4 (b) tells that too big width of access-window isn’t a good selection. With bigger accesswindow, preparing an access-window requires to read more disk data. Additionally, it may give worse coverage on those disk regions that are frequently accessed. Different selections of other parameters may get different results. Related simulation validates some intuitive results: more hash and AES throughput (such as using special cryptography accelerator), more long asynchronous checking queue, and more hot-access-windows, can improve performance. However, un-careful selections may incur shortcomings, such as too long asynchronous checking queue isn’t very accord with the meaning of online verification.
5 Discussions In current stage, the security of Update-Snap based fast recovery hasn’t been fully studied, which is one of our future tasks. Here, we just list the potential attacks and suggest the possible solutions as the followings. − Directly tampering to UHash for (UHash, UFlag = "Y") pair will incur an integrity violation when checking the corresponding protected disk region at later time, because the regenerated top-node will be different from the stored value of UHash. − All the (UHash, UFlag) pairs should be encrypted with a secret key known only to the core of SecureDriver. So, attempting to re-calculate the hash nodes of some maliciously modified sectors to replace the value of (UHash, UFlag = "Y") pair can be detected, because intruder cannot produce the proper ciphertext of (UHash, UFlag = "Y") pair without obtaining the encryption key. − To prevent intruder from using a copied (UHash, UFlag = "Y", Sectors covered by this access-window) old pair to replace the new pair, applying an incremental hashing scheme [4, 16] to authenticate Update-Snap with low run-time cost is an available way. That is, whenever Update-Snap is modified (such as one UFlag is set to be "N", or one UHash is updated and its UFlag is set to be "Y" again), sign it through incremental cryptograph method and save the signature to secure place. − Malicious modifications to disk sectors for a (UFlag = "N", Sectors covered by this access-window) pair cannot be prevented directly. As recovery process will read the corresponding sectors and re-calculate its hash sub-tree, intruder can tamper disk sectors and make such tampering take effect. The possible solution is to maintain accessing log for each hot-access-window and the current cool-access-window. As soon as the UFlag is set to be “N”, it begins to record each modification to disk sectors; and if the UFlag is set to be “Y” again, it clears the corresponding log. With these logs, system can rollback to the most recent state of (Correct UHash, UFlag = "Y", Correct sectors covered by this access-window) pair. − Additionally, it is better to authorize reliable user to make recovery to prohibit from arbitrary "crash-recovery" operations. In fact, UHash contained in Update-Snap can be the same one with the permanent storage of top nodes mentioned in “Section2.2, 1), Process1, Initialize”. For clarity, we give UHash a separated logical name.
300
F. Hou et al.
Besides operates on disk sectors directly, another available selection is set the block size to be equal to several continuous sectors, such as a “cluster” (commonly used by file system as the basic data unit). This will be equivalent to providing “lowlevel” protection for real usage, while it decreases the number of leaf nodes greatly to reduce the cost of node buffering. The most flexible selection of our hash tree verification scheme is to choose different width of access-window. If run-time performance is more important than any other considerations (e.g., memory occupation, recovery time, etc.), it is better to have more hot-access-windows with smaller width. Only from the point of tamper detecting, the permanent storage of top nodes mentioned in “Section2.2, 1), Process1, Initialize” doesn’t need protection, as tampering to them can incur mismatch when compared with root node. However, to improve system availability, it is better to protect these nodes also. Or else, if these nodes are tampered, it has to rebuild the whole hash tree to match the root node, which will spend a long time. We can put these nodes into a special disk region that cannot be accessed by the “public” disk interface to give them certain protection. According to the allocation schemes of common file/storage systems, disk files created in a mostly empty disk are likely to occupy sequential sectors. However, they may become fragmentized after lots operations or running long times. This will affect the efficiency of our hash tree optimization method, as it deteriorates the locality of disk I/O. Often running a “Disk Defragmenter” program (which can combine some file fragments into one continuous region) may make improvement. Wang has found collisions for MD5 hash function [17]. In fact, SHA-1 also has collisions. For very secure application scenes, we should use SHA-2 to construct hash tree, but it will take up more space to store and buffer hash nodes (because the output of SHA-2 is more long than the results of MD5/SHA-1).
6 Conclusions Through encrypting data and constructing a hash tree on the protected disk sectors, our approach can provide solid protection at the lowest-level of disk accessing. To achieve good performance, it uses the concept of hot-access-window to quicken most of the integrity checking processes. Together with simplifying the layout of tree structure and properly buffering nodes of hash tree, checking process is sufficiently optimized. For common cases, performance penalty is less than 5%. As we have demonstrated and discussed, this approach should be a practical and available way to protect hard disk against information disclosure and tampering.
References 1. R. C. Merkle: Protocols for public key cryptography. IEEE Symposium on Security and Privacy (1980) 122-134 2. M. Blum, W. S. Evans, P. Gemmell, S. Kannan, and M. Naor: Checking the correctness of memories. IEEE Symposium on Foundations of Computer Science (1991) 90-99
An Efficient Way to Build Secure Disk
301
3. B. Gassend, G. E. Suh, D. Clarke, M. van Dijk, and S. Devadas: Caches and merkle trees for efficient memory authentication. Ninth International Symposium on High Performance Computer Architecture (2003) 4. G. E. Suh, D. Clarke, B. Gassend, M. van Dijk, and S. Devadas: Hardware Mechanisms for Memory Integrity Checking. Technical report, MIT LCS TR-872 (2003) 5. M. Blaze: A cryptographic file system for unix. In 1st ACM Conference on Communications and Computing Security (1993) 9-16 6. E. Zadok, I. Badulescu, and A. Shender: Cryptfs: A stackable vnode level encryption file system. Technical report, Computer Science Department, Columbia University (1998) 7. Tripwire. http://www.tripwire.org 8. K. Fu, F. kaashoek, and D. Mazieres: Fast and secure distributed read-only file system. In Proceedings of OSDI 2000 (2000) 9. D. Mazieres and D. Shasha: Don't trust your file server. 8th Workshop on Hot Topics in Operating Systems (2001) 10. C. A. Stein, J. H. Howard, and M. I. Seltzer: Unifying file system protection. In 2001 USENIX Annual Technical Conference (2001) 79-90 11. Fujita Tomonori and Ogawara Masanori: Protecting the Integrity of an Entire File System. First IEEE International Workshop on Information Assurance (2003) 12. G. E. Suh, D. Clarke, B. Gassend, M. van Dijk, S. Devadas: Aegis: Architecture for tamper-evident and tamper-resistant processing. 17th Int'l Conference on Supercomputing (2003) 13. Fangyong Hou, Zhiying Wang, Yuhua Tang, Jifeng Liu: Verify Memory Integrity Basing on Hash Tree and MAC Combined Approach. International Conference on Embedded and Ubiquitous Computing (2004) 14. J. H. Howard, M. L. Kazar, S. G. Menees, D. A. Nichols, M. Satyanarayanan, R. N. Sidebotham, M. J. West: Scale and performance in a distributed file system. ACM Transactions on Computer Systems, Vol.6, February (1988) 51-81 15. HP Labs. Tools and traces. http://www.hpl.hp.com/research/ 16. M. Bellare and D. Micciancio: A New Paradigm for collision-free hashing: Incrementality at reduced cost. In Proceedings of Eurocrypt'97, Springer-Verlag LNCS 1233 (1997) 17. Xiaoyun Wang, Dengguo Feng, Xuejia Lai, and Hongbo Yu: Collisions for hash functions MD4, MD5, HAVAL-128 and RIPEMD. Crypto2004 (2004)
Practical Forensic Analysis in Advanced Access Content System Hongxia Jin and Jeffery Lotspiech IBM Almaden Research Center, San Jose, CA, 95120 {jin, lotspiech}@us.ibm.com
Abstract. In this paper we focus on the use of a traitor tracing scheme for distribution models that are one-to-many. It can be a networked broadcast system; It can be based on prerecorded or recordable physical media. In this type of system, it is infeasible to mark each copy differently for each receipt. Instead, the system broadcasts limited variations at certain points, and a recipient device has the cryptographic keys that allow it to decrypt only one of the variations at each point. Over time, when unauthorized copies of the protected content are observed, a traitor tracing scheme allows the detection of the devices that have participated in the construction of the pirated copies. The authors have been involved in what we believe is the first large-scale deployment of the tracing traitors approach in a content protection standard for the new generation of high-definition DVD optical discs. Along the way, we have had to solve both practical and theoretical problems that had not been apparent in the literature to date. In this paper we will mainly present this state of practice of the traitor tracing technology and show some of our experience in bringing this important technology to practice.
1
Introduction
AACS [1], Advanced Access Content System, is founded in July 2004 by eight companies, Disney, IBM, Intel, Matsushita, Microsoft, Sony, Toshiba, and Warner Brothers. It develops content protection technology for the next generation of high-definition DVD optical discs. It supports expanded flexibility in accessing, managing, and transferring content within a standalone or networked environment. Compared to the previous DVD CSS system, which is a flat “do not copy” technology, AACS is an enabling technology, allowing consumers to make authorized copies of purchased movie discs, and potentially enriching the experience of the movie with an online connection. The fundamental protection of the AACS system is based on broadcast encryption with a subset-difference tree using device keys and a media key block[2]. It allows unlimited, precise revocation without danger of collateral damage to innocent devices. The mechanism is designed to exclude clones or compromised devices, such as the infamous “DeCSS” application used for copying “protected” DVD Video disks. Once the attacker K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 302–313, 2006. c Springer-Verlag Berlin Heidelberg 2006
Practical Forensic Analysis in Advanced Access Content System
303
has been detected, they are excluded from newly released content because the new media key blocks in the new content exclude the keys known to the attackers. However, the AACS founders do not believe that this level of renewability solves the piracy problem completely. What if an attacker re-digitizes the analogue output from a compliant device and redistributes the content in unprotected form? It can be an exact in-the-clear digital copy of the movie, with all of its extra navigation and features. In this case, the only forensic evidence availability is the unprotected copy of the content. Also, because of the inherent power of the revocation of the AACS system, it is possible that the attackers may forgo building clones or non-compliant devices and instead devote themselves to serverbased attacks where they try to hide the underlying compromised device(s). In one particular attack, you could imagine the attackers building a server that distributes per-movie keys. Of course, the attackers would have to compromise the tamper-resistance of one or more players to extract these keys. This is progress, because these server attacks are inherently more expensive for the attackers. However, AACS found it desirable to be able to respond to even these types of attacks. These attacks are anonymous. The only forensic evidence availability are the per-movie keys or the actual copy of the content. To help defend against these types of attacks, the AACS system uses tracing traitors technology. AACS uses the term sequence keys to refer to its tracing traitors technology against the anonymous attack. The suitability of the term will become apparent. However, to be consistent with the cryptographic literature, in this paper, the device who engages in piracy will be called equivalently either a traitor or a colluder. The AACS sequence key scheme allows us to apply the watermark early on in the content publishing process and can still provide traceability down to the individual content recipient. Traitor tracing problem was first defined by Fiat and Naor in a broadcast encryption system [3]. This system allows encrypted contents to be distributed to a privileged group of receivers (decoder boxes). Each decoder box is assigned a unique set of decryption keys that allows it to decrypt the encrypted content. what are the security problems with this system? A group of colluders can construct a clone pirate decoder that can decrypt the broadcast content. It is different from the one we are dealing in this paper. The threat model that this paper is concerned with is what AACS has called the “anonymous attack”. As we mentioned earlier, attackers can construct a pirate copy of the content (content attack) and try to resell the pirate copy over the Internet. Or the attackers reverse-engineer the devices and extract the decryption keys (key attack). They can then set up a server and sell decryption keys on demand, or build a circumvention device and put the decryption keys into the device. There are two well-known models for how a pirated copy (be it the content or the key) can be generated: 1. Given two variants v1 and v2 of a segment, the pirate can only use either v1 or v2 or unrecognizable, but not any other valid variant. 2. Given two variants v1 and v2 of a movie segment (v1 = v2 ), the pirate can generate any variant out of v1 and v2
304
H. Jin and J. Lotspiech
In this paper, we will be assuming that the attackers are restricted to the first model. This is not an unreasonable assumption in the AACS application. In order to enable tracing for content attack, each content distributed in the AACS application needs to have different variations. Watermarking is one of the ways to create different variations of the content. In a practical watermarking scheme, when given some variants of a movie segment, it would be infeasible for the colluders to come up with another valid variant because they do not have the essential information to generate such a variant. Even if they mount other attacks, such as averaging two variants, it may end up with a unrecognizable version. It can hardly be another valid variant. And there are methods as [7] that make it very difficult for colluders to remove the marks. However, an important point to note is that building a different variation is a media-format-specific problem. Watermarking is only one of the solutions. For example, in a DVD format using Blue Laser, the variation can be simply a different playlist. In this case, it has nothing to do with watermark; thus it is not restricted by the watermark robustness requirement. Also, for the key attack, the traitors will need to re-distribute at least one set of keys for each segment. For cryptographic keys that are generated randomly, it is impossible to generate a valid third key from combining two valid other keys. This is equivalent to the first model. A tracing scheme is static if it pre-determines the assignment of the decryption keys for the decoder or the watermarked variations of the content before the content is broadcast. The traitor tracing schemes in [4],[5] are static and probabilistic. They randomly assign the decryption keys to users before the content is broadcast. The main goal of their scheme in their context is to make the probability of exposing an innocent user negligible under as many real traitors in the coalition as possible. Fiat and Tassa introduced a dynamic traitor tracing scheme [8] to combat the same piracy under the same business scenario considered in this paper. In their scheme, each user gets one of the q variations for each segment. However, the assignment of the variation of each segment to a user is dynamically decided based on the observed feedback from the previous segment. The scheme can detect up to m traitors. It involves realtime computational overhead. Avoiding this drawback, sequential traitor tracing is presented in [10] and more formal analysis are shown in [11], [12]. AACS uses a similar model as [10] that requires no real-time computation/ feedback. However AACS has designed a traitor tracing scheme that attempts to meet all the practical requirements. The existing traitor tracing schemes either need more bandwidth than the content provider can economically afford, or the number of players their schemes can accommodate is too few to be practical, or the number of colluding traitors under which their schemes can handle is too few. Bringing the long-standing theoretical work to practice was the major effort we undertook in the AACS system. In the rest of this paper we will first summarize our basic scheme. We will then focus on discussing some other practical problems we have encountered in implementing the AACS tracing traitors scheme. AACS has been a collaborate
Practical Forensic Analysis in Advanced Access Content System
305
effort amongst the eight companies involved. Although the authors were the individuals primarily involved in this aspect of AACS, we benefited extensively from discussions, reviews, and proposals from the other companies. We would like to especially acknowledge Toru Kambayashi from the Toshiba Corporation, who worked out the details of mapping the technology to the HD-DVD disc format, and Tateo Oishi from the Sony Corporation, who worked out the details of mapping the technology to the Blue Ray disc format.
2
Overhead to Enable Tracing
As we mentioned above, in order to enable tracing, the content needs to be prepared with different variations. These different variations occupy extra bandwidth in a network broadcast system and occupy space in the physical optical media. Although the new generation of DVDs has substantially more capacity, the studios can use that capacity to provide a high definition picture and to offer increased features on the disc. While it is perfectly reasonable in a theoretical context to talk about schemes that increased the space required by 200% or 300%, no movie studio would have accepted this. A traitor tracing scheme can be practical only if it requires an acceptable overhead. In general, most studios were willing to accept some overhead, for example, below 10%, for forensics. As a nominal figure, we began to design assuming we had roughly 8 additional minutes (480 seconds) of video strictly for forensic purposes for a normal 2 hour movie. Theoretically we could use our 480 seconds to produce the most variations possible. For example, at one particular point in the movie, we could have produced 960 variations of a 1/2 second duration. In reality this clearly would not work. The attackers could simply omit that 1/2 second in the unauthorized copy without significantly degrading the value of that copy. We believe a better model is to have an order of 15 carefully-picked points of variation in the movie, each of duration 2 seconds, and each having 16 variations. As you can see, even with this, you could argue that the attackers can avoid these 30 or so seconds of the movie. Our studios colleagues have studied whether these parameters are sufficient, and their answer is, frankly, “it depends”. Different format seems to like different parameters. As a result, when we mapped our scheme to the actual disc format, it is very important that we made sure the duration of the variations was not pre-determined. Of course, longer durations require more overhead. But this is a tradeoff studios can make. We should also mention that whether or not a given movie uses tracing traitors technology is always the studio’s choice. In the absence of attacks, they would never use it, and the discs would have zero overhead for this purpose. To generalize the above observation, in the AACS model, we assume that each movie is divided into multiple segments, among which n segments are chosen to have differently marked variations. Each of these n segments has q possible variations. Each playing device receives the same disc with all the small variations at chosen points in the content. However, each variations is encrypted with a different set of keys such that any given device out of the player population has
306
H. Jin and J. Lotspiech
access to only one particular variation for each segment. Therefore, each devices plays back the movie through a different path, which effectively creates a different movie version. Each version of the content contains one variation for each segment. The model described here is same as used in [8][10] for content tracing. Each version can be denoted as an n-tuple (x0 , x1 , . . . , xn−1 ), where 0 ≤ xi ≤ q − 1 for each 0 ≤ i ≤ n − 1. A coalition could try to create a pirated copy based on all the variations broadcast to them. For example, suppose that there are m colluders. Colluder j receives a content copy tj = (tj,0 , tj,1 , . . . , tj,n−1 ). The m colluders can build a pirated copy (y0 , y1 , . . . , yn−1 ) where the ith segment comes from a colluder tk , in other words, yi = tk,i where 1 ≤ k ≤ m and 0 ≤ i ≤ n − 1. Unfortunately, the variations (y0 , y1 , . . . , yn−1 ) associated with the pirated copy could happen to belong to an innocent device. A weak traitor tracing scheme wants to prevent a group of colluders from “framing” an innocent user. In the AACS scheme we only deal with strong traitor tracing schemes which allows at least one of the colluders to be identified once such pirated copies are found. The AACS traitor tracing scheme, called sequence keys hereafter, is a static scheme. Like all tracing schemes in this category, it consists of two basic steps: 1. Assign a variation for each segment to devices. 2. Based on the observed re-broadcast keys or contents, trace back the traitors. 2.1
Basic Key Assignment
For the first step, AACS systematically allocates the variations based on an error-correcting code. A practical scheme needs to have small extra disc space overhead, accommodate a large number of devices in the system, and be able to trace devices under as large a coalition as possible. Unfortunately these requirements are inherently conflicting. Assume that each segment has q variations and that there are n segments. A small extra bandwidth means a small q. We represent the assignment of segments for each user using a codeword (x0 , x1 , . . . , xn−1 ), where 0 ≤ xi ≤ q − 1 for each 0 ≤ i ≤ n − 1. Take a look at a code [n, k, d], where n is the length of the codewords, k is the source symbol size and d is the Hamming distance which corresponds to the mininum number of segments by which any two codewords differ. To defend against a collusion attack, intuitively we would like the variant assignment to be as far apart as possible. In other words, the larger the Hamming distance is, the better traceability of the scheme. On the other hand, the maximum codewords the [n, k, d] code can accommodate is q k . In order to accommodate a large number of devices, e.g. billions, intuitively either q or k or both have to be relatively big. Unfortunately a big q means big bandwidth overhead and a big k means smaller Hamming distance and thus weaker traceability. It is inherently difficult to defend against collusions. In order to yield a practical scheme to meet all the requirements, AACS concatenates codes [9]. The number of variations in each segment are assigned following a code, namely the inner code, which are then encoded using another code, namely the outer code. We call the nested code the super code. The inner code effectively create multiple movie version for any movie and the outer code assign different movie versions to the user over a sequence of movies—hence the
Practical Forensic Analysis in Advanced Access Content System
307
term “sequence keys”. This super code avoids the overhead problem by having a small number of variations at any single point. For example, both inner and outer codes can be Reed-Solomon (RS) codes [9]. In a [n, k, d] RS code, d = n − k + 1. For example, for our inner code, we can choose q1 = 16, n1 = 15 and k1 = 2, thus d1 = 14. For the outer code, we can choose q2 = 256, n2 = 255 and k2 = 4, thus d2 = 252. The number of codewords in the outer code is 2564 , which means that this example can accommodate more than 4 billion devices. Suppose each segment is a 2-second clip, the extra video needed in this example is 450 seconds, within the 10% constraint being placed on us by the studios. So, both q, the extra bandwidth needed, and q k , the number of devices our scheme can accommodate, fit in a practical setting. The actual choices of these parameters used in the scheme depend on the requirements and are also constrained by the inherent mathematical relationship between the parameters q, n, k, d. In fact, there does not exist a single MDS code that can satisfy all the practical requirements. For a MDS code, n <= q, d = n − k + 1. An MDS code is, in general, too short. For step 2 of the scheme, you take the sequence of recovered movies, and simply score all the devices based on how many segments each device could have produced. High scoring devices are likely to be traitors. Of course, you have to have confidence, based on your key assignment scheme, that a high-scoring device is not just an unlucky innocent device that happened to have many segments in common with the attackers. we refer readers to the papers [10, 11] for the formal traceability analysis. In this paper we only focus on the practical aspects of the design.
3
Reduce the Number of Keys Stored in the Device
As shown above, each variation for the segment is differently watermarked and encrypted. Therefore, each device basically needs to know all the variant keys in order to play back the movie. suppose those keys are stored in the device, in the example shown above, each device needs to store 15*255 keys for the purpose of traitor tracing. If each key is 8 bytes, the storage requirement is 30.6KB. Needing to store 30.6KB securely and uniquely for each device turned out to be a significant concern for the device manufacturer. It was not the absolute size; it was the fact that the data had to be different for each device and kept secure during the manufacturing process that argued for a smaller number. In a solution that is again more obvious in retrospect, we added a level of indirection, such that each device only needs to store 255 keys. By using this 255 keys, it can get the 15 keys (or more) that it needs for each movie. So the 1 space requirement now is only 15 of what was needed before. The assignment of these keys will be based on the outer code of the supercode, corresponding to the sequence of 255 movies—these are the sequence keys. Nominally, each key comes with 256 versions in the world, corresponding to the 256 movie versions for each movie decided by the inner code. A single device will have only one version for each sequence key. Each sequence key is responsible for one movie.
308
H. Jin and J. Lotspiech
For a given movie, the device can use its sequence key to decrypt a table associated with the content that gives it the fifteen (or more) keys used for the fifteen (or more) segments in the content. This means that the content needs to store 256 tables, one for each sequence key value (movie version). Each movie has 265 versions and each sequence key has 256 different values. For example, for movie #44, the table #i is encrypted by movie key version #i for movie #44. Although this slightly increases the storage associated with the content,it substantially reduces the storage required in the device (from 30KB to 2KB), which is much more expensive storage. It does not change the basic strength of the code against a coalition of attackers. For more details refer to [13].
4
Where to Put the Keys
In the previous section, we supposed that keys are stored in the devices. In fact, there is another option. Suppose a virtual program is put on the disc and used to defend against ”class attack” where a class of devices is compromised or found to contain exploitable faults. The virtual program, which contains title-specific ”content code” for execution at the device allows for the software re-implementation of device processing logic. This provides a means to enable recovering system security with new title released. For this same renewability reason, it argues that we can store the sequence keys in the virtual program. Everytime when sequence keys are compromised, new sequence keys can be distributed in the virtual program with the new title release. However, note that, if the keys are stored on the device, each device needs to store a different set of sequence keys. On the contrast, there is only one virtual program on the title disc, all the discs are massively duplicated identical for each title. It is just different devices (for example, legitimate vesus circumvented devices) shall interpret the virtual program differently and get different results. If the sequence keys are put in the virtual program, then all the sequence keys need to be on the virtual program for the title. Apparently, when the keys are stored in the virtual program, the most important question is: is it secure? The answer depends on whether or not you believe in software tamper resistance. Most people believe software tamper resistance is not as good as hardware. It is easier to reverse-engineer software. In turn it means the sequence keys are easier to be hacked when they are stored in the virtual program. Furthermore, because all the sequence keys are stored in the virtual program, once the virtual program is hacked, all the sequence keys are compromised. It provides the real attackers a built-in defense in the court: ”It wasn’t me, an unknown third-party broke the tamper resistance and incriminated me”. We know the AACS sequence keys tracing technology intends to provide probabilistic guarantee on who have participated in the piracy. But when the tamper resistance in the virtual program is broken, the probabilistic guarantee is lost. The attackers can perfectly incriminate innocent devices. For this reason, AACS decides to store sequence keys in the device at its manufacture time.
Practical Forensic Analysis in Advanced Access Content System
5
309
Improve Flexibility of the Scheme
In the previous section, we said that, nominally, each movie in the sequence has 256 versions of the sequence key. But what about movies which have unused space on the disc? They could use the extra space for more variations. We improved our scheme by extending the variations of each key. We think of the sequence keys as being organized in a matrix with 255 columns, for the 255 movie sequence, and 256 rows, for the variations within each sequence. What if, for example, each sequence key comes with 1024 versions in the world even though there are only 256 versions per movie created from the inner code? In this case, there would be 1024 variant encrypting key tables. Although there would only be 256 unique inner code tables, each table would be duplicated 4 times and separably encrypted with 4 different sequence keys. With this extension, we improve the flexibility of the inner code. It now can accommodate an inner code that creates more than 256 versions. The extension also achieves better traceability for key tracing with little added cost. Each device continues to store only 255 keys. The only additional overhead is the 1024 tables, which is negligible compared to a storage of a high-definition movie. Another important benefit of the extension is that the length of the movie sequence is in effect increased, without increasing the number of keys in each device. The attackers know which sequence key (which column) is used for each movie. After 255 movies in our example, the movies unavoidably start reusing columns. The attackers, noticing this, should use the same variation in a new movie that they previously used in an older movie at the same point in the sequence (column). In the nominal scheme, this tactic would have guaranteed to give the tracing agency no new information from the new movie. In this new extension, the grouping of four sequence keys to each variation (for example) can be reshuffled in a new sequence of movies. Even if the attackers are careful to use the same sequence key in the same column in the new sequence, some tracing information is revealed: in particular, which of the possible four sequence keys the attackers must have had in the first sequence. Yet another important benefit of the extension is the improvement of the scheme’s overall resistance to attacks. Every time the attacker redistributes keys, fewer keys remained in the system to be useful for the future. When the number of exposed keys is big enough, the system is broken. Suppose the movies are randomly being attacked, then the event can be modeled as a Bernoulli trial. A simple combinatorial analysis tells us that it takes q log q movies to expose all the q versions of keys in each column in the key matrix with high probability. The extended scheme with a larger number of key versions can survive longer.
6
Evil Manufacturer Problem
AACS was also motivated by the need to defend against the so-called “evil manufacturer attack” where a licensed manufacturer misuses all the keys assigned to him. When this attack happens, it is desirable to take action against that manufacturer without harming other innocent manufacturers’ devices.
310
H. Jin and J. Lotspiech
There are two general types of attacks. One is the random individual hacking events. The other is the evil or sloppy manufacturer who misuses all the keys assigned to them and cause all those keys be exposed. To a lesser extent, attackers reverse-engineer multiple devices from the same manufacturer/model and compromise many keys assigned to the particular manufacturer/model. In fact, if the sequence keys are assigned randomly from the entire key matrix, an evil manufacturer could quickly learn all the keys in the matrix and break the system. On the other hand, When an evil manufacturer attack occurs, all those keys can be exposed, it can be equivalent to multiple random individual attacks. AACS has designed a key assignment scheme that can defend effectively against both evil manufacturers’ attacks and random individual attacks. Intuitively we want to minimize the overlap between the keys assigned to different manufacturer/models. We know the sequence keys are assigned from a key matrix. For example, if there are 1024 movie key versions for each movie and there are 255 movies in the entire sequence, then the key matrix has 255 columns and 1024 rows. Each device is assigned a single key from each column. In order to defend against the evil manufacturer problem, we introduce a new concept called “slot”. Now the rows in the key matrix are grouped into clusters. A slot is defined to be an assignment of row clusters, one cluster for each column. At any given column, two slots are either identical or completely disjoint. Slots can be assigned to individual manufacturers/models and the keys within the clusters are assigned to the devices made by the manufacturer/model. In effect, the outer code is now itself a two-level code. The entire system is now a three-level code. Figure 1 shows a toy example. The first level codes assign clusters to the manufacturer/models X and Y and the second level codes assign keys to players A,B within model X, and players C, D within model Y. Model X gets the slot (3,1,4,1), which means it is assigned cluster #3 for movie #1, cluster #1 for movie #1 movie #2 movie #3 movie #4 cluster #1 B A
X X YY X Y Y X A
B
cluster #2
D C
cluster #3 A B cluster #4
D C
C,D
C D
B A
Model: cluster assignment: X: (c3,c1,c4,c1) Y: (c4,c2,c2,c3) Player: within cluster assignment A: (1,1,3,3) B: (3,4,2,1) C: (4,3,3,1) D: (2,2,3,2) Player: actual key assignment A: (9,1,15,3) B: (11,4,14,1) C: (16,7,7,9) D: (14,6,7,10)
Fig. 1. Key assignment using “slots”
Practical Forensic Analysis in Advanced Access Content System
311
movie #2, and etc. Note that the second level code is the assignment inside the cluster. For example, player A gets (1,1,3,3) within the clusters assigned to model X, which makes its actual key assignment be (9, 1, 15, 3) from the key matrix. The above assignment provides a deterministic guarantees of the Hamming distance, thus the maximum overlap between any keys assigned to different manufacturer/models. The Hamming distance can be so big that a collusion up to certain number (for example, m, decided by the Hamming distance) of evil manufacturer models cannot completely cover any given innocent device’s sequence keys. In other words, the probability that a given device’s sequence keys are covered by m manufacturer models are zero. On the other hand, with random assignment, suppose there are q clusters, a given device’s sequence key can be entirely covered by a device in another manufacturer model with probability (1/q)n where n is the number of sequence keys each device gets. This probability is small, but not zero. Similarly the probabilities that it can be covered by multiple manufacturers are not zero. The systematic assignment is a better option than random assignment.
7
When to Apply the Tracing Technology
When we originally developed our traitor tracing scheme, we were targeting a subscription based distribution model where the player itself is free of charge and the movies are pay-per-view. Upon identification, the content owner should not have the obligation to continue to provide movies to a user who is proven to be pirating them. It seems natural to use it in a subscription-based model. However, when it is used in the case of prepackaged physical media, it is still arguable whether or not the licensing agency is legally entitled to revoke a player if its owner has used it to make unauthorized copies of the content without compromising the player. If the attackers have compromised the player in order to get the movie in the clear, it is reasonable to argue that by compromising it, they have broken the player, and revocation is a reasonable action to remove the circumvention devices. On the other hand, the user might have digitized the movie from the player’s analogue output without compromising the player. In this case, to simply enforce the user’s behavior, revocation might not be the appropriate mechanism. However, there are some application scenarios where revocation is an acceptable remedy even in the analogue redigitization case. Generally speaking, they are when the content distributor’s business models not only relies on selling physical media but also on accompanying service agreement with the customer. The service agreement can specify the consequences of user engaging in piracy. Those business models include but not limited to: Business-to-business applications target a specific end user population usually under a subscription agreement. This is the case for the distribution of pre-release movies to screeners in the movie industry or the delivery of pro-
312
H. Jin and J. Lotspiech
fessional videos to a limited subscriber base, such as training material in a commercial or military setting. Download of content to recordable media is an innovative business model where the end user separately obtains empty recordable media in a physical store and content through Internet download. This ;[pppl;ppl[scheme allows online distribution of content using an eCommerce model and gives the end user access to a more extensive library than a conventional retailer. Rental business models where the end user has access to the content for a limited time under a specific rental agreement. Well known distribution models in this category are the ones used by the Blockbuster video rental stores or NetFlix. eCommerce features of pre-packaged media include all functionality of pre-packaged content which allows the end user to purchase additional related material in an online fashion. This essentially requires an independent transaction with a separate contractual agreement.
8
Conclusions
In this paper, we study the problem of tracing the users (traitors) who instrument their devices and illegally resell the pirated copies by redistributing the content or the decryption keys on the Internet. We have listed some of the application areas in which this technology can be useful. We have presented a practical solution to defend against the anonymous attacks. AACS’s sequence key technology attempts to meet practical restrictions on a traitor tracing scheme. First of all, The AACS’s sequence key scheme overcame the bandwidth overhead restrictions by a systematic key assignment approach using classic error correcting codes and a two level of the codes in the construction. Our choices of parameters fit well in a practical setting. As the AACS sequence key scheme was brought to practice, we overcame several barriers. We allow the scheme to be flexible during deployment. We designed an efficient key management to make the space requirement in the player substantially reduced without impacting the tracing strength. We further improve our key assignment using ”slot” to defend well against attacks that compromise many devices within same manufacturer/model or, in the extreme case, that evil manufacturers misuse and compromise all the keys assigned to them. Although we have presented several barriers to bring it to practice, there are many implementation details that are beyond the scope of this paper but need to be addressed in real use. For example, how to map different variations in different DVD formats. How to encode all the variations so that attackers cannot easily notice where the variations are. On the other hand, there is continued research on the technology itself that need to be done to make the technology be more practical and useful. For example, improve the tracing capability to survive an even larger collusion and deal with the actions taken after traitors are identified.
Practical Forensic Analysis in Advanced Access Content System
313
References 1. http: www.aacsla.org 2. D.Naor, M. Naor and J. Lotspiech, ”Revocation and Tracing Schemes for Stateless Receivers”, Crypto 2001, Lecture Notes in computer science, Vol. 2139, pp41-62. Springer-Verlag, Berlin, Heidelberg, New York, 2001. 3. A. Fiat and M. Naor, “Broadcast Encryption,” Crypto’93, Lecture Notes in computer science, Vol. 773, pp480-491. Springer-Verlag, Berlin, Heidelberg, New York, 1993. 4. B. Chor, A, Fiat and M. Naor, “Tracing traitors,” Crypto’94, Lecture Notes in computer science, Vol. 839, pp.257-270. Springer-Verlag, Berlin, Heidelberg, New York, 1994. 5. B. Chor, A, Fiat, M. Naor and B. Pinkas, “Tracing traitors,” IEEE Transactions on Information Theory, Vol 46(2000), 893-910. 6. D. Boneh and J. Shaw, “Collusion-secure fingerprinting for digital data,” IEEE Transactions on Information Theory, Vol. 44, No 5, 1897-1905, 1998. 7. I. Cox, J. Killian, T. Leighton and T. Shamoon, “Secure spread spectrum watermarking for multimedia,” IEEE Transactions on Image Processing, Vol.6, no 12, 1673-1687, 1997. 8. A. Fiat and T. Tassa, “Dynamic traitor tracing,” Crypto’99, Lecture Notes in computer science, Vol. 1666, pp354-371. Springer-Verlag, Berlin, Heidelberg, New York, 1999. 9. S. Lin and D. J. Costello, “Error Control Coding: Fundamentals and Applications,” Prentice Hall, 1983. 10. R. Safani-Naini and Y. Wang, “Sequential Traitor tracing,” IEEE Transactions on Information Theory, 49, 2003. 11. J. N. Staddon, D.R. Stinson and R. Wei, “Combinatorial properties of frameproof and traceability codes,” IEEE Transactions on Information Theory, 47 (2001), 1042-1049. 12. D.R.Stinson and R. Wei, “Combinatorial properties and constructions of traceability schemes and frameproof codes,” SIAM Journal on Discrete Mathematics, 11:41-53, 1998. 13. H. Jin and J.Lotspiech, ”Traitor tracing for prerecorded and recordable media,” ACM DRM workshop, pp.83-90, 2004
Security Analysis of a Server-Aided RSA Key Generation Protocol Tianjie Cao1,2,3 , Xianping Mao1 , and Dongdai Lin2 1
School of Computer Science and Technology, China University of Mining and Technology, Xuzhou 221008, China 2 State Key Laboratory of Information Security, Institute of Software of Chinese Academy of Sciences, Beijing 100080, China 3 Graduate School of Chinese Academy of Sciences, Beijing 100039, China [email protected]
Abstract. Modadugu, Boneh and Kim proposed two RSA key generation protocols (MBK Protocols) to generate the RSA keys efficiently on a low-power handheld device with the help of the untrusted servers, and the servers do not get any useful information about the keys they helped generation. The security of MBK Protocols is based on the assumption that the two servers are unable to share information with each other. To resists a ”collusion attack” ,namely the attack which the two servers collude to share information in MBK Protocols, Chen et al. proposed two improved protocols and claimed that their protocols are secure against such collusion attack. This paper shows that Chen et al.’s standard RSA key generation protocol cannot resist collusion attack and then cannot be used in practice. Keywords: Collusion attack, Server-aided RSA key generation, Handheld device.
1
Introduction
With the rapid development of the Internet and the new technique, many handheld devices such as PDAs, smart cards, PalmPilot and so on have been used widely in lots of fields. Today such handheld devices have very limited computing power. For example, RSA is the most widely used cryptosystem in practice [18], it can take as long as 15 minutes to generate a 1024 bit RSA key on the PalmPilot [15]. For it take so long time, the computation became insignificant in some application. We can easily see that the performance we expect the handheld devices to give is in conflict with the power them could provide, then it is desirable for us to improve the computation performance on the handheld devices. In order to help the handheld devices, there is a naive thought that we can employ the auxiliary servers to overcome the problem. The auxiliary servers have the more powerful resource than the handheld devices to do the computation. If the servers are trustworthy, we can give the servers the information K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 314–320, 2006. c Springer-Verlag Berlin Heidelberg 2006
Security Analysis of a Server-Aided RSA Key Generation Protocol
315
including the private data, let the auxiliary servers do all the complicated computation, and then the servers return the results back. But in the real life, there are many underlying adversaries, including the vicious servers, the existing adversarial entities are interesting at leaking our confidential information, threatening our private data and so on. This is unexpected. So, if we employ the outsources to participate in the computation on the handheld devices, we must make the reasonable assumption: the outsources are untrusted, or not fully trusted. In the interaction with the handheld devices, the expectancy of speeding up the computation could be realized, and the auxiliary servers could not know any confidential information. We call this method server-aided computation (SAC). There are many category of the SAC schemes, such as server-aided digital signature, server-aided decryption, server-aided signature verification, server-aided private key generation, server-aided scientific computation, and so on. Some of the existing SAC schemes have the flaw that they could suffer from attacks. There are two types of attacks against such server-aided computation protocols, passive attack and active attack. Passive attack is the classical searching one and another attack is the one the auxiliary servers return false value in order to get useful information. We can see some kinds of the server-aided computation schemes. With the help of the untrusted servers, handheld devices can make the digital signature, and don’t let the servers know the secret, such as secret key. In 1988, Matsumoto et al. proposed the viewpoint of server-aided RSA computation scheme [13]. In their paper, the authors do the assumption which accord with practice, namely the servers could do the RSA secret computations at the faster speed and the servers are not secure. They brought forward two protocols, RSA-S1 and RSAS2, which are the first server-aided computation protocols, and their protocols are designed for accelerating the RSA signature on the handheld devices. But soon, we could see the attacks against their protocols: passive attacks proposed by Pfitzmann and Waidner [17], and a simple but very efficient active attack against one of their protocols presented by Anderson [1]. The server could get the secret key by using the active attack, but the active attack could be easily defeated by checking the correctness of the signature which is provided by the servers[1]. In 1992, Matsumoto et al.[14] presented improved protocols on the base of RSA-S1 and RSA-S2 to resist the attacks like the above ones. But unfortunately, the improved protocols are not secure. Lim and Lee[11] proposed the attacks to the improved protocols. Beguin and Quisquater[4] tried to propose the secure server-aided RSA signature schemes which could resist all the known attacks. But their work does not grant their wish, Nguyen and Stern[16] presented the attacks against their protocols. There exists other server-aided signature protocols, such as server-aided one-time signature schemes and so on [2][8][5]. In 1995, Lim and Lee [12]proposed very efficient and practical protocols for speeding up verification in discrete logarithm-based identification schemes. The verifier, with limited power, could do it computation faster with the aid of the powerful prover or signer.In 2005 [10], Girault and Lefranc formalized the
316
T. Cao, X. Mao, and D. Lin
concept of a server-aided verification protocol, and proposed a generic serveraided verification protocol for pairing-based schemes. In [3], Atallah et al. study the outsourcing of numberical and scientific computation that a device with low computational resources do the complex computation with the help of the powerful devices. They presented a framework for disguising scientific computations, including matrix multiplication and others. The devices with limited power must do some local preprocessing of the information used in the computation, ensure that the auxiliary do not know the true problem and the true answer. There are other server-aided schemes, like the schemes in [9][6] and so on. In 2000, Modadugu, Boneh and Kim presented server-aided RSA key generation protocols [15]. Using these protocols, the limited-power handheld devices can generate an RSA key with the help of untrusted servers more quickly, and the servers do not get any useful information about the key they helped generation. Modadugu et al.’s protocols [15] have the assumption that the servers must not share information with each other. Otherwise, these protocols would be attacked by collusion. To eliminate the drawback of these protocols, Chen et al. proposed two improved protocols [7]. However, in this paper, we shows that Chen et al.’s standard RSA key generation protocol cannot resist collusion attack. We will review the standard RSA cryptosystem in next section. In section 3, we review Chen et al.’s standard RSA key generation protocol briefly. In section 4, we present a security analysis of the improved protocol, and give collusion attack on the protocol. Finally, we give some concluding remarks in section 5.
2
Brief Review of RSA Cryptosystem
As a necessary background we give an overview of the standard RSA cryptosystem. The best known public-key cryptosystem is the RSA, named after its inventors Rivest, Shamir and Adleman [18]. RSA is the first practical realization of publickey cryptography based on the notion of one-way trapdoor function. We will introduce the following standard notation used throughout the rest of this paper. m, the plaintext c, the ciphertext e, the public key of the RSA cryptosystem d, the private key of the RSA cryptosystem Now we specify the standard RSA cryptosystem as the following steps: 1. 2. 3. 4. 5.
we choose two random numbers p and q such that |p| ≈ |q|; we compute N = pq and φ(N ) = N − p − q − 1; we choose a random integer e < φ(N ) such that gcd(e, φ(N )) = 1; we compute the integer d such that ed ≡ 1 mod (φ(N )); we publicize (N, e) as public key, safely destroy p, q and φ(N ), and keep d as private key.
Security Analysis of a Server-Aided RSA Key Generation Protocol
317
To encrypt a confidential message m < N , the sender can creates the ciphertext as c = me mod N , to decrypt the ciphertext, the receiver only needs compute m = cd mod N . For all m < N , it is always true for the equation: mφ(N ) ≡ 1 mod N.
3
(1)
Brief Review of Chen et al.’s Standard RSA Key Generation Protocol
To solve the problem of collusion attack caused by the servers’ sharing the information, Chen et al. proposed their improved protocols [7]. These protocols include standard RSA key generation protocol and unbalanced RSA[19][15] key generation protocol. We describe the standard key generation protocol as follows: 1. Handheld device generates two n2 -bit candidates p and q, and none of them is divisible by small primes. It computes N = pq and φ(N ) = N − p − q − 1, ∗ then picks a random g ∈ ZN , ensure that g is not a multiple of p or q; 2. Handheld device picks at random a large odd integer K ∈ [−N, N ] such that gcd(k, φ(N )) = 1. It then picks integers t1 , t2 ∈ [−N 2 , N 2 ] such that t1 + t2 = kφ(N ) = T , where none of t1 , t2 and T is multiple of either p or q; 3. Handheld device sends N, g, t1 to server 1 and N, g, t2 to server 2; 4. Server 1 computes X1 = g ∗ t1 mod N , server 2 compute X2 = g ∗ t2 mod N , all of the results are sent badck to handheld device. Handheld device checks if X1 X2 = 1 mod N . If so, p and q are considered to be potential primes. Then, N = pq is declared as a potential RSA modulus where φ(N ) = N − p − q − 1.Otherwise, it restarts the operations from Setp 1; 5. Handheld device selects a small Mersenne prime m and locally runs a probabilistic primality test to confirm that p and q are real primes. It restarts the operation from Step1 while the candidates do not pass the test; The authors asserted that their server-aided key generation for standard RSA is secure against collusion attack. In their thought, the untrusted servers shared information could not get any useful information. Even if the servers collude with each other ,they can get φ(N ) with negligible probability. Then the servers could not factorize the RSA modulus N .
4
Security Analysis of Chen et al.’s Standard RSA Key Generation Protocol
This section, we will show the collusion attack on the Chen et al.’s improved standard RSA generation protocol. The servers can return the plaintext from the ciphertext which is encrypted using the key the servers helped generation by sharing information with each other. To launch the collusion attack on Chen et al.’s standard key generation protocol, we assume that the servers share information with each other.
318
T. Cao, X. Mao, and D. Lin
In [7], Chen et al. analyze the security of their server-aided key generation protocols. They consider that the servers helped key generation could get T from their sharing information and it is computationally infeasible for the servers to get φ(N ) from T . Then they get their two theorems that their server-aided key generation protocols are secure against collusion attack. In this section, we can show that their theorem of the standard RSA generation version is incorrect. Although we cannot get φ(N ) from T , we can use T directly, where T = t1 + t2 = kφ(N ). In our attack, we need not to guess the random large odd integer k which does not take their expected effect. This attack is effective on the Standard RSA Key Generation protocol. Let us specify this attack as the following theorem. Theorem 1. The Chen et al.’s standard RSA generation Protocol is not secure. We can get the plaintext from ciphertext via the collusion attack. Proof. The servers conspire with each other, and they can get T where T = t1 + t2 = kφ(N ). In the RSA cryptosystem, it is true for the two equation: c = me (modN )
(2)
gcd(e, φ(N )) = 1.
(3)
and We assume thatgcd(e, kφ(N )) = w, and then we can get the equation: gcd(e,
kφ(N ) ) = 1. w
(4)
k Because of Equation 3, w must be an integer, the notation u denote it. Then, the Equation 4 can be showed as this:
gcd(e, uφ(N )) = 1.
(5)
We can find the solution d from the congruence ed ≡ 1 mod (uφ(N )) by applying Extended Euclid Algorithm. We can assume that ed = 1 + vuφ(N ).
(6)
In the above equation, v is an integer. And as what we said in the section 2, For all m < N , it is always true for Equation 1. Then, we can return the plaintext from the ciphertext c by using the solution d as follows:
cd = (me )d = med = m1+vuφ(N ) = m(mφ(N ) )vu = m(modN ) Obviously, we get the plaintext via collusion attack.
(7)
Security Analysis of a Server-Aided RSA Key Generation Protocol
5
319
Conclusions
In this paper, we have presented collusion attack on Chen et al.’s standard RSA key generation protocol that the servers shared information with each other can derive an RSA private key that enable the decryption of any ciphertext. How to design a server-aided RSA key generation protocol against collusion attack is also an open problem.
Acknowledgments We thank the support of the National Grand Fundamental Research 973 Program of China (No.2004CB318004), the Science and Technology Foundation of CUMT and the National High Technology Development Program of China under Grant (863, No.2003AA144030).
References 1. R.J. Anderson, Attack on Server-Assisted Authentication Protocols, IEE Electronics Letters, 28(15), pp.1473, 1992. 2. N. Asokan, G. Tsudik, and M. Waidners, Server-supported signatures, Journal of Computer Security, Vol.5, pp.91-108, 1997. 3. M.J. Atallah, K.N. Pantazopoulos, J.R. Rice, and E.H. Spafford, Secure Outsourcing of Scientific Computations, Advances in Computers, Vol. 54, pp.215-272, 2001. 4. P. Beguin, and J.-J. Quisquater, Fast Server-Aided RSA Signatures Secure Against Active Attacks, CRYPT0’95, LNCS 963, pp.57-69, 1995. 5. K. Bicakci, and N. Baykal, Server Assisted Signatures Revisited, CT-RSA2004:143156.6, 2004. 6. C. Castelluccia, E. Mykletun, and G. Tsudik, Improving Secure Server Performance by Re-balancing SSL/TLS Handshakes, Cryptology ePrint Archive No.2005/037, 2005. 7. Y. Chen, R. Safavi-Naini, and J. Baek, Server-Aided RSA Key Generation against Collusion Attack, Secure Mobile Ad-hoc Networks and Sensors workshop (MADNES’05), Singapore, 2005. 8. X.Ding, D. Mazzocchi, and G.Tsudik, Experimenting with Server-Aided Signatures, Network and Distributed Systems Security Symposium (NDSS’02), 2002. 9. W.Ford, and B.S.Kaliski, Server-assisted generation of a strong secret from a password, 5th IEEE International Workshop on Enterprise Security, pp.176-180, 2000. 10. M. Girault, and D. Lefranc, Server-Aided Verification: Theory and Practice. ASIACRYPT’05, LNCS 3788, pp.605-623, 2005. 11. C. H. Lim, and P. J. Lee, Security and Performance of Server-Aided RSA Computation Protocols, Crypto’95, LNCS 963, pp.70-83, 1995. 12. C. H. Lim, and P. J. Lee, Server(Prover/Signer)-Aided Verification of Identity Proofs and Signatures. EUROCRYPT’95, LNCS 921, pp.64-78, 1995. 13. T.Matsumoto, K.Kato, and H.Imai, Speeding up secret computations with insecure auxiliary device, CRYPTO’88, pp.497-506, 1988. 14. T.Matsumoto, H.Imai, C.S. Laih, and S.M.Yen, On verifiable implicit asking protocols for RSA computation, Auscrypt’92, vol.718, pp.296-307, 1992.
320
T. Cao, X. Mao, and D. Lin
15. N.Modadugu, D.Boneh, and M.Kim, Generating RSA Keys on a Handheld Using an Untrusted Server, In CT-RSA’00, 2000, Available at http://crypto.stanford.edu/dabo/pubs.html. 16. P.Nguyen, and J. Stern, The Beguin-Quisquater Server-Aided RSA Protocol from Crypto’95 is not Secure, ASIACRYPT ’98, LNCS 1514, Springer-Verlag, pp.372379, 1998. 17. B. Pfitzmann, and M.Waidner, Attacks on protocols for server-aided RSA computation, EUROCRYPT’92, pp.153-162, 1992. 18. R.L.Rivest, A.Shamir, and L.Adleman, A method for obtaining digital signatures and public-key cryptosystems communications of the ACM, pp.21(2):120-126, 1978. 19. A.Shamir, RSA for Paranoids, CryptoBites, pp.1(3):1-4, 1995.
Integrating Grid with Cryptographic Computing Zhonghua Jiang1,2 , Dongdai Lin1 , Lin Xu1,2 , and Lei Lin1,2 1
State Key Laboratory Information Security, Institute of Software, Chinese Academy of Sciences, Beijing 100080, China {jzh, ddlin, xulin, rockylin}@is.iscas.ac.cn 2 Graduate School of the Chinese Academy of Sciences, Beijing 100039, China
Abstract. Cryptographic and information security applications often involve many time-consuming computations, which need to be completed over heterogenous and geographically distributed computers. However, there lacks a general-purpose cryptographic computing environment. Grid technology can play a significant role in providing an efficient computational support for cryptographic applications. In this paper, we describe a general-purpose software architecture called Crypto-Grid for distributed high-performance cryptographic computing, which is designed on the top level of computational grid mechanisms, supported by grid environments such as Globus. The prototype implementation of Crypto-Grid under GT4 and experiment evaluation are also revealed.
1
Introduction
A general-purpose distributed cryptographic computing system plays an important role in cryptographic research and becomes a hot topic step by step. In 1987, Lenstra [1] developed a distributed factoring system which made use of electronic mail for the distribution of the programs and for inter-processor communication. Several 100 digit integers were factored within one month over it. In 1999, Selkirk [2] developed a system to solve ECCp-97 (a 109-bit elliptic curve challenge). The system which was connected over 1200 machines from at least 16 countries solved the challenge within 53 days. These machines communicated with TCP/IP connection or electronic mail. In 2000, Asbrink [3] developed another factoring system, in which Quadratic Sieve algorithm [4] is implemented and the parallelism is achieved using the Message Passing Interface(MPI) [5]. Due to the complexity of cryptographic computing along with insufficient technology, none of these systems is general-purpose but special to solve one kind of cryptographic computations. Computational grid is an infrastructure that enables the integrated use of remote high-end computers, databases, scientific instruments, networks and other resources by communities (“virtual organizations”) [6, 7]. Similar to electric power grid, computational grid can supply end users with general computational power which is geographically and device independent. Grid has been widely applied to many fields, such as highenergy physics, material science, business and K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 321–331, 2006. c Springer-Verlag Berlin Heidelberg 2006
322
Z. Jiang et al.
engineering applications. To our best knowledge, however, no relevant effort has been devoted to applying Grid techniques to perform efficient cryptographic computing in large distributed computing sites before. In this paper, we design and implement a general-purpose cryptographic computing system on grid. This novel infrastructure called Crypto-Grid is general, open, scalable and high-performance cryptographic computing environment. Section 2 of this paper outlines the grid technology development. Section 3 reviews available computing engines. The kernel part (Sections 4 and 5) deals with the design of the general-purpose and service-oriented architecture called CryptoGrid and its prototype implementation, which are the main contribution of the paper. The general architecture and its main components are described in Section 4. The computing process, prototype implementation and performance evaluation of Crypto-Grid are presented in Section 5. We briefly conclude the paper in Section 6.
2
Grid Computing
Grid computing is concerned with coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations. The early grid efforts started as projects to link supercomputing sites. Today the grid infrastructure is more ubiquitous and can support diverse applications requiring large scale computation and data. Essentially all major grid projects are currently built on protocols and services provided by the Globus Toolkit [8]. New-generation grid technologies are evolving toward an Open Grid Services Architecture (OGSA) [9, 10] and Web Services Resource Framework (WSRF) [11] in which a grid provides an extensible set of services that virtual organizations can aggregate in various ways. The Globus Toolkit 4.0 (GT4) is based on the OGSA and WSRF concepts. Our solutions discussed in forthcoming sections can be viewed as a result of the natural evolution of parallel and distributed cryptographic computing technology and Grid Services, and it is the first step towards development standards for cryptographic computing in Grid environments.
3
Computing Engines
In order to harness computational power more easily, many existing computing engines will be integrated with Crypto-Grid. Some engines, such as Crypto++, GMP and OpenSSL [12], are dedicated to cryptographical computing, others are general purpose, such as Maple, Mathematic, Mathcad, Scientific WorkPlace and MATLAB. Coding burden for computing algorithms will be alleviated by utilizing these engines. Take Crypto++ for an example. Crypto++ provides two kinds of operations: (1)mathematical operations such as manipulation of big integer, polynomial operations, finite field arithmetics, prime number generation and elliptic curve operations; (2)cryptographic primitives which range from key agreement schemes, symmetric-key systems, public-key systems, stream ciphers, MACs, one-way hash functions, pseudo random number generators, ciper modes to padding schemes.
Integrating Grid with Cryptographic Computing
4
323
Crypto-Grid Architecture
High level Crypto-Grid layer Manager Service
Dividercollector Service
CPR MDS
RLS
RFT
CDEDS Service
Calculator Service RAEMS Service
Dispatcher Service
GSI
Replica Service
Core Crypto-Grid layer
CGMR WS GRAM
Cryptographic computing Grid
The Crypto-Grid architecture is defined on top of grid toolkits and services (i.e., it uses basic grid services to build specific cryptographic computing services). These services can be developed in different ways using the available grid toolkits and services. The current implementation of Crypto-Grid is based on the GT4. Crypto-Grid aiming at cryptographic computing. So it should be generalpurpose, open, scalable and high-performance. There concerns problems in Crypto-Grid including task-division, result-collection, task-calculation, workstream management, fault-tolerant and resource management (computational engines, code and data), which are solved by the collaboration of several basic and special grid services. Fig. 1 shows the architecture of Crypto-Grid.
OGSA-DAI
Globus Services
Fig. 1. Crypto-Grid Architecture
4.1
Grid Services of Crypto-Grid
The grid services of Crypto-Grid are special to cryptographic computing, which are organized in two hierarchic levels: – the Core Crypto-Grid layer; – the High level Crypto-Grid layer. The former refers to services directly implemented on the top of generic grid services and takes charge of resource management, the latter is used to describe, control and execute parallel and distributed cryptographic computational task over the Crypto-Grid, and to conveniently replicate datasets and codes among Crypto-Grid nodes, which offers services including Replica, Divider, Collector, Manager, Dispatcher and Calculator. Fig. 1 shows layers as implemented on the top of Globus services as well as the grid data and metadata repositories. In the following sections, the term Crypto-Grid node will be used to denote a GT4 node implementing these cryptographic computing services.
324
4.2
Z. Jiang et al.
Resource Management and Allocation
The main goals of the Core Crypto-Grid layer are to manage all metadata which describe features of data sources (large datasets), third-party computing engines (tools), and cryptographic computing codes. Moreover, this layer coordinates the application execution by attempting to fulfill the application requirements and the available grid resources. The layer offers basic services for definition, composition and execution of distributed cryptographic computations over the grid. This layer comprises two main services. Code/data/engine directory service (CDEDS). This service extends the basic Globus MDS4 service. It is responsible for maintaining the description of all computational code, data and engines used in the Crypto-Grid. The metadata, managed by the CDEDS, include the following kind of objects: – Data of both computing tasks to be calculated and corresponding computing results. These data can be stored in databases, plain files, eXtensible Markup Language (XML) documents and other structured or unstructured manner. – Computational code used to perform cryptographic computing, to divide task into subtasks, or to assemble results of subtasks. – Computational engines used to conduct actual calculation of subtasks. The metadata are represented by XML documents and stored in a CryptoGrid Metadata Repository (CGMR). They describe features of different objects to be used, such as location, format and availability. The CDEDS is then used not only to search and access computational data, but also to find previously registered codes and computing engines that can be used to apply computing code and computing tools in an incremental way. Computing engines are usually pre-existent to the Crypto-Grid (i.e., they resides over file systems or code libraries before hand). However, to make them available to cryptographic computing, relevant metadata have to be stored in the CGMR. Resource allocation and management service (RAMS). The service is used to automatically find the best mapping between a dynamic execution plan and available resources, with the goal of satisfying the cryptographic computing requirements (computing power, storage, memory, database, network bandwidth and latency) and grid constraints. The Cryptographic Plan Repository (CPR) backups these dynamic execution plan. The mapping of (co-)allocating resources has to be effectively obtained. After the execution plan activation, this layer manages and coordinates the execution of the computation. Instead of using the CDEDS service and the Globus MDS service, this layer is directly based on the Globus GRAM services. Resource requests of each single subtask are expressed by the Globus Resource Specification Language (RSL). The computing processing of one subtask in an execution plan will generate global resource requests that in turn are translated into local RSL requests for local GRAMs.
Integrating Grid with Cryptographic Computing
4.3
325
Task Subdividing and Calculating
To achieve generality, flexibility and openness, Crypto-Grid requires a unified mechanism to divide, express, transfer subtasks and collect corresponding results of subtasks. A submitted job called root task can be divided into subtasks. These subtasks fall into two categories, atomic and dividable. Atomic task can’t be further subdivided while a dividable task need to be subdivided recursively by corresponding dividing algorithms. Through the recursive process of task division, a task division tree TDT finally comes into being, in which the root task is root, the dividable tasks are branches, and the atomic tasks are leaves. In the prototype implementation, we use an XML document to describe a subtask, as shown in Fig. 2.
<ParentTaskHash> B8A53623DB5BF86D87EC66A13D460670801850BD <ParentTaskHash> jiang|192.168.1.189|1 XXX ...
Fig. 2. Task Schema Instance
Task-subdividing and Result-Collecting are two key concerns to perform distributed, especially general-purpose, cryptographic computing. It is impossible to design an all-purpose dividing and an all-purpose collecting algorithm because of diversity of cryptographic computing problems. We introduce plug-in mechanism to conquer these difficulties. Every Plugin is a piece of dividing or collecting code for one special type of task. For the detail of Plug-in, see section 4.4. It is also not a general algorithm that can conduct subtask-calculating for all kinds of atomic subtasks. We also adopt plug-in mechanism. Dividercollector service is used to automatically load and use these Plug-ins for task-subdividing and result-collecting. It can serve multiple dividable subtasks at one time. A cryptographic job can be divided into more subtasks using task-subdividing Plug-ins. A dividable subtask will be recursively and asynchronously divided till the job is finished. Note that in the original architecture design we separate the Dividercollector into two services (Divider and Collector) which will result in complex interaction between the two services for a sequential subtask. Manager service manages (e.g., create, invoke and destroy) all the Dividercollector instances, maintains the Dividecollector instance queues. If multiple
326
Z. Jiang et al.
jobs are being concurrently computed, the Manager will decide to invoke which divider instance according to the dynamic priority of currently working jobs when a division request comes. Calculator service is responsible for atomic subtask’s calculating. After accepting a calculation request, the service parses the atomic subtask data, then decides proper tools or codes. If a site lacks corresponding Plug-in, Calculator service will invoke Replica service to replicate corresponding tools or code from some remote site. Then Calculator service starts to calculate the atomic subtask, further to invoke Dynamic Libraries by Java JNI or to start computing engine by GT4 WSGRAM service. Lastly, it returns the calculation result to the source Dispatcher. 4.4
Plug-Ins Mechanism
As far as computing is concerned, an atomic subtask requires a task-calculation algorithm, and a dividable subtask requires a task-division and a task-collect algorithm. For many types of tasks, the codes of their task-calculation, taskdivision or task-collection algorithms have been available. To utilize existing algorithms, computing engines and new algorithms, we wrap these implemented algorithms into Plug-ins. In Crypto-Grid, Plug-ins can be classified into three types called Meta-divider, Meta-collector and Meta-calculator respectively, so three different interfaces need to be implemented respectively. Fig. 3 shows the methods in these interfaces. To divide a subtask, Manager service must find a Meta-divider which should match the subtask’s problemName attribute, by which Manager service matches the task type of subtask and Plug-in. When a site lacks corresponding Plugin, Manage service will invoke the Replica to search, and duplicate one from some remote node. For a new computing problem, the metadata of its three new Plug-ins which wrap corresponding algorithms should be registered to CGMR through the CDEDS service, which makes Crypto-Grid open and flexible. Reusability of computing algorithms benefits from Plug-in mechanism. A dividable task will be divided into either atomic or dividable subtasks. These Divider Interface div_SumbitTaskData(taskName, Taskdata) --- submit task data div_GetNewSubTask(subtaskNumber) --- fetch a new subtask div_IsFinished() --- check if division is finished div_CancelTask() --- cancel the division of the task div_IsItomic() --- decide if the subtasks of the task are atomic
Collector Interface col_PutSubTaskResult(problemName, taskName, encoding, compress, taskResultData) --- submit the result of its subtask col_IsFinished() --- judge if the result of the task is gained col_DivideFinished() --- tell the collector that division is over col_GetTaskResult() --- fetch the result of the dividable task
Calculator Interface cal_SubAtomicTaskData(problemName, taskName, encoding, compress, taskResultData) ---submit the data of an atomic task cal_StartComputing() --- start to calculate the atomic task cal_GetTaskResult() --- fetch the result of the atomic task
Fig. 3. Interfaces of Three Plug-ins
Integrating Grid with Cryptographic Computing
327
subtasks can belong to different types. Each Plug-in can be easily upgraded for higher efficiency. An atomic subtask will become dividable if the division algorithm of this computing problem is improved. We can almost immediately profit from the improved algorithm by simply modifying its parent’s Divider Plug-in, deleting the Calculator Plug-in, and adding new Divider and Collector Plug-ins. Subtasks of a parent task may be parallel or sequential. For sequential subtasks, interactions between its Divider and its Collector Plug-ins are complex. Algorithm providers can develop one Plug-in which implements both Divider and Collector interfaces to reduce interaction complexity. 4.5
Task-Distribution and Data-Transformation
Replica service is used to duplicate Plug-ins, engines or large datasets between a remote site and local system. This service is based on the core CDEDS service. On the basis of requirements and constraints of Dispatcher service, Replica automates the searching and finding of Plug-ins, engines, large datasets, and securely transferring them by RFT service, which is included in GT4. Dispatcher service functions as a subtask dispatcher and control interactions among Crypto-Grid nodes. If one node is idle, the Dispatcher can request subtasks from other nodes. If the work load of one node is too heavy, the Dispatcher can submit subtasks to other nodes. The core service RAMS decides proper nodes by their available resources and the resource demands of subtasks. A subtask can be submitted to either the node itself or other nodes. Note that the submission of a root task (i.e. job) is also by the help of the Dispatcher. In addition, the Dispatcher takes charge of fault tolerance. The Dispatcher doesn’t delete the sent subtask requests instead caches them until the results of these requests are returned, and these subtask results don’t be deleted until the Dispatcher successfully transfer them to their target nodes (the Manager of the same node or the Dispatcher of a remote node). For example, when an exception (e.g., a Calculator instance ceases unexpectedly or timeouts during an atomic subtask’s calculation) occurs, the Dispatcher will resubmits the subtask to some other site using the cached subtask request.
5 5.1
Implementation and Experiment Evaluation Distributed Computing Process
After the general description of the Crypto-Grid architecture, in the section we describe how it can be exploited through a practical example of distributed computing process. Cryptographic computing applications over the grid can make use of distributed computational power, datasets, algorithms and computing engines to speed up computing. It is not representative of every possible scenarios, however it is crucial to show how the execution of a significant cryptographic computing application can benefit from the Crypto-Grid services. These Plug-ins aim to perform a number of independent divisions, collections and calculations
328
Z. Jiang et al.
Dividercollector Service
Collector Plug-in
Divider Plug-in
Replica Service
Manager Service
NodeGUI Client
Job
CE1
Dispatcher Service
Calculator Plug-in
NodeP1 .. NodePm
Calculator Service
CE2 CEn
NodeC1 .. NodeCn CE = Computing Engine
Fig. 4. A distributed computing process
by applying computing tools to distributed subtask sets in parallel. Dividable subtasks are divided by Meta-dividers, atomic subtasks are calculated by Metacalculators, and the results are collected and assembled by Meta-collectors to obtain the global result. Fig. 4 shows a distributed cryptographic computing process, in which a global result is finally obtained on GUI client NodeGUI after its root task RT is launched on NodeGUI. This process is described as follows: Step 1: on NodeGUI, RT is sumbitted to one of NodePi , assuming NodeP1 here. Then RT is divided into subtasks, of which dividable subtasks are recursively submitted to NodeP1 itself, recursively submitted to NodeP2 , NodeP3 , . . . , NodePm if the work load of NodeP1 is heavy enough, and atomic subtasks are submitted to NodeC1 , NodeC2 , . . . , NodeCn (m n). Step 2: on each NodeCi (i = 1, . . . , n) the task result Ri is calculated from atomic subtask ASi by the Calculator Ci . Then each Ri is moved from Nodei to the originator of its subtask NodePj (j=1, 2, . . . , m). Step 3: on each NodePj the results of atomic tasks are collected and assembled by its corresponding Collector Plug-ins. If the result of some branch subtask is obtained in NodePj , it will be transferred to NodePk on which its parent task resides, and probably recursively collect and assemble among NodeP1 , NodeP2 , . . . , NodePm. Step 4: If the final result of RT is not obtained, repeat Step1, Step2 and Step3. Otherwise, the global result is submitted to NodeGUI. 5.2
Crypto-Grid Implementation
As discussed in Section 4, the Crypto-Grid architecture is composed of two hierarchic layers: the Core Crypto-Grid layer and the High level Crypto-Grid layer. To deploy cryptographic computing applications we have implemented the High level Crypto-Grid services (Dividercollector, Manager, Replica and Dispatcher Grid services) which are useful to start cryptographic computing Grid application. Moreover, we have also implemented the former layer on top of the GT4
Integrating Grid with Cryptographic Computing
329
services, which include CDEDS, RAMS and some basic tools allowing a user to publish metadata of cryptographic computing Grid objects (Meta plug-ins, code of cryptographic computing algorithms and computing engines). Maple and Crypto++ have been integrated into Crypto-Grid, and can be accessed by CDEDS and RAMS. For test purpose, distributed DES Exhaustive Key Search algorithm [13] (ExDES), Parallel Collision Search algorithm [14] (PCS) for elliptic curve and DES Differential Cryptanalysis algorithm [13][15] (Dif-DES) have been implemented and integrated into Crypto-Grid by Plug-in mechanism. We separately implements three Plug-ins with size of 56KB, 51KB and 53KB for dividing, collecting and calculating for Ex-DES. Dif-DES includes two stage, differential analysis and exhaust search. So we implement three Plug-ins for dividing and collecting and two Plug-ins for calculating; the largest size of them is 4KB with 56KB shared library; the size of task data is about 2.3MB. PCS has also three Plug-ins for dividing, collecting and calculating, of which the largest size is 7KB with 60KB shared library which further dynamically invokes Crypto++. 5.3
Experiment Evaluation
We have carried out our experiments on LAN with a group of computers with P4 2.2GHz CPU utilizing these implemented cryptographic algorithms. Table 1 shows the data (hexadecimal representation) used for these experiments. Table 2 shows their serial computing time in seconds. Ex-DES searches 232 plaintext/cipertext pairs. ECCp-48 and ECCp-49 attack two elliptic curves respectively with 48-bit and 49-bit prime module. Dif-DES computes 56-bit cipher key of 8 round DES. Fig. 5 shows the corresponding speedups over Crypto-Grid with one NodeP and with different number of NodeCs. Fig. 6 shows experiment results in the same condition except with two NodePs. The experiment results show that Crypto-Grid is a promising architecture. The depth of a task tree for cryptographic computation is usually not more than four, so inter-layer dependence of subtasks have little effect to speedup; Table 1. Computing data used for our experiments Test name Test data Ex-DES (p, c, k)=(c1274452c67660cd, 48656c6c6f20776f, 000000ffffffff) ECCp-48 (p, a, b) = (80000000110d, 34578, 7863d); (P, Q, d)= ((5e2d1, 6ddd21995695),(15804bc9c9d1, 6d8ea7053f42),99e) ECCp-49 (p, a, b) = (1000000012b11, 9fa20, 60f6c4); (P, Q, d)= ((62fb91, 3d74a1a1c34e),(76b08fc96694, 64a2571973a0),1232e) Dif-DES (p, c, k)=(9a8102b13e57c2d4, f8616c03876258b4, 9a295bc9b7b7f8) Table 2. Serial computing time of our experiments Test name Ex-DES ECCp-48 ECCp-49 Dif-DES Serial time 159232 2783.14 3997.29 1352
330
Z. Jiang et al.
40
40 linear Ex-DES ECCp-48 ECCp-49 Dif-DES
Speedup
30 25 20
linear Ex-DES ECCp-48 ECCp-49 Dif-DES
35 30 Speedup
35
15
25 20 15
10
10
5
5
0
0 5
10
15
20 25 30 Number of NodeCs
35
Fig. 5. Performance with one NodeP
40
5
10
15
20 25 30 Number of NodeCs
35
40
Fig. 6. Performance with two NodePs
speedup approximately linearly increases with node number does. However, if a computational task includes sequential subtasks or uses a probabilistic algorithm, how to arrange tree structure in our architecture will influence speedup as node number increases.
6
Conclusion
The Grid infrastructure is growing up very quickly and is going to be more and more complete and complex both in the number of tools and in the variety of supported applications. Crypto-Grid is a kind of grid application dedicated for cryptographic computing. Thanks to fundamental grid services and our special grid services, Crypto-Grid is scalable enough; it integrates and utilizes distributed and heterogeneous computational power and other grid resources more easily than traditional cryptographic computing systems. The Plug-in mechanism makes computational code reusable enough. For a subtask, Crypto-Grid can dynamically and automatically locate corresponding Plug-ins on grid by CDEDS service; replicate it from remote grid node by Replica service; mount it by Dividercollect or Calculator service; manage by Manager service which makes Crypto-Grid suitable for all kinds of cryptographic computing problems. Every subtask in a dynamic execution plan related closely to TDT will be mapped to the most proper grid node by RAMS service, which makes Crypto-Grid highperformance. In short, Crypto-Grid is a grid based cryptographic environment, which is general-purpose, open, scalable and high-performance.
Acknowledgments We thank the support of the National Grand Fundamental Research 973 Program of China (No. 2004CB318004), the National Natural Science Foundation of China (NSFC90204016) and the National High Technology Development Program of China under Grant (863, No. 2003AA144030).
Integrating Grid with Cryptographic Computing
331
References 1. Lenstra, A., Manasse, M.: Factoring by Electronic Mail. Advances in Cryptography – EUROCRYPT 89, LNCS 434. Springer-Verlag, (1990), 355-371. 2. Selkirk, A.P.L., Escott, A. E.: Distributed Computing Attacks on Cryptographic Systems. BT Technology Journal, (1999), 17(2): 69-73. 3. Asbrink, O., Brynielsson, J.: Factoring Large Integers Using Parallel Quadratic Sieve. Technical Report, Royal Institute of technology, Sweden, (2000). 4. Atkins, D., Graft, M., Lenstra, A. K., Leyland, P. C.: The Magic Words are Squeamish Ossifrage. Advances in Cryptography – ASIACRYPT 94. LNCS 917, Springer-Verlag, (1995), 263-277. 5. William Gropp, Ewing Lusk, Anthony Skjellum: Using MPI: Portable Parallel Programming with the Message-Passing Interface. Scientific and engineering computation. MIT Press, Cambridge, MA, USA, (1994). 6. Foster, I., Kesselman, C.: The grid 2: Blueprint for a New Computing Infrastructure, Elsevier Inc, USA, (2004). 7. Foster, I., Kesselman, C., Tuecke, S.: The Anatomy of the Grid: Enabling Scalable Virtual Organization. International J. Supercomputer Applications, (2001), 15(3). 8. Foster, I., Kesselman, C.: Globus: A Metacomputing Infrastructure Toolkit, International J. Supercomputer Application, (1997), 11(2), 115-128. 9. Tuecke, S., Czajkowski, K., Foster, I., et al.: Open Grid Services Infrastructure (OGSI) Version 1.0, Global Grid Forum Draft Recommendation. (2003). 10. Foster, I., Kesselman, C., Nick, J., Tuecke, S.: Grid Services for Distributed System Integration. IEEE Computer Society, (2002), 35(6):37-46. 11. Foster, I., Frey, J., Graham, S., et.al.: Modeling Stateful Resources with Web Services Version 1.1. Global Grid Forum Draft Recommendation. (2004). 12. Wei Dai: Crypto++ – A Free C++ Library for Cryptography, Version 5.2.1. Available at http://www.cryptopp.com, (2005). 13. Schneier, B.: Applied Cryptography. John Wiley & Sons, Inc., 2nd edition, (1996). 14. Paul C. van Oorschot and Michael J. Wiener: Parallel Collision Search with Cryptanalytic Applications. J. Cryptology, (1999), 12:1-28. 15. Biham, E., Shamir, A.: Differential Cryptanalysis of the Full 16-round DES. Advances in Cryptography – CRYPRO 92, LNCS 740, Springer-Verlag, (1993).
Three-Round Secret Handshakes Based on ElGamal and DSA Lan Zhou, Willy Susilo and Yi Mu Center for Information Security Research, School of IT and Computer Science, University of Wollongong, Wollongong, NSW 2522, Australia {lz815, wsusilo, ymu}@uow.edu.au
Abstract. Secret handshake, introduced recently by Balfanz et al, is a very useful cryptographic mechanism which allows two members of the same group to authenticate each other secretly. In a secret handshake protocol, an honest member in the group will never reveal his group affiliation unless the other party is a valid member of the same group. In other words, only the members who have certificates from the Group Administrator can be successful in handshaking. If a handshake between two parties fails, the identity of either party will not be disclosed. Several secret handshake schemes have been found in the literature, which are based on pairing, CA-Oblivious Encryption and RSA. Furthermore, several Oblivious Signature-Based Envelopes (OSBE) schemes based on the ElGamal signature family were introduced recently by Nasserian and Tsudik, and they proposed a generic construction of secret handshake from OSBE based on ElGamal signature family as well. It is shown in the generic construction that any ElGamal signature family based OSBE scheme can be converted to secret handshake within three communication rounds, except the ElGamal and DSA signature. In this paper, to complement the previous result, we show a three-round secret handshake scheme based on ElGamal signature. We prove that the scheme is existentially unforgeable in the Random Oracle Model (ROM). Finally we extend our scheme to a DSA-based secret handshake which also requires only three rounds. Keywords: Secret Handshake, Oblivious Signature Based Envelope, Hidden Credential, Privacy, Key Exchange, ElGamal, DSA.
1
Introduction
The Secret Handshake (SH) scheme introduced by Balfanz et al. [2] allows two members of the same group to identify each other secretly, but if one party does not belong to the group, he will learn nothing about group affiliation of the other party. One scenario for SH is as follows: a CIA agent Alice wants to
This work is partially supported by ARC Discovery Grant DP0663306.
K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 332–342, 2006. c Springer-Verlag Berlin Heidelberg 2006
Three-Round Secret Handshakes Based on ElGamal and DSA
333
authenticate herself to Bob, but Alice does not know whether Bob is a CIA agent or not. If Alice shows Bob her credential directly, her CIA identity will be revealed to Bob, who could be an adversary. The situation will be different if Alice authenticates with Bob via an SH protocol; namely, Bob will learn nothing about Alice’s identity if he is not a CIA agent. Alice will never worry about the leakage of her CIA affiliation no matter whom she authenticates to, even with other CIA servers. This secrecy property can be extended to ensure that group members’ affiliations are revealed only to members who hold specific roles in the group. For example, Alice wants to authenticate to Bob if and only if Bob is a CIA agent with security level one, while herself as a CIA agent with security level two. Another important property of the handshake is that even if a third party Eve observes the exchange between Alice and Bob, he can learn nothing about the process including whether Alice and Bob belong to the same group, the specific identities of the group, and the roles of either Alice and Bob. Besides introducing the concept of the SH, Balfanz et al. [2] also showed an SH scheme based on pairing, but the computation is not as efficient as the one based on the discrete log problem. Recently, a series of OSBE schemes for the ElGamal family of signature schemes were proposed in [6], where the authors also discussed the generic conversion from OSBE to SH schemes. Furthermore, those ElGamal-OSBE and DSA-OSBE schemes cannot be used to achieve a three-move SH scheme. We will discuss this in the next Section. In this paper, we propose two novel SH schemes based on the ElGamal signature scheme and the DSA scheme, respectively. For the first time, we achieve three-move SH, which was believed infeasible in [6] (Appendix A). We also prove that our proposed scheme is secure. Finally, we propose a DSA-based SH scheme. Organization of The Paper The paper is organized as follow. In Section 2, we discuss some related work in the area of SH, including the first identity-based encryption and several credential systems proposed in recent years, such as OSBE and hidden credential. We will also discuss the relationship between these protocols. We then discuss the security properties of the SH and provide a security model in Section 3 . In Section 4, we introduce an ElGamal-based key agreement protocol, on which our handshake scheme is based, and we proceed with presenting our three-move ElGamal-based SH scheme. In Section 5, we discuss the security proof of our scheme. In Section 6, we propose a DSA-based handshake scheme, which uses the same technique as our ElGamal scheme. Finally, Section 7 concludes the paper.
2
Related Works
The notion of the SH was introduced in [2], where an SH scheme based on pairings was proposed. The security of the scheme is based on the Bilinear DiffieHellman (BDH) problem. This scheme was constructed from a pairing-based key agreement scheme. According to [2], existing anonymity tools such as anonymous
334
L. Zhou, W. Susilo, and Y. Mu
credentials, group signatures, matchmaking protocols, and accumulators, have different goals from SH, so that it is unclear how to achieve an SH scheme from any of them. In 2003, another credential system called Oblivious Signature Based Envelope (OSBE) was proposed [4]. It has very similar properties to the SH. The most typical properties are that they allow credential contents to be used directly in access control processes, making the systems in which credentials can be used without ever being disclosed. In an OSBE system, the encrypted message can only be disclosed by a third party’s signature of an agreed-upon message. The signature itself is used as the credential, and never requires to be disclosed to the message sender. OSBE is defined as an interactive protocol. The original paper [4] defines four parties, a Certificate Authority CA, a message sender S, a qualified recipient R1 and an unqualified recipient R2 . In [8], the relationship between OSBE and SH is explained and it was concluded that an OSBE scheme can easily be used to construct an SH scheme. A new variant of credential system called designated group credential was recently proposed in [7]. An SH scheme based on CA-Oblivious Encryption was introduced in [3]. In this scheme, it combines ElGamal encryption and Schnorr signature to construct a CA-oblivious PKI-enabled encryption secure under the CDH assumption. Based on this primitive, they proposed a new SH scheme based on the CA-oblivious encryption scheme. Subsequently, an SH scheme based on RSA was proposed [5]. This scheme is proven secure against active impersonator and detector adversaries that rely on the difficulty of solving the RSA problem. We note that to date, no SH scheme based on ElGamal signature exists in the literature. In 2005, several OSBE schemes for the ElGamal family of signature schemes were proposed in [6], including Schnorr, Nyberg-Rueppel and DSA. An OSBE scheme can be easily used to construct an SH scheme. As described in [6], OSBEs can be viewed as a sort of a one-side or asymmetric SH. The most naive approach is to simply combine two OSBE Interaction (S, R1 ) and (R1 , S) to obtain an SH. This way, we can see that most of the OSBE schemes in [6] can be easily used to construct SH schemes. However, the three-round protocol does not work for ElGamal- and DSA-OSBE schemes [6]. Hence an extra initial round would be necessary to be used to exchange the first message. It means that these two schemes cannot be used to construct SH scheme which only requires three rounds. We also point out that the DSA-OSBE proposed in [6] is flawed. We will show this flaw in Appendix B.
3
Definition and Security Properties of Secret Handshakes
We adapt the definition of an SH scheme from [2] to our SH scheme, which might potentially restrict the notion of a secret handshake scheme, but both the SH scheme of [2] and our SH scheme fall into this category. We define an SH scheme as a triple of probabilistic algorithms CreateGroup, AddUser, Handshake.
Three-Round Secret Handshakes Based on ElGamal and DSA
335
– CreateGroup, a key generation algorithm executed by the group administrator GA, on input of params, outputs the group public key G , and the GA’s private key tG . – AddUser is an algorithm executed between a group member and GA on GA’s private key tG and shared inputs: params, G, and the identity of the group member which is bit string ID of size regulated by params. After performing the algorithm, the group member will be issued a secret credential produced by GA for the member’s identity ID. – HandShake is the authentication protocol, executed between two parties A and B who want to authenticate each other on the public input IDA , IDB , and params. The private input of each party is their secret credential, and the output of the protocol for either party is either reject or accept. 3.1
Basic Security Properties
An SH scheme must satisfy the properties of completeness, impersonator resistant, and detector resistant. The adversary is allowed to run the protocols several times and be able to make additional queries after each attempt, before he announces that he is ready for the true challenges. He is allowed to ask for signatures on additional IDi = IDA strings during the handshake protocol with honest member V . He can also see all exchanged messages, can delete, modify, inject and redirect messages, can communicate with other party, and can reuse messages from past communications. Completeness. If honest members A, B of the same group run Handshake with valid certificates from the group administrator, which are the signatures generated for their ID strings IDA , IDB and for the same group GA = GB , then both parties output “accept”. Impersonator Resistance. The impersonator resistance property is violated if an honest party V who is a member of group G authenticates an adversary A as a group member, even though A is not a member of G. We denote the probability that the property is violated as follows: Pr[A succeeds in authenticating with V | V ∈ G ∩ A ∈ / G] ≤ ε, where ε is negligible. Detector Resistance. An adversary A violates the detector resistance property if it can decide whether some honest party V is a member of some group G by determining the relationship between the public message of the member and the public key of the group, even though A is not a member of G. The probability that the property is violated is as follows: Pr[A knows whether V is the valid member|public messages of V ∩A ∈ / G]≤ε.
4
Secret-Handshake Scheme Based on ElGamal Signature
In this section, we present our three-move SH scheme based on ElGamal signature in two stage. Firstly, we present an ElGamal based key agreement scheme, and then, we construct a three-move SH scheme based on it.
336
4.1
L. Zhou, W. Susilo, and Y. Mu
ElGamal-Based Key Agreement Scheme
Let us review the basic ElGamal signature for completeness. [9] The first step is key generation. Pick a large prime p such that p − 1 has a large prime divisor q, and also pick g which is an element of Z∗p of order q. Then, choose a random number S ∈ Z∗q , and compute y ≡ g S (mod p). The public key is K = p, g, y and the private key is S. To sign a message M ∈ {0, 1}∗ , we need to select a hash function H : {0, 1}∗ → Z∗q , and a secret random number r ∈ Z∗q . SigK (M, r) = α, β, where (mod p) and β = (H(M ) − α · S) · r−1
α = gr
(mod q)
The signature can be verified: V erif yK (M, α, β) = true ⇐⇒ g H(M ) ≡ y α · αβ
(mod p)
We now work on the key agreement protocol. Assume that there are two parties A and B whose unique identifications are IDA and IDB . Their identifications are signed with the third party’s ElGamal signature. Consequently, A obtains the signature αA , βA , where αA = g rA (mod p), βA = (hA − αA · S) · rA −1 (mod q), hA = H(IDA ), and B obtains the signature αB , βB . The key agreement is carried out as follows: – B chooses kB ∈ Zq at random, and computes ζB = αB (kB +1) (mod p · q), −1 ηB = βB · (kB + 1) · αB kB (mod q). Then, B sends ζB , ηB to A. – Upon receiving ζB , ηB from B, A chooses kA ∈ Zq at random and com−1 k η putes the shared key K = ((y (ζB mod q) · (ζB mod p) B )hB )αA A (mod p), where hB = H(IDB ). −1 A computes ζA = αA (kA +1) (mod p · q), ηA = βA · (kA + 1) · αA kA (mod q). Then A sends the pair ζA , ηA to B. – Upon receiving the pair ζA , ηA from A, B computes the shared key K = −1 k η ((y (ζA mod q) · (ζA mod p) A )hA )αB B (mod p), where hA = H(IDA ). Note that the value (αA , βA , kA ) is unknown to B and (αB , βB , kB ) is unknown to A. To check the correctness of the scheme, we show that the shared key that A and B will compute are equal. A:
= ((y (αB
(kB +1)
= ((g (αB
(kB +1)
= g αA B:
mod q)
K = ((y (ζB
K = ((y
kA
·αB
·S)
(ζA mod q)
= ((y (αA = ((g
mod q)
kB
(kA +1)
ηB hB −1 αA kA
· (ζB mod p)
= g αA
·αB
kB
)
βB ·(kB +1)−1 ·αB kB h −1 α kA B A
· (αB (kB +1) mod p)
· (g (hB −αB ·S)·αB
kB
)
−1
))hB
)αA
)
kA
(mod p) ηA hA −1 αB kB
· (ζA mod p) mod q)
(αA (kA +1) ·S) kA
)
· (g
)
)
βA ·(kA +1)−1 ·αA kA h −1 α kB A B
· (αA (kA +1) mod p) (hA −αA ·S)·αA kA
(mod p)
)
hA −1 αB kB
))
)
)
Three-Round Secret Handshakes Based on ElGamal and DSA
337
Due to lack of spaces, we omit the security proof of this scheme since it is not the main goal of this paper. We refer the reader to the full version of this paper [12] for a more complex account. 4.2
ElGamal Based Secret-Handshake Scheme
By modifying the key agreement protocol above, we can obtain an SH scheme. We call this scheme ElGamal-Based Handshake (EBH). EBH.CreateGroup. The administrator CA runs the ElGamal key generation algorithm to create the set of all keys {(p, q, g, y, S) | y ≡ g S (mod p)}, in which S is the group secret. EBH.AddUser. Select two collision-resistant cryptographic hash functions H1 : {0, 1}∗ → Z∗q , and H2 : {0, 1}∗ → {0, 1}k for some k. To add a user U to the group, the administrator CA first allocates a unique identity IDU to user, and generates a random nonce rU ∈ Zq . The CA then computes the hash value hU = H1 (IDU ), and gives the user U the corresponding signature αU , βU , where αU = g rU (mod p), βU = ((hU − αU · S) · rU −1 ) (mod q). EBH.Handshake. Let A and B be two users who would like to conduct an secret handshake. The three-move handshake protocol is given as follows. – B → A: IDB , ζB , ηB ζB = αB (kB +1) (mod p · q) −1 ηB = βB · (kB + 1) · αB kB (mod q) – A → B: IDA , V0 , ζA , ηA −1 k η V0 = H2 (((y (ζB mod q) · (ζB mod p) B )hB )αA A mod pIDA IDB 0) ζA = αA (kA +1) (mod p · q) −1 ηA = βA · (kA + 1) · αA kA (mod q) – B → A: V1 −1 k η V1 = H2 (((y (ζA mod q) · (ζA mod p) A )hA )αB B mod pIDA IDB 1) A verifies the V1 and accepts only if the following equation holds ?
V1 = H2 (((y (ζB
mod q)
ηB hB −1 αA kA
· (ζB mod p)
)
)
mod pIDA IDB 1)
B verifies the V0 and accepts only if the following equation holds ?
V0 = H2 (((y (ζA mod q) · (ζA mod p)
ηA hA −1 αB kB
)
)
mod pIDA IDB 0)
If both verification succeed, then A and B finish all the steps of the SH, and the handshake has been successful.
5
Security Consideration
Theorem 1. The above ElGamal-based SH scheme is Impersonator Resistant under the assumption that ElGamal signature is existentially unforgeable in the Random Oracle Model.
338
L. Zhou, W. Susilo, and Y. Mu
Proof. ElGamal-based SH is impersonator resistant if no polynomially bounded adversary wins the following game against the Challenger with non-negligible probability: The Challenger randomly picks a public key (g, p, q, y), and gives it to the adversary. The adversary responds with an IDA . The Challenger then picks a random pair ζA , ηA , where ζA ∈ Zp·q and ηA ∈ Zq . The adversary then outputs kA ∈ Zq , and the adversary wins the game if (g hA )kA = y ζA · ζA ηA (mod p). Given an attacker A that wins the above game with probability ε. We construct another attacker B that can successfully forge the ElGamal signature with probability ε. B does the following: 1. B, when given (g, p, q, y), passes (g, p, q, y) to A and gets IDA back. 2. B then computes hA = H(IDA ), picks a random pair ζA , ηA , and sends to A. Then B gets kA from A. ζA 3. Note that y · ζA ηA = (g hA )kA (mod p). If B uses g hA as the generator, ζA , ηA can be viewed as the ElGamal signatures of kA in (g hA , p, q, y). B succeeds in forging the signature if and only if A wins the above game. Hence, we can see that if the adversary A can impersonate the credential, it can be used to forge the ElGamal signature. And there is a assumption that ElGamal signature is existentially unforgeable. We can easily see that if this assumption holds, the probability ε should be a negligible value. An adversary A who can forge a valid signature can surely attack the SH protocol just as an honest member. So he can break the underlying security assumption. Obviously, the probability to break this assumption can not be smaller than the probability to forge a valid signature. Theorem 2. The above ElGamal-based SH scheme is Detector Resistant under the Computational Diffie-Hellman (CDH) assumption in the Random Oracle Model. Proof. Firstly, let us review the CDH assumption: given a cyclic group G, a generator g ∈ G, and group elements g a , g b , the probability to compute g ab is negligible. Then we consider the proof as follows. ElGamal-based SH is detector resistant if no polynomially bounded adversary wins the following game against the Challenger with non-negligible probability: The group administrator holds a key set for ElGamal (g, p, q, y, S), and the Challenger gets the (g, p, q), and gives it to the adversary. The Challenger first asks the member for a triple −1 IDA , ζA , ηA , where ζA = αA (kA +1) (mod p ·q) and ηA = βA · (kA + 1) ·αA kA (mod q). αA , βA is the ElGamal signature on IDA . The adversary then outputs y ∈ Zp , and the adversary wins the game if y = y. Given an attacker A that wins the above game with non-negligible probability ε. We construct another algorithm B that can successfully break the CDH assumption with probability ε. Algorithm B is as follows: 1. Given (g, p, q), B passes (g, p, q) to A. −(k +1) −1 k = g ζA and g αA A = (y ζA · 2. Given ζA , ηA , B can compute g αA A −1 ζA ηA )hA . Let a be αA −(kA +1) mod q and b be αA kA mod q as defined in the CDH problem.
Three-Round Secret Handshakes Based on ElGamal and DSA
339
3. B sends the pair ζA , ηA to A. Subsequently, B obtains y from A. −1 −1 −1 4. B can compute g αA = (ζA ηA ·ζA ·y)hA . Hence, B has successfully broken −1 −(k +1) k the CDH assumption by computing g αA = g ab = g αA A ·αA A mod p.
6
Secret-Handshake Scheme Based on DSA
In this section, we construct an SH Scheme based on DSA signatures using a similar idea as above. DSA-based [10] scheme is a bit complex since there are two modulus used in the scheme. The Digital Signature Algorithm (DSA) was developed by NIST as a more efficient alternative to ElGamal. For completeness, we review the scheme here: Let p be a larger prime such that p − 1 has a large prime divisor q, let g be an element of order q in Z∗p . Let S ∈R Z∗q , and compute y ≡ g S (mod p). So the public key is K = p, g, y and S is the private key. Define a hash function H : {0, 1}∗ → Z∗q , and pick a secret random number r ∈ Z∗q . SigK (M, r) = α, β, where α = (g r mod p) mod q and β = ((H(M ) + α · S) · r−1 ) mod q Verification algorithm is as follows: V erif yK (M, α, β) = true ⇐⇒ α ≡ (y αβ
−1
· g H(M )β
−1
mod p) mod q
From the above, we notice that the DSA signature is very similar to the ElGamal, but they have different modulus. Therefore, we cannot construct a DSA-based handshake scheme in a straightforward manner. The idea is to convert the DSA signature into the form of one modulus first, and then apply the ElGamal based SH scheme to the DSA signature. −1 Firstly, we compute α as follows: α = (g h · y α )β mod p. Now we can use the α , β as the certificates of the member to conduct the handshake. Since there is a little difference between the DSA signature and the ElGamal signature, we cannot apply the ElGamal based SH to the DSA directly. However, by slightly modifying our scheme in Section 5, we can obtain a DSA-based SH. The −1 modification is as follows: A computes ηA = −βA · (kA + 1) · αA kA (mod q) −1 and B compute ηB = −βB · (kB + 1) · αB kB (mod q). The rest of the scheme remains the same as our ElGamal based SH scheme defined in Section 5. We refer the reader to the full version of this paper [12] for the complete treatment of this scheme, including the security proof.
7
Conclusion
We proposed a three-move secret handshake scheme based on the ElGamal signature and DSA signature. Our work answered the open problem of constructing three-move SH schemes using ElGamal signature affirmatively. We also showed that our ElGamal (DSA) based scheme is secure against impersonator and detector attacks under the assumption the existentially unforgeable of the ElGamal (DSA) signature.
340
L. Zhou, W. Susilo, and Y. Mu
References 1. D. Boneh and M. Franklin. Identity-based encryption from the Weil pairing. Lecture Notes in Computer Science, 213 – 229, 2001. 2. D. Balfanz, G. Durfee, N. Shankar, D. Smetters, J. Staddon, and H. Wong. Secret Handshakes from Pairing-based Key Agreements. 2003 IEEE Symposium on Security and Privacy, pages 180 – 196, 2003. 3. C. Castelluccia, S. Jarecki, and G. Tsudik. Secret Handshakes from CA-Oblivious Encryption. Advances in Cryptology - Asiacrypt 2004, Lecture Notes in Computer Science 3329, pages 293 – 307, 2004. 4. N. Li, W. Du, and D. Boneh. Oblivious Signature-Based Envelopes. 22nd ACM Symposium on Principles of Distributed Computing (PODC 2003), pages 182 – 189, 2003. 5. D. Vergnaud. RSA-based secret handshakes. InternationalWorkshop on Coding and Cryptography, Bergen, Norway, March 2005. 6. S. Nasserian, G. Tsudik. Revisiting Oblivious Signature-Based Envelopes. Cryptology ePrint Archive, Report 2005/283, 2005. 7. C.Y. Ng, W. Susilo and Y. Mu. Designated Group Credentials. ACM Symposium on Information, Computer and Communications Security (ASIACCS’06), 2006. 8. Jason E. Holt. Reconciling CA-Oblivious Encryption, Hidden Credentials, OSBE. and Secret Handshakes. Cryptology ePrint Archive, Report 2005/215, 2005. 9. T. ElGamal. A public key cryptosystem and a signature scheme based on discrete logarithms. IEEE Trans. on Information Theory, IT-31, pages 469 – 472, 1985. 10. National Institute of Standards and Technology. Digital Signature Standard. NIST FIPS PUB, 186, U.S. Department of Commerce, 1994. 11. D. Pointcheval, J. Stern. Security proofs for signatures. Eurocrypt96, pages 387398, 1996. 12. L. Zhou, W. Susilo and Y. Mu. Three-round Secret Handshakes based on ElGamal and DSA (full version). Manuscript, 2006.
A
Secret Handshake from ElGamal-OSBE
We now review the SH scheme constructed by the ElGamal-OSBE derived from the generic construction in [6]. Firstly, we present the ElGamal-OSBE which is defined as follows: Setup: This algorithm takes as input a security parameter t and creates an ElGamal key: (p, q, g, S, y), selects a suitable cryptographic hash function H, a function H for key derivation and two security parameters t1 and t2 , which are linear in t. It also chooses a semantically secure symmetric encryption scheme , two messages M and P and computes the ElGamal signature δ = (α, β). Interaction:
ε
Step 1: R1 → S: α = g k mod p Step 2: S receives α, generates z ∈R {1 · · · 2t1 p} with α (mod p − 1) = 0, computes Ks = y αz · g −hz mod p and derives ks = H (Ks ) Step 3: S → R1 : Z = αz mod p, C = ks [P ]
ε
Three-Round Secret Handshakes Based on ElGamal and DSA
341
Step 4: Upon receiving (Z, C), R1 computes Kr = Z −β , derives kr = H (Kr ) and decrypts C with kr . where the correctness is easy to see that: Ks = y αz g −hz = g (αS−h)z = g k(αS−h)k
−1
z
= α−βz = Z −β = Kr
Then from previous OSBE scheme, an ElGamal-based SH can be easily constructed as follows [6]: CreateGroup and AddUser are the same as our ElGamal-based handshake scheme. Here we only present the HandShake step. k – A → B: IDA , αA , where αA = gA (mod p) – B → A: IDB , αB , ZB k αB = gB (mod p) B generates zB ∈R Zp B computes ZB = αA zB B computes KB = y αA zB · g −hA zB mod p – A → B: αA , ZA , V0 k αA = gA (mod p) A generates zA ∈R Zp A computes ZA = αB zA A computes KA = y αB zA · g −hB zA mod p −βA A computes V0 = H2 (KA ZB 0) – B → A: V1 −βB V1 = H2 (ZA KB 1) −βB −βA As shown in the OSBE scheme, KA = ZA and KB = ZB , so that A −βA verifies the V1 and accepts only if V1 = H2 (KA ZB 1). B verifies the V0 and −βB accepts only if V0 = H2 (ZA KB 0). If both verification are successful, then A and B finish all the steps of the SH, and the handshake succeeds. From this SH scheme, we can observe that there are four rounds required.
B
Secret Handshake from DSA-OSBE
Now we will construct the DSA-based SH from DSA-OSBE. Since DSA-OSBE in [6] is very similar to the ElGamal one, the authors only gave the algorithm to compute the secret as follows: – Ks = (y α g h )z = g (αS+h)z −1 – Kr = Z β = αzβ = g k(αS+h)k z = g (αS+h)z Hence, we only present the SH scheme which can be constructed from DSAOSBE. CreateGroup and AddUser step are the same as our DSA-based handshake scheme. Also, we only present the HandShake step.
342
L. Zhou, W. Susilo, and Y. Mu
k – A → B: IDA , αA , where αA = gA (mod p) – B → A: IDB , αB , ZB k αB = gB (mod p) B generates zB ∈R Zp B computes ZB = αA zB B computes KB = y αA zB · g hA zB mod p – A → B: αA , ZA , V0 k αA = gA (mod p) A generates zA ∈R Zp A computes ZA = αB zA A computes KA = y αB zA · g hB zA mod p βA A computes V0 = H2 (KA ZB 0) – B → A: V1 βB V1 = H2 (ZA KB 1)
Similar to the handshake scheme from ElGamal-OSBE, the above scheme ? ? βB βA also requires four rounds. Only if KA = ZA and KB = ZB hold then the scheme will be complete. Unfortunately, this verification is incorrect. We check first equation: KA = (y αB · g hB )zA = g (αB S+hB )zA βB which is correct. The problem is due to ZA : KA ≡ ZA βB = αB zA βB = g k(αB S+h)k
−1
z
= g (αB S+hB )zA .
The authors of the original paper [6] believe KA = KA . However, the problem is as follows:
((g k mod p) mod q)(αB S+h)k
−1
z
= ((g k )(αB S+h)k
−1
z
mod p) mod q.
Obviously, the equality does not hold. Hence the DSA-OSBE scheme in [6] is flawed.
Securing C Programs by Dynamic Type Checking Haibin Shen, Jimin Wang, Lingdi Ping, and Kang Sun College of Computer Science and Technology, Zhejiang University, China {shb, wangjm}@vlsi.zju.edu.cn
Abstract. Flexible features of C can be misused and result in potential vulnerabilities which are hard to detect by performing only static checking. Existing tools either give up run-time type checking or employ a type system whose granularity is too coarse (it does not differentiate between pointer types) so that many errors may go undetected. This paper presents a dynamic checking approach to conquer them. A type system that is based on the physical layout of data types and has the proper granularity has been employed. Rules for propagating dynamic types and checking for compatibility of types during execution of the target program are also set up. Then a model of dynamic type checking on this type system to capture run-time type errors is built. Experimental results show that it can catch most errors, including those may become system vulnerabilities and the overhead is moderate.
1
Introduction
C is one of the most expressive and powerful programming languages with many flexible features. However, many of these features can be misused and lead to program bugs that are hard to detect and debug. What is worse, the bugs may be found and employed by hackers to perform system attacking : the notorious “buffer overflow” and “format string”[9] vulnerabilities are all of this kind. As system security has been regarded as an more and more important issue, many safe languages such as Java have been created and employed in system programming. However, the C language is still the choice of many system programmers. Moreover, there exist innumerable lines of C code in current operating systems and all kinds of applications, it is not a sensible idea to abandon the existing C programs and rewrite them from scratch using a safe language. Thus we must find an alternative solution to this problem, keep the high performance of C language as much as possible, and at the same time, make it safe. We organize the rest of the paper as follows: Section 2 discusses related work. Section 3 presents the dynamic type checking method and Section 4 discusses some practical problems in application of our method. Section 5 gives the experimental results. Section 6 summaries this work and gives the conclusion.
Supported by the National High Technology Research and Development Program of China (863 Program) (No. 2003AA1Z1060) and Natural Science Foundation of Zhejiang Province (No. Y105355).
K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 343–354, 2006. c Springer-Verlag Berlin Heidelberg 2006
344
2
H. Shen et al.
Related Work
The idea of physical subtype and subtype polymorphism in C is well presented in Siff et al.[6] and Chandra et al.[8]. Siff et al. studies casts in C and groups them into downcasts, upcasts and mismatch. Chandra et al. studies the physical subtype theory and presents a model of physical type checking for C. Our type system is similar to that of Siff et al. and Chandra et al. but we take the dynamic properties of programs into account. Two ground types are added and the rules for subtype inference are also modified to suit our type system. More importantly, we use the type system in dynamic type checking, while the chief application of their type system is static type checking. The idea of dynamic checking appears in several tools. Purify[7] instruments binaries to perform memory access checking, but it does’t detect type errors. Valgrind[4], a Purify-like memory access checker for Linux which interprets programs to detect errors, does’t detect type errors either. Hobbes[5] and Loginov et al.[1] tool perform dynamic type checking so type errors can be detected. However, they do not differentiate pointers, so some type errors may be overlooked.
3
Dynamic Type Checking
The dynamic type checking process is composed of two procedures: the propagation procedure and the checking procedure. The propagation procedure takes care of propagation of dynamic types, while the checking procedure detects errors in the propagation procedure and tries to recover the program from errors. 3.1
Preliminaries
Terms 1. Program element (or Element): A program element (element for short) is a variable (local or global) or a member of a struct variable or a union variable, or an element of an array. Program elements can be classified by their types. For example, we refer to the program elements of array type array elements and the program elements of struct type struct elements. 2. Active member: This term is only meaningful for union elements. Generally, an union element has one or more members. When part or all of a member is written, we call this member the active member of the union element. Each union element has at most one active member. When a new member of the element is written, it is made the active member and previous active member is deactivated. 3. Active part: This term is only meaningful for structure and array elements. Given an structure element or array element e and a pointer p to any position of e, the part from the position pointed by p to the end of e is called an active part of e as viewed from p (it is often shortened to active part when the pointer p can be found in the context). A pointer to a structure in our type system can be looked upon as a pointer which always points at the
Securing C Programs by Dynamic Type Checking
345
t::= ground |a{e0 ,e1 ,e2 ,...,ek } //array of k elements |ptr t //pointer to t |s{m1 ,m2 ,m3 ,...,mk } //struct |u{|m1 ,m2 ,m3 ,...,mk |} //union |(t1 ,t2 ,...,tk )–>t //function m::= (t,l,i) //member labeled l of type t at offset i |(l:n,i) //bit field labeled l of size n at offset i ground::= e{id1 ,id2 ,...,idk } |uninitialized,error type,void *,char, unsigned char, short, int, long, float, double,... Fig. 1. Types in our type system
starting address of the active part of the structure. The active part shrinks when the pointer moves forward and expands when the pointer moves backward. Note that an active part of element e can be null if the pointer points at the end of e. The Type System. We employ a modified version of the type system described in Chandra et al.[8] in our dynamic type checking method. The types of our type system are shown in Figure 1. We have added the function type to the type system so we can catch potential errors caused by misuses of function pointer. We also add two special types to the ground type: uninitialized and error type. An element of type uninitialized has not been initialized by the programmer and does not have a definite value. An element of type error type indicates that an error has occurred during the propagation of dynamic types. An array in our type system is treated like a structure (each member is listed explicitly) since the dynamic types of its elements may differ from each other. An array of declared type t that has k elements can also be written as t[k] when we don’t care the dynamic types of its elements. Assumptions. For ease of discussion, we assume that all other offsets of structures and unions comply with the ANSI C standard. Another assumption is that all structure elements are explicitly padded. When a structure object is stored in accordance with the system’s alignment restrictions, one or more padding bytes may be added to it. In an “explicitly padded” version of a structure object, each padding byte is declared as an anonymous bit field. 3.2
Introduced Variables and Auxiliary Functions
Several variables are introduced to our type system to catch the dynamic properties of a running program, we list them in Table 1. In the table we use expressions like var(e) to refer to the introduced variable var which is related to internal
346
H. Shen et al. Table 1. Introduced variables
Variable dtype(v) alias(e) sptr(e)
Explanation records the dynamic type of each variable v during program execution a set which collects pointers that point to any part of the element e directly remembers the starting address of each variable of structure or array type
Table 2. Introduced auxiliary functions Function stype(e) sizeof(t) deref(t) ispointer(t) isarray(t) isstruct(t) obj(p) update alias(e)
Explanation compiler-assigned type of a C expression e size in byte of type or program element t dereferenced type of t if t is a pointer true iff t is a pointer true iff t is an array true iff t is a struct object that pointer p points to updates the type of each element in set alias(e) so that it keeps consistent with the type of e whenever the type of e changes
variable or program element e. A number of auxiliary functions are also defined in our type system, which are listed in Table 2: Besides the functions listed in Table 2, another function is defined to construct a type from a struct or an array. Let t be a struct or an array: t = s{m1 ,m2 ,...,mn } We define k s{mk+1 , mk+2 , ..., mn } where i=1 sizeof (mi ) = siz P ostf ixT ype(t, siz) = error type where no such m1 · · · mk exist 3.3
Propagation of Dynamic Types
Initialization. When the program starts to run, the dtypes of all global elements get initialized. The rule for initializing dynamic types of program elements of ground types is quite straightforward: if the element e has a definite value, its dtype(e) is set to stype(e); otherwise it is set to uninitialized. On entry to a function, similar things happen to local variables, but the dynamic types of global variables and formal parameters are not affected. Propagation. The rule for propagating dynamic types among program elements of ground types is quite straightforward when no pointers are involved. Once pointers are involved, things get a little more complicated. To simplify the discussion, we assume that statements related to pointers in the input program have been normalized to consist of only a few simple forms which are listed in Table 3. By introducing temporary variables, any complex statement can be normalized. Some examples of normalization are shown in Table 4.
Securing C Programs by Dynamic Type Checking
347
Table 3. Statements related to pointers in the normal form Name of Statement Normal Form Address-of p = &x Assignment p = Castopt q Pointer Dereference on rhs p = *q Pointer Dereference on lhs *p = q Plus p = q + k (k 0) Minus p = q − k (k 0)
Table 4. Examples of normalization of statements related to pointers Nomal form p = q -> a;
Normalization tmp = (char *)q + Offseta ; p = *tmp; tmp1 = &q; p = &(q.a); tmp2 = (char *)tmp1 + Offseta ; p = tmp2; tmp1 = &p; (DstType *)(&p) = q; tmp2 = (DstType *)tmp1; *tmp2 = q;
The propagation rules for statements listed in Table 3 are listed in Figure 2. Besides the cases listed in the table, dynamic types are also propagated when a function call is made. A function declared as void func(formal param1 ,formal param2 ,...,formal paramn ); and called in the form func(act param1 ,act param2 ,...,act paramn ); can be looked up as a sequence of assignments: formal param1 = act param1 ; formal param2 = act param2 ; ... formal paramn = act paramn ; call func; When the function call is made, the dtypes of actual parameters are propagated to the corresponding formal parameters. The propagation process continues when statements in the function body are executed. 3.4
Dynamic Type Checking
Dynamic type checking is performed in the checking procedure. First we will introduce some auxiliary functions used in this procedure: 1. is subtype(p,q) is true iff type p is a subtype of q. The concept “subtype” here is identical to “physical subtype” presented in Chandra et al.[8]. We also use the notion “tt’” to denote that t is a subtype of t’.
348
H. Shen et al.
Address-of: alias(obj(p)) = alias(obj(p)) - p; p = &x; dtype(p) = ptr dtype(x); alias(x) = alias(x) ∪ p; update alias(p);
Assignment: alias(obj(p)) = alias(obj(p)) - p; p = q; dtype(p) = dtype(q); alias(obj(q)) = alias(obj(q)) ∪ p; update alias(p);
Pointer Dereference on rhs: Pointer Dereference on lhs: if (ispointer(p)) if(ispointer(*p) alias(obj(p)) = alias(obj(p)) - p; alias(obj(obj(p))) = alias(obj(obj(p)))-*p; p = *q; *p = q; dtype(p) = deref(dtype(q)); dtype(*p) = dtype(q); if (ispointer(p)) if(ispointer(*p) alias(obj(obj(q))) = alias(obj(obj(q)))∪ p; alias(obj(q)) = alias(obj(q))∪ *p; update alias(p); update alias(obj(p)); Plus: alias(obj(p)) = alias(obj(p)) - p; p = q + k; if (isarray(q)) dtype(p) = PostfixType(dtype(q), k * sizeof(q[0])); else if(isstruct(deref(q))) dtype(p) = ptr PostfixType( deref(dtype(q)), k * sizeof(stype(*q))); else dtype(p) = dtype(q); alias(obj(q)) = alias(obj(q)) ∪ p; update alias(p);
Minus: alias(obj(p)) = alias(obj(p)) - p; p = q - k; if (isarray(q)) dtype(p) = PostfixType(dtype(sptr(q)), sizeof(dtype(sptr(q)))sizeof(dtype(q))-k * sizeof(q[0])); else if (isstruct(deref(q))) dtype(p) = ptr PostfixType( deref(dtype(sptr(q))), sizeof(deref(dtype(sptr(q))))sizeof(deref(dtype(q)))k * sizeof(stype(*q))); else dtype(p) = dtype(q); alias(obj(q)) = alias(obj(q)) ∪ p;
Fig. 2. Propagation rules for statements
2. prototype(f ) returns the prototype of function f. 3. compatible(t1 ,t2 ) checks if type t1 is compatible with t2 using the rules listed in Figure 3. When to Perform Checking. When no pointers, no structures and no unions are involved, there is no need to perform checking, because the compiler can guarantee the type safety of the program. So we consider only the statements in which these elements are involved. General pointer references and assignments can propagate errors, but they cannot generate errors, so Address-of statements and Assignment statements of pointers can also be neglected for checking. All other statements need to be checked. How to Perform Checking. The main task of dynamic type checking is to check the compatibility of an operator and its operands, finding potential type errors and reporting them to the programmer. In most cases, what we need to
Securing C Programs by Dynamic Type Checking
349
Basic rules: scalar ground types(all ground types except void ptr) are subtypes of themselves and not of other ground types. For example: int int,int double, int long Inference rules: [Reflexivity] tt [Void Pointers] ptr t void ∗ [Member subtype]
m = (l, t, i) m = (l , t , i ) i = i t t m m
[First members]
t t m1 = (l, t, 0) s{m1 , · · · , mk } t
[Flattened first members] s{f latten(t)} s{f latten(t )} ⎧ t: ⎪ ⎪ ⎨ if t is not a structure f latten(t) = {f latten(m1 ), · · · , f latten(mk )} : ⎪ ⎪ ⎩ if t = s{m1 , · · · , mk } t t [Integer pointers]
sizeof (int) = sizeof (void ∗) void ∗ int, ptr t int sizeof (int) = sizeof (void ∗) void ∗ unsigned int, ptr t unsigned int
[Long pointers]
sizeof (long) = sizeof (void ∗) void∗ long, ptr t long sizeof (long) = sizeof (void ∗) void ∗ unsigned long, ptr t unsigned long Fig. 3. Basic and inference rules for subtypes
do is to find the answer to the question “Can the value of an expression A be used as a value of type B?” for different A and B. 1. For unions: The dynamic type of a union object tracks the dynamic type of its active member, so there is no problem when its active member is referenced. When its non-active member is referenced, we need to check the compatibility of its active member and non-active member. If only part of
350
H. Shen et al.
the non-active member is referenced, we should check the compatibility of the active member and the referenced part of the non-active member. So we formulate the checking process as follows: (1) construct the minimum target type that contains type of the referenced part of the target member; (2) check the compatibility of the constructed type and the type of the active member. 2. For pointers: We consider only normalized statements listed in Table 3 here. (1) In Assignment statements and Address-of statements the dtype is propagated but no check is made since they cannot generate type errors. (2) In Plus statements and Minus statements, pointer arithmetic should be checked for out-of-bounds errors. This check is performed in PostfixType function calls. If the result of the plus operation goes beyond the last byte of the referenced object, or the result of the minus operation goes beyond the first byte of the referenced object, the returning type will be set to error type. The error will be found once the result pointer is dereferenced. (3) When a pointer is dereferenced, the dereferenced object must be a pointer, which is checked in deref. deref(p) will return error type if p is not a pointer. When error type is dereferenced, an error will be reported. If deref(p) returns some pointer type, we need to check the compatibility of the source type and the target type. Which is source and which is target depend on the side where pointer dereference happens. 3. For function calls: Each actual parameter of the function call should be checked to see if it is compatible with the corresponding formal parameter. If the function is called through a function pointer, another check should be made to ensure that the function pointer has the same number of parameters as the function prototype and type of each parameter is compatible with that of the corresponding parameter of the function prototype, and their returning types are the same. Checking the Compatibility of Two Objects. Function compatible is used to check the compatibility of two objects. It has two parameters: the target type, and the type we have. The rules to judge the compatibility are as follows: 1. The type uninitialized is not compatible with any type, that is,compatible(t, uninitialized) always returns false. 2. The type error type is not compatible with any type, that is,compatible(t, error type) always returns false. 3. A subtype is compatible with its parent types. 4. If the compiler can automatically convert source type to target type, for example, from char to int, they are compatible. 5. Two function types are compatible iff the following conditions hold: (1)they have exactly the same number of parameters; (2)The type of each parameter of one function is compatible with that of the corresponding parameter of another; (3)The size of each parameter of one function equals to that of the
Securing C Programs by Dynamic Type Checking
351
corresponding parameter of another. (4)Their returning types are compatible. (5)Their returning types have the same sizes. 6. In all other cases, the two given types are incompatible. When compatible is called, it uses the rules listed above one by one to test the compatibility of input types. If one rule cannot give an answer, the next one will be used. 3.5
Updating Aliases
Pointer p is an alias of object o if p references o. dtype(p) should be updated when the dynamic type of o changes, otherwise it will result in type inconsistencies. To prevent this situation, we must update the dtypes of elements in alias(e) by calling update alias(e) once program element e is updated. Since function update alias(e) is itself a recursive function, all affected elements will have their dtypes updated in one call.
4 4.1
Some Practical Problems Relaxing the Rules
Although we can flatten structures when necessary and we do not consider the labels of structure members when we perform type checking, the rules listed in Figure 3 may be still too restrictive for users. For example, some users may use array padding in their programs (see the ColorPoint example of [6]), so we add the following rules to the compatible rules list: 1. char[n] is compatible with type t iff sizeof(t)= n 2. Two structure types are compatible if they can be divided into one or more parts, and the size of each part of one structure equals that of the corresponding part of another, and the type of each part of one structure is compatible with that of the corresponding part of another. 4.2
Variable Argument Function
The rules for type checking of functions we presented above cannot manage variable argument functions because the number of arguments of such a function is variable. However, by looking into an implementation of variable argument function, it will be made clear that a variable argument function has not much more than an ordinary function except several wrapper macros which expand to assignment and pointer arithmetic statements. The C compiler puts the variable arguments in a variable argument list and transfers it to the called function. The function uses a series of macros to extract arguments from the list and casts them to destination types. Here is an implementation of these macros which appears in Microsoft C:
352
H. Shen et al.
typedef #define #define #define #define
char *va_list; _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int)-1)) va_start(ap,v) (ap=(va_list)&v + _INTSIZEOF(v)) va_arg(ap,t) (*(t *)((ap += _INTSIZEOF(t))-_INTSIZEOF(t))) va_end(ap) (ap = (va_list)0)
Among these macros,va start is used to adjust the pointer to the variable argument list and make it point to the first variable argument; va arg is used to extract one argument from the list, cast it to the destination type and move the pointer forward to the next argument in the list. INTSIZEOF is used to align addresses. We can see from the code that these macros are just pointer arithmetic and casts. If dynamic types of these arguments are provided, we can also perform dynamic type checking for variable argument functions. The dynamic types can be provided in this way: collect the dtype of each actual parameter, and assemble them in an array. This array is transferred to the called function with the other arguments. When an argument is extracted from the argument list, its type is also extracted from the array and type checking is performed. Then the dtypes of the arguments propagates as for ordinary functions. 4.3
External Libraries
Almost all C programs call functions from libraries. Variables defined in external libraries may also be used in C programs. Because dynamic types do not propagate in library functions, some information is lost after calling them. The dtypes of referenced variables may not be accurate any longer and we can only assume that the dtypes of all variables referenced by these functions have not changed. This can result in false alarms and many errors may go undetected. The problem can be solved by recompiling the library if its source code is available. However, in many cases, the source code cannot be obtained, then we can only count on our carefulness.
5
Experimental Results
We implement the dynamic type checking system in the lightweight C compiler — lcc[2] by making modifications to it. The version we use for implementation is 4.2. The checking system, which is linked to every user program it compiles, is implemented as part of compiler libraries. Necessary variables declarations and code of dynamic type initializations, propagations and checking are inserted by modified lcc compiler. We apply the the compiler to a set of small programs including various sorting algorithms and the maze problem to evaluate the performance of it, the results are shown in Table 5. Among the sorting algorithms, “Insertion1” is direct insertion sorting algorithm, “Insertion2” is binary insertion sorting algorithm, “Merge1” is the iterative version of mergence sorting algorithm, “Merge2” is the recursive version of mergence sorting algorithm, and others are self-explaining.
Securing C Programs by Dynamic Type Checking
353
Table 5. Performance and memory consumption measurements for small programs Program Insertion1 Insertion2 Quick Shell Selection Bubble Merge1 Merge2 Heap Maze
Base time 6.15 6.29 0.01 5.48 6.03 21.44 0.02 2.68 0.02 12.97
Base size 884 884 892 884 884 888 1084 1164 892 16740
Time 1450.54 1428.96 1.15 1109.26 708.53 3502.22 2.10 140.35 1.81 357.45
Size 4216 4216 4220 4212 4216 4216 3576 8344 4228 43248
Slowdown1 235.86 227.18 115.00 202.42 117.50 163.35 105.00 52.37 90.50 27.56
Aug1 4.77 4.77 4.73 4.76 4.77 4.75 3.30 7.17 4.74 2.58
Slowdown2 300.96 266.26 93.00 231.48 118.67 183.95 143.00 41.58 95.50 30.12
Aug2 4.17 4.18 4.14 4.13 4.18 4.13 3.57 7.06 4.14 2.12
Table 6. Error detection results when applying the tool to a test suite Bug Description Reading uninitialized locals Reading uninitialized data on heap Writing overflowed buffer on heap Writing overflowed buffer on stack Writing to unallocated memory Returing stack object Overwriting ending zero of string Function pointer with wrong number of arguments Function pointer with wrong returning type Vararg with wrong type of arguments Vararg with wrong number of arguments Bad union access/part of an object is uninitialized Bad union access/a complete uninitialized object Memory leakage Second free Bad type cases
Detection Result Yes Yes Yes Yes Yes No No No Yes Yes Yes Yes Yes No No Yes
All data are collected on a 2.0Ghz Pentium4 with 256 MB of memory, running Mandrake Linux Limited Edition 2005 (kernel 2.6.11). In the table we also list the results of Loginov et al. tool taken from Wang et al.[3] for comparison. Column “Base time” and “Base size” of the table list running time in seconds and memory consumption in KB of the program compiled by original lcc compiler respectively; column “Time” and “Size” list running time and memory consumption of the program compiled by modified lcc compiler respectively; column “Slowdown1” and “Aug1” list running time slowdown and memory consumption augmentation of “dynamically checked version” of each program; “Slowdown2” and “Aug2” list corresponding data of Loginov et al. tool. We also apply a test suite of small programs to evaluate the error detection ability of our compiler, each program in the suite contain one or more bugs caused by misuse of a flexible feature of C. The results are shown in Table 6.
354
6
H. Shen et al.
Conclusion
The dynamic type checking method we presented in this paper is effective in detecting bugs caused by misuse of flexible features of C, and the overhead it brings is tolerable. Since many of these bugs are related to vulnerabilities of systems, it is significant to enhancing system security.
References 1. Alexey Loginov, Suan Yong, Susan Horwitz, and Thomas Reps. Debugging via runtime type checking. In Proceedings of the Conference on Fundamental Approaches to Software Engineering, p.217-232, 2001. 2. David R. hanson, Christopher W. Fraser. A Retargetable C Compiler. Addison Wesley, 1995. 3. Jimin Wang, Lingdi Ping, Xuezeng Pan, Haibin Shen and Xiaolang Yan. Tools to make C programs safe: a deeper study. Journal of Zhejiang University SCIENCE. Vol.6A No.1 p.63-70,2005. 4. Julian Seward. Valgrind, an open-source memory debugger for x86-GNU/Linux. Technical report, http://valgrind.kde.org/, 2003. 5. Michael Burrows, Stephen Freund, and Janet Wiener. Run-time type checking for binary programs. In International Conference on Compiler Construction, 2003. 6. Michael Siff, Satish Chandra, Thomas Ball, Krishna Kunchithapadam, and Thomas Reps. Coping with Type Casts in C. Lecture Notes in Computer Science. 1687:180198, 1999. 7. Reed Hasting and Bob Joyce. Purify: fast detection of memory leaks and access errors. In Proceedings of the Winter USENIX Conference, 1992. 8. Satish Chandra and Thomas Reps. Physical type checking for C. In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, volume 24.5 of Software Engineering Notes (SEN), p.66-75, 1999. 9. Umesh Shankar, Kunal Talwar, Jeffrey S. Foster, and David Wagner. Automated Detection of Format-String Vulnerabilities Using Type Qualifiers. In Proceedings of the 10th USENIX Security Symposium, Washington,DC, 2001.
A Chaos-Based Robust Software Watermarking Fenlin Liu, Bin Lu, and Xiangyang Luo Information Engineering Institute, Information Engineering Univercity, Zhengzhou Henan Province, 450002, China [email protected], [email protected], [email protected]
Abstract. In this paper we propose a robust software watermarking based on chaos against several limitations of existing software watermarking. The algorithm combines the anti-reverse engineering technique, chaotic system and the idea of Easter Egg software watermarks. The global protection for the program is provided by dispersing watermark over the whole code of the program with chaotic dispersion coding; the resistance against reverse engineering is improved by using the anti-reverse engineering technique. In the paper, we implement the scheme in the Intel i386 architecture and the Windows operating system, and analyze the robustness and the performance degradation of watermarked program. Analysis indicates that the algorithm resists various types of semanticspreserving transformation attacks and is good tolerance for reverse engineering attacks.
1
Introduction
Software piracy has received an increasing amount of interest from the research community [1, 2, 3]. Nowadays, software developers are mainly responsible for the copyright protection with encryption, license number, key file, dongle etc. [1, 4]. These techniques are vulnerable suffered from crack attacks and hard to carry out pirate tracing. Moreover, software developers have to spend much time, resources and efforts for copyright protection. If there is a reliable system of software protection as the cryptosystem, the software based on the system can be protected to a certain extent. And software developers could devote most of their resources and efforts to developing the software without spending resource and efforts on intellectual property protection. Software watermarking is just an aspiring attempt in the aspect [5]. There are several published techniques for software watermarking. However, no single watermarking algorithm has emerged that is effective against all existing and known attacks. Davidson et al. [6] involved statically encoding the watermark in the ordering of basic blocks that constitute program. It is easily subverted by permuting the order of the blocks. A comparable spread spectrum technique was introduced by Stern et al. [7] for embedding a watermark by modifying the frequencies of instructions in the program. This scheme is robust to various types of signal processing. However, the data-rate is low and the scheme is easily subverted by inserting redundant instructions, code optimization, etc. With the pointer aliasing effects, Collberg et al. [8] first proposed K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 355–366, 2006. c Springer-Verlag Berlin Heidelberg 2006
356
F. Liu, B. Lu, and X. Luo
dynamic software watermarking, which embeds the watermark in the topology of a data structure that is built on the heap at runtime given some secret input sequence to the program. This scheme is vulnerable to any attack that is able to modify the pointer topology of the program’s fundamental data types. Cousot et al. [9] embed watermark in the local variable, and the watermark could be detected even if only part of the watermarked program is present. This scheme can be attacked by obfuscating the program such that the local variables representing the watermark cannot be located or such that the abstract interpreter cannot determine what values are assigned to those local variables. Nagara et al. [5] proposed thread-based watermarking with the premise that multithreaded programs are inherently more difficult to analyze and the difficulty of analysis increases with the number of threads that are ”live” concurrently. But the scheme need introducing a number of threads, and degradation of the performance could not be ignorable. In general, there are such limitations as follows: (A) the assumed threat-model is almost based on automated attacks (i.e. code optimization, obfuscation, reconstructed data and so on), but hardly on manual attacks (such as reverse engineering attacks). (B) Watermark is just embedded in a certain module of the program so that not all modules can be protected, and it can’t resist cropping attacks. (C) Watermark is embedded in the source code; because of its recompiling, the efficiency of embedding is rather low, especially fingerprint. (D) In the embedding procedure, programmers have to take on all the work, especially the complex watermark constructing and embedding, such that the watermark is not always feasible. This paper designs a new scheme that integrates chaotic system, anti-reverse engineering technology, and the idea of Easter Egg software watermarks-Chaosbased Robust Software Watermarking (CRSW) which holds the facility and feasibility of Easter Egg software watermarks, meanwhile resists various types of semantics-preserving code transformation attacks. When chaotic system is involved, dispersing watermark over the whole code provides global protection for the program. Furthermore, by involving anti-reverse engineering techniques, the resistance against anti-reverse engineering attacks is improved. In addition, CRSW embeds watermark into the executable code directly. The watermarked program need not recompile, and the efficiency is improved. The analysis of the proposed algorithm shows that CRSW resists various types of semantics transformation, is good tolerance against anti-reverse engineering technology attacks, and has modest performance degradation.
2
The Structure of CRSW
Easter Egg watermarks, a kind of dynamic software watermarks, is one of the most widely used watermarking [1, 8]. This watermarking, in essence, directly embeds a watermarking detector (or extractor) into the program. When the special input sequence is received, detector (or extractor) is activated, and then the watermark which is extracted from the watermarked program is displayed in a way of visualization. Thus, the semantics of detecting procedure (or extracting procedure) is included in the semantics of the watermarked program, so that Easter Egg water-
A Chaos-Based Robust Software Watermarking
357
marks resist various semantics-preserving transformation attacks [10]. The main problem with Easter Egg watermarks is that once the right input sequence has been discovered, standard debugging techniques will allow the adversary to locate the watermark in the executable code and then remove or disable it [8]. And then, the watermark is just embedded in one piece of the program typically, hence, cropping a particularly valuable module from the program for illegal reuse is likely to be a successful attack [10]. In this paper, basing on the idea of Easter Egg software watermarks, we attempt to propose a more robust and feasible software watermark—CRSW. The watermark is consisted with 4 essential parts: watermark W ,Input Monitoring Module Cm , Watermark Decoding Module Cd , and Anti-reverse Engineering Module Ca .Unlike the other watermarking, CRSW not only embeds watermark W into the program, but also embeds Cm , Cd , Ca in the form of executable code into the program. In this section, we expatiate the structure and the interrelations of CRSW embedding code which includes Cm , Cd , Ca (see Fig. 1). Formally, let P be the considered program, {α1 , α2 , · · ·}be the set of acceptable input of the program,P = T (P, W, Cm , Cd , Ca ) is the watermarked program (T is the watermarking transformation), the extracting procedure is = D(Γ (P )), where D is the extracting transformation, Γ is the code transforW mation. If the watermarked program has been attacked, Γ represents the attacking transformation. Otherwise, Γ is identical transformation.If D(Γ (P )) ≡cp W holds,T resist Γ , where equivcp is user-defined equal relationship. Input Monitoring Module realizes the mapping, Ψ : {α1 , α2 , · · ·} −→ {0, 1}. If Ψ (αi ) = 1 holds, Cd is activated. α ∈ Σ = {αi | Ψ (αi ) = 1} is defined as activation key. To describe the Watermark Decoding Module clearly, we briefly describe the watermark embedding procedure. Firstly, preprocess W : W = E(W, G), where G is digital chaotic system; then embed W into the code of program with chaotic dispersion coding and get the code Iew = Ω(W , I, G), where I is the code of program (we will discuss chaotic dispersion coding in the next section).Watermark from watermarked program and Decoding Module extracts the watermark W performs it in the form of visual action. The module consists of Watermark Output Module(Cdo ) and Chaotic system Module (Cdc ). In the extracting pro-
Fig. 1. The structure and interrelations of CRSW embedding code
358
F. Liu, B. Lu, and X. Luo
with reverse chaotic dispersion codcedure, firstly, the module extracts W −1 , G); by W = E −1 (W ing(W = Ω (Iew , G)); then gets the watermark W into the visual action, V , and display V to users. at last Cdo transform W W W Anti-reverse Engineering Module, which consists of Anti-static Analyzing Module(Cas ) and Anti-dynamic Debugging Module(Cad ), offers the protection from reverse engineering attacks for Cm , Cd . Cas applies the anti-static analyzing techniques, and Cad applies the anti-dynamic debugging techniques.
3
Embedding and Extraction of the CRSW
In this section, we discuss how to embed W , Cm , Cd and Ca into P , the construction of Cm , Cd and Ca will be described in the next section. We present chaotic substitution and chaotic dispersion coding before describing the embedding and extraction. 3.1
Chaotic Substitution ∂
Chaotic substitution is replacing i with c (c,i are two 8-bit binary integers), the result is that the value of i equates c, and we get s. With c and s, the original value of i is recovered by reverse chaotic substitution. Let G is digital chaotic system, without loss of generality, let the state space of G be [a, b). Thus Chaotic substitution can be expressed by s = ∂(i, c, G) = 28 ×
G(x, m) − a c(b − a) c ⊕ i, x = + a, m = + 1 (1) 8 b−a 2 λ
where ⊕ is XOR. G(x, m) is the state of G which has been iterated m times with the initial value x. λ is the parameter which can adjust iterated times. Reverse chaotic substitution is given by: i = ∂ −1 (s, c, G) = ∂(s, c, G)
(2)
Generally, the set A = {α1 , α2 , · · · , αk } replaces B = {b1 , b2 , · · · , bk } with chaotic substitution, and get the result: R = {rj } = ∂(B, A, G) = {∂(bj , aj , G)}, j = 1, 2, · · · , k
(3)
The reverse procedure is given by B = ∂ −1 (R, A, G) = ∂(R, A, G) 3.2
(4)
Chaotic Dispersion Coding ξ
Let X = {x1 , x2 , · · · , xn } be a chaotic sequence, without loss of generality, supposing xj ∈ [a, b), j = 1, 2, · · · , n. Chaotic dispersion coding is that dispersing W over I (the code of program), which is given by [I , S ] = ξ(W, I, X) where I is the resulting code, S is the save code.
(5)
A Chaos-Based Robust Software Watermarking
359
Let the length of W be n bytes and the length of I be l bytes. Thus, W = {w1 , w2 , · · · , wn }, I = {i1 , i2 , · · · , il }, S = {s1 , s2 , · · · , sn }. The steps of ξ are as follows: 1) Initialization: L ← l, N ← n, m ← L/N , j ← i, d ← 0, let I = {i1 , i2 , · · · , il } = I xj −a 2) Let r = m × b−a , d = d + r, sj = ∂(id , wj , G), id = wj 3) Algorithm is done, if j = n is satisfied. Otherwise go to 4) 4) Let L = L − r, N = N − 1, m = L/N , j = j + 1, go to 2). When algorithm is done, S = {s1 , s2 , · · · , sn }, I = {i1 , i2 , · · · , il }. The reverse chaotic dispersion coding, recovering W and I with S and I , can be expressed as: [I, W ] = ξ −1 (S , I , X). 3.3
Embedding
In CBSW, all of W , Cm , Cd , Ca are embedded into the executable code directly, the procedure is described below(Fig. 2 shows the change of executable code after embedding):
Fig. 2. The drawing of embedding watermark
360
F. Liu, B. Lu, and X. Luo
1) Give Key < K1 , K2 >, where K1 is activation key, K2 is the key of producing chaotic sequence. Supposing that length of watermark is n bytes, W can be expressed as {w1 , w2 , · · · , wn }. 2) Construct Watermark Decoding Module Cd , and Anti-reverse Engineering Module Ca ; Construct Input Monitoring Module Cm with K1 (the details of constructions are discussed in the next section) 3) Produce the chaotic sequence X = {x1 , x2 , · · ·} 4) Apply chaotic substitution to embed Cm , Cd , Ca into the code of P . Let the code blocks which are replaced with Cm , Cd , Ca be Im , Id , Ia respectively. We can get Sm = ∂(Im , Cm , G), Sd = ∂(Id , Cd , G), Sa = ∂(Ia , Ca , G), where G is the digital chaotic system. 5) Get the subsequence X (1) (the length is n) from X and preprocess W : W (1) (1) = E(W, X (1) ) = W ⊕ X (1) = {w1 , w2 , · · · , wn } = {w1 ⊕x1 , w2 ⊕x2 , · · · , wn (1) ⊕xn }, where ⊕ is XOR. 6) Get the subsequence X (2) (the length is n) from X; Embed W to I (I is the code which is the whole code exclusive the code that is replaced with Cm , Cd , Ca ) with chaotic dispersion coding and get the result [I , SW ] = ξ(W , I, X (2) ) (Fig. 2 shows the distribution of W in the watermarked program). 7) Save Sm , Sd , Sa and SW to the end of the executable code, and adjust the header of the executable code. 3.4
Extraction
Because the watermark extractor is embedded into the program, the extraction of the watermark is included in the execution of the watermarked program. We describe the execution of the watermarked program to illustrate the extraction. 1) The watermarked program runs. 2) The code of Anti-reverse Engineering Module runs. 3) The code of Input Monitoring Module runs, which monitor the input of the program. 4) Produce the chaotic sequence Y 5) Get the subsequence Y 2 (the length is n, Y (2) is the same as X (2) in the embedding algorithm) from Y , recover the code which is replaced with W , ] = ξ −1 (SW , I , Y (2) ). the procedure can be expressed by [I , W 6) Recover the code which is replaced with Cm , Cd , Ca , the procedure can be expressed by Im = ∂ −1 (Sm , Cm , G), Id = ∂ −1 (Sd , Cd , G), Ia = ∂ −1 (Sa , Ca , G). 7) The watermarked program keeps on running. 8) If the input matches with K1 (activation key). Get the subsequence Y (1) (the length is n, Y (1) is the same as X (1) in the embedding algorithm) form Y , into W with inverse preprocess, which is W = E −1 (W , Y (1) ) = and put W (1) , Y ). E(W into V (visual action) and perform V . 9) Transform W W W
A Chaos-Based Robust Software Watermarking
4
361
The Analysis of CRSW
This section is intended to discuss the robustness of CRSW and the performance degradation. Let the lengths of W , Cm , Ca , and Cd be n bytes, lm bytes, la bytes and ld bytes respectively. Firstly, we analyze the robustness. Let R P be the semantics of P , ω ∈ Γb = {ϕ|R ϕ(P )} = R P } is semantics-preserving transformation. In CRSW, because of visual output VW , R VW ⊆ R P is hold. Then the following relation holds according to the definition of semantics-preserving transformation: R VW ⊆R P = R ω(P )
(6)
Equation (6) indicates that the semantics-preserving transformations can not destroy the semantics of VW , and CRSW can resist various types of semanticspreserving transformation attacks except the attacks which can distinguish R VW and R P . In the Anti-reverse Engineering Module, anti-static analyzing techniques and anti-dynamic debugging techniques are introduced to thwart reverse engineering attacks. The performance of resistance against reverse engineering depends on anti-reverse engineer techniques applied in CRSW. As we can apply the more effective anti-reverse engineering techniques to the module that is dynamic and scalable, the resistance against reverse engineering will be enhanced. Moreover, watermark is embedded into the code of program by chaotic dispersion coding. Therefore, practicing the combination of the instructions and data, it improves the performance of anti-static analyzing. Because of the application of the chaotic dispersion coding, the watermark will cause the program to fail if the adversary wants to reuse any part of code solely. Since W is distributed uniformly over the code which is the whole code exclusive the code that is replaced with Cm , Cd and Ca , there is a byte of d −la watermark per l−lm −l bytes code averagely. Thus: n lv =
l − lm − ld − la n
(7)
where lv is the average length of the reused code. If lv ≤ lT are ensured, n, the d −la length of watermark, must satisfy the inequation n≥ l−lm −l . lT It is difficult to locate the watermark because the position of W is generated by chaotic sequence. In addition, s = ∂(i, c, G) (chaotic substitution) can be considered that i is encrypted with G and c. If c is tampered, i could not be decoded correctly when i = ∂ −1 (s, c, G). In CRSW, if W is tampered, it is impossible to recover the code which is replaced with W correctly in the extracting procedure; if Cm , Ca and Cd is tampered, it is also impossible to get back the code which is replaced with Cm , Ca and Cd correctly, which could cause the program to fail. As for the given G, c is assumed the secret key, thus the key space should be 2lc (lc is the length of c); the key space is 28(n+lm +ld +la ) in CRSW. We analyze the performance degradation of watermarked program below. From the point of space, embedding watermark increases the size of the program.
362
F. Liu, B. Lu, and X. Luo
In the embedding procedure, the size of the program increases n + lm + ld + la bytes because of chaotic substitution which is applied to our algorithm. From the point of runtime, embedding watermark brings the increasing runtime of the program. The reason is that before the execution of the watermarked program, the original code should be recovered from Sm , Sd , Sa and SW , of which the recovering time not only depends on the iterative efficiency of digital chaotic system, but also the contents of W , Cm , Ca and Cd . Let t be the time of iterating once, and T1 , the time of recovering code from Sm , Sd and Sa , satisfies the following inequation: 1 (lm + ld + la )t≤T1 ≤ (lm + ld + la )t × 28 λ
(8)
With recovering code from SW , chaotic sequence of n bytes should be generated for ξ −1 at first. Thus T2 , the time of recovering code from SW , satisfies: nt + nt≤T2 ≤nt +
28 nt λ
(9)
T1 + T2 , the time of recovering all code, satisfies 2nt + (lm + ld + la )t≤T1 + T2 ≤nt +
28 (n + lm + ld + la )t λ
(10)
If W , Cm , Ca and Cd is bit-balance (Bits 0 and 1 occur at the same frequency), the average time of the procedure is T = nt +
27 + 0.5 (n + lm + ld + la )t λ
(11)
In general, Cm , Ca and Cd are fixed, that is to say, lm + ld + la is constant, and t is also a constant for a given digital chaotic system, the equation (11) can be rewrite as follow: T = nt(1 +
27 + 0.5 27 + 0.5 )+ (lm + ld + la )t = β1 n + β2 λ λ
(12)
where β1 , β2 are constants. Equation (7) shows that the larger n is, the smaller la is, and the more intensive the protection is. Equation (12) shows that T is linearly increased in a manner that involves n. The users who are intent to apply CRSW should exhibit a trade-off between intensity of protection and the performance degradation.
5
Implementation of CRSW
The algorithm’s implementation is in the Intel i386 architecture and the Windows operating system. This section is to expatiate on the implementation of Input Monitoring Module, Anti-reverse Engineering Module, and Watermark Decoding Module. There are several problems that arise when implementing these modules, and the corresponding solutions are given at the end of this section.
A Chaos-Based Robust Software Watermarking
5.1
363
Input Monitoring Module Cm
The purpose of Cm is to monitor the input of the program. When implementing Cm , we put activation key K1 (or µ(K1 ), µ is a one-way function) into this module. When the input α is a match for K1 (or µ(K1 )), Watermark Decoding Module is activated. 5.2
Anti-reverse Engineering Module Ca
In theory, a sufficiently determined attacker can thoroughly analyze any software by reverse engineering. It is impossible to thwart completely reverse engineering attacks. The goal, then, is to design watermarking techniques that are ”expensive enough” to break-in time, effort, or resources—that for most attackers, breaking them isn’t worth the trouble. There are two kinds of techniques-static analyzing and dynamic debugging—in the reverse engineering techniques. Therefore, Ca consists of Anti-Static Analyzing Module and Anti-Dynamic Debugging Module. Decompile is the foundation of static analyzing techniques, we can disable static analyzing by disturbing decompiler which is developed based on the hypothesis that data and instructions are separated. However, data and instructions in the Von Neumann architecture are indistinguishable. Thus, we can mix data and instructions in order to disturb decompiler by adding special data and instructions (we call them disturbing data) between instructions. In Fig. 3, (a) gives source code by assembly language, lines 1,5,6 are original instructions, but lines 2,3,4 are the disturbing data. (b) shows the instructions from decompiler. We can see that there are errors from line 4 to the end. There are a number of disturbing data in [4]. In this paper, we insert several disturbing data into Cm , Ca and Cd . If we can apply code encryption, compression etc. to Anti-Static Analyzing Module, the performance will be further improved. Dynamic debugging relies on debugging tools highly, so the general principle of anti-virus can be introduced to detect whether program is being debugged or not by the characters of debug tools. If debugged, the program will jump to wrong control flow in order to prevent from debugging .We already have achieved the algorithm based on the characters of SoftICE, Windbg, and Ollydbg. Experiments demonstrate that it is available to resist these debugging tools. The characters of other debugging tools can be introduced to the improved implementation.
Fig. 3. Example of disturbing data
364
F. Liu, B. Lu, and X. Luo
There are several registers for debugging in the processor of the i386 architecture. Several debugging tools design feasible functions, such as BPM1 , hardware breakpoint, by involving the debug registers [4]. In the paper, we modify the value of debugging register and invalidate these functions. In addition, time sensitive code and breakpoint detection are introduced to the implantation. We have involved several kinds of anti-reverse engineering techniques. It is worthy mentioning that this module is scalable that more efficient anti-reverse engineering techniques can be introduced. Thus, they can enhance the resistance against reverse engineering attacks. 5.3
Watermark Decoding Module Cd
Watermark Decoding Module includes Watermark Output Module and Chaotic System Module. Watermark Output Module transforms the watermark extracted from watermarked program into visual output; Chaotic System Module implements digital chaotic system, which is only applied to the watermark extracting procedure. When chaotic systems are discretely realized in finite precision, some serious problems will arise, such as dynamical degradation, short cycle length and non-ideal distribution. And then, we must compensate for the dynamical degradation in the presence of chaos system. We apply 1D piecewise linear chaotic maps, and the scheme of compensation for degradation in [11] to our implantation. 5.4
Problems and Solutions
Because of directly embedding watermark into the executable code, when implementing Cm , Ca and Cd , two problems arise as follows: (1) After every module is embedded into various executable code, the code and data are loaded onto different addresses of memory, and the code can’t access data in memory correctly. Therefore, it must do self-location (locate the memory address by the code itself). (2) Since it is unnecessary to recompile after embedding, modules can’t automatically find the address of Windows API by compiler and loader, but get the address by themselves. The self-location of code and data can be implemented by call/pop/sub instructions. Fig. 4 gives the specific codes. EBX, a register, is used to save the difference of the loading address and the designing address. The loading address is the sum of EBX and the designing address, which is self-location. The procedure in getting the addresses of Windows APIs is as follows: 1) Get the loading base address of kernel32.dll. There is exception handling in Windows—structured exception handling (SHE). All exception handling functions are in a linked list, and the last element of the linked list is the default exception handling function which is in the module of kernel32.dll. We can gain the address of the default exception handling function through traversing the linked list, from which we can get the loading base address of kernel32.dll. 1
BPM, an instruction of SoftICE, can set a breakpoint on memory access or execution.
A Chaos-Based Robust Software Watermarking
365
Fig. 4. The code of self-location
2) Get the addresses of LoadLibrary and GetProcAddress, which are Windows APIs, from the export table of kernel32.dll by the loading base address of kernel32.dll. 3) Get the address of the arbitrary Windows API with LoadLibrary and GetProcAddress.
6
Conclusion
A chaos-based robust software watermarking algorithm is proposed in this paper, in which the anti-reverse engineering technique and chaotic system are combined with the idea of the Easter Egg software watermarks. In CBSW, Anti-reverse Engineering Module is open and scalable, and more efficient anti-reverse engineering techniques can be applied. The program can be protected by embedding the watermark into the entire codes with chaotic dispersion coding. It is difficult for the adversary to tamper the message (includes W , Cm , Cd and Ca ) embedded in the program with chaotic substitution. The analysis of the CRSW shows that the scheme can thwart various types of semantics-preserving transformation attacks, such as dead code wiping, code optimization, code obfuscation, and variable reconstruction. Furthermore, it improves resistance against reverse engineering attacks to a certain extent.
Acknowledgement The work is supported partially by the National Natural Science Foundation of China (Grant No.60374004), partially by the Henan Science Fund for Distinguished Young Scholar(Grant No.0412000200), partially by HAIPURT(Grant No. 2001KYCX008), and the Science-Technology Project of Henan Province of China.
References 1. C. Collberg, C. Thomborson. Watermarking, tamper-proofing, and obfuscation tools for software protection. IEEE Trans. Software Engineering. Vol.28, No.8, pages: 735-746 2. Zhang Lihe, Yang YiXian, Niu Xinxin, Niu Shaozhang. A Survey on Software Watermarking. Journal of Software. Vol.14, No.2, pages: 268-277, in Chinese. 3. Business Software Alliance. Eighth annual BSA global software piracy study: Trends in software piracy1994-2002, June 2003.
366
F. Liu, B. Lu, and X. Luo
4. Kan X. Encryption and Decryption: Software Protection Technique and Complete Resolvent. Beijing: Electronic Engineering Publishing Company, 2001, in Chinese. 5. Jasvir Nagra and Clark Thomborson. Threading software watermarks. In 6th Workshop on Information Hiding, 2004, pages: 208-223. 6. Robert L. Davidson and Nathan Myhrvold. Method and system for generating and auditing a signature for a computer program. US Patent 5,559,884, September 1996. Assignee: Microsoft Corporation. 7. Julien P. Stern, Gael Hachez, Franois Koeune, and Jean-Jacques Quisquater. Robust object watermarking: Application to code. In 3rd International Information Hiding Workshop, 1999, pages: 368-378. 8. C. Collberg and C. Thomborson, Software watermarking: Models and dynamic embeddings. Proceedings of POPL’99 of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1999, pages: 311-324. 9. Patric Cousot and Radhia Cousot. An abstract interpretation-based framework for software watermarking. In ACM Principles of Programming Languages(POPL’04), Venice, Italy, 2004, pages: 173-185. 10. Christian Collberg, Andrew Huntwork, Edward Carter, and Gregg Townsend. Graph theoretic software watermarks: Implementation, analysis, and attacks. In 6th Workshop on Information Hiding, 2004, pages:192-207. 11. Liu Bin, Zhang Yongqiang, and Liu Fenlin. A New Scheme on Perturbing Digital Chaotic Systems. Computer Science, Vol.32, No.4, 2005, pages: 71-74, in Chinese
Privately Retrieve Data from Large Databases Qianhong Wu1 , Yi Mu1 , Willy Susilo1 , and Fangguo Zhang2 1
Center for Information Security Research, School of Information Technology and Computer Science, University of Wollongong, Wollongong NSW 2522, Australia {qhw, ymu, wsusilo}@uow.edu.au 2 School of Information Science and Technology, Sun Yat-sen University, Guangzhou 510275, Guangdong Province, P.R. China [email protected]
Abstract. We propose a general efficient transformation from Private Information Retrieval (PIR) to Symmetrically Private Information Retrieval (SPIR). Unlike existing schemes using inefficient zero-knowledge proofs, our transformation exploits an efficient construction of Oblivious Transfer (OT) to reduce the communication complexity which is a main goal of PIR and SPIR. The proposed SPIR enjoys almost the same communication complexity as the underlying PIR. As an independent interest, we propose a novel homomorphic public-key cryptosytem derived from Okamoto-Uchiyama cryptosystem and prove its security. The new homomorphic cryptosystem has an additional useful advantage to enable one to encrypt messages in changeable size with fixed extension bits. Based on the proposed cryptosystem, the implementation of PIR/SPIR makes PIR and SPIR applicable to large databases.
1
Introduction
Consider the following scenario. A user wants to obtain an entry from a database of n λ-bit strings but does not want the database to learn which entry it wants. This problem was formally defined as Private Information Retrieval (PIR) in [4]. While protecting the privacy of user, if the user is not allowed to learn any information about the entries out of choice, the corresponding protocol is called a Symmetrically Private Information Retrieval (SPIR) protocol [10]. Usually, the PIR schemes (e.g., [5], [8], [9]) were suggested to be converted into SPIR protocols by employing zero knowledge techniques to validate the query. The notion of Oblivious Transfer (OT) is similar to PIR. It was introduced by Rabin [13] in which Alice has one secret bit m and wants to make Bob get it with probability 0.5. Additionally, Bob does not want Alice to know whether he gets m or not. For 1-out-of-2 OT, Alice has two secrets m1 and m2 and wants
This work is supported by ARC Discovery Grant DP0557493 and the National Natural Science Foundation of China (No. 60403007).
K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 367–378, 2006. c Springer-Verlag Berlin Heidelberg 2006
368
Q. Wu et al.
Bob to get one of them at Bob’s choice. Again, Bob does not want Alice to know which secret he chooses. 1-out-of-n OT is a natural extension of 1-out-of-2 OT to the case of n secrets. 1-out-of-n OT is also known as all-or-nothing disclosure of secrets (ANDOS) [1] in which Alice is not allowed to gain combined information of the secrets, such as, their exclusive-or. Clearly, a 1-out-of-n SPIR is also a 1-out-of-n OT. The reason we need two concepts is the different motivations for using these primitives (and the way they were historically defined). The early motivation of OT is to reduce the intricate multi-party computation to simple cryptographic primitives. As SPIR is designed to retrieve entries from large databases, it is crucial to reduce the communication complexity and make it much less than n for a 1-out-of-n bit SPIR protocol. Traditionally, there are two models for PIR protocols, i.e., the multi-database model and the single-database model. For PIR in the former model, there are ω > 1 copies of the database in different servers and the servers have unlimited computational power, but the communication among them is not allowed. The best upper bound of communication O(nlog log ω/ω log ω ) in this model is due to Beimel et al. [3]. In the single-database model, it is assumed that the database server is computationally bound and there is only one copy of the database. The first scheme in this model was proposed in [8], with its security based on the quadratic residuosity problem and with O(κN ) server-side communication complexity, where is any constant and κ is a security parameter. Stern proposed a SPIR protocol based on an semantically secure homomorphic public-key√cryptosystem [14]. It has super-logarithmic total communication O(κδ logδ nδ logδ n ), where δ is the ciphertext expansion ratio of the underlying homomorphic cryptosystem. Cachin et al. [6] constructed PIR with polylogarithmic communication complexity O(κ log≥4 n) under the Φ-hiding assumption. Based on Paillier cryptosystem [12], Chang proposed PIR with communication complexity O(κ2d log n) in server side and O(κdn1/d log n) in the user side [5], where d > 3 can be any integer. Based on Damg˚ ard-Jurik public-key cryptosystems [7], Lipmaa proposed PIR with complexity O(κ log2 n) in user side and O(κ log n) in the server side [9]. This is the best asymptotical result to date. Following the second guideline, we reduce the concrete communication and computation overhead of PIR/SPIR protocols. The main contributions of this paper include: – The notion of polishing public-key cryptosystems and a general transformation from PIR to SPIR. Unlike existing schemes relying on inefficient zero-knowledge proofs, our transformation employs an efficient construction of OT and meets the goal to reduce the communication complexity of SPIR. The SPIR has almost the same communication complexity as the underlying PIR. – A novel efficient homomorphic public-key cryptosytem as an independent interest. The new homomorphic cryptosystem enables one to encrypt messages in changeable size with fixed extension bits. Based on the proposed cryptosystem, efficient PIR/SPIR protocols are implemented.
Privately Retrieve Data from Large Databases
369
The proposals outperform the state-of-the-art PIR/SPIR protocols. It makes PIR and SPIR applicable to large databases. For instance, to run a PIR or SPIR protocol with a database of 235 512-bit entries, the total communication is only about 134KB. The unavoidable linear computation cost regarding the scale of the database is in the server side which has often powerful computation power. The computation cost in the user side which has often limited computational power is logarithmic regarding the scale of the database. Hence, the proposals are practical for private information retrievals from large database. The rest of paper is organized as follows. In Section 2, we review the security definition of PIR. Section 3 presents a general transformation from PIR to SPIR with almost the same communication complexity as the underlying PIR. A novel homomorphic public-key cryptosytem is proposed and efficient PIR/SPIR protocols are implemented in Section 4, followed with conclusions in the last section.
2
Definitions of PIR/SPIR
In this section, we review the definition of 1-out-of-n bit PIR in [5] where each entry of the database is a single bit. The definition is naturally extended to 1-out-of-n λ-bit PIR in which each entry of the database is an -bit string. For an integer a ∈ N, let [a] denote the set {1, · · · , a}. We use the notation a ← A to denote choosing an element a uniformly at random from the set A, and use PPT to denote probabilistic polynomial time. A function is negligible in if for any polynomial p(·) there exists a 0 such that for all > 0 we have f () < 1/p(). Informally, a private information retrieval (PIR) scheme is an interactive protocol between two parties, a database Server and a User. The Server holds a database of n λ-bit strings x = x1 x2 · · · xn , where xk =∈ {0, 1}n for k ∈ [n], and the User holds an index ı ∈ [n]. In its one-round version, the protocol consists of (1) a query sent from the User to the database generated by an efficient randomized query algorithm, taking as an input the index ı and a random string C (ı); (2) an answer sent by the database answer algorithm, taking as an input the query sent by the User and the database x; and (3) an efficient reconstruction function applied by the User taking as an input the index ı, the random string C (ı), and the answer sent by the Server. At the end of the execution of the protocol, the following two properties must hold: (I) the User obtains the ı-th λ-bit string xı ; and (II) a computationally bounded database does not receive any information about the index of the User. We now give a formal definition of a PIR scheme. Definition 1. The single-database private information retrieval (PIR) is a protocol between two players Server, who has n λ-bit strings x = x1 x2 · · · xn where xk is the k-th λ-bit string of x, and User, who has a choice of index ı ∈ [n], that satisfies the following two properties: – Correctness: If the User and the Server follow the protocol, the User can learn xı and Server can send less than nλ bits to User.
370
Q. Wu et al.
– Choice Ambiguity: For any PPT algorithm A and any j ∈ [n], the following value is negligible in the security parameter : |Pr[A(1 ; C (ı)) = 1]−Pr[A(1 ; C (j)) = 1]|; where C (σ) is the distribution of communication from User induced by an index σ ∈ [n]. An SPIR scheme is a PIR scheme satisfying an additional privacy property: choice insulation. Namely, a computationally bounded User does not learn any information about the bits out of choice. It can also be viewed as an OT protocol (e.g., [13], [1]) with communication overhead lower than the scale of the database. As SPIR is designed to retrieve entries from large databases, it is crucial to reduce the communication complexity and make it much less than nλ for a 1-out-of-n λ-bit string SPIR protocol. We now give a formal definition of an SPIR scheme. Definition 2. The single-database private information retrieval (PIR) is a protocol between two players Server, who has n λ-bit strings x = x1 x2 · · · xn where xk is the k-th λ-bit string of x, and User, who has a choice of index ı ∈ [n], that satisfies the following three properties: – Correctness: If the User and the Server follow the protocol, the User can learn xı and Server can send less than nλ bits to User. – Choice Ambiguity: For any PPT algorithm A and any j ∈ [n], the following value is negligible in the security parameter : |Pr[A(1 ; C (ı)) = 1]−Pr[A(1 ; C (j)) = 1]|; where C (σ) is the distribution of communication from User induced by an index σ ∈ [n]. – Choice Insulation: For any PPT algorithm A and any n λ-bit strings x1 x2 · · · xn such that xσ = xσ for some σ ∈ [n], the following value is negligible in the security parameter : |Pr[A(1 ; C (x1 , x2 , · · · , xn )] = 1]− Pr[A(1 ; C (x1 , x2 , · · · , xn )] = 1]|; where C (z1 , z2 , · · · , zn ) is the distribution of communication from Server induced by a database of n λ-bit strings z = z1 z2 · · · zn .
3
General Constructions
In this section, we rewrite the Limpaa PIR scheme [9] with less restrictions on the underlying semantically secure homomorphic public-key encryptions. Subsequently, we transform it to SPIR without using zero-knowledge proofs as most existing schemes.
Privately Retrieve Data from Large Databases
3.1
371
General PIR Based on Homomorphic Public-Key Cryptosystems
Assume that the database has n λ-bit strings x1 , x2 , · · · , xn , where n = dI and d can be any constant. If n < dI , one can append a string of λ(dI − n) zeroes to the database. Let the User’s choice be ı = a1 + a2 d1 + · · · + aI dI−1 , where I−1 I ai ∈ [d] for i ∈ [I]. Let Eyi (·) : {0, 1}λ+Σi=1 γi → {0, 1}λ+Σi=1 γi for i ∈ [I] be I semantically secure homomorphic public-key encryptions, where δ0 = 0 and γi is the expansion length of the i-th encryption and yi is the corresponding public key. Denote the i-th decryption by Dsi and si is the corresponding secrete key. The Server and the User run the PIR protocol as follows. – For i ∈ [I], j ∈ [d], the User computes bi,j = Eyi (0) for j = ai and bi,j = Eyi (1) for j = ai . It sends (bi,1 , · · · , bi,d ) as its query to the database Server. – The Server does the following. • Compute x0,1 = x1 , · · · , x0,n = xn , J0 = n. • For i = 1, · · · , I, compute: xi−1,µ+d(Ji −1) xi−1,µ Ji = Ji−1 /d, xi,1 = ⊗dµ=1 bi,µ , · · · , xi,Ji = ⊗dµ=1 bi,µ . • Return xI,1 to the User. – The User computes x˜ı = Ds1 (Ds2 (· · · (DsI (xI,1 )) · · · )). We first consider the correctness of the protocol. Assume that ı0 = ı = a1 + x0,µ+d(j1 −1) a2 d1 + · · · + aI dI−1 = a1 + dı1 . In the first iteration, x1,j1 = ⊗dµ=1 b1,µ = Ey1 (x0,a1 +d(j1 −1) × 1 + Σµ=a1 +d(j1 −1) x0,µ × 0) = Ey1 (x0,a1 +d(j1 −1) ) for j1 = 1, · · · , J1 = J0 /d. Hence, by decrypting the (ı1 + 1)-th entity x1,ı1 of J1 strings {x1,j1 }, the User can extract x˜ı = Ds1 (x1,a1 +d(ı1 +1) ) = x0,a1 +dı1 = xı . Hence, the 1-out-of-J0 PIR is reduced to a 1-out-of-J1 PIR. By repeating the reduction I times, the User can extract x˜ı = Ds1 (Ds2 (· · · (DsI (xI,1 )) · · · )) = xı . Then we consider the choice ambiguity. In the protocol, the choice of the User is encoded as (a1 , a2 , · · · , aI ) and ai is encrypted as (Eyi (0), · · · , Eyi (0), Eyi (1), Eyi (0), · · · , Eyi (0)). ai −1
d−ai
Since the encryption is semantically secure, the Server learns nothing about the choice of the User. Hence, the choice is ambiguous and we have the following result on security. Theorem 1. The above PIR protocol is secure if the underling public-key cryptosystem is homomorphic and semantically secure. In the above PIR, the User needs d logd n encryptions and logd n decryptions. The Server needs (dn − d2 + d − 1)/(d − 1) exponentiations. To query the log n database, the User needs λ logd n + Σi=1d (logd n − i + 1)δi bits and the Server logd n needs λ+Σi=1 δi bits to answer the query. The total communication complexity is about λ(logd n+1)+logd n(logd n+3)δ/2, where δ = max{δ1 , · · · , δlogd n }. For a sufficiently large n and an appropriate parameter d, the total communication is O(log2d n) and less than nλ bits.
372
3.2
Q. Wu et al.
From PIR to SPIR
To convert PIR into SPIR, a popular method is to let the User run a zeroknowledge proof protocol and convince the Server the validity of the query ([5], [8], [9]). However, this solution is inefficient in practice which additionally introduce times of complexity of the underlying PIR protocol. In the following, we propose a general transformation from PIR to SPIR by embedding into an efficient OT protocol. Our approach requires almost no additional communication overhead. To achieve a general construction of efficient OT protocol, we introduce the notion of polishing public-key cryptosystems. Let λ, λ0 be security parameters. Definition 3. Let F ← G(1λ ), where Fy (·) : {0, 1}λ0 → {0, 1}λ is a family of public-key encryptions, and y ∈ Y is the public key and Y the public key space. Let s ∈ S be the corresponding secret key satisfying y = f (s) and S the secret key space, where f (·) is a one-way function. Fy (·) is a polishing public-key cryptosystem if for any PPT adversary A, the following probability is negligible Pr[F ← G(1λ ), s ← S, y0 = f (s), y1 ← Y, b ← {0, 1}; ˜b ← A(1λ , F, f, yb ) : ˜b = b]. The probability is taken over the coin flips of G and A. This notion is similar to the dense cryptosystem [15] in which the public key distributes uniformly. However, in a polishing public key cryptosystem, we only require that any PPT distinguisher cannot distinguish a correct public key from a random string in the public key space. In the following, we show how to achieve efficient 1-out-of-n OT and SPIR using polishing public-key cryptosystems. Let H(·) : {0, 1}∗ → Y be a cryptographic hash function and F ← G(1λ ). Fs−1 (·) denotes the reverse of Fy (·). Assume that the User’s secret choice is ı ∈ [n] and the Server has n λ0 -bit messages mk for k ∈ [n]. The OT protocol between the two parties is as follows. – The User randomly selects s ∈ S and computes y = f (s). It sends the Server y = y ⊕ H(ı) as its queries. Here ⊕ represents an efficient operation Y × Y → Y such that there exists another efficient operation : Y × Y → Y satisfying α ⊕ η η = α for any α, η ∈ Y. – The database Server computes yk = y H(k) for k ∈ [n]. It returns xk = Fyk (mk ) to the User. – The User extracts m ˜ı = Fs−1 (xı ). Clearly, the above protocol is an OT protocol. First, the User can decrypt mı since it knows the secret key of the ı-th public key yı = y H(ı) = y ⊕ H(ı) H(ı) = y = f (s). Second, the Server cannot determine the choice of the User as the underlying public-key cryptosystem is polishing and the database Server cannot distinguish yı from y1 , · · · , yn . Finally, the User cannot learn any information of the other messages out of choice from the ciphertexts from the Server since it does not know the corresponding secret keys. Hence, we have the following result.
Privately Retrieve Data from Large Databases
373
Lemma 1. If there exists a polishing public-key cryptosystem, then there is a one-round 1-out-of-n oblivious transfer with complexity O(n). The protocol is a generalization of the OT protocol in [16] which is a special case based on ElGamal cryptosystem. The construction exploits more extensive efficient public-key cryptosystems to build efficient OT protocols, for instance, OT from NTRU cryptosystem. From the viewpoint of the SPIR, the above protocol is unsatisfactory since the communication complexity is O(n). However, to enable the User symmetrically retrieve message mı from the Server’s database of n λ0 -bit messages mk for k ∈ [n], we can embed the above OT protocol into our PIR scheme and achieve an efficient SPIR scheme: The Server does not need to directly return all the ciphertexts xk = Fyk (mk ) to the User for k ∈ [n]. It can compress the n ciphertexts into one ciphertext xI,1 as shown in section 2.2 to enable User to obtain xı and then decrypt mı . The detailed transformation is as follows. – The User randomly selects s ∈ S, and computes y = f (s), y = y ⊕ H(ı). For i ∈ [I], j ∈ [d], the User computes bi,j = Eki (0) for j = ai and bi,j = Eki (1) for j = ai . It sends y , (bi,1 , · · · , bi,d ) as its query to the Server. – The database Server does the following. • Compute yk = y H(k), xk = Fyk (mk ) for k ∈ [n]. • Compute x0,1 = x1 , · · · , x0,n = xn , J0 = n. • For i = 1, · · · , I, compute: xi−1,µ+(d−1)Ji xi−1,µ Ji = Ji−1 /d, xi,1 = ⊗dµ=1 bi,µ , · · · , xi,Ji = ⊗dµ=1 bi,µ . • The database responds with xI,1 to the User. – The User computes x˜ı = Ds1 (Ds2 (· · · (DsI (xI,1 )) · · · )) and extracts m ˜ı = Fs−1 (x˜ı ). Clearly, the above protocol is a SPIR with communication O(log2 n). Indeed, compared with the underlying PIR protocol, the SPIR protocol requires only one additional element of the public key space Y. It is much more efficient than those relying on zero-knowledge proofs which introduce times of additional complexity of the underlying PIR protocol. From Lemma 1 and Theorem 1, we have the following result. Theorem 2. If there exists a polishing public-key cryyptosystem and semantically secure homomorphic public-key cryptosystem, then there exists a one round 1-out-of-n SPIR protocol with communication complexity O(log2 n).
4 4.1
Implementation Issues A Novel Homomorphic Cryptosystem
In this section, we propose a novel homomorphic cryptosystem. It can be viewed as an extension of the Okamoto-Uchiyama cryptosystem [11] and enjoys similar security properties. However, our scheme is much more efficient and has the
374
Q. Wu et al.
additional useful property to enable one to encrypt messages in changeable size with fixed extension bits. The new cryptosystem employs the difficulty of factorizing N = P t Q, where P and Q are ρ-bit primes. To the best of our knowledge, the most efficient 1− algorithm to factorize N = P t Q runs in time 2k +O(log ρ) [2], where t = k . This algorithm due to Boneh et al. [2] requires only polynomial space in log N . When = 1/2, the algorithm asymptotically performs better than the Elliptical Curve Method (ECM). However, we can always set the parameters k and appropriately so that the running time is about 280 , which is beyond the current computation power. Let P be a prime, t > 0 an integer and Γ = {x|x = 1 mod P t−1 ∧ x ∈ Z∗P t }. Note that Z∗P t is a cyclic group with order P t−1 (P − 1) and then #Γ = P . For any x ∈ Γ , define L(x) = (x − 1)/P t−1 . Clearly, L(x) is well-defined and has the following homomorphic property. Lemma 2. For a, b ∈ Γ , L(ab) = L(a) + L(b) mod P t−1 . If x ∈ Γ satisfies L(x) = 0 and y = xm mod P t for m ∈ ZP t−1 , then m = L(y)/L(x) = (y − 1)/(x − 1) mod P t−1 . Proof. From the definition of L, we have that L(ab) = (ab − 1)/P t−1 = (a − 1)(b − 1)/P t−1 + (a − 1)/P t−1 + (b − 1)/P t−1 = L(a)(b − 1) + L(a) + L(b). Note that (b − 1) = 0 mod P t−1 . It follows that L(ab) = L(a) + L(b) mod P t−1 . Then m = mL(x)/L(x) = L(xm )/L(x) = L(y)/L(x) = (y − 1)/(x − 1) mod P t−1 . This completes the proof. Let N = P t Q where P, Q are strong primes and gcd(P − 1, Q) = 1, gcd(P, Q − 1) = 1, t > 1. Assume that P, Q ∈ {2ρ , 2ρ + 1, · · · , 2ρ+1 } where ρ is a security ∗ parameter and γ = 2ρ + 2, λ = (t − 1)ρ. We randomly select an integer g ∈ ZN such that the order of g1 = g P −1 mod P t is P t−1 and the order of g mod N is P t−1 (P − 1)(Q − 1)/2. The public key is (N, g, λ). The private key is P . Encryption: To encrypt a message m ∈ {0, 1}λ , one randomly selects r ∈ ZN and computes C = g m+rN mod N . The ciphertext is C. Decryption: Given a ciphertext C ∈ Z∗N , compute c = C P −1 =g1m mod P t . m = L(c)/L(g1 ) mod P t−1 . For the infeasibility of inverting the encryption function, we have the following result. Theorem 3. Inverting the encryption function of our scheme is infeasible if and only if it is infeasible to factorize N = P t Q. Proof. Clearly, if there exists a PPT algorithm factorizing N with non-negligible probability, with the same probability, one can run this algorithm first and then invert the encryption function as the decryption algorithm. The time to recover m is polynomial. Now we assume that our scheme is insecure. There exists an PPT adversary A which can compute m from C with non-negligible probability. We will construct
Privately Retrieve Data from Large Databases
375
a PPT algorithm B using A as a black box to factorize N with non-negligible probability as follows. B randomly selects g ← Z∗N . As P, Q are strong primes and gcd(P − 1, Q) = 1, gcd(P, Q − 1) = 1, the probability that the order of g1 = g P −1 mod P t is P t−1 and the order of g mod N is P t−1 (P − 1)(Q − 1)/2 with overwhelming probability. (N, g, λ) is a correct public key pair with the same probability. B then randomly selects u ← ZN and computes C = g u mod N . We prove that C is a correct ciphertext with non-negligible probability. Let the order of g mod P t is P t−1 P and the order of g mod Q is Q , where P |(P − 1), Q |(Q − 1). The distribution of C can be represented by (u1 , u2 ), where u1 = u mod P t−1 , u2 = u mod lcm(P , Q ), gcd(N, lcm(P Q )) = 1. Similarly, the distribution of C mod N can be represented by (v1 , v2 ) where v1 = v mod P t−1 , v2 = v mod lcm(P , Q ) such that C = g v = g m+rN mod N . When u1 and v1 are fixed, the distribution of u2 and v2 are statistically close. As v1 uniformly distributes in {0, 1}λ and u1 uniformly distributes in ZP t−1 , where {0, 1}λ ⊂ ZP t−1 ⊂ {0, 1}λ+1 , C is in {C} with probability at least 1/2. Let A output 0 ≤ m ≤ 2λ < P t−1 for the forged ciphertext C. Then m satisfies m = u mod P t−1 . If u > P t−1 (the probability is overwhelming as u randomly distributes in ZN ), then u − m is a multiple of P t−1 . It follows that gcd(N, u − m) is P t−1 , P t or P t−1 Q. For each case, there are polynomial time algorithms to find the factors P and Q. Hence, with the help of A, B can efficiently factorize N with non-negligible probability. This completes the proof. For the semantically security of the scheme, it relies on the following Decisional N -Subgroup Assumption. This assumption is related to the P -subgroup assumption in [11] and the Decisional Composite Residosity Assumption in [12]. Definition 4. Decisional N -Subgroup Assumption. Let G(·) be a generator regarding our scheme such that (N, g, λ) ← G(1λ ) is a public key pair as defined above. For any PPT adversary A, the following value |Pr[(N, g, λ) ← G(1λ ), r ← ZN , b ← {0, 1}, A = g b+rN mod N ; b ← A(1λ , N, A)] − 0.5| is negligible in λ. The probability is taken over the coin flips of G and A. Theorem 4. The above cryptosystem is semantically secure against the chosen plaintext adversaries if and only if the Decisional N -Subgroup Assumption holds. Proof. Assume that the Decisional N -Subgroup Assumption does not hold. that is, a PPT algorithm A can distinguish E(0) and E(1) with non-negligible probability, where E(·) denotes the encryption defined above. Given {m0 , m1 } and C = E(m) where m ∈ {m0 , m1 }, we will construct a PPT algorithm B using A as a subroutine to distinguish E(m0 ) and E(m1 ). B randomly select α ← ZN and computes C = C/g m0 mod N , g = g (m1 −m0 )−αN mod N . With non-negligible probability, gcd((m1 − m0 ) − αN , P t−1 (P − 1)(Q − 1)/2) = 1. Hence, with the same probability, the distribution of g and g is statistically close, and β/((m1 −m0 )−αN ) mod lcm(P −1, Q−1) is defined for a random
376
Q. Wu et al.
integer β. Denote the encryption with N, g by E (·). Therefore, when C = E(m1 ), C = g m1 −m0 g rN = g (m1 −m0 )/((m1 −m0 )−αN ) g rN = g 1+(r+α/((m1 −m0 )−αN ))N mod N = E (1), if r + α/((m1 − m0 ) − αN ) mod lcm(P − 1, Q − 1) is defined. When C = E(m0 ), we have that C = g m0 −m0 g rN = g 0+(r/((m1 −m0 )−αN ))N mod N = E (0), if r/((m1 −m0 )−αN ) mod lcm(P −1, Q−1) is defined. B runs A with (N, g , C ) as inputs and obtains the answer whether C is E (0) or E (1), which immediately implies whether C is E(m0 ) or E(m1 ). Assume that our scheme is insecure. Then there is a PPT algorithm A to distinguish E(m0 ) and E(m1 ) with non-negligible probability. We will construct a PPT algorithm B using A as a subroutine to break the N -subgroup assumption. Let C is either E(0) or E(1). B randomly select α ← ZN and computes C = g m0 +αN C (m1 −m0 ) mod N . If C = E(0), C = E(m0 ). If C = E(1), C = E(m1 ). B runs A with (N, g, C ) as inputs and obtains the answer whether C is E(m0 ) or E(m1 ), which immediately implies whether C is E(0) or E(1). This completes the proof. Clearly, the above encryption is homomorphic. Let ρ = . The expansion rate of the scheme is 2/(t + 1). In the case that t = 2, it is the Okamoto-Uchiyama cryptosystem [11]. For t > 2, our extension is more efficient than the original Okamoto-Uchiyama cryptosystem. Further more, by keeping ρ fixed and improving t, one obtains a series of homomorphic encryptions of changeable message length with the same expansion γ = 2ρ + 2 bits. It is also more efficient than the schemes in [7] with the similar property. 4.2
Implementation of PIR
Let us assume the same settings as section 2.2. Following the general construction, the PIR protocol is implemented as follows. – The User randomly generates I public keys (N1 , g1 , λ), (N2 , g2 , λ + γ), · · · , (NI , gI , λ + (I − 1)γ), where Ni is generated as above. Denote the corresponding decryption procedures by Di (·) for i ∈ [I]. For i ∈ [I], j ∈ [d], the ξ +r N User randomly select ri,j ∈ ZNi and computes bi,j = gi i,j i,j i mod Ni , where ξi,j = 0 for j = ai and ξi,j = 1 for j = ai . It sends (Ni , bi,1 , · · · , bi,d ) as its query to the Server. – The database Server does the following. • Compute x0,1 = x1 , · · · , x0,n = xn , J0 = n. d xi−1,µ+d(j−1) • For i ∈ [I], j = 1, · · · , n/di , compute xi,j = µ=1 bi,µ . rNI • Return cI = xI,1 gI mod NI to the User, where r ∈R ZNi . – The User extracts x˜ı = D1 (D2 (· · · (DI (cI )) · · · )). The User needs about (d + 1)(λ logd n + γ logd n(logd n + 1)/2) bits. The Server needs about λ + γ logd n bits. For the User, the most time-consuming job is to generate the logd n public keys. Note that the public keys is reusable, and the User can generate sufficiently many public keys before the protocol is
Privately Retrieve Data from Large Databases
377
run. After this pre-computation, the User requires about (d + 1) logd n (λ + iγ)bit modular exponentiations. The Server needs about (n − 1)/(d − 1) d-base (λ + iγ)-bit modular exponentiations. We now analyze the practicality of the protocol by concrete parameters. Let γ = 1026, d = 32, λ = 512, n = 235 . That is, a User will privately retrieve from a large database Server of 235 512-bit strings. The largest t is 8 = 5121/3 and = 1/3. The running time to factorize N is about 273 . In this scenario, the User needs about 133KB and the Server needs about 1KB. The User needs about 231 modular exponentiations. The Server needs about 235 modular exponentiations. This computation is heavy and unavoidable. However, in practice, the Server has often scalable computational power and hence it is bearable. 4.3
Implementation of SPIR
Assume that the database has n λ-bit strings m1 , m2 , · · · mn where n = dI and d can be any constant. The User’s choice is ı ∈ [n]. Let G =< g > be group of a -bit large prime order in which discrete logarithm is difficult and g is a generator of G. Let H(·) : {0, 1}∗ → G be a cryptographic hash function. First, the User randomly selects s ∈ {0, 1} and computes y = (g ⊕ H(ı))s . Here, ⊕ means the group operation and denote its reverse by . The User sends the Server y, and (Ni , bi,1 , · · · , bi,d ) as that of the PIR protocol in the above section. The database Server selects a random integer r ∈ {0, 1} and computes xk = mk ⊕(g ⊕H(k))r for k ∈ [n]. Then it run the PIR protocol in Section 2.2. Finally, it returns z = y r and xI,1 to the User. The User extracts x˜ı = D1 (D2 (· · · (DI (xI,1 )) · · · )) and then decrypts m ˜ı = x˜ı z 1/s . Compared with underlying PIR protocol, the above SPIR requires only additional bits introduced by y and z. As xk = mk ⊕(g⊕H(k))r can be pre-computed before the query from the User, the SPIR protocol has almost the same online complexity as the underlying PIR protocol. Hence the SPIR scheme is also practical for large database retrievals.
5
Conclusions
Private information retrievals are useful cryptographic primitives. It implies other well-known cryptographic primitives such as the existence of one-way functions, oblivious transfers, multi-party computations. It can also be directly implemented for applications such as medical database retrievals, digital bank transactions and so on. In this paper, we proposed a general efficient transformation from PIR to SPIR without exploiting the zero-knowledge proofs. The proposals are implemented efficiently. The schemes of PIR/SPIR are applicable to secure large database retrievals. As an independent interest, we also contribute a novel efficient homomorphic public-key cryptosystem. It can be used to encrypt messages in changeable size while extension bits are constant.
378
Q. Wu et al.
References 1. G. Brassard, C. Cr´epeau, J.-M. Roberts. All-or-Nothing Disclosure of Secrets. In Proc. of Crypto’86, LNCS 263, pp. 234-238, Springer-Verlag, 1987. 2. D. Boneh, G. Durfee, and N. Howgrave-Graham. Factoring N = pr q for large r. In Proc. Crypto’99, LNCS 1666, pp. 326–337, Springer-Verlag, 1999. 3. A. Beimel, Y. Ishai, E. Kushilevitz, and J.-F. Rayomnd. Breaking the O(n1/(2k−1) ) barrier for information-theoretic private information retrieval. In Proc. of the 43-th IEEE Sym. On Found. Of Comp. Sci., 2002. 4. B. Chor, O. Goldreich, E. Kushilevitz, and M. Sudan. Private Information Retrieval. In Proc. of 36th FOCS, 1995. 5. Y. Chang. Single Database Private Information Retrieval with Logarithmic Communication. In Proc. of ACISP’04, LNCS 3108, pp. 50-61, Springer-Verlag. 2004. 6. C. Cachin, S. Micali, and M. Stadler. Computational Private Information Retrieval with Polylogarithmic Communication. In Proc. of Eurocrypt’99, LNCS 1592, pp. 402-414, Springer-Verlag, 1999. 7. I. Damg˚ ard, M. Jurik. A Generalisation, a Simplification and Some Applications of Paillier’s Probabilistic Public-Key System. In Proc. of PKC’01, LNCS 1992, pp. 119-136, Springer-Verlag, 2001. 8. E. Kushilevitz and R. Ostrovsky, Replication is not needed: single database, computationally-private information retrieval. In Proc. of FOCS’97, pp. 364-373. 9. H. Lipmaa. An Oblivious Transfer Protocol with Log-Squared Communication. In Proc. of ISC 05. LNCS 3650. pp.314-328, Springer-Verlag, 2005. 10. S. K. Mishra, P. Sarkar. Symmetrically Private Information Retrieval. In Proc. of Indocrypt’00, LNCS 1977, pp. 225-236, Springer-Verlag, 2000. 11. T. Okamoto, S. Uchiyama. A New Public-Key Cryptosystem as Secure as Factoring. In Kaisa Nyberg, editor, In Proc. of Eurocrypt’98, LNCS 1403, pp. 308-318, Springer-Verlag, 1998. 12. P. Paillier. Public-Key Cryptosystems Based on Composite Degree Residuosity Classes. In Proc. of Eurocrypt’99, LNCS 1592, pp. 223-238, Springer-Verlag, 1999. 13. M. Rabin. How to Exchange Secrets by Oblivious Transfer. Technical Report TR81, Aiken Computation Laboratory, Harvard University, 1981. 14. J. P. Stern. A New and Efficient All-or-nothing Disclosure of Secrets Protocol. In Proc. of Asiacrypt’98, LNCS 1514, Springer-Verlag, pp. 357-371, 1998. 15. A. De Santis and G. Persiano, Zero-Knowledge Proofs of Knowledge Without Interaction. In Proc. of FOCS’92, pp. 427-436, IEEE Press, 1992. 16. W. Tzeng. Efficient 1-out-of-n Oblivious Transfer Schemes. In Proc. of PKC’02, LNCS 2274, Springer-Verlag, pp. 159-171, 2002.
An Empirical Study of Quality and Cost Based Security Engineering Seok Yun Lee1, Tai-Myung Chung1, and Myeonggil Choi2,* 1
School of Information and Communication Engineering, Natural Science Campus Sungkyunkwan University, 300 Cheoncheon-dong, Jangan-gu, Suwon-si, Geonggi-do, 440-746, Korea [email protected], [email protected] 2 Department of Systems Management Engineering, INJE University, 607 Obang-dong, Gimhae, Gyeongnam, 621-749, Korea [email protected]
Abstract. For reliability and confidentiality of information security systems, the security engineering methodologies are accepted in many organizations. A security institution in Korea faced the effectiveness of security engineering. To solve the problems of security engineering, the institution creates a security methodology called ISEM, and a tool called SENT. This paper presents ISEM methodology considering both product assurance and production processes take advantages in terms of quality and cost. ISEM methodology can make up for the current security engineering methodology. For support ISEM methodology, SENT tool, which is operated in Internet, support the production processes and the product assurances which ISEM demands automatically.
1 Introduction Many organizations have invested many resources to increase reliability and confidentiality of information security systems. As a series of efforts to obtain high quality of information security systems, the security engineering methodologies such as CC, ITSEC, SSE-CMM and SPICE have been introduced [8,11]. The security engineering methodologies could be divided into two approaches in terms of assuring objects. The first approach is a product assurance approach and the second approach is a production process approach. The product assurance approach focuses the assurance of products through evaluating functions and assurances of information security systems. CC (Common Criteria), ITSEC (Information Technology Security Evaluation Criteria) and TCSEC (Trusted Computer Security Evaluation Criteria) could be included in the product assurance approach. Although the product assurance approach could assure high quality, it takes high costs and periods. The production process approach focuses the assurance of production process. The production process approach shifts its focus from assuring products to assuring production processes. SSE-CMM (System Security Engineering-Capability Mature Model), *
Corresponding author.
K. Chen et al. (Eds.): ISPEC 2006, LNCS 3903, pp. 379 – 389, 2006. © Springer-Verlag Berlin Heidelberg 2006
380
S.Y. Lee, T.-M. Chung, and M. Choi
SPICE, ISO 9000-3 (Guidelines for the development supply and maintenance of software) could be included in the production process approach. Although the cost and period the production process approach is lower than those of the product assurance approach, the assurance level should have been lower than that of the first approach. The product assurance approach has been frequently introduced in developing high reliable information. To solve high engineering costs, many organizations have sought a cost-effective security engineering methodology. In nature, the two security engineering approach could be supplemental [4]. This paper presents a security engineering methodology and a tool supporting the methodology, with which a security research institution in Korea have tried to solve a trade-off between cost and quality. The institute in Korea has created ISEM (High Secure Engineering Methodology) assuring both products and production process. To support ISEM, SENT (Secure Engineering Tool) has been developed. ISEM could make up for shortcomings of the product assurance approach such as CC, ITSEC, TCSEC, and could reflect the advantages of the production process approach such as SSE-CMM, SPICE. SENT could direct the users participating engineering to follow all the processes and to describe all assurances ISEM demands.
2 Review of Security Engineering Methodology This section briefly reviews the product assurance approach and the production process approach. In the early of 1980’s, TCSEC was developed in United States. TCSEC was primarily applied to engineer the trusted ADP (automatic data processing) systems. It was used to evaluate information security systems and the acquisition specifications of information security systems in public institutions. TCSEC has two distinct requirement sets, which consist of (1) security functional requirements, and (2) assurance requirements. The security functional requirements encompass the capabilities typically found in information processing systems employing general-purpose operating systems. General-purpose operating systems are distinct from the applications programs. However, the specific security functional requirements can be applied to the specific systems owing functional requirements, applications or special environments. The assurance requirements, on the other hand, can be applied to the systems that cover the full range of computing environments from the dedicated controllers to multilevel secure systems [2]. ITSEC is European-developed criteria filling a role roughly equivalent to the TCSEC. While ITSEC and TCSEC have many similar requirements, there are some important distinctions. ITSEC tends to place emphasis on integrity and availability, and attempts to provide a uniform approach in evaluating both products and systems. Like production process approach, ITSEC also introduces a distinction between doing the right job effectiveness and doing the job right. To do so, ITSEC allows less restricted collections of requirements for a system at the expense of more complete and less comparable ratings [3]. CC is an outcome of a series of efforts to develop IT security evaluation criteria that can be broadly accepted within the international community. The sponsoring organizations of TCSEC, and ITSEC pooled their efforts and began a joint activity to align their separate criteria into a set of IT security criteria. CC has security functional requirements and security assurance requirements. The CC has 7 Evaluation Assurance Levels. Especially, CC has been standardized as ISO/IEC 15408 [6, 7].
An Empirical Study of Quality and Cost Based Security Engineering
Product Service
381
Sun
Su n ULTRA
2
Engineering Process
Assurance Process
Assurance Rationale
Risk Process
Risk Information
Fig. 1. SSE-CMM consists of three domains such as risk process, engineering process and assurance process
ISO 9000-3, SPICE, and SSE-CMM are security engineering methodologies focusing on quality and controls in production process [1, 9, 11]. SSE-CMM is based on SE-CMM. To handle special principles of information system security engineering, SE-CMM was interpreted in respect of information security area, and new domains of production process and practices have been identified. As fig. 1 shows, SSE-CMM consists of three domains, which are risk process, engineering process and assurances process. In risk process, risk of product and service should be identified and prioritized. In engineering process, solutions to manage risks can be suggested. In assurance process, assurance rationale should be submitted to customers [5].
3 ISEM Methodology A security research institution in Korea had adopted a production process methodology to develop high reliable information security systems. To increase reliability and confidentiality of the information security systems, the institution shifted its focus from assuring quality of production process to assuring products themselves. After shifting its focus, the institution has faced increased costs and prolonged periods to engineer the information security systems. To solve the problem, the institution has sought to take advantages of both the production process approach and product assurance approach. The institution creates a methodology called ISEM and a tool called SENT to solve a trade-off between quality of products and engineering costs in developing the information security systems. ISEM accepts the advantage of the two approaches, so that it focuses both production process and product assurance. As fig.2 shows, ISEM consists of a design stage, and three stages of developing prototypes. ISEM adopts three main production processes in SSE-CMM, which includes assurance process, risk process and engineering process. The differences between ISEM and the two security engineering approaches lie in the granularity level. The production process approach such as SSE-CMM could adopt a same granularity level of security engineering process in an enterprise. The
382
S.Y. Lee, T.-M. Chung, and M. Choi
l
XX z{hnlG z{hnlG TTjGkT jGkT
s
z{hnl YY z{hnl
T{GX T{GX w GkT w GkT
l
h n Gw
z{hnl ZZ z{hnl
T{GYGw GkT T{GYGw GkT
l [[ z{hnl z{hnl T{GZGw GkT T{GZGw GkT
o
Fig. 2. ISEM Methodology consists of four stages
product assurance approach such as CC, ITSEC demands a granularity level of product in dependent of a product rating. But ISEM could elevate the granularity level with going through the four stages. Consequently, the granularity level of production process could increase from the 1st stage to the 4th stage. The rating in CC, TCSEC and ITSEC could be considered as a concept of stage in ISEM. ISEM demands a different level assurance in each stage. The reliability of the information security systems can be guaranteed through assurances in the form of documents. The assurance level of ISEM is lower than CC and TCSEC. ISEM requires for the developers and the evaluators to describe only the essential items in the documents. All of the information security systems need not be engineered from the 1st stage to the 4th stage. Depending on reliability demanded, the engineering stage of the information security systems can be decided. The high reliable information security systems should be engineered in all four stages, whereas the low reliable information security systems should be engineered in two or three stages. st
3.1 The 1 Stage in ISEM st
In the 1 stage, the developer designs the information security systems in conceptual level. As fig.3 shows, the conceptual design should assure a reliability of design. The st 1 stage consists of production processes, product assurances and evaluation. The production processes which the developer should observe are as following: 1). surveying currents of the information security systems, 2) analyzing user requirements, 3) designing security mechanisms, 4) specifying target systems, 5) designing information security systems in a conceptual level. The developer should survey technical currents to reflect target systems and analyze user’s requirements and security environments. Based on the survey and the analysis, the developer should develop cipher algorithms and security protocols and specify the target information security systems. After completing these procedures, the developer should specify the target systems. The specification of the target systems includes risk analysis, user requirements, functional requirements, and assurance requirements. The developers
An Empirical Study of Quality and Cost Based Security Engineering
383
cGwGwGGGXz{ z{hnlGe
z Gt z Gt k k
Y
X
|Gy |Gy
uGG uGG {Gz {Gz
Z
zGG zGG {Gz {Gz
[
jGk jGk
\
XX hG hG l l
st
Fig. 3. The production processes in the 1 stage
are able to design the information security systems in a conceptual level. To manage configuration of the 1st state, the developer should describe a sub-system by subsystem. For product assurance, the developer should document the activities happened in production process. The document which should be described are as following: 1) the note of technical survey, 2) the analysis of user requirements, 3) the design of security mechanisms, 4) the specification of target systems, 5) the conceptual design of information security systems, 6) the document of configuration management. The granularity level of product assurance in the 1st stage is low in that the 1st stage does not demand a detail description in the analysis of user requirements, the specification of target systems, and the conceptual design of information security systems. But the 1st stage demands a detail description of security mechanism design and configuration management. After completing the developing activity, the evaluator should develop the observation of production processes, the reliability of conceptual design, and the completeness of configuration management. To decrease periods and costs, the observation of production processes can be evaluated through check-list and interviews. In the 1st stage, the focus of evaluation lies in security mechanisms and configuration management. The reason to focus security mechanisms is that the design of security mechanisms is the most important process in developing high reliable information security systems. nd
3.2 The 2 Stage in ISEM st
nd
Developing and evaluating the 1 prototype happen in the 2 stage. As fig.4 shows, st the developer should reflect the conceptual design to the 1 prototype. After developst ing the 1 prototype, the evaluator should mainly validate the correctness between st assurance of the security mechanisms and the 1 prototype. nd In the 2 stage, the production processes are as following: 1). specifying the 1st prototype, 2) designing security mechanisms for the 1st prototype, 3) developing the 1st prototype, and 4) testing functions of information security systems. The production processes in the 2nd stage should mainly implement security mechanisms of the 1st prototype. To develop the 2nd prototype, the developer should design the security mechanisms using formal method and verify them in a mathematical way. Therefore, the vulnerability of security mechanisms and the related functions could be verified.
384
S.Y. Lee, T.-M. Chung, and M. Choi
cGwGwGGGY z{hnlGe
kG kG XX w w
Y
z Gt z Gt k k
X
XX w w z z
Z
mG{ mG{
[
hG YY hG l l
nd
Fig. 4. The production processes in the 2 stage
To assure the 1st prototype, the developer should describe documents, which are as following: 1) the specification of the 1st prototype, 2) the design of security mechanisms, 3) the document of functional test results, 4) the conceptual design of systems, and 5) the document of configuration management. The assurance granularity of the 2nd prototype is higher than that of the 1st stage. The specification of the 1st prototype and the design of security mechanisms should be described using formal method. Especially, the design of security mechanisms should include results of vulnerability test and security test in terms of security protocols operation. The documentation of functional test results only includes the result of function test. Despite the increased granularity of assurances, the documents described in production processes could be simple compared to those of CC. In the 2nd stage, the evaluator should validate correctness between assurances and the 1st prototype. To validate reliability and integrity, the evaluator should verify security mechanisms and functional results using documents and independent tests. rd
3.3 The 3 Stage in ISEM rd
nd
In the 3 stage, the 2 prototype should be developed and evaluated. As fig.5 shows, rd nd the production processes of the 3 stage are similar to those of the 2 stage. To make nd the 2 prototype closer to the target systems, the developer should modify the security st mechanisms and improve the entire functions in the 1 prototype. rd In the 3 stage, the production processes are as following: 1). specifying the 2nd prototype, 2) modifying security mechanisms for the 2nd prototype, 3) developing the 2nd prototype, and 4) testing the entire functions of information security systems. In the 3rd stage, the security mechanisms and the entire functions should be confirmed. In a case, the 2nd prototype could be the target systems and the developer could complete the 2nd prototype as the target systems To assure the 2nd prototype, the developer should describe documents, which are as following: 1) the specification of the 2nd prototype, 2) the design of security mechanisms, 3) the document of functional test results, 4) the detail design of information security systems, and 5) the document of configuration management. The differences between the 2nd stage and the 3rd stage are the assurance level of products. In the 3rd stage, the detail specification of the target systems and the detail design of information security systems should be described. To increase assurance level of the 2nd prototype, the developer should provide quantitative criteria to evaluate correctness of the security mechanisms and the entire functions.
An Empirical Study of Quality and Cost Based Security Engineering
385
cGwGwGGGZ z{hnlGe Y
kG kG w YY w
X
t Gz G t Gz G tGk tGk
w YY w z z
Z
mG{ mG{
GhG ZZG hG l l
[
rd
Fig. 5. The production processes in the 3 stage
The evaluator should verify the completeness of security mechanisms and the entire functions in the 2nd prototype. Although the granularity in the specification of target systems and the design of systems could increase, the costs and the periods of production process are similar to those of the 2nd stage. th
3.4 The 4 Stage in ISEM rd
th
rd
The 3 prototype can be developed and evaluated in the 4 stage. The 3 prototype is the target systems specified in the first stage. As fig.6 shows, the production processes th rd rd of the 4 stage are as following: 1). specifying the 3 prototype, 2) developing the 3 rd prototype 3) testing performance of the 3 prototype 4) testing hardware adaptation, rd and 5) testing operation of 3 prototype in the target environment. The production processes in the 4th stage focus operation of the 3rd prototype in the target environrd ments. Based on the results of tests, the placement of the 3 prototype could be decided. cGwGwGGG[ z{hnlGe Y
wG{ wG{
kG kG ZZ w w
X
ZZ w w z z
Z
lG{ lG{
[
vG{ vG{
[[ hG hG l l
\
th
Fig. 6. The production processes in the 4 stage
To assure the 2nd prototype, the developer should describe documents, which are as following: 1) the specification of the 3rd prototype, 2) the document of performance test results, 3) the document of environmental test results, 4) the document of operation test, and 5) the document of configuration management. To assure completeness of the 3rd prototype, the developer should provide quantitative criteria to meet the specification of the 3rd prototype in the performance test, the operational test, and the environment test. After testing, the developers should describe the results of tests. In the 4th stage, the documents of tests should be described in a detail.
386
S.Y. Lee, T.-M. Chung, and M. Choi
Evaluator should verify the consistencies between the assurances and the overall tests. After 4th stage, the overall assurances of products become completed. All the assurances of products have been completed in the form of documents in each stage.
4 SENT Tool To support ISEM methodology, SENT that consists of a Process-Supporting Systems (SYS1), an Assurance-Supporting Systems (SYS2), and a Specifying/EvaluatingSystems (SYS3) are developed in fig. 7.
Process-Supporting Systems (SYS1)
Assurance-Supporting Systems (SYS2)
Specifying/Evaluating Specifying/Evaluating Systems (SYS3) Fig. 7. SENT tool
The Process-Supporting Systems (SYS1) support the developers to observe production processes in each stage. The Assurance–Supporting systems (SYS2) support the developers and the evaluators to describe assurances of products. The AssuranceSupporting Systems are able to generate a predefined form, in which the developers just describe the assurances, so that the documents could be consistent through all the stages. Therefore, the description level in any document and document can be consistent. The specifying/evaluating systems (SYS3) support the users to specify and evaluate the prototype and target systems in each stage. SENT can be operated in a web-server which includes JSP container, JAVA BEAN, and Xindice database. 4.1 The Process-Supporting Systems (SYS1) The Process-Supporting Systems are operated in a central server. The users are able to upload and download the documents. As fig.8 shows, the documents can be saved in File Systems and information concerning the document can be saved in Database. The Process-Supporting Systems provide the two functions. First, the rules for production process guide the users to observe the production process. The users can perform their task in accordance with the production processes. The users could not jump up or omit any production processes before completing previous production processes. Second, authenticating users authorizes the users, who consist of the managers, the developers and the evaluators, to access SENT. The roles of the users is different depending on the users task, so that only the manager can review all the documents, grant the general users with access authorization, and post news in the systems. The general users can search and edit the documents.
An Empirical Study of Quality and Cost Based Security Engineering
Upload Sharing Documents
Download Download Sharing Documents
387
Listing Sharing Documents
WEB SERVER JSP Container Database Database Manager
Document Manager
Search Manager
File Systems
Database
Fig. 8. The structure of the Process-Supporting Systems
4.2 The Assurance-Supporting Systems (SYS2) The Assurance-Supporting Systems provide following functions. First, generating a form of document supports the users to edit data in a predefined format. As fig.9 shows, Presentation Layer, the Document Manager, and the Database Manager generate a form, which can be drawn and modified by the authorized users. The data and the form in the document can be saved in the Database and the File Systems, respectively. Second, Managing configuration provides two functions, which are categorizing documents and managing configuration documents. The function can categorize the documents by form and title and manage history of configuration documents in a detail. The function of managing configuration can issue a report of document alternation, which describes modifying items of documents, the modifying time, and the modifying users. As fig.9 shows, the Version Manager is able to perform categorizing documents by title and form and saving them.
External Application Interface
aa Form Form of of Document Document
Presentation Layer Search Engine
Database Manager Database
Document Manager
Document Transform Manager Access Manager
Version Manager Loader Generator
Saving and Using Structural Information
File Systems
Fig. 9. The structure of the Assurance-Supporting Systems
388
S.Y. Lee, T.-M. Chung, and M. Choi
4.3 The Specifying/Evaluating Systems The Specifying/Evaluating Systems provide the two important functions. First, the Specifying/Evaluating Systems can save a template of the specification and the evaluation report, which are similar to that of the Assurance-Supporting Systems. Second, describing the specification could analyze security environments which include assumptions, threats, and organization security. As fig.10 shows, inference engine is able to present security environment to the users to describe security environments. When the users input threats, assumptions, and security policy of an organization to the Intelligent Manager, the Intelligent Manager could pass them the Inference Engine. On receiving it, the Inference Engine is able to infer the security environments using the Database, and return the final specification of the target systems. Evaluation Evaluation Report Report
Specification Specification
Presentation Presentation Layer Layer
Intelligent Intelligent Manager Manager
Inference Inference Engine Engine
Document Document Manager Manager
Document Document Transform Transform Manager Manager
Document Document Manager Manager
Database
Fig. 10. Specifying/Evaluating Systems
5 Conclusion The paper suggests ISEM methodology and SENT tool for engineering high reliable information security systems. ISEM has been presented to take advantages from the contrary approaches of information security engineering. Although the product assurance approach such as TCSEC, ITSEC, and CC could engineer information security systems in a precise way, it takes high costs. Although the production process approach such as SPICE, SSE-CMM takes less cost compared to the product assurance approach, it could not assure information security systems precisely than the product assurance approach could assure. ISEM demands the users describe assurances of information security systems, and observe the suggested four stages. For feasibility of approach, ISEM mitigates assurance level of products and production processes depending on the reliability information security systems. The reason that ISEM is suitable for engineering high reliable information security systems is that the high reliable information security systems should be developed in high assurance level and cost-effective way. ISEM could provide the high assurance level and cost-effective engineering process.
An Empirical Study of Quality and Cost Based Security Engineering
389
SENT could support all the production processes and product assurances. SENT could be operated on Internet so that the users could easily access to SENT. The Process-Supporting Systems help the users observe the four stages and the AssuranceSupporting Systems help the users save efforts describing document. SENT is proved to be useful in developing high reliable information systems. Although the production process approach and the product assurance approach were introduced for developing the special-purpose information security systems, they could be applied in commercial information security systems. Due to reliability and effectiveness of ISEM and SENT, they could be suitable for developing high reliable systems, including cipher systems, military systems, space systems and so on.
References 1. Software Engineering Institute, Carnegie Mellon Univ.: SSE-CMM Appraisal Method, V.2.0, (1999) 2. Department of Defense: Trusted Computer System Evaluation Criteria, DoD 5200.28STD, (1985) 3. European Commission: Information Technology Security Evaluation Criteria (ITSEC), (1992). 4. Eloff,M., Solms,S.H.: Information Security Management, Hierarchical Framework for Various Approaches, Computers & Security, Vol.19, (2000) 243-256. 5. Hefner,R., Monroe,W.: System Security Engineering Capability Maturity Model, Conference on Software Process Improvement, (1997). 6. ISO/IEC: Common Criteria for Information Technology Security Evaluation Part 3: Security Assurance Requirements Version 2.1, (1999) 7. ISO/IEC: Common Methodology for Information Technology Security Evaluation Part 2: Evaluation Methodology Version 1.0 (1999) 8. Piazzal,C., Pivato,E., Rossi,S.,:CoPS-Checker of Persistent Security, In: Jensen, K, Podelski A.,(eds): Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes in Computer Science, Vol.2988, Springer-Verlag, Berlin Heidelberg New York (2004) 93–107 9. Pijl ,G., Swinkels,G., and Verijdt, J.:ISO 9000 versus CMM: Standardization and Certification of IS Development, Information & Management, Vol.32, (1997) 267-274. 10. Qadeer,S., Rehof, J.: Context-Bounded Model Checking of Concurrent Software. In: Halbwachs,N.,Zuck, L.,D.(eds): Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes in Computer Science, Vol.3440, Springer-Verlag, Berlin Heidelberg New York (2005) 93–107 11. Wood, C. and Snow, K.: ISO 9000 and information, Security, Computer & Security, Vol.14, No.4, (1995) 287-288.
Author Index
Baek, Yoo-Jin 1 Bai, Shuo 78 Bao, Feng 112, 142
Kim, Jangbok 67 Kim, Yosik 248 Lee, Jung Wook 153 Lee, Pil Joong 153 Lee, Seok Yun 379 Li, Jianhua 123 Li, Shipeng 13 Li, Tieyan 112, 142 Li, Xiao 134 Li, Xiehua 123 Lim, Jongin 33 Lin, Dongdai 314, 321 Lin, Lei 321 Liu, Fenlin 355 Liu, Yinbo 278 Lotspiech, Jeffery 302 Lu, Bin 355 Lu, Yahui 278 Luo, Hao 45 Luo, Xiangyang 355
Cao, Tianjie 314 Cao, Zhenfu 226 Chai, Zhenchuan 226 Chen, Kefei 165 Chen, Liqun 202 Cheng, En 100 Cheng, Zhaohui 202 Choi, Kyunghee 67 Choi, Myeonggil 379 Chung, Tai-Myung 379 Comley, Richard 202 Dai, Kui 290 Dong, Ling 165 Eom, Young Ik
269
Manulis, Mark 187 Mao, Xianping 314 Mu, Yi 214, 332, 367
Fang, Binxing 45, 57 Feng, Min 13 Han, Dong-Guk 33 Han, Zongfen 100 He, Guangqiang 177 He, Hongjun 290 He, Mingxing 134 Hou, Fangyong 290 Hu, Yupu 25 Huang, Xinyi 214 Hwang, Yong Ho 153
Noh, Mi-Jung
Park, Sangseo 248 Peng, Jinye 177 Ping, Lingdi 343 Qi, Fang 112 Qiu, Ying 142 Ramakrishna, R.S. 235 Ryou, Jaecheol 248
Jia, Weijia 112 Jiang, Zhonghua 321 Jin, Hai 100 Jin, Hongxia 302 Jin, Shiyao 90 Jung, Gihyun 67 Khan, Muhammad Khurram Kim, Gu Su 269 Kim, Hyung Chan 235
1
260
Sadeghi, Ahmad-Reza 187 Sakurai, Kouichi 235 Schwenk, J¨ org 187 Shen, Haibin 343 Shim, Jaehong 67 Shin, Wook 235 Sun, Jiaguang 278 Sun, Kang 343 Susilo, Willy 214, 332, 367
392
Author Index
Takagi, Tsuyoshi 33 Tang, Qiang 202 Tao, Zhifei 100 Wang, Baocang 25 Wang, Jimin 343 Wang, Ping 57 Wang, Zhiying 290 Wu, Ji 90 Wu, Qianhong 367 Wu, Yongdong 112 Xie, Feng 78 Xiong, Jin 177 Xu, Lin 321
Yang, Shutang 123 Ye, Chaoqun 90 Yun, Xiaochun 45, 57 Yun, Youngtae 248 Zeng, Guihua 177 Zhang, Fangguo 367 Zhang, Futai 214 Zhang, Jiashu 260 Zhang, Li 278 Zhao, Cunlai 13 Zhou, Lan 332 Zhou, Yuan 226 Zhu, Bin B. 13 Zhu, Hongwen 123 Zhu, Huafei 142