Chip-Secured XML Access Luc Bouganim ** François Dang Ngoc* * University of Versailles 78000 Versailles - France & ** INRIA Rocquencourt 78035 Le Chesnay - France <Firstname.Lastname>@prism.uvsq.fr Abstract: Chip-Secured XML Access (C-SXA) is a versatile XML-based Access Right Controller embedded in a smart card. C-SXA can be used either to protect the privacy of on-board personal data or to control the flow of data extracted from an external source. C-SXA addresses a broad range of applications, like secure portable folders, Digital Right Management, parental control or exchange of confidential information among a community of users. We illustrate the effectiveness of this technology in an example of application, a collaborative agenda application embedded in a cellular phone SIM card. Key words: smart card XML access control, smart card XML data store. 1 Introduction Chip-Secured XML Access (C-SXA) is a versatile XMLbased Access Right Controller embedded in a smart card. C-SXA evaluates the user’s privileges on on-board or external XML data and delivers the authorized subset of these data. The use of XML (the de-facto standard to describe and exchange data) makes C-SXA agnostic about the kind of data to be protected and then participates to its versatility. Indeed, an increasing part of the information accessible through the web (textual documents, datasets, images, video, sounds, services) is now represented or annotated in XML. The first issue addressed by C-SXA is protecting the privacy of personal data embedded in the smart card. Existing approaches store row data sequentially and propose at best rudimentary mechanisms to regulate the access to these data (e.g., password). C-SXA implements database features to store effectively XML data and to share them among multiple users or certified applications at a much finer granularity (e.g., browser, agenda or address book applications can share parts of a user’s profile with different privileges). The second issue is controlling the access to external resources. Existing approaches, like secure storage services, secure data sharing or Digital Right Management (DRM), implement access control by means of encryption. In these approaches, the sharing scenarios among users are crude and pre-compiled at encryption time. Conversely, C-SXA clearly separates the concern between data encryption and access control. C-SXA processes the card holder’s access control rules on an encrypted XML input document and delivers the Philippe Pucheral*,** <Firstname.Lastname>@inria.fr authorized subset of this document. Several and personalized access control policies can therefore be defined on the same document, reflecting different privileges for different users. These policies can easily evolve by updating the access control rules without impacting the document encryption. Thanks to these two features, C-SXA addresses important applications emerging in the telecom and banking domains (e.g., portable folders, DRM, secure data sharing among family members, friends or business partners) that cannot be tackled by existing technologies. While powerful, C-SXA accommodates well the strong hardware smart card constraints. This equation has been solved thanks to a long expertise in developing advanced database components embedded in smart cards [ABB01, PBV01, BoP02, BoP04, BDP03, BDP04]. The sequel of this paper is organized as follows. Section 2 presents the main application domains targeted by C-SXA and discusses the current state of the technology in these domains (marketing and research alternatives). Section 3 introduces the principles of CSXA and illustrates its use on a motivating example, namely a collaborative agenda managed through cellular phones. Section 4 gives a technical description of the main C-SXA components. Section 5 discusses the ease of use and cost-effectiveness of the proposed technology. Finally, Section 6 concludes. 2 Target applications and alternatives Storage and protection of on-board data The rapid growth of smart card stable storage capacity (from kilobytes to megabytes soon) makes the management of on-board data realistic and more and more attractive for a wide range of applications. The concept of secure portable folder has emerged with the idea of carrying a patient’s medical history in a smart card [SCA03]. Since then, the value of smart cards to secure and share in a controlled way personal information has been recognized in several domains like education (scholastic folders), commerce (loyalties), telecommunication (address book) or mobile computing (user’s profiles containing licenses, passwords, bookmarks, etc). MasterCard published recently the MasterCard Open Data Storage (MODS) Application Programming Interface “to meet the desire expressed by customers to better control how much information they are willing to share with whom” [Mas02]. The IBMHarris report on consumer privacy survey strongly 1 highlights this same requirement [IBM]. According to MasterCard, MODS gives issuers the market differentiation they want, merchants the marketing tools they need, and consumers the convenience and control they have been asking for. While the need for on-board data management and sharing facilities is clearly established, few technical solutions have been proposed yet. Existing solutions are generally application specific, store data sequentially, allow basic searches and protect data thanks to passwords. The Structured Card Query Language (SCQL) standard [ISO99] is a first attempt to define database-style storage techniques and privileges. PicoDBMS [PBV01, ABB01], designed by our team, was the first full-fledged relational database system embedded in a smart card, supporting a robust subset of the SQL standard (and then encompassing SCQL). PicoDBMS is however a complex technology primarily designed to manage efficiently huge and well structured embedded folders. The versatility and wide acceptance of XML [W3C] makes this standard the best candidate today to describe, organize, store and share the variety of data that appear in the above applications. To the best of our knowledge, C-SXA is the first technology providing a smart card XML data store and access controller. Protection of external data Different requirements motivate a secured access to external data from a smart card: (1) the management of personal folders (as above) whose size exceeds the smart card storage capacity; (2) the sharing of personal or professional data (e.g., agenda, address book, bookmarks, etc) among a community of users (family, friends, colleagues, partners); (3) the consumption of information disseminated through a license-based distribution channel or (4) accessed freely through the Internet. While the internal data are protected by the tamper-resistance of the chip, external data need be protected by encryption. The role of encryption differs depending on the source of threatening. In cases (1) and (2), encryption is required to preserve the confidentiality of the data hosted in untrusted servers, considering the increasing suspicion towards Database Service Provider (DSP)1 [HIL02] and the vulnerability of database servers facing external and internal attacks [FBI03]. In case (3), the role of encryption is protecting digital assets from illegal access and copying [Sma]. Finally, case (4) refers to the ever-increasing concern of parents and teachers to protect children by controlling and filtering out what they access on the Internet [PIC]. To meet this last requirement, encryption can take place in the Web server, in the ISP or in the client device communication card while the access control and decryption remains confined in the smart card. Usually, the data are kept encrypted at the server and a client is granted access to subparts of them according to the decryption keys in its possession. 1 Database Service Providers are database hosting ISP (e.g., eCriteria, http://amuletc.evsholdingco.com/). Variations of this basic model have been designed in different context, such as encrypted backups for personal data [Sky], encrypted data hosted by untrusted DSP [HIL02], encrypted relational databases [Ora04, HeW01], lucrative as well as non-profit publishing [MiS03, BCF01, Sma]. Despite their respective merit, these models have in common a static way of sharing data. Indeed, access control policies are all precompiled by the encryption, so that changing these policies may incur a partial re-encryption of the dataset and/or a potential redistribution of keys [BDP04]. A touch of dynamicity can be introduced by decomposing each data in disjoint encrypted parts and leave clients access subparts of the data according to a license [Sos]. However, decomposing each data and administering the corresponding licenses is a rather tricky and cumbersome task. Unfortunately, they are many situations where access rules are user specific, dynamic and then difficult to predict. In medical folders, the rules protecting the patient’s privacy may suffer exceptions in several situations (e.g., in case of emergency) [ABM03]. In a data-sharing scenario, the sharing policies change as the initial situation evolves (new relationship between users, new partners or friends, new projects with diverging interest, etc.). Access control languages like XrML [XrM] or ODRL [ODR] demonstrates the need for more expressiveness and flexibility in DRM applications (e.g., Alice may listen freely to a piece of music provided she has listened a given amount of commercial before). Finally, neither Web site nor Internet Service Provider can predict the diversity of access control rules that parents/teachers with different sensibility are willing to enforce (e.g., rules may depends on religious beliefs, political opinions, lecture topics, etc.). Again, to the best of our knowledge, C-SXA is the first technology capable of supporting the access control flexibility required by these applications. This flexibility is guaranteed by a clear separation between encryption and access control and by a smart and versatile XML access controller embedded in a secured chip. The resulting benefit is threefold. First, C-SXA provides a very user friendly and powerful way to define access control rules (e.g., Salary[amount>10000] expresses in a single formula the protection of all salaries greater than $10.000 in a complete – group of – document). Second, access control rules are fully dynamic since they are downloaded by the smart card on demand. Third, C-SXA applies to any kind of data described or annotated in XML, a standard flooding every activity sectors. Market perspectives To predict the market impact of emerging applications is a rather difficult task, especially for non-marketers. However, elements for this analysis can be delivered. The target applications mentioned above impact primarily the SIM card market and the banking card market. Indeed, digital asset consumption through cellular phones is yet a reality and data sharing among a community of user is well in the spirit of the SMS 2 phenomenon. At the same time, the customer’s interest for secure portable folders has been clearly identified by MasterCard. According to Eurosmart, the telecom market alone worth 60% of the smart card market's global sales, estimated at 1.7 billion euros in 2002. ST Microelectronics indicates that 500M of SIM smart cards and 200M of banking smart cards have been sold in 2002 representing roughly 85% of the total market. As Eurosmart confesses, the development of new SIM card services is, however, more difficult to quantify. Anyway, services in relation with DRM will undoubtedly receive a particular attention considering the dramatic impact of worldwide digital piracy for the music industry (loses estimated to $5 billion every year by the RIAA) and the movie industry (loses estimated to $3 billion every year by the MPAA). Also, data privacy (and then secure folders) is becoming a major concern for most citizen and consumers, as stated in the IBMHarris Multinational Consumer Privacy Survey [IBM]. Parental and teacher control could also generate a new mass market for smart cards. To illustrate this, the French government launched an important educational program to give students and teachers a controlled access to a wide range of digital assets (book extracts, encyclopedia elements, geographical maps, works of art, etc) [Jou04]. As an indication, the number of French students was estimated by INSEE to 14,4M in 2001. 3 <Agenda> <Year value="2004"> <Month value="03"> <Day value="19"> <Appointment> <Category> Work </Category> <General> <Start> 10:00 </Start> <End> 12:00 </End> <Avail.> Busy </Avail.> </General> etc… Figure 1: XML agenda fragment Queries can be expressed over an XML document using the XPath language. Roughly speaking, an XPath expression allows to navigate in the document through the parent axis (denoted by /) and the descendant axis (denoted by //) and to apply predicates on elements and attributes. The result of an XPath expression is an element (or a group of elements) along with its subtree. To illustrate the power and simplicity of XPath, let us consider the two following expressions: /Agenda/Year/Month/Day selects all days in an agenda while /Agenda//Appointment[Category=“Work”]/Content selects each content that is a direct child of any appointment of category “work” reachable from the Agenda root. C-SXA baseline Access control model We introduce below a simplified access control model for XML, inspired by the well-accepted Samarati’s model [BCF01]. In this model, access control rules take the form of a 3-uple <subject, sign, object>. Subject corresponds to an authenticated user or user group. Sign denotes either a permission (positive rule denoted by ) or a prohibition (negative rule denoted by ). Object corresponds to an XML element (along with its subtree) identified by an XPath expression. Figure 3 shows an access control policy defined for regulating the access to the agenda presented above. This policy states that: by default, nobody is granted access to any appointment (rule R1); users belonging to the group Secretary can access all appointments of category “work” (rule R2), except the notes that appear in the content (rule R3); a XML background XML, the Extensible Markup Language promoted by the W3C, is become a de-facto standard for the presentation, exchange and management of information. Figure 1 and 2 picture an XML agenda sample, both in its textual form and in its usual hierarchical representation. This XML agenda will serve as motivating example in the rest of the paper. Roughly speaking, an XML document can be seen as a tree of elements (e.g., Category), each one demarcated by an opening and closing tag (e.g., <Category> and </Category>). Attributes (e.g., value) may be attached to elements. Terminal elements (at the leaves of the tree) are represented by text (e.g., Work). Agenda Year: 2004 Month: 03 etc.... Day: 19 Appointment Category General Appointment Content Category General Work Content Friend Start End Avail. Contact Contact Title 10:00 12:00 Busy François Luc Notes E-Gate Check paper Start End Avail. 22:00 24:00 Out Type Title Place Cinema The Mother UGC-Nice Figure 2: Hirerarchical representation of an XML agenda 3 Rule R1: Rule R2: Rule R3: Rule R4: Rule R5: <PUBLIC, <Secretary, <Secretary, <Colleague, <Cathy, , , , , , // Appointment > // Appointment [ Category = “Work” ] > // Appointment [ Category = “Work” ] /Content/Notes > // Appointment [ // Contact = CURRENT_USER ] / Content > // Appointment [ Category = “Friend” ] > Figure 3: Access control policy rules colleague can see the appointments of category “work” in which he/she participates (rule R4); finally, Cathy can access all appointments of category “friend” (rule R5). Figure 2 pictures in grey the agenda parts that remains hidden to the secretaries. To fully understand the semantics of the access control model, conflicts between rules have to be discussed. Indeed, several rules may apply to the same user and each rule propagates from an element to its subtree, a source of potential conflicts. Conflicts are resolved using two principles: Denial-Takes-Precedence and Most-Specific-Object-Takes-Precedence. DenialTakes-Precedence states that if two rules of opposite sign are defined on the same object, the negative rule is favored (e.g., a rule R6 of the form <PUBLIC, , //Appointment> will be inhibited by rule R1). MostSpecific-Object-Takes-Precedence favors the rule that applies directly to an object against the inherited one (e.g., R3 is more specific than R2). sensitive appointments. Models compiling access control policies in the data encryption cannot tackle these situations. In this application, the agenda is actually stored in an encrypted form on a remote server to allow the sharing among partners while protecting the data confidentiality. Part of the agenda (e.g., the current week) of a user can also be stored in his own smart card to give him the ability to consult his agenda thanks to his cellular phone in a stand-alone mode (e.g., while being disconnected). Figure 4 pictures the target architecture. Let assume now that Alice agrees to share part of her agenda with Bob and that both Alice and Bob use a C-SXA enabled SIM card in their cellular phone. Alice will fix Bob’s access control policy thanks to a user friendly rights management GUI (default rules are proposed to manage the usual cases, as pictured in the figure). These rules are translated in XPath expressions by the application and are stored in an encrypted form in the remote server. Later on, Bob connects to the server and asks for Alice’s agenda. At that time, C-SXA downloads Bob’s access control policy through a secured channel in Bob’s SIM card. Bob can then issue a query on Alice’s agenda, again thanks to a user friendly GUI (e.g., by clicking on a particular day). The Scenario The collaborative agenda application exemplifies the need for dynamicity. Indeed, access control rules are likely to evolve while new partners join or leave the community and ad-hoc rules may be defined for some Agenda Address book Access Rights Access Rights C-SXA engine GUI Alice agenda Week 12 XML Documents Access Rules Security Modules Xpath Evaluation GUI GUI C-SXA ML Engine Proxy TXH A XM L XP TH A XP GUI Database Server Alice Agenda Encrypted XML Documents C JDB C-SXA Proxy U APD Encrypted Access Rules Device hosting the e-gate token Rule conflict resolution Figure 4: Target architecture 4 application translates this query in an XPath expression, then C-SXA interprets it, downloads the relevant day of Alice’s agenda in a streaming fashion, decrypts it, checks its integrity and evaluates Bob’s access control rules to deliver the authorized final result. Bob can issue an update on an authorized part of Alice's agenda (e.g., to notify her from a change in an appointment) exactly in the same way as a query. If Alice is willing to change Bob’s access control policy, she uses again the access access right management GUI, the new policy is sent to the server and will become active the next time Bob connects to Alice’s agenda. As the next section will make clear, the C-SXA mechanisms are generic and can be applied to any kinds of XML document. Only the GUI and the application logic are specific. 4 Technical description This section gives an outline of the most interesting technical aspects of C-SXA. The reader interested in a deeper description of the C-SDA architecture is referred to [BDP04]. This section is however not mandatory to understand the rest of the paper. The most important point in this section is to demonstrate that the powerfulness of C-SXA regarding access control management and querying both on embedded and external XML documents relies on two smart but rather simple algorithms. Access control management For each element of the input document, the access rule evaluator must be capable of determining the set of rules that applies to it to determine the outcome for that element. The access rule evaluator is fed by an eventbased parser [SAX] raising open, value and close events respectively for each opening, text and closing tag encountered in the input document. Each access rule (i.e., XPath expression) is represented by a non-deterministic finite automaton [HoU79], named Access Rule Automaton (ARA for short). An ARA is made of states connected by transitions (see Figure 5). Tokens traverse the ARA while transitions are triggered, at document parsing time. An ARA has one target final state (representing the element targeted by the access rule) and may have zero, one or more predicate final states (one for each predicate involved in the access rule). When all final states of an ARA have been reached by a token, the corresponding access rule becomes active, meaning that it applies to the forthcoming elements. Figure 5 shows the token positions in the ARA corresponding to rule R3 at the time the parser analyses the leftmost element of the agenda (i.e., category=work, see Figure 2). The following data structures are maintained in the smart card to manage the set of ARA representing a given access control policy: Token Stack: The Token Stack memorizes the progress of tokens in all ARA and allows backtracking in the ARA. State Target final state Token Transition * Appointment Predicate final state Content Notes Appointment * Category ="Work" R3: //Appointment[Category=“Work”]/Content/Notes Figure 5: Access control rule automaton Authorization Stack: The Authorization Stack registers the rules having reached their target final state and is used to solve conflicts between rules. The status of a rule present in the stack can be: positive-active ( : forthcoming elements will be delivered), positive-pending (? : the delivery of the forthcoming elements is conditioned by a predicate not yet evaluated), negative-active ( : forthcoming elements can be skipped), negative-pending (? : the skip of the forthcoming elements is conditioned by a predicate not yet evaluated). Predicate Set: this set memorizes the predicates already evaluated. The outcome of the current element can be easily determined from the information kept in these data structures, thanks to the conflict resolution algorithm presented in Figure 6. In the algorithm, AS denotes the Authorization Stack and AS[i].RuleStatus denotes the set of status of all rules registered at level i in this stack. In the first call of this recursive algorithm, depth corresponds to the top of AS. DecideElement(depth) Decision {, ,?} 1: If depth = 0 then return ‘’ 2: elseif ‘’ AS[depth].RuleStatus then return ‘’ 3: elseif ‘’ AS[depth].RuleStatus and 4: ‘?’ AS[depth].RuleStatus then return ‘’ 5: elseif DecideNode(depth -1) = ‘’ and 6: ‘?’ AS[depth].RuleStatus then return ‘’ 7: elseif DecideNode(depth -1) = ‘’ and 8: ‘?’ AS[depth] RuleStatus then return ‘’ 9: else return ‘?’ Figure 6: Conflict resolution algorithm Query management Queries are XPath expressions and then are managed exactly as access rules are, except that they do not take part in the conflict resolution algorithm. Thus, a query is represented by a non-deterministic finite automaton. When the final state(s) of this automaton has been reached, forthcoming elements are candidate to participate in the result (their final outcome depends on the conflict resolution algorithm). 5 1 2[2004] 3[03] 4[19] 5 6[Work] 7 8[10:00] 9[12:00] 10[Busy] 11 12[François] 12[Luc] 13[E-Gate] 14[Check paper] 5 6[Perso] 7 8[22:00] 9[24:00] 10[Out] 11 15[Cinema] 13[The Mother] 16[UGC-Nice] Figure 7: Compressed Agenda Fragment As a conclusion, the algorithm managing the nondeterministic finite automata and the conflict resolution algorithm form the core of C-SXA. These two algorithms support alone the access control and the querying facilities, contributing to the global simplicity of the C-SXA technology. Internal storage The size of the embedded documents being a concern, we compress the document structure thanks to a dictionary of element names, also called tags [ABC04]. As pictured in Figure 7, this compression technique replaces each tag (of type string) in the document by a reference to the corresponding tag dictionary entry. In practice, the structure of an XML document represents between 50% and 90% of the document [MBV03]. Thus, this rather simple compression scheme achieves a compression ratio between 40% and 80%. In many cases, the tag dictionary is not confidential (e.g., when the application domain is based on an XML namespace) and can be stored outside from the smart card, increasing further the storage benefit. RULES DOCUMENTS External Storage This simple compression scheme is used both for documents stored inside and outside the smart card (i.e., on the server). The reason for this is to use the same XPath evaluator to process access control rules and queries both on internal and external documents. This drastically reduces the complexity of the smart card code. More complex data structures could be devised to store XML documents. However, the simple scheme proposed is well adapted to streaming (a requirement for external documents) and matches well the future smart card stable storage Flash technology (a requirement for internal documents) where data are stored by chunks. The external documents and the access control rules can be stored on any kind of data repository. In our prototype we selected a relational database server (MySQL) in order to benefit from all the database functionality. The main tables are represented in Figure 8. Columns pictured in grey are encrypted thanks to the Owner Type XPath Philippe Agenda 2[2004] 3[03] 4[18] Philippe Agenda 2[2004] 3[03] 4[19] Philippe Agenda 2[2004] 3[03] 4[20] Owner Type Grantee RuleId owner secret key. To allow downloading a subpart of a document when a client issues a query, we split a document into encrypted fragments. The scope and size of fragments is determined by the application. In the Agenda application, each fragment corresponds to a particular day. The XPath column is a (compressed) XPath expression identifying each fragment of a document, itself identified by (owner, type). Type and XPath can be stored in plaintext since they do not divulgate information. Note that the XPath (for documents) and RuleId (for rules) are stored both in plaintext and encrypted form in order to allow the smart card checking the correspondence between client request and server answer. Finally, note that documents can optionally be indexed by n-grams to allow keywords searches in the encrypted data [HiL02]. 4.1 Security features Confidentiality and Integrity Encryption and hashing are required to guarantee respectively the confidentiality and the integrity of external documents and access rules. Standard integrity checking methods must be adapted to tackle the memory limitation of the smart card. This imposes to implement integrity checking in a streaming fashion. In our context, the attacker is the user himself. For instance, a user being granted access to an appointment X may try to extract unauthorized information from an appointment Y. Let assume that the document is encrypted with a classic block cipher algorithm (e.g., DES or triple-DES) and that blocks are encrypted independently (e.g., following the ECB mode [Sch96]), identical plaintext blocks will generate identical ciphered values. In that case, the attacker can conduct different attacks: substituting some blocks of appointments X and Y to mislead the access control manager and decrypt part of Y; building a dictionary of known plaintext/ciphertext pairs from authorized information (e.g., X) and using it to derive unauthorized information from ciphertext (e.g., Y); making statistical inference on ciphertext. Additionally, if no integrity checking occurs, the attacker can randomly modify some blocks, inducing a dysfunction of the rule N-gram Encrypted data 1100111000100 1 2[2004] 3[03] 4[18] 5 6[Work] 7 8[08:00] 9[12:00] 10[Busy] 11 12[Luc] 13[ACI … 5 6[Work] 7 8[14:00] 9[17:00] 10[Busy] 11 12[François] ….. 1 2[2004] 3[03] 4[19] 5 6[Work] 7 8[08:00] 9[12:00] 10[Busy] 11 12[Luc] 13[ACI … 0100011101110 5 6[Perso] 7 8[22:00] 9[24:00] 10[Out] 11 15[Cinema] … 1 2[2004] 3[03] 4[20] 5 6[Perso] 7 8[10:00] 9[12:00] 10[Out] 11 15[Sport] 13[… 1100111000111 5 6[Perso] 7 8[13:00] 9[16:00] 10[Out] 11 15[Museum] … Encrypted rule Philippe Agenda Luc 7 7 : //Appointment[//Contact = "Luc"]/Content Philippe Agenda Luc 8 8 : //Appointment/General Figure 8: Data stored on the server 6 processor (e.g., Bob is authorized to access appointments starting after 6 PM and he randomly alters the ciphertext storing the starting time). To face these attacks, we exploit two techniques. Regarding encryption, the objective is to generate different ciphertexts for different instances of a same value. This property is obtained by using a Cipher Bloc Chaining (CBC) mode in place of ECB, meaning that the encryption of a block depends on the preceding block [Sch96]. Regarding integrity checking, the document is split into chunks whose size is determined by the memory capacity of the smart card. Each chunk contains an encrypted ChunkDigest (computed using a collision resistant hash function (e.g., SHA-1). To avoid chunk substitution or removal, a chunk digest is computed over the union between the chunk content itself and the digest of the preceding chunk (see figure 9-a). The document is thus protected against tampering and confidentiality attacks while remaining agnostic regarding the encryption algorithm used to cipher the elementary data. Key distribution Separating data encryption from access control allows using potentially a single encryption key for all documents and access rules present in the system. However, to increase security and robustness, several keys can be used, e.g., one per user. In this case, when Alice wants to share (part of) her document with Bob, Alice’s secret key must be transmitted to Bob’s smart card. A secure key distribution can be implemented by means of a classical Public Key Infrastructure (PKI). Our prototype is open to this alternative. However, to simplify the demonstrator, we do not make use of a PKI and we statically store inside each card the secret keys of the card holder’s partners. Secured communications Documents and rules transmission messages have to be protected against tampering (e.g., Bob may try to drop all negative rules transmitted by the server). To avoid checking integrity twice (at the communication level and at the rule/document chunk level), the message digest is computed on the message header and on the rule/document digest, as pictured in Figure 9.b and c. Finally, an increasing counter is added to each message to prevent replay attacks (e.g., Bob may try to substitute a rule update message with an old one containing no negative rules). 5 C-SXA ease of use and cost-effectiveness The ease of use is a primary concern for the end-user. To this respect, the benefits provided by C-SXA are the following. First, any kind of data can be represented in XML and then can be stored inside the smart card for personal use or outside from the smart card for a collaborative use, as easily as saving a file on a PC. Second, the declarative expression of access control policies and the dynamicity of these policies strongly SHA-1 SHA-1 XML chunk 1 XML chunk 2 (a) Integrity of encrypted XML SHA-1 HEADER SHA-1 XML chunk 1 SHA-1 XML chunk 2 SHA-1 (b) Integrity of transmitted XML SHA-1 HEADER RULE 1 SHA-1 RULE 2 SHA-1 RULE 3 Sha-1 (c) Integrity of transmitted rules Figure 9: Integrity simplify their administration. To simplify further this administration, each application can provide a dedicated GUI allowing the end-user to click on a list of predefined policies, in a way similar to Internet Explorer content advisor or MSN parental controls. The Agenda rights management GUI presented in Figure 4 illustrates this principle. Queries will also be automatically generated by clicking on the main application’s GUI (e.g., click on a particular day of the Agenda is translated by the application in an XPath expression). At demonstration time, we will show the use of the GUI developed for two application samples, namely a collaborative Agenda and a collaborative address book and will show the effectiveness of the approach in terms of local storage and access control management. Ease of use is also a strong argument for the application developer. C-SXA tackles this requirement in two ways. First, all the complexity of the storage, access control, query and security management is confined in the smart card and smart card proxy codes, so that the application developer can concentrate on the application logic. Second, C-SXA complies with the standards. Documents are described in XML and both access control rules and queries are expressed in XPath, two very popular W3C standards. Finally, the cost-effectiveness for the smart card manufacturer or the C-SXA distributor (if different) comes from the simplicity and the versatility of the CSXA engine. The same engine will be shared by all applications concerned either with local data storage, access control or query management. Its development and deployment cost can then be amortized on very large-scale markets. In the long term, and depending on the market demand, C-SXA could even be integrated in the smart card OS as a native functionality. 6 Conclusion In this paper, we proposed a smart card-based versatile XML Access Right Controller tackling the requirements expressed by several promising applications in the telecom and banking domains. While more powerful and flexible than existing alternatives, our technology accommodates well the strong smart card hardware constraints. Indeed, the theoretical foundation of C-SXA 7 helped us to isolate the fundamental concepts of an embedded XML access right controller and to translate them into a simple, robust and generic software component. Our current implementation exhibits acceptable performance on the e-gate smartcard (a few seconds to get a small document). Clearly, the limiting factor of our technology remains the smart card communication bandwidth. Higher communication bandwidths expected soon for USB smart cards will undoubtedly give a new dimension to the C-SXA proposal. 7 [HoU79] [ISO99] [IBM] References [ABB01] N. Anciaux, C. Bobineau, L. Bouganim, P. Pucheral, P. Valduriez, "PicoDBMS: Validation and Experience", 27th Int. Conf. on Very Large Data Bases (VLDB), demo session, 2001. [ABC04] A. Arion, A. Bonifati, G. Costa, S. D'Aguanno, I. Manolescu, A. Puglies, "Efficient Query Evaluation over Compressed Data", EDBT, 2004. [ABM03] A. El Kalam, S. Benferhat, A. Miege, R. Baida, F. Cuppens, C. Saurel, P. Balbiani, Y. Deswarte, G. Trouessin, "Organization based access control", IEEE 4th Int. Workshop on Policies for Distributed Systems and Networks, 2003. [BCF01] E. Bertino, S. Castano, E. Ferrari, "Securing XML documents with Author-X", IEEE Internet Computing, 2001. [BDP03] L. Bouganim, F. Dang Ngoc, P. Pucheral, L. Wu, "Chip-Secured Data Access: Reconciling Access Right with Data Encryption", 29th Int. Conf. on Very Large Data Bases (VLDB), demo session, 2003. [BDP04] L. Bouganim, F. Dang Ngoc, P. Pucheral, "Client-Based Access Control Management for XML Documents", INRIA internal report, february 2004. http://www-smis.inria.fr/ ~bouganim/Publis/BDP04.pdf [BoP02] L. Bouganim, P. Pucheral, "Chip-Secured Data Access: Confidential Data on Untrusted Servers", 28th Int. Conf. on Very Large Data Bases (VLDB), 2002. [BoP04] L. Bouganim, P. Pucheral, "Procédé de sécurisation de bases de données", Europeean patent n° 02779619.2-2212-FR0202824, march 2004. Extension requested to US, JP and CA. [FBI03] Computer Security Institute, "CSI/FBI Computer Crime and Security Survey" http://www.gocsi.com/forms /fbi/pdf.html. [HeW01] J. He, M. Wang, "Cryptography and Relational Database Management Systems", IDEAS, 2001. [HIL02] H. Hacigumus, B. Iyer, C. Li, S. Mehrotra, "Executing SQL over encrypted data in the [Jou04] [Mas02] [MBV03] [MiS03] [ODR] [Ora04] [PIC] [PBV01] [SAX] [SCA03] [Sch96] [Sma] [Sky] [Sos] [W3C] [XrM] database-service-provider model", ACM SIGMOD, 2002. J. Hopcroft, J. Ullman, "Introduction to Automata Theory, Languages and Computation", Addison-Wesley, 1979. International Standardization Organization (ISO). Integrated Circuit(s) Cards with Contacts – Part 7: Interindustry Commands for Structured Card Query Language (SCQL). ISO/IEC 7816-7, 1999. IBM-Harris Multinational Consumer Privacy Survey: http://www.pco.org.hk/english/ infocentre/files/westin.doc JournalduNet, ‘L’espace numérique des savoirs’, http://www.journaldunet.com/0302/ 030207espacessavoirs.shtml MasterCard, ‘MasterCard Open Data Storage (MODS)’, 2002. https://hsm2stl101.mastercar d.net/public/login/ebusiness/smart_cards/one _smart_card/biz_opportunity/mods L. Mignet, D. Barbosa, P. Veltri, "The XML Web: a First Study", WWW 2003. G. Micklau, D. Suciu, "Controlling Access to Published Data Using Cryptography", 29th Int. Conf. on Very Large Data Bases (VLDB), 2003. The Open Digital Rights Language Initiative, http://odrl.net/. Oracle Advanced Security Administrator's Guide 10g Release 1 (10.1). http://otn.oracle. com/pls/db10g/db10g.to_pdf?pathname=netw ork.101%2Fb10772.pdf&remark=portal+%2 8Administration%29 W3C consortium, “PICS: Platform for Internet Content Selection”, http://www.w3. org/PICS. P.Pucheral, L. Bouganim, P. Valduriez, C. Bobineau, "PicoDBMS: Scaling down Database Techniques for the Smart card", Very Large Data Bases Journal (VLDBJ), Vol.10, n°2-3, 2001. Simple API for XML, http://www.saxproject.org/. Smart Card Alliance, HIPAA Compliance and Smart Cards: Solutions to Privacy and Security Requirements, 2003. B. Schneier, “Applied Cryptography”, 2nd Edition, John Wiley & Sons, 1996. ‘The Smartright content protection system’. http://www.smartright.org/ SkyDesk : @Backup (Storage Service Provider). http://www.backup.com/index.htm Sospita Secure Web. http://www.sospita.com/ files/support/ssw_white_paper.pdf www.w3.org/XML XrML eXtendible rights Markup Language, http://www.xrml.org/. 8