Autenticazione e sicurezza del client

0

Lavorando su un pezzo di software intranet, avevo bisogno di implementare la sicurezza tra il client e il server. Vorrei sapere se questo è un modo sicuro per farlo o se ci sono buchi significativi.

Il client e il server presentano un segreto condiviso utilizzando lo scambio di chiavi ECDH (secp521r1). Un nuovo segreto condiviso viene negoziato per ogni richiesta.

La chiave di crittografia viene generata utilizzando Funzione di derivazione chiave basata su password (PBKDF2). Uso il segreto condiviso come password, una chiave già condivisa come salt (per consentire solo ai client autorizzati di connettersi), 100.000 iterazioni e la funzione di hash è SHA512.

Successivamente i dati della richiesta vengono crittografati con aes-128-gcm, utilizzando la chiave di crittografia e un IV di 12 zeri. La risposta è crittografata utilizzando la stessa chiave. Il server quindi scarta la chiave in modo che non possa essere utilizzata due volte.

Questa è una buona implementazione? Ci sono altri modi migliori per farlo? C'è qualcosa che mi manca?

    
posta Arlen Beiler 03.08.2017 - 23:33
fonte

2 risposte

1

Non pubblicare la tua crittografia

Ci sono stati attacchi multipli su SSL / TLS che sono stati sviluppati dall'industria in generale e sono stati sottoposti a verifiche e controlli. Non costruisci il tuo, mettiti sulle spalle dei giganti.

Se si tratta di un progetto intranet, verificare se si dispone di una CA interna e ottenere un certificato emesso da questo. Non utilizzare certificati autofirmati e indebolire la tua sicurezza. Chiunque può emetterli e quindi man-in-the-middle del tuo traffico.

Inoltre perché la IV è invariata? Una IV dovrebbe essere rigenerata ogni volta che viene usata.

    
risposta data 31.01.2018 - 09:38
fonte
0

Dalla tua domanda sembra che tu stia già facendo l'autenticazione reciproca. questo è un modo sicuro per stabilire una fiducia reciproca tra un client e il server. si noti che si tratta solo di una connessione affidabile, che è necessario eseguire l'autenticazione dell'applicazione, regole firewall, RBAC (controllo dell'accesso base dei ruoli) e IDM (gestione identità) in aggiunta all'autenticazione reciproca.

    
risposta data 04.08.2017 - 04:42
fonte

Leggi altre domande sui tag