Esiste una chiave Diffie-Hellman statica SSLeay / PKCS al 1 ° stile?

0

Cioè, potresti mai trovare un file PEM che inizi:

-----BEGIN DH PRIVATE KEY-----

o

-----BEGIN DH PUBLIC KEY-----

E se sì, qual è la sua struttura?

So che i tasti DH statici sono una stranezza e forse anche estinti. E so che puoi inserire una chiave privata DH all'interno di un wrapper PKCS # 8 e che puoi inserire una chiave pubblica DH in un certificato X.509 o averla come chiave pubblica in stile X.509 libera - o almeno , che OpenSSL sa come farlo! Ma non riesco a trovare alcun riferimento a nessuno che abbia mai usato il formato precedente per le chiavi DH statiche.

Il motivo per cui chiedo è che sto scrivendo un codice che prende le chiavi come input, e mi piacerebbe supportare una vasta gamma di chiavi il più possibile. Sono in grado di gestire le chiavi per gli algoritmi RSA, DSA, EC e DH. Per quanto riguarda i formati, supporto:

  • Formato PKCS # 8 per chiavi private
  • X.509 Formato PublicKeyInfo (come prodotto da openssl pkey ) per le chiavi pubbliche
  • PKCS # 1 per chiavi private RSA
  • PKCS # 1-like per le chiavi private DSA (come prodotto da openssl dsaparam -genkey )
  • PKCS # 1-like per le chiavi private EC (come prodotto da openssl ecparam -genkey )

Sto cercando di risolvere il problema con il formato PKCS # 1 anche per le chiavi private DH, perché se c'è, dovrei supportarlo.

    
posta Tom Anderson 21.06.2016 - 17:31
fonte

1 risposta

1

Versione breve:

  • Sì, PKCS # 8 è un wrapper in stile PKCS # 1 che può contenere un tasto DH.
  • PKCS # 1 è un formato specifico per RSA, quindi no, non troverai una chiave DH in esso.

Versione media:

C'era una volta, RSA ha inventato qualche cripto. E volevano avvolgerlo in un formato utilizzabile, così hanno inventato PKCS # 1. Ecco perché è, lo sai, # 1 - perché è venuto prima. Ma in realtà gestiva solo le chiavi RSA, come dimostrato dall'uso di "RSA" nel wrapper.

Un po 'più avanti lungo la strada, hanno detto "Aspetta un attimo! Dovremmo essere in grado di fare la stessa cosa con i tasti DH, i tasti Curva ellittica e ... Creiamo un nuovo PKCS che sia flessibile in base alla progettazione e in grado di gestire diversi tipi di chiavi e, mentre lo facciamo, prendiamo il nome dell'algoritmo OUT del wrapper e lo codifichiamo come parte dei dati. " Ed è così che è nata PKCS # 8.

Versione lunga:

C'è una domanda su Stack Overflow che ha attivato alcune grandi risposte in questo spazio. Questa risposta parla della distinzione PKCS # 1 / PKCS # 8. E questa risposta , che è orsetto nella sua suggestione, entra nei dettagli della storia del design che ho provato per riassumere nella versione Media sopra.

Nota a piè di pagina: la "versione lunga" è effettivamente più lunga una volta che hai letto le due risposte SO di riferimento, quindi non essere snarky.

    
risposta data 21.06.2016 - 18:44
fonte

Leggi altre domande sui tag