2010-10-26 14 views
3

J'écris une application iPhone qui s'intègre à des API tierces. Ces API utilisent OAuth (clé/secret spécifique à mon application et non par utilisateur) pour authentifier l'application pour laquelle la demande est faite.Enregistrement de clés OAuth dans le code pour les applications iPhone

Est-ce sécurisé (ou sûr) de simplement mettre la clé/secret dans le code? Ce type de données peut-il être modifié? Existe-t-il une meilleure façon d'inclure ces données dans un projet?

+1

* Tout * dans le code peut être désassemblé en général assez facile. En outre, le trafic peut être surveillé et votre clé, utilisée par tous les appareils qui exécutent votre application, peut être trouvée en quelques secondes. Avec ces clés, n'importe quel script kiddie peut bombarder votre service avec des demandes et vous ne serez pas en mesure de distinguer les appels légitimes de «farces» (pour ne pas dire abus).Une fois que le mot sort que «ici, cette clé peut être poursuivie pour poster des tweets pour le compte de cette application», les spammeurs et les «marketers» vont rapidement commencer à verser du Viagra bon marché ... –

Répondre

-2
+0

Ceci n'est pas un lieu cacher des secrets. – rook

+0

Complètement lu "pas par utilisateur", oui. Mépris. –

+0

Oui, j'utilise le trousseau pour d'autres données sensibles spécifiques à l'utilisateur, mais ce sont des clés spécifiques à l'application et non à l'utilisateur. – pschang

3

Il n'y a pas de place sur l'iPhone pour cacher des données. Un utilisateur avec un iPhone jailbreaké a plus de contrôle sur l'appareil que n'importe quel développeur. Si possible, vous devez configurer un service Web tel qu'un service REST ou SOAP pour prendre en charge ces transactions OAuth au nom du client.

2

Comme Rook l'a dit plus tôt, il n'y a aucun moyen de cacher vos données dans l'iPhone. Mais vous pouvez rendre le travail de hacker si difficile. Je viens de faire un travail pour le même problème.

Encryption flow

  1. Put oAuth informations clés PLIST
  2. mannuellement Je Chiffrer cette PLIST en utilisant la clé AES et je suis crypté "CIPHER TEXT"
  3. Modifier la clé AES par des caractères entre les deux avec votre propre logique. Comme il a fallu à l'exécution pour décrypter le plist
  4. Ajouter cette clé modifiée avec plist "TEXT CIPHER" et stocker cette valeur dans New plist.
  5. Retirez l'ancien plist qui a oAuth informations

Maintenant, vous avez seulement un plist qui a une valeur chiffrée avec modifiée KEY

Avantage:

  1. Hacking est si difficile depuis pirate informatique n » t avoir un texte chiffré approprié dans le plist

  2. Pour pirater ce code, ils devraient savoir séparer AES modifié clé du texte de chiffrement. Ils ont trouvé la clé AES modifiée, ils n'ont aucune idée de l'algorithme qui s'y ajoute, ici j'ai simplement utilisé la position EVEN du caractère, mais vous ne pouvez pas modifier cela et vous pouvez prendre la 3ème ou la 4ème position de le personnage. Qui est en fait diffère pour chaque développeur

pour plus d'informations s'il vous plaît visitez ci-dessous le lien;

https://sites.google.com/site/greateindiaclub/mobil-apps/ios/securelystoringoauthkeysiniosapplication