Innanzitutto, poiché i browser non supportano SRP, stiamo necessariamente parlando di un'applicazione locale personalizzata.
Per motivi di sicurezza, è importante che il codice dell'applicazione locale sia "sicuro". Dobbiamo presumere che l'utente inizialmente non aveva l'applicazione, quindi l'ha ottenuta e l'ha installata sul suo computer. Ciò deve avvenire prima della registrazione SRP. Eppure gli utenti devono avere un modo per assicurarsi che il codice dell'applicazione che installano sia autentico e non ostile. Forse l'hanno preso da un CD-ROM / DVD; forse l'hanno scaricato attraverso un "canale sicuro"; forse il file binario è firmato. L'utente malintenzionato vorrebbe inserire il proprio codice in quella applicazione, quindi ci deve essere un meccanismo per sconfiggere l'attaccante a quel punto.
Supponendo che il codice dell'applicazione sia sicuro, allora quel codice applicativo potrebbe incorporare una copia di una chiave pubblica di proprietà del tuo server; per esempio. una copia del certificato del server. Tale certificato può essere autofirmato, o emesso da una CA personalizzata, o qualsiasi altra cosa: poiché l'applicazione conosce a priori la chiave pubblica del server, può stabilire un tunnel sicuro con il server tramite SSL, e senza coinvolgendo una CA esterna: l'applicazione controlla solo che il certificato utilizzato dal server sia bit-to-bit identico a quello incorporato. A quel punto, puoi trasmettere qualsiasi password scelta dall'utente senza paura di intercettazioni ostili. Probabilmente, potresti continuare a utilizzare tale SSL e non eseguire alcun SRP.
Il modello della "chiave pubblica incorporata" è semplice e funzionerà, ovvero se non funziona, significa che hai un problema di sicurezza più grande che non puoi risolvere con qualsiasi quantità di SRP.
Come nota a margine, questo esempio mostra che SRP, sebbene un algoritmo massicciamente spinto, non è necessariamente utile in contesti in cui il codice dell'applicazione personalizzato, specifico del server è installato sul lato client. La vera bontà di SRP si verifica quando il codice client è generico , ad es. è un browser Web che non include alcun codice specifico del sito. Ma non siamo ancora là; i browser non sanno come fare SRP (per ora ...).