Implementazione del sistema di login SRP Challenge * con SSL * (Utilizzo di PHP)

1

La mia domanda: qualcuno sa come implementare l'autenticazione SRP / Diffie-Hellman in PHP (o se questo è già stato fatto)?

(Alcuni dettagli)

  1. Sto utilizzando CodeIgniter con TankAuth (entrambe le versioni più recenti)
  2. Sono forzare l'accesso SSL tramite .htaccess

Uno dei requisiti di questo progetto è quello di utilizzare l'autenticazione basata sulla sfida , ho letto molto su di esso, sembra che sia stato creato SRP / Diffie-Hellman lavorare con TankAuth (insieme a SSL) è una soluzione di autenticazione sicura (a condizione che sia correttamente fatto!)

L'unico vero problema è: non riesco a tradurre la specifica SRP in PHP / mysql (pensavo di essere bravo in matematica ma ovviamente sono non !)

Non importa se è un semplice php, posso adattare il codice per farlo funzionare con CodeIgniter / TankAuth.

Ho cercato su Google molto, il più vicino che ho trovato è questo , ma l'implementazione non sembra giusta .

Capisco anche che alla fine dovrò adattare questo per rendere il processo di autenticazione in due fasi simile a un normale modulo di accesso standard one-step (usando ajax), ma questo è per dopo, in questo momento sono bloccato con logica.

    
posta TheDude 01.10.2012 - 04:24
fonte

2 risposte

1

Ho esaminato le specifiche SRP qualche tempo fa e descrivono bene come usare alcuni ben noti blocchi di crittografia e modellarli in un protocollo a conoscenza zero. Tuttavia, gli stessi blocchi costitutivi della crittografia non sono spiegati (sono considerati di dominio pubblico per i crittografi).

Se ho capito bene, SRP usa uno schema matematico che può essere dimostrato di ridurre al problema di Diffie-Hellman (la mia terminologia è probabilmente errata, intendo dire che il problema SRP può essere dimostrato almeno come costoso dal punto di vista computazionale come il problema Diffie-Hellman) ma non è uguale a Diffie-Hellman.

Tieni presente che uno schema di password di conoscenza zero è considerato come una delle cose più difficili da implementare correttamente . Ho scritto una risposta su SRP qualche tempo fa. Come puoi vedere, è molto più complesso rispetto all'implementazione di "Password salting e Challenge-Response modificato" nell'articolo che hai collegato. (E hai ragione a non fidarti, penso di poter individuare punti deboli in esso, e io sono solo un appassionato di sicurezza, non un crittografo o un professionista della sicurezza).

Oltre a quanto sopra, SRP è, per quanto ne so, uno schema protetto da copyright.

Quindi il mio consiglio sarebbe: attenersi all'attuale best practice di utilizzare un algoritmo di hash strong (BCrypt) sul lato server per proteggere il canale di comunicazione con TLS (SSL), invece di implementare uno schema molto complesso come SRP.

    
risposta data 01.10.2012 - 12:17
fonte
2

L'algoritmo è stato portato su JavaScript per i client (browser) e PHP per i server: vedere Ruslan Zavacky's spr-6a-demo su GitHub.

    
risposta data 05.06.2014 - 15:36
fonte

Leggi altre domande sui tag