Ho un caso in cui ho bisogno di creare account di recupero e voglio crearli in modo che nessuno conosca la password per loro fino a quando non è necessario. Quindi, ho pensato che lo avrei fatto usando RSA - quando l'account è creato tramite codice, genererà una password casuale che verrà poi crittografata con una chiave pubblica e memorizzata per un eventuale uso successivo.
Poiché il testo in chiaro sarà breve, diciamo 160 bit con una password alfanumerica di 20 caratteri, non è necessario eseguire la crittografia simmetrica RSA- > AES. Tuttavia, questo mi fa riflettere sulle implicazioni per la sicurezza:
Poiché un utente malintenzionato potrebbe ottenere l'accesso alla chiave pubblica e alla password crittografata, un attacco di testo in chiaro scelto potrebbe provare a eseguire la bruteforce della password poiché l'RSA è normalmente deterministico. Tuttavia, se utilizzo PKCS # 1 padding v1.5 (o OAEP), dovrebbe essere coperto, giusto? O dovrebbe esserci un padding casuale (comunque) - il testo in chiaro è limitato nella portata e nella lunghezza?