Estoy interesado en aprender sobre el diseño seguro del sistema: toda la pila. Actualmente, soy un desarrollador .net / C # experto y conozco las diferencias entre las diferentes funciones hash, el cifrado de clave pública / privada y técnicas similares, pero mi aplicación es solo una pequeña parte del sistema en su conjunto.
Por ejemplo, el cifrado de clave pública / privada no se trata simplemente del código que escribo, se trata de proteger la clave privada. Necesito dárselo a los clientes y ellos necesitan mantenerlo guardado. Luego hay otras vías, por ejemplo, si mi servicio web es seguro pero alguien puede ingresar a la base de datos y descargar todos los datos, la seguridad de mi aplicación no importa.
Estoy investigando Cryptography Engineering y Applied Cryptography 2nd Edition de Bruce Schneier, pero estos son libros de bajo nivel sobre los algoritmos criptográficos. Necesito algo de varias capas más arriba, algo que explique los posibles vectores de ataque a tener en cuenta y cómo protegerse contra ellos y los errores que las personas cometen comúnmente.
Vi algunas preguntas aquí en Security.SE, pero éstas parecían específicas para diseños individuales o estaban limitadas a la Aplicación y no al sistema en general, así que me pregunto si hay algo moderno (idealmente algo que sepa sobre cosas) como SHA-3 y los ataques "modernos" de fuerza bruta que usan clústeres de computación basados en la nube o GPU) y con autoridad?