i * должен * хранить учетные данные сторонних производителей в моей базе данных. лучший способ?

Мое приложение должно прочитать SSL-адрес от третьего лица. Как лучше хранить учетные данные сторонних производителей в моей собственной базе данных, которая защищает сторонние учетные данные от компрометации? Рассмотрим как абсолютную безопасность, так и практичность. Одностороннее хеширование учетных данных не полезно, так как я должен восстановить учетные данные для открытого текста для вызова SSL. Я использую python в движке Google, и мое приложение аутентифицируется с учетными данными google.

  • шифровать учетные данные, используя, например, AES, и сохранять ключ шифрования в другом месте (просто перемещает проблему) или вывести его из учетных данных и сохранить алгоритм в секрете (просто перемещает проблему)
  • шифровать учетные данные с использованием синхронного потокового шифрования , вывести энтропию (не) из учетных данных и сохранить алгоритм в секрете (просто перемещает проблему)
  • в отдельном веб-приложении, предназначенном для хранения учетных данных сторонних поставщиков, предоставить URL-адрес SSL для получения учетных данных третьей стороны, к этому URL-адресу будут доступны учетные данные google (такие же, как и в моем приложении), и вы можете использовать authsub или что-то для передачи авторизации другому веб-приложению , это звучит более безопасно, потому что его сложнее взломать тривиально простой webapp, и если мое сложное основное приложение становится скомпрометированным, сторонние учетные данные не отображаются.

что вы думаете обо всех подходах?

  • Python: стирание строк для использования в XML
  • Изменение пользователя sudo в скрипте python
  • Является ли это безопасным использованием python eval ()?
  • Как защитить себя от бомбы gzip или bzip2?
  • Используются ли атаки CSRF для API?
  • Скрытие пароля в скрипте python (небезопасная обфускация)
  • Как защитить себя от бомбы gzip или bzip2?
  • Изменение пользователя sudo в скрипте python
  • Используются ли атаки CSRF для API?
  • Является ли это безопасным использованием python eval ()?
  • Скрытие пароля в скрипте python (небезопасная обфускация)
  • Безопасен ли сейф?
  • 4 Solutions collect form web for “i * должен * хранить учетные данные сторонних производителей в моей базе данных. лучший способ?”

    Это сложная задача, и ни один подход не спасет вас, чтобы убедиться, что нет слабой связи. Во-первых, я не знаю, будет ли хостинг на Google лучшим способом, потому что вы будете лишиться контроля (я действительно не знаю, спроектирован ли App Engine с требуемым уровнем безопасности, вы должны обнаружить, что ) и, вероятно, не может пройти тестирование на проникновение (что вам нужно).

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

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

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

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

    Если вы используете окна, я бы проверял API Cred * Win32 (advapi32.dll), он по крайней мере позволял бы вам использовать управление ключами для Windows syskey, где TPM и кодовая фраза для загрузки могут обеспечивать защиту от компрометации низкого уровня (украденные диски)

    Очевидно, что если ваше приложение или контекст безопасности, в котором он работает, скомпрометированы, ни одно из вышеперечисленных действий не будет очень полезно.

    Достойная книга, которая охватывает такую ​​ситуацию, – это криптография в базе данных .

    Python - лучший язык программирования в мире.