È un metodo sistematico in grado di rilevare un algoritmo crittografico debole nel codice sorgente

0

L'algoritmo di crittografia debole deve essere rimosso dal codice sorgente per evitare un falso senso di sicurezza (ad esempio: MD5. Naturalmente, c'è probabilmente l'algoritmo nel codice sorgente, ma non usa il nome "MD5"), tuttavia, esiste un metodo / strumento sistematico in grado di rilevare prima l'algoritmo di crittografia debole nel codice sorgente? Il linguaggio del codice sorgente è Java e C.

    
posta Matt Elson 24.03.2016 - 09:50
fonte

2 risposte

3

Innanzitutto, md5 è una funzione hash, non una funzione di crittografia.

  • Per quanto riguarda le funzioni di hash considerate non funzionanti:

    Ne esistono solo pochi: un semplice egrep potrebbe sputare alcuni file sorgente offensivi, data l'espressione corretta.

  • Per quanto riguarda le cifre:

    • codici forti:

      Come questa recente domanda dimostra, nella maggior parte dei casi, che il problema non è l'effettiva crittografia utilizzata ma che viene utilizzata in modo errato, senza una sufficiente comprensione della questione.

      Questo non può essere rilevato sufficientemente buono, perché i problemi sono spesso introdotti in un modo molto sottile, dove ad es. solo i nomi delle variabili suggeriscono un problema.

    • codici deboli (o modi deboli, come ECB) possono essere messi sullo stesso file di stringa lista nera usato per cercare md5 et al.

In secondo luogo, come ci penso: md5 ha casi d'uso legittimi diversi da hashing sicuro (che non è abbastanza buono in).

Inoltre, dici

Weak cryptographic algorithm should be removed from source code to avoid a false sense of security

che non capisco: da dove viene il falso senso di sicurezza? Gli utenti finali raramente guardano le fonti - e se lo fanno, molto probabilmente possono individuare ciò che si può rilevare molto rapidamente. Gli sviluppatori delle fonti dovrebbero sapere meglio. Se questo è un problema, preferisci educare gli sviluppatori piuttosto che scansionare le loro fonti per un debole utilizzo della crittografia.

    
risposta data 24.03.2016 - 10:01
fonte
1

Molti algoritmi richiedono alcune costanti magiche. MD5 è uno di questi. Richiede l'inizializzazione di quattro variabili integer a 32 bit con i seguenti valori:

0x67452301
0xefcdab89
0x98badcfe
0x10325476

Quando queste quattro costanti appaiono nello stesso file sourcecode, potrebbe essere un'implementazione MD5. Tuttavia, un programmatore umano dovrebbe dare un'occhiata per accertarsene.

Ricorda che i linguaggi di programmazione hanno spesso una grande varietà di modi possibili per rappresentare i valori letterali interi. Ognuna di queste possibilità deve essere controllata.

    
risposta data 24.03.2016 - 13:40
fonte

Leggi altre domande sui tag