2010-10-31 12 views
7

Ho una coppia di chiavi pubbliche/private (RSA) pgp di cui i miei amici si fidano. Ho un server web in esecuzione e mi piacerebbe generare un certificato SSL la cui chiave pubblica corrisponde alla mia chiave pubblica pgp.è possibile creare un certificato ssl con una chiave pubblica/privata pgp?

ha senso? è possibile ? è sicuro?

+0

Per cosa ti serve? Fisicamente, sarà la stessa chiave, ma non ne farai alcun uso. –

+0

Sebbene entrambi siano una forma di crittografia a chiave pubblica, sono diversi. Vedi http://forums.comodo.com/digital-certificates-encryption-and-digital-signing/what-is-the-difference- tra-ssl-public-key-and-pgp-public-key-t21909.0 .html – Eugene

+0

Sì, ho capito che servono a scopi diversi (imballaggio e uso previsto). La domanda, tuttavia, è se è possibile utilizzare la stessa chiave pubblica per entrambi i casi. –

risposta

7

Se il formato della chiave nella chiave PGP è supportato anche nel formato X.509, è possibile. RSA è uno di questi.

Ecco un Java implementation che trasforma un certificato PGP in un certificato X.509 auto-firmato, utilizzando BouncyCastle (Avrai bisogno di caricare il provider di protezione BouncyCastle prima di caricarla).

Nota che ciò che la maggior parte delle persone chiamano una chiave PGP pubblica è infatti un certificato PGP . La chiave pubblica stessa è la chiave RSA (o altro formato) contenuta in tali certificati. Quindi è possibile prendere il materiale chiave e usarlo nell'altro. Tuttavia, così facendo perdi le informazioni che rendono il certificato PGP un certificato: il legame della chiave con un'identità e le firme aggiunte da altri (seguendo il modello PGP).

Potresti potenzialmente inserire le informazioni aggiuntive del certificato PGP nella tua estensione nel certificato X.509.

Se ha senso farlo dipende probabilmente da ciò che si desidera ottenere. Riutilizzare lo stesso materiale chiave più o meno implica che "tu" (ID dietro il certificato PGP) e il tuo server web diventano uno e lo stesso, poiché se una chiave privata viene compromessa, lo è anche l'altro (Apache Httpd, ad esempio, richiede che la chiave privata non sia protetta da password quando sono archiviate sul server, sebbene spesso sia accessibile solo dall'utente root). Inoltre, questo probabilmente non aiuterà molto i tuoi visitatori che visiteranno il sito Web, a meno che non vogliano scavare nella casella di avviso "certificato sconosciuto" per verificare che la chiave pubblica corrisponda al tuo (che potrebbero conoscere).

+0

questa era la risposta che stavo cercando bruno! convalida ciò che avevo in mente e fa emergere la differenza tra certificati e identità. Grazie! –

+0

Se crei una chiave RSA che il tuo server usa come certificato X.509 e usi la tua chiave PGP personale per firmare la tua chiave del server, dimostrando che ti fidi del tuo server, allora la rete di fiducia non dovrebbe lasciare i tuoi amici fidati del tuo server?Credo che sia più o meno come funziona la monkeysphere (citata da http://stackoverflow.com/a/7629599/69663). – unhammer

+1

@unhammer, hai bisogno di un modo per presentarlo. I browser utilizzano solo certificati X.509. (V'è una specifica per l'utilizzo di certs OpenPGP con TLS direttamente, ma non c'è molto poche implementazioni.) Non è mai solo la chiave che si firma, ma il legame tra l'identità e la chiave. Non avrebbe senso firmare la chiave indipendentemente dall'identità del server e da altri attributi, che sarebbe effettivamente un certificato distinto. Sfortunatamente ci sono altri problemi con il modello WoT: i modelli possono diventare rapidamente molto complessi. – Bruno

Problemi correlati