Un error se define como un software que no funciona según las especificaciones. Ahora si las especificaciones son defectuosas, no es un error de software. Si un cliente tonto exige que todas las contraseñas deben ser códigos de tres dígitos sin un período de gracia entre las entradas defectuosas, no se debe culpar al software.
Muchos sistemas tienen un "modo de servicio" que puede anular la seguridad, y si bien el acceso a él debe ser seguro, los códigos a menudo se filtran al público.
Los avances en matemáticas comprometen los métodos de criptografía antiguos. Algo que era seguridad viable hace 30 años se debilita hoy en día.
Hay varios métodos de robo de datos que a menudo se pasan por alto. Un teclado inalámbrico tiene un alcance de aproximadamente 2 m, debido a las pequeñas antenas, y el código enviado no está cifrado. Leerlo desde el otro lado de la calle con una buena antena es un método conocido.
En ocasiones, las compensaciones de seguridad se realizan con plena conciencia de las consecuencias: los sistemas de cifrado toman el poder y el tiempo de CPU. Las aplicaciones de monitoreo integradas a menudo envían sus datos de una manera claramente legible para el público porque primero, el valor de comprometer los datos es insignificante, y luego el costo adicional de implementar la seguridad es innecesario.
Toda la seguridad se basa en la confianza. No hace falta ninguna ingeniería social para que el administrador designado se desvíe de la cuenta y lea su correo.
Y al final, ¿se puede considerar la aplicación de un bate de béisbol en una rodilla como una técnica social?