Какие файлы certchain.pem и Private.key используются ssl-библиотекой Pythons, необходимы ли они и как их создать, если оPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Какие файлы certchain.pem и Private.key используются ssl-библиотекой Pythons, необходимы ли они и как их создать, если о

Сообщение Anonymous »

Справочная информация
Я пишу утилиту Python, которая позволит синхронизировать файлы и папки по сети между клиентским компьютером и сервером. Синхронизация будет однонаправленной и инициируется push-действием клиента.
Первоначальная «версия 1» для этого довольно проста. Сервер будет находиться в состоянии «всегда включен» (прослушивание) и будет прослушивать соединения от клиента.
Клиент будет запускаться из командной строки. (Отсюда и «push action».) При запуске клиент подключается к серверу, выполняет некоторую форму аутентификации (скорее всего, на основе пар частного/открытого ключей или, альтернативно, имени пользователя и пароля), а затем отправляет каждый файл в целевой каталог на сервер.
Сервер запишет полученные файлы в (другой) целевой каталог.
Безопасность
Чтобы обеспечить безопасность, либо весь сеанс должен быть защищен шифрованием, либо защищенные данные должны отправляться в зашифрованном виде. В этом случае защищенными данными являются закрытый ключ или имя пользователя и пароль, а затем содержимое каждого файла.
Лучший способ обеспечить безопасность
Я не знаю, как лучше всего обеспечить безопасность. Одним из простых решений «создайте свое собственное» было бы предварительное согласование ключа шифрования между клиентом и сервером и использование этого ключа шифрования для шифрования и дешифрования данных. Это можно сделать вручную, просто написав соответствующий код.
Самым простым способом, вероятно, будет использование стандартной библиотеки шифрования/дешифрования. Быстрый поиск показывает, что библиотека криптографии Python, вероятно, является стандартным решением.
Хотя возможны и более ручные решения, например выполнение операции xor между 256 битовый ключ и данные. Я не уверен, насколько это будет безопасно, но, конечно, это будет менее безопасно, чем использование стандартной реализации.
Однако кажется, что лучшим подходом может быть использование библиотеки Python ssl, который обеспечивает TSL 1.3 поверх стандартной библиотеки сокетов.
Я не знаю, будет ли это подходящим решением. Библиотека (как и все библиотеки Python) довольно высокого уровня. Из примеров, приведенных в документации, сложно понять, что он делает и как работает.
Python ssl
I начал писать пример клиент-серверного приложения на Python, использующего библиотеку ssl.
В коде на стороне сервера есть одна строка, которую я не понимаю.

Код: Выделить всё

context.load_cert_chain('/path/to/certchain.pem', '/path/to/private.key')
Я не очень разбираюсь в том, как работают сертификаты. Я знаю, что эти два файла используются для шифрования сеанса SSL и для предоставления клиенту гарантий того, что сервер является тем, за кого себя выдает. (Другими словами, это каким-то образом гарантирует, что ваш трафик не будет перехвачен и перенаправлен на вредоносный сервер, который выдает себя за законный.)
Я не знаю. действительно нужна вторая из этих функций. Благодаря сетевой инфраструктуре, на которой будет работать это клиент-серверное приложение, нет необходимости выполнять проверку, чтобы убедиться, что сервер является тем сервером, за который он выдает себя. Все это будет эффективно работать через виртуальную частную сеть. Вероятно, по этой причине мне не нужно шифровать данные, но это одна из функций безопасности, которую мы хотим иметь, хотя, по всей видимости, она и не нужна.
  • Есть ли способ использовать библиотеку Python ssl для шифрования, но без необходимости загружать файлы сертификата и закрытого ключа?
Я решил подробно рассказать об этом вопросе, потому что, возможно, я иду совершенно не в том направлении. Возможно, библиотека ssl не подходит для использования. Просто показалось, что это может быть удобное решение.


Подробнее здесь: https://stackoverflow.com/questions/791 ... library-ar
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»