La prueba criptográfica invita a exagerar. «Firmado» suena a «cierto», y «a prueba de alteraciones» suena a «certificado». Ninguna de las dos cosas es correcta. Si usas recibos de Trustvice en una auditoría, un contrato o una disputa, lo más valioso que puedes hacer es describirlos con exactitud: ni más de lo que muestran, ni menos.
Este artículo es esa descripción. Es la página que querríamos que leyera un abogado, un auditor o una contraparte cuidadosos antes de apoyarse en un recibo, y repite a propósito cosas que nuestra documentación ya dice.
Qué prueba un recibo válido#
Un recibo que se verifica contra una clave publicada de Trustvice prueba tres cosas.
Origen. El sobre lo firmó quien tiene la clave privada que corresponde a signatureKeyId, que es una clave de firma de Trustvice. Nadie más, tú incluido, puede producir un recibo que se verifique contra esa clave.
Integridad. Todo miembro del sobre salvo signature está exactamente como se firmó: el tipo, el body, la hora issuedAt y el id de clave. Cambiar un solo carácter hace fallar la verificación.
Una hora firmada. Trustvice afirma que el recibo se creó en issuedAt. Es el reloj del propio emisor.
Cualquiera puede comprobar las tres, sin conexión, sin cuenta y sin preguntarnos. La comprobación es determinista: dos implementaciones independientes con el mismo recibo y la misma clave llegan a la misma respuesta. Esa es la fuerza de un recibo, y es real.
Hechos declarados y hechos observados#
Antes de enumerar los límites, una distinción decide cuánto significa cada recibo concreto.
Un recibo puede afirmar hechos que alguien aportó a Trustvice, firmados para mostrar que se presentaron, o hechos sobre algo que Trustvice hizo o vio por sí misma. Un recibo sobre hechos declarados prueba que se presentaron antes de issuedAt; un recibo sobre hechos observados prueba lo que Trustvice vio. Los recibos se ven iguales en ambos casos, así que lee el tipo de recibo para saber cuál tienes.
Qué no prueba un recibo#
No son defectos. Son el límite de la afirmación.
Que un hecho declarado sea cierto#
Un recibo sobre un hash cubre un hash. El hash de un documento falso se verifica igual que el de uno verdadero. Un recibo sobre un intercambio declarado, como un prompt y una respuesta, prueba que el intercambio se presentó en un momento dado, no que ocurriera como se describe.
Lo que sí te da un recibo de hecho declarado sigue mereciendo la pena: fija la afirmación en el tiempo, así que no puede antedatarse en silencio, y cualquier cambio posterior es detectable.
Quién fue autor, aprobó o era dueño de algo#
El sobre no lleva identificador de workspace ni de cuenta, ni la firma de ninguna persona. Cualquiera que tenga el JSON puede presentarlo. Un hash identifica bytes, no un dueño: no demuestra que nadie más tenga el mismo contenido. Si la autoría importa, pon tus propias firmas dentro del contenido.
Tu contenido#
El recibo guarda un hash. Para demostrar que un documento coincide, calcula su hash y compáralo con el body. El recibo solo ayuda si conservaste el contenido en algún sitio desde donde puedas aportarlo.
La hora real de un evento#
issuedAt es nuestro reloj al firmar. En un hecho declarado, el evento ocurrió algún tiempo antes del recibo. Un recibo no es un sello cualificado de tiempo electrónico en ningún régimen legal. No afirmes una precisión mayor que el intervalo entre el evento y el recibo. Si necesitas un ancla externa, publica la firma del recibo en algún lugar que tenga su propio reloj de confianza.
Que no pasara nada donde no hay recibo#
Un recibo prueba lo que dice, no lo que se dejó sin decir. Un hueco en los recibos no es prueba de que no pasara nada, ni a tu favor ni en tu contra.
Que un recibo se haya revocado, o que una clave nunca se viera comprometida#
No hay revocación. Un recibo que se verificó al emitirse se verifica mientras su clave de firma siga publicada. Tampoco hay lista de revocación de claves. Una clave de firma filtrada permitiría a quien la tenga crear recibos que se verifican, y la comprobación de firma por sí sola no podría distinguirlos de los auténticos.
En qué confías en nosotros#
La verificación elimina la necesidad de confiar en nosotros para mucho: no necesitas que te digamos si un recibo se alteró, qué clave lo firmó o si se cambió la clave que contiene. Lo que queda es un conjunto pequeño y con nombre:
- Que la clave pública contra la que verificas es nuestra. Fija el id de clave y el valor
x desde una red de confianza, y verifica contra esa copia.
- Que nuestras claves de firma solo las usa el servicio de recibos. Trustvice las guarda en módulos de seguridad de hardware de AWS KMS, de los que nunca salen, lo que impide copiarlas. No impide que quien pueda desplegar el servicio de recibos, o tenga su credencial de solo firma, haga que firme.
- Que cuando decimos que observamos algo, fue así. Esto aplica a los recibos sobre cosas que Trustvice hizo o vio.
- Nuestro reloj.
Para la posición más sólida en una disputa, combina los recibos con registros que tú controlas.
Cómo presentar un recibo#
Cuando un recibo sale de tus manos, una breve nota de acompañamiento evita la mayoría de los malentendidos. Una buena nota hace cinco cosas:
- Dice lo que muestra el recibo, en sus propios términos. «A las 09:41:07 UTC del 14 de octubre, quien tiene nuestra clave presentó a Trustvice el SHA-256
4d9a…7d62 con la etiqueta prueba v3 entregada.»
- Dice de quién es el hecho. Declarado por nosotros u observado por Trustvice.
- Entrega las pruebas juntas. El recibo, el juego de claves contra el que se verificó y el contenido original.
- Invita a la verificación independiente. Remite a /verify y al procedimiento sin conexión, y pide a la otra parte que descargue ella misma las claves de
trustvice.com, para que no dependa de un archivo de claves que aportaste tú.
- Declara los límites. Sobre todo la hora, el punto de observación y cualquier hueco.
Nuestra guía Pruebas para disputas muestra el patrón completo: decidir antes de una disputa qué afirmaciones vas a necesitar, capturar recibos en el momento en que ocurren las cosas y reunir un paquete de pruebas que la otra parte pueda verificar sin fiarse de ti.
Los recibos y la ley#
Que un recibo sea admisible, o suficiente, en un tribunal, ante un regulador o en un contrato concreto depende de la jurisdicción y del caso. Un recibo es un registro técnico de lo que se presentó a un servicio de firma, o de lo que este observó. No es asesoría legal, ni una certificación, ni una prueba de cumplimiento. Consulta a tu propio abogado, y plantéate incluir en tus contratos que ambas partes aceptan los recibos verificados contra las claves publicadas como prueba de los hechos que declaran.
Por qué lo ponemos por escrito#
Un límite dicho con claridad genera más confianza que una afirmación, porque un recibo solo es tan útil como la precisión con que la gente lo describe. Si encuentras un lugar donde nuestras propias páginas exageran lo que prueba un recibo, avísanos en /contact y lo corregiremos.