Skip to content

Диалог

sqglobe edited this page Jun 15, 2019 · 2 revisions

Для обмена сообщениями необходимо создать диалог. В рамках него будет сгенерирован сеансовый ключ, которым будут шифроваться сообщения.

Создание

Когда созданы контакт и диалог, становится доступно создание диалога.

Прежде чем диалог может быть создан, удаленный собеседник так же должен добавить Вас в свои контакты, указав правильно публичный ключ!

Для создания диалога в главном окне необходимо щелкнуть на кнопку Начать диалог. Появится диалоговое окно, в котором будет предложено выбрать один из контактов, с которым должен быть организован диалог:

Создание диалога

Система запросит подтверждение создания диалога:

Подтверждение

После подтверждения, удаленный собеседник увидит в главном окне в списке слева создаваемый диалог:

Созданный диалог

После завершения процедуры создания, в этом диалоге можно будет обмеиваться сообщениями.

Сигнальный обмен

Обмен сообщениями между собеседниками A и B состоит из следующих этапов:

  • сторона A генерирует команду на создание диалога (CREATE_DIALOG) и подписывает ее своим закрытым ключом;
  • сторона B запрашивает у пользователя согласие на создание диалога, и, если пользователь согласен, то генерируется сеансовый ключ T и случайная строка R, которые по отдельности шифруются публичным ключом A и помещаются в тело сообщения (VERIFY_KEY). Все сообщение подписывается приватным ключом B.
  • сторона A дешифрует сеансовый ключ и случайную строку, шифрует случайную строку сеансовым ключом, добавляет результат в тело сообщения KEY_VERIFICATION. Подписывает все сообщение своим закрытым ключом.
  • сторона B дешифрует случайную строку, проверят на соответствие результата строке R, если все верно, то отсылается подписанное сообщение ACCEPT_DIALOG, которое означает, что диалог установлен и далее возможен обмен сообщений.

Успешное установление диалога и сигнальный обмен показаны на рисунке:

Успешное создание

Если проверка сеансового ключа не прошла, то в этом случае диалог так же будет закрыт сообщением CLOSE_DIALOG:

Ключ не валиден

Если для сообщения не удалось проверить подлинность цифровой подписи, то такие сообщения просто отбрасываются.