Seguridad
Cómo cuidamos cada firma.
Aquí está lo que Fyrelis hace de verdad para saber quién firmó, probar que el documento no cambió y proteger los datos de quien firma. Y también lo que todavía no hace.
Quién firma
Antes de ver el documento, cada firmante demuestra que tiene en sus manos el correo o el celular al que se lo enviaron.
- Un código de un solo usoSeis dígitos generados al azar con el generador criptográfico del servidor. Vence a los 5 minutos, admite 5 intentos, hay que esperar 60 segundos para pedir otro y, una vez usado, no vuelve a servir.
- Nunca lo guardamos en claroDel código solo queda una huella SHA-256 mezclada con un secreto del servidor, ni siquiera en la bitácora. La constancia muestra un trozo de esa huella, nunca el código.
- Por correo o por SMSEl código llega por correo o por SMS, y por WhatsApp si quien envía lo activa. La constancia dice por qué canal salió el código que se verificó, no el que dijera el navegador.
- El correo y el celular quedan fijosSe congelan al crear la solicitud y nada los cambia después. Si se pudieran cambiar, el código no probaría nada.
- Cédula, si quien envía la pideCada solicitud puede exigir que el firmante escriba su número de cédula y que coincida con el registrado. Sin el código, y sin la cédula cuando se pide, el documento no se abre.
- Un enlace que no se adivinaCada firmante recibe su propio enlace: 32 bytes aleatorios que guardamos solo como HMAC. Vence (a los 7 días si quien envía no elige otra fecha) y al reenviarlo cambia, así que el anterior deja de servir.
Lo que prueba un código, y lo que no
Un código prueba que la persona controla ese correo o esa línea celular; no es un documento de identidad. Por eso no confiamos en una sola prueba: guardamos el conjunto, es decir, el canal fijo, la cédula cuando se pide, la huella del código usado, la IP, el dispositivo y la hora de cada paso.
El documento no cambia
Cada PDF queda atado a una huella SHA-256: un resumen de 64 caracteres que cambia por completo si se toca una sola coma del archivo.
- Dos huellas por documentoRegistramos la huella del PDF original al subirlo y la del PDF sellado al terminar. También la de cada firma dibujada y de cada foto, cuando se piden.
- El texto no se tocaSobre el original no se reescribe nada: se le agrega una estampa al pie de cada página, la firma sobre su raya cuando el documento la marca, y al final el anexo probatorio.
- El anexo probatorioRecoge quién envió, quién firmó, el estado, la huella del documento y el historial de cada firmante. Cada hoja lleva un sello con los 8 primeros caracteres de la huella del original y su número de página, para que una hoja suelta diga de dónde salió.

Cómo se prueba la integridad hoy
El PDF todavía no lleva dentro una firma criptográfica de las que muestra un lector de PDF (PAdES). La integridad se prueba comparando la huella del archivo con la que registramos al sellarlo, más la bitácora de lo que pasó. Cualquiera puede hacer esa comparación en fyrelis.com/verificar.
La evidencia
Cada paso de una firma deja una fila en la bitácora de la solicitud, y esa bitácora va impresa en el anexo.
- La hora de cada pasoEnvío, entrega, apertura del enlace, código enviado o fallido, aceptación, documento visto, firma, rechazo, recordatorios y reenvíos. En hora de Colombia y con la zona escrita.
- Desde qué conexión y qué equipoLa dirección IP y el dispositivo y navegador de cada evento, y el canal del código.
- Lo que aceptó y cómo firmóEl texto que el firmante aceptó y la imagen de su firma. Si quien envía lo pide, también la foto del rostro y la del documento de identidad.
- Solo se escribeLa bitácora no se edita ni se borra. Y la firma se guarda antes de anotarla: la bitácora nunca dice que alguien firmó si la firma no quedó guardada.
Sin geolocalización
No pedimos la ubicación del teléfono: la página de firma la tiene bloqueada. Cuando el anexo responde «desde dónde», lo que muestra es la dirección IP.
Verificación pública
Quien recibe un documento firmado puede comprobarlo sin cuenta y sin pedirnos nada: un banco, un juzgado o la otra parte.
- El archivo no sale de tu equipoTu navegador calcula la huella SHA-256 del PDF y solo envía esos 64 caracteres. Si coincide con una registrada, decimos de qué solicitud es, quién firmó y cuándo.
- Lo justo, nada másLa respuesta trae el asunto, el archivo, los nombres de los firmantes y las fechas. Nunca cédulas, teléfonos ni correos: quien tiene el documento ya los ve en el anexo, y quien no lo tiene no debería obtenerlos por aquí.
- También por API
GET https://app.fyrelis.com/api/v1/verificar?hash=…responde sin llave, con un tope de 60 consultas cada 5 minutos por dirección IP para frenar los barridos automáticos.
Cuentas, llaves y webhooks
Lo que protege el panel de tu empresa y la conexión de tu sistema con Fyrelis.
- Contraseñas con scryptSe guardan derivadas con scrypt y una sal aleatoria de 16 bytes, nunca en claro. La sesión dura 12 horas en una cookie firmada, solo para el servidor (httpOnly), segura y SameSite.
- Cada empresa ve lo suyoUna cuenta solo ve las solicitudes, documentos y datos de su propia empresa.
- Llaves de APIEmpiezan por fyr_, se muestran una sola vez y se guardan solo como HMAC-SHA256: si se pierden, no hay forma de recuperarlas, se rotan. Al rotarlas, la anterior deja de funcionar.
- Webhooks firmadosCada aviso va firmado con HMAC-SHA256 en la cabecera
x-fyrelis-firma. Si tu sistema no contesta, lo reintentamos 6 veces: a 1, 5, 15 y 60 minutos, a las 6 y a las 24 horas. No seguimos redirecciones. - Topes contra el abusoHay límites por dirección IP para pedir códigos, entrar al panel, registrar cuentas y verificar documentos. Al panel, 10 intentos fallidos cada 15 minutos.
Transporte e infraestructura
Todo viaja cifrado y nada queda expuesto por una dirección que alguien pueda adivinar.
- HTTPS en todoCertificados de Let's Encrypt y HSTS de dos años: el navegador no vuelve a abrir Fyrelis sin cifrar.
- Cabeceras que cierran puertasUna política de contenido (CSP) que limita de dónde carga cada página, y la app no se puede incrustar en otro sitio, así que nadie puede montar un botón de firmar falso encima.
- Archivos sin dirección públicaLos PDF y las evidencias no tienen una URL abierta: se entregan por la API, que primero comprueba quién pide, o por el enlace del firmante, que vence.
- Los enlaces de firma no quedan en registrosEl servidor web no anota las visitas a los enlaces de firma, para que el enlace no quede escrito en ningún archivo de registro.
- Servidor propioLa aplicación corre en un servidor propio en Amazon Web Services, con la base de datos en MongoDB.
Conservación y datos personales
Guardamos lo que hace falta para probar una firma, el tiempo que hace falta, y lo tratamos conforme a la Ley 1581 de 2012.
- Diez añosNuestras políticas comprometen a conservar los documentos, las constancias y la bitácora por al menos 10 años (Ley 962 de 2005, artículo 28), que es lo que puede tardar en hacer falta una prueba.
- Lo mínimo hacia fueraLa verificación pública no muestra cédulas, teléfonos ni correos. Esos datos solo los ve la empresa que envió el documento y quien lo tiene con su anexo.
- Tus derechos sobre tus datosPara conocer, actualizar o rectificar tus datos, escríbenos a soporte@fyrelis.com. Cómo los tratamos está en nuestras políticas.
Lo que todavía no tenemos
Preferimos que lo sepas por nosotros. Ninguna de estas cosas está hoy en Fyrelis, y no te vamos a prometer fechas que no tenemos.
- Certificación ISO 27001No tenemos un sistema de gestión de seguridad certificado por un tercero.
- Informe SOC 2Ningún auditor externo ha emitido un informe sobre nuestros controles.
- Firma PAdES dentro del PDFEl documento sellado no lleva una firma criptográfica que valide un lector de PDF. La integridad se prueba con la huella registrada y la bitácora.
- Estampa de tiempo de una entidad de certificaciónLa hora de cada evento la pone nuestro servidor, no una entidad de certificación digital acreditada.
- Firma digital con certificadoFyrelis no es una entidad de certificación acreditada ante ONAC. Hacemos firma electrónica, no firma digital.
- Cotejo de identidad contra la RegistraduríaSi se pide la cédula, comprobamos que coincida con la registrada en la solicitud, no contra una base oficial.
Si tu caso exige alguna de estas cosas, por ejemplo un acto que la ley pide con firma digital, Fyrelis no es la herramienta. Te lo explicamos en validez legal.
Reportar una vulnerabilidad
Si encontraste un fallo de seguridad en fyrelis.com o en app.fyrelis.com, queremos saberlo antes que nadie.
Escríbenos a soporte@fyrelis.com con el asunto «Seguridad». Cuéntanos qué encontraste, cómo reproducirlo y qué impacto crees que tiene. Si hace falta, te pedimos más detalles por el mismo correo.
Lo que te pedimos
- No accedas a datos de otras personas más allá de lo mínimo para mostrar el fallo, y no los guardes.
- No interrumpas el servicio ni hagas pruebas de carga o de denegación de servicio.
- No uses ingeniería social con nuestro equipo ni con nuestros clientes.
- Danos un tiempo razonable para corregirlo antes de hacerlo público.
Lo que nos comprometemos a hacer
- Leer tu reporte y contestarte.
- Contarte qué hicimos con él.
- No emprender acciones legales contra quien investigue de buena fe y siga estas pautas.
- Darte el crédito, si lo quieres, cuando el fallo esté corregido.
No tenemos un programa de recompensas. El contacto también está publicado en /.well-known/security.txt, el formato estándar (RFC 9116) que buscan los investigadores.