Bien, tengo un servidor backend de rieles que es prácticamente un servidor de base de datos.
La base de datos contiene información sobre los diferentes tipos de una sustancia y la composición porcentual confidencial inherente de esa sustancia.
Los administradores en la aplicación pueden crear solicitudes de PATCH para actualizar los registros a lo largo del tiempo, y los usuarios de la aplicación en el inicio de sesión sincronizan su base de datos REALM local con el servidor en caso de que algún administrador haya agregado / eliminado / modificado algún registro. La base de datos de dominio en la aplicación se crea y encripta con una clave que se almacena en el llavero en el primer uso de la aplicación.
También en el primer uso, la aplicación se sincronizará completamente con el servidor, recuperando todos los registros de sustancias sensibles y almacenándolos en la base de datos REALM local cifrada.
Voy a cifrar la transmisión desde el exterior con ssl, e implementar la fijación de SSL para inhibir los ataques MITM.
¿Pero qué puedo hacer para evitar que el público descubra la composición de estas sustancias confidenciales?
La única razón por la que los datos se almacenan localmente es para uso sin conexión. De lo contrario, haría que los usuarios consultaran el servidor con el porcentaje de maquillajes que necesitaban, y el servidor regresara con los nombres de las opciones adecuadas.