Рейтинг:0

Шифрование с симметричным ключом Fernet

флаг ua

Шифрование с симметричным ключом Fernet

Для шифрования и предоставления данных — например. Строки JSON в базе данных — использование Python Мне интересно, какой хороший подход (пакет) для шифрования с симметричным ключом.

Стандартные модули Python предназначены только для хэшей и безопасных случайных чисел: https://docs.python.org/3/library/crypto.html, поэтому я начал с https://github.com/pyca/cryptography как https://github.com/pycrypto/pycrypto выглядит довольно заторможенным. Бывший относится к Фернет, но, как ни странно, я не могу найти запись в Википедии, ни предыстории, ни сторонних исследований (см. также https://github.com/fernet/spec/ и https://cryptography.io/).

Учитывая, что ключ обменивается безопасно

  • Есть ли проблема с https://github.com/pyca/cryptography Фернет выполнение?
  • Есть ли продолжение(может под другим именем чем «Fernet»), который поддерживает, это хорошо с точки зрения безопасности данных?
kelalaka avatar
флаг in
NaCL и [его Python API] (https://github.com/pyca/pynacl). Используйте 256-битный ключ.
thoku avatar
флаг ua
Спасибо! После вашего намека я также нашел их ссылку https://cryptography.io/en/latest/faq/#how-does-cryptography-compare-to-nacl-networking-and-cryptography-library. Если бы вы поместили свой комментарий в качестве ответа, я бы принял его, поскольку https://doc.libsodium.org/ выглядит лучше документированным (... и имеет больше звезд GitHub, но я не вижу причин возражать против https://cryptography.io).
kelalaka avatar
флаг in
В [основную группу] NaCL (http://nacl.cr.yp.to/index.html) входит Бернштейн.Мой комментарий не может быть ответом, так как вы спрашивали о проблемах с Fernet. См. [функции](http://nacl.cr.yp.to/features.html) на их странице.
Рейтинг:1
флаг ru

Я не уверен, откуда взялось название шифрования Fernet, но их спец. указывает, что они используют АЭС-128 в режим CBC а затем аутентификация зашифрованного текста с помощью SHA256 HMAC. Затем они кодируют все в base64, чтобы криптограмма была печатной ASCII.

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

thoku avatar
флаг ua
Это не совсем тот ответ, который я ожидал с точки зрения безопасности, но вместе с комментариями @kelalaka выше и сравнением использования (зависимых пакетов) обеих библиотек [pyca/cryptography](https://github.com/pyca/cryptography/network/dependents) vs. [libsodium] (https://github.com/jedisct1/libsodium/network/depends) Теперь я чувствую себя в достаточной безопасности.

Ответить или комментировать

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