Un bug è definito come un software che non funziona fino alle specifiche. Ora se le specifiche sono difettose, non è un bug del software. Se un cliente stupido richiede che tutte le password siano codici a tre cifre senza periodo di grazia tra le voci errate, non è il software da incolpare.
Molti sistemi hanno una "modalità di servizio" che può ignorare la sicurezza, e mentre l'accesso ad esso dovrebbe essere sicuro, i codici spesso perdono al pubblico.
I progressi della matematica compromettono i vecchi metodi di crittografia. Al giorno d'oggi qualcosa che era una sicurezza vitale 30 anni fa diventa debole.
Ci sono vari metodi di furto di dati che sono spesso trascurati. Una tastiera wireless ha una portata di circa 2m, a causa di antenne piccolissime e il codice inviato non è criptato. La lettura fuori dall'altra parte della strada con una buona antenna è un metodo ben noto.
A volte i compromessi sulla sicurezza sono fatti con piena consapevolezza delle conseguenze: i sistemi crittografici prendono il potere e il tempo della CPU. Le applicazioni di monitoraggio incorporate spesso inviano i loro dati in un modo chiaramente leggibile al pubblico perché, in primo luogo, il valore di compromettere i dati è trascurabile e quindi il costo aggiuntivo di implementazione della sicurezza non è necessario.
Tutta la sicurezza è basata sulla fiducia. Non ci vuole alcun social engineering per l'amministratore incaricato di fare il ladro e leggere la tua posta.
E alla fine, si può considerare l'applicazione della mazza da baseball a un ginocchio una tecnica sociale?