Quale algoritmo di digest da utilizzare con la creazione di una coppia di chiavi pubblica / privata

3

Sto generando una coppia di chiavi pubblica / privata in PHP con il seguente:

<?php
$config = array(
    "digest_alg" => "sha512",
    "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
 );

// Create the private and public key
$res = openssl_pkey_new($config);

// Extract the private key from $res to $privKey
openssl_pkey_export($res, $privKey);

// Extract the public key from $res to $pubKey
$pubKey = openssl_pkey_get_details($res);
?>

Ma dubito di cosa scegliere per la variabile digest_alg . Qual è il "migliore" da usare qui? Dove posso scegliere? E, ultimo ma non meno importante, che cosa fa?

    
posta stUrb 17.01.2014 - 21:04
fonte

1 risposta

6

digest_alg non è utilizzato da openssl_pkey_new() ma da openssl_csr_new() : quest'ultimo crea una coppia di chiavi pubblica / privata e avvolge la chiave pubblica in una richiesta di certificato, autofirmata (con la chiave privata appena generata). Quella firma implica l'uso di una funzione di hash, quindi il parametro.

openssl_pkey_new() non comporta alcuna firma e quindi non ha bisogno di un parametro "funzione hash".

Per openssl_csr_new() , le tue scelte sensate sono tra SHA-256 (robusto, raccomandato, efficiente) e SHA-1 (teoricamente meno robusto, non più raccomandato, un po 'più veloce e, soprattutto, supportato ovunque). IE 8.0 su Windows XP (con tutti gli aggiornamenti) supporta SHA-256 per i certificati (l'ho provato ieri), quindi propendo di affermare che SHA-256 è ora sufficientemente supportato da poter essere raccomandato "di default".

    
risposta data 17.01.2014 - 21:14
fonte

Leggi altre domande sui tag