17
XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp.

XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Embed Size (px)

Citation preview

Page 1: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

XML Key Management Services - Tutorial

9 December 01

Blair Dillaway

Software Architect

Microsoft Corp.

Page 2: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Outline

• Historical Perspective

• XKMS Overview

• Trust Models

• Using XKMS

• What’s Next

Page 3: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Historical Perspective

• PKI complexity has limited its use– Enrollment – multiple approaches– No std discovery approach – CAs, Certs, Keys– ‘Cert’ standardization & interpretation– Trust management

• Chain-building logic• ‘OID’ interpretation• Cross certification & cert hierarchies

– Client handling of complex ASN.1 and PKCS data structures– Effective Revocation/Validation

• Affects every client• Interoperability issues

Page 4: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

XKMS Overview

• Define XML compatible key mgmt• Make PKI-based security easier to use

– Address multi-vendor, cross-plat issues – Support multiple Trust/PKI infrastructures– Allow clients to offload complex, and difficult,

trust assessment– Integrate key validity checks– Keep the interfaces simple– Keep interactions simple

Page 5: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

XKMS Approach

InternetClient App

XKMS Service

Web Service App

PKI

Std. Protocols:HTTPSOAP

Std. Discovery:UDDIWSDL

Page 6: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Trust Models (1 of 2)

• XKMS is trust model agnostic– PKIX, PGP, Key-based, Proprietary– Services define supported model

• Similar to CA publishing a CPS• Contract between the Service and Applications

• XKMS doesn’t tell one how to do this or what the business relationship should be

Page 7: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Trust (2 of 2)

• But, there’s still a bootstrapping problem– Apps need to pick the right trust infrastructure– Need trust in an XKMS service(s)

• XKMS doesn’t define how to handle this• Will likely mirror what already happens

– Keys for high-volume, low-value, Services widely distributed

– Keys for Enterprise Services distributed via internal trust

– Keys for vertical market, high-value, apps using high assurance mechanism

Page 8: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Using XKMS (1 of 2)

• Getting started– Pick the right service, get its usage profile

info, etc.– Tailor the XKMS client for the service

• Cache the service identifying info• Set the service URL• Understand supported KeyInfo elements• Structural requirements on data (i.e., KeyID or

KeyName formatting)

Page 9: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Using XKMS (2 of 2)

• Operations– Register your public key– Locate other public keys (optional)

• Ex: find key so you can send encrypted data to others

– Check validity/trustworthiness of public keys• Authentication, Signed documents, …• Possibly before sending encrypted data

– Manage your keys• Revoke• Update associated attributes• Recover/roam your private key

Page 10: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Next Steps

• Refinement of XKMS 1.1– Interface refinement– Xml Signature context issues– Bulk operations– Message level authentication, integrity,

confidentiality– Update for conformance with latest XML stds

• Move forward as a W3C recommendation

Page 11: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

XKMS Message Samples

Page 12: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Registration Request<soap:Envelope > <soap:Body> <Register xmlns="http://www.xkms.org/schema/xkms-2001-01-

20"> <Prototype Id="KB01"> <Status>Valid</Status> <KeyID>abc123</KeyID> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <KeyName>mykey</KeyName> <KeyValue> <RSAKeyValue>

<Modulus>8nSoscDtBoSA5jiqrMn3yg0TRvRdfFFzrutP7zHATX4lD8cgPns=</Modulus>

<Exponent>AQAB</Exponent> </RSAKeyValue> </KeyValue> <RetrievalMethod URI="http://someURI"

Type="http://someType" />

<PassPhrase>85XRXbVMov0efQi1NvS41Q1YsZg=</PassPhrase>

<ValidityInterval>

<NotBefore>2000-09-20T12:00:00.0000000-07:00</NotBefore>

<NotAfter>2001-09-20T12:00:00.0000000-07:00</NotAfter> </ValidityInterval> <KeyUsageType>Signature</KeyUsageType> <KeyUsageType>Exchange</KeyUsageType> </Prototype> <AuthInfo> <AuthUserInfo> <ProofOfPossession> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod

Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

<Reference URI="#KB01"> <DigestMethod

Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />

<DigestValue>mX8qoz9e+Ko01d4GcfLiyBeFg5Q=</DigestValue>

</Reference> </SignedInfo> <SignatureValue>KKRHMd5eL7wwBG1Xs7A=</SignatureValue> </Signature> </ProofOfPossession> <KeyBindingAuth> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod

Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1" />

<Reference URI="#KB01"> <DigestMethod

Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />

<DigestValue>mX8qoz9e+1d4GcfLiyBeFg5Q=</DigestValue> </Reference> </SignedInfo> <SignatureValue>9uT2hVmuZ4sBLk414=</SignatureValue> </Signature> </KeyBindingAuth> <PassPhraseAuth>JMffIc07Z23iJelIXHE=</PassPhraseAuth> </AuthUserInfo> </AuthInfo> <Respond> <string>KeyName</string> <string>X509Cert</string> </Respond> </Register> </soap:Body></soap:Envelope>

Page 13: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Register Result<soap:Envelope > <soap:Body> <RegisterResult xmlns="http://www.xkms.org/schema/xkms-2001-01-20"> <Result>Success</Result> <Answer> <KeyBinding Id="KB01"> <Status>Valid</Status> <KeyID>abc123</KeyID> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <KeyName>mykey</KeyName> <X509Data> <X509SubjectName>CN=MyName, O=Microsoft</X509SubjectName> <X509IssuerSerial> <X509IssuerName>CN=TheCA</X509IssuerName> <X509SerialNumber>123456</X509SerialNumber> </X509IssuerSerial> <X509Certificate>Thn3s9ozskDXj1ibjrhxz092LG4ivz+3ARpNT+mARKY=</X509Certificate> </X509Data> <ValidityInterval> <NotBefore>2000-09-20T12:00:00.0000000-07:00</NotBefore> <NotAfter>2001-09-20T12:00:00.0000000-07:00</NotAfter> </ValidityInterval> <KeyUsageType>Signature</KeyUsageType> <KeyUsageType>Exchange</KeyUsageType> </KeyBinding> </Answer> </RegisterResult> </soap:Body></soap:Envelope>

Page 14: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Locate Request<soap:Envelope> <soap:Body> <Locate xmlns="http://www.xkms.org/schema/xkms-2001-01-20"> <Query> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <KeyName>mykey</KeyName> </KeyInfo> </Query> <Respond> <string>KeyName</string> <string>X509Cert</string> </Respond> </Locate> </soap:Body></soap:Envelope>

Page 15: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Locate Response<soap:Envelope> <soap:Body> <LocateResult xmlns="http://www.xkms.org/schema/xkms-2001-01-20"> <Result>Success</Result> <Answer> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <KeyName>mykey</KeyName> <MgmtData>My Management Data</MgmtData> <SPKIData>My-SPKI-Cert</SPKIData> <KeyValue> <RSAKeyValue> <Modulus>mpk9qt0uwUb8KyMNiHEK6Y1efkBVBC3FE=</Modulus> <Exponent>AQAB</Exponent> </RSAKeyValue> </KeyValue> <X509Data> <X509SubjectName>CN=MyName, O=Microsoft</X509SubjectName> <X509IssuerSerial> <X509IssuerName>CN=TheCA</X509IssuerName> <X509SerialNumber>123456</X509SerialNumber> </X509IssuerSerial> <X509Certificate>UbCDPEkqMtlSNBxmfQt8i6tZWpqFntJilP50iRKwBLw=</X509Certificate> </X509Data> </KeyInfo> </Answer> </LocateResult> </soap:Body></soap:Envelope>

Page 16: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Validate Request<soap:Envelope > <soap:Body> <Validate xmlns="http://www.xkms.org/schema/xkms-2001-01-20"> <Query> <Status>Valid</Status> <KeyID>abc123</KeyID> <KeyUsageType>Signature</KeyUsageType> <KeyUsageType>Encryption</KeyUsageType> </Query> <Respond> <string>KeyName</string> <string>X509Cert</string> </Respond> </Validate> </soap:Body></soap:Envelope>

Page 17: XML Key Management Services - Tutorial 9 December 01 Blair Dillaway Software Architect Microsoft Corp

Validate Response<soap:Envelope > <soap:Body> <ValidateResult xmlns="http://www.xkms.org/schema/xkms-2001-01-20"> <Result>Success</Result> <Answer> <KeyBinding> <Status>Valid</Status> <KeyID>abc123</KeyID> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <KeyName>mykey</KeyName> <MgmtData>My Management Data</MgmtData> <X509Data> <X509SubjectName>CN=MyName, O=Microsoft</X509SubjectName> <X509IssuerSerial> <X509IssuerName>CN=TheCA</X509IssuerName> <X509SerialNumber>123456</X509SerialNumber> </X509IssuerSerial> <X509Certificate>UbCDPEkqMtlSNBxmfQt8i6tZWpqFntJilP50iRKwBLw=</X509Certificate> </X509Data> <ValidityInterval> <NotBefore>2000-09-20T12:00:00.0000000-07:00</NotBefore> <NotAfter>2001-09-20T12:00:00.0000000-07:00</NotAfter> </ValidityInterval> <KeyUsageType>Signature</KeyUsageType> <KeyUsageType>Exchange</KeyUsageType> </KeyBinding> </Answer> </ValidateResult> </soap:Body></soap:Envelope>