Quanto è sicuro HMAC

4

Sto costruendo un'API RESTful stateless e sto usando un token per l'autenticazione. Il problema che sto avendo è che non sono sicuro di quanto sia sicuro HMAC.

Sto utilizzando una libreria Token Web JSON che consente me crittografare e decrittografare i dati che ho passato.

Fondamentalmente, il modo in cui funziona è questo:

Se lo passo questo JSON:

{
    token: "asdasdasdass",
    userId: 1234    
}

Restituisce 325345ljljn5llnk4.245j4k5j4525ñ4j55n , dove la prima parte è codificata in JSON base64 e la seconda parte è in HMAC.

Ad esempio, se inserisco:

{
    sessionId: 145
}

C'è un modo in cui un utente malintenzionato può generare un token valido con l'ID di sessione che desidera? È fattibile?

Inoltre, quanto dovrebbe durare la mia chiave?

Non ho trovato risposte su questo sito ... e ho letto molto.

    
posta Gaston Sanchez 14.10.2014 - 19:45
fonte

1 risposta

3

HMAC è una costruzione di codice di autenticazione dei messaggi con chiave. Come menzionato da Bernie nei commenti, un utente malintenzionato che non ha la chiave segreta (supponendo che l'implementazione sia strong, ovviamente), non può creare un HMAC valido per i dati modificati.

La risposta alla tua seconda domanda: "Quanto dovrebbe durare la mia chiave?" dipende dalla specifica funzione di hash che stai utilizzando all'interno di HMAC. Idealmente, la lunghezza della chiave dovrebbe essere uguale alla lunghezza di output, quindi per HMACSHA1, si utilizzerà una chiave a 160 bit, per HMACSHA256, una chiave a 256 bit, per HMACSHA512, una chiave a 512 bit e così via.

    
risposta data 15.10.2014 - 15:07
fonte

Leggi altre domande sui tag