Протокол Диффи — Хеллмана — криптографический протокол, позволяющий участникам информационного обмена создать общий секретный ключ шифрования, обмениваясь данными по незащищенному каналу связи. Полученный ключ можно использовать для шифрования и расшифровки сообщений с помощью симметричных алгоритмов.
Метод Диффи — Хеллмана решает одну из главных проблем симметричного шифрования — необходимость безопасной передачи ключей. Протокол назван в честь американских специалистов по криптографии Уитфилда Диффи (Whitfield Diffie) и Мартина Хеллмана (Martin Hellman), которые первыми опубликовали рабочий алгоритм открытого обмена ключами по сети. Предложенная ими схема используется во многих программах и стандартах шифрованной коммуникации — например, в ПО Gnu Privacy Guard (GnuPG, GPG), VPN-протоколах, SSH, TLS и т. п.
Принцип работы протокола Диффи — Хеллмана
В основе протокола лежит концепция неполного обмена ключами шифрования, сформулированная американским криптографом Ральфом Мерклом (Ralph Merkle) и реализованная Диффи и Хеллманом в виде криптографического алгоритма с открытым ключом. В соответствии с этой схемой каждый участник обмена выполняет следующие действия:
- генерирует случайное натуральное число — закрытый ключ;
- совместно с удаленной стороной договаривается об открытых параметрах, которые будут использоваться для создания секретного ключа;
- на основе закрытого ключа и открытых параметров вычисляет открытый ключ;
- обменивается открытыми ключами с удаленной стороной;
- вычисляет общий секретный ключ, используя открытый ключ удаленной стороны, свой закрытый ключ и открытые параметры.
Метод Диффи — Хеллмана применим для любого количества участников коммуникации, не только для двух сторон. Для получения общего секретного ключа необходимо, чтобы все участники обмена по очереди произвели вычисления над открытым ключом с использованием общих открытых параметров и своих закрытых ключей.
Варианты реализации протокола Диффи — Хеллмана
С точки зрения продолжительности жизни закрытых ключей различают два варианта реализации протокола Диффи — Хеллмана:
- Статический — используются долгосрочные закрытые ключи, которые не сбрасываются после разрыва соединения.
- Эфемерный или краткосрочный (DHE) — закрытые ключи генерируются заново для каждого нового соединения.
Недостатки протокола Диффи — Хеллмана
Предложенная Диффи и Хеллманом система не предусматривает аутентификацию участников обмена и согласованного ключа. По этой причине протокол уязвим к атакам «человек посередине». Злоумышленник может внедриться в канал связи и организовать перехват и подмену сообщений протокола. В результате стороны установят защищенное соединение не друг с другом, а со злоумышленником, и тот сможет читать их переписку без их ведома.