Che cosa significa "non ruotare la propria sicurezza"?

1

Vedo questo dire molto e concordo sul fatto che dovresti lasciare certe cose ai metodi provati e veri, ma non sono sicuro fino a che punto. Significa semplicemente non creare il proprio algoritmo crittografico? Ho creato un semplice utente per creare un'app client - server in c #. l'utente invia il nome utente, la password tramite WPF a un WebAPI che crea una voce in un database con il nome utente, genera e memorizza un valore di sale, memorizza il numero di iterazioni (10.000). Quindi usa .net pbkdf2 per creare un hash e memorizzarlo.

Sta rotolando la tua sicurezza?

    
posta BottheBob 27.08.2017 - 03:39
fonte

1 risposta

1

Citando Bruce Schneier:

Anyone can design a cipher that he himself cannot break. This is why you should uniformly distrust amateur cryptography, and why you should only use published algorithms that have withstood broad cryptanalysis. All cryptographers know this, but non-cryptographers do not. And this is why we repeatedly see bad amateur cryptography in fielded systems.

'Rolling your own crypto' significa che progetta un nuovo algoritmo che poi procederai a usare senza:

  • Controllo o peggio

  • Pubblicarlo a tutti. Cioè - mantenendo l'algoritmo privato.

Con implementando un processo o algoritmo conosciuto e attendibile come pbkdf2, hai un certo livello di garanzia che è stato controllato e non si fermerà e morirà nel momento in cui qualcuno produrrà l'algoritmo stesso. Utilizzando uno standard ampiamente accettato, hai un certo livello di sicurezza che l'algoritmo non sarà difettoso e dovrai solo assicurarti che la tua implementazione sia sicura. Questo non sta facendo girare la tua crittografia. Questo stai implementando e se la tua implementazione è corretta e segui linee guida, sei d'oro.

Un'ulteriore lettura che potrebbe aiutare: Schneier sull'argomento

    
risposta data 27.08.2017 - 06:23
fonte

Leggi altre domande sui tag