Accueil Surveillance de sécurité Apple expose les détails de sécurité ios

Apple expose les détails de sécurité ios

Vidéo: Nouveautés iOS 14 : Accessibilité renforcé tape au dos de l'iPhone, détection des bruits, Siri (Novembre 2024)

Vidéo: Nouveautés iOS 14 : Accessibilité renforcé tape au dos de l'iPhone, détection des bruits, Siri (Novembre 2024)
Anonim

Vous avez déjà entendu dire qu'Apple avait annoncé un nouveau programme d'attribution de primes pour les bogues lors de la récente conférence Black Hat. Ivan Krstic, responsable de l'ingénierie et de l'architecture de la sécurité chez Apple, a fait cette annonce lui-même. Mais ce ne sont que les 10 dernières minutes d’un exposé de 50 minutes. Pendant les 40 premières minutes, Krstic a approfondi de manière inédite trois composantes de la sécurité iOS. Et par profondeur, je veux dire bathysphérique.

Ma conclusion générale était de me rendre compte de la profondeur avec laquelle ces systèmes protègent les données des utilisateurs, même d’Apple. Je vais essayer de transmettre ce qui a été dit, sans être trop technique.

Mappage JIT WebKit renforcé

Désolé, c'est comme ça que ça s'appelle. JIT signifie Just In Time et se réfère à la façon dont le code Javascript est compilé juste à temps pour son exécution. "Cela est nécessaire pour JavaScript haute performance", a expliqué Krstic. "Mais la politique de signature de code doit être assouplie. Le compilateur JIT émet un nouveau code non signé. Un attaquant qui aurait géré une attaque en écriture n'importe où pourrait permettre l'exécution de code arbitraire."

Pour un peu d’arrière-plan, les zones de mémoire peuvent être marquées avec des autorisations de lecture, d’écriture et d’exécution. Cette distinction, introduite il y a très longtemps, étouffait les attaques qui exécutaient du code dans des zones consacrées aux données. En bref, la solution d’Apple implique une technique qui consiste à placer le code JavaScript compilé dans une zone de mémoire permettant uniquement l’ exécution. Les processus ne peuvent ni lire ce qui est là ni écrire de nouvelles données. Il y a un peu plus que cela, mais ce changement, spécifique à iOS 10, supprime toute une série d'attaques possibles.

Secure Enclave Processor

Les applications d’un périphérique Apple s’exécutent dans une CPU appelée Processeur d’application ou AP. Les périphériques Apple modernes possèdent un processeur entièrement séparé appelé Secure Enclave Processor, ou SEP. "Le SEP est protégé par une clé principale cryptographique puissante à partir du code d'authentification de l'utilisateur", a déclaré Krstic. "L'attaque hors ligne n'est pas possible. Elle contourne la surface d'attaque de l'AP, même si celui-ci a été compromis. Elle arbitre tous les accès des utilisateurs et gère sa propre mémoire cryptée. Lors de la première initialisation, elle utilise un véritable générateur de nombres aléatoires pour créer un environnement unique. clé de périphérique dans le processeur. Elle n’est pas exportable et elle est stockée dans une ROM sécurisée immuable."

Krstic a ensuite expliqué comment l'appareil utilise quatre types de clés de sécurité internes présentant des caractéristiques différentes. Le type A n'existe que lorsque le périphérique est déverrouillé. Le type B est une clé publique toujours présente, plus une clé privée qui existe lorsque le périphérique est déverrouillé. Le type C entre en existence la première fois que le périphérique est déverrouillé après le démarrage. Et le type D est toujours disponible.

La présentation est passée à un certain nombre de diagrammes très complexes. L'un d'eux a expliqué le processus de démarrage et de déverrouillage du périphérique, en montrant comment chaque type de clé était créé et stocké. Chaque fichier de votre appareil possède sa propre clé de cryptage. un autre diagramme montre la danse complexe qui permet au SEP d'authentifier et de décrypter ce fichier tout en conservant les clés de sécurité essentielles à l'intérieur de lui-même. Un autre a expliqué le processus complexe qui vous permet de choisir «Mettre à jour plus tard». Et encore, un autre a parcouru le processus qui permet de déverrouiller via une ID tactile sans garder la clé principale visible de quelque manière que ce soit.

Le principal élément à retenir de cette partie de la discussion est qu'Apple a vraiment vraiment réfléchi à ce qui est nécessaire pour gérer le cryptage complètement à l'intérieur du processeur Secure Enclave, sans obliger l'utilisateur à faire beaucoup d'efforts. Si vous souhaitez voir ces diagrammes par vous-même, consultez la présentation complète de Krstic.

Synchroniser les secrets

Il est extrêmement pratique que vous puissiez synchroniser vos données entre plusieurs appareils Apple. HomeKit vous permet de gérer les périphériques IoT, AutoUnlock permet à votre Mac de se déverrouiller lorsque votre Apple Watch se trouve à proximité, à la synchronisation de vos photos via iCloud, etc. Mais du point de vue de la sécurité, la synchronisation est un problème.

"Les approches traditionnelles ne sont pas bonnes", a déclaré Krstic. "Une solution consiste à obliger l'utilisateur à saisir une clé de tiroir solide sur tous les appareils; perdez-la et l'accès aux secrets sera perdu. L'autre consiste à envelopper les données dans une clé dérivée qui les exposera à la compte fournisseur."

"Nous avions plusieurs buts ici", a poursuivi Krstic. "Les secrets doivent être disponibles pour tous les appareils, protégés par une crypto puissante. Les utilisateurs peuvent récupérer des secrets même s'ils perdent tous les appareils connectés. Les données ne sont pas exposées à Apple et aucune attaque par force brutale n'est possible."

L'authentification dans le système de base iCloud Keychain est simple. Chaque appareil a sa propre paire de clés et, pour ajouter un nouvel appareil au cercle de synchronisation, vous devez l’approuver à partir de l’un de vos appareils existants. Le backend d'Apple n'est pas impliqué; il n'a pas de privilège. Si un utilisateur perd l'accès à tous les appareils, l'accès peut être récupéré à l'aide de la clé de sécurité iCloud et du mot de passe iCloud.

Krstic a expliqué en détail comment Apple gère ce système sans laisser de côté la moindre possibilité que quiconque, y compris Apple, puisse accéder aux données de l’arrière. Le système implique ce que l’on appelle des cartes d’administration, créées au moment de la mise en service d’un nouveau parc de serveurs de chiffrement. "Les cartes d'administrateur sont créées lors d'une cérémonie sécurisée lors de la mise en service de la flotte et stockées dans des coffres-forts physiques distincts placés sous la garde de trois organisations différentes chez Apple, dans des sachets de preuve inviolables", a déclaré Krstic.

Cette situation ne dure que jusqu'à ce que la flotte soit effectivement mise en service. À ce moment-là, a déclaré Krstic, "nous avons doté les cartes d’administrateur d’une nouvelle fonction de hachage à sens unique." Tirant un mélangeur clairement utilisé sous le podium, il poursuivit: "Oui, un voyage dans le mélangeur." Une fois le parc de serveurs de cryptage actif, il ne peut en aucun cas être mis à jour ou modifié, pas même par Apple, car les cartes d’administrateur ont été détruites. S'il s'avère qu'une mise à jour est réellement nécessaire, Apple doit constituer une nouvelle flotte et envoyer une mise à jour logicielle permettant aux utilisateurs de se connecter à la nouvelle flotte.

"Pourquoi faisons-nous cela", a déclaré Krstic. "Pourquoi prenons-nous cette dernière étape extrêmement inhabituelle? Nous mettons tout en œuvre pour concevoir des systèmes de sécurité offrant une confiance. Lorsque les données quittent le périphérique, les enjeux sont encore plus criants. Nous devons maintenir cette confiance. Si nous restons en possession de ces cartes administratives, il est possible que ce ne soit pas vrai. C’est à quel point nous prenons notre mission au sérieux en ce qui concerne les données des utilisateurs."

"Avez-vous fait cela à cause des demandes d'informations du FBI?" Krstic a répondu: "Je suis un ingénieur. Je ne peux que répondre aux questions sur les raisons pour lesquelles je me suis présenté aujourd'hui." OK très bien. Mais je pense que le questionneur avait raison. Créer un système autonome que vous ne pouvez même pas modifier vous-même est un très bon moyen d'empêcher que quelqu'un d'autre n'apporte des modifications indésirables.

J'espère avoir communiqué le niveau de détail dans le discours de Krstic sans vous embuer les yeux. À en juger par le bavardage alors que le groupe se dispersait, les vrais geeks de la sécurité au niveau de l'octet dans la salle ont été très impressionnés.

Apple expose les détails de sécurité ios