Authenticating Distributed Data using Web Services and XML Signatures *
|
|
|
- Lauren Jordan
- 10 years ago
- Views:
Transcription
1 Authenticating Distributed Data using Web Services and XML Signatures * Daniel J. Polivy, Roberto Tamassia Department of Computer Science Brown University Providence, RI {dpolivy, rt}@cs.brown.edu ABSTRACT As the need for digital data becomes more ubiquitous, so does the need to provide efficient mechanisms for distributing and verifying the authenticity of that data. We present an architecture for authenticating responses to queries from untrusted mirrors of authenticated dictionaries using Web Services and XML Signatures. We also describe an implementation of our scheme for the Secure Transaction Management System. August 9, 2002 * Work supported in part by the Dynamic Coalitions Program of the Defense Advanced Research Projects Agency under grant F
2 1 INTRODUCTION As the need for digital data becomes more ubiquitous, so does the need to provide efficient mechanisms for distributing and verifying the authenticity of that data. Take, for example, an Internet portal site that aggregates information from many different sources such as weather, news headlines, and stock prices and provides that information to its users. Currently, it is up to the user s discretion whether to trust the information provided by the portal; if they trust the portal, then they trust the data it provides. However, it is possible to individually verify the authenticity of each piece of data, without implicitly trusting the portal, using a distributed authenticated dictionary. An authenticated dictionary is a data structure that supports authenticated membership queries; that is, in addition to returning the answer to a query, it also returns a cryptographic proof of that answer. A distributed authenticated dictionary architecture separates the data source, the host that maintains the data structure, from the responder, the host that answers queries on the data structure on behalf of the source. In this paper, we deal primarily with systems in which the client trusts only the source and not the responder, such as the Secure Transaction Management System (STMS) [23]. An overview of the basic message exchanges in a distributed authenticated dictionary is shown in Figure 1. At the end of a specified time quantum, the source reliably pushes incremental updates, as well as a digitally signed and time stamped fingerprint of the data structure, called the basis, to all responders. When a responder receives a query from a user, it returns the answer, a proof of that answer, and a copy of the signed basis from the source. Using these last two pieces of information, the user is then capable of verifying the authenticity of the response locally while trusting only the basis, which has been signed by the source. There are many applications where this Source DS Basis Signature Update Add PQ765F3 Responder DS Contained AX234H3 Proof Answer Proof Query Basis Signature User Contains? AX234H3 Figure 1 An overview of the protocol for authenticated distributed data systems. The source pushes updates containing a signed basis to the responder. The responder then answers user queries with a proof of the answer, and a copy of the signed basis from the source. type of authenticated data would be required. A user contacting a mirror site would need to cryptographically validate the information as being genuine; that is, as being the same information had the response come directly from the source. For example, a financial speculator that receives NASDAQ stock quotes from the Yahoo! Finance Web site would be well advised to obtain a proof of the authenticity of the data before making a large trade based on that information. Another application would be to guarantee the end-to-end integrity of dynamically generated web content from geographically distributed mirror sites. For all applications, however, we desire solutions with concise responses and low verification overhead. The main goals of this project are to obtain greater interoperability with client platforms, reduce the amount of reinventing the wheel (i.e., developing proprietary mechanisms when 2
3 standards are available) and research new ways of simplifying proof verification. To achieve these goals, we contribute a design and implementation of a Web Service interface for STMS using SOAP [5] and a design and implementation of a methodology for verifying STMS proofs via a standard XML Signature [2]. While both of these techniques have been deployed within the STMS system, the XML Signature approach to proof verification is a unique contribution that is applicable to the greater domain of distributed data authentication. The main drawback of previous versions of STMS was the fact that clients had to access it using a bulky, proprietary interface. Not only did this require special knowledge on the part of the application developer, but it also required a separate toolkit to be provided for each target operating system and programming language. Additionally, such toolkits used proprietary communications protocols, canonicalizers, and serializers. By building a Web Services interface to STMS, we are better able to utilize existing standards to achieve greater levels of portability, interoperability, and ease of use for the client. This new interface also reduces the size of the client toolkit by delegating the communication, canonicalization, and serialization code to existing implementations. The contribution of a Web Services interface provides a framework for performing remote procedure calls using standard interoperable technologies such as XML [3], SOAP [5] and HTTP [11]. Previous STMS implementations used only Java RMI as the communications protocol; replacing this with a SOAP-based protocol allows compatibility with many different programming languages, as well as better scalability properties when deployed across the Internet. In the untrusted responder model for distributed authenticated dictionaries, the verification of a response requires two distinct steps. The first step involves verifying a signed fingerprint of the source, and the second step involves computing a proof and comparing the result to the signed fingerprint. The verification of the fingerprint is a standard digital signature verification (using a custom byte canonicalization), while the verification of the proof is dependent upon the implementation of the data structure, but usually involves some sort of hash computation. By requiring two separate validations to ensure authenticity, the untrusted nature of the responder makes itself known. The primary contribution of this paper is a methodology for making the responder invisible to the client when performing proof verification via XML Signatures [2]. The XML Signature standard provides the rules and syntax for encoding standard digital signatures of data in XML. Through the use of a custom transform, the two-step verification process is reduced to the simple verification of a standard XML Signature, while still maintaining the original security guarantees. Before data is signed or verified in the XML Signature model, specified transforms are applied in series to produce the final, signed data. By implementing the proof authentication as a type of transform, this step is integrated into the verification of the basis. Thus, clients can now verify the authenticity of data using standard cryptographic APIs, without regard to how the data was distributed. When combined with the Web Services interface, the result is a fully interoperable, standards-based architecture for distributed data authentication. We also present an implementation of this architecture in Java and.net, as well as experimental results from this implementation. 2 RELATED WORK Previous work is mostly related to the authentication of membership queries, where a query is of the type Is element e in set S? Authenticated dictionaries are data structures that provide authenticated answers to such queries, and were initially motivated by research into the certificate revocation problem. The hash tree scheme introduced by Merkle [16][17] can be used to implement a static authenticated dictionary that supports query operations in logarithmic time. Kocher [15] also advocates a static hash tree approach for realizing an authenticated dictionary, although with a simplified verification process. 3
4 Using techniques from incremental cryptography, Naor and Nissim [18] develop dynamic hash trees that additionally support insertion and deletion of elements. In their scheme, the data structure is implemented by 2 3 trees. Goodrich and Tamassia [12] present an authenticated dictionary data structure based on skip lists [20]. They introduce the notion of commutative hashing and show how to embed in the nodes of a skip list a computational DAG (directed acyclic graph) of cryptographic computations based on commutative hashing. They match the asymptotic performance of the Naor-Nissim approach [18], while simplifying the details of an actual implementation. Goodrich, Tamassia and Schwerin [13] present the software architecture and implementation of an authenticated dictionary based on the above approach. An implementation of a one-way accumulator to realize an efficient and dynamic authenticated dictionary is presented in [14]. An efficient data structure for persistent authenticated dictionaries, where the user can issue historical queries of the type, was element e in set S at time t? is introduced in [1]. An approach to signing XML documents which allows untrusted servers to answer certain types of path queries and selection queries over XML documents is described in [19]. Previous work has also been completed in the area of authentication through digital signatures. A digital signature is a piece of information that guarantees the sender of a message is indeed who he or she claims to be (e.g., see [21]). The Internet standard for X.509 Certificates [24] provides a standard method for encoding and verifying signed statements containing information about an entity, including its public key. Certificates are useful as a way for securely distributing public keys for digital signature verification. The recently developed XML Key Management Specification (XKMS) [10] is a protocol specification for distributing and registering public keys that can be used in conjunction with XML Signature [2]. XKMS is mainly concerned with the problem of key distribution and location in a distributed online environment. The XML Signature specification [2] is published by the W3C as a set of rules and XML syntax for encoding digital signatures. 3 PRELIMINARIES In this section, we review concepts and terminology that are used in the rest of the paper. 3.1 STMS The Secure Transaction Management System (STMS) is a distributed system for data authentication [13][23]. At its core is an authenticated data structure maintained by a trusted source. This data structure is replicated by untrusted responders, which answer queries about the data structure on behalf of the source and provide a cryptographic proof of the answer. This approach has many advantages, including centralized trust (the users have to trust only the source), distributed service (the responders are geographically distributed closer to clients), low deployment cost (the responders do not require secure installations), and resiliency to denial-ofservice attacks (the source does not answer queries itself). Applications of this technology could exist in many domains, including content delivery networks, telecommunications, financial services, and health care. A schematic illustration of the STMS architecture is shown in Figure 1. In STMS, the Basis is a piece of data analogous to a fingerprint of the data structure. It is updated once per time quantum, digitally signed by the source (the to-be-signed basis, complete with timestamps and signing information, is called a RichBasis), and reliably pushed to all the responders. An AuthenticResponse is an object returned as the result of a query on an authenticated data structure; in addition to the answer, it contains a proof that can be verified against the basis to guarantee integrity of the answer. The basis can be informally viewed as a hash of the entire data structure while the proof can be viewed as the hash of the data structure minus the query key. A client verifies that the answer is authentic by hashing the query key and combining it with the proof; the result should be equivalent to the signed hash of the entire data structure. 4
5 Certificate Status Permission Credentials Fraudulent Phone IDs Other Data I n t e r f a c e STMS Source D i s t r i b u t i o n STMS Responder STMS Responder STMS Responder Figure 2 Overview of the STMS architecture, showing possible deployment models. 3.2 Authenticated Skip Lists An Authenticated Skip List (ASL) [12] is the particular implementation of an authenticated dictionary used in STMS. It supports logarithmic query and update times while using linear space. A hierarchical commutative hashing over a directed acyclic graph provides authentication; the hash of the start node is a digest for the entire data structure, and a proof is the sequence of hashes of the neighbors of the nodes on the search path. The definition of a Commutative Hash function as found in [12] is a cryptographic hash function h such that h(x, y) = h(y,x), where x and y are integers with the same bit length. The Authenticated Skip List is the primary implementation dealt with in this research. 3.3 Web Services and SOAP Overview The term Web Services is generally used to describe a collection of protocols and standards that are used to facilitate interoperability between applications. One of the major factors for their success is the fact that they are built upon existing Internet standards such as XML [3] and HTTP [11]. This allows for high levels of scalability and interoperability that previous distributed architectures could not provide. One of the main enabling technologies for performing remote procedure calls (RPCs) using Web Services is SOAP, the Simple Object Access Protocol. SOAP is an XML-based protocol for packaging messages and facilitating RPC-style communication between clients and servers (and is capable of performing many other tasks as well). For a full description of SOAP, see [5]. SOAP s use in STMS is to provide a protocol- and platform-agnostic format for encoding objects in RPC-style communication. While SOAP defines a set of built-in types that roughly correspond with those defined in the XML Schema specification, it is also capable of handling more complex custom types composed of combinations of primitive and other complex types. As is explained later, this feature is exploited in order to transfer STMS objects from responder to client. 5
6 3.4 XML Signature Overview The XML Signature standard [2] provides a set of rules and XML syntax for encoding, computing, and verifying digital signatures of arbitrary (but often XML) data. In addition to providing authentication, data integrity, and support for non-repudiation to the data that they sign, XML Signature has been designed to take advantage of the Internet and XML. A fundamental feature of XML Signature is the ability to sign only specific portions of the XML tree rather than the complete document; this becomes useful when documents aggregate many pieces of information from different sources, each with their own proof of authenticity. Validation of a signature requires that the signed data be accessible by some sort of reference. This reference can be a URI, a part of the same resource as the signature, embedded within the signature, or embed the signature within itself. The basic signature algorithm is as follows: any number of Transforms is applied to the data to be signed. The output of the final transform is then digested, and the resulting value is placed in an element (DigestValue) along with other information. This other information (the SignedInfo element), is then canonicalized using a standard XML Canonicalization algorithm, digested, and cryptographically signed. The result is stored in the SignatureValue element. Verification follows a similar algorithm. 4 ARCHITECTURE AND ALGORITHMS In this section, we discuss the general architecture and algorithms of the Web Services interface and XML Signature validation. Section 4.1 gives an overview of the XML representations of the main STMS data objects. Section 4.2 discusses the cornerstone of the XML Signature validation research: the custom transform. This algorithm enables XML Signatures to be used to in conjunction with distributed data systems. Sections discuss the basic algorithms for signing the basis, and creating and verifying the response. Finally, in Section 4.6, the Web Service interface is introduced, and everything is integrated together. 4.1 XML Serialization of STMS Objects In order to transfer STMS data using Web Services, they must have a platform-agnostic representation that can easily be created, understood, and transmitted. The enabling technology for this serialization is XML, the extensible markup language [3]. When dealing with XML Signatures, both the proof and basis need to be serialized using a custom schema. The XML representation of the basis (see Figure 3) contains important information about the data structure: its name, algorithm, fingerprint, and timestamp/expiration date. The timestamp and expiration date are attributes of the BasisData element, and the algorithm is an attribute of the Repository tag. This XML encoding of the basis is what is signed and distributed by the source at the expiration of each time quantum. The notion of a proof is represented by the Proof element, which has an Algorithm attribute, specifying the underlying algorithm of the repository s data structure (and thus the structure and content of the children tags). In the case of the Authenticated Skip List, three children are present: the QueryKey, DigestMethod, and HashList elements. The QueryKey contains the base 64 encoding of the query key as its value, as well as an attribute specifying whether the key is contained. In the case where the key is not contained, the QueryKey element has the SmallerValue and GreaterValue elements as children. The DigestMethod tag specifies as an attribute the Algorithm to be used when computing the hash chain. Finally, the HashList contains as children the ordered Hash elements which together make up the complete hash chain for verification. It also specifies an attribute representing the index in the list of the hash of the QueryKey (or GreaterValue, if the key is uncontained). This representation is compact and readable, while still providing easy access to the important elements during proof verification. A sample encoding of a response, containing both a basis and proof, is shown in Figure 3. 6
7 <stms:response xmlns:stms=" id="stms_response"> <stms:basis> <stms:repository stms:algorithm="asl">cgc</stms:repository> <stms:basisdata stms:expirationdate=" t13:05:16z" stms:timestamp=" t13:04:56z"> Izmy2t+fldfcIlimzGpxXg==</stms:BasisData> </stms:basis> <stms:proof stms:algorithm="asl"> <stms:querykey stms:contained="false">d0ja <stms:smallervalue>aa2v</stms:smallervalue> <stms:greatervalue>xufakrxlkna5cz2rebffkg==</stms:greatervalue> </stms:querykey> <stms:digestmethod stms:algorithm="md5"/> <stms:hashlist stms:index="1"> <stms:hash>zcbkfmlqdcesyxgxsqtjea==</stms:hash>... <stms:hash>ju8ouqu0yuo7ucxkabo0fw==</stms:hash> </stms:hashlist> </stms:proof> </stms:response> Figure 3 XML encoding of a basis and a proof. The hash chain has been shortened for readability. 4.2 Custom XML Signature Transform The XML Signature specification was designed with extensibility in mind. By taking advantage of this fact, it is possible to supplement the standard functionality with additional custom behavior. According to the specification, before a certain piece of data is signed, any number of specified transforms will be applied. Some of the standard transforms include XML canonicalization [6], base 64 decoding, XPath [8] and XSLT [4] transformations, and so on. The transforms are applied sequentially, with the input of the first being the original data, and the output of the last being the data that is subsequently digested and signed. As mentioned in the XML Signature specification, the input to a transform can be either a byte stream or a DOM node list. We now define the ASL Transform (see Figure 4), whose purpose is to validate the response from an Authenticated skip list responder within the XML Signature standard. if stms:proof if stms:contained = true computed_digest hash(stms:querykey) else computed_digest hash(stms:smallervalue, stms:greatervalue) for all h stms:hash stms:hashlist computed_digest hash(computed_digest, h) replace(stms:basisdata.value, computed_digest) return stms:basis Figure 4 Pseudocode for the ASL Transform algorithm. 7
8 Assuming prior knowledge of the input data, it is possible to construct specific transforms to operate on that data. In the case of the ASL Transform, we assume the input is a well-formed XML document conforming to the XML encoding described earlier for representing STMS data from an Authenticated Skip List source. The pseudo-code for the ASL Transform algorithm is shown in Figure 4. A detailed description follows. The algorithm scans the input for the presence of a Proof element. If one is found, its children are validated and stored for later processing. The main processing performed is the computation of the hash chain stored in the proof; the rest of the data is supplementary to this goal. The Index attribute specifies the index in the hash list where the query key belongs (or where the larger neighbor belongs, should the key not be contained). In order to verify that this proof is indeed for this query, the hash of the query key (if it is contained) or the hashes of the smaller and greater neighbors (if it is not) replace the values stored at the specified indices. Note that these values should be exactly the same if the proof is authentic. The hash chain computation is then performed with the commutative hash function, producing a final hash value that is base 64 encoded. If the proof is valid, this value should match exactly the hash of the repository (and thus the contents of the BasisData tag); thus, the contents of the BasisData tag are replaced with the computed value. Regardless of whether the proof is found, the output of the algorithm is going to be the subtree rooted at the Basis element. If no proof exists, then the basis is being signed, and the XML encoding is the output. If a proof exists, then the algorithm verifies the authenticity of that proof by replacing the BasisData value with the computed digest. The signature verification will succeed if and only if the computed digest matches the hash of the repository. There is no loss of security in this method, provided that a trusted party provides the algorithm implementation. The same computations are being performed as in the standard STMS validation, they are just happening in a different context. This transform algorithm is the key that allows untrusted responders to return digitally signed documents containing the responses to queries. Its main function is to wrap the computation of the untrusted proof into the verification of the source s fingerprint, a task that was previously conducted separately, though achieved the same result. 4.3 Signing the Basis The basis is signed once per time quantum at the source, and then distributed to all responders thereafter. The basis data is retrieved from the underlying data structure, and then combined with a timestamp, expiration date, repository name, and algorithm to form the unsigned basis object. This object is then serialized into XML, and placed in a new XML document under a Response tag, which is identified with an XML ID. 1 A given basis is only valid for the time period between the time stamp and expiration date; this is due to the dynamic nature of the source data structure, the shorter the time quantum, the faster updates are propagated. When a proof verifies against a basis, it indicates that the answer was accurate during the time period specified in the basis itself. To sign the basis, an XML Signature is created with a reference to the Response tag as the data to be signed. The next step involves choosing the algorithms and transforms that are associated with the signature. In the case of STMS, we use the RSA and SHA1 algorithms, and for transforms, the standard XML C14N canonicalizer [6] and our custom ASL Transform. The actual signing occurs using the standard methods of the XML Signature. In this scenario, the functionality of the ASL Transform is to locate the Basis element, and pass that subtree as is to the subsequent transform. Finally, the Signature element is added to the XML document as a sibling of the Response element, and the resulting document is stored as the signed XML representation of the basis. This information is then propagated to all responders. 1 The Response tag is slightly misnamed in this case; its function is more as an envelope, containing as children a single Basis tag and zero or more Proof tags. 8
9 <ds:signature xmlns:ds=" <ds:signedinfo> <ds:canonicalizationmethod Algorithm=" <ds:signaturemethod Algorithm=" <ds:reference URI="#stms_response"> <ds:transforms> <ds:transform Algorithm=" <ds:transform Algorithm=" </ds:transforms> <ds:digestmethod Algorithm=" <ds:digestvalue>0oum6egklgyed6m4mf5jy+fequs=</ds:digestvalue> </ds:reference> </ds:signedinfo> <ds:signaturevalue>... </ds:signaturevalue> <ds:keyinfo>... </ds:keyinfo> </ds:signature> Figure 5 An example of an XML Signature associated with an STMS response. The SignatureValue and KeyInfo have been shortened for readability. It is possible to include with the Signature the public key or X.509 certificate [24], which can be used during verification. This can make key distribution easier in some cases, however it has the additional overhead of encoding and transferring extra information along with the basis (and subsequently, the response). 4.4 Creating the Response Due to the nature of the transform algorithm, creating a response to a user query is quite simple. The responder stores the XML document containing the signed basis that is sent by the source at the expiration of each time quantum. In response to a query, the data structure returns an AuthenticResponse that is serialized into XML, resulting in a Proof element that is appended to a copy of the signed basis document as a child of the Response. This new document containing the Proof can then be sent back to the user as a string. The process of creating the response is outlined in Figure 6. An example of the actual XML encoding of the response is shown in Figure 3. (a ) (b ) (c) s tm s :R e s p o n s e stm s:basis s tm s :R e s p o n s e stm s:basis ro o t ro o t d s :S ig n a tu r e S ig n e d X M L B a s is d s :S ig n a tu r e C lo n e o f S ig n e d X M L B a s is stm s:b asis s tm s :R e s p o n s e r o o t s tm s :P r o o f A u th e n tic R e s p o n s e d s :S ig n a tu r e s tm s :P r o o f R e s p o n s e X M L D o c u m e n t Figure 6 Creation of the response. It all begins with the signed XML basis and the AuthenticResponse (a); the document is cloned, and the AuthenticResponse is serialized into XML (b), which is finally appended to the copy and returned to the client (c). 9
10 4.5 Verifying the Proof Once the user has received the XML document containing the Response, the verification of its integrity is reduced to a verification of an XML Signature using a custom transform. The verification process works by transforming the Proof through proven cryptographic means into information that has been previously signed by the source, namely the Basis. The ASL transform performs the computation part of the proof verification, replacing the original BasisData value with the computed value. The validation is left up to the digital signature; if the computed value is equivalent to the hash of the data structure that was signed at the source, then verification will succeed; otherwise, it will fail. 4.6 Integrating Web Services/SOAP with STMS To write an STMS client, one previously had to use Java RMI to communicate with the responder. While this mechanism does achieve a certain degree of portability and interoperability between client operating systems and devices, it requires a large custom and complex toolkit that is tied to a single programming language. By allowing the STMS responder to be accessed as a Web Service using SOAP, much of the communications protocol can be abstracted out using platform-agnostic protocols for which a plethora of toolkits are available. Given the recent rise in popularity of Web Services, support for them has been integrated into major development platforms such as Java and.net. Additionally, having a Web Services framework for STMS allows it to seamlessly integrate with other Web Services as an authentication/credential provider, for example. The service, schematically illustrated in Figure 7, accepts queries from clients and returns the response as signed XML. The goal of this Web Service is to reduce the size and complexity of the client toolkit, allowing it to better integrate with existing toolkits and standard digital signature techniques and technologies. Responder < SOAP-ENV:Envelope> < SOAP-ENV:Body> < contains> < query xmlns:ns2="urn:stmstypes" xsi:type="ns2:query"> < key xsi:type="ns2:biginteger">ayag</key> < repository xsi:type="xsd:string"> CGC</repository> </query> </contains> </SOAP-ENV:Body> </SOAP-ENV:Envelope> root stms:response ds:signature SOAP Request stms:basis stms:proof SOAP Response User Figure 7 A SOAP-encoded query returning a document signed with the XML Signature standard. See Figure 5 for an example of the Signature element, and Figure 3 for an example of the Response. The service implementation is quite simple. The process for generating an XML response to a query has been described above in Section 4.4. When the SOAP request comes in, it is forwarded to a method in a proxy class that performs the query on the dictionary and receives 10
11 the signed XML document as the result. It then returns this document to the client, encoded as a string. Instead of parsing the result back into complex objects, the client simply takes the XML string and returns it to the user. This document will most likely be run back through an XML parser once the client receives it. In this scenario, verification becomes trivial: the Signature element must be located and then used in conjunction with an XML Signature toolkit to perform signature verification. If the certificate/public key information is not encoded in the signed document, it must be procured through other means (such as XKMS). It is this verification step that yields the greatest savings in complexity over the previous methods. Being able to treat an STMS response as a true digital signature allows it to fit in existing security paradigms, and integrate into existing applications with minimal custom handling. Although it is not immediately apparent, the ASL transform still relies on the presence of a commutative hash function and an appropriate comparator for the query keys. This type of system could be implemented as a part of any authenticated distributed database, and serves mainly to make the 3-level architecture (source, responder, client) appear to the client as only a 2-level architecture (source, client). This is achieved through the verification of the response, which is treated as a standard digitally signed piece of data from the source. The main contribution of this work is this elimination of the middle party from the end-user verification process, thus simplifying and standardizing the authentication of distributed data. 5 IMPLEMENTATION One of the goals of this project is to allow STMS to become more platform and language independent on the client side, thus allowing queries to originate anywhere and on any device. To that end, a prototype implementation of the architecture discussed in Section 4 has been implemented in the two major platforms for next-generation Web Services. The first is Java, combined with various other toolkits freely available from the Apache Software Foundation [22]. The second is Microsoft s.net platform [25]. 5.1 Java Implementation The Java implementation is written using the JDK version 1.3.1, and relies heavily on external toolkits for various standards such as SOAP, XML, and XML Signature. We chose to use those from the Apache Software Foundation [22], as they are freely distributable, open-source, and widely used. The XML Parser used is Xerces-J The SOAP toolkit is Apache SOAP 2.2, and the XML Security package is Apache XML Security Finally, we use Jakarta-Tomcat 3.3 as the servlet engine for interfacing with Apache SOAP and listening for SOAP requests. It is important to note that the implementation of this research is not limited to these specific toolkits; it is certainly possible to use a different servlet engine, SOAP package, or even XML Security package. With the standardization of the Java APIs for XML Security, using different packages should be as simple as switching XML parsers Classes The addition of a few new classes to the STMS package is necessary for the system to function. The XML representations of the proof and basis are generated by the stms.io.newxml.xmldatawriter class, which relies on the JAXP (Java API for XML Processing) API. The ASL Transform is implemented in the stms.io.newxml.asltransform class. It is an implementation of the org.apache.xml.security.transforms.transformspi abstract class, the main super-class of all transforms in the Apache XML Security package. The source has an instance of the stms.daemon.source.xmlbasissigner class which, when given a SignedBasis object, generates the signed XML representation of it, storing the resulting Document in the SignedBasis itself. To request and verify a proof on the client side, two classes are used. The first class is the SOAP proxy client, stms.tools.soapsignatureclient, which configures the Apache SOAP toolkit 11
12 to make the remote method call to the responder. The second class, stms.tools.xmlsignatureverifier, performs the verification of the XML Signature using the Apache XML Security toolkit. Based on the client s need, both wrapped (those that perform validation) and unwrapped (those that do not perform validation) query methods are available Deployment Deployment of the STMS clients is meant to be as simple as possible. A number of JAR files need to be installed, including those for Apache SOAP, Apache XML Security, and Apache Xerces. It is also possible to construct a smaller JAR containing only the necessary subset of the STMS classes that are required for a client. 5.2.NET Implementation The ability to develop Web Services in Microsoft s.net framework, combined with its prevalent target platform, make it a major candidate for an implementation of an STMS client. We have implemented a full client toolkit that is capable of communicating with an STMS responder using SOAP and verifying results using both the standard verification and signed XML methodology. This toolkit contains 19 classes and less than 2000 lines of code, and a large portion of it is the object structure for the response and the custom byte canonicalization of the basis, items which are used only for standard verification, not XML Signature verification. The toolkit is implemented in C#, the native language of the.net framework, though it is accessible by any language that is compatible with.net Classes The exposed API contains methods that take care of wrapping the SOAP call and validating the response; this allows the user to perform queries on an API similar to that of a standard data structure, improving code readability. Security violations are reported through the use of exceptions. Additional methods exist that give a finer grain of control over the query and verification process, should the user require that. The.NET framework has built in support for the XML Signature standard in the System.Security.Cryptography.Xml namespace. We have developed an implementation of the custom authenticated skip list transform (Section 4.2) Deployment Client deployment in the.net framework is slightly easier than for Java, as the SOAP and XML Signature toolkits are built in to the.net framework. Thus, installation requires only the addition of a signed assembly to the GAC (Global Assembly Cache), the local registry of all installed.net components. Furthermore, registration of the custom XML transform must be done by manual modification of a system configuration file. 6 EXPERIMENTATION This section presents some experimental results of the described implementations. All client performance evaluations were performed on a dual Intel Xeon 1.7GHz machine with 1GB of RAM and 100Mbit LAN connection. It was running Windows XP Professional, Java JDK Standard Edition, and Microsoft.NET Framework v , under moderate (50%) CPU load. When dealing with message sizes, numbers represent the number of bytes contained in the entire SOAP envelope, but excluding transport-protocol (e.g., HTTP) overhead. 6.1 SOAP Because SOAP is a text-based protocol, exchanging data tends to be more verbose than using heavily optimized binary-based ones. An important factor in determining the scalability of the Web Service interface is the amount of data transferred per query. For the experiments 12
13 mentioned below, we found queries generated with Apache SOAP averaged 586 bytes, while queries generated by.net averaged 723 bytes (see Figure 8a). The difference can be attributed to the different XML styling used by default by each implementation. The signed XML that is returned as a result of a query had an average size of 3,900 bytes, regardless of platform. Variations in message size are a result of the varying length of the query key, as well as containment status and hash chain length in the responses. The time required to perform the SOAP RPC is very similar on both platforms, and depends heavily on network congestion and other quality of service parameters. By running both the client and responder on the same machine, we attempted to isolate network conditions and evaluate the overhead of using SOAP. In this situation, we found that the.net client took an average of 14 milliseconds per query, while the Java client took an average of 19 milliseconds per query. This additional overhead of using SOAP appeared to be negligible when compared to the interoperability gains we acquired. Average Query Size Average Validation Time -.NET Average Validation Time - Java bytes milliseconds milliseconds Java.NET With Transform Without Transform With Transform Without Transform Figure 8 (a) Average query time in milliseconds for our Java and.net implementations; (b) Average validation time for the.net client, with and without custom transform; (c) Average validation time for the Java client, with and without custom transform. 6.2 XML Signature In order to evaluate the efficiency of our custom transform, we performed two sets of performance tests: the first includes the custom transform, and the second has a modified version of the transform which always returns the Basis subtree, regardless of whether a proof is present (essentially, it bypasses the cryptographic computation of the proof). The motivation for this approach is to show that the additional overhead of our approach is negligible when compared to the verification times of standard XML Signatures. We performed 5 repetitions of a series of 10,000 queries on a dictionary with 514,000 random elements. The queries were sequential, starting at 1,000,000. We expected the number of contained queries to be very small, thus showing the algorithm s case worst (additional parsing and processing must take place when an item is not contained in the dictionary). The results so far have been encouraging. In the.net client, verification with the transform took an average of 5.12 milliseconds, while verification without the transform took an average of 4.59 milliseconds. On the Java side, verification with the transform took milliseconds, while verification without took an average of 104 milliseconds. These results are shown in Figure 8b and 8c, respectively. While the toolkits exhibit dramatically different absolute times, the relative differences between the verification with and without the transform show that, on both platforms, the impact of the proof verification on overall verification time is minimal. 13
14 6.3 Interoperability A successful outcome of our experiments is the seamless interoperability achieved between the Java and.net implementations using SOAP and XML Signatures. In order to achieve full compatibility with SOAP, three main issues were addressed. The first issue is the need for custom SOAP serializers in Java. We found that the internal object structure for STMS queries and responses could be expressed in a simpler and more efficient manner by using custom written serializers that simply plug in to the Apache SOAP package. This also gave us a very fine grain of control over the format of the messages, which made it easier to build a.net client. The second issue that aided interoperability is the fact that the.net client was written from scratch; we were free to build the object hierarchy in C# around the format of the SOAP messages, thus allowing us to use the built in SOAP serialization with the aid of code attributes. The final issue has to do with the byte-level representation of data in Java and.net. In STMS, query keys are stored as the most basic type of data a byte array and interpreted based on the application. Thus, it is imperative that the interpretation be the same on different platforms. We found that the endianness of the byte representation of an integer was reversed between Java and.net (additionally,.net has no equivalent of an arbitrary-length integer data type, similar to the java.math.biginteger class), which caused some initial confusion. We also found that, when dealing with strings (and especially their hash values), it is important to ensure that they are encoded in the same manner on both platforms (such as ASCII, Unicode, etc.). These final caveats are simply items that application designers must pay attention to when dealing with cross-platform programming. We encountered no major compatibility issues between XML Signature toolkits, though a few minor issues did arise. There is a well-known problem of identifying ID attributes in XML without using a DTD; however, both toolkits interpret the attribute name Id (case-sensitive) as being an ID attribute, thus allowing us to use document-relative URIs when referencing the data that is signed. 7 CONCLUSION The ability of STMS to be accessed using standard technologies by lightweight clients will greatly increase its appeal. In the previous state of affairs, one must have an STMS client capable of running Java and making RMI calls through the Internet to perform a query on a responder. Clearly, the scalability of this approach is questionable: many system administrators would be reluctant to open additional ports on firewalls to accommodate STMS traffic, and clients would be limited to relatively powerful devices with high connectivity. In order for STMS, and technologies like it, to become a widely used and pervasive technology, clients must be able to access it from any location, any platform, and any device. The main contribution of this research towards the goals of scalability and interoperability is the design and development of a SOAP-based query client for STMS. With tremendous industry-wide support, SOAP implementations are widely available, and very scalable to the size of the Internet. The Web Services interface provides a standard framework for performing queries on authenticated dictionaries over the Internet. Additionally, it allows clients to spend less code dealing with the serialization, canonicalization, and communication of data by delegating those tasks to already implemented standards. This, in turn, motivates smaller, simpler clients on many different possible platforms. The primary contribution towards the goal of simplifying distributed authenticated dictionary proof verification is the development of a methodology for proof verification via a standard XML Signature. The main advantage of this approach over the previous verification 14
15 technique is the ease of client use. By allowing a proof to be verified using a standard cryptographic API (that provided by XML Signatures) in a single step, the integration of authenticated queries into applications becomes much simpler and easier. While this approach still requires a small client library to be installed, its use makes the fact that proofs are returned from untrusted responders transparent to the end-user. The XML Signature verification methodology has further implications for the general problem of authenticating distributed data: since a response provided by an untrusted third party requires a proprietary verification method, applications which interface with these systems must use a non-standard API to verify data integrity. Furthermore, applications that utilize multiple sources of authenticated data might require separate APIs for each source implementation. One of the unique advantages of the new methodology is a standard interface for verifying distributed data. No matter what the implementation of the distributed data structure, the XML Signature interface provides a single, common verification API to the application that wishes to deal with authenticated data, whether it is maintained locally or in a distributed system such as STMS. By developing prototype implementations in both Java and.net, we have accomplished the goals of interoperability and platform-independence of proof verification. Furthermore, the prototype implementation of XML Signature-based proof verification shows the viability of such an approach to distributed data authentication. The inclusion of these technologies into the core STMS system will enable a new breed of applications. One such application is the end-to-end integrity of Web content [9], where an Internet Explorer.NET plug-in calls our.net STMS client to verify the integrity of data within a web page integrity status. Finally, there is much more future work to be done in this area. More extensive performance evaluations are required in order to optimize the algorithm and compare approaches. Also, there are currently only two implementations; there exist many more XML Signature and SOAP toolkits for which clients and transforms can be written. The current implementation only verifies a single proof per document; it would be significantly more efficient to be able to handle the verification of multiple proofs from the same repository with a single XML Signature validation. The algorithm to accomplish this has been designed, but not yet implemented. 8 ACKNOWLEDGMENTS The authors would like to acknowledge the assistance and support of all the STMS team members and especially Michael Goodrich, Robert Cohen, David Emory and Michael Shin. Brian LaMacchia and Tarik Soulami provided generous insight into the workings of the.net XML Signature package, and Christian Geuer-Pollmann provided assistance with the Apache XML Security package. 15
16 REFERENCES [1] A. Anagnostopoulos, M. T. Goodrich, and R. Tamassia. Persistent authenticated dictionaries and their applications. In Proc. Information Security Conference (ISC 2001), volume 2200 of LNCS, pages Springer-Verlag, [2] M. Bartel, J. Boyer, B. Fox, B. LaMacchia and E. Simon. XML Signature Syntax and Processing. W3C Recommendation, February [3] T. Bray, J. Paoli, C. M. Sperberg-McQueen and E. Maler. Extensible Markup Language (XML) 1.0 (Second Edition). W3C Recommendation, October [4] J. Clark (editor). XSL Transformations (XSLT) Version W3C Recommendation, November [5] D. Box, D. Ehnebuske, G. Kakivaya, A. Layman, N. Mendelsohn, H. Frystyk Nielsen, S. Thatte, and D. Winer. Simple Object Access Protocol (SOAP) W3C Note, May [6] J. Boyer. Canonical XML Version W3C Recommendation, March [7] E. Christensen, F. Curbera, G. Meredith and S. Weerawarana. Web Services Description Language (WSDL) W3C Note, March [8] J. Clark and S. DeRose (eds.). XML Path Language (XPATH) Version W3C Recommendation, November [9] D. Emory. End-to-end integrity of Web content with STMS. Manuscript. Brown University, [10] W. Ford, P. Hallam-Baker, B. Fox, B. Dillaway, B. LaMacchia, J. Epstein and J. Lapp. XML Key Management Specification (XKMS). W3C Note, March [11] J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach and T. Berners-Lee. Hypertext Transfer Protocol (HTTP/1.1). RFC2616. [12] M. T. Goodrich and R. Tamassia. Efficient authenticated dictionaries with skip lists and commutative hashing. Technical Report, Johns Hopkins Information Security Institute, [13] M. T. Goodrich, R. Tamassia, and A. Schwerin. Implementation of an authenticated dictionary with skip lists and commutative hashing. In Proc DARPA Information Survivability Conference and Exposition, volume 2, pages 68 82, [14] M. T. Goodrich, and R. Tamassia and J. Hasic. An Efficient Dynamic and Distributed Cryptographic Accumulator. In Proc. Information Security Conference (ISC 2002), Lecture Notes in Computer Science, Springer-Verlag, 2002 (to appear). [15] P. C. Kocher. On certificate revocation and validation. In Proc. International Conference on Financial Cryptography, volume 1465 of Lecture Notes in Computer Science, Springer-Verlag,
17 [16] R. C. Merkle. Protocols for public key cryptosystems. In Proc. Symp. on Security and Privacy. IEEE Computer Society Press, [17] R. C. Merkle. A certified digital signature. In G. Brassard, editor, Advances in Cryptology CRYPTO '89, volume 435 of Lecture Notes in Computer Science, pages Springer-Verlag, [18] M. Naor and K. Nissim. Certificate revocation and certificate update. In Proceedings of the 7th USENIX Security Symposium (SECURITY-98), pages , Berkeley, [19] Premkumar T. Devanbu, Michael Gertz, April Kwong, Chip Martel, G. Nuckolls, Stuart G. Stubblebine. Flexible authentication of XML documents. ACM Conference on Computer and Communications Security 2001: [20] W. Pugh. Skip lists: a probabilistic alternative to balanced trees. Commun. ACM, 33(6): , [21] R. L. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2): , February [22] Apache Software Foundation. [23] STMS System Architecture. Presentation. [24] ITU-T Recommendation X.509 (1997 E): Information Technology - Open Systems Interconnection - The Directory: Authentication Framework, June [25] Microsoft.NET. 17
02267: Software Development of Web Services
02267: Software Development of Web Services Week 11 Hubert Baumeister [email protected] Department of Applied Mathematics and Computer Science Technical University of Denmark Fall 2015 1 Contents WS-Policy Web
WebSphere Portal Server and Web Services Whitepaper
WebSphere Server and s Whitepaper Thomas Schaeck ([email protected]) IBM Software Group Abstract As web services will become the predominant method for making information and applications available programmatically
Representation of E-documents in AIDA Project
Representation of E-documents in AIDA Project Diana Berbecaru Marius Marian Dip. di Automatica e Informatica Politecnico di Torino Corso Duca degli Abruzzi 24, 10129 Torino, Italy Abstract Initially developed
XML Processing and Web Services. Chapter 17
XML Processing and Web Services Chapter 17 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of http://www.funwebdev.com Web Development Objectives 1 XML Overview 2 XML Processing
Industrial Network Security and Connectivity. Tunneling Process Data Securely Through Firewalls. A Solution To OPC - DCOM Connectivity
Industrial Network Security and Connectivity Tunneling Process Data Securely Through Firewalls A Solution To OPC - DCOM Connectivity Manufacturing companies have invested billions of dollars in industrial
Secure Authentication and Session. State Management for Web Services
Lehman 0 Secure Authentication and Session State Management for Web Services Clay Lehman CSC 499: Honors Thesis Supervised by: Dr. R. Michael Young Lehman 1 1. Introduction Web services are a relatively
IBM SPSS Collaboration and Deployment Services Version 6 Release 0. Single Sign-On Services Developer's Guide
IBM SPSS Collaboration and Deployment Services Version 6 Release 0 Single Sign-On Services Developer's Guide Note Before using this information and the product it supports, read the information in Notices
Java Security Web Services Security (Overview) Lecture 9
Java Security Web Services Security (Overview) Lecture 9 Java 2 Cryptography Java provides API + SPI for crypto functions Java Cryptography Architecture Security related core classes Access control and
Merkle Hash Trees for Distributed Audit Logs
Merkle Hash Trees for Distributed Audit Logs Subject proposed by Karthikeyan Bhargavan [email protected] April 7, 2015 Modern distributed systems spread their databases across a large number
XBRL Processor Interstage XWand and Its Application Programs
XBRL Processor Interstage XWand and Its Application Programs V Toshimitsu Suzuki (Manuscript received December 1, 2003) Interstage XWand is a middleware for Extensible Business Reporting Language (XBRL)
[MS-SPEMAWS]: SharePoint Email Web Service Protocol. Intellectual Property Rights Notice for Open Specifications Documentation
[MS-SPEMAWS]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages,
OPCNet Broker TM for Industrial Network Security and Connectivity
OPCNet Broker TM for Industrial Network Security and Connectivity Tunneling Process Data Securely Through Firewalls A Solution To OPC - DCOM Connectivity from Integration Objects Compatible for DA, HDA
Electronic Bank Account Management - EBAM
Electronic Bank Account Management - EBAM EBAM and Digital Signature This guide provides an overview of how to use a digital signature in the EBAM solution to sign the XML messages and the potential attachments.
What is a Web service?
What is a Web service? Many people and companies have debated the exact definition of Web services. At a minimum, however, a Web service is any piece of software that makes itself available over the Internet
LabVIEW Internet Toolkit User Guide
LabVIEW Internet Toolkit User Guide Version 6.0 Contents The LabVIEW Internet Toolkit provides you with the ability to incorporate Internet capabilities into VIs. You can use LabVIEW to work with XML documents,
Introduction to Service Oriented Architectures (SOA)
Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction
Multiple electronic signatures on multiple documents
Multiple electronic signatures on multiple documents Antonio Lioy and Gianluca Ramunno Politecnico di Torino Dip. di Automatica e Informatica Torino (Italy) e-mail: [email protected], [email protected] web
A Signing Proxy for Web Services Security
A Signing Proxy for Web Services Security Ingo Melzer DaimlerChrysler AG [email protected] Mario Jeckle FH Furtwangen [email protected] Abstract: Web Services offer a way for very different systems to
Internationalization and Web Services
Internationalization and Web Services 25 th Internationalization and Unicode Conference Presented by Addison P. Phillips Director, Globalization Architecture webmethods, Inc. 25 th Internationalization
Energy Efficiency in Secure and Dynamic Cloud Storage
Energy Efficiency in Secure and Dynamic Cloud Storage Adilet Kachkeev Ertem Esiner Alptekin Küpçü Öznur Özkasap Koç University Department of Computer Science and Engineering, İstanbul, Turkey {akachkeev,eesiner,akupcu,oozkasap}@ku.edu.tr
McAfee Agent Handler
McAfee Agent Handler COPYRIGHT Copyright 2009 McAfee, Inc. All Rights Reserved. No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into
Single Sign-On Implementation Guide
Salesforce.com: Salesforce Winter '09 Single Sign-On Implementation Guide Copyright 2000-2008 salesforce.com, inc. All rights reserved. Salesforce.com and the no software logo are registered trademarks,
Web Services Trust and XML Security Standards
Web Services Trust and XML Security Standards Date: April 9, 2001 Version: 1.0 Copyright 2001-2003 Entrust. All rights reserved. Entrust is a registered trademark of Entrust, Inc. in the United States
KMx Enterprise: Integration Overview for Member Account Synchronization and Single Signon
KMx Enterprise: Integration Overview for Member Account Synchronization and Single Signon KMx Enterprise includes two api s for integrating user accounts with an external directory of employee or other
Efficiency of Web Based SAX XML Distributed Processing
Efficiency of Web Based SAX XML Distributed Processing R. Eggen Computer and Information Sciences Department University of North Florida Jacksonville, FL, USA A. Basic Computer and Information Sciences
WEB SERVICES. Revised 9/29/2015
WEB SERVICES Revised 9/29/2015 This Page Intentionally Left Blank Table of Contents Web Services using WebLogic... 1 Developing Web Services on WebSphere... 2 Developing RESTful Services in Java v1.1...
XML Signatures in an Enterprise Service Bus Environment
XML Signatures in an Enterprise Bus Environment Eckehard Hermann Research & Development XML Integration Uhlandstraße 12 64297 Darmstadt, Germany [email protected] Dieter Kessler Research
Concrete uses of XML in software development and data analysis.
Concrete uses of XML in software development and data analysis. S. Patton LBNL, Berkeley, CA 94720, USA XML is now becoming an industry standard for data description and exchange. Despite this there are
AJAX Integration Approach for Collaborative Calendar-Server Web Services
AJAX Integration Approach for Collaborative Calendar-Server Web Services Ahmet Fatih Mustacoglu 1, 2 1 Community Grids Lab, Indiana University 2 Department of Computer Science Indiana University [email protected]
ZooKeeper. Table of contents
by Table of contents 1 ZooKeeper: A Distributed Coordination Service for Distributed Applications... 2 1.1 Design Goals...2 1.2 Data model and the hierarchical namespace...3 1.3 Nodes and ephemeral nodes...
<Insert Picture Here> Oracle Security Developer Tools (OSDT) August 2008
Oracle Security Developer Tools (OSDT) August 2008 Items Introduction OSDT 10g Architecture Business Benefits Oracle Products Currently Using OSDT 10g OSDT 10g APIs Description OSDT
Managing XML Documents Versions and Upgrades with XSLT
Managing XML Documents Versions and Upgrades with XSLT Vadim Zaliva, [email protected] 2001 Abstract This paper describes mechanism for versioning and upgrding XML configuration files used in FWBuilder
Firewall Builder Architecture Overview
Firewall Builder Architecture Overview Vadim Zaliva Vadim Kurland Abstract This document gives brief, high level overview of existing Firewall Builder architecture.
CS 356 Lecture 28 Internet Authentication. Spring 2013
CS 356 Lecture 28 Internet Authentication Spring 2013 Review Chapter 1: Basic Concepts and Terminology Chapter 2: Basic Cryptographic Tools Chapter 3 User Authentication Chapter 4 Access Control Lists
Business Object Document (BOD) Message Architecture for OAGIS Release 9.+
Business Object Document (BOD) Message Architecture for OAGIS Release 9.+ an OAGi White Paper Document #20110408V1.0 Open standards that open markets TM Open Applications Group, Incorporated OAGi A consortium
Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.2
Job Reference Guide SLAMD Distributed Load Generation Engine Version 1.8.2 June 2004 Contents 1. Introduction...3 2. The Utility Jobs...4 3. The LDAP Search Jobs...11 4. The LDAP Authentication Jobs...22
Automatic Configuration and Service Discovery for Networked Smart Devices
Automatic Configuration and Service Discovery for Networked Smart Devices Günter Obiltschnig Applied Informatics Software Engineering GmbH St. Peter 33 9184 St. Jakob im Rosental Austria Tel: +43 4253
Digital Certificates (Public Key Infrastructure) Reshma Afshar Indiana State University
Digital Certificates (Public Key Infrastructure) Reshma Afshar Indiana State University October 2015 1 List of Figures Contents 1 Introduction 1 2 History 2 3 Public Key Infrastructure (PKI) 3 3.1 Certificate
Web Services Implementation: The Beta Phase of EPA Network Nodes
Web Services Implementation: The Beta Phase of EPA Network Nodes Connie Dwyer and Chris Clark U.S. Environmental Protection Agency, 1200 Pennsylvania Avenue, N. W., Washington, D.C. [email protected]
Encryption, Signing and Compression in Financial Web Services
Danske Bank Encryption, Signing and Compression in Financial Web Services Details of how to call the Danske Bank financial web service Version 2.4.7 Encryption, Signing and Compression in Financial Web
[MS-BDSRR]: Business Document Scanning: Scan Repository Capabilities and Status Retrieval Protocol
[MS-BDSRR]: Business Document Scanning: Scan Repository Capabilities and Status Retrieval Protocol Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft
Technik und Informatik. SOAP Security. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel. Version April 11, 2012
SOAP Security Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Version April 11, 2012 Overview Motivation Transport security versus SOAP Security WS-Security stack overview Structure of secured SOAP messages
Agents and Web Services
Agents and Web Services ------SENG609.22 Tutorial 1 Dong Liu Abstract: The basics of web services are reviewed in this tutorial. Agents are compared to web services in many aspects, and the impacts of
Digital Signing Specification
Digital Signing Specification Product: EVM-CR Feature: Digital File Signatures Support to: Defense Cost and Resource Center Contract No: W91WAW-08-D-0031/0008 Tecolote Research, Inc. Date: 07/08/2013 Document
Research on the Model of Enterprise Application Integration with Web Services
Research on the Model of Enterprise Integration with Web Services XIN JIN School of Information, Central University of Finance& Economics, Beijing, 100081 China Abstract: - In order to improve business
T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm
T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm Based on slides by Sasu Tarkoma and Pekka Nikander 1 of 20 Contents Short review of XML & related specs
A Signing Proxy for Web Services Security. Dr. Ingo Melzer RIC/ED
A Signing Proxy for Web Services Security Dr. Ingo Melzer RIC/ED What is a Web Service? Infrastructure Web Service I. Melzer -- A Signing Proxy for Web Services Security 2 What is a Web Service? basic
Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications
Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications White Paper Table of Contents Overview...3 Replication Types Supported...3 Set-up &
Introduction to SAML
Introduction to THE LEADER IN API AND CLOUD GATEWAY TECHNOLOGY Introduction to Introduction In today s world of rapidly expanding and growing software development; organizations, enterprises and governments
Biometrics, Tokens, & Public Key Certificates
Biometrics, Tokens, & Public Key Certificates The Merging of Technologies TOKENEER Workstations WS CA WS WS Certificate Authority (CA) L. Reinert S. Luther Information Systems Security Organization Biometrics,
Websense Support Webinar: Questions and Answers
Websense Support Webinar: Questions and Answers Configuring Websense Web Security v7 with Your Directory Service Can updating to Native Mode from Active Directory (AD) Mixed Mode affect transparent user
Virtual Credit Card Processing System
The ITB Journal Volume 3 Issue 2 Article 2 2002 Virtual Credit Card Processing System Geraldine Gray Karen Church Tony Ayres Follow this and additional works at: http://arrow.dit.ie/itbj Part of the E-Commerce
The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14
The presentation explains how to create and access the web services using the user interface. Page 1 of 14 The aim of this presentation is to familiarize you with the processes of creating and accessing
[MS-MDM]: Mobile Device Management Protocol. Intellectual Property Rights Notice for Open Specifications Documentation
[MS-MDM]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages,
Overview. SSL Cryptography Overview CHAPTER 1
CHAPTER 1 Note The information in this chapter applies to both the ACE module and the ACE appliance unless otherwise noted. The features in this chapter apply to IPv4 and IPv6 unless otherwise noted. Secure
Using mobile phones to access Web Services in a secure way. Dan Marinescu
Using mobile phones to access Web Services in a secure way Dan Marinescu March 7, 2007 Abstract Web Services is a technology that has gained in acceptance and popularity over the past years. The promise
Introduction into Web Services (WS)
(WS) Adomas Svirskas Agenda Background and the need for WS SOAP the first Internet-ready RPC Basic Web Services Advanced Web Services Case Studies The ebxml framework How do I use/develop Web Services?
17 March 2013 NIEM Web Services API Version 1.0 URI: http://reference.niem.gov/niem/specification/web-services-api/1.0/
17 March 2013 NIEM Web Serv vices API Version 1.0 URI: http://reference.niem.gov/niem/specification/web-services-api/1.0/ i Change History No. Date Reference: All, Page, Table, Figure, Paragraph A = Add.
Literature Review Service Frameworks and Architectural Design Patterns in Web Development
Literature Review Service Frameworks and Architectural Design Patterns in Web Development Connor Patrick [email protected] Computer Science Honours University of Cape Town 15 May 2014 Abstract Organizing
BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: 10.1.1. Security Note
BlackBerry Enterprise Service 10 Secure Work Space for ios and Android Version: 10.1.1 Security Note Published: 2013-06-21 SWD-20130621110651069 Contents 1 About this guide...4 2 What is BlackBerry Enterprise
[MS-ASMS]: Exchange ActiveSync: Short Message Service (SMS) Protocol
[MS-ASMS]: Exchange ActiveSync: Short Message Service (SMS) Protocol Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications
Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords
Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords Author: Paul Seymer CMSC498a Contents 1 Background... 2 1.1 HTTP 1.0/1.1... 2 1.2 Password
Mobility Information Series
SOAP vs REST RapidValue Enabling Mobility XML vs JSON Mobility Information Series Comparison between various Web Services Data Transfer Frameworks for Mobile Enabling Applications Author: Arun Chandran,
DIRECTOR GENERAL OF THE LITHUANIAN ARCHIVES DEPARTMENT UNDER THE GOVERNMENT OF THE REPUBLIC OF LITHUANIA
Non-official translation DIRECTOR GENERAL OF THE LITHUANIAN ARCHIVES DEPARTMENT UNDER THE GOVERNMENT OF THE REPUBLIC OF LITHUANIA ORDER ON THE CONFIRMATION OF THE SPECIFICATION ADOC-V1.0 OF THE ELECTRONIC
Schematron Validation and Guidance
Schematron Validation and Guidance Schematron Validation and Guidance Version: 1.0 Revision Date: July, 18, 2007 Prepared for: NTG Prepared by: Yunhao Zhang i Schematron Validation and Guidance SCHEMATRON
Proof of Concept. A New Data Validation Technique for Microsoft ASP.NET Web Applications. Foundstone Professional Services
Proof of Concept A New Data Validation Technique for Microsoft ASP.NET Web Applications Foundstone Professional Services February 2005 Introduction Despite significant awareness of security issues like
WEB SERVICES SECURITY
WEB SERVICES SECURITY February 2008 The Government of the Hong Kong Special Administrative Region The contents of this document remain the property of, and may not be reproduced in whole or in part without
Fighting product clones through digital signatures
Paul Curtis, Katrin Berkenkopf Embedded Experts Team, SEGGER Microcontroller Fighting product clones through digital signatures Product piracy and forgery are growing problems that not only decrease turnover
Web. Services. Web Technologies. Today. Web. Technologies. Internet WWW. Protocols TCP/IP HTTP. Apache. Next Time. Lecture #3 2008 3 Apache.
JSP, and JSP, and JSP, and 1 2 Lecture #3 2008 3 JSP, and JSP, and Markup & presentation (HTML, XHTML, CSS etc) Data storage & access (JDBC, XML etc) Network & application protocols (, etc) Programming
Database Design Patterns. Winter 2006-2007 Lecture 24
Database Design Patterns Winter 2006-2007 Lecture 24 Trees and Hierarchies Many schemas need to represent trees or hierarchies of some sort Common way of representing trees: An adjacency list model Each
CALIFORNIA SOFTWARE LABS
; Digital Signatures and PKCS#11 Smart Cards Concepts, Issues and some Programming Details CALIFORNIA SOFTWARE LABS R E A L I Z E Y O U R I D E A S California Software Labs 6800 Koll Center Parkway, Suite
Developing Java Web Services
Page 1 of 5 Developing Java Web Services Hands On 35 Hours Online 5 Days In-Classroom A comprehensive look at the state of the art in developing interoperable web services on the Java EE platform. Students
MAGENTO HOSTING Progressive Server Performance Improvements
MAGENTO HOSTING Progressive Server Performance Improvements Simple Helix, LLC 4092 Memorial Parkway Ste 202 Huntsville, AL 35802 [email protected] 1.866.963.0424 www.simplehelix.com 2 Table of Contents
ETSI TS 102 778 V1.1.1 (2009-04) Technical Specification
TS 102 778 V1.1.1 (2009-04) Technical Specification Electronic Signatures and Infrastructures (ESI); PDF Advanced Electronic Signature Profiles; CMS Profile based on ISO 32000-1 2 TS 102 778 V1.1.1 (2009-04)
Sage ERP Accpac Online
Sage ERP Accpac Online Mac Resource Guide Thank you for choosing Sage ERP Accpac Online. This Resource Guide will provide important information and instructions on how you can get started using your Mac
Sage 300 ERP Online. Mac Resource Guide. (Formerly Sage ERP Accpac Online) Updated June 1, 2012. Page 1
Sage 300 ERP Online (Formerly Sage ERP Accpac Online) Mac Resource Guide Updated June 1, 2012 Page 1 Table of Contents 1.0 Introduction... 3 2.0 Getting Started with Sage 300 ERP Online using a Mac....
Web Services Security Using SOAP, WSDL and UDDI
Web Services Security Using SOAP, WSDL and UDDI by Lin Yan A Thesis Submitted to the Faculty of Graduate Studies in Partial Fulfillment of the Requirements for the Degree of MASTER OF SCIENCE Department
XIII. Service Oriented Computing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini
XIII. Service Oriented Computing Laurea Triennale in Informatica Corso di Outline Enterprise Application Integration (EAI) and B2B applications Service Oriented Architecture Web Services WS technologies
XML Advanced Electronic Signatures (XAdES)
XML Advanced Electronic Signatures (XAdES) What is XAdES? The XML Advanced Electronic Signatures (XAdES) standard is an extension of the IETF XMLDSIG specification. The XAdES specification is designed
Introduction to Web Services
Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies
Configuring SAML2 for Single Sign-On to Smartsheet (Enterprise Only)
Configuring SAML2 for Single Sign-On to Smartsheet (Enterprise Only) This document is intended for technical professionals who are familiar with SAML and have access to the Identity Provider that will
Copyright 2014 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft
5.6 Copyright 2014 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft logo, Jaspersoft ireport Designer, JasperReports Library, JasperReports Server, Jaspersoft
Role Based Encryption with Efficient Access Control in Cloud Storage
Role Based Encryption with Efficient Access Control in Cloud Storage G. V. Bandewar 1, R. H. Borhade 2 1 Department of Information Technology, Sinhgad Technical Education Society s SKNCOE, Pune, India
Rights Management Services
www.css-security.com 425.216.0720 WHITE PAPER Microsoft Windows (RMS) provides authors and owners the ability to control how they use and distribute their digital content when using rights-enabled applications,
Exchanger XML Editor - Canonicalization and XML Digital Signatures
Exchanger XML Editor - Canonicalization and XML Digital Signatures Copyright 2005 Cladonia Ltd Table of Contents XML Canonicalization... 2 Inclusive Canonicalization... 2 Inclusive Canonicalization Example...
Overview of CSS SSL. SSL Cryptography Overview CHAPTER
CHAPTER 1 Secure Sockets Layer (SSL) is an application-level protocol that provides encryption technology for the Internet, ensuring secure transactions such as the transmission of credit card numbers
A Survey Study on Monitoring Service for Grid
A Survey Study on Monitoring Service for Grid Erkang You [email protected] ABSTRACT Grid is a distributed system that integrates heterogeneous systems into a single transparent computer, aiming to provide
Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems
Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems If company want to be competitive on global market nowadays, it have to be persistent on Internet. If we
OpenLDAP Oracle Enterprise Gateway Integration Guide
An Oracle White Paper June 2011 OpenLDAP Oracle Enterprise Gateway Integration Guide 1 / 29 Disclaimer The following is intended to outline our general product direction. It is intended for information
Enhancing A Software Testing Tool to Validate the Web Services
Enhancing A Software Testing Tool to Validate the Web Services Tanuj Wala 1, Aman Kumar Sharma 2 1 Research Scholar, Department of Computer Science, Himachal Pradesh University Shimla, India 2 Associate
An Oracle White Paper August 2010. Oracle OpenSSO Fedlet
An Oracle White Paper August 2010 Oracle OpenSSO Fedlet Disclaimer The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated
