Hi, Colm knows the subject better, anyway short answer from me:
> -----Original Message----- > From: COURTAULT Francois [mailto:[email protected]] > Sent: Donnerstag, 5. Dezember 2013 14:32 > To: [email protected] > Cc: [email protected] > Subject: Spec questions > > Hello everyone, > > I try to understand what policy requires that a Certificate reference has to > be > included in the SignedInfo section. > Is it due to <sp:ProtectTokens/> policy assertion ? If I read the spec at > §6.5, > it was stated that: > "This boolean property specifies whether signatures must cover the token > used to generate that signature. If the value is 'true', then each token used > to generate a signature MUST be covered by that signature." > > My interpretation of this sentence is that the token used for the signature > has to be included in the signature so that the SignedInfo section has to > contain the token reference: is my interpretation correct ? > It also means that if we use Asymmetric binding, it is mandatory to have in > the SignedInfo section something like: > <ds:Reference URI="X509-<thumbprint>>: right ? I also interpret <sp:ProtectTokens/> in this way. If it is active, the signature must protect the used token as well: <wsse:BinarySecurityToken> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-messa ge-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="CertId-3201971"> ... </wsse:BinarySecurityToken> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-20079748"> <ds:SignedInfo> <ds:CanonicalizationMethod \ Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" \ /> ... <ds:Reference URI="#CertId-3201971"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <ds:DigestValue> 5eik4SB6Q0N9fWnyA9HDtDnfjeY=</ds:DigestValue> </ds:Reference> ... </ds:SignedInfo> </ds:Signature> > > I have also another questions. In the spec at §3.2 Token References, it is > stated that the: > " <wsse:SecurityTokenReference> element MAY reference an X.509 token > type by one of the following means: > > · Reference to a Subject Key Identifier > > · Reference to a Binary Security Token > > · Reference to an Issuer and Serial Number" > Could you confirm me that the 3 means are possible and equivalent ? Or > depending on a security policy assertion, we have to use only one of these > methods ? > 1. The Reference to a Subject Key Identifier means that SecurityTokenReference contains KeyIdentifier with X509 SubjectDN. X509 certificate can be found based on this data. 2. The Reference to a Binary Security Token means that X509 is embedded into message security header and just referenced from the signature: <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="X509-21B185F9A383FC218D138383549326938">... </wsse:BinarySecurityToken> ... <wsse:SecurityTokenReference wsu:Id="STR-21B185F9A383FC218D138383549326940"> <wsse:Reference URI="#X509-21B185F9A383FC218D138383549326938" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" /> </wsse:SecurityTokenReference> 3. The Reference to an Issuer and Serial Number is other way to identify X509 certificate - provider Issuer DN and serial number that also identify certificate unambiguously. In this case SecurityTokenReference contains X509Data element with X509IssuerSerial. AFAIK all are possible. They can be controlled through following policy assertions: §9.2: /sp:Wss11/wsp:Policy/sp:MustSupportRefKeyIdentifier This optional element is a policy assertion indicates that the [Key Identifier References] property is set to 'true'. /sp:Wss11/wsp:Policy/sp:MustSupportRefIssuerSerial This optional element is a policy assertion indicates that the [Issuer Serial References] property is set to 'true'. /sp:Wss11/wsp:Policy/sp:MustSupportRefExternalURI This optional element is a policy assertion indicates that the [External URI References] property is set to 'true'. /sp:Wss11/wsp:Policy/sp:MustSupportRefEmbeddedToken This optional element is a policy assertion indicates that the [Embedded Token References] property is set to 'true'. /sp:Wss11/wsp:Policy/sp:MustSupportRefThumbprint This optional element is a policy assertion indicates that the [Thumbprint References] property is set to 'true'. /sp:Wss11/wsp:Policy/sp:MustSupportRefEncryptedKey This optional element is a policy assertion indicates that the [EncryptedKey References] property is set to 'true'. /sp:Wss11/wsp:Policy/sp:RequireSignatureConfirmation This optional element is a policy assertion indicates that the [Signature Confirmation] property is set to 'true'. Regards, Andrei. > > Best Regards. > > ________________________________ > This message and any attachments are intended solely for the addressees > and may contain confidential information. Any unauthorized use or > disclosure, either whole or partial, is prohibited. > E-mails are susceptible to alteration. Our company shall not be liable for the > message if altered, changed or falsified. If you are not the intended > recipient > of this message, please delete it and notify the sender. > Although all reasonable efforts have been made to keep this transmission > free from viruses, the sender will not be liable for damages caused by a > transmitted virus
