Ci sono seguenti problemi con questo approccio:
-
Le password con formule sembrano essere archiviate in testo semplice. Quindi sarebbe meglio se fosse diviso in due parti: la prima parte conosciuta e la seconda parte la formula. In questo modo la prima parte può essere archiviata come hash.
-
Un meccanismo simile è usato dai token crittografici, dove si inserisce la password seguita dal numero dal token crittografico (come "password" + "123456" che è "password123456"). Il token Crypto è un piccolo dispositivo hardware che mostra il numero dopo aver premuto il pulsante. Ogni hardware del token crittografico ha una chiave diversa, quindi tutti devono utilizzare il proprio token. Ora il fatto è che il problema è che la formula è molto facile da invertire se è molto semplice. In realtà, dovrebbe essere una sorta di crittografia strong che la persona non può eseguire in memoria.
Ad ogni modo, sembri essere sulla buona strada e quello che stai cercando di fare può essere raggiunto nel modo seguente, ad esempio:
-
Crea un'applicazione software token crittografico, quindi questa app accetterà semplicemente la chiave segreta con il tuo server durante l'installazione e sarà in grado di generare token crittografici in modalità offline (o anche online).
-
Il tuo sito web può leggere la password e rimuovere gli ultimi 6 numeri, quindi controllare la password con l'hash memorizzato. (i 6 numeri cambiano molto o 10 secondi o poco più, quindi la sincronizzazione dell'ora è importante, ma se non c'è nessuno, è possibile sincronizzare controllando i token passati / futuri e fare le regolazioni).
-
Quindi il tuo sito web può contattare l'API e controllare se il token crittografico per il nome utente corrisponde.
Ora la cosa da sapere è che i token crittografici funzionano con il tempo e la chiave segreta. In modo che il token generato in un minuto non è valido in tempi diversi.
Tuttavia la sfida principale sarebbe quella di proteggere la sicurezza dei token crittografici. È possibile eseguire il provisioning di un server cloud dedicato per ciascun cliente che lo utilizza, ad esempio, consentendo l'accesso solo dai suoi server e mantenendo una pianificazione di aggiornamento estrema per patch di sicurezza, difesa multilivello e buona architettura software in cui tutte le librerie vengono mantenute attivamente e il codice sorgente viene controllato.
Tale soluzione potrebbe essere utile non solo per i siti Web ma anche per qualsiasi sistema aziendale che includa Active Directory. Tuttavia, per venderlo ai clienti, è necessario conformarsi alle politiche di sicurezza ufficiali una volta e, in secondo luogo, rivederle da istituzioni educative / governative che sono sicuro che saranno utili.
Lo scenario complessivo proposto è buono perché da parte tua non rischi molto - se i token crittografici vengono rubati, le password non sono comunque conosciute, e puoi rilasciare l'aggiornamento al token soft crypto o forzare la riattivazione di questi.
Lo svantaggio è che richiede un token crittografico soft dedicato per accedere a un singolo servizio che lo utilizzerebbe. Quindi il token crittografico hardware è molto più pratico, ma quello soft è ancora valido per la demo e lo sviluppo.
Per quanto riguarda "inserire le lettere 1, 3 e 5 dalla seconda password" è un po 'più debole ma molto più economico rispetto ai token. Tuttavia, produrre token non è difficile oggi dato che è una lunga vita e una sicurezza molto più strong.
Il modello di business di questo è basato sul mantenimento di un metodo di comunicazione sicuro e di un'adeguata archiviazione sicura dei token crittografici, quindi l'intera azienda dalla tua parte deve focalizzarsi adeguatamente su di esso, quindi è lavoro per le società terze e non le banche stesse . In questo modo la superficie di attacco viene ridotta nel modo in cui i token vengono archiviati e verificati dalla società di terze parti.