The sequence diagram above describes the certificate request when using PKCS#10 with HTTP Digest authentication. The actions involving WIM application in steps 3 6 shall be omitted if there is no WIM application in the UE. The procedure is secured as specified in
. The detailed definition of the messages is left to stage 3 specifications.
Step 1.
The sequence starts with the UE sending an empty HTTP request to the PKI portal.
Step 2.
The PKI portal responds with HTTP response code 401 "Unauthorized" which contains a WWW-Authenticate header. The header instructs the UE to use HTTP Digest authentication.
Step 3.
The UE will generate the HTTP request by calculating the Authorization header values using the bootstrapping transaction identifier (B TID) it received from the BSF as username and the NAF specific session key Ks_NAF. If the certificate request needs extra assurance by a WIM application for key proof-of-origin, the UE generates a WIM challenge request containing parameters needed for key proof-of-origin generation
[14].
Step 4.
The UE sends HTTP request to the PKI portal and includes the WIM challenge request in this request.
Step 5.
When the PKI portal, acting as an NAF, receives the request, it will verify the Authorization header by fetching the NAF specific session key Ks_NAF from the BSF using the B TID, then calculating the corresponding digest values using Ks_NAF, and finally comparing the calculated values with the received values in the Authorization header. If the verification succeeds and the extra assurance for WIM application is needed, the PKI portal may use the PKI portal specific user security setting to compute the WIM challenge response
[14].
Step 6.
The PKI portals send back a WIM challenge response containing additional parameters that are needed for the following PKCS#10 request generation. The PKI portal may use session key Ks_NAF to integrity protect and authenticate this response.
Step 7.
The UE will then generate the PKCS#10 request and send it to the PKI portal by using an HTTP Digest request. In the case that the private key is stored in a WIM application the ME should request the AssuranceInfo from the WIM application and include it in the PKCS#10 request, if provided. The enrolment request will follow the PKCS #10 certificate enrollment format as defined in
[1]. Adding AssuranceInfo in this request is defined in the OMA ECMA Script specification
[14]. The AssuranceInfo provides a proof of origin for the key processing.(e.g. identifies the WIM application and provides a proof that the key is stored in it). UE may indicate the desired format of the certification response: a certificate, a pointer to the certificate (e.g., URL), or a full certificate chain (i.e., from the issued certificate to the corresponding root certificate).
Step 8.
The enrolment request shall be as follows:
POST <base URL>?response=<indication>[other URL parameters] HTTP/1.1
Content-Type: application/x-pkcs10
<base64 encoded PKCS#10 blob>
where:
<base URL>
identifies a server/program.
<indication>
used to indicate to the PKI portal what is desired response type for the UE. The possible values are: "single" for subscriber certificate only, "pointer" for pointer to the subscriber certificate, or "chain" for full certificate chain.
[other URL parameters]
are additional, optional, URL parameters.
Step 9.
The incoming PKCS#10 request is taken in for further processing. If the PKI portal is actually a registration authority (RA), the PKCS#10 request is forwarded to CA using any protocol available (e.g., CMC as specified in
RFC 2797 or CMP as specified in
RFC 2510 and
RFC 2511). After the PKCS#10 request has been processed and a certificate has been created, the new certificate is returned to the PKI portal. It will generate a HTTP response containing the certificate, or the pointer to the certificate as defined clause 7.4 of WPKI
[9], or a full certificate chain from issued certificate to the root certificate.
Step 10.
If the HTTP response contains the subscriber certificate itself, it shall be base64 encoded, and it may be demarcated as follows:
HTTP/1.1 200 OK
Content-Type: application/x-x509-user-cert
-----BEGIN CERTIFICATE-----
<base64 encoded X.509 certificate blob>
-----END CERTIFICATE-----
If the HTTP response contains the pointer to the certificate, the CertResponse structure defined in subclause 7.3.5 of the OMA WPKI
[9] shall be used, and it may be demarcated as follows:
HTTP/1.1 200 OK
Content-Type: application/vnd.wap.cert-response
-----BEGIN CERTIFICATE RESPONSE-----
<base64 encoded CertResponse structure blob>
-----END CERTIFICATE RESPONSE-----
If the HTTP response contains a full certificate chain in PkiPath structure as defined in
[15] and it shall be base64 encoded:
HTTP/1.1 200 OK
Content-Type: application/pkix-pkipath
<base64 encoded PkiPath blob>
The content-type header value for the certificate chain is
"application/pkix-pkipath" as specified in
[15].
The PKI portal may use session key Ks_NAF to integrity protect and authenticate the response, if a certificate or a pointer to the certificate is sent to the UE. The PKI portal shall use integrity protection and authenticate the response if full certificate chain is sent to the UE.
Step 11.
When UE receives the subscriber certificate or the URL to subscriber certificate, it is stored to local certificate management system.