documented update
[gnutls.git] / doc / protocol / draft-housley-tls-authz-extns-07.txt
blob884906c7a8c9392aaf3eef185434d46438779600
5 Internet-Draft                                                  M. Brown
6 Updates: 4346 (once approved)                          RedPhone Security
7 June 2006                                                     R. Housley
8 Expires: December 2006                                    Vigil Security
10         Transport Layer Security (TLS) Authorization Extensions
11                  <draft-housley-tls-authz-extns-07.txt>
14 Status of this Memo
16    By submitting this Internet-Draft, each author represents that any
17    applicable patent or other IPR claims of which he or she is aware
18    have been or will be disclosed, and any of which he or she becomes
19    aware will be disclosed, in accordance with Section 6 of BCP 79.
21    Internet-Drafts are working documents of the Internet Engineering
22    Task Force (IETF), its areas, and its working groups.  Note that
23    other groups may also distribute working documents as Internet-
24    Drafts.
26    Internet-Drafts are draft documents valid for a maximum of six months
27    and may be updated, replaced, or obsoleted by other documents at any
28    time.  It is inappropriate to use Internet-Drafts as reference
29    material or to cite them other than as "work in progress."
31    The list of current Internet-Drafts can be accessed at
32    http://www.ietf.org/ietf/1id-abstracts.txt.
34    The list of Internet-Draft Shadow Directories can be accessed at
35    http://www.ietf.org/shadow.html.
37 Copyright Notice
39    Copyright (C) The Internet Society (2006).  All Rights Reserved.
41 Abstract
43    This document specifies authorization extensions to the Transport
44    Layer Security (TLS) Handshake Protocol.  Extensions carried in the
45    client and server hello messages to confirm that both parties support
46    the desired authorization data types.  Then, if supported by both the
47    client and the server, authorization information is exchanged in the
48    supplemental data handshake message.
56 Brown & Housley                                                 [Page 1]
58 Internet-Draft                                                 June 2006
61 1. Introduction
63    Transport Layer Security (TLS) protocol [TLS1.0][TLS1.1] is being
64    used in an increasing variety of operational environments, including
65    ones that were not envisioned at the time of the original design for
66    TLS.  The extensions introduced in this document are designed to
67    enable TLS to operate in environments where authorization information
68    needs to be exchanged between the client and the server before any
69    protected data is exchanged.
71    The use of these TLS authorization extensions is especially
72    attractive when more than one application protocol can make use of
73    the same authorization information.  Straightforward binding of
74    identification, authentication, and authorization information is
75    possible when all of these are handled within TLS.  If each
76    application requires unique authorization information, then it might
77    best be carried within the TLS-protected application protocol.
78    However, care must be taken to ensure appropriate bindings when
79    identification, authentication, and authorization information are
80    handled at different protocol layers.
82    This document describes authorization extensions for the TLS
83    Handshake Protocol in both TLS 1.0 and TLS 1.1.  These extensions
84    observe the conventions defined for TLS Extensions [TLSEXT] that make
85    use of the general extension mechanisms for the client hello message
86    and the server hello message.  The extensions described in this
87    document confirm that both the client and the server support the
88    desired authorization data types.  Then, if supported, authorization
89    information is exchanged in the supplemental data handshake message
90    [TLSSUPP].
92    The authorization extensions may be used in conjunction with TLS 1.0
93    and TLS 1.1.  The extensions are designed to be backwards compatible,
94    meaning that the Handshake Protocol Supplemental Data messages will
95    only contain authorization information of a particular type if the
96    client indicates support for them in the client hello message and the
97    server indicates support for them in the server hello message.
99    Clients typically know the context of the TLS session that is being
100    setup, thus the client can use the authorization extensions when they
101    are needed.  Servers must accept extended client hello messages, even
102    if the server does not "understand" the all of the listed extensions.
103    However, the server will not indicate support for these "not
104    understood" extensions.  Then, clients may reject communications with
105    servers that do not support the authorization extensions.
112 Brown & Housley                                                 [Page 2]
114 Internet-Draft                                                 June 2006
117 1.1. Conventions
119    The syntax for the authorization messages is defined using the TLS
120    Presentation Language, which is specified in Section 4 of [TLS1.0].
122    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
123    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
124    document are to be interpreted as described in RFC 2119 [STDWORDS].
126 1.2. Overview
128    Figure 1 illustrates the placement of the authorization extensions
129    and supplemental data messages in the full TLS handshake.
132     Client                                                   Server
134     ClientHello (w/ extensions) -------->
136                                         ServerHello (w/ extensions)
137                                                   SupplementalData*
138                                                        Certificate*
139                                                  ServerKeyExchange*
140                                                 CertificateRequest*
141                                 <--------           ServerHelloDone
142     SupplementalData*
143     Certificate*
144     ClientKeyExchange
145     CertificateVerify*
146     [ChangeCipherSpec]
147     Finished                    -------->
148                                                  [ChangeCipherSpec]
149                                 <--------                  Finished
150     Application Data            <------->          Application Data
152      *  Indicates optional or situation-dependent messages that
153         are not always sent.
155      [] Indicates that ChangeCipherSpec is an independent TLS
156         Protocol content type; it is not actually a TLS
157         handshake message.
159         Figure 1. Authorization data exchange in full TLS handshake
162    The ClientHello message includes an indication of the client
163    authorization data formats that are supported and an indication of
164    the server authorization data formats that are supported.  The
168 Brown & Housley                                                 [Page 3]
170 Internet-Draft                                                 June 2006
173    ServerHello message contains similar indications, but any
174    authorization data formats that are not supported by the server are
175    not included.  Both the client and the server MUST indicate support
176    for the authorization data types.  If the list of mutually supported
177    authorization data formats is empty, then the ServerHello message
178    MUST NOT carry the affected extension at all.
180 2. Authorization Extension Types
182    The general extension mechanisms enable clients and servers to
183    negotiate whether to use specific extensions, and how to use specific
184    extensions.  As specified in [TLSEXT], the extension format used in
185    the extended client hello message and extended server hello message
186    is repeated here for convenience:
188       struct {
189          ExtensionType extension_type;
190          opaque extension_data<0..2^16-1>;
191       } Extension;
193    The extension_type identifies a particular extension type, and the
194    extension_data contains information specific to the particular
195    extension type.
197    As specified in [TLSEXT], for all extension types, the extension type
198    MUST NOT appear in the extended server hello message unless the same
199    extension type appeared in the corresponding client hello message.
200    Clients MUST abort the handshake if they receive an extension type in
201    the extended server hello message that they did not request in the
202    associated extended client hello message.
204    When multiple extensions of different types are present in the
205    extended client hello message or the extended server hello message,
206    the extensions can appear in any order, but there MUST NOT be more
207    than one extension of the same type.
209    This document specifies the use of two new extension types:
210    client_authz and server_authz.  These extension types are described
211    in Section 2.1 and Section 2.2, respectively.  This specification
212    adds two new types to ExtensionType:
214       enum {
215         client_authz(TBD), server_authz(TBD), (65535)
216       } ExtensionType;
218    The authorization extensions are relevant when a session is initiated
219    and any subsequent session resumption.  However, a client that
220    requests resumption of a session does not know whether the server
224 Brown & Housley                                                 [Page 4]
226 Internet-Draft                                                 June 2006
229    will have all of the context necessary to accept this request, and
230    therefore the client SHOULD send an extended client hello message
231    that includes the extension types associated with the authorization
232    extensions.  This way, if the resumption request is denied, then the
233    authorization extensions will be negotiated as normal.
235 2.1. The client_authz Extension Type
237    Clients MUST include the client_authz extension type in the extended
238    client hello message to indicate their desire to send authorization
239    data to the server.  The extension_data field indicates the format of
240    the authorization data that will be sent in the supplemental data
241    handshake message.  The syntax of the client_authz extension_data
242    field is described in Section 2.3.
244    Servers that receive an extended client hello message containing the
245    client_authz extension MUST respond with the same client_authz
246    extension in the extended server hello message if the server is
247    willing to receive authorization data in the indicated format.  Any
248    unacceptable formats must be removed from the list provided by the
249    client.  The client_authz extension MUST be omitted from the extended
250    server hello message if the server is not willing to receive
251    authorization data in any of the indicated formats.
253 2.2. The server_authz Extension Type
255    Clients MUST include the server_authz extension type in the extended
256    client hello message to indicate their desire to receive
257    authorization data from the server.  The extension_data field
258    indicates the format of the authorization data that will be sent in
259    the supplemental data handshake message.  The syntax of the
260    server_authz extension_data field as described in Section 2.3.
262    Servers that receive an extended client hello message containing the
263    server_authz extension MUST respond with the same server_authz
264    extension in the extended server hello message if the server is
265    willing to provide authorization data in the requested format.  Any
266    unacceptable formats must be removed from the list provided by the
267    client.  The server_authz extension MUST be omitted from the extended
268    server hello message if the server is not able to provide
269    authorization data in any of the indicated formats.
280 Brown & Housley                                                 [Page 5]
282 Internet-Draft                                                 June 2006
285 2.3. AuthzDataFormat Type
287    The AuthzDataFormat type is used in both the client_authz and the
288    server_authz extensions.  It indicates the format of the
289    authorization data that will be transferred.  The AuthzDataFormats
290    type definition is:
292       enum {
293          x509_attr_cert(0), saml_assertion(1), x509_attr_cert_url(2),
294          saml_assertion_url(3), (255)
295       } AuthzDataFormat;
297       AuthzDataFormats authz_format_list<1..2^8-1>;
299    When the x509_attr_cert value is present, the authorization data is
300    an X.509 Attribute Certificate (AC) that conforms to the profile in
301    RFC 3281 [ATTRCERT].
303    When the saml_assertion value is present, the authorization data is
304    an assertion composed using the Security Assertion Markup Language
305    (SAML) [SAML1.1][SAML2.0].
307    When the x509_attr_cert_url value is present, the authorization data
308    is an X.509 AC that conforms to the profile in RFC 3281 [ATTRCERT];
309    however, the AC is fetched with the supplied URL.  A one-way hash
310    value is provided to ensure that the intended AC is obtained.
312    When the saml_assertion_url value is present, the authorization data
313    is a SAML Assertion; however, the SAML Assertion is fetched with the
314    supplied URL.  A one-way hash value is provided to ensure that the
315    intended SAML Assertion is obtained.
317 3. Supplemental Data Handshake Message Usage
319    As shown in Figure 1, supplemental data can be exchanges in two
320    places in the handshake protocol.  The client_authz extension
321    determines what authorization data formats are acceptable for
322    transfer from the client to the server, and the server_authz
323    extension determines what authorization data formats are acceptable
324    for transfer from the server to the client.  In both cases, the
325    syntax specified in [TLSSUPP] is used along with the authz_data type
326    defined in this document.
336 Brown & Housley                                                 [Page 6]
338 Internet-Draft                                                 June 2006
341       enum {
342          authz_data(TBD), (65535)
343       } SupplementalDataType;
345       struct {
346          SupplementalDataType supplemental_data_type;
347          select(SupplementalDataType) {
348             case authz_data:  AuthorizationData;
349          }
350       } SupplementalData;
352 3.1. Client Authorization Data
354    The SupplementalData message sent from the client to the server
355    contains authorization data associated with the TLS client.
356    Following the principle of least privilege, the client ought to send
357    the minimal set of authorization information necessary to accomplish
358    the task at hand.  That is, only those authorizations that are
359    expected to be required by the server in order to gain access to the
360    needed server resources ought to be included.  The format of the
361    authorization data depends on the format negotiated in the
362    client_authz hello message extension.  The AuthorizationData
363    structure is described in Section 3.3.
365    In some systems, clients present authorization information to the
366    server, and then the server provides new authorization information.
367    This type of transaction is not supported by SupplementalData
368    messages.  In cases where the client intends to request the TLS
369    server to perform authorization translation or expansion services,
370    such translation services ought to occur within the ApplicationData
371    messages, not within the TLS Handshake protocol.
373 3.2. Server Authorization Data
375    The SupplementalData message sent from the server to the client
376    contains authorization data associated with the TLS server.  This
377    authorization information is expected to include statements about the
378    server's qualifications, reputation, accreditation, and so on.
379    Wherever possible, authorizations that can be misappropriated for
380    fraudulent use ought to be avoided.  The format of the authorization
381    data depends on the format negotiated in the server_authz hello
382    message extensions.  The AuthorizationData structure is described in
383    Section 3.3.
392 Brown & Housley                                                 [Page 7]
394 Internet-Draft                                                 June 2006
397 3.3. AuthorizationData Type
399    The AuthorizationData structure carried authorization information for
400    either the client or the server.  The AuthzDataFormat specified in
401    Section 2.3 for use in the hello extensions is also used in this
402    structure.
404    All of the entries in the authz_data_list MUST employ authorization
405    data formats that were negotiated in the relevant hello message
406    extension.
408       struct{
409          AuthorizationDataEntry authz_data_list<1..2^16-1>;
410       } AuthorizationData;
412       struct {
413          AuthzDataFormat authz_format;
414          select (AuthzDataFormat) {
415             case x509_attr_cert:         X509AttrCert;
416             case saml_assertion:         SAMLAssertion;
417             case x509_attr_cert_url:     URLandHash;
418             case saml_assertion_url:     URLandHash;
419          }
420       } AuthorizationDataEntry;
422       enum {
423          x509_attr_cert(0), saml_assertion(1), x509_attr_cert_url(2),
424          saml_assertion_url(3), (255)
425       } AuthzDataFormat;
427       opaque X509AttrCert<1..2^16-1>;
429       opaque SAMLAssertion<1..2^16-1>;
431       struct {
432          opaque url<1..2^16-1>;
433          HashType hash_type;
434          select (hash_type) {
435             case sha1:   SHA1Hash;
436             case sha256: SHA256Hash;
437          } hash;
438       } URLandHash;
448 Brown & Housley                                                 [Page 8]
450 Internet-Draft                                                 June 2006
453       enum {
454          sha1(0), sha256(1), (255)
455       } HashType;
457       opaque SHA1Hash[20];
459       opaque SHA256Hash[32];
461 3.3.1. X.509 Attribute Certificate
463    When X509AttrCert is used, the field contains an ASN.1 DER-encoded
464    X.509 Attribute Certificate (AC) that follows the profile in RFC 3281
465    [ATTRCERT].  An AC is a structure similar to a public key certificate
466    (PKC) [PKIX1]; the main difference being that the AC contains no
467    public key.  An AC may contain attributes that specify group
468    membership, role, security clearance, or other authorization
469    information associated with the AC holder.
471    When making an authorization decision based on an AC, proper linkage
472    between the AC holder and the public key certificate that is
473    transferred in the TLS Certificate message is needed.  The AC holder
474    field provides this linkage.  The holder field is a SEQUENCE allowing
475    three different (optional) syntaxes: baseCertificateID, entityName
476    and objectDigestInfo.  In the TLS authorization context, the holder
477    field MUST use the either baseCertificateID or entityName.  In the
478    baseCertificateID case, the baseCertificateID field MUST match the
479    issuer and serialNumber fields in the certificate.  In the entityName
480    case, the entityName MUST be the same as the subject field in the
481    certificate or one of the subjectAltName extension values in the
482    certificate.  Note that [PKIX1] mandates that the subjectAltName
483    extension be present if the subject field contains an empty
484    distinguished name.
486 3.3.2. SAML Assertion
488    When SAMLAssertion is used, the field contains an XML-encoded
489    <Assertion> element using the AssertionType complex type as defined
490    in [SAML1.1][SAML2.0].  SAML is an XML-based framework for exchanging
491    security information.  This security information is expressed in the
492    form of assertions about subjects, where a subject is either human or
493    computer with an identity.  In this context, the SAML assertions are
494    most likely to convey authentication or attribute statements to be
495    used as input to authorization policy governing whether subjects are
496    allowed to access certain resources.  Assertions are issued by SAML
497    authorities.
499    When making an authorization decision based on a SAML assertion,
500    proper linkage between the SAML assertion and the public key
504 Brown & Housley                                                 [Page 9]
506 Internet-Draft                                                 June 2006
509    certificate that is transferred in the TLS Certificate message may be
510    needed.  A "Holder of Key" subject confirmation method in the SAML
511    assertion can provide this linkage.  In other scenarios, it may be
512    acceptable to use alternate confirmation methods that do not provide
513    a strong binding, such as a bearer mechanism.  SAML assertion
514    recipients MUST decide which subject confirmation methods are
515    acceptable; such decisions MAY be specific to the SAML assertion
516    contents and the TLS session context.
518    There is no general requirement that the subject of the SAML
519    assertion correspond directly to the subject of the certificate.
520    They may represent the same or different entities.  When they are
521    different, SAML also provides a mechanism by which the certificate
522    subject can be identified separately from the subject in the SAML
523    assertion subject confirmation method.
525    Since the SAML assertion is being provided at a part of the TLS
526    Handshake that is unencrypted, an eavesdropper could replay the same
527    SAML assertion when they establish their own TLS session.  This is
528    especially important when a bearer mechanism is employed, the
529    recipient of the SAML assertion assumes that the sender is an
530    acceptable attesting entity for the SAML assertion.  Some constraints
531    may be included to limit the context where the bearer mechanism will
532    be accepted.  For example, the period of time that the SAML assertion
533    can be short-lived (often minutes), the source address can be
534    constrained, or the destination endpoint can be identified.  Also,
535    bearer assertions are often checked against a cache of SAML assertion
536    unique identifiers that were recently received in order to detect
537    replay.  This is an appropriate countermeasure if the bearer
538    assertion is intended to be used just once.  Section 5 provides a way
539    to protect authorization information when necessary.
541 3.3.3. URL and Hash
543    Since the X.509 AC and SAML assertion can be large, alternatives
544    provide a URL to obtain the ASN.1 DER-encoded X.509 AC or SAML
545    Assertion.  To ensure that the intended object is obtained, a one-way
546    hash value of the object is also included.  Integrity of this one-way
547    hash value is provided by the TLS Finished message.
549    Implementations that support either x509_attr_cert_url or
550    saml_assertion_url MUST support URLs that employ the http scheme.
551    Other schemes may also be supported; however, to avoid circular
552    dependencies, supported schemes SHOULD NOT themselves make use of
553    TLS, such as the https scheme.
555    Implementations that support either x509_attr_cert_url or
556    saml_assertion_url MUST support both SHA-1 [SHA1] and SHA-256 [SHA2]
560 Brown & Housley                                                [Page 10]
562 Internet-Draft                                                 June 2006
565    as one-way hash functions.  Other one-way hash functions may also be
566    supported.  Additional one-way hash functions can be registered in
567    the future using the procedures in section 3.
569 4. IANA Considerations
571    This document defines a two TLS extensions: client_authz(TBD) and
572    server_authz(TBD).  These extension type values are assigned from the
573    TLS Extension Type registry defined in [TLSEXT].
575    This document defines one TLS supplemental data type:
576    authz_data(TBD).  This supplemental data type is assigned from the
577    TLS Supplemental Data Type registry defined in [TLSSUPP].
579    This document establishes a new registry, to be maintained by IANA,
580    for TLS Authorization Data Formats.  The first four entries in the
581    registry are x509_attr_cert(0), saml_assertion(1),
582    x509_attr_cert_url(2), and saml_assertion_url(3).  TLS Authorization
583    Data Format identifiers with values in the inclusive range 0-63
584    (decimal) are assigned via RFC 2434 [IANA] Standards Action.  Values
585    from the inclusive range 64-223 (decimal) are assigned via RFC 2434
586    Specification Required.  Values from the inclusive range 224-255
587    (decimal) are reserved for RFC 2434 Private Use.
589    This document establishes a new registry, to be maintained by IANA,
590    for TLS Hash Types.  The first two entries in the registry are
591    sha1(0) and sha256(1).  TLS Hash Type identifiers with values in the
592    inclusive range 0-158 (decimal) are assigned via RFC 2434 [IANA]
593    Standards Action.  Values from the inclusive range 159-223 (decimal)
594    are assigned via RFC 2434 Specification Required.  Values from the
595    inclusive range 224-255 (decimal) are reserved for RFC 2434 Private
596    Use.
598 5. Security Considerations
600    A TLS server can support more than one application, and each
601    application may include several features, each of which requires
602    separate authorization checks.  This is the reason that more than one
603    piece of authorization information can be provided.
605    A TLS server that requires different authorization information for
606    different applications or different application features may find
607    that a client has provided sufficient authorization information to
608    grant access to a subset of these offerings.  In this situation the
609    TLS Handshake protocol will complete successfully; however, the
610    server must ensure that the client will only be able to use the
611    appropriate applications and application features.  That is, the TLS
612    server must deny access to the applications and application features
616 Brown & Housley                                                [Page 11]
618 Internet-Draft                                                 June 2006
621    for which authorization has not been confirmed.
623    In many cases, the authorization information is itself sensitive.
624    The double handshake technique can be used to provide protection for
625    the authorization information.  Figure 2 illustrates the double
626    handshake, where the initial handshake does not include any
627    authorization extensions, but it does result in protected
628    communications.  Then, a second handshake that includes the
629    authorization information is performed using the protected
630    communications.  In Figure 2, the number on the right side indicates
631    the amount of protection for the TLS message on that line.  A zero
632    (0) indicates that there is no communication protection; a one (1)
633    indicates that protection is provided by the first TLS session; and a
634    two (2) indicates that protection is provided by both TLS sessions.
636    The placement of the SupplementalData message in the TLS Handshake
637    results in the server providing its authorization information before
638    the client is authenticated.  In many situations, servers will not
639    want to provide authorization information until the client is
640    authenticated.  The double handshake illustrated in Figure 2 provides
641    a technique to ensure that the parties are mutually authenticated
642    before either party provides authorization information.
644    The use of bearer SAML assertions allows an eavesdropper or a man-in-
645    the-middle to capture the SAML assertion and try to reuse it in
646    another context.  The constraints discussed in Section 3.3.2 might be
647    effective against an eavesdropper, but they are less likely to be
648    effective against a man-in-the-middle.  Authentication of both
649    parties in the TLS session, which involves the use of client
650    authentication, will prevent an undetected man-in the-middle, and the
651    use of the double handshake illustrated in Figure 2 will prevent the
652    disclosure of the bearer SAML assertion to any party other than the
653    TLS peer.
655 6. Acknowledgement
657    The authors thank Scott Cantor for his assistance with the SAML
658    Assertion portion of the document.
672 Brown & Housley                                                [Page 12]
674 Internet-Draft                                                 June 2006
677     Client                                                   Server
679     ClientHello (no extensions) -------->                            |0
680                                         ServerHello (no extensions)  |0
681                                                        Certificate*  |0
682                                                  ServerKeyExchange*  |0
683                                                 CertificateRequest*  |0
684                                 <--------           ServerHelloDone  |0
685     Certificate*                                                     |0
686     ClientKeyExchange                                                |0
687     CertificateVerify*                                               |0
688     [ChangeCipherSpec]                                               |0
689     Finished                    -------->                            |1
690                                                  [ChangeCipherSpec]  |0
691                                 <--------                  Finished  |1
692     ClientHello (w/ extensions) -------->                            |1
693                                         ServerHello (w/ extensions)  |1
694                                   SupplementalData (w/ authz data)*  |1
695                                                        Certificate*  |1
696                                                  ServerKeyExchange*  |1
697                                                 CertificateRequest*  |1
698                                 <--------           ServerHelloDone  |1
699     SupplementalData (w/ authz data)*                                |1
700     Certificate*                                                     |1
701     ClientKeyExchange                                                |1
702     CertificateVerify*                                               |1
703     [ChangeCipherSpec]                                               |1
704     Finished                    -------->                            |2
705                                                  [ChangeCipherSpec]  |1
706                                 <--------                  Finished  |2
707     Application Data            <------->          Application Data  |2
709          Figure 2. Double Handshake to Protect Authorization Data
712 7. Normative References
714    [ATTRCERT]   Farrell, S., and R. Housley, "An Internet Attribute
715                 Certificate Profile for Authorization", RFC 3281,
716                 April 2002.
718    [IANA]       Narten, T., and H. Alvestrand, "Guidelines for Writing
719                 an IANA Considerations Section in RFCs", RFC 3434,
720                 October 1998.
728 Brown & Housley                                                [Page 13]
730 Internet-Draft                                                 June 2006
733    [PKIX1]      Housley, R., Polk, W., Ford, W. and D. Solo, "Internet
734                 X.509 Public Key Infrastructure Certificate and
735                 Certificate Revocation List (CRL) Profile", RFC 3280,
736                 April 2002.
738    [TLS1.0]     Dierks, T., and C. Allen, "The TLS Protocol, Version 1.0",
739                 RFC 2246, January 1999.
741    [TLS1.1]     Dierks, T., and E. Rescorla, "The Transport Layer Security
742                 (TLS) Protocol, Version 1.1", RFC 4346, February 2006.
744    [TLSEXT]     Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J.,
745                 and T. Wright, "Transport Layer Security (TLS) Extensions",
746                 RFC 3546, June 2003.
748    [TLSSUPP]    Santesson, S., " TLS Handshake Message for Supplemental
749                 Data", work in progress: draft-santesson-tls-supp,
750                 March 2006.
752    [SAML1.1]    OASIS Security Services Technical Committee, "Security
753                 Assertion Markup Language (SAML) Version 1.1
754                 Specification Set", September 2003.
756    [SAML2.0]    OASIS Security Services Technical Committee, "Security
757                 Assertion Markup Language (SAML) Version 2.0
758                 Specification Set", March2005.
760    [SHA1]       National Institute of Standards and Technology (NIST),
761                 FIPS PUB 180-1, Secure Hash Standard, 17 April 1995.
763    [SHA2]       National Institute of Standards and Technology (NIST),
764                 FIPS PUB 180-2: Secure Hash Standard, 1 August 2002.
766    [STDWORDS]   Bradner, S., "Key words for use in RFCs to Indicate
767                 Requirement Levels", BCP 14, RFC 2119, March 1997.
784 Brown & Housley                                                [Page 14]
786 Internet-Draft                                                 June 2006
789 Author's Address
791    Mark Brown
792    RedPhone Security
793    2019 Palace Avenue
794    Saint Paul, MN  55105
795    USA
796    mark <at> redphonesecurity <dot> com
798    Russell Housley
799    Vigil Security, LLC
800    918 Spring Knoll Drive
801    Herndon, VA 20170
802    USA
803    housley <at> vigilsec <dot> com
805 Full Copyright Statement
807    Copyright (C) The Internet Society (2006). This document is subject
808    to the rights, licenses and restrictions contained in BCP 78, and
809    except as set forth therein, the authors retain all their rights.
811    This document and translations of it may be copied and furnished to
812    others, and derivative works that comment on or otherwise explain it
813    or assist in its implementation may be prepared, copied, published
814    and distributed, in whole or in part, without restriction of any
815    kind, provided that the above copyright notice and this paragraph are
816    included on all such copies and derivative works. However, this
817    document itself may not be modified in any way, such as by removing
818    the copyright notice or references to the Internet Society or other
819    Internet organizations, except as needed for the purpose of
820    developing Internet standards in which case the procedures for
821    copyrights defined in the Internet Standards process must be
822    followed, or as required to translate it into languages other than
823    English.
825    This document and the information contained herein are provided on an
826    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
827    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
828    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
829    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
830    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
831    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
840 Brown & Housley                                                [Page 15]
842 Internet-Draft                                                 June 2006
845    The IETF takes no position regarding the validity or scope of any
846    Intellectual Property Rights or other rights that might be claimed to
847    pertain to the implementation or use of the technology described in
848    this document or the extent to which any license under such rights
849    might or might not be available; nor does it represent that it has
850    made any independent effort to identify any such rights.  Information
851    on the procedures with respect to rights in RFC documents can be
852    found in BCP 78 and BCP 79.
854    Copies of IPR disclosures made to the IETF Secretariat and any
855    assurances of licenses to be made available, or the result of an
856    attempt made to obtain a general license or permission for the use of
857    such proprietary rights by implementers or users of this
858    specification can be obtained from the IETF on-line IPR repository at
859    http://www.ietf.org/ipr.
861    The IETF invites any interested party to bring to its attention any
862    copyrights, patents or patent applications, or other proprietary
863    rights that may cover technology that may be required to implement
864    this standard.  Please address the information to the IETF at
865    ietf-ipr@ietf.org.
896 Brown & Housley                                                [Page 16]