Дистанционно-ограниченные протоколы (англ.Distance-bounding protocols) — криптографический протоколы аутентификации, основанные на определении расстояния между взаимодействующими лицами. Впервые протокол был разработан Стефаном Брандсом (англ.Stefan Brands) и Дэвидом Чаумом (англ.David Chaum) в 1993 году[1].
Основная идея заключается в достоверности знаний доказывающего участника («Prover»), путем проверки подлинности этих знаний проверяющим участником («Verifier») и в необходимости, что доказывающий участник находится на расстоянии от проверяющего, не более определенного[2].
Идея дистанционно-ограниченного протокола Брандсона-Чаума[1] основана на принципе «вызов-ответ». Пусть имеется два участника: - доказывающая сторона, которая доказывает свое знание секрета. - проверяющая сторона, которая проверяет подлинность этого секрета. Перед обменом сообщений, стороны и генерируют случайную последовательность -бит, и соответственно. Параметр является секретным параметром протокола. Данный протокол разбивается на две части:
Сначала происходит мгновенных обменов битами - сторона после получение бита от отправляет ответный бит незамедлительно(«low-level distance-bounding exchange»).
После этого отправляет сообщение с его секретным ключом стороне . Далее проверяющая сторона с помощью протокола идентификации проверяет достоверность секрета, а также вычислить расстояние(«upper-bound distance») между участниками , где - время между отправлением бита и получением .
При реализации протокола Брандсона-Чаума в случае когда, сторона знает через какое время придет следующий бит, ответный бит стороне может отослать заранее, тем самым, совершив мошенничество с расстоянием между участниками[1].
Один из вариантов предотвращении данного обмана, заключается в случайном изменении времени отправления бита стороной .
Другой вариант - это измененная версия протокола Брандсона-Чаума, предотвращающая сразу два вида мошенничества. Как и в основной версии, обе стороны генерируют случайную последовательность -бит. При мгновенных обменов битами сторона отсылает бит стороне , в свою очередь, сторона отсылает бит стороне . После обмена, сторона должна отправить биты с секретным ключом стороне по защищенному протоколу. Сторона проверяет равенство и после этого с помощью протокола идентификации проверяет достоверность секрета.
Недостаток протокола в том, что он не обрабатывает ошибки, связанные с потерей бита при обмене.[5]
Протокол Ханке-Куна
В 2005 году Герхард Ханке(англ.Gerhard P. Hancke) и Маркус Кун(англ.Markus G. Kuhn)[2] предложили свою версию дистанционно-ограниченного протокола, широко применяемая в RFID-системах[6].
Пусть имеются две стороны: («RFID-reader») и («RFID-token»). Сторона генерирует случайным образом одноразовый ключ и отправляет стороне . Использовав псевдослучайную функцию (MAC или криптографическую хеш-функцию) обе стороны генерируют последовательность бит: ,где , a - секретный ключ, известный обеим сторонам.
После этого, начинается серия из мгновенных обменов битами между двумя сторонами: сгенерированное случайным образом стороной бит («отклик») отправляется стороне , при этом, если бит , то сторона отправляет в ответ бит , в противном случае, бит . Сторона же проверяет полученный бит на равенство со своим битом , а также для каждого вычисляет расстояние между и , и проверяет, чтобы , где , - время между обменом битами, - скорость света, - фиксированная величина.
Если сторону удовлетворяют условия, то обмен считается успешным.
Вероятность атаки выполненной мафией и обмана с расстоянием при использовании данного протокола равна .[4]
Также, на основе данного протокола, был создан протокол Ту-Пирамуту(англ.Tu-Piramuthu), который снижает вероятность успешной атаки до (для одного обмена битами).[7]
Недостатком протокола является потеря производительности при передаче подписанного сообщения, так как из-за возможности потери битов вследствие шума, сообщение нельзя послать через канал быстрого обмена битами.[5]
Протокол Мунильи-Пейнадо
Для уменьшения вероятности мошенничества, на основе протокола Ханке-Куна, в 2008 году Ортиз Мунилья(англ.Ortiz Munilla) и Пейнадо(англ.Peinado)[8] создали свою версию дистанционно-ограниченного протокола. Главной особенностью протокола является возможность обнаружения атаки вовремя обмена битов[9]. Обмен битами разбивается на две категории:
Полный отклик («full challenge») - стандартный обмен битами.
Пустой отклик («void challenge») - никакого обмена битами не происходит.
Стороны и заранее договариваются, на какой итерации произойдет пустой отклик. Если во время пустого отклика, сторона получает бит или , то заключает, что протокол ненадежный.
Перед началом медленной фазы стороны разделяют секрет , получают секретный ключ протокола и псевдослучайную функцию , выдающую случайную последовательность бит размера , и устанавливают временной порог одиночного обмена битами .
Далее, в медленной фазе, стороны и после генерации одноразовых ключей и , соответственно, обмениваются этими ключами, для вычисления . Получившаяся последовательность -бит разбивается на последовательность размера бит, и по бит каждый. Бит устанавливает, какой отклик вовремя быстрой фазы будет пустым или полным: если , или , то - пустой отклик, в противном случае - полный отклик, где биты .
После этого, в быстрой фазе, происходит аналогичный обмен битами, с помощью последовательностей и , как и в протоколе Ханке-Куна. В конечном итоге, если сторона считает протокол надежным, то она отправляет стороне .
Недостатком протокола является сложная реализация трех (физических) состояний протокола.[10]
Протокол Хитоми
В 2010 году Педро Перис-Лопес (исп.Pedro Peris-Lopez), Хулио Эрнандес-Кастро (исп.Julio C. Hernandez-Castro) и др. на основе протокола «Швейцарского-ножа» создали протокол Хитоми[11]. Протокол обеспечивает аутентификацию между считывателем и передатчиком и гарантирует конфиденциальность[12].
Протокол разбивается на 3 части: две медленные фазы - подготовительная и финальная; и быстрая фаза - быстрый обмен битами между считывателем (он же ) и передатчиком (он же ).
В ходе подготовительной фазы выбирает случайное число и отравляет его стороне . После этого, генерирует 3 случайных числа , , и вычисляет временные ключи и , где - псевдослучайная функция, зависящая от секретного ключа , а и два постоянных параметра. Далее, постоянный секретный ключ разделяется на два регистра и . И в завершении фазы, отправляет стороне числа , , .
Дальше наступает фаза из быстрых обменов битами: на итерации, генерирует случайный бит и отравляет , зафиксировав, при этом, время . Сторона получает бит , который может не равняться биту , из-за ошибок в канале связи или стороннего вмешательства. В ответ, отправляет бит , и незамедлительно, после получение бита , который не обязан равняться , сторона фиксирует время и вычисляет время .
В финальной фазе, отправляет сообщение и стороне , где - уникальный идентификатор передатчика. В конечном итоге, разбивает ошибки на три типа:
, но
, но
Если суммарное количество ошибок удовлетворяет начальным условиям стороны , и, в случае необходимости аутентификации, стороне удовлетворяет число , полученное от , то протокол является надежным для обмена.
Gerhard P. Hancke, Markus G. Kuhn.An RFID Distance Bounding Protocol // SECURECOMM '05 Proceedings of the First International Conference on Security and Privacy for Emerging Areas in Communications Networks. — IEEE Computer Society Washington, DC, USA, 2005. — С. 67–73. Архивировано 21 октября 2016 года.
Chong Hee Kim, Gildas Avoine, Fran ̧cois Koeune, Fran ̧cois-Xavier Standaert, Olivier Pereira.The Swiss-Knife RFID Distance Bounding Protocol // Information Security and Cryptology – ICISC 2008. — Springer Berlin Heidelberg, 2008. — С. 98-115.
Yu-Ju Tu, Selwyn Piramuthu.RFID Distance Bounding Protocols // In 1st International EURASIP Workshop in RFID Technology, Vienna, Austria. — 2007.