OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wss message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [wss] Comments on WSS-X509 draft 06-05 merged.pdf


Tim,
I see your proposal has two points.

1. <wsse:compartment> element
  I think your requirement is satisfied by using S:role attributes.

  - A message sender encrypts some part of the message using a
    symmetric key.
  - The sender encrypts the symmetric key using Recipient1's
    key-aggreement key and put it in 
    <wsse:Security S:role="Recipient1"> element using
    <xenc:EncryptedKey> element.
  - <ds:KeyInfo> element for Recipient1's key-aggreement key is also
    added in the <wsse:Security S:role="Recipient1">.
  - The sender encrypts the same symmetric key using Recipient2's
    key-aggreement key and put it in 
    <wsse:Security S:role="Recipient2"> element
    and so on.

  I attached the sample.

2. References flow
  Your proposal adds <wsse:Reference> element in <ds:KeyInfo> element
  and achives the following flow.

    ds:KeyInfo    
      Reference -> xenc:EncryptedKey(Compartment) -> message element

  With current spec, the flow will be:

                  xenc:EncryptedKey       -> message element
    ds:KeyInfo <-   ds:KeyInfo

  or
                           ds:Signature   -> (signed) message element
    BinarySecurityToken <-   ds:KeyInfo

  Is it better we also allow <wsse:Reference> element in
  <BinarySecurityToken> element?

    BinarySecurityToken
      Reference         -> ds:Signature   -> (signed) message element

---
Toshi

---
NISHIMURA Toshihiro (FAMILY Given)
nishimura.toshi@jp.fujitsu.com
XML/Web Services Technology Dept.,
STRATEGY AND TECHNOLOGY DIV., FUJITSU LIMITED


At Fri, 04 Jul 2003 15:39:39 -0400,
Tim Moses wrote:
> 
> [1  <text/plain (7bit)>]
> Toshihiro - I agree with many of your observations.
> 
> Please consider the attached proposal.  It includes an example to illustrate
> the following policy:
> 
> "Recipient 1 is permitted access to Element 1, Element 2 and Element 3.
> Recipient 2 is
> permitted access to Element 1 and Element 2 only."
> 
> I feel certain some optimizations will be possible.  But, we have to make
> sure that we provide proper support for policies in which different
> recipients are permitted access to different portions of the message.
> 
> All the best.  Tim.

<snip>

--------------------------------------------------------------------------
--------------------------------------------------------------------------
<S:Envelope>
<S:Header>
<wsse:Security S:role="Recipient1">

  <ds:KeyInfo> !--Reference to Recipient1's key-agreement key
    <ds:X509Data>
      <ds:X509IssuerSerial>
        <ds:X509IssuerName>Issuer of Recipient1's certificate</ds:X509IssuerName>
        <ds:X509SerialNumber>Serial number of Recipient1's certificate</ds:X509SerialNumber>
      </ds:X509IssuerSerial>
    </ds:X509Data>
    <wsse:Reference URI="#a"/>
    <wsse:Reference URI="#c"/>
  </ds:KeyInfo>

  <xenc:EncryptedKey Id="a">
    <xenc:CipherData>
      <xenc:CipherValue>
        Key1 encrypted for Recipient1
      </xenc:CipherValue>
    <xenc:CipherData>
    <xenc:ReferenceList>
      <xenc:DataReference URI="#d"/>
      <xenc:DataReference URI="#e"/>
    </xenc:ReferenceList>
  </xenc:EncryptedKey>

  <xenc:EncryptedKey Id="c">
    <xenc:CipherData>
      <xenc:CipherValue>
        Key2 encrypted for Recipient1
      </xenc:CipherValue>
    <xenc:CipherData>
    <xenc:ReferenceList>
      <xenc:DataReference URI="#f"/>
    </xenc:ReferenceList>
  </xenc:EncryptedKey>

</wsse:Security>

!--

<wsse:Security S:role="Recipient2">

  <ds:KeyInfo> !--Reference to Recipient2's key-agreement key
    <ds:X509Data>
      <ds:X509IssuerSerial>
        <ds:X509IssuerName>Issuer of Recipient2's certificate</ds:X509IssuerName>
        <ds:X509SerialNumber>Serial number of Recipient2's certificate</ds:X509SerialNumber>
      </ds:X509IssuerSerial>
    </ds:X509Data>
    <wsse:Reference URI="#b"/>
  </ds:KeyInfo>

  <xenc:EncryptedKey Id="b">
    <xenc:CipherData>
      <xenc:CipherValue>
        Key1 encrypted for Recipient2
      </xenc:CipherValue>
    <xenc:CipherData>
    <xenc:ReferenceList>
      <xenc:DataReference URI="#d"/>
      <xenc:DataReference URI="#e"/>
    </xenc:ReferenceList>
  </xenc:EncryptedKey>

</wsse:Security>

</S:Header>
<S:Body>
<xenc:EncryptedData Id="d"/>
  <xenc:CipherData>
    <xenc:CipherValue>
      Element1 encrypted with symmetric Key1
    </xenc:CipherValue>
  </xenc:CipherData>
</xenc:EncryptedData>

<xenc:EncryptedData Id="e"/>
  <xenc:CipherData>
    <xenc:CipherValue>
      Element2 encrypted with symmetric Key1
    </xenc:CipherValue>
  </xenc:CipherData>
</xenc:EncryptedData>

<xenc:EncryptedData Id="f">
  <xenc:CipherData>
    <xenc:CipherValue>
      Element3 encrypted with symmetric Key2
    </xenc:CipherValue>
  </xenc:CipherData>
</xenc:EncryptedData>
</S:Body>
</S:Envelope>
--------------------------------------------------------------------------


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]