La API de criptografía web es la recomendación del Consorcio World Wide Web (W3C) para una interfaz de bajo nivel que aumentaría la seguridad de las aplicaciones web al permitirles realizar funciones criptográficas sin tener que acceder al material de clave sin procesar. [ 1 ] Esta API agnóstica realizaría operaciones criptográficas básicas, como el hash , la generación y verificación de firmas, el cifrado y el descifrado desde dentro de una aplicación web. [ 2 ]
Descripción
El 26 de enero de 2017, el W3C publicó su recomendación para una API de criptografía web [ 3 ] que podría realizar operaciones criptográficas básicas en aplicaciones web. Esta API agnóstica utilizaría JavaScript para realizar operaciones que aumentarían la seguridad del intercambio de datos dentro de las aplicaciones web . La API proporcionaría una interfaz de bajo nivel para crear y/o administrar claves públicas y privadas para el hash , la generación y verificación de firmas digitales , y el cifrado y descifrado para su uso con aplicaciones web.
La API de criptografía web podría utilizarse para una amplia gama de usos, entre los que se incluyen:
- Proporcionar autenticación para usuarios y servicios.
- Firma electrónica de documentos o códigos
- Proteger la integridad y la confidencialidad de las comunicaciones y el intercambio de datos digitales.
Debido a su naturaleza agnóstica, la API de criptografía web puede utilizarse en cualquier plataforma . Proporcionaría un conjunto común de interfaces que permitirían a las aplicaciones web y a las aplicaciones web progresivas realizar funciones criptográficas sin necesidad de acceder al material de clave en bruto. Esto se lograría con la ayuda de la interfaz SubtleCrypto, que define un conjunto de métodos para realizar las operaciones criptográficas mencionadas. Interfaces adicionales dentro de la API de criptografía web permitirían la generación, derivación, importación y exportación de claves. [ 1 ]
Funcionalidad propuesta
La especificación del W3C para la API de criptografía web se centra en la funcionalidad y las características comunes que existen actualmente entre las API criptográficas estandarizadas y específicas de cada plataforma, en contraposición a las conocidas solo por unas pocas implementaciones. La recomendación del grupo para el uso de la API de criptografía web no exige la implementación de un conjunto obligatorio de algoritmos. Esto se debe a que se reconoce que las implementaciones criptográficas variarán entre los agentes de usuario compatibles debido a las regulaciones gubernamentales , las políticas locales , las prácticas de seguridad y las cuestiones de propiedad intelectual .
Hay muchos tipos de aplicaciones web existentes para las que la API de criptografía web sería muy adecuada. [ 1 ]
autenticación multifactor
Actualmente , la autenticación multifactor se considera uno de los métodos más fiables para verificar la identidad de un usuario en una aplicación web, como la banca en línea . Muchas aplicaciones web dependen de este método de autenticación para proteger tanto al usuario como al agente de usuario . Con la API de criptografía web, una aplicación web podría proporcionar autenticación internamente, en lugar de depender de la autenticación de la capa de transporte para el acceso mediante claves secretas. Este proceso ofrecería una experiencia más completa para el usuario.
La API de criptografía web permitiría a la aplicación localizar claves de cliente adecuadas que hayan sido creadas previamente por el agente de usuario o que hayan sido preaprovisionadas por la aplicación web. La aplicación podría otorgar al agente de usuario la capacidad de generar una nueva clave o reutilizar una existente en caso de que el usuario no tenga una clave asociada a su cuenta. Al vincular este proceso con la Seguridad de la capa de transporte (TLS) mediante la cual el usuario se autentica, el proceso de autenticación multifactor se puede reforzar aún más mediante la derivación de una clave basada en el transporte subyacente. [ 1 ] [ 2 ]
Intercambio de documentos protegidos
La API se puede utilizar para proteger documentos sensibles o confidenciales del acceso no autorizado desde una aplicación web, incluso si se han recibido previamente de forma segura. La aplicación web utilizaría la API de criptografía web para cifrar el documento con una clave secreta y, a continuación, lo encapsularía con claves públicas asociadas a los usuarios autorizados a verlo. Al acceder a la aplicación web, el usuario autorizado recibiría el documento cifrado y se le indicaría que utilizara su clave privada para iniciar el proceso de desencriptación, lo que le permitiría descifrarlo y visualizarlo. [ 2 ]
Almacenamiento en la nube
Muchas empresas y particulares dependen del almacenamiento en la nube . Para mayor protección, los proveedores de servicios remotos podrían querer que su aplicación web permita a los usuarios proteger sus documentos confidenciales antes de subirlos, así como otros datos. La API de criptografía web permitiría a los usuarios:
- Seleccione una clave privada o secreta.
- Si lo desean, pueden derivar una clave de cifrado a partir de su clave.
- Encriptar su documento/datos
- Cargar su documento/datos cifrados utilizando las API existentes del proveedor de servicios [ 2 ]
Firma electrónica de documentos
La posibilidad de firmar documentos electrónicamente ahorra tiempo, mejora la seguridad de los documentos importantes y puede servir como prueba legal de la aceptación del documento por parte del usuario. Muchas aplicaciones web optan por aceptar firmas electrónicas en lugar de requerir firmas manuscritas. Con la API de criptografía web, se le solicitaría al usuario que eligiera una clave que podría generarse o preconfigurarse específicamente para la aplicación web. Esta clave se utilizaría durante el proceso de firma.
Proteger la integridad de los datos
Las aplicaciones web suelen almacenar datos en caché localmente, lo que expone dichos datos al riesgo de ser vulnerados en caso de un ataque sin conexión. La API de criptografía web permite que la aplicación web utilice una clave pública desplegada internamente para verificar la integridad de la caché de datos. [ 2 ]
Mensajería segura
La API de criptografía web puede mejorar la seguridad de la mensajería para su uso en esquemas de firma de mensajes fuera de registro (OTR) y otros tipos de esquemas mediante el uso de un acuerdo de claves. El remitente y el destinatario del mensaje negociarían claves compartidas de cifrado y código de autenticación de mensajes (MAC) para cifrar y descifrar los mensajes y evitar el acceso no autorizado. [ 2 ]
Firma y cifrado de objetos JSON (JOSE)
La API de criptografía web puede ser utilizada por aplicaciones web para interactuar con formatos y estructuras de mensajes definidos por el Grupo de Trabajo JOSE. [ 4 ] La aplicación puede leer e importar claves de firma web JSON (JWK), validar mensajes protegidos mediante firma electrónica o claves MAC y descifrar mensajes JWE.
Conformidad con la API de criptografía web
El W3C recomienda que los proveedores eviten usar extensiones propietarias específicas con las especificaciones de la API de criptografía web. Esto se debe a que podría reducir la interoperabilidad de la API y fragmentar la base de usuarios, ya que no todos podrían acceder al contenido específico. Se recomienda que, cuando no se pueda evitar una extensión específica del proveedor, este le anteponga cadenas de caracteres propias para evitar conflictos con futuras versiones de las especificaciones de la API.
Referencias
- 1 2 3 4 Turner, Dawn M. "Sugerencia del W3C para una API de criptografía web" . Cryptomathic . Recuperado el 9 de mayo de 2017 .
- 1 2 3 4 5 6 Watson, Mark (ed.). "Recomendación propuesta por la API de criptografía web del W3C, 15 de diciembre de 2016" . W3C . Recuperado el 23 de mayo de 2017 .
- ↑ Watson, Mark (ed.). "Recomendación del W3C sobre la API de criptografía web, 26 de enero de 2017" . W3C . Consultado el 3 de julio de 2018 .
- ↑ Grupo de trabajo JOSE. "Firma y cifrado de objetos Javascript (jose)" . IETF . Consultado el 16 de marzo de 2017 .
Enlaces externos
- Sitio web oficial
- API de criptografía web en la documentación web de MDN
- Estándares de criptografía
- Estándares basados en XML
- Estándares del Consorcio World Wide Web