Я новичок в шифровании и пытаюсь узнать больше о шифровании RSA и AES и включить его в проект, над которым я работаю.
Ситуация такова, что у меня сервер, работающий в локальной сети, позволяетНазовите это локальным сервером.Локальный сервер связывается с удаленным сервером API через Интернет, доступ к маршрутам сервера API разрешается только после аутентификации пользователя, зарегистрированного на сервере API, через Oauth2, который создает сеанс на локальном сервере.На локальный сервер будет одновременно входить только один пользователь.
Цель, которую я поставил, - разрешить передачу файла с API-сервера на локальный сервер, который активируется вошедшим в систему пользователем.Текущее решение, которое я собрал после прочтения различных онлайн-ресурсов, выглядит следующим образом.
(Предположим, что пользователь входит в систему на сервере, и мы только что подтвердили его личность) (1) локальный сервер создает самозаверяющие сертификаты (2) отправляет открытый ключ с дайджестом сообщения на сервер API(3) сервер API проверяет сообщение и создает ключ AES (4) ключ AES шифруется с использованием открытого ключа с локального сервера и отправляется обратно в ответ на локальный сервер с дайджестом сообщения (5) локальный сервер проверяет дайджест сообщения ииспользует закрытый ключ для расшифровки ключа AES.(6) ключ AES будет использоваться для шифрования файла на сервере API и расшифровки на локальном сервере.(7) открытый ключ отбрасывается как на локальном сервере, так и на сервере API (8) новый открытый ключ создается при следующем входе пользователей в систему.
Я понимаю, что использование самозаверяющих сертификатов создает потенциал для человека в серединеатака.И это вообще не очень хорошая практика.Однако, с другой стороны, сложно создавать сертификаты для локальных сетей.
Извиняюсь за неопределенный вопрос, но я пытаюсь найти потенциальные проблемы с безопасностью в моем решении, пожалуйста.Мне очень интересно узнать эту тему, но я считаю, что большинство найденных решений не применимо к моему сценарию.
Поэтому я хотел бы спросить, приемлем ли такой протокол?Какой риск, если открытый ключ используется только для одного запроса, а затем отбрасывается?Спасибо за помощь.