Как безопасно хранить криптоключ?

Я собираюсь использовать криптографическую библиотеку, такую ​​как pycrypto, для шифрования / дешифрования полей в моем python webapp db. Но для алгоритмов шифрования требуется ключ. Если у меня есть незашифрованный ключ в моем источнике, кажется глупым пытаться зашифровать поля db, как на моем сервере, если у кого-то есть доступ к файлам db, они также будут иметь доступ к моему исходному коду python.

Есть ли лучший метод защиты используемого ключа? Или альтернативный метод шифрования полей базы данных (на уровне приложения, а не на уровне базы данных)?

ОБНОВЛЕНИЕ: поля, которые я пытаюсь защитить, являются токенами oauth.

ОБНОВЛЕНИЕ: Думаю, нет единого способа избежать этого. Я думаю, мне все равно нужно зашифровать поля, так как вполне вероятно, что файлы db будут скопированы и перемещены, поэтому, по крайней мере, я уменьшу проблему до одного уязвимого места - просмотрев свой исходный код.

ОБНОВЛЕНИЕ: токены oauth необходимо использовать для вызовов API, когда пользователь находится в автономном режиме, поэтому использование их пароля в качестве ключа в этом случае не подходит.

10
задан rutherford 12 February 2012 в 18:51
поделиться