2014-09-08 13 views
15

Prima di tutto, sono un principiante nel mondo OpenSSL. Mi scuso in anticipo per eventuali errori di base, barbarici.OpenSSL - verifica su quale motore è una funzione chiamata e se l'hardware è realmente utilizzato?

consideri un flusso:

  1. Inizializza OpenSSL con il motore utilizzando hardware (chiamiamolo EngineHW).
  2. Chiamare una funzione OpenSSL, ad es. X509_sign.

Come verificare se la funzione richiamata è stata eseguita sull'hardware?

Come è stata chiamata la funzione EngineHW? Che cosa succede se la funzione non è definita da EngineHW: OpenSSL fallback su qualsiasi motore predefinito che ha?

La domanda è legata all'affermazione della qualità - dal momento che ho l'hardware per fare crypto per me, considero l'utilizzo del software una regressione (almeno per le funzioni importanti).

+0

Stai suggerendo [uso da riga di comando] (http://superuser.com)? –

+0

Sto suggerendo qualsiasi soluzione :(può essere tramite chiamate API dal codice che collega staticamente, dinamicamente, anche ricostruendo OpenSSL se aiuta. – hauron

+1

Il modo più semplice di controllo è ovviamente assicurandosi che la chiave privata o segreta non sia mai lasciando l'HSM, anche se devo ammettere che non è la stessa cosa di un log. Potrebbe essere meglio controllare la documentazione HSM (se possibile, le smart card potrebbero non registrare molto) –

risposta

1

Non so quale sia lo scopo di questo. Stai verificando che OpenSSL funzioni o stai testando il tuo codice? Sembra che vogliate fare test di regressione di OpenSSL e HSM?

Tuttavia, se si desidera verificare se X509_sign funziona, rimuovere tutte le chiavi software/basate su disco dal sistema di test e verificare se è possibile firmare qualcosa. Se ottieni una firma valida puoi essere certo che provenga dal tuo HSM. Se ottieni il null, non lo è. OpenSSL non esegue il fallback su una diversa funzione di segno e, anche se lo ha fatto, non può firmare poiché ha bisogno di una chiave per firmare. Spero che abbia risposto alla tua domanda.

+0

Mag: Grazie per la risposta. Ciò funzionerebbe in alcuni casi, dove la chiave è necessaria per essere presente nell'hardware, ma questo è appena sufficiente. Anche rand (essendo un passo nella firma) non delegato all'hardware potrebbe danneggiare qualunque segreto di sicurezza ... Ho trovato l'unico modo sicuro per rompere la connettività HSM e testare - tutte le funzioni una per una, o il reverse engineering del motore crittografico . – hauron

Problemi correlati