Internet DRAFT - draft-jennings-stir-rtcweb-identity

draft-jennings-stir-rtcweb-identity







Network Working Group                                        C. Jennings
Internet-Draft                                             Cisco Systems
Intended status: Informational                               May 9, 2016
Expires: November 10, 2016


                    Using WebRTC Identity with STIR
                 draft-jennings-stir-rtcweb-identity-00

Abstract

   This draft outlines the approach to use STIR Passport tokens as the
   Identity assertions in WebRTC.  It outlines some proposed changes to
   improve identity interoperability for different calling systems.

   This is a very rough first draft purely to have something to discuss.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on November 10, 2016.

Copyright Notice

   Copyright (c) 2016 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.



Jennings                Expires November 10, 2016               [Page 1]

Internet-Draft          WebRTC and STIR Identity                May 2016


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Information Flow  . . . . . . . . . . . . . . . . . . . . . .   2
     2.1.  Actors  . . . . . . . . . . . . . . . . . . . . . . . . .   3
     2.2.  Mapping to SIP  . . . . . . . . . . . . . . . . . . . . .   6
   3.  Proposed Changes  . . . . . . . . . . . . . . . . . . . . . .   7
     3.1.  Remove Identity Hint Hack . . . . . . . . . . . . . . . .   7
     3.2.  Fingerprint format. . . . . . . . . . . . . . . . . . . .   7
     3.3.  Format of identity header . . . . . . . . . . . . . . . .   7
       3.3.1.  Token type in Identity header to allow multiple
               identity headers  . . . . . . . . . . . . . . . . . .   7
       3.3.2.  WebRTC support multiple tokens  . . . . . . . . . . .   8
       3.3.3.  Abstract the identity and protocol in the WebRTC
               assertion . . . . . . . . . . . . . . . . . . . . . .   8
     3.4.  Future Proofing . . . . . . . . . . . . . . . . . . . . .   8
     3.5.  TEL URI . . . . . . . . . . . . . . . . . . . . . . . . .   8
     3.6.  RFC822 Names  . . . . . . . . . . . . . . . . . . . . . .   8
     3.7.  Encoding  . . . . . . . . . . . . . . . . . . . . . . . .   9
     3.8.  WebRTC Canonical Form . . . . . . . . . . . . . . . . . .   9
     3.9.  Multi party . . . . . . . . . . . . . . . . . . . . . . .   9
   4.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .   9
   5.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   9
     5.1.  Normative References  . . . . . . . . . . . . . . . . . .   9
     5.2.  Informative References  . . . . . . . . . . . . . . . . .  10
   Appendix A.  Example Cert . . . . . . . . . . . . . . . . . . . .  10
   Appendix B.  Example Private Key  . . . . . . . . . . . . . . . .  12
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  12

1.  Introduction

   This draft is purely to help track the discussion about WebRTC and
   STIR identity and provide a place to send pull requests.  It is not
   meant to become an RFC - the relevant information will flow into
   other specifications once we come to some consensus on what needs to
   be done.

   It assumes the reader if familiar with
   [I-D.ietf-rtcweb-security-arch], [I-D.ietf-stir-certificates],
   [I-D.ietf-stir-passport], and [I-D.ietf-stir-rfc4474bis].

2.  Information Flow

   This section steps through the logical information flow to use STIR
   Identity in WebRTC based on what we have in the specifications today.
   Later sections propose some changes to current specifications.





Jennings                Expires November 10, 2016               [Page 2]

Internet-Draft          WebRTC and STIR Identity                May 2016


2.1.  Actors

   Cullen, with a phone number of +1 408 555 1212 is using skype.com to
   call Jon at "sip:jon@example.org".  Both people use a WebRTC
   softphone.  Cullen uses an identity provider of att.com.  Skype could
   be the identity provider for this use case but it's easier to
   understand the flow if you look at it as a separate provider.

   Before the call ever starts, Cullen's browser fetches the webpage
   from skype.com and logs on to that website.  Cullen then goes to call
   Jon. The skype JS notes that the Cullen's identity provider is
   att.com and the JavaScript for the skype web page does a

   pc.setIdentityProvider("att.com","passport",
                         JSON.stringify( {"otn": "14085551212",
                                       "duri": "sip:jon@example.org"}));

   And start the setup of media to the other side which will eventually
   generate an SDP offer.  The browser will load the IDP JS from IdP at

              https://att.com/.well-known/idp-proxy/passport

   (see section 5.6.5 of [I-D.ietf-rtcweb-security-arch])

   The browser will then call the IDP javascript code to generate a
   WebRTC identity assertion.  It will pass to the generating function
   the hint information provided in the setIdentityProvider of

                    { "otn": "14084219990",
                       "duri": "sip:jon@example.org" }

   The browser also passes the DTLS fingerprints and hash algorithm used
   to generate them to the JS for the IdP in an array like

     [
        {
           "algorithm":"sha-256",
           "digest":"23:E8:6E:28:3F:D1:CF:17:DE:88:0F:EE:5A:AB:
               AD:03:2D:77:FB:05:17:BA:61:12:1B:37:D4:19:4F:38:DF:EC"
        }
     ]

   All of this information can be sent to the idp.com along with the
   whatever login flow att.com wants to use to have Cullen authenticated
   to att.com

   At this point, the IdP has all the information to create the Passport
   Token.



Jennings                Expires November 10, 2016               [Page 3]

Internet-Draft          WebRTC and STIR Identity                May 2016


   The DTLS-SRTP fingerprints are reformatted to be in the form

   "mky": "sha-256 23:E8:6E:28:3F:D1:CF:17:DE:88:0F:EE:5A:AB:
                 AD:03:2D:77:FB:05:17:BA:61:12:1B:37:D4:19:4F:38:DF:EC"

   The passport header is set to

               {
                  "typ":"passport",
                  "alg":"RS256",
                  "x5u":"https://cert.att.org/passport.crt"
               }

   The current time is used for the iat field and a passport payload is
   formed.  Note the payload also gets called the claims.  For example,
   the payload could look like

   {
      "iat":"14443208345",
      "otn":"14084219990",
      "duri":"sip:jon@example.org",
      "mky":"sha-256 23:E8:6E:28:3F:D1:CF:17:DE:88:0F:EE:5A:AB:
                 AD:03:2D:77:FB:05:17:BA:61:12:1B:37:D4:19:4F:38:DF:EC"
   }

   This is canonicalized and signed with a certificate valid to sign
   14084219990.  The URL to fetch the certificate is found in the x5u
   field of the Passport Header.

   The canonical headers base64 is

   eyJ0eXAiOiJwYXNzcG9ydCIsImFsZyI6IlJTMjU2IiwieDV1IjoiaHR0cHM6Ly9jZXJ0
   LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNydCJ9

   The canonical payload in base64 is

   eyJpYXQiOiIxNDQ0MzIwODM0NSIsIm90biI6IjE0MDg0MjE5OTkwIiwiZHVyaSI6InNp
   cDpqb25AZXhhbXBsZS5vcmciLCJta3kiOiJzaGEtMjU2IDIzOkU4OjZFOjI4OjNGOkQx
   OkNGOjE3OkRFOjg4OjBGOkVFOjVBOkFCOkFEOjAzOjJEOjc3OkZCOjA1OjE3OkJBOjYx
   OjEyOjFCOjM3OkQ0OjE5OjRGOjM4OkRGOkVDIn0

   The base64 headers and payload are concatenated with a period between
   them and the SHA 256 of the result is computed which, represented in
   hex, is

     20ac9439ae10df640b39e177d4ec432fe590b2d95f4075957816b5929ca1acb0





Jennings                Expires November 10, 2016               [Page 4]

Internet-Draft          WebRTC and STIR Identity                May 2016


   This is signed using RSASSA-PKCS1-v1_5 to get a base64 encoded
   signature of

   FMgDzm0ZLV3w-6yOSCm3ZorSwEednS38XtF2u29NhRQ5zh8Swh0uSGHASXFwUIQ7DXvG
   4pKD1rbBLFYT3_ReDn6OJ36k0S3oNvwMD0FyrRYeji-pAjoh76Q-jsfJsOq-Pi35Fba8
   ZYRvG_EgLE0FYXuM2nWm85RUKVSnkx5MBpOxuUxRyTZYJpaQjElVpv9MJKfd_HyuF66q
   98tcqeDb8dlrjtPNnQQfOf6AyLTlRwJ64t7iTouGD_R85Lv4Hu4mwu2ZiOL_1jo5svoY
   -KegM1KJh-M_ux4J52NoVeeLLgKg585qUHLrln6aEjevNQLBUcbdf_DKZ1hyj0oFR9lx
   rw

   The above example was done with and RSA key size of 2048 bits.

   The headers, payload, and signature are concatenated with pereidos
   between then to form a Passport Token of the form (but with no line
   breaks)

   eyJ0eXAiOiJwYXNzcG9ydCIsImFsZyI6IlJTMjU2IiwieDV1IjoiaHR0cHM6Ly9jZXJ0
   LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNydCJ9.
   eyJpYXQiOiIxNDQ0MzIwODM0NSIsIm90biI6IjE0MDg0MjE5OTkwIiwiZHVyaSI6InNp
   cDpqb25AZXhhbXBsZS5vcmciLCJta3kiOiJzaGEtMjU2IDIzOkU4OjZFOjI4OjNGOkQx
   OkNGOjE3OkRFOjg4OjBGOkVFOjVBOkFCOkFEOjAzOjJEOjc3OkZCOjA1OjE3OkJBOjYx
   OjEyOjFCOjM3OkQ0OjE5OjRGOjM4OkRGOkVDIn0.
   FMgDzm0ZLV3w-6yOSCm3ZorSwEednS38XtF2u29NhRQ5zh8Swh0uSGHASXFwUIQ7DXvG
   4pKD1rbBLFYT3_ReDn6OJ36k0S3oNvwMD0FyrRYeji-pAjoh76Q-jsfJsOq-Pi35Fba8
   ZYRvG_EgLE0FYXuM2nWm85RUKVSnkx5MBpOxuUxRyTZYJpaQjElVpv9MJKfd_HyuF66q
   98tcqeDb8dlrjtPNnQQfOf6AyLTlRwJ64t7iTouGD_R85Lv4Hu4mwu2ZiOL_1jo5svoY
   -KegM1KJh-M_ux4J52NoVeeLLgKg585qUHLrln6aEjevNQLBUcbdf_DKZ1hyj0oFR9lx
   rw

   The IdP returns this to the IdP JS in the browser which forms an
   object like




















Jennings                Expires November 10, 2016               [Page 5]

Internet-Draft          WebRTC and STIR Identity                May 2016


   {
   "assertion":
   "eyJ0eXAiOiJwYXNzcG9ydCIsImFsZyI6IlJTMjU2IiwieDV1IjoiaHR0cHM6Ly9jZXJ0
   LmV4YW1wbGUub3JnL3Bhc3Nwb3J0LmNydCJ9.
   eyJpYXQiOiIxNDQ0MzIwODM0NSIsIm90biI6IjE0MDg0MjE5OTkwIiwiZHVyaSI6InNp
   cDpqb25AZXhhbXBsZS5vcmciLCJta3kiOiJzaGEtMjU2IDIzOkU4OjZFOjI4OjNGOkQx
   OkNGOjE3OkRFOjg4OjBGOkVFOjVBOkFCOkFEOjAzOjJEOjc3OkZCOjA1OjE3OkJBOjYx
   OjEyOjFCOjM3OkQ0OjE5OjRGOjM4OkRGOkVDIn0.
   FMgDzm0ZLV3w-6yOSCm3ZorSwEednS38XtF2u29NhRQ5zh8Swh0uSGHASXFwUIQ7DXvG
   4pKD1rbBLFYT3_ReDn6OJ36k0S3oNvwMD0FyrRYeji-pAjoh76Q-jsfJsOq-Pi35Fba8
   ZYRvG_EgLE0FYXuM2nWm85RUKVSnkx5MBpOxuUxRyTZYJpaQjElVpv9MJKfd_HyuF66q
   98tcqeDb8dlrjtPNnQQfOf6AyLTlRwJ64t7iTouGD_R85Lv4Hu4mwu2ZiOL_1jo5svoY
   -KegM1KJh-M_ux4J52NoVeeLLgKg585qUHLrln6aEjevNQLBUcbdf_DKZ1hyj0oFR9lx
   rw",
      "idp":{
         "domain":"https://ks.fluffy.im:10443",
         "protocol":"passport"
      }
   }

   This object is passed back into the browser user agent which base 64
   encodes adds it to the SDP in an header like

   a=identity:eyJhc3NlcnRpb24iOiJleUowZVhBaU9pSndZWE56Y0c5eWRDSXNJbUZzW
   nlJNklsSlRNalUySWl3aWVEVjFJam9pYUhSMGNITTZMeTlqWlhKMExtVjRZVzF3YkdVd
   WIzSm5MM0JoYzNOd2IzSjBMbU55ZENKOS5leUpwWVhRaU9pSXhORFEwTXpJd09ETTBOU
   0lzSW05MGJpSTZJakUwTURnME1qRTVPVGt3SWl3aVpIVnlhU0k2SW5OcGNEcHFiMjVBW
   lhoaGJYQnNaUzV2Y21jaUxDSnRhM2tpT2lKemFHRXRNalUySURJek9rVTRPalpGT2pJN
   E9qTkdPa1F4T2tOR09qRTNPa1JGT2pnNE9qQkdPa1ZGT2pWQk9rRkNPa0ZFT2pBek9qS
   kVPamMzT2taQ09qQTFPakUzT2tKQk9qWXhPakV5T2pGQ09qTTNPa1EwT2pFNU9qUkdPa
   k00T2tSR09rVkRJbjAuRk1nRHptMFpMVjN3LTZ5T1NDbTNab3JTd0VlZG5TMzhYdEYyd
   TI5TmhSUTV6aDhTd2gwdVNHSEFTWEZ3VUlRN0RYdkcNCjRwS0QxcmJCTEZZVDNfUmVEb
   jZPSjM2azBTM29OdndNRDBGeXJSWWVqaS1wQWpvaDc2US1qc2ZKc09xLVBpMzVGYmE4W
   llSdkdfRWdMRTBGWVh1TTJuV204NVJVS1ZTbmt4NU1CcE94dVV4UnlUWllKcGFRakVsV
   nB2OU1KS2ZkX0h5dUY2NnE5OHRjcWVEYjhkbHJqdFBOblFRZk9mNkF5TFRsUndKNjR0N
   2lUb3VHRF9SODVMdjRIdTRtd3UyWmlPTF8xam81c3ZvWVxLZWdNMUtKaE1fdXg0SjUyT
   m9WZWVMTGdLZzU4NXFVSExybG42YUVqZXZOUUxCVWNiZGZfREtaMWh5ajBvRlI5bHhyd
   yIsImlkcCI6eyJkb21haW4iOiJodHRwczovL2tzLmZsdWZmeS5pbToxMDQ0MyIsInByb
   3RvY29sIjoicGFzc3BvcnQifX0=

   Which adds about 1K bytes to the SIP message.

2.2.  Mapping to SIP

   A RTCWeb to SIP Gateway can take this assertion, decode it, and
   extract the Passport Token out of it.  It could then insert that into
   the SIP Invite.  It would need to cache the domain and protocol for
   this flow.  Later when a reply came back it, it could take the



Jennings                Expires November 10, 2016               [Page 6]

Internet-Draft          WebRTC and STIR Identity                May 2016


   Passport token in the Identity and create a new assertion using the
   cached domain and protocol and insert that.  This is really gross and
   we need to figure out a way where the SDP from SIP is the same as the
   SDP from WebRTC when using the same passport token.

3.  Proposed Changes

3.1.  Remove Identity Hint Hack

   Passing

               JSON.stringify({"otn":"14084219990",
                             "duri":"sip:jon@example.org"})

   is sort of a hack.  It would be better to pass "14084219990" as the
   identity hint and have the API support an optional destination hint
   where we pass "sip:jon@example.org"

3.2.  Fingerprint format.

   Unify the format of the fingerprints between STIR and WebRTC.

   Proposal move to something more like

     {
       "alg":"HS256",
       "digest":"23:E8:6E:28:3F:D1:CF:17:DE:88:0F:EE:5A:AB:
               AD:03:2D:77:FB:05:17:BA:61:12:1B:37:D4:19:4F:38:DF:EC"
     }

   And perhaps choose a more compact for the digest value - preferably
   base 64.

3.3.  Format of identity header

3.3.1.  Token type in Identity header to allow multiple identity headers

   Have the type of identity token in a standard form outside the actual
   token so that things that don't understand the token still know what
   it is

   So the Identity line would change from something like

                a=identity:eyJhc3NlNzcG9ydHYxIn19;info=URL

   to

         a=identity:eyJhc3NlNzcG9ydHYxIn19;info=URL;type=passport



Jennings                Expires November 10, 2016               [Page 7]

Internet-Draft          WebRTC and STIR Identity                May 2016


3.3.2.  WebRTC support multiple tokens

   Nice to allow multiple IdP that produce different token types for a
   given offer in WebRTC.

   If the SDP had multiple tokens of different types, do we need WebRTC
   to be able to support this.

3.3.3.  Abstract the identity and protocol in the WebRTC assertion

   Currently the WebRTC token has to have the domain and protocol in a
   well defined location in the assertion.  But when this is represented
   into SDP, it might be better to have it as optional tags on the
   Identity line instead of in the actual token.  So the Identity line
   would change from something like

                     a=identity:eyJhc3NlNzcG9ydHYxIn19

   to

        a=identity:eyJhc3NlNzcG9ydHYxIn19;
                domain=https://ks.fluffy.im:10443;protocol=passport

   This would allow systems using passport identity to have the same SDP
   regardless of it the SDP was for WebRTC or SIP

   This would also Passport Tokens generated in SIP to work for WebRTC

3.4.  Future Proofing

   WebRTC allows future things to be added to the contents object passed
   to the IdP JS.  They have to be conveyed to the far side (see section
   5.6.4 of [I-D.ietf-rtcweb-security-arch]).

   Proposal.  Copy them into the claims in the passport token.

3.5.  TEL URI

   For single phone numbers, we already have a way to encode that in
   certificates using the SAN with a URI containing a tel URI.

   Proposal.  Allow existing cert to be valid STIR certificates.

3.6.  RFC822 Names

   Consider an WebRTC endpoint that initiates a call using WebRTC that
   is then translated to SIP then translated to XMPP to deliver it to
   the far end user.  Using a name like "sip:fluffy@example.com" is



Jennings                Expires November 10, 2016               [Page 8]

Internet-Draft          WebRTC and STIR Identity                May 2016


   pretty weird at the WebRTC and XMPP end.  It might be better to use
   822 style names instead of URIs.

   If this was done, it would likely need to use the work that extends
   the current X509 specifications to allow i18n names.  (For example
   see [I-D.lbaudoin-iemax] )

3.7.  Encoding

   We start with a fingerprint in binary and encoding it like "AA:BB:CC"
   resulting in an expansion of 3 times.  It then expands 1.3 times in
   the base64 encoding of the payload when then expands 1.3 times in the
   base64 encoding of the identity header making it over 5 times larger
   than the original.

3.8.  WebRTC Canonical Form

   Ensure the definition of what goes in the WebRTC assertion content
   array is well specified.  Ensure it does not need to be bitwise exact
   but only the same when compared at JS object level.

3.9.  Multi party

   For a conference call or group MMS, we need to allow multiple
   destinations.

   Proposal: making the duri a list.

4.  Acknowledgments

   Thank you to Russ Housley for comments.

5.  References

5.1.  Normative References

   [I-D.ietf-rtcweb-security-arch]
              Rescorla, E., "WebRTC Security Architecture", draft-ietf-
              rtcweb-security-arch-11 (work in progress), March 2015.

   [I-D.ietf-stir-certificates]
              Peterson, J., "Secure Telephone Identity Credentials:
              Certificates", draft-ietf-stir-certificates-03 (work in
              progress), March 2016.







Jennings                Expires November 10, 2016               [Page 9]

Internet-Draft          WebRTC and STIR Identity                May 2016


   [I-D.ietf-stir-passport]
              Wendt, C. and J. Peterson, "Persona Assertion Token",
              draft-ietf-stir-passport-01 (work in progress), March
              2016.

   [I-D.ietf-stir-rfc4474bis]
              Peterson, J., Jennings, C., Rescorla, E., and C. Wendt,
              "Authenticated Identity Management in the Session
              Initiation Protocol (SIP)", draft-ietf-stir-rfc4474bis-08
              (work in progress), March 2016.

5.2.  Informative References

   [I-D.lbaudoin-iemax]
              Baudoin, L., Chuang, W., and N. Lidzborkski,
              "Internationalized Electronic Mail Addresses in RFC5280 /
              X.509 Certificates", draft-lbaudoin-iemax-02 (work in
              progress), February 2016.

Appendix A.  Example Cert

   The cert used to generat the examples is:

     -----BEGIN CERTIFICATE-----
     MIIDOzCCAiOgAwIBAgIJANgkZSg8VNNEMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV
     BAYTAkNBMQ8wDQYDVQQIDAZBbGJydGExEDAOBgNVBAcMB0NhbGdhcnkxDzANBgNV
     BAsMBkZsdWZmeTAeFw0xNjA1MDIyMjUxMjZaFw0yNjA0MzAyMjUxMjZaMEExCzAJ
     BgNVBAYTAkNBMQ8wDQYDVQQIDAZBbGJydGExEDAOBgNVBAcMB0NhbGdhcnkxDzAN
     BgNVBAsMBkZsdWZmeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKhn
     +91RRdt29jwXrUwkAthRA2LQ7UP5bfEy8CpJcgNHEQDryoLQJmQQsP0Hi5qf6CJA
     dWW3+vmfKZHhbsDblI8iVCMhekKr/kbplMLSJFdNEkg/cWM3BKBVuqMmmArdpki9
     62TmHkO2g+Fk+nubmsB8EDhXvp+TLO1mf1mT6vIUW+U5WVTeghLz8YO+kUjrS0fW
     +GWD2lrgEMwvHfuUeBsTD48elXDDPhRAFrB5+TF044Y5+F1lS4iqpD7d1e2rw/YQ
     VrHOTJot5T6H33vSvVGGtTZqqDKdTDhCGISb95/IDYSMGT67OoJSlG6/VDyI643V
     g0tXkEN2N+TWBv+zDT0CAwEAAaM2MDQwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAw
     GgYDVR0RBBMwEYYPdGVsOjE0MDg0MjE5OTkwMA0GCSqGSIb3DQEBCwUAA4IBAQBT
     g/mt3vzs7pTsFCTgNA49vPae+M4IPPqgqfuGPzpCPhzYYnly5EiZYoSaFtYJJiUA
     6Hwna0n7SVZdLwHEx7uOk3HHEdjAw8RIf4xSSdjv+IWDDyLl5fLVxyPqnJAAvQ9k
     bOV25stTbbKz0EEXV/VKe7A5bILxc2e+JUKjarff2aAEfO8mk+fSVsn5DnBJk3kS
     kn8oGaYy5T+5HjdanOfR9ZIZBwTi7XIieSHUzuA7ax5QNugLEgUDPsus1BBxr5Bd
     A/HwL0pU7iO4/Hsx1QeNBXy/34yC4n5OCFI5FmfOB+VmJWbDmilH6+uByj339Ii2
     2zMX9jtye/So5f5PGlRE
     -----END CERTIFICATE-----

   which contains

   Certificate:
       Data:



Jennings                Expires November 10, 2016              [Page 10]

Internet-Draft          WebRTC and STIR Identity                May 2016


           Version: 3 (0x2)
           Serial Number:
               d8:24:65:28:3c:54:d3:44
       Signature Algorithm: sha256WithRSAEncryption
           Issuer: C = CA, ST = Albrta, L = Calgary, OU = Fluffy
           Validity
               Not Before: May  2 22:51:26 2016 GMT
               Not After : Apr 30 22:51:26 2026 GMT
           Subject: C = CA, ST = Albrta, L = Calgary, OU = Fluffy
           Subject Public Key Info:
               Public Key Algorithm: rsaEncryption
                   Public-Key: (2048 bit)
                   Modulus:
                       00:a8:67:fb:dd:51:45:db:76:f6:3c:17:ad:4c:24:
                       02:d8:51:03:62:d0:ed:43:f9:6d:f1:32:f0:2a:49:
                       72:03:47:11:00:eb:ca:82:d0:26:64:10:b0:fd:07:
                       8b:9a:9f:e8:22:40:75:65:b7:fa:f9:9f:29:91:e1:
                       6e:c0:db:94:8f:22:54:23:21:7a:42:ab:fe:46:e9:
                       94:c2:d2:24:57:4d:12:48:3f:71:63:37:04:a0:55:
                       ba:a3:26:98:0a:dd:a6:48:bd:eb:64:e6:1e:43:b6:
                       83:e1:64:fa:7b:9b:9a:c0:7c:10:38:57:be:9f:93:
                       2c:ed:66:7f:59:93:ea:f2:14:5b:e5:39:59:54:de:
                       82:12:f3:f1:83:be:91:48:eb:4b:47:d6:f8:65:83:
                       da:5a:e0:10:cc:2f:1d:fb:94:78:1b:13:0f:8f:1e:
                       95:70:c3:3e:14:40:16:b0:79:f9:31:74:e3:86:39:
                       f8:5d:65:4b:88:aa:a4:3e:dd:d5:ed:ab:c3:f6:10:
                       56:b1:ce:4c:9a:2d:e5:3e:87:df:7b:d2:bd:51:86:
                       b5:36:6a:a8:32:9d:4c:38:42:18:84:9b:f7:9f:c8:
                       0d:84:8c:19:3e:bb:3a:82:52:94:6e:bf:54:3c:88:
                       eb:8d:d5:83:4b:57:90:43:76:37:e4:d6:06:ff:b3:
                       0d:3d
                   Exponent: 65537 (0x10001)
           X509v3 extensions:
               X509v3 Basic Constraints:
                   CA:FALSE
               X509v3 Key Usage:
                   Digital Signature, Non Repudiation, Key Encipherment
               X509v3 Subject Alternative Name:
                   URI:tel:14084219990
       Signature Algorithm: sha256WithRSAEncryption
            53:83:f9:ad:de:fc:ec:ee:94:ec:14:24:e0:34:0e:3d:bc:f6:
            9e:f8:ce:08:3c:fa:a0:a9:fb:86:3f:3a:42:3e:1c:d8:62:79:
            72:e4:48:99:62:84:9a:16:d6:09:26:25:00:e8:7c:27:6b:49:
            fb:49:56:5d:2f:01:c4:c7:bb:8e:93:71:c7:11:d8:c0:c3:c4:
            48:7f:8c:52:49:d8:ef:f8:85:83:0f:22:e5:e5:f2:d5:c7:23:
            ea:9c:90:00:bd:0f:64:6c:e5:76:e6:cb:53:6d:b2:b3:d0:41:
            17:57:f5:4a:7b:b0:39:6c:82:f1:73:67:be:25:42:a3:6a:b7:
            df:d9:a0:04:7c:ef:26:93:e7:d2:56:c9:f9:0e:70:49:93:79:



Jennings                Expires November 10, 2016              [Page 11]

Internet-Draft          WebRTC and STIR Identity                May 2016


            12:92:7f:28:19:a6:32:e5:3f:b9:1e:37:5a:9c:e7:d1:f5:92:
            19:07:04:e2:ed:72:22:79:21:d4:ce:e0:3b:6b:1e:50:36:e8:
            0b:12:05:03:3e:cb:ac:d4:10:71:af:90:5d:03:f1:f0:2f:4a:
            54:ee:23:b8:fc:7b:31:d5:07:8d:05:7c:bf:df:8c:82:e2:7e:
            4e:08:52:39:16:67:ce:07:e5:66:25:66:c3:9a:29:47:eb:eb:
            81:ca:3d:f7:f4:88:b6:db:33:17:f6:3b:72:7b:f4:a8:e5:fe:
            4f:1a:54:44

Appendix B.  Example Private Key

   The private key for the cert is:

     -----BEGIN RSA PRIVATE KEY-----
     MIIEpAIBAAKCAQEAqGf73VFF23b2PBetTCQC2FEDYtDtQ/lt8TLwKklyA0cRAOvK
     gtAmZBCw/QeLmp/oIkB1Zbf6+Z8pkeFuwNuUjyJUIyF6Qqv+RumUwtIkV00SSD9x
     YzcEoFW6oyaYCt2mSL3rZOYeQ7aD4WT6e5uawHwQOFe+n5Ms7WZ/WZPq8hRb5TlZ
     VN6CEvPxg76RSOtLR9b4ZYPaWuAQzC8d+5R4GxMPjx6VcMM+FEAWsHn5MXTjhjn4
     XWVLiKqkPt3V7avD9hBWsc5Mmi3lPoffe9K9UYa1NmqoMp1MOEIYhJv3n8gNhIwZ
     Prs6glKUbr9UPIjrjdWDS1eQQ3Y35NYG/7MNPQIDAQABAoIBAF6ELdmi+aAY/k3v
     w/WN6ILbxRi6xc92uHu86QnyuqiYRDTOIZSVmlZi/9KjX3ji8nf20WzLe3KKH9ye
     N3jKRHCpBavJ6EJvIYFPK4zEQF03BmHCKbNTd6c9NkjHKmI+0ErXPLweYzIBx7bC
     48poJMyPVNMqe/Q3t+lts1/lIuHGHhdnSn7ao6hP+xE7V+PMXic1f/hL7WwpCUvt
     N0IQp4sgqbrZwfVaGtkDSrzdYELYQb9QHEiMGoYg6oC7uGMoX1zi5B52BRP8MArA
     9htEx4r9bAFCBX/lvQkq3QP5Pg6okhAB2eqEk2zUzUJlfHC1kr6aw8744potJmJW
     ZiOdzkECgYEA2S8aw+CI6h9T07BBbX+xFqQhUot0ngeErW49BgvrOLwLEacI9ofb
     b4BkNGzcFMejAk2fqRfhwwu53Y8+5u+xMrw3pC/lvrDjFNaXD3nILr1PdlAE/hee
     hMkb60HQFYSoG6ZcdbqSeYkp1fn5TsN7tAhQT21NVxEWb4J9az02LrkCgYEAxoEh
     gfczbkFM/dDiCXg2R9LxKTNwiZD2iugVLV0kML4zJryk5/QVK5wumOtZpjfJzVi3
     hC0jL7gzhHUymfo6owG72S5qiodbdkhHqpqODVlCLgY+3VTBBiomLO9YWSYzW6QO
     sOQCA+dwBuL/6IEY4rFX6x/AL8sh4JSXYjcGcKUCgYEA0FKVmtOyoNgh4UkMyUqV
     hAE1kWcBGmBdzLmUQUuHeikteOY++7K/Mon2FC9jP29rFdd9UYX94MhLpZE0pfG+
     h8rwmEX1Wt9zQlbAGXEYKnUeVn9U+qGPRRFe/V9oiGtxkOwXfjnTLE78WSppEDsE
     WmErH7TZXa2fVqDVStsxMMkCgYBMgPQTDNzLf2tW3yxejfANmmTLhkG3IyGBw5R1
     2VHbX1KDeWzs4ItQNW9YDEyO3S1vcOO5k1PeTlW8lRaddW0n6cEmINd68FP1sEG+
     pLZeuqng5xNPZhzGbXQtGUmpgimFBiOLVTTZoFbysIYEa8zVgZfqzF/bi6RQ07PM
     bHyU6QKBgQDYCytiEWCz7vKoSRjE5vng3eNRVtYbbe8AiJv6qjYz8rOosJEMDoMV
     vPOREdf2EkXdOODvgqCjh0HDCP112qyoMoQB/PC9ihum4ZTZn1KUI5Rj0GHc1GwW
     d8jDOR91y0tjvnLQv37RLe4j9327ism0cf8NSlMe4tsWJocF6JYNoA==
     -----END RSA PRIVATE KEY-----

Author's Address

   Cullen Jennings
   Cisco Systems

   Email: fluffy@iii.ca





Jennings                Expires November 10, 2016              [Page 12]