L'autenticazione X.509 può essere soggetta a attacchi di forza bruta?

0

Sto lavorando su un'applicazione (usando Spring Security) che ha due possibili meccanismi di autenticazione utente:

  • certificato X.509 (utilizzando SSL reciproco stretta di mano)
  • o utente + password

Per utente + password, ho aggiunto un meccanismo di prevenzione della forza bruta basato sul blocco IP ( tutorial POC semplice ), quando ci sono molti tentativi di accesso utente + password falliti consecutivi dallo stesso indirizzo IP (l'app è interna, quindi non dovrebbe essere esposta ai proxy ISP che nascondono gli utenti).

Ma è possibile fare (in qualche modo) attacchi a forza bruta con certificati X.509?

EDIT: Sto verificando se i certificati sono emessi da una CA approvata (usando un trust-store JKS).

    
posta Andrei Epure 01.06.2017 - 16:52
fonte

3 risposte

2

L'X509 autentica solo l'identità che l'utente sta affermando di essere, quindi in teoria si. Ma un aggressore non ha intenzione di usare la forza bruta per indovinare le chiavi corrette per un certificato X509 perché ci sono così tante possibili chiavi.

    
risposta data 01.06.2017 - 17:03
fonte
2

I certificati incorporano una chiave pubblica asimmetrica per alcuni schemi crittografici (ad esempio RSA).

Se dovessi provare a eseguire l'autenticazione del certificato di forza bruta, dovresti ottenere la mano sul certificato pubblico (facile), quindi ottenere la chiave privata dalla chiave pubblica.

In effetti, risolverebbe il problema della rottura dello schema crittografico sottostante, per il quale al momento non disponiamo di un metodo efficace per farlo. Forza brutale non è un attacco realistico in questo caso.

L'attacco realistico al certificato del cliente sarebbe quello di acquisire la chiave privata dal computer client e acquisire la password per proteggerla (se ce n'è una). Questo può essere fatto con mezzi convenzionali, come l'uso di trojan, tecniche di ingegneria sociale e così via. Il metodo password è già vulnerabile allo stesso attacco comunque.

    
risposta data 01.06.2017 - 17:07
fonte
1

Dato che hai espresso che il certificato è un identificatore sufficiente, presumo che tu stia chiedendo "dato che qualcuno ha visto un certificato andare oltre il limite, può forzare la bruta come se fosse un utente dopo?". (Vs "qualcuno può wardial entrare nell'account X usando tutti i certificati che ha estrapolato da alcuni computer?" - che è un "yup" facile)

La risposta è: certo. Ma chiunque voglia provare a farlo è pazzo.

Dato un certificato, ciò che un forger bruto sta tentando di fare è determinare la chiave privata che accompagna la chiave pubblica incorporata nel certificato. Effettuare un attacco brute force TLS sarebbe equivalente "provare 000000 ... 00000, 0000 ... 000001, 000000 ... 000002", che si riduce alla falsificazione della firma. Tuttavia, poiché l'autore dell'attacco potrebbe calcolare da sé il segno + verificare le operazioni, può eseguire un attacco offline; quindi quando arrivano a parlare con il tuo servizio dovrebbero aver già determinato che hanno la risposta giusta (dato che stanno per eseguire la stessa formula che sei, modulo qualsiasi dei diritti di accesso che controlli in base alle proprietà del certificato). / p>

Potrebbero anche iniziare a bloccare i certificati autofirmati (o certificati firmati CA di terze parti) al tuo servizio per vedere se hai eseguito un modello di autenticazione eccessivamente semplicistico (come la lettura di un valore dall'argomento senza eseguire CA pinning ); ma non è proprio una "forza bruta" tanto quanto "rompere il tuo modello di autenticazione".

    
risposta data 01.06.2017 - 17:18
fonte

Leggi altre domande sui tag