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 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 aunque el acceso a este debe ser seguro, los códigos a menudo se filtran al público.
Los avances en matemáticas comprometen los viejos métodos de criptografía. Algo que era seguridad viable hace 30 años se debilita hoy en día.
Existen 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 bien conocido.
A veces, las compensaciones de seguridad se realizan con plena conciencia de las consecuencias: los sistemas criptográficos requieren energía y 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 se necesita ingeniería social para que el administrador designado se vuelva pícaro y lea su correo.
Y al final, ¿se puede considerar aplicar el bate de béisbol a la rodilla como una técnica social?