290 likes | 410 Views
Richard D. Brown GlobeSet, Inc. Austin TX - U.S. Proposal for XML Digital Signature. XML-DSIG’99. Motivations Objectives Specification Process Driving Requirements Syntax Proposal Conclusion. Summary. XML enables production and exchange of structured data, but this is not sufficient.
E N D
Richard D. Brown GlobeSet, Inc. Austin TX - U.S. Proposal for XML Digital Signature XML-DSIG’99
Motivations Objectives Specification Process Driving Requirements Syntax Proposal Conclusion Summary
XML enables production and exchange of structured data, but this is not sufficient. The usefulness of such structured data depends upon our ability to assess its origin and authenticity. Existing binary syntaxes are not satisfactory for building authentication in XML applications. These syntaxes tend to externalize signature from the application logic. The lack of XML cryptography standard is a real show stopper for our industry. Slow down development and adoption of XML applications. Rapid proliferation of proprietary and limited solutions. Motivations
Define syntax and procedures for the computation, verification, and encoding of digital signatures using XML Signing XML document and element Using XML for signing WEB resources Objectives
Ease signature support in XML applications and propose an XML alternative to binary syntaxes Support for digital signatures and authentication codes Support for certificate-based and account-based authentication schemes Authentication of internal and external resources Authentication of part or totality of a document Support for composite documents Support for extended signature functionality such as co-signature, endorsement, etc... Requirements
<Signature> <Manifest> (authenticated attributes) </Manifest> <Value> (encoded signature value) </Value> </Signature> Syntax Basics <Certificates> (certificate information blocks) </Certificates>
Signature Manifest <Manifest> (resources information block) (other authenticated attributes) (originator information block) (recipient information block) (key-agreement algorithm information block) (signature algorithm information block) </Manifest>
<Resources> <Resource> <Locator href=‘resource locator’/> <ContentInfo type=‘type qualifier’/> <Digest> (encoded digest value) </Digest> </Resource> … </Resources> Resources
<Attributes> <Attribute type=‘resource locator’ critical=‘boolean/> (ANY attribute value) </Attribute> … </Attributes> Attributes
<OriginatorInfo> (ANY identification information blocks) (ANY keying material information block) </OriginatorInfo> <RecipientInfo> (ANY identification information blocks) (ANY keying material information block) </RecipientInfo> Originator and Recipient
<KeyAgreementAlgorithm> (algorithm information block) </KeyAgreementAlgorithm> <SignatureAlgorithm> (algorithm information block) </SignatureAlgorithm> Signature and Key-agreement
Enabling signature in XML applications Encapsulating arbitrary content Implementing endorsement Supporting composite documents Enabling one-pass processing Signature Principles
<AppDoc xmlns:dsig=‘signature DTD URI’> <AppElement id=‘authenticated’> … </AppElement> <dsig:Signature> ... <dsig:Resource> <dsig:Locator href=‘#authenticated’/> … </dsig:Signature> </AppDoc> Signature in XML Applications
<dsig:Package id=‘authenticated’> <dsig:ContentInfo type=‘type qualifier’/> <dsig:Value encoding=‘scheme’> (encoded value) </dsig:Value> </dsig:Package> Encapsulating Arbitrary Content
<dsig:Signature id=‘signature’> ... </dsig:Signature> <dsig:Signatue id=‘counter-signature’> ... <dsig:Resource> <dsig:Locator href=‘#signature’/> … </dsig:Signature> Implementing Endorsement
<dsig:Resources id=‘shared-resources’> ... </dsig:Resources> <dsig:Signature> ... <dsig:Resource> <dsig:Locator href=‘#shared-resources’/> ... </dsig:Signature> <dsig:Signature> ... <dsig:Resource> <dsig:Locator href=‘#shared-resources’/> ... </dsig:Signature> Supporting Composite Documents
<dsig:DigestAlgorithms> <dsig:Algorithm id=‘SHA1’ type=‘urn:nist-gov:sha1’/> <dsig:Algorithm id=‘MD5’ type=‘urn:rsasdi-com:md5’/> </dsig:DigestAlgorithms> <AppElement id=‘authenticated’ dsig:eval=‘SHA1 MD5’> … </AppElement> <dsig:Signature> ... <dsig:Resource> <dsig:Locator href=‘#authenticated’/> <dsig:Digest> <dsig:Algorithm type=‘urn:nist-gov:sha1’/> ... </dsig:Signature> Enabling One-Pass Processing
Element Definition Supported Algorithms Algorithms
Algorithm Element <!ELEMENT Algorithm (Parameter*)> <!ATTLIST Algorithm id ID #IMPLIED type CDATA #REQUIRED > <!ELEMENT Parameter ANY> <!ATTLIST Parameter type CDATA #REQUIRED >
Algorithm Element <dsig:Algorithm id=‘DSA-XHASH-SHA1’ type=‘urn:nist-gov:dsa’> <dsig:Parameter type=‘digest-algorithm’> <dsig:Algorithm type=‘urn:globeset-com:xhash’> <dsig:Parameter type=‘digest-algorithm’> <dsig:Algorithm type=‘urn:nist-gov:SHA1’/> </dsig:Parameter> </dsig:Parameter> </dsig:Algorithm> <dsig:Algorithm id=‘DSA-XHASH-SHA1’ type=‘urn:xmldsig:dsa-xhash-sha1’/>
Supported Algorithms • Digest Algorithms • Key-agreement Algorithms • Key-exchange Algorithms • Signature Algorithms
Digest Algorithms • Surface String Digest Algorithms • NIST SHA1 • Canonical Digest Algorithms • IBM DOM-HASH • GlobeSet XHASH
Key-agreement Algorithms • RSA Laboratories PKCS12 PBE
Key-exchange Algorithms • Static Diffie Hellman
Signature Algorithms • Authentication Codes • IETF HMAC • Public-key Signature Algorithms • NIST DSA • RSA Labs RSA Encryption T1 • ? ECDSA
Conclusion • Current Proposal • A good start • Enter phase 3 • Next • First Implementations • Standard Body • Formalization