DH (Diffie-Hellman)

Алгоритм Диффи-Хеллмана, также известный как DH, назван в честь Уитфилда Диффи и Мартина Хеллмана, которые предложили эту схему обмена открытыми ключами в 1976 году. Этот протокол обмена можно использовать для зашифрованной связи и для обмена конфиденциальной информацией в общедоступном канале.

Генерация ключей в DH происходит быстрее, поэтому она используется в Perfect Forward Secrecy, где уникальный ключ генерируется для каждого сеанса, который инициирует пользователь, или если существующий сеанс повторно согласовывается. Даже если ключ для определенного сеанса скомпрометирован, прошлые и будущие сеансы будут защищены.

X хочет безопасно общаться с Y, используя механизм обмена ключами DH. Чтобы X и Y использовали алгоритм обмена ключами DH, они оба должны согласовать простой модуль и генератор, например, PM = 13, G = 6. Об этом может публично рассказать и X, и Y.  У обоих должен быть закрытый ключ, например, X выбирает 3, а Y — 10.

Как X и Y могут договориться об общем секрете

Разделение секрета между объектами происходит с использованием односторонней функции модуля:

  1. X вычисляет 6 3Mod 13, что равно 8, и публично отправляет его Y.
  2. Теперь Y также выполняет ту же процедуру, используя свой закрытый ключ, вычисляет 6 10Mod 13, что равно 4, и публично отправляет его X.
  3. X принимает входные данные Y и вычисляет 4 3Mod 13, что равно 12.

Y также выполняет ту же процедуру, используя свой закрытый ключ, вычисляет 8 10 Mod 13, что также равно 12. Таким образом, X и Y имеют один и тот же секрет, который можно использовать для дальнейшего шифрования.

Ключ DH отключен по умолчанию. Для шифров, которые используют DH в качестве алгоритма обмена ключами, его необходимо настроить. Для этого:

  1. Перейдите на вкладку «Конфигурация» -> «Управление трафиком» -> «SSL».
  2. В разделе «Инструменты» нажмите «Создать ключ Диффи-Хеллмана (DH)».
  3. Настройте параметр SSL DH.

Имя файла DH указывает имя файла с параметрами DH. Файл (в данном случае «DH_Key») будет создан по пути /nsconfig/ssl/ по умолчанию. Размер параметра DH варьируется от минимум 512 до максимум 2048. Генератор DH указывает случайное число, используемое для генерации ключа DH, который уже обсуждался в примере использования. Также нужно проверить список шифров, для которых должны быть установлены параметры DH. В командной строке необходимо использовать команду «show cipher DH».

После генерации ключа его необходимо включить на сервере SSL. Ключ DH можно включить в профиле SSL, который можно включить в SSL vserver.

Для этого необходимо перейти в  «Управление трафиком» -> «Балансировка нагрузки» -> «Виртуальные серверы» и выбрать «SSL vsserver», затем нажать«Изменить».