view Side-By-Side changes
SIP WG J. Peterson Internet-Draft NeuStar Expires:August 2, 2003 February 2003November 15, 2004 C. Jennings Cisco Systems May 17, 2004 Enhancements for Authenticated Identity Management in the Session Initiation Protocol (SIP)draft-ietf-sip-identity-01draft-ietf-sip-identity-02 Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http:// www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire onAugust 2, 2003.November 15, 2004. Copyright Notice Copyright (C) The Internet Society(2003).(2004). All Rights Reserved. Abstract The existing security mechanismsfor expressing identityin the Session Initiation Protocoloftentimes do not permit an administrative domain to verify securelyare inadequate for cryptographically assuring the identity of theoriginator of a request.end users that originate SIP requests and responses, especially in an interdomain context. This document recommends practices and conventions forauthenticatingidentifying endusers,users in SIP messages, and proposes a way to distribute cryptographically secure authenticatedidentities within SIP messages.identities. Peterson & Jennings ExpiresAugust 2, 2003November 15, 2004 [Page 1] Internet-Draft SIP IdentityFebruary 2003May 2004 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . .53 3.Using an Authentication ServiceBackground . . . . . . . . . . . . . . .5 4. How to Share Verified Identities. . . . . . . . . . . 3 4. Requirements . . . .5 4.1 Body Added by Client. . . . . . . . . . . . . . . . . . . . .7 4.2 Body Added by Authentication Service5 5. Overview of Operations . . . . . . . . . . . . .8 4.3 Using Content Indirection. . . . . . . 6 6. User Agent Behavior: Sending Messages . . . . . . . . . . .8 5. Identity in Responses. 7 7. Authentication Service Behavior . . . . . . . . . . . . . . . 7 7.1 UAs acting as an Authentication service . . . . . . . . . . . 96. Receiving an Authentication Token8. Verifying Identity . . . . . . . . . . . . . .10 6.1 Authentication Service Handling of Authentication Tokens. . .10 7. Selective Sharing of Identity. . . . . 9 9. Proxy Server Behavior . . . . . . . . . . . . . . . . . . . . 107.1 Requesting Privacy10. Header Syntax . . . . . . . . . . . . . . . . . . . . . .11 8.. . 12 11. Security Considerations . . . . . . . . . . . . . . . . . . .11 9.13 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . .13 Author's Address .16 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . .1417 A. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .1417 Normative References . . . . . . . . . . . . . . . . . . . . .1316 Informative References . . . . . . . . . . . . . . . . . . . .1316 B. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . .1417 Full Copyright Statement . . . . . . . . . . . . . . . . . . .1619 Peterson & Jennings ExpiresAugust 2, 2003November 15, 2004 [Page 2] Internet-Draft SIP IdentityFebruary 2003May 2004 1. Introduction This document provides enhancements to the existing mechanisms for authenticated identity management in the Session Initiation Protocol (SIP [1]). An identity, for the purposes of this document, is defined as a canonical SIP address-of-record URI employed to reach a user (such as 'sip:alice@atlanta.com'). RFC3261 enumerates a number of places within a SIP request that a user can express an identity for themselves, notably the user- populated From header field. However, the recipient of a SIP request has no way to verify that the From header field has been populatedappropriately withoutaccurately, in the absence of some sort of cryptographic authentication mechanism.Today,RFC3261 specifies a number of security mechanisms that can beusedemployed by SIP UAs, including Digest, TLS and S/MIME(and implementations(implementations may support other security schemes as well). However, few SIP user agents todaycansupport the end-user certificates necessary to authenticate themselves via TLS or S/MIME, and furthermore Digest authentication is limited by the fact that the originator and destination must share a pre-arranged secret. It is desirable for SIP user agents to be able to send requests to destinations with they have no previous association - just as in the telephone network today, one can receive a call from someone with whom one has no previous association, and still have a reasonable assurance that their displayed Caller-ID is accurate.Many2. Terminology In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in RFC2119 [2] and indicate requirement levels for compliant SIP implementations. 3. Background All RFC3261-compliant SIP user agentstodaysupport a means of authenticating themselves to a SIP registrar - commonly with a shared secret (Digest authentication, which MUST be supported by SIP user agents, is typically used for this purpose). Registration allows a user agent to express that it is the proper entity to which requests should be sent for a particular address-of-record SIP URI. Coincidentally, the address-of-record URI of a SIP user is also the URI with which aSIP UAuser commonly populates the From header of requestsfrom that user- in other words, the address-of-record is an identity. So in thiscontextPeterson & Jennings Expires November 15, 2004 [Page 3] Internet-Draft SIP Identity May 2004 context, users already have a means of providing their identity, which makes good sense: since the contents of a From header field are essentially a 'return address' for SIP requests, being able to prove that you are eligible to receive requests for that 'return address' should be identical to proving that you are authorized to assert this identity. However, the credentials with which a user agent proves their identity to a registrarthat they are, for example, an authorized recipient of requests for 'sip:alice@atlanta.com' will notcannot beacceptedvalidated by a user agent or proxy serverin anotheroutside your local domain - these credentials are currently only useful forPeterson Expires August 2, 2003 [Page 3] Internet-Draft SIP Identity February 2003 localregistration.What other domains really want to know about your identity is that you are capableFor the purposes ofauthenticating yourselfdetermining whether or not the 'return address' of a request can legitimately be asserted as the identity of the user, SIP entities inyourother domains require an assurance that the sender of a message is capable of authenticating themselves to a registrar in their own domain. Ideally, then,thereSIP user agents shouldbehave some way of proving toremote domainsrecipients of SIP messages thatyourtheir local domain has authenticatedyou.them. In the absence ofend- userend-user certificates in user agents, it is possible to implement a mediated authentication architecture for SIP in which requests are sent to a server in the user's local domain which authenticatesthemsuch requests (using the same practices by which the domain would authenticate REGISTER requests). Once arequestmessage has been authenticated, the local domain then needs some way to communicate toremote domains that it has sanctionedother SIP entities therequest.sending user has been authenticated. This draft addresses how thatidentityimprimatur of authentication cancouldbesecurelyshared. RFC3261 already describes an architecture very similar to this in Section 26.3.2.2, in which a user agent authenticates itself to a local proxy server which in turn authenticates itself to a remote proxy server via mutual TLS, creating a two-link chain of transitive authentication between the originator and the remote domain. While this works well in some architectures, there are a few respects in which this is impractical. For one,ittransitive trust in inherently weaker than an assertion that can be validated end-to-end. It is possible for SIP requests to cross multiple intermediaries in separate administrative domains, in which case transitive trust becomesfareven less compelling. It also requires intermediaries to act as proxies, rather than redirecting requests to their destinations (redirection lightens loads on SIP intermediaries).Both of these limitations result from the fact that authentication takes place outside the application, at the transport layer, rather than within SIP itself.One solution to this problem is to use 'trusted' SIP intermediaries that assert an identity for users in the form of a privileged SIP header. A mechanism for doing so (with the P-Asserted-Identity header) is given in [6]. However, this solution allows only hop-by- hop trust between intermediaries, not end-to-end cryptographic authentication, and it assumes a managed network of nodes with strict Peterson & Jennings Expires November 15, 2004 [Page 4] Internet-Draft SIP Identity May 2004 mutual trust relationships, an assumption that is incompatible with widespread Internet deployment.The desired mediated authentication architecture has quite a bit in common with the problem space of Kerberos [5]. Ideally, there should beAccordingly, awaynew tactic is required for sharing ausercryptographic assurance of end-user identity in an intradomain context. Furthermore, this new mechanism must work for both SIP requests and responses. However, there is an additional wrinkle specific toauthenticate themselvesproviding identity in a response. While the original address-of- record to which a request is sent is stored in thelocal domain, and receive some kind of token that they can share with recipientsTo header field ofrequests that lets them knowthe request, it is possible, due to retargeting at intermediaries, it is possible that theuserrequest will be forwarded to an entity that hasbeen authenticated bya different AoR (i.e. identity). Since thelocal domain. However, Kerberos support in SIP user agentsTo header is notwidespread, and moreover SIP uses other means (such as Digest)changed in responses toperform key authentication functions already. An ideal solution would adapt existinga SIPsecurity mechanisms to address this problem. Peterson Expires August 2, 2003 [Page 4] Internet-Draft SIP Identity February 2003 Therefore, this document defines a new logical role for SIP network intermediaries called an 'authentication service'. Once an authentication servicerequest, the UAC hasverifiedno way of discovering that new AoR. This is generally known as the "response identity" or "connected party" problem. 4. Requirements This draft addresses the following requirements: The mechanism must allow a UAC to provide a strong cryptographic identityofassurance to theoriginator ofUAS in arequest, as described above, it createsrequest. The mechanism must allow a UAS to provide a strong cryptographictokenidentity assurance to the UAC in a response. User agents thatcontainsreceive identity assurances must be able to validate these assurances without performing any network lookup. Proxy servers must be capable of adding this identity assurance to requests or responses. The mechanism must prevent replay of theauthenticatedidentity assurance by an attacker. The mechanism must be capable of protecting theuser, and which has some referenceintegritywithof SIP message bodies (to ensure that media offers and answers are linked to therequest itself. This token can thensignaling identity). It must beaddedpossible for a user to have multiple AoRs (i.e. accounts or aliases) under which it is known at aSIP requestdomain, andinspectedfor the UAC to assert one identity while authenticating itself as another, related, identity, as permitted byrecipientsthe local policy of the domain. It must be possible, in cases where a requestwho needhas been retargeted to acryptographic guarantee ofdifferent AoR than theidentity ofone designated in theuser. One possible formatTo header field, forsuch tokens istheAuthenticatedUAC to ascertain the AoR to which the request has been Peterson & Jennings Expires November 15, 2004 [Page 5] Internet-Draft SIP IdentityBody (AIB)May 2004 sent. 5. Overview of Operations This section provides an informative (non-normative) high-level overview of the mechanisms described in[4]. Other token formats are a matter for further investigation. Throughoutthisdocument,document. Imagine theusecase where Alice, who has the home proxy ofAIB format forexample.com and thetoken is considered exclusively. Only tokens that are suitableaddress-of-record sip:alice@example.com, wants tobe carried in a MIME body are considered in this document. 2. Terminology In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY",communicate with sip:bob@example.org. Alice generates an INVITE and"OPTIONAL" are to be interpreted as describedplaces her identity inRFC2119 [2] and indicate requirement levels for compliant SIP implementations. 3. Using an Authentication Service A SIP user agentsthe From header field of the request. She then sendsrequests toanauthentication service in orderINVITE over TLS toreceive an authentication token for the request. How exactly the association withan authentication serviceis learned or configured is an implementation-specific matterproxy forthe user agent - it might be implemented with a pre-loaded Route header.her domain. Theguidelines given in RFC3261 Sections 26.3.2.1 and 26.3.2.2 should be used when connecting to an authentication service; ideally, an authentication service should be one hop away from a user agent, it should use a lower-layer security protocol such as TLS or IPSec to authenticate theauthentication servicebefore providing credentials (especially shared secrets). This document places no requirements on how an authentication servicesauthenticatesrequests. Since Digest authentication MUST be supportedAlice (possibly byall SIP entities, the use ofsending a Digestfor this purposeauthentication challenge) and validates that she isRECOMMENDED for compatibility withauthorized to populate themaximum setvalue ofuser agents. 4. How to Share Verified Identities When an authentication service has authenticatedtheuser,From header field (which may be Alice's AoR, or itmust construct an identity URI for that user that willmay becontained in the token. It is RECOMMENDEDsome other value thatthese identities taketheform of SIP Peterson Expires August 2, 2003 [Page 5] Internet-Draft SIP Identity February 2003 address-of-record URI (as opposed to contact addresses), as they are defined in Section 10 of RFC3261; in other words, URIspolicy of theform 'sip:alice@atlanta.com'. This identity must be expressed in the authentication token that will be signed by the authentication service. For example, if the Authenticated Identity Body (AIB) format described in [4] is used,proxy server permits her to use). It thenfor an INVITE this identity would be stored incomputes a hash over some particular headers, including the From header fieldwithin a 'message/sip' or 'message/sipfrag' [7] body that will be signed by the authentication service. Once the token has been created, the server MUST sign the token. The subject ofand thecertificate SHOULD be assignedbodies inone ofthetwo following ways: An authentication service MAY use a common certificate, such as a site certificate, for its administrative domain. The subjectAltName of this certificate MUST correspondmessage. This hash is signed with thehost portion ofcertificate for theFromdomain (example.com, in Alice's case) and inserted in a header fieldof the identity(the new Identity header) in theauthentication token (ifSIP message. The proxy, as theidentity were 'sip:alice@atlanta.com',holder thesubjectAltNameprivate key of its domain, is asserting that thecertificate would be 'atlanta.com');originator of thisshould be the same certificaterequest has been authenticated and that she is authorized to claim theauthentication service provides when proving its ownidentity(via TLS or some similar protocol). An authentication service MAY hold(the SIP address-of-record) which appears in the From header field. The proxy also inserts acertificate correspondingcompanion header field that tells Bob how toeach user inacquire itsadministrative domain (in other words, a certificate whose subjectAltName containscertificate, if he doesn't already have it. When Bob returns aURI equivalentresponse to theaddress-of-record URIINVITE (such as a 200 OK), a similar set of steps happen. Bob's home proxy asserts his identity in theuser).response. In thiscase, the appropriate certificate forinstance, theauthenticated user will be usedproxy has tosign the authentication token. Maintaining individual certificates for each user is RECOMMENDED, sinceinsert thename subordination rules involved withheader directly into theuserequest - redirection ofa common certificate for the domain can become complicated. After the authentication token has been signed, the authentication token MUST somehow be integrated with any existing MIME bodies in the request, if necessary by transitioning the outermost MIME body to a 'multipart/mixed' format, beforeresponses is not possible. When Alice receives the response, she verifies Bob's identity. If Alice's requestcan be forwarded. Three options are consideredforways that an authentication token could be addedBob were retargeted, one of two things might happened. If it were retargeted to aSIP message: one in which the authentication service pushesdomain that was also thetoken backresponsibility of Bob's home proxy (for example, retargeted from sip:bob@example.com to sip:carol@example.com), then theclient for resubmission, one in which the authentication service adds the token itself,request would proceed normally andone in which the client anticipates a URI at which the authentication service will makereceive an Identity. If Bob's home proxy would retarget thetoken available. Authentication services MUST supportrequest to some other domain (e.g. sip:bob@example.ORG), then his home proxy would redirect themechanism in Section 4.1request rather than proxying it, andMAY support the mechanism in Section 4.2; the mechanism in Section 4.3 is included to illustrateAlice would send a new request that could receive afuture direction.response with an Identity from the new domain. Peterson & Jennings ExpiresAugust 2, 2003November 15, 2004 [Page 6] Internet-Draft SIP IdentityFebruary 2003 4.1 Body Added by Client In this case, the authentication service returns the authentication tokenMay 2004 6. User Agent Behavior: Sending Messages This mechanism requires one important change tothe originating user agent, prompting theexisting user agent behavior for sending requests and responses: user agents using this mechanism toretry the requestsend requests or responses MUST support TLS; moreover, they MUST be capable of establishing a persistent TLS connection withthea proxy server that acts as an authenticationtoken attached. No existing SIP mechanism can perform this function. Therefore,service. Additionally, there are several practices that should be highlighted in the context of thisdocument definesidentity solution. When a428 "Use Authentication Token" response code. AfterUAC sends auser has been authenticated (in the Digest example, withrequest, it MUST accurately populate the407 response) an authentication service sends a 428 with a MIME body in order to requestheader field that asserts its identity (for auser agent addSIP request, this is theenclosed MIME body to theirFrom header field). In a requestand retry the request. A 428it MUSThave at mostset the URI portion of its From header to match asingle MIME body. This MIME bodySIP, SIPS or TEL URI AoR under which the UAC can register (including anonymous URIs, as described in RFC 3323 [3]). The UAC MUST also besigned by thecapable of sending requests through an 'outbound' proxy (the authenticationservice. The useservice), and of428 without any MIME body is also definedcourse MUST support the Digest authentication mechanism described in RFC3261. Because thisdocument. It can be sent by any server to reject a request because the requestmechanism does notcontain anprovide integrity protection for the first hop to the authenticationtoken. A user agent receiving this rejection SHOULD retry their request throughservice, thesame server after acquiring a token fromUAC MUST send requests to an authenticationservice. Inservice only over a TLS connection. Additionally, in order tosignal to the authentication services and other intermediaries that the originatingprovide identity for responses, useragent supports the receipt of the 428 response code, a new option-tag has been defined, the 'auth-id' option-tag. UseragentsSHOULD supply the 'auth-id' option-tag inMUST form aSupported header whenever they provide credentialspersistent TLS connection to a proxy server(for example, in Digest authentication, wheneverwhen aProxy- Authorization headerREGISTER isadded tosent. Since a UAS cannot send arequest). Using the 428responsecode may introduce extra round-trip times for messages, delaying the setup of requests. However, there are some circumstances under which extra RTTs maythat does notimpede performance. Ifreplicate theoriginating user agent possesses a non-stale nonce (assuming Digest authentication) fromcontents of theauthentication service, it can pre- emptively include a Proxy-Authorization header, eliminating one RTT (the one resulting from a 407). With regard toTo and From header fields in thesecond RTT, note thatcorresponding request, UAS response-sending behavior is unchanged. Again, because this mechanism does not provide integrity protection for therequest needn't necessarily go throughfirst hop of theauthentication service again onceresponse path, the UAS SHOULD send responses only over a TLS connection. 7. Authentication Service Behavior The authenticationtoken has been added - it could go directly to its destination, which reduceservice authenticates theimpactidentity of thesecond RTT. There are two good reasons to thinkmessage sender and validates that theoriginating user agent shouldidentity given in the message can legitimately be asserted by theparty responsible for addingsender. Then it computes a signature over theauthentication token tocanonical form of several headers and all therequest. Firstly, becausebodies, and inserts thisgivessignature into theclientmessage. First, an authentication service MUST extract theopportunity to inspectidentity of thebody itself (perhaps onlysender. For requests, it inspects the From header field; for responses, the To header field (henceforth the result of this inspection will be referred tosee whetheras the "identity field). If the identity field contains a SIP ornot it is encrypted; see [4])SIPS URI, the authentication service MUST extract the hostname portion of the URI inorder to verifythat header field, and compare this to the domain(s) for which it is responsible. If theauthenticatedidentitycorresponds withfield uses theprovided credentials andTEL URI scheme, theuser's preferences. Secondly,policy of theclient can provide a signaturePeterson & Jennings ExpiresAugust 2, 2003November 15, 2004 [Page 7] Internet-Draft SIP IdentityFebruary 2003 over the entire body of the message (either with S/MIMEMay 2004 authentication service determines whether orsome header-based mechanism) so that the final recipient of messages can be assured that all information in the body is there at the originator's behest. 4.2 Body Added by Authentication Service Another possibilitynot it isthatresponsible for this identity. Some example policies are described in [TODO]. If the authentication servicecould add the body tois not responsible for therequest itself before forwarding the request. However,identity in question, it MAY handle theauthentication service role is usually played by entities that actrequest as a normal proxyserversserver; see below formost requests, and proxy servers cannot modify message bodies (see RFC3261 Section 16.6). In order to add anmore information on authenticationtoken,service handling of an existing Identity header. Second, the authentication serviceneeds to act as a transparent back-to-back user agent, effectively terminatingmust determine whether or not the sender of the requestand re-originating it with a new body appendedis authorized toany existing MIME bodies (again, transposingclaim the identity given in the identity field. In order tovarious MIME multipart forms as necessary). This mechanism has some potential advantages over pushingdo so, the authenticationtoken back toservice MUST authenticate theoriginating user agent. For one, it saves one additional round-trip time that would be used bysender of the428 response. It also requires no new SIP mechanisms, whereasmessage. Some possible ways in which this authentication might be performed include: For requests, challenging the428request with a 407 responsenecessitates option-tag support. However, there are proposed SIP integrity mechanisms that placecode using the Digest authentication scheme (or viewing asignature overProxy- Authentication header sent in theentire message bodyrequest which was sent in anticipation of aSIP message header. Werechallenge using cached credentials, as described in RFC 3261 Section 22.3) For requests and responses that are sent over aserver to modifypersistent TLS connection, relying on some prior authentication that was performed at thebodyformation of the connection (most likely, the authentication service previously challenged amessage thatREGISTER request sent after the TLS connection wasprotected by such signature,formed, or possibly a prior challenged INVITE thatwould be perceived as an integrity violation by downstream recipientswas sent over the TLS connection) Authorization of themessage. Presumably,assertion of aback-to-back user agent function would have to sacrifice this end-to-end integrity. The notionparticular username in the From header field of atransparent back-to-back user agent is also ill-defined, and it is questionable if any SIP intermediaries should interfere withSIP messagebodies. 4.3 Using Content Indirection Workiscurrently underway in the SIP WG to defineacontent indirection [8] mechanismmatter of local policy forSIP, a mechanism bythe authorization service whicha MIME body in a SIP request can refer, with a URL, to a document that it hosted somewheredepends greatly on the manner in which authentication is performed. A RECOMMENDED policy is as follows: thenetwork. This raises another interesting possibility forusername asserted during Digest authenticationtoken transportMUST correspond exactly to the username inSIP. Athe From header field of the SIPuser agent could createmessage. However, there are many cases in which acontent indirection MIME body (usinguser might manage multiple accounts in theRFC2017 [9] URL MIME External-Body Access-Type) that containssame administrative domain. Accordingly, provided the authentication service is aware of the relationships between these accounts, it might allow aURL that identitiesuser providing credentials for one account to assert aresourceusername associated with another account controlled by theauthentication service, anticipating thatuser name. Furthermore, if theauthentication service will makeAoR asserted in theauthentication token available atFrom header field is anonymous (per RFC3323), then the proxy should authenticate thatURL. This URL could be pushed bythe user is any valid user in the domain and insert the signature over the From header field as usual. Third, the authentication service MUST form the identity signature, as described in Section 10, and add an Identity header to theUAC whenrequest containing this signature. After the Identity header has been added to the request, the authentication service MUST also add an Identity- Info header. The Identity-Info header contains a URI from which its certificate can be acquired. Details are provided in section Section Peterson & Jennings ExpiresAugust 2, 2003November 15, 2004 [Page 8] Internet-Draft SIP IdentityFebruary 2003 service challenges the UAC (as a new header inMay 2004 10. Finally, the407 response). Once anauthentication servicehas validated the request, it simply makes the authentication token available at the anticipated URL; recipients ofMUST forward the messagewould then dereference the URLnormally. 7.1 UAs acting as an Authentication service There are some instances inorder to inspect the token. This approach could allowwhich a useragents to have full control over the integrity of SIP requests, while still requiring the extra RTT caused byagent may hold theuseprivate key of the428 response code. It also has numerous advantages over other ways of handling authentication tokens issueddomain Certificate forSIP response messages (see Section 5). 5. Identity in Responses Many ofits address-of-record. In these cases, thepractices described inUA MAY perform thepreceding sections can be applied to responses as well as requests, with some important differences. Primarily,services, and add thedistinction isheaders, thata response cannot be challenged or resubmitted in the same manner as a request, and thereforethemechanism in Section 4.1 is not usable. However, whenauthentication service would normally add. 8. Verifying Identity When a user agentregisters under a particular identity, and thereby becomes eligible to receive requests and send responses associated with that identity, it provides credentials that prove its identity, and thus if the registrar is co-located with theor proxythatserver receivesrequests for the user's administrative domain, is inareasonable position to act asSIP message containing anauthentication service for responses. Note thatIdentity header, it can inspect the signature to verify the identityinof the sender of the message. If anauthentication tokenIdentity header is not present in a request, and one is required by local policy, then a 428 Use Identity responsealmost certainly willis sent. If an Identity header is notcorrespond with the identity assertedpresent in a response, and one is required by local policy, then theFrom header fieldrecipient of the response(which is copied from the request);MUST communicate this lapse to its user, and MAY immediately terminate any created dialog or ignore transactions, as policy dictates. In order to verify the identityinof theauthentication token representssender of adifferent entity. For many requests,message, theidentity inuser agent or proxy server MUST first acquire theauthentication tokencertificate for the signing domain. Implementations supporting this specification should have some means ofa response will correspondretaining domain certificates (in accordance with normal practices for certificate lifetimes and revocation) in order to prevent themselves from needlessly downloading theTosame certificate every time a request from the same domain is received. Certificates retained in this manner should be indexed by the URI given in the Identity-Info header fieldofvalue. Provided that therequest, but there are numerous legitimatedomain certificate used to sign this message is unknown, SIP entities discover this certificate by dereferencing the Identity-Info header. The client processes this certificate in the usual ways including checking thatrequests can be retargeted in which this willit has notbe the case. An authentication serviceexpired, thatalso acts as a registrar and inbound proxy can addthe chain is valid back to aresponse an authentication tokentrusted CA, and thatcorresponds toit does not appear on revocation lists. Subsequently, theidentity ofrecipient MUST verify theoriginator of that responsesignature inroughlythesame manner described in Section 4.2 -Identity header, and compare theauthentication service addsidentity of theauthentication token to a response before it forwardssigner (the subjectAltName of theresponse towardscertificate) with theoriginatordomain portion of therequest. There is no way for an authentication service to perform a function for responses comparable toURI in themechanismFrom header field of the request as described in Section4.1; however, content indirection (see11. Additionally, the Date, Contact and Call-ID headers MUST be analyzed in the manner described in Section4.3 could provide an alternative11; recipients thatwould allow the clientwish toretain end-to-end integrity properties on responses.verify Identity signatures MUST support all of the operations described Peterson & Jennings ExpiresAugust 2, 2003November 15, 2004 [Page 9] Internet-Draft SIP IdentityFebruary 2003 6. Receiving an Authentication Token The manner in which an authentication token is handled is dependent onMay 2004 there. Any discrepancies or violations MUST be reported to thenature of the token itself; rules for handlinguser. When the originating user agent of a request receives a response containing an Authenticated Identity Body(AIB) format are given [4]. 6.1 Authentication Service Handling(AIB, see [4]), it SHOULD compare the identity in the From header field ofAuthentication Tokens SIP intermediaries generally should not attempt to inspect MIME bodies; followingtherulesAIB ofRFC3261 Section 16.6, MIME bodies may be encrypted end-to-end or have other properties that make them unsuitable for consumption by intermediaries. However, intermediaries that implementtheauthentication service logical role MAY inspect MIME bodies in order to find oneresponse witha Content- Dispositionthe original value of'auth-id'. Forthemost part,To header field in theactual valuerequest. If these represent different identities, the user agent SHOULD render the identity in the AIB ofan authenticatedthe response to its user. Note that a discrepancy in these identity fields is notlikely to benecessary an indication ofinteresta security breach; normal retargeting may simply have directed the request to aproxy server, thoughdifferent final destination. Implementers therefore may consider itMAY refuseunnecessary toprocessalert the user of a security violation in this case. 9. Proxy Server Behavior In most respects, a proxy server behaves normally when it receives a SIP requestthat does not containor response containing an Identity header. This mechanism is fully backwards-compatible with existing RFC3261 proxy behavior. However, if avalid authentication token (using the 428 request,proxy intends to act asdescribed in Section 4.1). However,an authenticationservices MAY additionally maintain lists of known problem users that are banned from making requests to their administrative domain,service forexample, and subsequently reject someresponses to requestsafter comparing their authenticated identitiesit receives, it must exhibit some additional behavior tosuch access control lists. 7. Selective Sharing ofensure that retargeting requests are handled properly. Essentially, a proxy server MUST NOT provide an IdentityMost of the time, thereheader for a request that it retargets to a different administrative domain. It isno needthe responsibility of that administrative domain torestrictprovide its own identity assertion, if it can. However, proxying the request to a remote domain where identity services may be provided has its own problems - the originator of the request has no way to know whether the request was legitimately retargeted, or if any responses it receives from the new domain are spoofed or otherwise illegitimate. It is thus much more secure for the proxy server to redirect in cases where it might otherwise retarget. If a proxy server intends to act as an authentication service for a response to a SIP request that it is forwarding, it MUST do ALL of the following: Ascertain if it is responsible for the domain indicated in the Request-URI field of the request. If not, it MUST forward the request normally. If so, it must then: Determine the route set of targets to which this request might be forwarded. From that target list, the proxy must determine which contact addresses are associated with persistent TLS connections that have been established to the proxy server. It places all such targets (if any) into a primary route set for the call, and places remaining targets into a secondary route set for the call. It performs this operations irrespective of any qvalues associated Peterson & Jennings Expires November 15, 2004 [Page 10] Internet-Draft SIP Identity May 2004 with the contact addresses. The proxy then MUST follow normal administrative policies for forwarding the request to any targets in the primary route set (which may involve qvalue calculations or any other behaviors described in RFC3261). Before the proxy forwards any responses to this request upstream, the proxy server MUST act as an authentication service (as described in Section 7), adding an Identity and Identity-Info header. If there are no appropriate responses from the primary route set for the proxy server to forward upstream, it moves on to the secondary route set (essentially, the proxy server forks sequentially, exploring the primary route set as one cluster, and then moves on to the secondary set). The proxy server is unable to act as an authentication service for those contact addresses. Accordingly, the proxy server MUST NOT explore these route targets itself; instead, it MUST redirect the request with a 3xx class response containing the contact addresses that constitute the secondary route set. In order to build the primary route set for the call, the location service associated with the domain of the proxy server MUST implement additional intelligence to determine which contact addresses are associated with a persistent TLS connection - this is used to determine when the server should act as a proxy and when it should redirect. When the SIP registrar receives a REGISTER request over a persistent TLS connection, it MUST compare any contact addresses appearing in Contact header fields to the topmost Via header field in the REGISTER request. If the host portion of a contact address matches the hostname given in the topmost Via header field, then that contact address is said to be "associated" with the persistent TLS connection over which the REGISTER was received. Location services must mark or flag these contact addresses accordingly, and remember the identity that the user provided when they were authenticated during registration. Only these contact addresses are added to the primary route set by a proxy server that wishes to act as an authentication service for responses. Additionally, domain policy may require proxy servers to inspect and verify the identity provided in SIP requests. The proxy server may wish to ascertain the identity of the sender of the message to provide spam prevention or call control services. Even if a proxy server does not act as an authentication service, it MAY verify the signature present in an Identity header before it makes a forwarding decision for a request. Proxy servers MUST NOT remove or modify the Identity or Identity-Info headers. Peterson & Jennings Expires November 15, 2004 [Page 11] Internet-Draft SIP Identity May 2004 10. Header Syntax This document specifies two new SIP headers: Identity and Identity- Info. Each of these headers can appear only once in a SIP message. Identity = "Identity" HCOLON signed-identity-digest signed-identity-digest = LDQUOT 32LHEX RDQUOT Identity-Info = "Identity-Info" HCOLON ident-info Ident-info = LAQUOT absoluteURI RAQUOT To create the contents of the signed-identity-digest, the following elements of a SIP message MUST placed in the string in the order specified here, separated by a colon: The AoR of the UA sending the message, or the 'identity field'. For a request, this is the addr-spec from the From header field; for responses, the addr-spec of the To header field. This needs to be in lower case and to be represented as a SIP URI. The callid from Call-Id header field. The Date header field, with exactly one space each for each SP and the weekday and month items case set as shown in BNF in 3261. The first letter is upper case and the rest of the letters are lower case. The addr-spec component of the Contact header field value. The body content of the message with the bits exactly as they are in the message. For more information on the security properties of these headers, and why their inclusion mitigates replay attacks, see [4]. The precise formulation of this digest-string is, therefore: digest-string = addr-spec HCOLON callid HCOLON SIP-Date HCOLON addr-spec HCOLON message-body Note again that the first addr-spec MUST be taken from the From header field value, and the second addr-spec from the Contact header field value. After the digest-string is formed, it MUST be hashed and signed with the certificate for the domain, as follows: compute the results of signing this string with sha1WithRSAEncryption as described in RFC 3370 and base64 encode the results as specified in RFC 3548. Put the result in the Identity header. Peterson & Jennings Expires November 15, 2004 [Page 12] Internet-Draft SIP Identity May 2004 Note on this choice: Assuming a 1024 bit RSA key, the raw signature will result in about 170 octets of base64 encoded data. For comparison's sake, a typical HTTP Digest Authorization header (such as those used in RFC3261) with no cnonce is around 180 octets. From a speed point of view, a 2.8GHz Intel processor does somewhere in the range of 250 RSA 1024 bits signs per second or 1200 RSA 512 bits signs; verifies are roughly 10 times faster. Hardware accelerator cards are available that speed this up. The Identity-Info header MUST contain either an HTTPS URI or a SIPS URI. If it contains an HTTPS URI, the URI must dereference to a resource that contains a single MIME body containing the certificate of the authentication service. If it is a SIPS URI, then the authentication service intends for a user agent that wishes to fetch the certificate to form a TLS connection to that URI, acquire the certificate during normal TLS negotiation, and close the connection. This document adds the following entries to Table 2 of [1]: Header field where proxy ACK BYE CAN INV OPT REG ------------ ----- ----- --- --- --- --- --- --- Identity a - o - o o - SUB NOT REF INF UPD PRA --- --- --- --- --- --- o o o - - - Identity-Info a - o - o o - SUB NOT REF INF UPD PRA --- --- --- --- --- --- o o o - - - 11. Security Considerations This document describes a mechanism which provides a signature over the Contact, Date, Call-ID, and 'identity fields' (addr-spec of the From header field for requests, and To header field for responses) of SIP messages. While a signature over the identity field alone would be sufficient to secure a URI alone, the additional headers provide replay protection and reference integrity necessary to make sure that the Identity header will not be used in cut-and-paste attacks. In general, the considerations related to the security of these headers are the same as those given in RFC3261 for including headers in tunneled 'message/sip' MIME bodies (see Section 23 in particular). Peterson & Jennings Expires November 15, 2004 [Page 13] Internet-Draft SIP Identity May 2004 The identity field indicates thepropagationidentity ofverified identities inthenetwork. User agentssender of the message. The Date andintermediaries benefit from receiving verified identities. However,Contact headers provide reference integrity and replay protection, as described insome cases intermediaries might want to restrict the distributionRFC3261 Section 23.4.2. Implementations ofidentity information, for example if o the authenticated identity body containsthis specification MUST NOT consider valid a request with anidentity thatoutdated Date header field (the RECOMMENDED interval isonly meaningful as an internal identifier withinthat the Date header must indicate aparticular service provider's network, or, otime within 3600 seconds of theoriginating user agent has requested privacy,receipt of a message). Implementations MUST also record Call-IDs received in valid requests containing an Identity header, and MUST remember those Call-IDs for at least theunrestricted distributionduration of a single Date interval (i.e. 3600 seconds). Accordingly, if an Identity header is replayed within theauthenticated identity body would violateDate interval, receivers will recognize thatrequest. Ifit isnot appropriate to share an authenticated identityinvalid because of auser has requested privacy,Call-ID duplication; if anauthenticated identity body SHOULD NOT be created and distributed. However, in some cases there may be other entities in the administrative domain ofIdentity header is replayed after theauthentication serviceDate interval, receivers will recognize thatare consumers ofit is invalid because theauthenticated identity. If, for example, each of these servers neededDate is stale. The Contact header field is included tochallengetie theuser Peterson Expires August 2, 2003 [Page 10] Internet-Draft SIPIdentityFebruary 2003 individually for identity, it might significantly delay the processing of the request. For that reason, it may be appropriateheader tocirculate authenticated identity bodies amongacontrolled set of entities. Forparticular device instance thatpurpose,generated the request. Were anencryption mechanism for authenticated identities is required. 7.1 Requesting Privacy When users authenticate themselvesactive attacker to intercept a request containing anauthentication service, they MAY explicitly notifyIdentity header, and cut-and-paste theservice that they do not wishIdentity header field into theirauthenticated identity to be circulated. Usually,own request (reusing theuser in question would also be taking other steps to preserve their privacy (perhaps by including an anonymous From headeridentity fields, Contact, Date and Call-ID fields that appear in the original message), they would not be eligible to receive SIPrequest, and following other standard privacy practices). Authentication services MUST supportrequests from theprivacy mechanism describedcalled user agent, since those requests are routed to the URI identified inRFC3323 [3]. Users requesting privacy shouldthe Contact header field. This mechanism alsosupportprovides a signature over themechanisms describedbodies of SIP requests. The most important reason for doing so is to protect SDP bodies carried inthat document. In particular, this document uses an identity-specific priv-value that can appearSIP requests. There is little purpose in establishing thePrivacy header, a valueidentity of'id', which was registered by RFC3325 [6]. This Privacy value requeststhe user agent that provided theresults of authentication should not be shared bysignaling if a man-in-the-middle can change theauthenticating intermediary. An authentication service SHOULD NOT createSDP and direct media to an alternate address. Note however that this is not perfect end- to-end security. The authenticationtokenservice itself, when instantiated at a intermediary, can change the SDP (and SIP headers, for that matter) before providing arequest when 'id' privacy has been requested. If suchsignature. Thus, while this mechanism reduces the chance that atoken is created,man-in-the-middle will interfere with sessions, itMUST be encrypted or rendered confidential indoes not eliminate it entirely. Since it is assumed that themanner most appropriateuser trusts their local domain tothe token. Guidelinesvouch forencrypting AIBs are given in [4], and these mechanisms MUST be supported by any authenticationtheir security, they must also trust the servicethat uses AIBs. 8. Security Considerationsnot to violate the integrity of their message bodies without good reason. Users SHOULD NOT provide credentials to an authentication service to which they cannot initiate a direct connection, preferably one secured bya network or transport layer security protocol such asTLS. If a user does not receive a certificate from the authentication service over thislower-layer protocolTLS that corresponds to the expected domain (especially when they receive a challenge via a mechanism such as Digest), then it is possible that a rogue server is attempting to pose as a authentication service for a domain that it does not control, possibly in an attempt to collect shared secrets for that domain. If a user cannot connect directly to the desired authentication service, the user SHOULD at least use a SIPS URI to Peterson & Jennings Expires November 15, 2004 [Page 14] Internet-Draft SIP Identity May 2004 ensure that mutual TLS authentication will be used to reach the remote server. Relying on anauthentication tokenIdentity header generated by a remote administrative domain assumes that the issuing domain uses some trustworthyPeterson Expires August 2, 2003 [Page 11] Internet-Draft SIP Identity February 2003practice to authenticate its users. However, it is possible that some domains will implement policies that effectively make users unaccountable (such as accepting unauthenticated registrations from arbitrary users).Therefore, it is RECOMMENDED that authentication tokens contain some indication of the specific practice (for example, Digest) that was used to authenticate this request as a rough indicator of credential strength. No mannerThe value ofdescribing authentication practicesan Identity header for such domains isspecified in this document. Ifquestionable. Since acommondomain certificate is used by an authentication service (rather than individual certificates for each identity), certain problems can arise with name subordination. For example, if an authentication service holds a common certificate for the hostname 'sip.atlanta.com', can it legitimately sign a token containing an identity of 'sip:alice@atlanta.com'? It is difficult for the recipient of a request to ascertain whether or not 'sip.atlanta.com' is authoritative for the 'atlanta.com' domain unless the recipient has some foreknowledge of the administration of 'atlanta.com'. Therefore, it isRECOMMENDRECOMMENDED that user agent recipients of authentication tokens notify end users if there is ANY discrepancy between the subjectAltName of the signers certificate and the identity within the authentication token.Authentication tokens MUST have some form of replay protection. The best protection is to copyMinor discrepancies MAY be characterized as such. Additionally, relying parties MAY follow theSIP requestprocedures inits entirety (viaRFC3264 to look up on the'message/sip' MIME type) intodomain portion of theauthentication token -identity inthat way, it will be clear that this token has been issuedthe From header field in the DNS, and compare the SIP services listed forthis request, since collectivelythat domain with theheaderssubjectAltName ofa SIP request provide a unique identifier. However, SIP requeststhe certificate; this canbe large, and it is reasonable to include onlygive the relying party asubsetbetter sense of the canonical SIPheaders in a request (using the 'message/sipfrag' MIME type) as long as certain critical headers are provided. For further discussion of this issue, including guidelinesservices forincluding particular headers in a sipfrag, see [4].that domain. Because thecommondomain certificates that can be used by authentication services need to assert only the hostname of the authentication service, existing certificate authorities can provide adequate certificates for this mechanism. However, not all proxy servers and user agents will be able support the root certificates of all certificate authorities, and moreover there are some significant differences in the policies by which certificate authorities issue their certificates. This document makes no recommendations for the usage of particular certificate authorities, nor does it describe any particular policies that certificate authorities should follow, but it is anticipated that operational experience will create de facto standards for the purposes of authentication services. Some federations of service providers, for example, might only trust certificates that have been provided by a certificate authority operated by the federation. Peterson & Jennings ExpiresAugust 2, 2003November 15, 2004 [Page12]15] Internet-Draft SIP IdentityFebruary 2003 operated by the federation. 9.May 2004 12. IANA Considerations This document specifies two new SIP headers: Identity and Identity- Info. Their syntax is given in Section 10. This document requests that IANA add these headers to the SIP header registry. This document also defines a new SIPstatusresponse code,'428 Use Authentication Token'. The use of this status code is further428 "Use Identity", as described in Section4.1.8. Normative References [1] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [2] Bradner, S., "Key words for use in RFCs to indicate requirement levels", RFC 2119, March 1997. [3] Peterson, J., "A Privacy Mechanism for the Session Initiation Protocol (SIP)", RFC 3323, November 2002. [4] Peterson, J., "SIP Authenticated Identity Body (AIB) Format", draft-ietf-sip-authid-body-01 (work in progress), October 2002. Informative References [5] Kohl, J. and C. Neumann, "The Kerberos Network Authentication Service (V5)", RFC 1510, September 1993. [6] Jennings, C., Peterson, J. and M. Watson, "Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks", RFC 3325, November 2002. [7] Sparks, R., "Internet Media Type message/sipfrag", RFC 3420, November 2002. [8] Olson, S., "A Mechanism for Content Indirection in SIP Messages", draft-ietf-sip-content-indirect-mech-01 (work in progress), August 2002. [9] Freed, N., "Definition of the URL MIME External-Body Access- Type", RFC 2017, November 1996. Peterson & Jennings ExpiresAugust 2, 2003November 15, 2004 [Page13]16] Internet-Draft SIP IdentityFebruary 2003 Author's AddressMay 2004 Authors' Addresses Jon Peterson NeuStar, Inc. 1800 Sutter St Suite 570 Concord, CA 94520 US Phone: +1 925/363-8720 EMail: jon.peterson@neustar.biz URI: http://www.neustar.biz/ Cullen Jennings Cisco Systems 170 West Tasman Drive MS: SJC-21/2 San Jose, CA 95134 USA Phone: +1 408 902-3341 EMail: fluffy@cisco.com Appendix A. Acknowledgments The authors would like to thank Eric Rescorla, Rohan Mahy, Robert Sparks, Jonathan Rosenberg, Mark Watson and Patrik Faltstrom for their comments.Cullen Jennings assisted greatly in the development of the content indirection mechanism considered in Section 4.3.Appendix B. Changelog Changes from draft-ietf-sip-identity-01: - Completely changed underlying mechanism - instead of using an AIB, the mechanism now recommends the use of the Identity header and Identity-Info header - Numerous other changes resulting from the above - Various other editorial corrections Changes from draft-peterson-sip-identity-01: - Split off child draft-ietf-sip-authid-body-00 for defining of the AIB - Clarified scope in introduction Peterson & Jennings Expires November 15, 2004 [Page 17] Internet-Draft SIP Identity May 2004 - Removed a lot of text that was redundant with RFC3261 (especially about authentication practices) - Added mention of content indirection mechanism for adding token to requests and responses - Improved Security Considerations (added piece about credential strength) Changes from draft-peterson-sip-identity-00: - Added a section on authenticated identities in responses - Removed hostname convention for authentication services - Added text about using 'message/sip' or 'message/sipfrag' in authenticated identity bodies, also RECOMMENDED a few more headers in sipfrags to increase reference integrityPeterson Expires August 2, 2003 [Page 14] Internet-Draft SIP Identity February 2003- Various other editorial corrections Peterson & Jennings ExpiresAugust 2, 2003November 15, 2004 [Page15]18] Internet-Draft SIP IdentityFebruary 2003May 2004 Full Copyright Statement Copyright (C) The Internet Society(2003).(2004). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Peterson & Jennings ExpiresAugust 2, 2003November 15, 2004 [Page16]19] ----