Perché la posta imbottita RSA-OAEP può essere decifrata usando OpenSSL 1.0.1e?

1

Ho crittografato i messaggi e specificato il padding RSA-OAEP con OpenSSL 1.0.2k, usando il seguente comando:

openssl cms -encrypt -in content.txt -out message.msg \
-recip public-key.pem -keyopt rsa_padding_mode:oaep

E può decrittografarli bene usando ancora v1.0.2k.

Quando provo a decodificare il messaggio in un ambiente usando OpenSSL 1.0.1e, mi aspetto che la decrittografia fallisca, come dice la documentazione di OpenSSL cms:

Support for RSA-OAEP and RSA-PSS was first added to OpenSSL 1.1.0

Tuttavia, quando utilizzo il seguente comando per provare a decrittografare il messaggio (questo sarebbe all'interno dell'ambiente v1.0.1e), il messaggio viene decodificato correttamente e visualizza il contenuto originale in chiaro.

openssl cms -decrypt -in message.msg -recip \
recipient-combined-key.pem -inkey private-key.pem

Mi aspetto che la decifrazione fallisca in questo caso, poiché sicuramente la versione senza supporto per RSA-OAEP non avrebbe alcuna conoscenza dello schema di padding usato?

Ho anche testato i messaggi firmati usando il padding RSA-PSS, e in quel caso la firma non può essere verificata sulla versione precedente di OpenSSL senza il supporto RSA-PSS. Qualcuno può spiegare perché questo è il caso del padding PSS, e non del padding OAEP?

    
posta Andy Shearer 18.04.2018 - 10:24
fonte

1 risposta

1

OpenSSL 1.0.1 supporta entrambe le modalità di riempimento OAEP e PSS, è lo strumento cms che non lo fa. L'utilizzo di cms per decrittografare con il padding OAEP funziona anche in 1.0.1 poiché la funzione di decrittografia% chiamate% di% determina automaticamente la modalità di riempimento. La funzione chiamata per verificare una firma non lo fa e ha come valore predefinito PKCS1, quindi fallisce.

Lo strumento cms è stato aggiornato in 1.1.0, tra le altre cose, consentire la percentuale di co_de opzione% in modo che il padding possa essere specificato durante la crittografia o la firma e per determinare il tipo di padding durante la verifica. Questa modifica è stata backported alla 1.0.2.

    
risposta data 18.04.2018 - 22:33
fonte

Leggi altre domande sui tag