In Windows, puoi avere chiavi private "da sole". A livello di codice, utilizzi CryptAquireContext()
per accedere a una chiave "per nome". CryptoAPI contiene molte funzioni che ti consentono di importare e utilizzare le chiavi, indipendentemente dai certificati.
Tuttavia, non esiste un'interfaccia grafica o un formato file esistente per la gestione delle chiavi private e le applicazioni non usano le chiavi per nome. Usano certificati . I certificati, in Windows, sono archiviati "altrove", ma ogni certificato nell'archivio "Il mio" può facoltativamente contenere un collegamento a una chiave privata corrispondente (il collegamento sarebbe in realtà un nome CSP e il nome di un contenitore all'interno di tale CSP). Ciò corrisponde a ciò che è previsto in vari protocolli. Ad esempio, in SSL, quando il server richiede un'autenticazione client con una chiave privata, richiede effettivamente un certificato: il client deve presentare un certificato e, solo allora, dimostrare di avere anche accesso alla chiave privata corrispondente.
Quindi, in pratica, i certificati e le chiavi "convivono" e le chiavi vengono raggiunte solo tramite certificati. Un certificato e la sua chiave privata viaggiano insieme, e questo significa un file PKCS # 12 (conosciuto anche come "PFX").