-
Notifications
You must be signed in to change notification settings - Fork 4
Диалог
Для обмена сообщениями необходимо создать диалог. В рамках него будет сгенерирован сеансовый ключ, которым будут шифроваться сообщения.
Когда созданы контакт и диалог, становится доступно создание диалога.
Прежде чем диалог может быть создан, удаленный собеседник так же должен добавить Вас в свои контакты, указав правильно публичный ключ!
Для создания диалога в главном окне необходимо щелкнуть на кнопку Начать диалог. Появится диалоговое окно, в котором будет предложено выбрать один из контактов, с которым должен быть организован диалог:
Система запросит подтверждение создания диалога:
После подтверждения, удаленный собеседник увидит в главном окне в списке слева создаваемый диалог:
После завершения процедуры создания, в этом диалоге можно будет обмеиваться сообщениями.
Обмен сообщениями между собеседниками A и B состоит из следующих этапов:
- сторона A генерирует команду на создание диалога (
CREATE_DIALOG
) и подписывает ее своим закрытым ключом; - сторона B запрашивает у пользователя согласие на создание диалога, и, если пользователь согласен, то генерируется сеансовый
ключ T и случайная строка R, которые по отдельности шифруются публичным ключом A и
помещаются в тело сообщения (
VERIFY_KEY
). Все сообщение подписывается приватным ключом B. - сторона A дешифрует сеансовый ключ и случайную строку, шифрует случайную строку сеансовым ключом,
добавляет результат в тело сообщения
KEY_VERIFICATION
. Подписывает все сообщение своим закрытым ключом. - сторона B дешифрует случайную строку, проверят на соответствие результата строке R, если все верно,
то отсылается подписанное сообщение
ACCEPT_DIALOG
, которое означает, что диалог установлен и далее возможен обмен сообщений.
Успешное установление диалога и сигнальный обмен показаны на рисунке:
Если проверка сеансового ключа не прошла, то в этом случае диалог так же будет закрыт сообщением CLOSE_DIALOG
:
Если для сообщения не удалось проверить подлинность цифровой подписи, то такие сообщения просто отбрасываются.