Apple : Cryptographie – Chiffrement

Défendu ardemment par Apple et l’ensemble de l’industrie high-tech, conspué de plus en plus sans vraiment comprendre par certains politiques et représentants des forces de l’ordre, le chiffrement des données est au centre de débats enflammés depuis plusieurs mois. Gage de la protection de la vie privée pour les uns, il est l’obstacle entravant la sécurité des citoyens face aux criminels pour les autres.
Mais de quoi parle-t-on exactement ? Comment fonctionne le chiffrement ? Quelles sont les technologies employées par Apple ? Voici un petit résumé pioché dans mes lectures récentes et comme source principal MacGénération.
Qu’est-ce que le chiffrement ? À quoi ça sert et comment cela fonctionne ?
Le principe du chiffrement est de sécuriser un échange de données en les rendant inintelligibles par une personne qui intercepte le message, mais qui ne possède pas la clé de déchiffrement. Ça va même un petit peu plus loin, puisque l’idée du chiffrement est de transformer des données, comme un texte, en quelque chose d’indiscernable de données purement aléatoires. C’est-à-dire que si je vous donne une série de bits sans plus de détails, il ne vous sera pas possible de me dire s’il s’agit simplement de « 0 » et de « 1 » tirés à pile ou face, ou bien s’il s’agit de quelque chose qui a été chiffré.

Il existe deux grandes familles de systèmes de chiffrement : les systèmes symétriques, et les systèmes asymétriques. La différence concerne les clés.

Dans un système de chiffrement symétrique, comme l’AES, le RC4, etc., la clé qui sert au chiffrement est la même que celle qui sert au déchiffrement. Deux personnes qui souhaitent s’échanger des messages chiffrés en AES doivent au préalable s’être échangées une clé secrète commune.

Pour les systèmes asymétriques, comme le RSA, la clé de chiffrement n’est pas la même que la clé de déchiffrement : l’une est publique (la clé de chiffrement), l’autre est privée (la clé de déchiffrement). Il ne doit pas être possible de retrouver facilement la clé privée à partir de la clé publique. Dans ce cas, si je souhaite échanger des messages chiffrés en RSA avec quelqu’un, je construis dans mon coin ma clé publique et ma clé privée, et j’envoie ensuite la clé publique à mon interlocuteur. Il fait de même de son côté, et quand je souhaite lui envoyer un message, j’utilise sa clé publique.

Les systèmes de chiffrement asymétriques peuvent aussi servir à faire de la signature numérique. Une signature numérique sert par exemple à prouver que le document n’a pas été modifié, et qu’il provient bien d’une personne donnée. C’est ce qui est fait quand on paie ses impôts en ligne par exemple. Dans ce cas, le rôle des clés est inversé, et la personne qui désire signer un document va calculer une empreinte numérique du document (comme un condensat SHA-256 par exemple), et chiffrer cette empreinte avec sa clé privée. Toute personne qui souhaite vérifier l’authenticité de la signature peut le faire en calculant à son tour la même empreinte, et en la comparant à l’empreinte déchiffrée par la clé publique.
Depuis OS X Yosemite, Apple pousse à l’activation de FileVault, la fonction de chiffrement des Mac. Sur une machine équipée d’un SSD, la perte de performances est quasiment inexistante. Vous trouverez toutes les informations essentielles sur FileVault sur cette fiche technique décrite sur le site de support d’Apple.

Est-ce que l’on peut chiffrer tous les appareils informatiques et tous les types de données ? Faut-il un composant spécial pour gérer le chiffrement ?

Il est tout à fait possible de chiffrer n’importe quel type de données. Après tout, un fichier n’est qu’une longue suite de 0 et de 1. Le sens qu’on lui donne est purement subjectif. Je veux dire que le concept de document PDF ou d’image PNG n’est pas intrinsèque aux données, c’est juste une question d’interprétation par les applications. Même la notion de caractère dans un fichier n’est qu’une convention…

En général, on regroupe ces bits par paquets de 8, ce qui permet de les considérer comme un nombre en base 2, et donc d’en calculer une valeur entre 0 et 255. Ensuite, on utilise des choses, comme la table ASCII, qui est un tableau de 256 signes, où l’on a associé un caractère, ou un symbole, à chaque nombre. Par exemple, la valeur 65 est associée à la lettre « A » majuscule.

Quand un logiciel lit un fichier, il tente de donner un sens à cette suite de nombres en fonction de règles. Par exemple, si la suite de bits, transformée en une suite de caractères grâce à la table ASCII, commence par les symboles « %PDF », alors on va utiliser les règles qui définissent les documents PDF pour interpréter le reste du fichier. Si au contraire le document commence par les nombres 31, puis 139, alors il y a de fortes chances que ce soit un fichier compressé en gzip, etc.

Et on peut descendre encore plus bas, car même la notion de fichier n’est qu’une convention : un disque dur, une clé USB, ou tout autre support de stockage ne sont que des immenses suites de bits, que le système d’exploitation interprète comme des fichiers selon des règles bien précises qui diffèrent d’un OS à l’autre (HFS+ sous OS X, NTFS sous Windows, Ext4 sous Linux, et bien d’autres).

En partant de ce principe, strictement tout peut être chiffré ! Je peux tout à fait décider de donner une autre interprétation aux données, et les utiliser en entrée à mon système de chiffrement. Pour être à nouveau compréhensible par le système d’exploitation et les applications, il suffit de déchiffrer la suite de nombres.

Souvent, les systèmes de chiffrement sont directement intégrés aux systèmes d’exploitation. En gros, ils se logent entre le pilote du disque dur (qui écrit les données brutes sur le disque) et le système de fichiers. Ils procèdent au chiffrement et au déchiffrement à la volée, en fonction d’une clé qui dépend d’un mot de passe par exemple.

Il n’est pas nécessaire d’avoir du matériel dédié pour faire du chiffrement. Par contre, les opérations de chiffrement sont généralement coûteuses en termes de CPU, et c’est pourquoi on a tendance à équiper les appareils de puces dédiées pour soulager le CPU, surtout sur les appareils mobiles. Dans le cas des processeurs Intel, le CPU possède des fonctions primitives qui permettent de simplifier le calcul de l’AES.

IMG_0452IMG_0451
Depuis l’iPhone 3GS, pour activer la fonction de protection des données mis en place par Apple qui améliore le chiffrement, il suffit de définir un code à 4 chiffres (ou plus aujourd’hui), ce qui est fortement encouragé lors de la première configuration.
Quelles sont ses caractéristiques de la technologie AES 256-bits utilisée par Apple et quelle est sa robustesse ?
L’AES (Advanced Encryption Standard) est un système de chiffrement symétrique, qui peut fonctionner avec des clés de 128, 192 ou 256 bits.

Il fait partie de la famille des systèmes de chiffrement par bloc (en opposition aux systèmes de chiffrement par flot), ce qui veut dire qu’il découpe les données à chiffrer en blocs de 128 bits (16 octets), et procède à différentes transformations et mélanges en fonction des bits de la clé. Ce qui est intéressant avec l’AES, c’est qu’il a été pensé pour que les différents calculs soient simples à mettre en œuvre sur un CPU classique.

C’est un système qui a largement fait ses preuves ces dernières années, et on ne lui connaît pas de véritable biais exploitable. Ça signifie que pour déchiffrer un message dont on n’a pas la clé, il faut en essayer un grand nombre, et voir si le message déchiffré a un sens. Il y a quelques années, des chercheurs ont trouvé quelques petites faiblesses dans l’algorithme de l’AES qui permettent de réduire le temps de calcul par 4 (ce qui est suffisant en cryptographie pour dire que le système est « cassé »), mais même dans ce cas, ça laisse tout de même pas mal de marge. Mais ceci est une autre histoire.

No comments yet... Be the first to leave a reply!

Laisser moi votre sentiment....

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s