Безопасный доступ и запись данных между сервером и клиентом в приложении, использующем c - PullRequest
0 голосов
/ 18 января 2020

Я работаю над кодированием приложения в Python 3, чтобы пользователи могли отправлять и получать данные между другими пользователями с помощью этого приложения. Процесс будет представлять собой клиент, который вводит закодированную строку и использует сервер в качестве посредника для отправки данных другому клиенту. Я хорошо разбираюсь в том, что будет использоваться для клиентского приложения, но это знание сервера, я новичок. У меня запущен и работает VPS-сервер, и я исследовал и обнаружил, что модуль pysftp подойдет для передачи данных туда и обратно. Однако меня беспокоит безопасность сервера при использовании приложения. Для этого модуля требуются данные аутентификации сервера при установлении соединения, и я не думаю, что указание хоста, имени пользователя и пароля моего сервера в коде приложения очень безопасно. Каков был бы безопасный способ go об этом? Спасибо, Стрелок

1 Ответ

0 голосов
/ 18 января 2020

Возможно, вы захотите использовать предварительно сгенерированные ключи аутентификации. Если вы знакомы с процессом использования инструмента ssh-keygen для создания пар ключей S SH, это то же самое. Вы просто генерируете пару ключей, помещаете закрытый ключ на клиентский компьютер и помещаете ключ publi c на целевом сервере. Затем вы можете использовать pysftp следующим образом:

with pysftp.Connection('hostname', username='me', private_key='/path/to/keyfile') as sftp:
   <do some stuff>

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

...