Una firma web JSON (abreviada JWS ) es un estándar propuesto por IETF ( RFC 7515) para firmar datos arbitrarios. [1] Esto se utiliza como base para una variedad de tecnologías basadas en la web, incluido JSON Web Token .
JWS es una forma de garantizar la integridad de la información en un formato altamente serializable y legible por máquina. Esto significa que es información, junto con una prueba de que la información no ha cambiado desde que se firmó. Se puede utilizar para enviar información de un sitio web a otro y está especialmente orientado a las comunicaciones en la web. Incluso contiene un formato compacto optimizado para aplicaciones como parámetros de consulta URI . [2]
JWS se puede utilizar para aplicaciones en las que la información firmada digitalmente se debe enviar en un formato legible por máquina, como el comercio electrónico . Por ejemplo, supongamos que un usuario llamado Bob está buscando precios de widgets en un sitio web (widgets.com) y desea obtener una cotización de uno de ellos. Entonces widgets.com podría proporcionar a Bob un objeto JWS que contenga toda la información relevante sobre el widget, incluido el precio, y luego firmarlo utilizando su clave privada. Entonces Bob tendría una cotización de precio irrefutable para el producto.
Tal vez Widgets.com y WidgetStorage.com tengan un acuerdo en el que WidgetStorage.com acepte cupones de Widgets.com a cambio de tráfico. Widgets.com podría emitir JWS que le otorgue a Bob un descuento del 10 % en el sitio WidgetStorage.com. Nuevamente, debido a que los datos están firmados, WidgetStorage puede saber que Widgets.com emitió esto. Si los datos no estuvieran firmados, Bob podría cambiar su descuento al 50 % y nadie lo sabría con solo mirar los datos.
JWS es uno de los estándares de la serie JOSE [3] y está pensado para usarse en combinación con ellos. Por ejemplo, para el cifrado, se supone que se debe usar en conjunto JSON Web Encryption (JWE) [4] .
A partir de 2015, JWS era un estándar propuesto y formaba parte de varios otros estándares propuestos por el IETF, [5] y había un código disponible en la web para implementar el estándar propuesto. [6] [7]