Ho sviluppato un'applicazione Web e API per 8 mesi. Ho implementato le credenziali client OAuth 2.0 per l'autenticazione. E ora devo implementare TLS alle mie API. Ho lavorato con le implementazioni di sicurezza SSL / TLS per giorni. Non potevo nulla. Tuttavia, sono all'inizio e ho iniziato a sentire la disperazione.
Posso sbagliarmi, ma ho pensato, posso rilasciare certificati sulla mia pagina web ai miei utenti. E gli utenti possono utilizzarli quando cercano di utilizzare la mia API per l'autenticazione client SSL. (come Paypal ) Ci sono molte cose che devono essere conosciuto. Quindi ho bisogno di aiuto.
D: Mi piacerebbe sapere se sul mio elenco ci sono elementi mancanti ? Che altro dovrei fare ?
D: Sarebbe possibile che ci sia un modo alternativo per fornire sicurezza per la mia API ?
Riepilogo della mia lista di cose da fare;
- Creare una chiave e un certificato CA utilizzando OpenSSL
- Crea la chiave e il certificato del server utilizzando OpenSSL
-
Inserisci un "nuovo certificato". pulsante sulla mia pagina web e codice
Se un utente fa clic sul pulsante, quindi;a. generare un certificato client scaricabile utilizzando PKIjs-x509
b. una copia del certificato viene salvata su una cartella
clients
sul server -
Crea e gestisci un elenco di revoche di certificati in CA utilizzando PKIjs -crl
-
Inserisci una "rimozione di certificati". pulsante sulla pagina Web e codice
Se un utente fa clic sul pulsante, quindi;a. aggiungi certificato correlato a CRL
- Se un utente lascia il sistema, aggiungi il certificato correlato a CRL
Penso che il numero 4, 5 e 6 (operazioni CRL) siano ridondanti. Ho bisogno di una connessione sicura tra client e server. Ogni diverso certificato client crea un diverso canale sicuro per il server. Quindi, se un uomo malintenzionato usa un certificato, può accedere solo al mio server di autorizzazione, in modo sicuro. Pertanto questi elementi non sembrano importanti nel mio caso . Sono loro?
Uso Node.js e javascript. Ho trovato alcune utili librerie javascript come PKIjs , forge.js e pem .
Ho dato una chiamata a una delle società globali di CA per il loro servizio PKI. Mi hanno dato $ 30 per cliente e non posso usare il loro CRL come programmatico sulla mia applicazione. Questo è impossibile per me. Quindi ho cercato di risolvere da solo.
Parole chiave per ricordare alcune cose;
(EJBCA, x.509, PKI, Key-Exchange, S / MIME, OpenSSL, RSA, ASN.1, PCKS, Fingerprint)