El 02/08/13 15:10, Alvaro Herrera escribió:
Ojo que el cifrado asimétrico es **lento**. Yo creo que deberías considerar usar cifrado simétrico (digamos, algoritmo AES o similar), y las llaves sólo las tiene el usuario, nunca se almacenan en la BD. Para guardar nuevos datos, tienes dos opciones: el usuario te los da ya cifrados (la BD/framework nunca ven los datos en claro) o bien el usuario te entrega la clave en forma temporal, te pasa los datos, luego los cifras y almacenas y te olvidas de la llave. El primer caso es más inconveniente porque necesitas más código al lado del cliente, pero obviamente es más seguro porque nunca tienes copia de la llave. Si mal no recuerdo hace mucho tiempo miré un proyecto que estaban desarrollando unos colegas, de este mismo tipo, y la idea para permitir búsquedas era almacenar prefijos cortos, sin cifrar. Otro tema es el de los identificadores numéricos. En un proyecto donde la confidencialidad de datos es importante, a veces no quieres siquiera filtrar cuántos ID tienes en una tabla. Para esconder esta información es importante no usar secuencias. Puedes usar por ej. UUIDs, o bien mapeando números enteros usando algo como esto: https://wiki.postgresql.org/wiki/Pseudo_encrypt
No es más sencillo (y seguro) encriptar todo el sistema de ficheros? -- Martín Marqués http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
