Можно ли шифровать серверную часть при использовании HTTPS? - PullRequest
0 голосов
/ 16 октября 2018

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

Отправка:

сообщение отправлено на сервер => сообщение зашифровано на основе открытого ключа пользователя и подписано с использованием секретного ключа => зашифрованное сообщение сохранено в базе данных

Получение:

сервер получает сообщение из базы данных => сервер проверяет подпись с помощью открытого ключа и дешифрует сообщение с помощью секретного ключа => дешифрованное сообщение отправляется клиенту

Все шифрование / дешифрование включеносервер зависит от аутентификации токена JWT пользователя.

У меня есть два основных вопроса: 1.) Можно ли шифровать на сервере, поскольку связь между ним и клиентом использует TLS?2.) Должны ли ключи храниться на сервере или в базе данных?

Кроме того, если этот метод небезопасен, неправильный или просто тупой, сообщите мне.

Спасибо завперед.

...