Esiste un modo per creare OTP basato sull'ora con chiave pubblica / privata

1

Ho una situazione in cui ho bisogno di tempo basato su OTP.

Ma la maggior parte degli esempi e dei casi che ho visto utilizza la stessa chiave per creare e controllare otp.

Ma ho bisogno di qualcosa di diverso. Voglio creare OTP utilizzando una chiave pubblica, in modo che possa essere controllato / decrittografato solo utilizzando la chiave privata.

C'è qualche metodo come questo?

    
posta kadamb 24.05.2017 - 12:52
fonte

2 risposte

2

I have a situation where I need time based OTP.

Per prima cosa ricordiamo la base dell'OTP (o) OTP sincronizzato nel tempo. Un TOTP utilizza TIME (orologio in tempo reale) del client nel processo di generazione OTP. Quindi, è sicuro dire che il fattore "tempo" è una chiave pubblica e una chiave privata.

But most of the examples and cases I have seen, uses same key to create and check otp

Questa query contraddice completamente il concetto TOTP, correggimi se sbaglio. In seguito, affermi di aver bisogno di qualcosa di diverso, Se ho capito bene, vuoi che l'OTP sia generato usando Ora del client, Il server è a conoscenza dell'ora locale del cliente ... In questo modo l'OTP generato dall'utente (inserito in client) è autenticato dal server. Ma vuoi che venga controllato da una chiave privata che non è altro che la sincronizzazione del client in locale. Quindi, per favore smetti di fare riferimento alla chiave pubblica / chiave privata con TOTP come

L'ora (ora locale del client) viene utilizzata durante la generazione e il controllo dello stesso OTP.

modifica: (dopo aver letto i commenti) Il server deve avere una sincronizzazione con l'ora locale del client, oppure il concetto TOTP fallisce ... Non posso sottolineare i fatti al di là di questo.

    
risposta data 24.05.2017 - 13:46
fonte
1

Nel caso in cui si parli di One Time Password c'è un motivo semplice, perché gli algoritmi TOTP utilizzano una chiave simmetrica sul client / dispositivo e sul lato server.

Se si dà un'occhiata a HOTP-TOTP (RFC6238), viene derivato da HOTP-OTP (RFC4226), l'algoritmo OTP basato su eventi. Questo è stato specificato nel 2005. Il primo smartphone è nato nel 2007.

Quindi cosa? Gli algoritmi OTP sono progettati per funzionare con dispositivi hardware. Questi dispositivi hardware hanno un display, in modo che l'utente possa inserire la password one time. Durante la generazione della password one time, RFC definisce un metodo di troncamento, in modo che l'utente sia effettivamente in grado di eseguire il punch in un numero limitato di caratteri. L'output di HMAC-SHA1 è 20 byte escode. Nessuno vuole inserirla come password unica.

Per poter eseguire la crittografia asimmetrica, puoi non utilizzare qualsiasi funzione di troncamento. Altrimenti la chiave pubblica non sarebbe in grado di verificare la firma. La chiave privata non sarebbe in grado di decifrare il messaggio. I dati da trasferire con le chiavi assimmetriche sarebbero molto più grandi - 1024 bit, 2048 bit ... Ancora una volta, l'utente dovrebbe inserire manualmente una password una tantum molto lunga.

Bene, se il cliente trasmette questi dati elettronicamente non dovresti troncarlo. Ma di nuovo non stiamo parlando di password una tantum ma di crittografia di chiave pubblica o autenticazione basata su certificato client.

Quindi alla fine si tratta di leggibilità umana e troncamento .

    
risposta data 27.05.2017 - 12:49
fonte

Leggi altre domande sui tag