2008-10-10 10 views
8

Necesito guardar la contraseña del usuario en mi aplicación de iphone.cifrado de contraseña en las aplicaciones de iphone

Al publicar una aplicación en la tienda de aplicaciones, tengo que decirle a Apple si hay encriptación en la aplicación para fines de exportación.

No deseo que mi aplicación esté restringida solo a los EE. UU., Pero tampoco quiero almacenar o enviar contraseñas a través de la red en texto claro.

Entonces, básicamente, la pregunta es, ¿puedo encriptar las contraseñas de una manera que no restrinja mi aplicación?

Respuesta

5

Parece que la función de la cripta suministrado() puede utilizarse para las contraseñas:

Esta biblioteca (FreeSec 1.0) fue desarrollado fuera de los Estados Unidos de América como un reemplazo sin trabas para la biblioteca de cifrado libcrypt U.S.only. Los programas vinculados con la interfaz crypt() pueden exportarse desde los EE. UU. Solo si utilizan crypt() únicamente con fines de autentificación de autenticación y evitan el uso de las otras interfaces de programador enumeradas anteriormente. Se ha tenido especial cuidado en la biblioteca para que los programas que solo usan la interfaz crypt() no extraigan los otros componentes.

(a partir de la documentación para el iPhone cripta (3))

+0

si usan crypt() únicamente con fines de autenticación ... No creo que hayas leído correctamente la página del manual. Autenticación no es encriptación. La autenticación nunca ha sido restringida (IIRC): solo encriptación. Por ejemplo, un módulo RSA grande y grueso: si se usa para una firma RSA, no hay problema. Use los mismos módulos grandes para el cifrado, y debe cumplir con las regulaciones de exportación. Por cierto, si tiene un cifrado simétrico que utiliza claves de 63 bits, está bien. Con 64 bits, debe ponerse en contacto con el Departamento de Comercio para obtener una licencia: consulte http://www.bis.doc.gov/encryption/massmarket_keys64bitsnup.html. – jww

5

En primer lugar, si el nombre de usuario y la contraseña están cifrados y descifrados en el teléfono, entonces la clave de descifrado también está obviamente en el teléfono y no tiene ningún valor. No me preocuparía almacenar nombres de usuario y contraseñas encriptados en el teléfono.

Para una comunicación segura, debe usar SSL, que probablemente esté en una biblioteca que ya está en el teléfono. Si usa una biblioteca que es parte del sistema operativo del teléfono, no creo que eso signifique que su aplicación "contiene cifrado".

Por supuesto, no soy abogado. Quién sabe, la ley podría considerar "cerdo latino" una tecnología de encriptación válida.

8

Sólo almacenar la contraseña en el llavero. Es un sistema que API apple proporciona, y usted no tiene que saber nada sobre el cifrado. Apple lo envía, es su responsabilidad garantizar el cumplimiento de la exportación de los marcos del sistema. Presumiblemente usan cifrado más débil (o no) si venden el dispositivo en cualquier lugar que esté prohibido, pero si usa las API disponibles no enviará ningún código criptográfico de exportación restringido en su binario, y la única forma en que podría ser interpretado ya que hacerlo significaría que Apple lo está enviando con cada iPhone.

Habiendo dicho eso, no soy abogado, recomiendo consultar uno si le preocupa. Ninguna cantidad de consejos de otros programadores es particularmente relevante en lo que es fundamentalmente un asunto legal.

+2

Le pregunté si el uso del llavero significaría tener que declarar que usa encriptación en Tech Talk el año pasado y la respuesta fue "no sabemos" – philsquared

Cuestiones relacionadas