PEM significa Privacy Enhanced Mail , ma l'acronimo è stato a lungo sopravvissuto al formato del file. Il formato "PEM" è un metodo per codificare i dati binari in testo, in modo che i dati possano sopravvivere al trasporto attraverso un mezzo che è basato sul testo e non molto attento con i dati (tipicamente le e-mail).
Fondamentalmente, PEM inizia con qualche intestazione:
-----BEGIN FOOBAR-----
seguito dalla Base64 codifica dei dati binari e da una riga del piè di pagina che segna la fine dell'elemento:
-----END FOOBAR-----
Pertanto, il formato PEM è piuttosto generico e devi guardare l'intestazione per sapere cosa hai effettivamente nel file.
Nel tuo caso, devi fare una distinzione tra il certificato e la chiave privata . Il certificato è la parte pubblica; è qualcosa che il client e il server SSL si scambiano l'un l'altro durante l'iniziale handshake. I certificati possono viaggiare via e-mail; poiché contengono solo dati pubblici e sono inoltre firmati, non necessitano di ulteriore protezione.
Le chiavi private sono un'altra impresa. Nell'handshake SSL, il client invia al server una copia del certificato (in modo che il server possa apprendere qual è la chiave pubblica del client), e quindi il client dimostra la sua padronanza della chiave privata corrispondente (internamente, viene calcolata una firma su una sfida dal server). La chiave privata è ciò che rende il client "speciale": l'attaccante non lo sa. Se l'utente malintenzionato conosceva la chiave privata, allora poteva impersonare il client e questo è esattamente ciò che si desidera evitare.
Pertanto, l'invio di una chiave privata "così com'è" via email dovrebbe davvero non accadere.
Tuttavia, nella tua situazione, vuoi che il client ("lo sviluppatore in un altro stato") ottenga sia il certificato che la chiave privata. Hai quindi bisogno di un modo per trasmettere sia il certificato che la chiave privata a quel cliente. Il solito metodo utilizza il formato PKCS # 12 , che consente la crittografia basata su password:
- Avvolgi sia il certificato che la sua chiave privata in un file PKCS # 12 protetto con una password enorme, grassa e molto casuale.
- Invia il file risultante (chiamato convenzionalmente ".p12" o ".pfx") al destinatario.
- Telefona al destinatario per dargli la password, in modo che possa decrittografare il pacchetto e ottenere così il certificato e la chiave privata.
Se non c'è nessuno disponibile nella tua organizzazione, chissà che cos'è un certificato o una chiave privata, allora hai un problema. Vale a dire, che stai usando la crittografia senza comprenderla. Hai avuto un "esperto di sicurezza" ad un certo punto: riportalo indietro. La sicurezza non tollera bene l'improvvisazione.