|
Hola, Quiero añadir la funcionalidad de acceso a dropbox desde mi aplicación. Según su documentación el método de autentificación se debe realizar usando dos claves: "consumer key" y la "consumer secret". Con estas claves y las credenciales del usuario se consigue un token para acceder a la cuenta del usuario. El problema radica, en que para una aplicación de tipo iOS la clave secreta de desarrollador se debe incluir en el código. Desconozco la manera en que xCode cifra el fichero .IPA generado, pero si alguien consiguiera esa clave mediante ingeniería inversa del código tendría acceso a mi clave de desarrollador. ¿Usáis algún mecanismo para almacenar esa clave en vuestro código?, tengo entendido que el simple hecho de añadir un sistema de cifrado en una aplicación iOS implica un proceso de revisión diferente. Un saludo. |
|
Una cosa que puedes hacer para empezar es no usar Objective-C directamente, sino C pelado. De este modo se hace algo más difícil desensamblar el código. Por ejemplo, usa un array de bytes en lugar de inicializar un Gracias Victor, por tu respuesta. Aunque como dice madmw, en algún momento la clave estará en claro en la memoria, tu método me parece muy efectivo y algo parecido a eso intentare implementar en mi aplicación.
(21 May '11, 12:44)
Davix ♦
|
|
Yo me limitaría a ofuscarla un poco, partiendo la cadena en varios segmentos y poco más.
Y la verdad es que te servirá de poco. Al final, salvo que te implementes tu propia librería OAuth, se la pasarás a un método donde seguramente se mantenga en claro en memoria. Si alguien tiene interés en hacerse con ella, lo conseguirá, hagas lo que hagas. Mejor dedicar el tiempo a la funcionalidad. Hola madmw, muchas gracias por tu respuesta. Estoy de acuerdo contigo en que si alguien tiene interés en conseguir la clave al final la conseguirá. Pero es muy importante mantener las keys lo más protegidas posible. Un usuario mal intencionado podría usar esa key en mi nombre e invalidar mi cuenta de desarrollador en dropbox y dejar en consecuencia sin servicio a mis clientes.
(21 May '11, 12:41)
Davix ♦
|
Consultando documentación en internet, he visto que este tipo de problemas se produce en todas las aplicaciones OAuth, con autentificación en cliente.