Server Side Key Generation - dogtagpki/pki GitHub Wiki

Key Recovery Authority (KRA) supports server-side key generation. The process of the server-side key generation is as the following:

  • TPS receives enrollment request and CID (Card Identification) from the client

  • TPS forwards the CID to TKS

  • TKS derives key-encryption-key (KEK) from the CID and generates key-transport-session-key (KTSK)

  • TKS wraps the key-transport-session-key with the key-encryption-key

  • TKS retrieves the server-transport-key (STK) and wrap the key-transport-session-key with the server-transport-key

  • TKS forwards KEK(KTSK) and STK(KTSK) to TPS

  • TPS forwards STK(KTSK) and the server-side key generation key request to KRA

  • KRA generates subject public (SPubK) and private key (SPrivK) pair

  • KRA retrieves storage key and generates a storage session key (SSK)

  • KRA wraps subject private key with storage session key and wraps the storage session key with the storage key and archives SSK(SPrivK) and SK(SSK)

  • KRA decrypts STK(KTSK)

  • KRA wraps subject private key with transport session key: KTSK(SPrivK)

  • KRA forwards KTSK(SPrivK) and SPubk to TPS

  • TPS forwards KTSK(SPrivK) and KEK(KTSK) to Token

  • TPS sends certificate enrollment requests with SPubK information to CA

  • TPS receives certificates from CA and forwards them to token.

⚠️ **GitHub.com Fallback** ⚠️