[.php] Smoking Skull’s Crypter – Criptare in MD5, SHA1 e CRC32

Tempo fa scrissi un breve e semplice codice in PHP che mi permettesse di generare password per diversi siti in MD5 e SHA1 e visto che ormai avevo cominciato ho aggiunto anche il calcolo di somme di controllo CRC32.

Prima di mostrarvi il sorgente vi posto una definizione per gli algoritmi di crittografia in MD5, SHA1 e per il CRC32 prese dalla fidata Wikipedia.

crittografia

DEFINIZIONE MD5 – http://goo.gl/xvjkP :

L’acronimo MD5 (Message Digest algorithm 5) indica un algoritmo crittografico di hashing realizzato da Ronald Rivest nel 1991 e standardizzato con la RFC 1321.
Questo tipo di codifica prende in input una stringa di lunghezza arbitraria e ne produce in output un’altra a 128 bit che può essere usata per calcolare la firma digitale dell’input. La codifica avviene molto velocemente e l’output (noto anche come “MD5 Checksum” o “MD5 Hash”) restituito è tale per cui è altamente improbabile ottenere con due diverse stringhe in input una stessa firma digitale in output. Inoltre, come per la maggior parte degli algoritmi di hashing, non dovrebbe esserci possibilità, se non per tentativi (forza bruta), di risalire alla stringa di input partendo dalla stringa di output (la gamma di possibili valori in output è infatti pari a 2 alla 128ª potenza).
A oggi, la disponibilità di algoritmi efficienti capaci di generare stringhe che collidono (ossia che producono in output lo stesso valore di hash) in un tempo ragionevole ha reso MD5 sfavorito rispetto ad altri algoritmi di hashing (vedi WHIRLPOOL, SHA-1 o RIPEMD-160), sebbene la sua diffusione sia a tutt’oggi molto estesa (basti pensare che il controllo di integrità più frequente su file si basa proprio su MD5).

DEFINIZIONE SHA1 – http://goo.gl/uK3Y2 :

Con il termine SHA si indica una famiglia di cinque diverse funzioni crittografiche di hash sviluppate a partire dal 1993 dalla National Security Agency (NSA) e pubblicate dal NIST come standard federale dal governo degli USA. La sigla SHA sta per Secure Hash Algorithm.
Come ogni algoritmo di hash, l’SHA produce un message digest, o “impronta del messaggio”, di lunghezza fissa partendo da un messaggio di lunghezza variabile. La sicurezza di un algoritmo di hash risiede nel fatto che la funzione non sia reversibile (non sia cioè possibile risalire al messaggio originale conoscendo solo questo dato) e che non deve essere mai possibile che si riescano a creare intenzionalmente due messaggi diversi con lo stesso digest. Gli algoritmi della famiglia sono denominati SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512: le ultime 4 varianti sono spesso indicate genericamente come SHA-2, per distinguerle dal primo. Il primo produce un digest del messaggio di soli 160 bit, mentre gli altri producono digest di lunghezza in bit pari al numero indicato nella loro sigla (SHA-256 produce un digest di 256 bit). L’SHA-1 è il più diffuso algoritmo della famiglia SHA ed è utilizzato in numerose applicazioni e protocolli.
La sicurezza di SHA-1 è stata in parte compromessa dai crittoanalisti. Sebbene non siano ancora noti attacchi alle varianti SHA-2, esse hanno un algoritmo simile a quello di SHA-1 per cui sono in atto sforzi per sviluppare algoritmi di hashing alternativi e migliorati. Un concorso aperto per la realizzazione di una nuova funzione SHA-3 venne annunciato nel Federal Register il 2 novembre 2007 dal NIST e attraverso una competizione pubblica, simile a quella adottata per il processo di sviluppo dell’AES. ha portato in data 2 ottobre 2012 ad annunciare come vincitore l’algoritmo Keccak. Opera di un team di analisti italiani e belgi, il Keccak sembra dunque destinato a venire gradualmente incluso e adottato nelle soluzioni di sicurezza informatica più variegate.

DEFINIZIONE CRC32 – http://goo.gl/v7fAc :

Il Cyclic redundancy check (ovvero Controllo a ridondanza ciclica, il cui acronimo CRC è invece ben più diffuso) è un metodo per il calcolo di somme di controllo (checksum in inglese). Il nome deriva dal fatto che i dati d’uscita sono ottenuti elaborando i dati di ingresso i quali vengono fatti scorrere ciclicamente in una rete logica. Il controllo CRC è molto diffuso perché la sua implementazione binaria è semplice da realizzare, richiede conoscenze matematiche modeste per la stima degli errori e si presta bene a rilevare errori di trasmissione su linee affette da elevato rumore di fondo. Le tecniche CRC furono inventate da W. Wesley Peterson che pubblicò il suo primo lavoro sull’argomento nel 1961.
Utile per l’individuazione di errori casuali nella trasmissione dati (a causa di interferenze, rumore di linea, distorsione), il CRC non è invece affidabile per verificare la completa correttezza dei dati contro tentativi intenzionali di manomissione. A tal fine sono utilizzati algoritmi di hash quali MD5 e SHA1, più robusti seppur computazionalmente meno efficienti.

Sorgente: http://pastebin.com/FzZYFNE7

<?php
echo "<h2>Smoking Skull's Crypter</h2> <br>";
$str = "Tuo Codice";
$MD5h = MD5($str);
$SHA1h = SHA1($str);
$CRC32h = CRC32($str);
$N = "<br><br>";
echo "L'hash di <u>$str</u> criptato in MD5 è: <b>$MD5h</b>";
echo "$N";
echo "L'hash di <u>$str</u> criptato in SHA1 è: <b>$SHA1h</b>";
echo "$N";
echo "L'hash di <u>$str</u> criptato CRC32 è: <b>$CRC32h</b>";
?>

6 risposte a “[.php] Smoking Skull’s Crypter – Criptare in MD5, SHA1 e CRC32

  1. se vuoi c’è una serie di miei tool per la comunicazione e criptazione con AES256
    leprechaun.webnet32.com/Blog/?p=14

    Ci sono anche i sorgenti, è roba vecchiotta non aspettarti chissà quale codice pulito =)

  2. @Mauro Buddy – Sono andato a vedere i sorgenti VB.NET, molto carina la “Babilonia Chat Reloaded” e’ il programmino che mi ha attirato piu’ di tutti, niente male; comunque il mio codice e’ stato fatto solo per un’esclusiva necessita’ anche perche’ non me la cavo molto in PHP.

    • io di php proprio nulla invece😄 scrivicchio in vb.net anche se volevo cambiare e passare a qualcosa di serio e non al linguaggio dei bimbi😄
      la babilonia chat sarebbe bello modificarla in modo che la chiave di criptazione venga scambiata dal server al client utilizzando pgp in automatico invece che doversela dire in qualche modo sicuro, ma è un casino…

  3. @Mauro Buddy – Tipo? Che linguaggio vorresti imparare? Immagino immagino anche se di VB.NET io capisco veramente meno di niente, avevo fatto qualche tool anni fa, ma non ricordo piu’ nulla

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...