web-dev-qa-db-fra.com

Sécurité du trousseau iOS

nous voulons utiliser des certificats sur l'iPhone pour s'authentifier pour MS Exchange Sync. Nous ne savons pas comment le concept de sécurité est mis en œuvre pour protéger ces certificats.

par exemple. est-il possible d'obtenir un accès "complet" au trousseau sur l'iPhone si aucun verrouillage de l'écran n'est activé? (ou avec un iPhone jailbreaké).

Quelqu'un at-il des liens à ce sujet?

54
phx

Étude de Fraunhofer sur la sécurité des trousseaux iOS:

D'après ce que je peux dire, il existe deux niveaux de cryptage que le trousseau iOS utilise. Le premier niveau utilise le mot de passe de l'écran de verrouillage comme clé de cryptage. Le deuxième niveau utilise une clé générée par et stockée sur l'appareil.

Les chercheurs de Fraunhofer ont découvert comment contourner le deuxième niveau. Il s'agit du niveau "le plus facile" à contourner, car la clé de chiffrement est stockée sur l'appareil. Ainsi, sur iOS4, leur méthode ne fonctionne qu'avec les entrées de trousseau qui n'utilisent PAS kSecAttrAccessibleWhenUnlocked ou kSecAttrAccessibleWhenUnlockedThisDeviceOnly, car ces entrées résident en mémoire avec le premier niveau déchiffré - même lorsque le téléphone est verrouillé.

  • À partir d'iOS 4, les clés avec kSecAttrAccessibleWhenUnlocked et kSecAttrAccessibleWhenUnlockedThisDeviceOnly sont protégées par un niveau de cryptage supplémentaire
  • Sur iOS 3.x et versions antérieures, toutes les clés peuvent être déchiffrées à l'aide de la méthode de Fraunhofer, quel que soit l'attribut d'accessibilité utilisé
  • Les appareils sans aucun mot de passe seront toujours vulnérables
  • Les appareils avec des codes d'accès faibles (moins de six chiffres) seront encore quelque peu vulnérables

≈50 ms par essai de mot de passe; → ≈20 essais par seconde; → ≈1,7 ans pour un changement de 50% de deviner le mot de passe correct pour un code alphanumérique à 6 chiffres avec la base 36. Le code simple standard de 4 chiffres serait forcé brutalement en moins de 9 minutes. Basé sur l'hypothèse que le compteur des mauvais essais dans iOS peut être contourné, car il n'est pas basé sur le matériel

Apple Inc. WWDC 2010, Core OS, session 209 "Sécurisation des données d'application", diapositive 24

Conclusion: si vous devez stocker des données sensibles, utilisez mieux votre propre cryptage. Et ne stockez pas la clé sur l'appareil.

Edit: Il existe de nombreux articles de presse qui citent l'étude Fraunhofer et rassurent leurs lecteurs de ne pas s'inquiéter à moins que leurs appareils ne soient volés, car cette attaque ne peut se faire qu'avec un accès physique à l'appareil.

Je suis en quelque sorte douteux. Le fait que les chercheurs aient fait leurs tests avec un accès physique au téléphone semble avoir simplement été un moyen de simplifier le problème, plutôt qu'une limitation. Voici leur description de ce qu'ils ont fait pour décrypter les entrées du trousseau:

Après avoir utilisé un outil de jailbreak, pour avoir accès à un shell de commande, nous exécutons un petit script pour accéder et décrypter les mots de passe trouvés dans le trousseau. Le déchiffrement est effectué à l'aide des fonctions fournies par le système d'exploitation lui-même.

Comme le sait quiconque a utilisé jailbreak.me, le jailbreak ne nécessite pas d'accès physique à l'appareil. Théoriquement, il devrait être trivial de modifier le code jailbreak.me et de le faire automatiser les éléments suivants:

  1. Effectuez le jailbreak comme d'habitude (tout cela nécessite que l'utilisateur ouvre un PDF créé de manière malveillante)
  2. Exécutez les scripts de Fraunhofer une fois le jailbreak terminé
  3. Envoyez les mots de passe sur le réseau à un emplacement à partir duquel l'attaquant peut les lire

Encore une fois, soyez prudent sur ce que vous mettez dans le trousseau.

47
pepsi

Normalement, le trousseau serait le moyen recommandé de stocker un tel certificat. Cependant, il a été découvert que le jailbreaking peut être utilisé pour contourner la sécurité du trousseau ( article ).

4
Nick Toumpelis

Franhofer a fait une étude sur la sécurité du porte-clés iPhone:

http://www.sit.fraunhofer.de/Images/sc_iPhone%20Passwords_tcm501-80443.pdf

3
aLt

Je peux répondre à une partie de votre question, mais comme l'autre partie est encore inconnue, je vote la question car je suis également impatient de connaître la réponse.

La partie à laquelle je peux répondre est: "une application peut-elle obtenir un accès complet au trousseau si aucun verrouillage d'écran n'est activé". Non, chaque application possède sa propre zone de trousseau sur l'iphone, ce qui signifie qu'une application ne peut accéder qu'à ses propres secrets. Ces secrets ne sont pas verrouillés pour l'application elle-même, il n'y a donc aucun moyen de masquer les entrées de trousseau de l'application elle-même. Donc, pour résumer: une application peut lire ses propres entrées, et aucune autre entrée.

Ce qui m'intéresse cependant, c'est ce qui se passe sur les appareils jailbreakés. Les trousseaux de toutes les applications sont-ils exposés une fois qu'un appareil a un jailbreak?

2
Ivo Jansch