Строгая аутентификация, основанная на асимметричных алгоритмах
В протоколах строгой аутентификации могут быть использованы асимметричные алгоритмы с открытыми ключами. В этом случае доказывающий может продемонстрировать знание секретного ключа одним из следующих способов:
- расшифровать запрос, зашифрованный на открытом ключе;
- поставить свою цифровую подпись на запросе.
Пара ключей, необходимая для аутентификации, не должна использоваться для других целей (например, для шифрования) по соображениям безопасности. Важно отметить, что выбранная система с открытым ключом должна быть устойчивой к атакам с выборкой шифрованного текста даже в том случае, если нарушитель пытается получить критичную информацию, выдавая себя за проверяющего и действуя от его имени.
Аутентификация с использованием асимметричных алгоритмов шифрования
В качестве примера протокола, построенного на использовании асимметричного алгоритма шифрования, можно привести следующий протокол аутентификации:
A ← B: h(r), B, PA(r,B); (1)
А → В: r. (2)
Участник В выбирает случайным образом r и вычисляет значение х = h(r) (значение х демонстрирует знание r без раскрытия самого значения r), далее он вычисляет значение е = РА(r, В). Под РА подразумевается алгоритм асимметричного шифрования (например, RSA), а под h(·) — хэш-функция. Участник В отправляет сообщение (1) участнику А. Участник А расшифровывает е = РА(r, В) и получает значения r1 и B1, а также вычисляет х1 = h(r1).
После этого производится ряд сравнений, доказывающих, что x=x1, и что полученный идентификатор B1, действительно указывает на участника В. В случае успешного проведения сравнения участник А посылает r. Получив его, участник В проверяет, то ли это значение, которое он отправил в сообщении (1).
В качестве другого примера приведем модифицированный протокол Нидхэма-Шредера, основанный на асимметричном шифровании.
Рассматривая вариант протокола Нидхэма-Шредера, используемый только для аутентификации, будем подразумевать под РB алгоритм шифрования открытым ключом участника В. Протокол имеет следующую структуру:
А → В: РB(r1, А); (1)
А ← В: РА(r2, r1); (2)
А → В: r2. (3)
Дата добавления: 2015-08-11; просмотров: 1066;