• Also known as
  • Public Key Infrastructure

Pub­lic Key Infra­struc­ture (PKI) con­sists of soft­ware and hard­ware ele­ments for build­ing a hier­ar­chy of trust to securely and pri­vately exchange the infor­ma­tion over pub­lic unse­cure net­works.

PKI is using math­e­mat­i­cally related key pairs to encrypt and decrypt infor­ma­tion (asym­met­ric encryp­tion). It is is usu­ally used for data encryp­tion (e.g., with SSL cer­tifi­cates, for send­ing authen­ti­cated and encrypted email mes­sages, secure instant mes­sag­ing, ...), for dig­i­tal sign­ing and for enter­prise grade authen­ti­ca­tion solu­tions or sin­gle sign-on, while a trusted third party estab­lishes the integrity and own­er­ship of the used pub­lic keys.

Key pairs for asym­met­ric encryp­tion con­sist of a cryp­to­graphic pri­vate key and a cryp­to­graphic pub­lic key. Both keys are math­e­mat­i­cally related. Infor­ma­tion can be encrypted using the pub­lic key only, but decryp­tion requires both, the pub­lic key and the pri­vate key. When using asym­met­ric encryp­tion, pub­lic keys will be dis­trib­uted to and shared with com­mu­ni­ca­tion part­ners (peers), while pri­vate keys must remain with their own­ers and must never be shared with any­one else. This still poses the risk, that pub­lic keys are inter­cepted and altered by third-par­ties, while being dis­trib­uted using unse­cure net­works.

PKI addresses this risk and ensures, that dis­trib­uted pub­lic keys really belong to the intended peers. This is achieved by using a trusted third party, the cer­tifi­cate author­ity (CA). The cer­tifi­cate author­ity typ­i­cally checks the iden­tity of the key owner (sub­ject) and then issues the key pair to the key owner, whereas pri­vate keys usu­ally are pro­vided as key files, on smart cards or on USB tokens, and pub­lic keys in form of pub­lic key cer­tifi­cates. A pub­lic key cer­tifi­cate is binary data con­tain­ing the pub­lic key and infor­ma­tion about the sub­jects' iden­tity, which has been signed (encrypted) by the cer­tifi­cate author­ity itself. The most com­monly used stan­dard for robust pub­lic key cer­tifi­cates is X.509; the most com­mon cer­tifi­cate for­mats are the binary form DER or the tex­tual rep­re­sen­ta­tion PEM.

The cer­tifi­cate author­ity shares the pub­lic key cer­tifi­cates (e.g., in form of a search­able cer­tifi­cate data­base on its web­sites) and main­tains cer­tifi­cate revo­ca­tion lists (CRLs). The revo­ca­tion lists allow peers to ver­ify the sta­tus of pub­lic key cer­tifi­cates. This way, peers can always check the valid­ity and sta­tus of pub­lic key cer­tifi­cates, whether the per­son or sys­tem iden­ti­fied as send­ing the infor­ma­tion really is the orig­i­na­tor, that the per­son or sys­tem receiv­ing the infor­ma­tion is the intended recip­i­ent, and that the infor­ma­tion has not been com­pro­mised between orig­i­na­tor and recip­i­ent.