Guida introduttiva
Per prima cosa, prima di immergerti nel mondo di Crypto-Libraries, devi capire le abilità del tuo team di sviluppo. Hai sviluppatori o hai utenti esperti con conoscenze di sviluppo sudo?
Questo è importante perché probabilmente determina la capacità di una persona di comprendere lo scopo di una API, di implementarla e incrociarsi le dita.
Crypto-Moduli
Se vuoi la risposta più breve, trova quella che è FIPS PUB 140-2 compatibile . Se non lo conosci, è fondamentalmente lo standard del governo per i moduli Crypto. Suggerirei in minima parte di guardare il Wiki e ottenere una comprensione generale dello standard.
La maggior parte delle librerie Crypto vale la pena implementarle sono almeno certificate di livello 1. Un elenco di essi può essere trovato qui .
Interfacce di alto livello vs basso livello
Quando le persone dicono di non ricoprire la tua Crittografia, tendono a significare, non reinventare la ruota proverbiale. I.E Non costruire le tue librerie in base a ciò che pensi che gli algoritmi dovrebbero essere. (Attaccare con FIPS) Da quando abbiamo stabilito che non lo farai (giusto?) Rispetto alla domanda è come utilizzare al meglio questi strumenti.
Alcune librerie ti forniscono un'interfaccia per le funzioni di basso livello, come Java Cryptography Extensions ( JCE ). Queste librerie hanno tutti gli algoritmi e gli oggetti necessari per la crittografia, ma probabilmente nella maggior parte dei casi uno sviluppatore dovrà asportare quelle funzioni.
Alcune librerie offrono un'interfaccia di alto livello, come OpenSSL , che astrae un sacco di lavoro di basso livello e tu basta fare le chiamate. Molti potrebbero obiettare che dovresti usarlo, tuttavia, come molti sviluppatori hanno sperimentato usando le librerie OpenSSL, volenti o nolenti, se non sai cosa usi al livello più alto, puoi finire a scavare per scoprire se sei vulnerabile.
C'è anche la crittografia come servizio. Personalmente, non ho molta conoscenza su di loro. Di solito offrono un'API (come REST) per poter inviare anche le esigenze di crittografia.