SlideShare una empresa de Scribd logo
1 de 33
Dev backend php5 en SSII
Mercenaire du code
…
…
“Après l’extension prestashop
que j’ai développé.
Et avant d’intégrer un
wordpress.
Je vais développer ma propre
méthode de hash/cryptage”
Genius!
Faire mieux que les centaines d’
experts en cryptologie qui
bossent à la CIA/NSA ? en php ?
Que j’ai 10 ou 200 passagers, mon bus
fera toujours 34 places…
SUPERPOSITION! euh...

COLLISIONS!
100%

38

3.4 × 10

50%

2.2 × 1019
264
Vers

2

54

Principe:
toto: 01101101011001010111010101010101011110001110
titi : 10101010110111100010011001100110101001011101
tata : 10101011011011010110011101111010111001101101
Et quelques millions d’autres chaines

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Bits identiques
Bits fixes
280 263
Ce qui diminue le temps de recherche par un facteur de
131 072!

http://www.iacr.org/conferences/crypto2005/r/2.pdf
Md5
1 000 < 0.002 s
100 000 < 0.1 s
1 000 000 < 0.8 s

Sha1
< 0.003 s
< 0.1 s
<1s

PC Portable
Core i5 vPro
4Go de ram
Windows 7 etc...
Basé sur l'algorithme de chiffrement par bloc Blowfish

S’utilise avec la fonction crypt() de php
crypt('azerty123', '$2a$08$salt$');
2a = BCrypt, 2y = BCrypt, with fixed unicode problem
08 = Coût
Et le salt !
Clé

Temps

4

0.004 s

6

0.02 s

10

0.12 s

12

0.37 s

14

1.4 s

16

5.5 s

PC Portable
Core i5 vPro
4Go de ram
Windows 7 etc...
Facteur temps

md5

sha1

bcrypt 4

x1200

x1900

bcrypt 10

x11 000

x100 000

bcrypt 12

x420 000

x390 000

Temps réalisé sur portable perso
Purement indicatif.
Etrangement, les sha1 sur de petites chaines sont plus rapide que leur équivalent md5
Il existe aussi sha2 (disponible en 256-384-512 bits)
Fonctionne sur le même principe que sha1.

Round

Temps
5 000 0.05 s

Avantage :
Il est possible de définir un “round” (itération) qui
augmente le cout CPU.
Inconvénient :
Empreinte CPU fluctuante suivant l’architecture du CPU.
Empreinte mémoire inférieur à celle de Bcrypt

20 000 0.1 s
100 000 0.4 s
Petite info:
Il existe une étude scientifique de 2008 qui démontre qu’
il est possible d’optimiser un CPU polymorphic (MOLEN)
pour générer des hash sha2.
Résultats de fou!

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.148.7900&rep=rep1&type=pdf
En php il existe plusieurs méthodes pour générer des hashs dont :

crypt() (>php4)
Supporte plusieurs algorithmes

hash() (>php 5.1)
Supporte plusieurs algorithmes. Nécessite l’extension HASH.
Avec PHP5.5 il existe de nouvelles méthodes :
password_get_info();
Obtient des infos sur l’algo utilisée et son “coût”.

password_hash();
Permet de générer un hack d’un mot de passe, les options de l’algo sont directement envoyé par un tableau php et
plus un salt.
password_needs_rehash();
Détermine si le mot de passe correspond à l’aglo fournie
password_verify();
Obtient les informations sur le hash, applique l’algo et les options identique à une chaine et compare.
Et pour générer de superbes hash avec php :
Il existe une petite extension bien pratique!

mcrypt_create_iv(int $size);

string(20) "’™É€á7hüwy–ÕOÌI(ê"
string(20) "ÌD (=3Ç×D¶Lhe(êæèã"
string(20) "±Á.7“/ª³YŠ¯KË£W߯²"
string(20) ".>¤-Á¾ çw}c(ß÷X¢sò"

Enregistrement en BASE64 impérativement !
Des questions ?
http://project-rainbowcrack.com/table.htm
http://php.net/manual/fr/function.mcrypt-create-iv.php
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.148.7900&rep=rep1&type=pdf
http://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html
http://www.gregboggs.com/php-blowfish-random-salted-passwords/
http://md5decrypter.co.uk/
http://fr.wikipedia.org/wiki/SHA-1
http://php.net/manual/fr/function.password-hash.php
http://cryptography.hyperlink.cz/md5/MD5_collisions.pdf
http://www.iacr.org/conferences/crypto2005/r/2.pdf

Más contenido relacionado

La actualidad más candente

Sécuriser un serveur web
Sécuriser un serveur webSécuriser un serveur web
Sécuriser un serveur webTaoufik JABBARI
 
Need it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseNeed it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseDouria Zohbi
 
20170222 zimbra et-l'industrialisation-v2
20170222 zimbra et-l'industrialisation-v220170222 zimbra et-l'industrialisation-v2
20170222 zimbra et-l'industrialisation-v2Cloud Temple
 
Installer zpanel sur un serveur linux en 5 minutes
Installer zpanel sur un serveur linux en 5 minutesInstaller zpanel sur un serveur linux en 5 minutes
Installer zpanel sur un serveur linux en 5 minutesSamuel Guebo
 
Scénarios d'exploitation Metasploit - FR : Scénario 1
Scénarios d'exploitation Metasploit - FR : Scénario 1Scénarios d'exploitation Metasploit - FR : Scénario 1
Scénarios d'exploitation Metasploit - FR : Scénario 1Eric Romang
 
SdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieSdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieAlexandru Radovici
 
Buffer Overflow exploitation
Buffer Overflow exploitationBuffer Overflow exploitation
Buffer Overflow exploitationZakaria SMAHI
 
Scénarios d'exploitation Metasploit - FR : Scénario 3
Scénarios d'exploitation Metasploit - FR : Scénario 3Scénarios d'exploitation Metasploit - FR : Scénario 3
Scénarios d'exploitation Metasploit - FR : Scénario 3Eric Romang
 
Initiation a la ligne de commande
Initiation a la ligne de commandeInitiation a la ligne de commande
Initiation a la ligne de commandeLakhdar Meftah
 
1.0 install de ubuntu server + ssh + webmin
1.0 install de ubuntu server + ssh + webmin1.0 install de ubuntu server + ssh + webmin
1.0 install de ubuntu server + ssh + webminOsi Pallière
 

La actualidad más candente (13)

Sécuriser un serveur web
Sécuriser un serveur webSécuriser un serveur web
Sécuriser un serveur web
 
Need it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseNeed it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some course
 
Atelier 5
Atelier 5Atelier 5
Atelier 5
 
Prez FreeBSD jail
Prez FreeBSD jailPrez FreeBSD jail
Prez FreeBSD jail
 
20170222 zimbra et-l'industrialisation-v2
20170222 zimbra et-l'industrialisation-v220170222 zimbra et-l'industrialisation-v2
20170222 zimbra et-l'industrialisation-v2
 
Installer zpanel sur un serveur linux en 5 minutes
Installer zpanel sur un serveur linux en 5 minutesInstaller zpanel sur un serveur linux en 5 minutes
Installer zpanel sur un serveur linux en 5 minutes
 
Scénarios d'exploitation Metasploit - FR : Scénario 1
Scénarios d'exploitation Metasploit - FR : Scénario 1Scénarios d'exploitation Metasploit - FR : Scénario 1
Scénarios d'exploitation Metasploit - FR : Scénario 1
 
SdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieSdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortie
 
Buffer Overflow exploitation
Buffer Overflow exploitationBuffer Overflow exploitation
Buffer Overflow exploitation
 
Commande zblock
Commande zblockCommande zblock
Commande zblock
 
Scénarios d'exploitation Metasploit - FR : Scénario 3
Scénarios d'exploitation Metasploit - FR : Scénario 3Scénarios d'exploitation Metasploit - FR : Scénario 3
Scénarios d'exploitation Metasploit - FR : Scénario 3
 
Initiation a la ligne de commande
Initiation a la ligne de commandeInitiation a la ligne de commande
Initiation a la ligne de commande
 
1.0 install de ubuntu server + ssh + webmin
1.0 install de ubuntu server + ssh + webmin1.0 install de ubuntu server + ssh + webmin
1.0 install de ubuntu server + ssh + webmin
 

Destacado

Hash Functions: lecture series by Ahto Buldas
Hash Functions: lecture series by Ahto BuldasHash Functions: lecture series by Ahto Buldas
Hash Functions: lecture series by Ahto BuldasGuardTimeEstonia
 
Authentification Forte Cours UNI 2002
Authentification Forte Cours UNI 2002Authentification Forte Cours UNI 2002
Authentification Forte Cours UNI 2002Sylvain Maret
 
5. message authentication and hash function
5. message authentication and hash function5. message authentication and hash function
5. message authentication and hash functionChirag Patel
 
Hash Techniques in Cryptography
Hash Techniques in CryptographyHash Techniques in Cryptography
Hash Techniques in CryptographyBasudev Saha
 
Hash Function & Analysis
Hash Function & AnalysisHash Function & Analysis
Hash Function & AnalysisPawandeep Kaur
 

Destacado (7)

Hash Functions: lecture series by Ahto Buldas
Hash Functions: lecture series by Ahto BuldasHash Functions: lecture series by Ahto Buldas
Hash Functions: lecture series by Ahto Buldas
 
Authentification Forte Cours UNI 2002
Authentification Forte Cours UNI 2002Authentification Forte Cours UNI 2002
Authentification Forte Cours UNI 2002
 
5. message authentication and hash function
5. message authentication and hash function5. message authentication and hash function
5. message authentication and hash function
 
Hash Techniques in Cryptography
Hash Techniques in CryptographyHash Techniques in Cryptography
Hash Techniques in Cryptography
 
Secure hashing algorithm
Secure hashing algorithmSecure hashing algorithm
Secure hashing algorithm
 
Hash Function & Analysis
Hash Function & AnalysisHash Function & Analysis
Hash Function & Analysis
 
Hashing
HashingHashing
Hashing
 

Similar a Stockage et hashage des mots de passe

Microformats - Métad0nnées pour Humains & Machines
Microformats - Métad0nnées pour  Humains & MachinesMicroformats - Métad0nnées pour  Humains & Machines
Microformats - Métad0nnées pour Humains & MachinesSylvain Carle
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Guillaume Sautereau
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
PHP #4 : sessions & cookies
PHP #4 : sessions & cookiesPHP #4 : sessions & cookies
PHP #4 : sessions & cookiesJean Michel
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secretsAymeric Bouillat
 
Power shell saturday Paris 2017 Omiossec
Power shell saturday  Paris 2017 OmiossecPower shell saturday  Paris 2017 Omiossec
Power shell saturday Paris 2017 OmiossecOlivier Miossec
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
Compte rendu chaberge
Compte rendu chabergeCompte rendu chaberge
Compte rendu chabergeshiruh
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sqlcecile59
 
Nouveautés dans TYPO3 CMS 6.0
Nouveautés dans TYPO3 CMS 6.0Nouveautés dans TYPO3 CMS 6.0
Nouveautés dans TYPO3 CMS 6.0Idéative
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2Saad Tazi
 
PHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_ExtensionsPHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_Extensionsjulien pauli
 
BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7Darkmira
 

Similar a Stockage et hashage des mots de passe (20)

Microformats - Métad0nnées pour Humains & Machines
Microformats - Métad0nnées pour  Humains & MachinesMicroformats - Métad0nnées pour  Humains & Machines
Microformats - Métad0nnées pour Humains & Machines
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
PHP #4 : sessions & cookies
PHP #4 : sessions & cookiesPHP #4 : sessions & cookies
PHP #4 : sessions & cookies
 
Lp web tp3_idse
Lp web tp3_idseLp web tp3_idse
Lp web tp3_idse
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
 
Power shell saturday Paris 2017 Omiossec
Power shell saturday  Paris 2017 OmiossecPower shell saturday  Paris 2017 Omiossec
Power shell saturday Paris 2017 Omiossec
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
Compte rendu chaberge
Compte rendu chabergeCompte rendu chaberge
Compte rendu chaberge
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Nouveautés dans TYPO3 CMS 6.0
Nouveautés dans TYPO3 CMS 6.0Nouveautés dans TYPO3 CMS 6.0
Nouveautés dans TYPO3 CMS 6.0
 
Html5 & ie
Html5 & ieHtml5 & ie
Html5 & ie
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2
 
PHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_ExtensionsPHPTour-2011-PHP_Extensions
PHPTour-2011-PHP_Extensions
 
BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7BC Breaks - Incompatibilites PHP7
BC Breaks - Incompatibilites PHP7
 
Resume SGBDR
Resume SGBDRResume SGBDR
Resume SGBDR
 

Stockage et hashage des mots de passe