9

Quando un utente esegue l'accesso in base al metodo di autenticazione moduli predefinito, il server crea un cookie contenente dati crittografati (utilizzando la chiave del computer come chiave per la crittografia).Il ticket di autenticazione moduli è abbastanza sicuro?

Significa che se qualcuno trova/indovina/accede a Machine Key per il server, verrà connesso all'applicazione web.

Ho sviluppato alcune applicazioni su 4 server. Quindi, ho hard-coded lo stesso codice macchina per tutti i server in machine.config e non posso usare la modalità Auto Generate.

  1. È possibile forzare la chiave della macchina?
  2. Esistono altri metodi? (Non voglio usare Windows e Passport)
  3. E il ticket di autenticazione dei moduli è abbastanza sicuro? (Ad esempio accettabile per le applicazioni di e-banking)
+0

Ricordatevi di segnare la risposta che ha aiutato di più :-) – reach4thelasers

risposta

18

I ticket di autenticazione di moduli ASP.NET sono crittografati utilizzando l'algoritmo Rijndael. Rijndael è stato creato come sostituto di DES (Data Encryption Standard) che offriva un numero illimitato di modi per crittografare i dati ed era anche suscettibile agli attacchi di forza bruta. Un certo numero di DES Challenge sono stati organizzati alla fine degli anni '90 da RSA Security per sfidare le squadre a crackre DES per evidenziare le sue vulnerabilità intrinseche: http://en.wikipedia.org/wiki/DES_Challenges

In confronto Rijndael (noto anche come Advanced Encryption Standard AES) utilizza chiavi più lunghe - 256 bit e un doppio algoritmo di crittografia. Craccare una chiave Rijndael a 256 bit (come la chiave della macchina ASP.NET) richiederebbe 2^200 operazioni (circa 10^60 - dieci con 60 zeri), quasi impossibile da forzare la forza bruta. Combina questo con il fatto che il ticket ASP.NET cambia regolarmente, e quando decrittografato appare come una stringa casuale di lettere e numeri (quindi impossibile determinare se quello che hai decifrato o meno forza bruta) puoi stare tranquillo nessuno creerà presto il tuo cookie di autenticazione dei moduli.

Maggiori informazioni su Rijndael e le sue possibili attacchi qui:

http://en.wikipedia.org/wiki/Advanced_Encryption_Standard#Known_attacks

1

La prima regola di crittografia è che il messaggio è sicuro solo quanto la chiave. Se qualcuno ha accesso alla tua chiave, non esiste un metodo abbastanza sicuro.

  1. Dubito che sia possibile forzare la chiave della macchina in qualsiasi momento ragionevole.
  2. Credo che Fomrs Authentication sia l'unica vera soluzione web che viene fuori dalla scatola in ASP.NET. Puoi implementare la tua ma dubito che sarà più sicuro.
  3. Abbastanza sicuro per cosa? È dirottato da un uomo nel mezzo in una connessione non crittografata e vulnerabile agli attacchi XSRF se si disattiva la convalida dell'evento (in Web Form) o non si utilizzano i token di sicurezza (MVC). Altrimenti è sicuro per gli exploit che vengono scoperti e fissati in ogni momento in tutte le tecnologie.
+0

Perché sarebbe bruta costringendo la chiave del computer richiedono che i server sono portati verso il basso? La forza bruta sta fondamentalmente controllando ogni combinazione possibile per cercare di indovinare la chiave della macchina. – reach4thelasers

+0

Credo che questo richiederà l'invio del cookie al server? O no? Ad ogni modo la chiave della macchina è davvero lunga e non può essere forzata brutalmente facilmente. – Stilgar

+0

Rijndael è solo un algoritmo, può essere eseguito su qualsiasi macchina.Se riesci a INDICARE la chiave della macchina controllando ogni combinazione possibile per la chiave della macchina, puoi rompere il biglietto su qualsiasi computer. Il server conosce già la chiave della macchina in modo che non debba indovinarlo quando il biglietto viene restituito. – reach4thelasers