Aller au contenu

Balise HTML <keygen>

La balise &lt;keygen&gt; fait partie des éléments HTML5. Elle est chargée de générer une paire de clés (publique et privée) utilisées pour chiffrer et déchiffrer les données envoyées au serveur lors de la soumission d'un formulaire HTML. La clé publique est envoyée au serveur avec les données du formulaire, tandis que la clé privée ne quitte jamais l'appareil de l'utilisateur et est gérée par le navigateur ou le trousseau de clés du système d'exploitation.

Son objectif principal était le chiffrement et l'authentification des formulaires, plutôt que les signatures numériques.

L'élément &lt;keygen&gt; permet à l'utilisateur de choisir parmi une gamme d'options de taille de clé et de spécifier où générer la clé, par exemple sur une carte à puce ou dans un logiciel stocké sur le disque. Cette fonctionnalité fonctionne avec le matériel cryptographique ainsi qu'avec la génération de clés logicielle standard.

Syntaxe

La balise &lt;keygen&gt; est placée dans le conteneur <form> ; la balise de fermeture n'est pas obligatoire. Cependant, dans XHTML, la balise &lt;keygen&gt; doit être auto-fermante (&lt;keygen /&gt;).

Exemple de la balise HTML &lt;keygen&gt; :

Balise HTML &lt;keygen&gt;

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <form action="/form/submit" method="post">
      <keygen name="rsaPublicKey" keytype="rsa">
      User’s name:
      <input type="text" name="usr_name" />
      <input type="submit" />
    </form>
  </body>
</html>

Résultat

keygen tag example

Prise en charge par les navigateurs

  • Chrome, Edge, Firefox, Safari, Opera : Déprécié et supprimé. Tous les principaux navigateurs ont abandonné la prise en charge de <keygen> en 2021 pour des raisons de sécurité et d'utilisabilité.
  • Navigateurs mobiles : Non pris en charge.

DANGER

Notez que la balise '<keygen>' est dépréciée en HTML5 et ne devrait pas être utilisée. Il est plutôt recommandé d'utiliser d'autres méthodes d'authentification, telles que OAuth ou OpenID.

Attributs

AttributeValueDescription
autofocusautofocusDéfinit que l'élément reçoit automatiquement le focus lors du chargement de la page. Non pris en charge dans IE et Firefox.
challengechaîneDéfinit une chaîne de défi transmise avec la clé publique. Par défaut à une chaîne vide si omise.
disableddisabledIndique que l'élément <keygen> doit être désactivé.
formform_idAssocie l'élément à un formulaire spécifique par son ID. Non pris en charge dans IE.
keytypersa, dsa, ecDéfinit l'algorithme de chiffrement de la clé. rsa est la seule valeur officiellement standardisée. dsa et ec n'ont jamais été standardisés et bénéficiaient d'un support navigateur incohérent. rsa (par défaut) offre une sécurité élevée/moyenne. dsa permet de sélectionner la taille de la clé. ec offre une sécurité élevée/moyenne.
namechaîneDéfinit le nom de l'élément <keygen>.

La balise &lt;keygen&gt; prend en charge les Attributs globaux et les Attributs d'événement.

Pratique

Que peut-on dire de la balise HTML <keygen> ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.