Title: XMLDSIG99
1XML-DSIG99
- Richard D. Brown
- GlobeSet, Inc. Austin TX - U.S.
- Proposal for XML Digital Signature
2Summary
- Motivations
- Objectives
- Specification Process
- Driving Requirements
- Syntax Proposal
- Conclusion
3Motivations
- 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.
4Objectives
- 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
5Specification Process
6Specification Process
7Specification Process
8Requirements
- 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...
9Syntax Basics
ltCertificatesgt (certificate
information blocks) lt/Certificatesgt
- ltSignaturegt
- ltManifestgt
- (authenticated attributes)
- lt/Manifestgt
- ltValuegt
- (encoded signature value)
- lt/Valuegt
- lt/Signaturegt
10Signature Manifest
ltManifestgt (resources information block)
(other authenticated attributes) (originator
information block) (recipient information
block) (key-agreement algorithm information
block) (signature algorithm information
block) lt/Manifestgt
11Resources
- ltResourcesgt
- ltResourcegt
- ltLocator hrefresource locator/gt
- ltContentInfo typetype qualifier/gt
- ltDigestgt
- (encoded digest value)
- lt/Digestgt
- lt/Resourcegt
-
- lt/Resourcesgt
12Attributes
- ltAttributesgt
- ltAttribute typeresource locator
- criticalboolean/gt
- (ANY attribute value)
- lt/Attributegt
-
- lt/Attributesgt
13Originator and Recipient
- ltOriginatorInfogt
- (ANY identification information blocks)
- (ANY keying material information block)
- lt/OriginatorInfogt
- ltRecipientInfogt
- (ANY identification information blocks)
- (ANY keying material information block)
- lt/RecipientInfogt
14Signature and Key-agreement
- ltKeyAgreementAlgorithmgt
- (algorithm information block)
- lt/KeyAgreementAlgorithmgt
- ltSignatureAlgorithmgt
- (algorithm information block)
- lt/SignatureAlgorithmgt
15Signature Principles
- Enabling signature in XML applications
- Encapsulating arbitrary content
- Implementing endorsement
- Supporting composite documents
- Enabling one-pass processing
16Signature in XML Applications
- ltAppDoc xmlnsdsigsignature DTD URIgt
- ltAppElement idauthenticatedgt
-
- lt/AppElementgt
- ltdsigSignaturegt
- ...
- ltdsigResourcegt
- ltdsigLocator
hrefauthenticated/gt -
- lt/dsigSignaturegt
- lt/AppDocgt
17Encapsulating Arbitrary Content
- ltdsigPackage idauthenticatedgt
- ltdsigContentInfo typetype qualifier/gt
- ltdsigValue encodingschemegt
- (encoded value)
- lt/dsigValuegt
- lt/dsigPackagegt
18Implementing Endorsement
- ltdsigSignature idsignaturegt
- ...
- lt/dsigSignaturegt
- ltdsigSignatue idcounter-signaturegt
- ...
- ltdsigResourcegt
- ltdsigLocator hrefsignature/gt
-
- lt/dsigSignaturegt
19Supporting Composite Documents
- ltdsigResources idshared-resourcesgt
- ...
- lt/dsigResourcesgt
- ltdsigSignaturegt
- ...
- ltdsigResourcegt
- ltdsigLocator hrefshared-resour
ces/gt - ...
- lt/dsigSignaturegt
- ltdsigSignaturegt
- ...
- ltdsigResourcegt
- ltdsigLocator hrefshared-resour
ces/gt - ...
- lt/dsigSignaturegt
20Enabling One-Pass Processing
- ltdsigDigestAlgorithmsgt
- ltdsigAlgorithm idSHA1 typeurnnist-govs
ha1/gt - ltdsigAlgorithm idMD5 typeurnrsasdi-com
md5/gt - lt/dsigDigestAlgorithmsgt
- ltAppElement idauthenticated dsigevalSHA1
MD5gt -
- lt/AppElementgt
- ltdsigSignaturegt
- ...
- ltdsigResourcegt
- ltdsigLocator hrefauthenticated
/gt - ltdsigDigestgt
- ltdsigAlgorithm
typeurnnist-govsha1/gt - ...
- lt/dsigSignaturegt
21Algorithms
- Element Definition
- Supported Algorithms
22Algorithm Element
lt!ELEMENT Algorithm (Parameter)gt lt!ATTLIST
Algorithm id ID
IMPLIED type CDATA
REQUIRED gt lt!ELEMENT Parameter ANYgt lt!ATTLIST
Parameter type CDATA REQUIRED gt
23Algorithm Element
ltdsigAlgorithm idDSA-XHASH-SHA1
typeurnnist-govdsagt ltdsigParameter
typedigest-algorithmgt ltdsigAlgorithm
typeurnglobeset-comxhashgt
ltdsigParameter typedigest-algorithmgt
ltdsigAlgorithm typeurnnist-govSHA1/gt
lt/dsigParametergt
lt/dsigParametergt lt/dsigAlgorithmgt
ltdsigAlgorithm idDSA-XHASH-SHA1
typeurnxmldsigdsa-xhash-sha1/gt
24Supported Algorithms
- Digest Algorithms
- Key-agreement Algorithms
- Key-exchange Algorithms
- Signature Algorithms
25Digest Algorithms
- Surface String Digest Algorithms
- NIST SHA1
- Canonical Digest Algorithms
- IBM DOM-HASH
- GlobeSet XHASH
26Key-agreement Algorithms
- RSA Laboratories PKCS12 PBE
27Key-exchange Algorithms
28Signature Algorithms
- Authentication Codes
- IETF HMAC
- Public-key Signature Algorithms
- NIST DSA
- RSA Labs RSA Encryption T1
- ? ECDSA
29Conclusion
- Current Proposal
- A good start
- Enter phase 3
- Next
- First Implementations
- Standard Body
- Formalization