aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/api/web_crypto_api
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:45 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:45 -0500
commit1109132f09d75da9a28b649c7677bb6ce07c40c0 (patch)
tree0dd8b084480983cf9f9680e8aedb92782a921b13 /files/es/web/api/web_crypto_api
parent4b1a9203c547c019fc5398082ae19a3f3d4c3efe (diff)
downloadtranslated-content-1109132f09d75da9a28b649c7677bb6ce07c40c0.tar.gz
translated-content-1109132f09d75da9a28b649c7677bb6ce07c40c0.tar.bz2
translated-content-1109132f09d75da9a28b649c7677bb6ce07c40c0.zip
initial commit
Diffstat (limited to 'files/es/web/api/web_crypto_api')
-rw-r--r--files/es/web/api/web_crypto_api/checking_authenticity_with_password/index.html30
-rw-r--r--files/es/web/api/web_crypto_api/index.html85
2 files changed, 115 insertions, 0 deletions
diff --git a/files/es/web/api/web_crypto_api/checking_authenticity_with_password/index.html b/files/es/web/api/web_crypto_api/checking_authenticity_with_password/index.html
new file mode 100644
index 0000000000..f2e2ef65fd
--- /dev/null
+++ b/files/es/web/api/web_crypto_api/checking_authenticity_with_password/index.html
@@ -0,0 +1,30 @@
+---
+title: Verificando la autenticidad usando contraseña
+slug: Web/API/Web_Crypto_API/Checking_authenticity_with_password
+translation_of: Web/API/Web_Crypto_API/Checking_authenticity_with_password
+---
+<p>{{APIRef("Web Crypto API")}}{{draft}}</p>
+
+<p>La autenticidad del mensaje puede ser verificada usando el API Crypto Web. En este artículo mostrarémos como crear y controlar una firma digital utilizando una contraseña y una función hash.</p>
+
+<p>Un algoritmo HMAC toma una llave y genera un código digerido de la llave y los datos a firmar. Posteriormente, cualquiera con la llave puede volver a generar el mismo código digerido para verificar si los datos han sido alterados.  Además, mediante el conocimiento de una clave secreta, permite almacenar juntos el código digerido y los datos: un atacante no podrá generar un código digerido sobre datos manipulados si no conoce la clave secreta.</p>
+
+<p>Note that this algorithm doesn't carry any information about the person owning the data, nor its unicity: the mere knowledge of the key is enough to alter the data.</p>
+
+<p>Let's assume that the data is stored on the computer. To access it, both for writing and reading, we will use <code>localforage.js</code> a small library wrapping the different storages capabilities of a browser in the same interface. This library is not an essential component of this use case and is used here for convenience, to keep focused on what really matter, the cryptographic part.</p>
+
+<p>The data we want to access is of the form:</p>
+
+<p> </p>
+
+<p>where <code>data</code><em> </em>is the information to guarantee the integrity and <code>signature</code> the information used to verify it.</p>
+
+<p>Cryptographic keys can't be remembered by heart by human, and passwords, or passphrases, make bad, that is unsecure, cryptographic key. To solve this problem, cryptographers have designed algorithms generating cryptographically-sound keys from password. Knowing the password allowed to regenerate the same key and to use it.</p>
+
+<p>We ask the user for a password, and we use it to generate the key:</p>
+
+<pre> </pre>
+
+<p>With that key, we will be able to compute the <em>mac</em> of the data.</p>
+
+<pre> </pre>
diff --git a/files/es/web/api/web_crypto_api/index.html b/files/es/web/api/web_crypto_api/index.html
new file mode 100644
index 0000000000..d8d0069fe4
--- /dev/null
+++ b/files/es/web/api/web_crypto_api/index.html
@@ -0,0 +1,85 @@
+---
+title: Web Crypto API
+slug: Web/API/Web_Crypto_API
+tags:
+ - Referencia
+ - Vista general
+ - Web Crypto API
+translation_of: Web/API/Web_Crypto_API
+---
+<p>{{DefaultAPISidebar("Web Crypto API")}}{{SeeCompatTable}}{{draft}}</p>
+
+<p>La <strong>Web Crypto API</strong>  es una interfaz que permite a un script usar primitivos criptográficos con el fin de construir sistemas utilizando criptografía.</p>
+
+<div class="blockIndicator warning">
+<p><strong>Advertencia:</strong> Esta API proporciona una serie de primitivos criptográficos de bajo nivel. Es muy fácil hacer un mal uso de ellos, y las trampas involucradas pueden ser muy sutiles.</p>
+
+<p>Incluso suponiendo que se utilicen correctamente las funciones criptográficas básicas, la gestión segura de las claves y el diseño general del sistema de seguridad son extremadamente difíciles de conseguir correctamente, y generalmente son el dominio de expertos en seguridad especializados.</p>
+
+<p>Los errores en el diseño e implementación del sistema de seguridad pueden hacer que la seguridad del sistema sea completamente ineficaz.</p>
+
+<p><strong>Si no estás seguro de saber lo que estás haciendo, probablemente no deberías usar esta API.</strong></p>
+</div>
+
+<p>Una de las principales características de esta API es que permite la manipulación y almacenamiento de claves privadas y secretas sin la capa de bits de la clave para poder usarlo con Javascript.</p>
+
+<p>Esta interfaz permite el acceso a las siguientes primitivos:</p>
+
+<ul>
+ <li><strong><em>digest</em></strong>, la capacidad para calcular un hash de un bloque arbitrario de datos, con el fin de detectar cualquier cambio en él.</li>
+ <li><strong><em>mac</em></strong>, la capacidad de calcular un código de mensaje de autenticación.</li>
+ <li><strong><em>sign</em></strong> and <strong><em>verify</em></strong>, la capacidad de firmar digitalmente un documento, y de verificar una firma.</li>
+ <li><strong><em>encrypt</em></strong> and <strong><em>decrypt</em></strong>, la capacidad de codificar o descodificar un documento.</li>
+ <li><strong><em>import</em></strong> and <strong><em>export</em></strong>, la capacidad de importar o exportar una clave.</li>
+ <li><strong><em>key generation</em></strong>, la capacidad de crear una llave criptográfica segura o un par de llaves (llave pública y llave privada), sin el uso de una clave base, pero usando la entropía disponible en el sistema local.</li>
+ <li><strong><em>key wrapping</em></strong> and <strong><em>unwrapping</em></strong>, la capacidad de transmitir y recibir una llave de un tercero, codificada usando otra llave sin exponer dicha llave a JavaScript.</li>
+ <li><strong><em>random</em></strong>, la capacidad de generar criptográficamente números pseudo-aleatorios fuertes.</li>
+</ul>
+
+<p>La Web Crypto API no resuelve todos los problemas criptográficos a los que un sitio web o una aplicación puedan encontrarse:</p>
+
+<ul>
+ <li>No flexibiliza el modelo de <a href="/en-US/docs/Web/Security/Same-origin_policy">same-origin security model</a> del navegador, como los casos en que las claves son emitidas por entidades centralizadas utilizadas por varios sitios web.</li>
+ <li>No interactúa con hardware dedicado, tal y como smart cards, pendrives, o generadores aleatorios.</li>
+</ul>
+
+<div class="warning">
+<p><strong>¡Atención!</strong></p>
+
+<ul>
+ <li>El simple hecho de hacer uso de la criptografía no hace a tu sistema seguro. La Seguridad es un <strong>proceso</strong> que constamentemente evalua el riesgo de un sistema en el contexto de uso. The context and the risks experienced evolve over time.</li>
+ <li>Al aplicar seguridad, todo el <strong>sistema</strong> debe considerarse. En el caso de la  Web Crypto API, los desarrolladores Web no sólo deben considerar la seguridad del script, sino también la seguridad de la conexión al servidor y los datos que éste podría comunicar sin encriptar.  La seguridad en general será tan débil como la parte más débil de todo el sistema.</li>
+</ul>
+</div>
+
+<h2 id="Interfaces">Interfaces</h2>
+
+<p>Algunos navegadores implementan una interfaz llamada {{domxref("Crypto")}} sin tenerla bien definida o criptográficamente siendo llamada. Con el fin de evitar conclusiones, los métodos y propiedades de esta interfaz van a ir implementados en la Web Crypto API, y todos los métodos de la Web Crypto API están disponibles en una nueva interfaz: {{domxref("SubtleCrypto")}}.<br>
+ La propiedad {{domxref("Crypto.subtle")}} da acceso a un objeto para implementarla.</p>
+
+<h2 id="Casos_de_uso">Casos de uso</h2>
+
+<p>La Web Crypto API puede ser usada para:</p>
+
+<ul>
+ <li>Verificar que los datos no han sido alterados por terceros. Incluso si los datos se almacenan de forma clara, el almacenamiento de una firma, generada a partir de una contraseña, permite a las personas que conocen la contraseña saber que es auténtica.</li>
+</ul>
+
+<h2 id="Especificaciones">Especificaciones</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Especificación</th>
+ <th scope="col">Estado</th>
+ <th scope="col">Comentario</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName("Web Crypto API")}}</td>
+ <td>{{Spec2("Web Crypto API")}}</td>
+ <td>Initial definition</td>
+ </tr>
+ </tbody>
+</table>