¿Es preferible realizar el cifrado utilizando las funciones de la base de datos o el código?

12

Varias bases de datos con las que estoy familiarizado proporcionan funciones o módulos para el cifrado. Los ejemplos incluyen dbms_crypto para las bases de datos Oracle y incorporado funciones para MySQL.

La mayoría de los lenguajes de programación de uso común tienen bibliotecas de criptografía disponibles.

Desde una perspectiva de seguridad, ¿hay algún problema que conduzca a elegir uno sobre el otro? ¿Es un método altamente preferible sobre el otro?

    
pregunta Ayrx 07.12.2012 - 11:39
fuente

3 respuestas

3

Si desea realizar el cifrado, entonces los datos a cifrar y la clave utilizada para el cifrado deberán transferirse a la máquina que hace el trabajo. Si realiza el cifrado en el front-end, no tiene que "confiar" en la base de datos, pero esto puede complicar las cosas si tiene varios front-end. Si realiza el cifrado en la base de datos, un secuestro hostil de la base de datos lo dejará desnudo; p.ej. los ataques exitosos de inyección SQL son aún más devastadores.

Hablando en términos generales, si desea establecer una distinción de seguridad entre hacer el cifrado en el front-end o en la base de datos, debe imaginar un escenario en el que uno esté comprometido y no el otro. A la inversa, si considera que ambas máquinas son "igualmente sólidas", entonces su pregunta es solo sobre el rendimiento.

    
respondido por el Thomas Pornin 03.02.2013 - 14:47
fuente
5

Los algoritmos proporcionados son casi los mismos. La elección dependerá de sus casos de uso. Algunas cosas a considerar:

  1. Si el cifrado está en el lado de los servidores, considerando el cifrado en el cliente lado para evitar la transmisión de texto claro a través del cable.
  2. Decidir el cifrado reversible o no reversible según el tipo de datos.
  3. En el caso de cifrado no reversible, el hash es solo para evitar ¿Alterar o usar el hash como una comparación posterior?
respondido por el Akber Choudhry 07.12.2012 - 11:53
fuente
-1

Creo que en el cifrado de la aplicación web tenemos cierta separación, lo que puede ayudar a la seguridad. Principalmente hackeado db tienes datos, ahora tienes que hackear nuestra aplicación para descifrar los datos. En db crypto tenemos un solo punto de fallo. Además, si necesita información sobre una firma / cifrado en su aplicación, elija el cifrado de nivel de aplicación.

    
respondido por el damiankolasa 07.12.2012 - 11:53
fuente

Lea otras preguntas en las etiquetas