Использование pycrypto appengine с python 2.7 - PullRequest
0 голосов
/ 21 февраля 2012

Какой лучший способ защитить симметричный ключ, который необходимо использовать в коде в Google Appengine?

Наше приложение использует Python 2.7

РЕДАКТИРОВАТЬ: у нас есть некоторые поля базы данных, которые мы хотим защитить, которые должны быть доступны в коде, но нет никаких оснований оставлять их в базе данных в виде простого текста. Очевидно, я хотел бы сделать как можно сложнее получение ключа (понимая, что это никогда не невозможно).

1 Ответ

0 голосов
/ 21 февраля 2012

Невозможно полностью защитить ключ, если вы не доверяете среде, в которой выполняется код. Вы можете хранить (часть) ключа в надежном расположении и принимать запросы на ключ только от домена / IP вашего приложения. Но тогда он все еще будет в памяти экземпляра этого устройства.

Лучшее решение для исходящих сообщений - использовать криптографию с открытым ключом. Позвольте вашему коду использовать открытый ключ удаленной стороны, поскольку его не нужно хранить в секрете. Затем его можно расшифровать только с помощью закрытого ключа пульта.

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

Изменить: Поскольку вы добавили, что хотите защитить некоторые поля базы данных, задумывались ли вы о хэшировании их?

...