<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc compact="yes" ?>
<?rfc sortrefs="no" ?>
<rfc  category="std" ipr="full2026" docName="draft-jennings-sipping-certs-02" >
<front>
    <title abbrev="Cert Discovery">Certificate Discovery for SIP</title>
    <author initials="C." surname="Jennings" fullname="Cullen Jennings">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
	  <street>170 West Tasman Drive</street>
	  <street>MS: SJC-21/2</street>
	  <city>San Jose</city>
	  <region>CA</region>
	  <code>95134</code>
	  <country>USA</country>
        </postal>
        <phone>+1 408 902-3341</phone>
        <email>fluffy@cisco.com</email>
      </address>
    </author>
    <date month="February" day="14" year="2004"/>
    <area>Transport</area>
    <workgroup>Sipping</workgroup>
    <keyword>I-D</keyword>
    <keyword>Internet-Draft</keyword>
    <keyword>SIP</keyword>
    <keyword>certificate</keyword>
    <keyword>S/MIME</keyword>
    <keyword>public key</keyword>
    <abstract>
      <t>
        This draft describes a scheme in which a SIP user agent can create self
        signed certificate for use with the SIP S/MIME mechanism and can store
        the certificate on a web server associated with the address of record
        (AOR) for the user. Other user agents that want to call that AOR can
        retrieve these certificates from the web server. </t>
      <t>
        The result of this system is that, with no extra expense or effort for
        the end user, it is possible to have a reasonable degree of confidence
        about the identities of the parties in a SIP session. </t>
    </abstract>
</front>
<middle>
<section title= "Introduction" >
<t>
  SIP <xref target="RFC3261">RFC 3261</xref> defines an S/MIME based PKI
  mechanism for achieving end to end security. Among other things, it allows
  users to be confident that the party they are communicating with is likely the
  person they want. Like all PKI based schemes, distribution of the public keys
  is a hard problem. Failure to have a good and widely supported scheme for
  distributing public keys will result in users not using the S/MIME
  capabilities of SIP. Not knowing the identities of the other parties in a SIP
  session greatly reduces the usefulness of encrypted media such as SRTP.</t>
<t>
  This document describes an approach to using and combining existing schemes to
  build a trustworthy way of distributing certificates for SIP. An example use
  case makes this easier to understand. Say Alice meets Bob at a party and Bob
  says "Call me some time. Here is my AOR." Then Bob writes bob@example.com on
  the back of a napkin and hands it to Alice. Later Alice makes a call to
  bob@example.com but she wants to be sure that she really is talking to the
  person who owns the AOR bob@example.com. This document refers to Alice as the
  Caller, Bob as the Subscriber, and example.com as the Service.  </t>
<t>
  The overall approach is fairly simple and is illustrated in the figure
  below. The "store" element in the network is an HTTP web server that is run by
  the same administrative domain as the proxy. </t>
<figure><artwork>
        +---------+            +---------+       
    +---+ Store A +---       --| Store B +--+  
    |   +---------+   \     /  +---------+  |  
    |                  \   /                |    
  0 |                   \ /                 |   
    |  2 +-------+ 3     X    +-------+     |0 
    | +--+Proxy A+------/-\---|Proxy B+-+   |  
    | |  +-------+     /   \  +-------+ |4  |  
    | |               /     \           |   |  
   +------+          /       \        +------+ 
   | UA A |---------/         \-------+ UA B | 
   +------+   1                  5    +------+ 
</artwork></figure>
<t>
  The goal is for UA A to sign and encrypt a message to UA B using securely
  acquired self signed certificates. Both sides save their public certificates
  in a
  well known store associated with their domain and get the other's certificate
  from the other domain's store. There are several steps. </t>
<list style= "symbols">
  <t>
    Step 0: At some point in time, both the UA generate a self signed
    certificate and store it in the the Store for their domain. This is done
    with a PUT over HTTPS that is digest challenged with the same credentials
    that are used to register with the proxy in the domain. </t>
  <t>
    Step 1: UA A fetches the certificate for UA B from Store B. This is done
    using a GET over HTTPS. </t>
  <t>
    Step 2,3,4: UA A uses its certificate to sign and UA B's certificate to
    encrypt and sends a message across the proxies in steps 2,3,and 4 to UA
    B. This is done using the normal SIP S/MIME bodies. </t>
  <t>
    Step 5: UA B needs to get UA A's certificate to check the signature. It
    gets this from Store A using a HTTPS GET. UA B can now decrypt the message
    and check the signature. </t>
</list>
<t>
  When one of the UA gets a certificate from a Store, the UA must check that the
  domain name in the AOR in the certificate matches the domain of the Store it
  is getting the result from. The UA knows this from the certificate presented
  in the TLS handshake. This one little part makes this scheme significantly
  different from a typical self signed certificate system. In a classical
  systems, such as SSH, the first time a certificate is received, there is no
  automatic way to validate it so the systems must make a "leap of faith" or
  provide manual out of bound validation which users are typically unwilling to
  do. This system does not require the leap of faith because the certificate in
  the TLS session with the store validates that the UA is getting the
  certificate for UA B from a trustworthy source. 
</t>
<t>
  The scheme described in this document meets the goal of allowing Alice
  to be confident she is communicating with the person with the AOR
  bob@example.com. It also has the following very desirable properties: 
  <list style= "symbols" >
    <t>
      Trivial to use, requiring no extra effort from the part of the
      Caller or Subscriber. </t>
    <t>
      Free in that it does not require any extra expense to the Caller or
      Subscriber. </t>
    <t>
      No requirement for a third party to know the Subscriber's private
      key. </t>
    <t>
      Allows the Subscriber to have more than one communication device
      associated with a single AOR.</t>
    <t>
      Does not require the Service to deploy additional equipment with strict
      security requirements beyond what they are already running. </t>
  </list>
</t>
<t>
  None of the problems or ideas presented in this document are new. This
  presents work going on in the PKIX, SACRED, and SIP working groups in a SIP
  context and describes an approach to putting the parts together for SIP. </t>
</section>
<section title= "Conventions" >
  <t>
    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
    document are to be interpreted as described in <xref target="RFC2119">RFC
    2119</xref>. </t>
  <t>
    The term Subscriber refers to an end user that receives calls and has an
    AOR in a domain that is managed by the Service. The Service provides the SIP
    proxy and certificate Store. The term Caller refers to the UA that is trying
    to call the Subscriber. The Caller is often not in the same administrative
    domain as the Subscriber and therefore has no pre-existing relationship with the
    Service. </t>
</section>
<section title= "Overview" >
  <t>
    The approach is broken down into Enrollment, Location, and Retrieval
    phases. The general architecture is that the Service not only provides a SIP
    registrar service for the Subscriber but also provides certificate
    storage. In the Enrollment phase, the Subscriber puts their public
    certificate somewhere that others can find it. In the Locating phase, the
    Caller discovers where the person they are calling has stored their
    certificates. Finally in the Retrieval phase, the Caller gets a copy of the
    Subscriber's certificates. To meet the goal of being free, the certificates
    are assumed to be self signed. </t>
</section>
<section title= "Location and Retrieval" >
<t>
  The goal of this stage is to allow the Caller to locate where the
  Subscriber stores their certificates. The only thing the Caller has is
  an AOR such as bob@example.com. The obvious solution is to use the host
  portion of the AOR to find a directory to look up the user portion.  </t>

<section title= "Location with HTTP">
<t>
The mechanism for location using HTTP is described in <xref target =
"I-D.ietf-pkix-certstore-http" >draft-ietf-pkix-certstore-http</xref>. The
approach first does a SRV lookup and if that fails, it tries a well known host
formed from the AOR directly. For the AOR bob@example.com, first an SRV lookup
of _certificates._tcp.example.com would be done. If this was successful and
returned an address of a.example.com and a port of 7000 then the URL would
be: </t>
<figure><artwork>
https://a.example.com:7000/search-cgi?email=bob%40example.com 
</artwork></figure>
<t>
  If the SRV lookup was not successful, then the URL would be formed by
  adding the host name "certificates" to the domain. In this case the URL
  would be: </t>
<figure><artwork>
https://certificates.example.com/search-cgi?email=bob%40example.com
</artwork></figure>
</section>

<section title= "Location with SIP">
<t>
An alternative scheme to locate the certificates could be based on SIP. The
Caller would send an OPTIONS message to the Subscriber proxy. The reply to this
would contain a content indirection body <xref target =
"I-D.ietf-sip-content-indirect-mech" /> or message/external type as defined in
<xref target = "RFC2017">RFC 2017</xref> that references a MIME type of
application/pkix-cert that could be retrieved using an https URL. The Caller
would include a similar content indirection body pointing to their certificate
in the messages sent to the Subscriber. This would avoid the need to have some
well known URL for locating certificates, and each administrative domain could set
up the certificates' locations as it wished.  </t>
</section>

<section title= "Retrieval with HTTP" >
<t>
  Once a URL for the certificate is known, the Caller needs to get it. There are
  several potential protocols that could work for this: HTTP, LDAP, FTP, SNMP,
  ACAP, and others. The existing tools for making HTTP scale and be reliable,
  the tools for managing attacks on servers, and the existing support for
  hardware acceleration of HTTPS make this a good choice from the server point
  of view. The ease of working through NATs and firewalls along with the fact
  that most SIP UAs need to implement HTTP for other reasons make it a good
  match on the client end. The MIME types in HTTP are useful for dealing
  with the various types of certificates.  These points led to the selection of
  HTTPS as defined in <xref target = "I-D.ietf-pkix-certstore-http"
  >draft-ietf-pkix-certstore-http</xref> as a mechanism for getting the
  certificates. Getting the certificate with HTTP is defined in <xref target =
  "RFC2585">RFC 2585</xref> and will be in a MIME type of application/pkix-cert
  and contain a DER encoded X509 certificate./</t>
<t>
  Since the certificates may be self signed, the Caller needs to be sure that
  they were not tampered with and that they came from the Service that was
  authorized to provide them. This means that the Caller MUST use HTTPS to get
  the certificate and the Service MUST present a certificate in the TLS
  handshake that has a domain name in the SubjectAltName field that matches the
  domain name in the AOR in the SubjectAltName in the retrieved certificate. In
  this example the original is example.com, not the result of any SRV
  lookup. The names are considered to match if the SubjectAltName matches the
  host portion of the AOR using a case insensitive comparison. Sub-domains do
  not match. IP addresses do not match host names. </t>
</section>
<section title= "Multiple UAS for a Single AOR">
<t>
  It is possible to retrieve a list of several certificates for the same AOR
  when there are several different UA that may receive messages for this AOR. In
  this case the UA sending the messages needs to use every valid certificate it
  received for the public key operations. A certificate Store SHOULD not provide
  certificates that have become invalid. </t>
</section>

<section title = "Steps to Locate and Retrieve a Certificate" >
</section>
<t>
Both the Caller and Subscriber UA need to retrieve the other's certificate from
the appropriate Store. This is done with the following steps: </t>
<list style= "symbols">
<t>
Determine the AOR of the certificate that is needed - for example, alice@example.com. </t>
<t>
Do a DNS SRV lookup for the service _certificates with a protocol of _tcp in the
domain of the AOR. (In this example this would result in a DNS SRV query in the
domain example.com). If this is found, form a URL using the hostname and port
returned. If not, form the URL by using the default port for HTTPS
and a hostname of certificates prepended to the the domain from the AOR. (In
this example this would result in a hostname of certificates.example.com) </t>
<t>
Use the host and port found in the previous step to form a URL of the form
"https:://host:port/serach-cgi?email=aor" where the "aor" is replaced with an
appropriately escaped version of the AOR. For this example, this would become
"https://certificates.example.com/search-cgi?email=alice%40example.com"</t>
<t>
Open a TLS connection to this URL. TLS extended hellos to indicate the requested
domain SHOULD be used. The server MUST return a certificate with a
SubjectAltName that matches the domain portion of the original AOR (example.com
in this example). The UA MUST check this matches and if it does not, it must
close the connection and not proceed. </t>
<t>
The UA then performs an HTTP GET on the URL. The Store returns the one or more
bodies or an error if it has no certificates for this Subscriber. Each
certificate is in an DER encoded X509 certificate and is in a body of type
application/pkix-cert. A transfer encoding of binary is used. </t>
<t>
The UA MUST check that all the SubjectAltNames in all the certificates have a
user and host portion that matches the original AOR. Schemes other than SIP are
acceptable. In this example, a SubjectAltName that contained two URIs,
"im:alice@example.com" and "sip:alice@example.com" would be acceptable. Any
certificates that do not match MUST be discarded.</t>
<t>
The UA MUST check the expiry dates on the certificates. Any expired certificates
MUST be discarded. </t>
</list>
<t>
The UA now has a usable list of certificates for the AOR. If the UA is using
them to decrypt, it uses the serial number and issuer to find the certificate it
needs to decrypt the information. If it is using the certificates to encrypt
some information, it must encrypt the CEK with each of the certificates so that
the a UA in possession of the private key from any one of the certificates can
decrypt the material. </t>
</section>

<section title= "Enrollment" >
  <t>
    The Subscriber must be able to authenticate to the Service and must be able
    to transfer the certificate in an integrity protected way to the Service. In
    SIP, the Service and the Subscriber already have a shared secret that is
    used for authentication during SIP registration; or the Service knows the
    certificate of the Subscriber by some out of band mechanism. This shared
    secret can be leveraged for enrollment of the Subscriber's public
    certificates. </t>
  <t>
    The Subscriber would transfer acertificate to the Service using an
    HTTPS PUT with the same URL that would be used to get their
    certificate. This MUST happen over HTTPS so the transfer is integrity
    protected. The client MUST also check that the server's certificate name
    matches the name of the Subscriber's AOR. This matching follows the same
    rules as matching in retrieval of certificates. The client MUST authenticate
    to the server using DIGEST authentication with some shared secret. The same
    shared secret that is used for SIP registration SHOULD be used. This allows
    any Subscriber to generate a self signed certificate and store it at the
    Service. Note that authorization with TLS mutual authentication is not
    considered because in that case the Service already has the Subscriber's
    Certificate and there is no need to transfer it. </t>
  <t>
    There is an additional problem of how to allow a user that has several
    communication clients to associate them all with the same AOR and still get
    the certificates to work. There are at least two approaches to this
    problem. One would be to upload a different certificate for each UA
    associated with the AOR and just let the Caller use all of them. This is the
    approach that is chosen here. The other approach would be to use the work
    from the SACRED working group<xref target="I-D.ietf-sacred-framework"/>
    which is solving the problem of security getting the same credential on all
    the clients. </t>
  <t>
    In the chosen approach of using many certificates for a single AOR, the
    Caller would first get all the certificates from the Service. It would then
    send an INVITE to the Subscriber and sign it with its own certificate and
    encrypt the SDP (or whatever part of the messages was being encrypted) with
    each of the certificates retrieved. No matter which of the Subscribers UA's
    received the message, that UA would be able to decrypt the information. </t>
  <t>
    The Service MUST provide some other authenticated, out of band mechanism for
    the Subscriber to revoke certificates. A web page accessed over HTTPS with
    digest authentication would work fine for this. A HTTPS DELETE with digest
    could work but there needs to be a way to tell which certificate needs to be
    deleted when the AOR has multiple certificates.  </t>
  <t>
    It is RECOMMENDED that the clients use fairly short-lived certificates
    (in the order of days to months) and enroll a new certificate before the
    old one expires. The Caller MAY cache the certificates that they
    retrieved for an AOR and use them in future calls. This cached result
    MUST expire after some short but configurable amount of time so that
    certificate revocation works. It MUST be possible to configure this time
    to be zero. If the Caller is using cached information and receives a
    certificate in the SIP signaling that is not cached, the Caller MUST
    update the cache and check that the certificate was not recently added
    to the Service. </t>
  <t>
    When a UA registers, it SHOULD retrieve the certificates for its AOR and
    check that this UA's certificate is correctly enrolled. The HTTPS server
    MUST support a profile of TLS_RSA_WITH_AES_128_CBC_SHA as described
    in <xref target="RFC3268">RFC 3268</xref> or a profile of
    TLS_RSA_WITH_3DES_CBC_SHA .</t>

<section title= "Steps to Enroll" >
<t>
The Subscriber UA needs to generate a self signed certificate and save it in the
store. This is performed in the following steps: </t>
<list style= "symbols">
<t>
When the UA starts up, it needs to fetch its own certificate and check that it
matches the certificate stored on the UA. If it does not, it should warn the
user and generate a new certificate. </t>
<t>
The UA should check the expiration and arrange to generate a new certificate
before the old one expires. </t>
<t>
TODO: Describe details of generating a self signed certificate. </t>
<t>
The UA forms a URL in the same way as locating a certificate but using its own
AOR.  </t>
<t>
The UA opens a a TLS connection and verifies the certificate returned in the TLS
the same way as retrieving a certificate.  </t>
<t>
The UA then does a HTTPS PUT of the certificate. The server MUST digest
challenge this request. The UA computes the response to this digest and MAY use
the same username and password as it would use to register with the proxy in
this domain. </t>
<t>
The server must check that, for each URI in the SubjectAltName in the
certificate, the user portion matches the username used in the digest
authentication and the host portion matches the domain used for the TLS
connection. </t>
<t>
When the certificate is close to expiring, the UA should create and store a new
certificate. </t>
</list>
<t>
At this point the UA has successfully stored its certificate in the Store. The
Store may discard any certificates that have expired. </t>
</section>

</section>

<section title= "Delegated Crypto with Content Indirection" >
<t>
If the Subscriber or Caller wishes to use an authentication service to insert
and
verify S/MIME bodies on their behalf, they can do so by using <xref target =
"I-D.ietf-sip-content-indirect-mech"> content indirection </xref> to specify
URLs
for the S/MIME bodies that can be filled in by the authentication service. </t>
<t>
TODO - This needs significantly more detail if it is to be used </t>
</section>

<section title= "Security Considerations" >
  <t>
    This whole document is focused on security and must be considered from a
    security point of view. </t>
  <t>
    It is important to remember that the scheme relies upon the Subscriber
    choosing a Service that does not lie. The Subscriber may wish to use
    contractual obligations to enforce this. </t>
  
  <section title= "Security Analysis" >
    <t>
      This whole scheme is made possible because the Subscriber has a shared
      secret with the Service, the Service has a certificate that is signed by a
      well known certificate authority, and the Caller knows how to find the
      Service for the Subscriber they are calling. </t>
    <t>
      To look at the security of this scheme one must consider the existing SIP
      S/MIME trust model and what the trust relationships are. If Alice tells a
      secret to Bob, Bob can tell anyone. If Bob signs something and sends it to
      Alice, Alice can only believe this signature as much as she believes that
      Bob has securely managed his private key and has not posted it on an IRC
      channel. If Bob tells Alice that his AOR is bob@example.com, that may
      change in the future and someone else may get that AOR. Just because Alice
      manages to get a valid certificate bound to the AOR bob@example.com does
      not mean that Alice is going to talk to the right Bob. This last point is
      important in understanding why the scheme presented here is not
      significantly less secure than the use of S/MIME certificates in SIP that
      are signed by a well known certificate authority. All SIP has is the AOR -
      SIP can check that the name in the certificate matches the AOR but it can
      not check other things that are likely to make the identity unique. If the
      Service example.com gave the AOR bob@example.com to a new Bob, they would
      likely give away the email address bob@example.com to the new Bob as
      well. Furthermore, the certificate authority, after revoking the old
      certificates, would probably give the new Bob a new certificate if the new
      Bob could read email sent to the AOR. Alice would be talking to
      bob@example.com - but the new Bob instead of the old Bob. </t>
    <t>
      The point of this is that you have to trust that the person providing your
      AOR will not give your AOR to someone else. Bob has some ability to choose
      a Service he trusts. He can enforce this contractually with the Service
      and by choosing one worthy of trust. Alice has to trust Bob on many things
      including that he picked a trustworthy party to manage his AOR and that he
      manages his private key appropriately. </t>
    <t>
      If the Subscriber can trust the Service to manage the Subscriber's AOR,
      then the Subscriber can trust the Service not to lie about certificates
      they store for the Subscriber. If the Service wants to subvert Bob's
      communications, they can likely do this by getting a certificate authority
      to give them a certificate masquerading as Bob. The security of this
      scheme relies on the Service not lying about what Bob's public
      certificates are. If you buy this, the rest is fairly simple. </t>
    <t>
      Only Bob's UAs have the shared secret to authenticate to the Service to
      upload a certificate. The UA will not accidentally authenticate to a rogue
      service because the UA checks the certificate the Service presents in
      TLS. The certificate is not tampered with because the HTTPS connection is
      integrity protected. When the Caller retrieves a certificate they know it
      is coming from the correct Service because the Service must have the
      certificate for the domain that represents the host portion of the
      AOR. The Caller knows the certificate was not tampered with in transit
      because the connection is integrity protected. </t>
    <t>
      Certificates can be quickly revoked because the Caller gets the
      certificates on each new call to the Subscriber. This side steps some
      thorny CRL issues. The impact of getting these each time will probably
      make a relevant difference on the load of the Service's servers but does
      not make the scheme unworkable. </t>
    <t>
      The Subscriber's UAs can use short lived self signed certificates. In fact
      UAs could upload a new certificate each time they boot. This would
      eliminate the need for UAs to store the private keys in NVRAM which might
      be a security advantage. </t>
  </section>
  
</section>

    <section title= "Open Issues" >
      <t>
        Is there a need for a SIP response code that indicates that a bad certificate
        was used and that the user should flush this certificate from their cache and
        try again? </t>
      <t>
        It is likely that SIP requires a certificate separate from the one used for email.
        This would require an HTTP get of:
        <list>
          <t>https://a.example.com:7000/search-cgi?sip=bob%40example.com </t>
	</list>
       This is likely needed. </t>
    </section>
   


<section title= "Comparison with Identity" >
<t>
The <xref target="I-D.ietf-sip-identity">ietf-sip-identity</xref> draft is about
allowing the Service to assert the identity of a Subscriber to others. It does
not deal with signing or encrypting messages from one user to another which is
the focus of this draft. It does make the same primary assumption that the
Service is trusted by the Subscriber and that the service is trustworthy enough
to adequately authenticate the Subscribers. </t>
</section>


<section title= "IANA Considerations" >
  <t>
    There are no IANA considerations.  </t>
</section>
<section title= "Conclusion" >
  <t>
    The procedure described in this document is easy and it can happen
    automatically with no extra expense or intervention from the Subscriber or
    Caller. It is easy for the Service to provide and does not require them to
    do much beyond running a normal HTTPS web service suitable for e-commerce
    application. It achieves about as good a job of identifying the participants
    of a call as the SIP S/MIME mechanism is capable of achieving. It does not
    require any modification of existing protocols or the invention of any new
    ones. </t>
  
</section>
<section title= "Acknowledgments" >
  <t>
    Many thanks to Eric Rescorla, Peter Gutmann, Rohan Mahy and Jason Fischl for
    comments.
  </t>
</section>
</middle>
<back>
  <references title="Normative References">
    <reference anchor="RFC3261">
      <front>
	<title>SIP: Session Initiation Protocol</title>
	<author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
	  <organization/>
	</author>
	<author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne">
	  <organization/>
	</author>
	<author initials="G." surname="Camarillo" fullname="G. Camarillo">
	  <organization/>
	</author>
	<author initials="A." surname="Johnston" fullname="A. Johnston">
	  <organization/>
	</author>
	<author initials="J." surname="Peterson" fullname="J. Peterson">
	  <organization/>
	</author>
	<author initials="R." surname="Sparks" fullname="R. Sparks">
	  <organization/>
	</author>
	<author initials="M." surname="Handley" fullname="M. Handley">
	  <organization/>
	</author>
	<author initials="E." surname="Schooler" fullname="E. Schooler">
	  <organization/>
	</author>
	<date month="June" year="2002"/>
      </front>
      <seriesInfo name="RFC" value="3261"/>
      <format type="TXT" octets="647976"
      target="ftp://ftp.isi.edu/in-notes/rfc3261.txt"/>
    </reference>
    <reference anchor="I-D.ietf-pkix-certstore-http">
      <front>
	<title>Internet X.509 Public Key Infrastructure Operational Protocols:
	  Certificate Store Access via HTTP</title>
	<author initials="P" surname="Gutmann" fullname="Peter Gutmann">
	  <organization/>
	</author>
	<date month="March" day="24" year="2003"/>
      </front>
      <seriesInfo name="Internet-Draft"
      value="draft-ietf-pkix-certstore-http-05"/>
    </reference>
    <reference anchor="RFC2119">
      <front>
	<title abbrev="RFC Key Words">Key words for use in RFCs to Indicate
	  Requirement Levels</title>
	<author initials="S." surname="Bradner" fullname="Scott Bradner">
	  <organization>Harvard University</organization>
	  <address>
	    <postal>
	      <street>1350 Mass. Ave.</street>
	      <street>Cambridge</street>
	      <street>MA 02138</street>
	    </postal>
	    <phone>- +1 617 495 3864</phone>
	    <email>-</email>
	  </address>
	</author>
	<date month="March" year="1997"/>
	<area>General</area>
	<keyword>keyword</keyword>
      </front>
      <seriesInfo name="BCP" value="14"/>
      <seriesInfo name="RFC" value="2119"/>
      <format type="TXT" octets="4723"
      target="ftp://ftp.isi.edu/in-notes/rfc2119.txt"/>
      <format type="HTML" octets="15902"
      target="http://xml.resource.org/public/rfc/html/rfc2119.html"/>
      <format type="XML" octets="5647"
      target="http://xml.resource.org/public/rfc/xml/rfc2119.xml"/>
    </reference>

    <reference anchor="RFC3268">
      <front>
	<title>Advanced Encryption Standard (AES) Ciphersuites for Transport
	  Layer Security (TLS)</title>
	<author initials="P." surname="Chown" fullname="P. Chown">
	  <organization/>
	</author>
	<date month="June" year="2002"/>
      </front>
      <seriesInfo name="RFC" value="3268"/>
      <format type="TXT" octets="13530"
      target="ftp://ftp.isi.edu/in-notes/rfc3268.txt"/>
    </reference>

<reference anchor='RFC2585'>

<front>
<title abbrev='PKIX Operational Protocols: FTP and HTTP'>Internet X.509 Public
  Key Infrastructure Operational Protocols: FTP and HTTP</title>
<author initials='R.' surname='Housley' fullname='Russell Housley'>
<organization>SPYRUS</organization>
<address>
<postal>
<street>381 Elden Street</street>
<street>Suite 1120</street>
<street>Suite 1120</street>
<city>Herndon</city>
<region>VA</region>
<code>20170</code>
<country>US</country></postal>
<email>housley@spyrus.com</email></address></author>
<author initials='P.' surname='Hoffman' fullname='Paul Hoffman'>
<organization>Internet Mail Consortium</organization>
<address>
<postal>
<street>127 Segre Place</street>
<city>Santa Cruz</city>
<region>CA</region>
<code>95060</code>
<country>US</country></postal>
<email>phoffman@imc.org</email></address></author>
<date month='May' year='1999' />
<abstract>
<t>The protocol conventions described in this document
satisfy some of
the operational requirements of the Internet Public Key
Infrastructure (PKI).
This document specifies the conventions for
using the File Transfer Protocol (FTP) and the Hypertext Transfer
Protocol (HTTP) to obtain certificates and certificate revocation
lists (CRLs) from PKI repositories.
Additional mechanisms addressing
PKIX operational requirements are specified in separate
documents.</t></abstract></front>

<seriesInfo name='RFC' value='2585' />
</reference>



  </references>
  <references title="Informational References">


<reference anchor='I-D.ietf-sip-content-indirect-mech'>
<front>
<title>A Mechanism for Content Indirection in Session Initiation Protocol (SIP)
  Messages</title>

<author initials='S' surname='Olson' fullname='Sean Olson'>
    <organization />
</author>

<date month='June' day='3' year='2003' />
</front>

<seriesInfo name='Internet-Draft'
            value='draft-ietf-sip-content-indirect-mech-03' /> <format
            type='TXT' target =
'http://www.ietf.org/internet-drafts/draft-ietf-sip-content-indirect-mech-03.txt'
            />
</reference>


<reference anchor='I-D.ietf-sip-identity'>
<front>
<title>Enhancements for Authenticated Identity Management in the Session
  Initiation Protocol (SIP)</title>

<author initials='J' surname='Peterson' fullname='Jon Peterson'>
    <organization />
</author>

<date month='August' day='2' year='2003' />
</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-sip-identity-01' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-sip-identity-01.txt'
        />
</reference>


<reference anchor='I-D.ietf-sacred-framework'>
<front>
<title>Securely Available Credentials - Credential Server Framework</title>

<author initials='D' surname='Gustafson' fullname='Dale  Gustafson'>
    <organization />
</author>

<author initials='M' surname='Just' fullname='Mike Just'>
    <organization />
</author>

<author initials='M' surname='Nystrom' fullname='Magnus Nystrom'>
    <organization />
</author>

<date month='November' day='24' year='2003' />
</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-sacred-framework-07' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-sacred-framework-07.txt'
        />
</reference>


<reference anchor='RFC2017'>

<front>
<title abbrev='URL Access-Type'>Definition of the URL MIME External-Body
  Access-Type</title>
<author initials='N.' surname='Freed' fullname='Ned Freed'>
<organization>Innosoft International, Inc.</organization>
<address>
<postal>
<street>1050 East Garvey Avenue South</street>
<street>West Covina</street>
<street>CA 91790</street>
<country>USA</country></postal>
<phone>+1 818 919 3600</phone>
<facsimile>+1 818 919 3614</facsimile>
<email>ned@innosoft.com</email></address></author>
<author initials='K.' surname='Moore' fullname='Keith Moore'>
<organization>Computer Science Dept.</organization>
<address>
<postal>
<street>University of Tennessee</street>
<street>107 Ayres Hall</street>
<street>Knoxville</street>
<street>TN 37996-1301</street>
<country>USA</country></postal>
<email>moore@cs.utk.edu</email></address></author>
<date month='October' year='1996' />
<area>Applications</area>
<keyword>multipurpose internet mail extensions</keyword>
<keyword>MIME</keyword>
<keyword>uniform resource</keyword></front>

<seriesInfo name='RFC' value='2017' />
<format type='HTML' octets='20691'
        target='http://xml.resource.org/public/rfc/html/rfc2017.html' />
<format type='XML' octets='9177'
        target='http://xml.resource.org/public/rfc/xml/rfc2017.xml' />
</reference>


  </references>
</back>
</rfc>

