aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/html/elemento/keygen/index.html
blob: 0370a780cd4da54babd237feabbdcc7929fbdfc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
---
title: keygen
slug: Web/HTML/Elemento/keygen
tags:
  - para_revisar
translation_of: Web/HTML/Element/keygen
---
<p>El elemento <code>keygen</code> de HTML existe para facilitar la generación de llaves, y el envío de la clave pública como parte de un formulario HTML. Este mecanismo está diseñado para utilizarse con sistemas de gestión de certificados basados en la Web. Se espera que el elemento <code>keygen</code> se utilice en un formulario HTML, junto con otra información necesaria para la construcción de una solicitud de certificado, y que el resultado del proceso será un certificado firmado.</p>

<h3 id="Usage_context" name="Usage_context">Contexto de uso</h3>

<table class="standard-table">
 <tbody>
  <tr>
   <td>Las categorías de contenido</td>
   <td><a title="es / HTML / categorías de contenido # flujo de contenido">contenido dinámico</a> , <a title="es / HTML / Las categorías de contenido # Enunciado contenido">el contenido de redacción</a> , contenido interactivo, <a title="es / HTML / categorías de contenido # formulario de lista">lista</a> , <a title="es / HTML / categorías de contenido # forma labelable">labelable</a> , <a title="es / HTML / categorías de contenido # forma submittable">submittable</a> , <a title="es / HTML / categorías de contenido # forma reajustable">reajustable</a> <a title="es / HTML / categorías de contenido # contenido del formulario asociado">asociada elemento de formulario.</a></td>
  </tr>
  <tr>
   <td>Contenido permitido</td>
   <td>ninguno</td>
  </tr>
  <tr>
   <td>Omisión de etiquetas</td>
   <td>elemento vacío, sólo tiene una etiqueta de inicio</td>
  </tr>
  <tr>
   <td>Elementos padres permitidos</td>
   <td>donde se espere <a title="es / HTML / Las categorías de contenido # Enunciado contenido">contenido de frases</a></td>
  </tr>
  <tr>
   <td>Documento normativo</td>
   <td><a class="external" href="http://www.w3.org/TR/html5/the-button-element.html#the-keygen-element" title="http://www.w3.org/TR/html5/the-button-element.html # el-keygen-elemento">HTML 5, la sección 4.10.5</a></td>
  </tr>
 </tbody>
</table>

<h3 id="Atributos">Atributos</h3>

<h3 id="Uso">Uso</h3>

<dl>
 <dt><a name="attr-autofocus">autofocus</a></dt>
 <dd>Este atributo booleano permite especificar que el control debe tener el foco de entrada cuando se cargue la página, a menos que el usuario lo anule, por ejemplo, al escribir en un control diferente. Sólo un elemento de formulario en un documento puede tener el atributo <strong>autofocus,</strong> que es un valor booleano.</dd>
 <dt>{{ Htmlattrdef ("challenge") }}</dt>
 <dd>Una cadena de desafío que se presenta junto con la clave pública. El valor predeterminado es una cadena vacía si no se especifica.</dd>
 <dt>{{ Htmlattrdef ("disabled") }}</dt>
 <dd>Este atributo booleano indica que el control del formulario no está disponible para la interacción.</dd>
 <dt><a name="attr-form">form</a></dt>
 <dd>El elemento form al que este elemento está asociado (el <em>propietario del formulario).</em> El valor del atributo debe ser un <strong>id</strong> de un elemento {{ HTMLElement ("form") }} en el mismo documento. Si este atributo no se especifica, este elemento debe ser un descendiente de un elemento {{ HTMLElement ("form") }}. Este atributo le permite colocar elementos <span style="font-family: Courier New;">&lt;keygen&gt;</span> en cualquier lugar dentro de un documento, no sólo como descendientes del formulario.</dd>
 <dt>{{ Htmlattrdef ("keytype") }}</dt>
 <dd>El tipo de clave generada. El valor por defecto es <code>RSA</code> .</dd>
 <dt><a name="attr-name">name</a></dt>
 <dd>El nombre del control, que se envía con los datos del formulario.</dd>
</dl>

<p>El elemento se escribe como sigue:</p>

<pre><code>&lt;keygen name="<var>name</var>" challenge="<var>challenge string</var>" keytype="<var>type</var>" keyparams="<var>pqg-params</var>"&gt;</code></pre>

<p>El parámetro <code>keytype</code> se utiliza para especificar qué tipo de clave se generará. Los valores válidos son " <code>RSA</code> ", que es el valor predeterminado," <code>DSA</code> "y" <code>EC</code> ". Los atributos <code>name</code> y <code>challenge</code> son necesarios en todos los casos. El atributo <code>keytype</code> es opcional para la generación de claves RSA y obligatorio para la generación de claves DSA y CE. El atributo <code>keyparams</code> es necesario para la generación de claves DSA y CE e ignorado para la generación de claves RSA. <code>PQG</code> es sinónimo de <code>keyparams</code> . Es decir, usted puede especificar <code>keyparams="pqg-params"</code> o <code>pqg="pqg-params"</code> .</p>

<p>Para las claves RSA, el parámetro <code>keyparams</code> no se utiliza (se ignora si está presente). El usuario puede tener una selección de la fuerza de la clave RSA. En la actualidad, el usuario tiene que elegir entre los grados "alto" (2048 bits) y "medio" (1024 bits).</p>

<p>Para las claves DSA, el parámetro <code>keyparams</code> especifica los parámetros DSA PQG que se van a utilizar en el proceso de creación de llaves. El valor del parámetro <code>pqg</code> es en BASE64, DER codificado Dss-Parms como se especifica en el IETF <a class="link-ftp" href="ftp://ftp.rfc-editor.org/in-notes/rfc3279.txt">RFC 3279</a> . El usuario puede tener una variedad de tamaños de claves DSA, lo que permite al usuario elegir una de las dimensiones definidas en el estándar DSA.</p>

<p>Para las claves CE, el parámetro <code>keyparams</code> especifica el nombre de la curva elíptica en la que será generada la clave. Normalmente es una cadena de la tabla en <a class="external" href="http://mxr.mozilla.org/mozilla-central/source/security/manager/ssl/src/nsKeygenHandler.cpp?mark=179-185,187-206,208-227,229-256#177" title="http://mxr.mozilla.org/mozilla-central/source/security/manager/ssl/src/nsKeygenHandler.cpp?mark=179-185 ,187-206 ,208-227 ,229-256 # 177">nsKeygenHandler.cpp</a> . (Tenga en cuenta que sólo un subconjunto de las curvas nombradas puede ser compatible con un navegador en particular.) Si la cadena parámetro <code>keyparams</code> no es el nombre de una curva reconocible, entonces una curva se elige de acuerdo a la fortaleza elegida por el usuario (bajo, medio, alto), utilizando la curva llamada " <code>secp384r1</code> " para alto, y la curva llamada" <code>secp256r1</code> " para claves de fuerza mediana. (Nota: la elección de la cantidad de fortalezas, los valores por defecto para cada fuerza, y la interfaz de usuario que el usuario se ofrece una opción, están fuera del alcance de esta especificación.)</p>

<p>El elemento <code>keygen</code> sólo es válido dentro de un formulario HTML. Esto causará que algún tipo de selección se presentará al usuario para la selección del tamaño de la clave. La interfaz de usuario para la selección puede ser un menú, botones de radio, o posiblemente algo más. El navegador presentará varias fuerzas posibles. Actualmente, se ofrecen dos fuerzas, alta y media. Si el navegador del usuario está configurado para el soporte de hardware de cifrado (por ejemplo, "tarjetas inteligentes"), también puede dársele la opción al usuario de dónde generar la clave, es decir, si en una tarjeta inteligente o en el software y si se almacenan en el disco.</p>

<p>Cuando el botón de enviar es pulsado, un par de claves del tamaño seleccionado se genera. La clave privada se cifra y se almacena en la base de datos de claves local.</p>

<pre>   PublicKeyAndChallenge:: SEQUENCE {
       SPKI SubjectPublicKeyInfo,
       challenge IA5String
   }
   SignedPublicKeyAndChallenge:: SEQUENCE {
       publicKeyAndChallenge PublicKeyAndChallenge,
       signatureAlgorithm AlgorithmIdentifier,
       firma BIT STRING
   }</pre>

<p>La clave pública y la cadena de desafío son codificadas con DER como PublicKeyAndChallenge, a continuación, firmados digitalmente con la clave privada para producir una SignedPublicKeyAndChallenge. El SignedPublicKeyAndChallenge es base64, y los datos ASCII finalmente se envía al servidor como un par de nombre/valor de formulario, donde el nombre es <var>name</var> especificado por el atributo <code>name</code> del elemento <code>keygen</code>. Si no hay cadena de desafío se proporciona, entonces será codificada como IA5String de longitud cero.</p>

<p>He aquí un ejemplo de envío de formularios, como sería entregado a un programa CGI en el servidor HTTP:</p>

<pre>   CommonName = John Doe + y e-mail = doe@foo.com y org = Foobar + + Informática Corp. y
   orgunit = Oficina + de + la burocracia y la localidad Ciudad X = y = estado de California y en el país = EE.UU. y
   key = MIHFMHEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAnX0TILJrOMUue% 2BPtwBRE6XfV% 0AWtKQbsshxk5ZhcUwcwyvcnIq9b82QhJdoACdD34rqfCAIND46fXKQUnb0mvKzQID% 0AAQABFhFNb3ppbGxhSXNNeUZyaWVuZDANBgkqhkiG9w0BAQQFAANBAAKv2Eex2n% 2FS% 0Ar 2F7iJNroWlSzSMtTiQTEB%%%% 2BADWHGj9u1xrUrOilq 2Fo2cuQxIfZcNZkYAkWP4DubqW 0Ai0% 2F% 3D% 2FrgBvmco</pre>

<h2 id="Ejemplos">Ejemplos</h2>

<ul>
 <li><a class="link-https" href="https://bugzilla.mozilla.org/attachment.cgi?id=380749" title="https://bugzilla.mozilla.org/attachment.cgi?id=380749">Sample form with RSA KEYGEN element</a></li>
 <li><a class="link-https" href="https://bugzilla.mozilla.org/attachment.cgi?id=380750" title="https://bugzilla.mozilla.org/attachment.cgi?id=380750">Sample form with DSA KEYGEN element and PQG Parameters</a></li>
 <li><a class="link-https" href="https://bugzilla.mozilla.org/attachment.cgi?id=380751" title="https://bugzilla.mozilla.org/attachment.cgi?id=380751">Sample form with DSA KEYGEN element but no PQG Parameters</a></li>
 <li><a class="link-https" href="https://bugzilla.mozilla.org/attachment.cgi?id=380752" title="https://bugzilla.mozilla.org/attachment.cgi?id=380752">Sample form with EC KEYGEN element</a></li>
</ul>

<h2 id="Compatibilidad_del_navegador">Compatibilidad del navegador</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th>Navegador</th>
   <th>Versión más baja</th>
  </tr>
  <tr>
   <td>Internet Explorer</td>
   <td>---</td>
  </tr>
  <tr>
   <td>Firefox (Gecko)</td>
   <td>1.0 (1.0)</td>
  </tr>
  <tr>
   <td>Opera</td>
   <td>3.0</td>
  </tr>
  <tr>
   <td>Safari (WebKit)</td>
   <td>1.2 (125)</td>
  </tr>
 </tbody>
</table>

<p> </p>

<p>{{ languages ({"fr": "fr/HTML/Element/Keygen","en": "en/HTML/Element/Keygen"}) }}</p>