Sono interessato a conoscere la progettazione di sistemi sicuri: l'intero stack. Attualmente, sono uno sviluppatore esperto .net / C # e conosco le differenze tra diverse funzioni hash, crittografia a chiave pubblica / privata e tecniche simili, ma la mia applicazione è solo una piccola parte del sistema nel suo insieme.
Ad esempio, la crittografia della chiave pubblica / privata non riguarda semplicemente il codice che scrivo: si tratta di proteggere la chiave privata. Ho bisogno di darlo ai clienti e hanno bisogno di tenerlo salvato. Poi ci sono altre strade, per esempio se il mio servizio web è sicuro ma qualcuno può semplicemente entrare nel database e scaricare tutti i dati, la sicurezza della mia applicazione non ha importanza.
Sto esaminando Cryptography Engineering e Cryptography Applied Cryptography di Bruce Schneier, ma questi sono libri di basso livello sugli algoritmi crittografici. Ho bisogno di qualcosa di più in alto, qualcosa che spiega i possibili vettori di attacco di cui essere consapevoli e come proteggersi contro di loro e gli errori che le persone comunemente commettono.
Ho visto alcune domande qui su Security.SE, ma queste sembravano specifiche per i singoli progetti o erano limitate all'applicazione e non al sistema nel suo insieme, quindi mi chiedo se c'è qualcosa di moderno (idealmente qualcosa che sa di cose come SHA-3 e attacchi "moderni" a forza bruta che utilizzano cluster di calcolo basati su cloud o GPU) e autorevoli?