DASS (протокол)
Протокол DASS (англ. Distributed Authentication Security Service) — асимметричный протокол аутентификации и распределения сеансовых ключей с использованием промежуточной доверенной стороны.
Идентификаторы Алисы (Alice), инициатора сессии | |
Идентификатор Боба (Bob), стороны, с которой устанавливается сессия | |
Идентификатор Трента (Trent), доверенной промежуточной стороны | |
Открытые ключи Алисы, Боба и Трента | |
Секретные ключи Алисы, Боба и Трента | |
Шифрование данных ключом Алисы, либо совместным ключом Алисы и Трента | |
Шифрование данных ключом Боба, либо совместным ключом Боба и Трента | |
Шифрование данных секретными ключами Алисы, Боба (цифровая подпись) | |
Порядковый номер сессии (для предотвращения атаки с повтором) | |
Случайный сеансовый ключ, который будет использоваться для симметричного шифрования данных | |
Шифрование данных временным сеансовым ключом | |
Метки времени, добавляемые в сообщения Алисой и Бобом соответственно | |
Случайные числа (nonce), которые были выбраны Алисой и Бобом соответственно | |
Заранее созданные пары открытых и закрытых ключей Алисы, Боба и Трента соответственно | |
Случайная сеансовая пара открытого и закрытого ключей, которая будет использоваться для асимметричного шифрования | |
Подписывание данных с использованием закрытого ключа Алисы, Боба, промежуточной стороны (Trent) или закрытого ключа из случайной пары соответственно | |
Асимметричное шифрование данных с использованием открытого ключа Алисы, Боба, промежуточной стороны (Trent) или открытого ключа из случайной пары соответственно |
Протокол DASS являлся составной частью сервиса распределённой аутентификации DASS, разработанного компанией Digital Equipment Corporation и описанного в RFC 1507[1] в сентябре 1993 года.
В протоколе DASS, по аналогии с протоколами Wide-Mouth Frog и Деннинга — Сакко, инициатор (Алиса) генерирует и новый сеансовый ключ, и, для каждого сеанса протокола, новую пару открытого и закрытого ключей отправителя. Доверенный центр (Трент) используется как хранилище сертификатов открытых ключей участников. Но в отличие от Деннинга — Сакко к доверенному центру обращаются по очереди оба участника[2].
Описание протокола
Алиса посылает сообщение Тренту на получение открытого ключа Боба
Трент присылает открытый ключ Боба, подписав его своим закрытым ключом
Алиса проверяет данные с помощью известного ей заранее открытого ключа Трента, после чего генерирует сеансовый ключ , сеансовую пару ключей и посылает набор сообщений Бобу, включая метку времени и срок жизни ключа , часть из них шифруя, часть подписывая:
Боб отправляет Тренту запрос на получение открытого ключа Алисы
Трент присылает открытый ключ Алисы, подписав его своим закрытым ключом
Используя данные из сообщений Алисы и Трента, Боб проверяет подписи Алисы, извлекает открытый временный ключ , извлекает сеансовый ключ (проверяя также подпись с использованием ), и расшифровывает убеждаясь, что использует текущее сообщение, а не повтор.
При необходимости протокол может быть продолжен, обеспечивая взаимную идентификацию сторон:
Алиса расшифровывает метку времени и убеждается, что получила текущее сообщение[3].
Альтернативное описание протокола
Описание протокола происходит по принципу APTC, который устраняет различия в структурах системы перехода, структуре событий и т. д. и рассматривает их поведенческие эквиваленты. Он считает, что существует два вида причинно-следственных связей: хронологический порядок, смоделированный последовательной композицией, и причинно-следственный порядок между различными параллельными ветвями, смоделированный коммуникационным слиянием. Он также считает, что существуют два вида конфликтных отношений: структурный конфликт, моделируемый альтернативной позицией, и конфликты в разных параллельных ветвях, которые должны быть устранены. Основывающийся при консервативном расширении в IPTC есть четыре модуля: BATC (Базовая алгебра для истинного Параллелизм), APTC (Алгебра для параллелизма в истинном параллелизме), рекурсия и абстракция. Подробнее …[4]
Уязвимости протокола DASS
В протоколе используется время жизни (𝐿) сеансового ключа 𝐾𝑃, однако в сообщение не включена метка времени. В результате протокол остаётся уязвимым к атаке с известным сеансовым ключом (KN). Предположим, что Меллори смогла записать полностью прошедший сеанс связи между Алисой и Бобом, а потом смогла получить доступ к сеансовому ключу 𝐾. Это позволяет Меллори аутентифицировать себя как Алиса перед Бобом.
(1) 𝑀𝑒𝑙𝑙𝑜𝑟𝑦 (𝐴𝑙𝑖𝑐𝑒) → {𝐸𝐾 (𝑇𝑀) , 𝑆𝐴 (𝐿, 𝐴, 𝐾𝑃) , 𝑆𝐾𝑃 (𝐸𝐵 (𝐾))} →𝐵𝑜𝑏
(2) 𝐵𝑜𝑏 → {𝐴} → 𝑇𝑟𝑒𝑛𝑡
(3) 𝑇𝑟𝑒𝑛𝑡 → {𝑆𝑇 (𝐴, 𝐾𝐴)} → 𝐵𝑜𝑏
(4) 𝐵𝑜𝑏 → {𝐸𝐾 {𝑇𝐵}} → 𝑀𝑒𝑙𝑙𝑜𝑟𝑦 (𝐴𝑙𝑖𝑐𝑒)
На первом проходе Меллори меняет только первое сообщение, содержащее метку времени 𝐸𝐾 (𝑇𝑀). Всё остальное Меллори копирует из записанного сеанса связи. Если Боб не записывает используемые ключи, он не заметит подмены. Простейшее исправление данной уязвимости состоит во включении метки времени в сообщение 𝑆𝐴 (𝑇𝐴, 𝐿, 𝐴, 𝐾𝑃).
Так как в протоколе сеансовый ключ 𝐾 шифруется «мастер»-ключом Боба 𝐾𝐵, то компрометация последнего приведёт к компрометации всех использованных ранее сеансовых ключей. То есть протокол не обеспечивает совершенной прямой секретности (цельG9). Ни Трент, ни Боб не участвуют в формировании новых сеансовых ключей. Поэтому Алиса может заставить Боба использовать старый сеансовый ключ, как в протоколах Wide-Mouth Frog и Yahalom[2].
Примечания
- Charles Kaufman. DASS Distributed Authentication Security Service (англ.). datatracker.ietf.org P.10 (119) (September 1993). Дата обращения: 17 сентября 2021.
- Владимиров С.М. Габидулин Э. М. Колыбельников А.И. Кшевецкий А. С. - Криптографические методы защиты информации. Учебное пособие.. — 2019. — С. 225,226. — 409 с.
- Bruce Schneier. Applied Cryptography, Second Edition: Protocols, Algorthms, and Source Code in C (cloth). — (Publisher: John Wiley & Sons, Inc.), 01/01/96. — С. 99—100. — 1027 с. — ISBN 0471128457.
- Yong Wang. Secure Process Algebra. — 13 Jan 2021. — С. P. 2, 103-108. — 168 с.
Литература
- Шнайер Б. Протокол DASS // Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — С. 83—84. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.