Rottura del generatore congruenziale lineare

2

(Non sono sicuro che queste domande si adattino a questo forum, se non lo fa reindirizzare di conseguenza) (Posso solo postare due link, quindi portami con me: p) (non riesce a trovare tag decenti per questo ... :()

Come puoi vedere da una mia precedente domanda su questo forum, sto lavorando con i dispositivi Devolo powerline. Sto cercando di replicare i passaggi finali di questo articolo . Ora sono bloccato con i dispositivi non vulnerabili.

Qualcomm fornisce una suite di software chiamata open-plc-utils che viene utilizzata nel link sopra. Seguendo la descrizione dell'attacco, c'è un passaggio cruciale in cui l'indirizzo MAC del dispositivo viene convertito in una password di 16 caratteri maiuscoli. Il codice mac2pw di Qualcomm converte correttamente MAC in password per i dispositivi TP-Link , ma non per gli altri. Poiché sto provando ad attaccare un dispositivo Devolo, ho bisogno di rivelare in qualche modo le modifiche apportate all'algoritmo originale.

Finora, ho letto la descrizione di mac2pw e studiato i generatori congruenziali lineari (dato che uno è usato in mac2pw). Leggendo dallo scambio di security stack ho visto che la scoperta dei parametri cruciali del LCG (a, c, m) è in realtà abbastanza fattibile. Tuttavia, l'algoritmo fornito da Qualcomm non è così semplice. Introduce alcune entropia usando solo i numeri "casuali" il cui modulo 128 fornisce una lettera maiuscola, usa quelle maiuscole per riempire una matrice, e quindi usa più numeri "casuali" (modificati nuovamente) per selezionare la password finale da quella matrice . Pertanto, non posso essere sicuro che due lettere della password corrispondano a due numeri consecutivi generati da LCG, che sono necessari per rompere il LCG.

Suppongo che siano andati in modo pigro e abbiano modificato solo alcuni parametri: a, c e / o m. Nel caso in cui non l'abbiano fatto e abbia scritto un altro loro algoritmo, spero di poter scoprire un equivalente LCG.

Ho sei indirizzi MAC Devolo e le loro password corrispondenti. Penso che questi dovrebbero essere abbastanza per me per scoprire l'algoritmo sottostante. Credo di non aver bisogno dell'algoritmo esatto che Devolo usa, uno equivalente dovrebbe essere sufficiente.

Il mio problema principale qui è come superare l'entropia e le operazioni del modulo consecutivo. Come posso superare questi e ottenere l'algoritmo sottostante, o uno equivalente?

EDIT: Ho anche ricordato che posso utilizzare le risorse cloud per forzare l'algoritmo. Semplificando l'algoritmo di base e la forza bruta tutte le combinazioni di a / c / m, potrei ottenere un algoritmo simile all'originale. Tuttavia, non sono sicuro che sia possibile.

    
posta Camandros 08.02.2016 - 20:07
fonte

0 risposte

Leggi altre domande sui tag