Come posso scegliere un buon API / Security Provider per implementare AES su un sistema di produzione?

1

Sappiamo che non dovremmo implementare la nostra crittografia, a quanto pare includendo la scrittura delle nostre implementazioni della lingua incluse le estensioni della crittografia. In modo che si pone la domanda, come possiamo trovare un fornitore di sicurezza adatto o API dovremmo usare e perché?

Nel caso di Java 8, mi sono imbattuto in Apache Commons, OWASP ESAPI (che l'autore stesso sembra raccomandare di non usare) e Bouncy Castle. Sebbene io non voglia limitare l'ambito della domanda a questi tre fornitori, ritengo che questi possano essere utili esempi per confrontare cosa cercare in un API / provider di sicurezza poiché sembrano essere piuttosto popolari.

Quali aspetti dovresti concentrarti sulla ricerca di un'implementazione idonea di un'API crittografica? Dove si possono trovare maggiori informazioni sull'argomento? E come si possono evitare le API crittografiche malfunzionanti o malfunzionanti?

    
posta Daniel V 12.06.2017 - 18:03
fonte

1 risposta

1

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.

    
risposta data 13.06.2017 - 00:41
fonte

Leggi altre domande sui tag