Certificate authorities
Основната идея е да има няколко доверени компании или институции, които да гарантират, че даден публичен ключ наистина принадлежи на този, който твърди, че е негов.
Такива институции се наричат Certificate Authorities (CA) и са организирани иерархично, като на върха стоят т.н. Root Certificate Authorities – такива като DigiCert, Comodo, GoDaddy, GlobalSign и др.
A самата проверка става с процес, наречен Chain of Trust.
Web of trust
Тук принципът е близък до certificate authority с разликата, че няма certificate authorities и сертификатите са self-signed. Web of trust може да се оприличи на малки групи от взаимно имащи си доверие участници и няма нужда от централизирана CA да проверява идентичността им.
Удобен е например в рамките на фирма или друга група участници и няма нужда от глобална CA.
Simple public key infrastructure
Тук основната задача е потребителят да бъде ауторизиран, не аутентикиран, т.е. да се определи не кой е и дали е този, който твърди, че е, а какви са му правата. Така, идеята е не да свързват публичен ключ с идентичност, а публичен ключ с права. …a new kind of certificates linking together authorization information and public keys instead of identities and public keys… The reasons for doing so are that global names ( or identities ) are difficult to obtain and computers may need to take decisions based on the identification information a certificate carries. Instead of relying on the names, SPKI relies on public keys and makes life simpler to people developing authorization systems based on PKI.
Също е важно един SPKI сертификат да носи колкото може по-малко инфо за човекът, на който принадлежи.
Допуска се дори анонимност.
Форматът трябва също да е максимално опростен. SPKI използва т.н. S-expressions, например:
(name (hash sha1 |TLCgPLFlGTzgUbcaYLW8kGTEnUk=|) jim therese)
Tук, така да се каже, на почит е ключът, не този на който принадлежи. В какъв смисъл?
В смисъл, че ключът е този, който има значение за ауторизирането, не на човекът.
Тук няма CA, съответно няма chain of trust… просто има един ключ и един човек, закачен към него.
Къде се използва PKI?
Secure Web Servers
SSL/TLS протоколът използва PKI сертификати за сигурно сървиране на интернет – HTTPS
SSH
Аутентикирането на потребител в сървър може да използва PKI сертификати.
Email Signing and Encryption
За да може да се изпращат secure emails. Има стандарт (S/MIME), който специфицира emails, подписани с X.509 сертификат.