Nota: Originalmente publiqué esto en Crypto Stack Exchange, pero en vez de eso fui señalado
Estoy trabajando en un proyecto que requiere el cifrado de datos confidenciales, con la comunicación de dichos datos entre una aplicación móvil y un sitio web (a través de una API).
Soy nuevo en cifrado y seguridad, pero mis pensamientos actuales son los siguientes:
- Los datos siempre se ingresarán en la aplicación y se verán a través del sitio web, por lo que solo los usuarios del sitio web necesitarán una clave pública y privada, ya que solo necesitan ver la información (se podría usar híbrido, pero los mensajes serán cortos)
- Cifre el lado del servidor de datos utilizando la clave pública del usuario correcto autorizado para ver la información
- Los datos cifrados se almacenarán en la base de datos
- Las claves se almacenarán en el servidor (no estoy seguro de cómo funciona esto en términos de controles de acceso)
Es importante que otros usuarios del sitio web solo puedan ver los datos que están autorizados a ver, de ahí la criptografía de clave pública y privada. Obviamente, la consulta de la base de datos aquí puede resultar difícil, pero creo que el uso de ID y otra información no identificable lo haría más fácil.
¿Es esta una idea realista o completamente errónea en términos de cómo funciona el cifrado? Soy un principiante completo aquí, así que no sé mucho acerca de la administración de claves, etc.