Ключевой тег в HTML5

Итак, я наткнулся на этот новый тег в HTML5, <keygen>. Я не могу понять, для чего он предназначен, как он применяется и как это может повлиять на поведение браузера.

Я понимаю, что этот тег предназначен для шифрования формы, но в чем разница между <keygen> и наличием SSL-сертификата для вашего домена. Кроме того, что такое атрибут challenge?

Я не планирую использовать его, поскольку он далеко не реализован в приемлемом диапазоне браузеров, но мне любопытно, что ТОЧНО этот тег. Все, что я могу найти, - это неопределенная документация для куки-резаков без реальных примеров использования.


Изменить:

Я нашел ОЧЕНЬ информативный документ, здесь. Это выполняется как на стороне клиента, так и на стороне сервера.

Мне все еще интересно узнать, какая польза от этого будет в SSL-сертификате домена.

Ответ 1

SSL - это идентификация сервера или аутентификация сервера и клиента (взаимная аутентификация).

В большинстве случаев только сервер представляет свой сервер-сертификат во время установления связи SSL, чтобы вы могли убедиться, что на самом деле это сервер, к которому вы хотите подключиться. В некоторых случаях сервер также хочет убедиться, что вы действительно являетесь человеком, которого вы притворяетесь. Для этого вам нужен клиент-сертификат.

Тег <keygen> генерирует пару открытого и закрытого ключей, а затем создает запрос сертификата. Этот запрос сертификата будет отправлен в центр сертификации (CA). ЦС создает сертификат и отправляет его обратно в браузер. Теперь вы можете использовать этот сертификат для аутентификации пользователя.

Ответ 2

Вам не хватает истории. keygen был сначала поддержан Netscape, когда он все еще был соответствующим браузером. IE, OTOH, поддерживал одни и те же варианты использования через свои ActiveX API. Opera и WebKit (или даже KHTML), не желая реконструировать весь API Win32, обратный дизайн keygen.

Он был указан в Web Forms 2.0 (который теперь объединен с спецификацией HTML), чтобы улучшить взаимодействие между браузерами, которые его реализовали.

С тех пор команда IE повторила отказ от реализации keygen, и спецификация (чтобы избежать превращения в сухую научную фантастику) была изменена, чтобы не требовать реальной реализации:

Примечание. Эта спецификация не указать, какие ключевые типы пользовательских агентов для поддержки - возможно для пользователя агент не поддерживать какие-либо типы ключей в все.

Короче говоря, это не новый элемент, и если вы не можете игнорировать IE, возможно, это не то, что вы хотите.

Ответ 3

Если вы ищете "точно", я бы рекомендовал прочитать RFC.

Элемент keygen предназначен для создания ключа для аутентификации пользователя, в то время как SSL касается конфиденциальности связи и аутентификации сервера. Цитата из RFC

В этой спецификации не указывается, как использовать закрытый ключ. Ожидается, что после получения структуры SignedPublicKeyAndChallenge (SPKAC) сервер будет генерировать клиентский сертификат и возвращать его пользователю для загрузки; этот сертификат, после загрузки и хранения в хранилище ключей вместе с закрытым ключом, затем может использоваться для аутентификации для служб, использующих TLS и аутентификацию сертификатов.

Ответ 4

Устаревшее

Эта функция удалена из веб-стандартов. Хотя некоторые браузеры все еще могут его поддерживать, он находится в процессе отбрасывания. Избегайте его использования и, если это возможно, обновите существующий код. Быть в курсе, что эта функция может перестать работать в любое время.

Источник

Ответ 6

Это может быть полезно для веб-сайтов, предоставляющих услуги, где люди должны платить за услугу, например, видео по запросу, или новостной сайт для таких профессионалов, как Bloomberg. С помощью этих клавиш люди могут просматривать контент только на своем компьютере, а не одновременно на компьютерах! Вы решаете, как данные хранятся и обрабатываются. вы можете указать файл .asp или .php, который получит переменные, и ваш файл сохранит этот ключ в профиле пользователя. Таким образом, ваши пользователи не смогут входить в систему с другого компьютера, если хотите. Вы можете заставить их проверить их электронную почту, чтобы авторизовать этот новый компьютер, как и пар. В принципе, это позволяет индивидуализировать доступ к услугам, если ваша модель лицензирования зависит от каждой машины, например операционной системы.

Вы можете проверить спецификации здесь: http://www.w3.org/TR/html-markup/keygen.html