Aplicación compatible con HIPAA, usando datos cifrados de núcleo frente a datos de núcleo cifrado de cifrado

1

Estoy escribiendo una aplicación de iOS que debe ser compatible con HIPAA. La aplicación debería funcionar preferentemente fuera de línea, por lo que los datos deben almacenarse en el teléfono.

Entonces, esto es lo que estaba pensando hacer:

En el primer inicio, el usuario ingresa un nombre de usuario, contraseña y una frase de contraseña. El servidor autentica al usuario utilizando el nombre de usuario, la contraseña y el UDID (ID de publicidad) del dispositivo. La comunicación con el servidor se realizará mediante HTTPS.

Si la autenticación es exitosa:

  • el nombre de usuario se almacena en el llavero.
  • La frase de contraseña + UDID se procesa usando "PBKDF2" disponible en la biblioteca OpenSSL. Esto también se almacena en el llavero. La sal para esta operación se almacena en el llavero. Para validaciones subsiguientes, la sal se obtiene de la cadena de claves.

  • El nombre de usuario + frase de contraseña + UDID + Static-Key se usa para generar una clave usando "PBKDF2" y nuevamente se almacena sal en el Key Chain y se recupera del Key Chain de usos posteriores. La clave generada se almacena en la memoria y la frase de contraseña se olvida una vez que se ha generado la clave. La clave estática está presente en el código.

  • Cuando la aplicación pasa al fondo, la clave se olvida, es decir, la variable se establece en cero.

  • Al reanudar o reiniciar la aplicación, al usuario se le presenta una pantalla para ingresar la contraseña. Si la contraseña introducida es correcta, la aplicación generará la clave nuevamente. De lo contrario, en aproximadamente cinco intentos consecutivos, la aplicación borrará los datos y llevará al usuario a la pantalla de inicio de sesión (si es posible, también enviará un mensaje al servidor sobre el evento con la información necesaria).

Ahora aquí están mis dos preguntas:

  1. Me gustaría saber qué tan estable es project-imax / EncryptedCoreData? Sé que no admiten relaciones de muchos a muchos. Pero, resolví este problema creando una entidad para representar la relación (similar a la forma en que se hace en la base de datos de SQL real utilizando una tercera tabla). Me gustaría escuchar a cualquier persona que tenga experiencia con los Datos Básicos Encriptados acerca de sus experiencias y problemas que enfrentaron. Especialmente, ¿cómo se compara esto con el cifrado de los atributos individuales en cuanto al rendimiento?

  2. En segundo lugar, ¿ven algún problema con la medida de seguridad que planeo implementar? Cualquier sugerencia o mejora que desee mencionar.

pregunta Taha 14.03.2014 - 17:11
fuente

0 respuestas

Lea otras preguntas en las etiquetas