Экстернат |
Установление подлинности объекта
4.3. Вызов-ответ
При установлении подлинности пароля претендент доказывает свою идентичность, демонстрируя, что он знает секрет и пароль. Однако из-за того, что претендент сообщает секрет, этот секрет восприимчив к перехвату противником. В установлении подлинности с помощью вызова-ответа претендент доказывает, что он знает секрет, не посылая его. Другими словами, претендент не передает секрет верификатору; верификатор или имеет его, или находит его.
Вызов (challenge) - это изменяющееся во времени значение, такое как случайное число или метка времени, которую передает верификатор. Претендент применяет функцию для преобразования вызова и передает результат, называя его ответ, к верификатору. Ответ показывает, что претендент знает секрет.
Использование шифра с симметричным ключом
Несколько подходов к установлению подлинности с помощью вызова-ответа используют шифрование с симметричными ключами. Секретность здесь - открытый ключ засекречивания, известный и претендент у и верификатору. Функция - алгоритм шифрования, с помощью которого обрабатывается вызов перед посылкой ответа.
Первый подход.При первом подходе верификатор передает nonce, случайное число, используемое только однажды для вызова претендент а. Nonce должен изменяться; каждый раз создается различное случайное число. Претендент отвечает на вызов, используя ключ засекречивания, общедоступный претендент у и верификатору. рис. 4.5 показывает первый подход.
Первое сообщение не является частью вызова-ответа - это только сообщение верификатору, что претендент хочет вызвать систему. Второе сообщение - вызов. RB - это nonce, случайно выбранное верификатором (Боб) число-вызов претендент у. Претендент шифрует nonce, используя общедоступный ключ засекречивания, известный только претендент у и верификатору. Он передает результат верификатору. Верификатор расшифровывает сообщение. Если при дешифровании получен тот же самый nonce, как и переданный верификатором, Алисе предоставляется доступ.
Обратите внимание, что в этом процессе претендент и верификатор должны хранить симметричный ключ, используемый в процессе засекречивания. Верификатор должен также сохранить значение nonce до идентификации претендент а, пока не будет возвращен ответ.
Читатель, возможно, заметил, что использование nonce предотвращает ответ на третье сообщение Евы. Ева не может ответить на третье сообщение и притвориться, что это новый запрос об установлении подлинности Алисы, потому что как только Боб получает ответ (значение RB ), этот ответ больше не может быть задействован. В следующий раз используется новое значение.
Второй подход. При втором подходе применяется признак, который меняется во времени. Это - метка времени, которая очевидно изменяется со временем. В этом подходе сообщение вызова - текущее время, передаваемое от верификатора к претендент у. Предполагается как необходимое, что часы клиента и сервера синхронизированы и претендент знает текущее время. Это означает, что нет необходимости в сообщении вызова. Первое и третье сообщения могут быть объединены. В результате установление подлинности может быть выполнено с использованием одного сообщения, ответа на неявный вызов - текущее время. рис. 4.6 показывает этот подход.
Третий подход.Первый и второй подходы созданы для однонаправленного установления подлинности. Подлинность Алисы устанавливается Бобом, но не устанавливается обратное. Если Алисе надо быть уверенной в подлинности Боба, то нужно иметь процесс двунаправленного установлении подлинности. рис. 4.7 показывает такую схему.
Второе сообщение RB - вызов от Боба Алисе. В третьем сообщении Алиса отвечает на вызов Боба и в то же самое время передает свой вызов RA Бобу. Третье сообщение - ответ Боба. Обратите внимание, что в четвертом сообщении порядок RA и RB изменяется, чтобы предотвратить атаку ответа третьего сообщения противником.
Использование функций ключевого хэширования
Вместо того чтобы использовать шифрование/дешифрование для установления подлинности объекта, мы можем также применять ключевую хэш-функцию (MAC). Эта схема имеет одно преимущество: она сохраняет целостность сообщений вызова и ответа и в то же самое время использует секрет - ключ.
Рисунок 4.8 показывает, как мы можем использовать ключевую хэш-функцию, чтобы создать ответ вызову с меткой времени.
Обратите внимание, что в этом случае метку времени передают и как исходный текст и как текст, скрэмблированный ключевой хэш-функцией. Когда Боб получает сообщение, он берет исходный текст T, применяет ключевую хэш-функцию и затем, чтобы определить подлинность Алисы, сравнивает свои вычисления с тем, что он получил.
Шифр, использующий асимметричный ключ
Вместо шифра с симметричными ключами мы можем применить для установления подлинности объекта шифр с асимметричными ключами. Здесь секрет - это секретный ключ претендент а. Претендент должен показать, что он имеет секретный ключ, связанный с открытым ключом, который доступен каждому. Верификатор должен зашифровать вызов, используя открытый ключ претендент а; претендент затем расшифровывает сообщение, используя свой секретный ключ. Этот ответ на вызов - расшифрованный вызов. Далее рассматриваются два подхода: один для однонаправленного установления подлинности и один - для двунаправленного.
Первый подход.В первом подходе Боб зашифровал признак, используя открытый ключ Алисы. Алиса расшифровывает сообщение своим секретным ключом и передает nonce Бобу. рис. 4.9 иллюстрирует такой подход.
Второй подход.Во втором подходе используются два открытых ключа, один в каждом направлении. Алиса передает опознавательный код и nonce, зашифрованные открытым ключом Боба. Боб отвечает своим nonce, расшифрованным открытым ключом Алисы. В конечном итоге Алиса отвечает расшифрованным nonce Боба. рис. 4.10 иллюстрирует этот подход.
Использование цифровой подписи
Установление подлинности объекта может также быть достигнуто с помощью цифровой подписи. Когда цифровая подпись применяется для установления подлинности объекта, претендент использует для подписания свой секретный ключ. Здесь показаны два подхода, другие оставляем как упражнения.
Первый подход.При первом подходе, показанном на рис. 4.11, Боб использует исходный текст вызова, а Алиса подписывает ответ.
Второй подход.При втором подходе, показанном на рис. 4.12, Алиса и Боб устанавливают подлинность друг друга.