Archives par mot-clé : featured

La Loi, Truecrypt et le chiffrement de disque en France

Je lis souvent des commentaires d’utilisateurs de chiffrement de disque qui se félicite d’être à l’abri de la loi…

Je rappel que Truecrypt n’est pas Plausible Deniability Proof. C’est à dire que bien que l’on ne puisse pas prouver qu’un fichier est un fichier chiffré n’importe quel expert judiciaire peut le suspecter très très fortement ce qui peut être suffisant pour un juge. J’expliquais comment ici et TCHUNT et ici avec FITOOLS.

Continuer la lecture de La Loi, Truecrypt et le chiffrement de disque en France

Quelques outils de pentest et d’audit sécurité

hacker_symbolJe préfère prévenir tout de suite. Cet article n’est pas écrit pour les guru sécurité mais simplement pour des gens qui s’intéressent un peu à la sécurité et qui voudraient tester leur système d’information. Je sais que j’enfonce des portes en disant ça , mais la valeur ajouté d’un vrai audit de sécurité ne repose pas dans les outils utilisé mais dans le savoir faire et l’expérience des auditeurs.

Maintenant que cela est dit, attaquons nous à se bon marronnier. Dans cet article je vais uniquement me consacrer à quelques outils d’audit gratuit (parfois même libre) et non aux méthodes (MEHARI, EBIOS, OSSTM, etc). Je vais massivement utiliser les présentations Youtube des différents outils afin de le rendre accessible. Cet article n’énumère qu’une infime partie de tous les outils disponible pour faire du pentest. Des solutions de LiveCD tel que Backtrack et le plus récent NodeZero Linux contiennent une quantité bien plus importante d’outils d’investigations et d’audit que ce qui est décrit dans cet article.

En matière d’audit, avant toute chose, il faut forcément que je parle du Trio de base que tout bon Script Kiddies doit connaitre :

1 / Nmap pour découvrir le réseau (NmapSi4 est sympa si vous voulez un GUI).

2 / Nessus / OpenVAS pour découvrir les vulnérabilités des machines et des éléments actifs du réseau « découverts par nmap».

3 / Metasploit/Meterpreter pour exploiter les vulnérabilités «découvertes avec nessus» et en faire POC  (Proof Of Concept).

Bon c’est une base. Maintenant il faut voir ce que l’on peut trouver comme outils par famille de pentest. Je vais classer ces outils en 3 familles :

  • Les outils d’audit Généraliste (le trio de choc)
  • Les outils d’audit Réseau et Système (Cisco, Juniper, Virtualisation, etc)
  • Les outils d’audit Applicatifs (web, java, etc)

Continuer la lecture de Quelques outils de pentest et d’audit sécurité

Où en sont les GPU brute forcer ?

cudaAprès avoir essayé d’extrapoler le temps nécessaire pour casser un mot de passe avec des supercalculateur dans ce billet, puis dans celui-ci avec PBKDF2. Je vais à présent m’intéresser dans cet article à essayer de définir le temps réel qu’il faut aujourd’hui pour une machine du commerce de milieu-haut de gamme pour casser des mots de passe MD5 à l’aide de la puissance de la carte graphique et donc le GPGPU.

Voila maintenant un peu plus d’un 1 an (mai 2008) que le premier brute forcer se servant de la puissance des GPU et de l’API CUDA de NVIDIA est apparut. Ce brut forcer possède le doux nom MD5-GPU et pour la petite histoire il a été écris par un Français : Benjamin Vernoux (cocorico). Avec une 8800GT, la version 0.1 de MD5-GPU générait une puissance de 60Mhash/s, la version 0.2 qui suivit dans le même mois atteignait déjà 200MHash/s.

Continuer la lecture de Où en sont les GPU brute forcer ?

PBKDF2 et génération des clés de chiffrement de disque

Dans mon billet sur les flops et le temps pour casser un password par brute force. Je prenais uniquement en compte la puissance en FLOPS sans prendre en compte le type de hash et les itérations. J’ai récemment parlé dans un billet du temps nécessaire à un supercalculateur pour casser un mot de passe issus d’une fonction de hash. En partant du postulat : 1 FLOPS = 1 hash. A présent je vais essayer de calculer le temps nécessaire à ce même supercalculateur pour casser une clé réalisé non pas seulement un hash mais avec une fonction de type PBKDF2.

Le PBKDF2 (Password-Based Key Derivation Function) est une fonction de dérivation de clé qui est implémenté dans la majorité des logiciel de chiffrement de disque. C’est aujourd’hui la meilleure référence en matière de sécurité pour la création de clé de chiffrement. Il est basé sur ces éléments :

  • Un algorithme de HMAC (SHA512, RIPEMD, WHIRLPOOL,etc)
  • Un mot de passe
  • De la Salt pour luter contre une attaque rainbow table
  • Des itérations pour ralentir la génération de clé

Ces itérations sont très importantes car elles permettent d’accroitre considérablement le temps nécessaire au test de toutes les combinaisons d’un mot de passe. Et c’est sur cela que ce billet va se concentrer.

Je vais reprendre l’excellent travail d’explication du fonctionnement de Truecrypt de Bjorn Edstrom et ses fonctions en python. Dans un premier temps je vais chercher à générer une clé PBKDF2-PKCS#5, puis dans un second temps je vais chercher à calculer le temps qu’il faut pour la générer la clés en fonctions des différents éléments la composant.

Continuer la lecture de PBKDF2 et génération des clés de chiffrement de disque

Les FLOPS, les clés et la taille des mots de passe

En matière d’attaque par force brute il faut bien différencier l’attaque sur le mot de passe que tapent l’utilisateur et l’attaque sur la clé qui est issus du mot de passe. L’attaque par force brute consiste à utiliser une très grande puissance de calcul pour essayer toutes les combinaisons possible d’une chaine donnée. Les supercalculateurs quantique n’étant encore que des objets de recherche ils ne feront pas l’objet de cette démonstration.

Comme il a été déjà démontré, une clé s’obtient par le calcul de 3 éléments : Le mot de passe, la salt et des itérations. La présence de SALT empêche l’utilisation de rainbow table, et les itérations permettent de ralentir la génération de la clé. Ce billet ne prendra pas en compte les Itérations et le type de Hash dans le calcul du mot de passe. Cela sera fait dans un prochain billet.

Continuer la lecture de Les FLOPS, les clés et la taille des mots de passe

Rubber-hose cryptanalyse et Hidden Operating System

La rubber-hose cryptanalyse (cryptanalyse de la matraque en caoutchouc) est un euphémisme qui symbolise l’obtention de la clé de chiffrement par un moyen de coercition. Ce terme de rubber-hose a été utilisé pour la première fois en octobre 1990 par J. Marcus Ranum dans le groupe de discussion de référence en cryptologie « sci.crypt » à travers cette phrase à présent célèbre :

“…in which a rubber hose is applied forcefully and frequently to the soles of the feet until the key to the cryptosystem is discovered, a process that can take a surprisingly short time and is quite computationally inexpensive…”

Elle trouve aujourd’hui de nouveaux débouché avec l’essor du chiffrement de disque.

Aussi bien pour le chiffrement de volume que pour le chiffrement complet de disque, des volumes chiffrés peuvent être cachés dans d’autres volumes chiffrés un peu comme pour la stéganographie, on parlera alors de chiffrement stéganographique.

security

Dans le cas où des fichiers chiffrés seraient découverts, cacher des fichiers chiffrés dans d’autres fichiers chiffrés permet de ne révéler qu’une partie du secret à l’attaquant. Le propriétaire d’un volume chiffré peut donnée le mot de passe à un attaquant sans pour autant permettre à ce dernier d’accéder au fichier se trouvant dans le véritable volume caché protégé par un autre mot de passe.

Ce concept fait suite aux travaux sur la rubber-hose cryptanalyse (Dreyfus, 1997) qui ont montré qu’un moyen de coercition peut se montrer beaucoup plus efficace est moins cher qu’un parc de calculateur pour obtenir une clé de chiffrement.

A présent je vais pousser le raisonnement dans le cas de son utilisation pour caché un système d’exploitation chiffré :

Alice est une diplomate qui possède un ordinateur portable sur lequel se trouvent des informations confidentielles. L’ordinateur d’Alice est en Full Disk Encryption et possède 2 systèmes d’exploitation dans 2 partitions chiffrés:

  • Le premier SYSTEM A est le système leurre, c’est celui dont se sert alice la majeure partie de son temps quand elle n’a pas besoin d’accéder aux informations confidentielles.
  • Le second SYSTEM B est le système d’exploitation qui contient les données confidentielles, il est caché dans la seconde partition chiffré.

Son ordinateur possède 3 mots de passe :

  • Un mot de passe pour démarrer sur le SYSTEM A
  • Un mot de passe pour démarrer sur le SYSTEM B
  • Un mot de passe pour monter la partition chiffré où est caché le SYSTEM B

En fonction du mot de passe que rentre Alice au démarrage son ordinateur démarre sur le SYSTEM A ou le SYSTEM B.

Alice est enlever ainsi que son ordinateur par un groupe voulant connaitre les informations que contiens son portable. Alice donne le mot de passe du SYSTEM A, puis Alice donne le mot de passe de la seconde partition chiffré où est caché le SYSTEM B. Son ordinateur apparait au groupe comme ayant uniquement un SYSTEM A chiffré et une partition chiffré. Le SYSTEM B où se trouvent les données confidentielles n’a pas été découvert. Le groupe laisse repartir Alice pensant avoir tout découvert.

Voici comment on pourrait le représenter (issu de la doc Truecrypt):

decoyOS

Et vous l’aurez deviné c’est une fonctionnalitée disponible dans Truecrypt. Pour mettre en place un Hidden operating system cliquer ici.