Шифрование полей в openerp с помощью db postgres

Мы собираемся хранить некоторую конфиденциальную информацию о наших клиентах в модели db res_partners.

Однако мы не хотим хранить эту информацию в простом текстовом поле. Мы бы предпочли базовое шифрование, если это возможно для этих полей. Мы не хотим, чтобы кто-то, у кого есть доступ к базе данных, имел доступ к этим полям.

Есть ли способ сделать это в openerp или postgres?

Спасибо, Вишал Хиалани.


person Vishal Khialani    schedule 18.12.2012    source источник


Ответы (1)


Не существует такого понятия, как «базовое» шифрование. Rot13 никуда вас не приведет. Если ваши данные достаточно конфиденциальны и заслуживают защиты, вам необходимо использовать современные шифры, такие как Blowfish. Я советую вам внимательно изучить книгу Брюса Шнайера Прикладная криптография.

Простой (и небезопасный) способ добиться этого — перегрузить методы write и read вашей модели для шифрования перед записью и расшифровки после чтения.

Сложность заключается в хранении ключа шифрования. Вы можете сохранить его в файле на компьютере с сервером OpenERP (при условии, что база данных работает на другом сервере). Это все еще довольно слабо, так как ключ будет доступен на сервере в чистом виде, но все же может быть полезен, если вы не доверяете администратору сервера базы данных, но доверяете администратору сервера openerp. По-прежнему проще разместить сервер базы данных в безопасном и надежном месте и при необходимости зашифровать автономные копии базы данных (например, резервные копии).

Если вам нужна дополнительная безопасность, вам придется отправить данные в зашифрованном виде в клиентское приложение и позволить расшифровке произойти там, используя предоставленный пользователем ключ. Я недостаточно хорошо разбираюсь в этой части openerp, чтобы сказать, легко ли это выполнимо или нет.

person gurney alex    schedule 18.12.2012