Re: [wss] Web Services Security Username Token Profile

From
Phillip H. Griffin <>
Date
2003-01-30T13:25:28+00:00
ID
Thread
Re: [wss] Web Services Security Username Token Profile
Hi Gene,

Gene Thurston wrote:

   
  
   
  
 
  
 
  
 
  
    
   
 
  
  
  
  
Let me try this again.  The 
formatting of that last post got pretty garbled when I viewed it.

  
  
 

  
  
Here goes ...

  
  
 

  
  
 

  
  
 

  
  
 

  
  
 

  
  
Phil,
thanks for you comments.  I have replied to some of 
them below.

  
  
 

  
  
- Gene -

  
  
 

  
  
 

  
  
> -----Original Message-----

  
  
> From: Phillip H. Griffin [mailto:]
  

  
  
> Sent: Wednesday,  January 29, 2003 5:38 PM

  
  
> To: [OASIS WSS]

  
  
> Subject: RE: [wss]
Web Services Security Username Token Profile

  
  
> 

  
  
> 

  
  
> Gene Thurston wrote:

  
  
> 

  
  
> > Thanks for the
comments, Zahid.

  
  
> >

  
  
> > I agree that in practice SSL/TLS can, and will often (usually?), be used

  
  
> > to provide these
capabilities.  I still believe,
however, that we should

  
  
> > address cases where transport level security
is either not an option, or

  
  
> > for some other reason (application specific,
perhaps) is not being used.

  
  
> >

  
  
> > On the XML Signature spec, the use of
other algorithms will not break

  
  
> > our compliance
with the standard.  While the
spec does define

  
  
> > identifiers for the DSA and RSA algorithms,
it is intended to be

  
  
> > extensible: "... the mechanism is extensible; 
alternative algorithms may

  
  
> > be used by signature applications."  This is analogous to the extensions

  
  
> > in the <ds:KeyInfo> element, or the definition of Transform
  URIs, both

  
  
> > of which we are currently planning to
use for SecurityTokenReferences.

  
  
> >  

  
  
> >

  
  
> Taking a look at the certificates shipped
with my browser, it's would

  
  
> seem that RSA is dominant, not DSA. And PBE
has long been a

  
  
> feature of the
landscape.

  
  
> 

  
  
> I guess I'd prefer to see RSA with SHA-1 required
and RSA with MD5

  
  
> allowed. I don't think making DSA a requirement
is particularly realistic,

  
  
> just some politics.
But generally, I'd rather support extensibility and let

  
  
> the market decide.
Different communities will have different requirements.

  
  
 

  
  
If you are thinking that I am proposing we make
certain public/private key

  
  
signature
algorithms REQUIRED or OPTIONAL or anything like that, they you 

  
  
misunderstood
what I was saying.  It is the "XML Signature Syntax
and 

  
  
Processing" specification (which was ratified as
a standard by both the W3C 

  
  
and
the IETF in February and March of 2002) that has defined implementation 

  
  
of
DSA with SHA-1 as REQUIRED, and RSA with SHA-1 as optional.  These are 

  
  
the
only two signature algorithms that have URI identifiers defined for 

  
  
them
in that specification.  However, the spec does state
that other 

  
  
algorithms
CAN be used.  Therefore, since WS-Security is based
on the XML 

  
  
Signature spec, we cannot change the algorithm
URI identifiers, but we can 

  
  
certainly
create new identifiers for other algorithms.  Then,
if we go this

  
  
route,
we could claim that these algorithms MUST be supported to be being 

  
  
compliant
with our Username Token Profile.  

  
  
 

  
  
Of course, DSA and RSA are both public/private
key signature algorithms, 

  
  
which
won't work with any Password Based Encryption scheme I know of ... 

  
  
typically,
PBE schemes are based on generating a symmetric key (like a 

  
  
triple-DES
key, for instance) from a password.

  
  
 

  

  

  

I meant to imply that RSA not DSA is the norm. 

  

  

  
 

  
  
> 

  
  
> > I actually have no problem with your
idea of keeping the existing

  
  
> > Username token profile (using nonce,
creation timestame, digests, etc.),

  
  
> > and perhaps adding a second Username
profile which would provide the

  
  
> > binding with the message.  This was, in fact, where my thinking was

  
  
> > headed, as well.

  
  
> >  

  
  
> >

  
  
> I'd prefer to keep this all in one document
rather than grow more and

  
  
> more variations.
And for me, adding a biometric template as an optional

  
  
> parameter to a
user name and password is merely a wrinkle to the

  
  
> current work, not
something that's worthy of a separate document.

  
  
 

  
  
I appologize for not having followed the biometric work
closely. I guess

  
  
I don't quite understand what a "biometric template"
is, nor what the 

  
  
ramifications
of including it in a Username token are, so I probably

  
  
should
not comment on it.  However, I'm stupid enough to try, 
anyway, so

  
  
please
be gentle on me if I'm WAY off base.

  
  
 

  
  
So, my guess is that a biometric template would
manifest itself as some 

  
  
string
of bytes (probably Base64 encoded) that would be interpretted
as 

  
  
a
retina scan, finger print, or such by the receiver of them.  I see two 

  
  
options
for including this data.

  

A template contains biometric data, which as you suggest is a string of

octets. A template carries this data along with optional information 

about or related to the data. This may include a time stamp, the type

of biometric, the quality of the data, etc. This collection of information

is a BiometricObject in XCBF, and a value of this type may look like:

<BiometricObject>

   <biometricHeader>

      <version> 0 </version>

      <recordType> <id> 4 </id> </recordType>

      <dataType> <processed/> </dataType>

      <purpose> <audit/> </purpose>

      <quality> -1 </quality>

      <validityPeriod>

         <notBefore> 1980.10.4 </notBefore>

         <notAfter> 2003.10.3.23.59.59 </notAfter>

      </validityPeriod>

      <format>

         <formatOwner>

            <oid> 2.23.42.9.10.4.2 </oid>

         </formatOwner>

      </format>

   </biometricHeader>

   <biometricData> 0A0B0C0D </biometricData>

</BiometricObject>

In practice, biometric objects always appear in sets that may be signed

or encrypted or both. And the unit of transfer in XCBF involves sets of

these sets. 

Transfer may occur as a binary encoding of these XML markup values

that have been Base64 armored, or they may occur as XML markup as

shown here.

The certificates used, the names of cryptographic keys, the algorithms and

parameters and the like are encapsulated in the biometric token and it is

treated for the purposes of WSS as an opaque object, just like we would

treat an X.509 certificate - it is to WSS a "foreign" object.

  

  

  
  
 

  
  
(1) If you merely propose to add that as an additional
piece of evidence 

  
  
    along
with a password (or equivalent), then I don't see much of a 

  
  
    problem
with that. We could certainly create another optional element

  
  
    (say,
<wsse:BiometricTemplate>) under the <wsse:UsernameToken> 

  
  
    element,
to hold this data.  

  

Exactly. 

  

  
We might also define a "BiometricType"
  

  
  
    attribute
for it and define a couple of URIs to represent
the 

  
  
    standard
biometrics, whatever those are. (Of course, leaving it open

  
  
    as
an extensibility point for new, yet undefined, biometrics.) This 

  
  
    attribute
would give processors the needed information on how to 

  
  
    "match"
against the data. If we don't do that, then a client might 

  
  
    send
a retina scan to a service that tries to match it against a 

  
  
    fingerprint,
right?

  

This is all a part of the template information carried as a BiometricObject.
 In 

XCBF the biometric type is called a record type and the <format> field
can

carry an indication of the processing algorithm and matching rules (and device

identifier and other information bound to the biometric by a signature) needed

by a Biometric Service Provider who will make use of the biometric data.

  

  
 

  

  
  
  
(2) Another alternative would be to use the biometric
template INSTEAD 

  
  
    of a password. If we took this route, then I would
recommend we 

  

Biometric are used in this way in some environments. But in our

networked situation, they are really only appropriate for multifactor

use - here, something you are (biometric) coupled with something

you know (password). If the password is bound to a token device,

or perhaps a key that you possess, then something you have is 

added to the mix and you get three factor authentication. But the 

minimum I think that we should allow is two factor.

  

  

  
  
    simply
define a new "Type" for the <wsse:Password>
element (say, 

  
  
    wsse:PasswordBiometric) that means the data
held in the <wsse:Password> 

  
  
    element
is a biometric, and that the receiver needs to "match" it 

  
  
    against
a known biometric for the user named in the <wsse:Username>
  

  
  
    element.
(We would still have to deal with the different types of 

  
  
    biometrics,
though.) As for "matching" of biometric data, I suspect 

  
  
    (big
guess here) that the bytes do not need to be IDENTICAL, but 

  
  
    rather
each kind of biometric has some "matching" algorithm that 

  
  
    produces
a "close enough" sort of response. (Is this right?) If that 

  

This is true for most but not all biometric types. 

  

  
    is
true, then two things come to mind. First, we could not use the 

  
  
    digest
mechanism to avoid sending the biometric in the clear like we 

  
  
    do
with passwords, since that depends on both the sender and the 

  
  
    receiver
having IDENTICAL bytes to start with.  Second, for
the same 

  
  
    reason,
a PBE scheme could not be used. This is fine, it just means 

  
  
    that
we need to clearly point these things out in the Security 

  
  
    Considerations or Threat
Model sections, if one chooses to use that 

  
  
    Type.

  

All of the required cryptographic protection is handled within the XCBF blob,

much the same as X.509 certificates are self contained. This blob would be

given to a Biometric Service Provider who would perform all necessary 

cryptographic and biometric processing. In this sense then, the details can

be isolated from WSS proper, much as the details of PKI can be isolated

for our purposes.

  

  

  
  
 

  
  
> > I do think, however, that we need to
point out the security issues in

  
  
> > the Threat Model, and at least state
that secure transports can

  
  
> > alleviate these concerns.  (But, then again, if you are using a secure

  
  
> > transport, why bother doing anything
more than sending the password in

  
  
> > clear text?)

  
  
> >  

  
  
> >

  
  
> In a simple case this might be fine. But I
can see a case for sending an

  
  
> encrypted password
to a recipient who forwarded the value on to a

  
  
> trusted authority
that determined whether or not it was valid. A merchant

  
  
> - bank - customer transaction might need to
do that, or a mobile provider

  
  
> hooking up a customer to a merchant and bank
could lead to this sort of

  
  
> case.

  
  
 

  
  
Yes, I can see that.  The idea of a trust-broker.  Not
direct trust

  
  
between
the sender and receiver, but use of an agreed upon third party.

  
  
 

  

Yes. Now another case that I would wish to pursue down the road would

involve the ability to do a remote biometric match-on-card. But there is
no

standard at this time that I am aware of that covers this case. So this is
very

much in some future - not relevant today.

  
  
  
> But my biggest concern right now is process.
How do we move the

  
  
> Username document forward without excessive
delay or impacting the

  
  
> Core work? Seems to me we need a SC to go
off and do the work

  
  
> on this document,
then bring it back and try to sell the result to WSS

  
  
> proper.

  
  
 

  
  
Yes, I wonder the same thing w.r.t. *all* of the token profile docs.

  
  
I think Phil mentioned that nobody had given him
comments on his XrML,

  
  
X.509 docs, either.  Perhaps 
sub-committees is the way to go.

  
  
 

  

The SC approach was used most effectively in the UBL TC. It makes

it possible to bring together resources where there is common interest

and to insulate the larger group from the details of a narrow, well defined

piece of work. The SC can discuss and refine issues among themselves 

then report suggested resolutions back to the TC for actual approval.

Phil

  
  
  
> 

  
  
> Phil

  
  
> 

  
  
> 

  
  
> Thanks, again,

  
  
> 

  
  
> - Gene -

  
  
> 

  
  
> 

  
  
> 

  
  
> 

  
  
> ----------------------------------------------------------------

  
  
> To subscribe or unsubscribe from this elist use the subscription

  
  
> manager: <http://lists.oasis-open.org/ob/adm.pl>

  
  
>