Confianza y seguridad
C-NDA existe para producir una prueba que se sostiene sin que nadie tenga que confiar en nuestra palabra. El mismo estándar se aplica a esta página: abajo están las medidas que están en el código, los lugares donde los datos viven realmente y, en palabras sencillas, las certificaciones que no tenemos.
Nada está “en la nube” como una abstracción. Cada categoría de datos tiene un lugar, y un lugar es una jurisdicción.
Supabase, Unión Europea, región de Frankfurt. La región no es un ajuste que alguien pueda cambiar: está escrita en las reglas del proyecto como inamovible, porque moverla desplazaría el fundamento legal de cada registro.
Cloudflare R2, en un bucket creado con jurisdicción de la UE. En R2, la jurisdicción se elige cuando se crea el bucket y no puede cambiarse después (no hay un ajuste para corregirla más tarde, solo un bucket que reconstruir), así que nuestra configuración comprueba el endpoint que recibe y se niega a quedarse callada cuando no es el europeo.
El portal se ejecuta en Vercel. El testigo que se une a una reunión y la graba se ejecuta en un contenedor alojado por Railway, en Ámsterdam.
Sentry, región de la UE. Los encabezados de autorización, las cookies, los cuerpos de las solicitudes, los enlaces de reunión y los códigos de un solo uso se eliminan antes de que algo salga del proceso, y no registramos sesiones de navegación.
Nunca con nosotros. La gestión de pagos y suscripciones ocurre en las propias páginas de Stripe; un número de tarjeta nunca llega a nuestros sistemas.
La lista completa de encargados del tratamiento, con lo que recibe cada uno y por qué, está en la Política de Privacidad. Lee la Política de Privacidad
Tres preguntas deciden la seguridad de un sistema como este: quién puede leer qué, cómo sabemos quién eres y qué les pasa a las cosas que cruzan el cable.
Este es el invariante sobre el que está construido todo el producto, y es una propiedad de seguridad antes que una propiedad legal.
01
En una reunión protegida, el enlace de la reunión está cifrado en reposo en la base de datos.
02
Hasta que un participante se haya identificado y haya aceptado el NDA, ese enlace no se le oculta, no se le difumina, no se le muestra en gris: nunca se envía. Está ausente de los payloads de la API, del HTML, de los eventos en tiempo real, de los registros y de los mensajes de error. Por mucho que se inspeccione la página, no se revela lo que nunca se transmitió.
03
La única respuesta que lo devuelve es la que registra la aceptación, y solo mientras la sesión sigue abierta. Una vez que una sesión se cierra, caduca o se certifica, incluso un participante que sí aceptó no recibe nada.
Una prueba de navegador abre la página de invitación y comprueba que el enlace está ausente del documento. No es un comentario en el código: es un candado, y pone la suite en rojo.
Un certificado vale exactamente tanto como la dificultad de cambiar después lo que certifica.
01
El paquete de evidencia se serializa en la forma canónica de RFC 8785. Canónico significa determinista: el mismo contenido produce los mismos bytes, en el mismo orden, en cualquier máquina, mientras el estándar exista. Sin él, «recalcular el hash» sería una invitación en lugar de un procedimiento.
02
SHA-256 sobre esos bytes exactos es el hash del paquete. Cambia un solo carácter en cualquier parte del paquete y el hash será irreconociblemente distinto.
03
El hash se escribe en Polygon PoS en una transacción pública. Desde ese momento, el registro queda fuera de nuestro alcance: no podemos moverlo, modificarlo ni retirarlo, y nadie más puede hacerlo.
04
Enlace protegido, identidad y acuerdo, reunión, evidencia sellada, verificación. Ningún paso se omite, se reordena ni se ejecuta en paralelo con el siguiente: ni para que una pantalla vaya más rápido, ni en pruebas.
Después del anclaje, el paquete no se puede editar. Una corrección emite un nuevo certificado que declara ser una revisión del anterior, y ambos permanecen. No hay cambios silenciosos, por construcción en lugar de por política.
Cuando el testigo no pudo cubrir algo (una interrupción en la grabación, un participante que no pudo identificar), el certificado lo dice. Una brecha declarada sigue siendo evidencia; una oculta haría que todo el documento careciera de valor.
Mantenemos una auditoría que reconstruye el paquete de cada certificado desde la base de datos y vuelve a calcular su huella, usando las mismas funciones que lo produjeron. Si falla, hace fallar la ejecución en lugar de imprimir una advertencia, y un certificado que no se reproduce se reemite como una revisión, nunca se edita.
Todo lo anterior es nuestra descripción de nuestro propio sistema. Esta es la sección en la que dejas de necesitar creer nada de ello.
01
El archivo de evidencia contiene evidence.json ya en forma canónica, así que un SHA-256 simple de ese archivo es el hash del paquete. Compáralo con el hash impreso en el certificado: coinciden, o la evidencia no es lo que se certificó.
02
Abre la transacción de anclaje en un explorador de bloques público y mira el evento Anchored. El hash de ese evento debe ser el que acabas de calcular. Nada nuestro participa en este paso.
Paso uno, en tu propia máquina
shasum -a 256 evidence.jsonEl contrato de anclaje: Polygon PoS, cadena 137
0x5CceC6F5806b7C949eB90D61fB9D13Cb639AC203Fuente verificada en Polygonscan. Emite Anchored(hash, timestamp, sender) para una transacción dedicada; también define BatchAnchored(merkleRoot, …) para un lote diario, aún no en uso.
Abre el contrato en PolygonscanTambién mantenemos un verificador de línea de comandos que automatiza ambos pasos, incluidas las pruebas de Merkle para certificados agrupados. Tiene licencia MIT y aún no está publicado en un registro público, así que hoy no hay forma de que lo obtengas, y el procedimiento de esta página deliberadamente no usa nada nuestro en absoluto. Cuando se publique el verificador, esta página dirá dónde conseguirlo, y ni un día antes.
La verificación pública lee una vista dedicada de la base de datos que no contiene nombres, ni cargos, ni direcciones. Un tercero puede confirmar que un paquete existe y que su huella coincide, y no aprende nada sobre quién firmó qué.
Cómo funciona la verificación, paso a pasoUna página de seguridad que solo enumera fortalezas es un anuncio. Estos son los límites. Están aquí porque la alternativa es que los descubras más tarde.
No somos SOC 2 Type II. No somos ISO 27001. No cumplimos con HIPAA. Ningún auditor nos ha evaluado con respecto a ninguno de esos marcos, y no mostraremos una insignia que no poseemos. El RGPD es algo distinto: una ley que estamos obligados a cumplir, no un certificado que alguien otorgue, y por eso aquí encontrarás una página de protección de datos y ningún sello.
No puedes leer nuestro código del servidor, y no deberías tener que hacerlo. Lo que tiene que ser confiable es la capacidad de comprobar nuestra salida sin nosotros, y esa capacidad, hoy, se apoya en un estándar publicado y una blockchain pública, no en ninguna promesa nuestra.
Si no se puede acceder al contador mismo, la solicitud pasa y la anomalía se registra. Es deliberado: una caída del contador, de lo contrario, bloquearía a firmantes legítimos, y la defensa que realmente importa contra la adivinación de códigos, el bloqueo tras tres intentos, no depende de él.
Elimina tus datos personales, tus borradores y tu trabajo pendiente. Los certificados ya emitidos siguen siendo verificables, porque también son la evidencia de la otra parte: destruirlos a petición de un firmante anularía la razón de tenerlos.
Eliminamos los archivos. Durante hasta una hora, una caché de almacenamiento puede seguir sirviendo una copia, y las copias ya descargadas por personas que tenían derecho a ellas permanecen donde están. Lo que nunca se ve afectado es la prueba: el hash de audio, el paquete de evidencia y el anclaje quedan intactos, así que destruir una grabación nunca cambia lo que se certificó.
Leemos todos los informes y corregimos lo que es real, pero no gestionamos un programa remunerado y preferiríamos que no esperaras uno.
Preferiríamos que leyeras estos aquí antes que descubrirlos más tarde. Ninguno de ellos afecta a la parte que más importa, si un certificado se puede verificar sin nosotros, y esa parte está arriba, con los comandos para hacerlo.
Si has encontrado algo, queremos que nos lo cuentes tú antes de que nos lo cuente nadie más.