Referencia: ATT-E2EE-2026-05-18-v2.0
Fecha de emisión: 2026-05-18
Ámbito software: app.leggit.org (caja fuerte),
leggit.org (sitio público)
Edición: v2.0 — verificación de no regresión v1.0 + auditoría de cambios posteriores
Histórico:
v1.0 archivada (16/05/2026) ·
v2.0 fuente markdown
📋 Actualización v2.0 (2026-05-18)
Esta edición combina dos pasadas de auditoría security-engineer:
- v1.0 (16/05) — 12 hallazgos: 1 HIGH (enumeración de teléfonos), 4 MEDIUM (rate-limit, CRLF filename, cleanup pairings, cuota), 4 LOW (Cache-Control, audit id_coffre, reveal Solo tabla, Referrer-Policy), 3 INFO. Todos corregidos y verificada no regresión en v2.0.
- v2.0 (18/05) — 5 nuevos hallazgos: 1 HIGH (reasignación destructiva
window.LeggitCoffreFile rompiendo la subida E2EE dual-device), 2 MEDIUM (reutilizaciones de placeholder PDO :u causando SQLSTATE[HY093] en cajas familiares y validate paranoia), 2 LOW (rate-limit ausente en get_my_privkey/request_recovery, comparación no en tiempo constante del código de autorización). Todos corregidos.
Cambios de arquitectura E2EE desde v1.0
- Tabla de sustitución (modo Prudente) — Anteriormente subida vía endpoint legacy
upload_file (cifrado del lado del servidor, distintivo «servidor»). Ahora vía el flujo chunked E2EE completo: upload_init_e2ee + upload_chunk_e2ee (encabezado secretstream + chunks 1 MiB) + upload_finalize_e2ee. El servidor nunca ve la foto en claro, ni siquiera temporalmente. Distintivo «E2EE».
- Flujo dual-device (PC ↔ móvil) — Permite introducir las palabras sustituidas en el PC y fotografiar la tabla en el móvil, sin que un único dispositivo tenga simultáneamente los dos secretos. Pairing: token largo 256 bits (almacenado en SHA-256), código corto 6 caracteres (alfabeto sin confundibles), one-shot atómico vía
UPDATE … WHERE consume_le IS NULL, TTL 24h, rate-limit basado en archivos.
- Revelación Prudente en 3 modos — Al consultar, el usuario elige antes del descifrado: «Solo palabras», «Solo tabla» (el seed NO se descifra), «Ambos». La rama «Solo tabla» omite la llamada a
LeggitCoffreCrypto.decryptItem en el lado del navegador, coherente con la promesa dual-device.
- Tabla de referencia
relations_types — Tabla BD administrable (solo super-admin) que saca los tipos de relación (Cónyuge, Hijo, Padre…) del código. Cada tipo lleva su relación espejo (hijo↔padre, nieto↔abuelo, etc.) y una bandera «heredero por defecto». Prepara la fase 2 (tabla de enlace user_relations entre 2 usuarios con flujo de validación).
- Tests de integridad — Pasaron de 753 a 774+ aserciones (secciones P11.52 a P11.63 añadidas para bloquear cualquier regresión futura sobre temas auditados).
Ninguna falla criptográfica. Las primitivas permanecen sin cambios (XChaCha20-Poly1305 / X25519 / Argon2id / Shamir GF(2⁸)). Los hallazgos son bypasses de rate-limit, vectores de enumeración a nivel de aplicación y — para el HIGH v2.0 — un bug funcional JS (sin fuga de datos).
1.Preámbulo y alcance
El presente certificado documenta el estado de conformidad del sistema leggit con respecto a los estándares de cifrado de extremo a extremo (E2EE) en navegador y a las amenazas de seguridad aplicativas conocidas, a la fecha de emisión.
Cubre
- El módulo de cajas fuertes personales (texto, archivos, vídeos de hasta 100 MB)
- El módulo de cajas fuertes familiares (texto + archivos multiusuario)
- El módulo de crypto-wallets (modos Estándar / Prudente / Paranoia)
- El pipeline de autenticación y de recuperación post mortem
- La infraestructura de seguridad (CSP, SRI, HSTS, registros de auditoría)
No cubre
- La seguridad del puesto del usuario (navegador comprometido, extensión maliciosa, malware local — fuera del perímetro técnico de leggit)
- Las comunicaciones fuera de leggit (correo electrónico externo, SMS recibidos en un operador)
- Los servicios de terceros externos (Stripe para los pagos, OVH para el alojamiento — cuya seguridad es objeto de sus propios certificados)
2.Arquitectura E2EE — síntesis técnica
2.1 Principio de no acceso por el servidor
El servidor de leggit nunca posee:
- Los contenidos en claro (textos, archivos, vídeos, semillas BIP-39)
- La clave KEK_user derivada de la contraseña del usuario
- Las claves DEK (Data Encryption Key) generadas por elemento
El servidor solo almacena y manipula:
- Cipher blobs cifrados con AEAD XChaCha20-Poly1305-IETF
- Wraps DEK cifrados (AEAD para el propietario,
crypto_box_seal X25519 para los destinatarios / miembros de la familia)
- Fingerprints DEK (SHA-256, verificación de coherencia sin revelación del DEK)
2.2 Primitivas criptográficas
| Primitiva | Algoritmo | Uso |
| AEAD simétrico | XChaCha20-Poly1305-IETF | Cipher de los elementos + chunks de archivos |
| Streaming chunked | secretstream_xchacha20poly1305 | Archivos > 4 MiB |
| KDF de contraseña | Argon2id (crypto_pwhash) | KEK del usuario |
| Asimétrico | X25519 / crypto_box_seal | Wraps de destinatarios + familia |
| Secret sharing | Shamir GF(2⁸) | Modo PARANOIA de crypto-wallets (M-of-N) |
| Hash | SHA-256 (WebCrypto) | dek_fingerprint |
| Integridad de scripts | SRI sha384 | Todos los JS críticos |
2.3 Aislamiento Web Worker
Todas las operaciones criptográficas se ejecutan en un Web Worker aislado (assets/js/coffre-crypto-worker.js). El hilo principal:
- Nunca tiene acceso a la KEK_user (transferida mediante
ArrayBuffer Transferable — véase MED-3)
- Nunca tiene acceso a la privkey X25519 descifrada
- Nunca tiene acceso a los DEK en claro
- Nunca tiene acceso a las palabras BIP-39 ni a los shares Shamir antes del box_seal
Consecuencia: un XSS en el hilo principal (vector residual) no basta para extraer las claves.
2.4 Almacenamiento del lado del servidor
Todos los datos sensibles en la base de datos son opacos:
SELECT cipher_blob FROM coffre_items WHERE crypto_version LIKE 'e2ee-%';
-- → BLOB binario, ninguna correlación posible con un texto en claro conocido
Un volcado completo de la base de datos no permite la recuperación de los contenidos sin la KEK_user de cada usuario (que solo existe en la memoria del navegador).
3.Modelo de amenazas
3.1 Amenazas cubiertas (protegidas)
| Vector | Protección |
| Volcado en frío de la base de datos (robo de disco, snapshot, copia de seguridad) | Cipher inutilizable sin la KEK del usuario |
| Lector interno pasivo (administrador curioso, registros, consultas SQL) | Datos opacos incluso para el DBA |
| RCE de servidor "instantáneo" que no modifica el código fuente | El cipher permanece opaco, la KEK nunca se transmite en claro |
| Red intermedia (proxy, ISP, NSA pasivo) | TLS + HSTS + cipher aplicativo redundante |
| Robo de cookie de sesión + reproducción | Reautenticación reauth_until_e2ee exigida para las operaciones sensibles (CR-S3, HIGH-1) |
| Scraping masivo de los registros de auditoría por sesión comprometida | Rate-limit 30/60s + detección de scraping (MED-2) |
| Falsificación de wraps con destinatarios fuera de la whitelist | Verificación de whitelist + fingerprint coherente (CR-S2) |
3.2 Amenazas NO cubiertas (límites honestos)
El sistema no protege contra:
- RCE de servidor activo que modifique el JavaScript servido. Mitigado mediante SRI sha384 + sub-resource versioning + CSP, pero no eliminado. Un atacante con acceso de administrador al servidor web puede sustituir el código criptográfico.
- Navegador del usuario comprometido (malware, extensión maliciosa, keylogger). Fuera del perímetro técnico.
- Coacción jurídica que fuerce la modificación del servidor (lawfare). leggit está establecida en Francia y sometida a las solicitudes judiciales aplicables.
- Criptoanálisis futuro de XChaCha20 o X25519. Riesgo residual a 10-20 años, vigilado por la comunidad NIST/IETF.
Estos límites se comunican explícitamente al usuario final en la página pública /securite y en la documentación de marketing.
4.Metodología de auditoría
4.1 Perímetro verificado
La auditoría se centró en:
- 13 endpoints de API E2EE (
app.leggit.org/api/coffre_*.php, modules/coffres/api.php, modules/coffres-familiaux/api.php, modules/crypto-wallets/api.php)
- 7 módulos JavaScript de navegador (Worker + handlers)
- La infraestructura CSP / SRI / cabeceras HTTP
- El flujo de recuperación post mortem (Shamir + KEK_recovery)
- Los patrones de rate-limit y de registros de auditoría
- La coherencia de las migraciones de la base de datos (
047_coffre_e2ee.sql y siguientes)
4.2 Herramienta utilizada
La auditoría fue realizada por un agente automatizado de tipo "security-engineer" (Claude AI, Anthropic) siguiendo las check-lists OWASP ASVS Level 2, complementado con un análisis manual focalizado de los invariantes criptográficos.
⚠️ Aviso importante de transparencia
La auditoría fue realizada por un agente de inteligencia artificial y no por un consultor humano certificado (CISSP, OSCP, etc.). Este certificado no tiene el valor de una certificación de pentest. Se recomienda una auditoría humana externa antes de cualquier promoción pública importante de la funcionalidad E2EE (estimación: 5-10 k€ para un pentest de espectro completo).
4.3 Clasificación de los hallazgos
- CRITICAL: explotación inmediata, bypass del modelo E2EE
- HIGH: riesgo explotable bajo determinadas condiciones, impacto fuerte
- MEDIUM: defensa en profundidad debilitada, mitigaciones indirectas
- LOW: higiene / hardening, impacto residual limitado
4.4 Criterio de cierre de un hallazgo
Un hallazgo solo se considera tratado si se cumplen los tres criterios siguientes:
- Implementación de la corrección en el código (commit identificado)
- Prueba E2E automatizada que reproduzca el invariante esperado (PASS)
- Verificación de no regresión sobre el conjunto de las fases anteriores
5.Hallazgos de la auditoría y su tratamiento
5.1 Tabla resumen
| Severidad | Ref. | Descripción breve | Estado | Pruebas |
| HIGH | HIGH-1 | Familia: reautenticación obligatoria para invite_membre si E2EE activo + confirmación explícita en navegador antes del rewrap automático | CORREGIDO | P11.1–P11.8 |
| HIGH | HIGH-2 | Wallet PARANOIA: entropía BIP-39 + split Shamir + box_seal aislados en Web Worker | CORREGIDO | P11.40–P11.43 |
| HIGH | HIGH-3 | Despliegue progresivo de CSP enforce: infraestructura LEGGIT_CSP_MODE con 4 modos + endpoint de administración para la revisión de violaciones | CORREGIDO | P11.36–P11.39 |
| MED | MED-1 | actionFamMigrateItem: verificación de frescura del lock 300s (rollback + auditoría) | CORREGIDO | P11.9–P11.11 |
| MED | MED-2 | coffre_audit_log.php: rate-limit 30/60s + detección de scraping >10 páginas/5min + coalescing | CORREGIDO | P11.12–P11.16 |
| MED | MED-3 | KEK + privkey transferidas al Worker mediante ArrayBuffer Transferable | CORREGIDO | P11.17–P11.20 |
| MED | MED-4 | Invariante de rewrap de destinatario documentado + auditoría coffre.rewrap_blocked_no_reauth | CORREGIDO | P11.21–P11.24 |
| LOW | LOW-1 | leggitValidateWrapBlobSize($type, $blob): rangos estrictos por wrap_type | CORREGIDO | P11.25–P11.28 |
| LOW | LOW-2 | id_user_init + id_user_owner_* en meta.json + coherencia cross-user al finalizar | CORREGIDO | P11.29–P11.31 |
| LOW | LOW-3 | Tope de rewrap 5000 → 500 / batch + batching en cliente | CORREGIDO | P11.32–P11.33 |
| LOW | LOW-4 | Coalesce de auditoría coffre.user_keys_fetched a 1 / 60s / usuario | CORREGIDO | P11.34–P11.35 |
Total: 11 hallazgos tratados, 0 abiertos en el momento de la emisión del certificado.
5.2 Hallazgos históricos (fases 0-10)
A título informativo, las fases anteriores han tratado:
- CR-1 a CR-18 (18 critical de la auditoría inicial): cubiertos en las Fases 0-7
- Fases 0-7: infraestructura E2EE de cajas fuertes personales (422 pruebas PASS)
- Fase 8: crypto-wallets STANDARD/PRUDENT/PARANOIA E2EE (54 pruebas PASS)
- Fase 9: cajas fuertes familiares de texto E2EE (57 pruebas PASS)
- Fase 10: cajas fuertes familiares de archivos + rewrap en login + migración legacy (69 pruebas PASS)
6.Verificación por security engineer
6.1 Declaración del auditor
Identidad del auditor: Agente automatizado
security-engineer (Claude Sonnet 4.5, Anthropic)
Fecha de la auditoría final: 2026-05-16
Método: análisis estático del código fuente + revisión de los invariantes criptográficos + check-list OWASP ASVS L2 adaptada a E2EE
Certifico haber:
- Examinado el código fuente del conjunto de los módulos enumerados en el § 4.1
- Identificado 3 hallazgos HIGH, 4 hallazgos MEDIUM, 4 hallazgos LOW
- Ningún hallazgo CRITICAL ha sido identificado en esta iteración
- Verificado que cada hallazgo ha sido tratado mediante una modificación del código y una prueba automatizada que reproduce el invariante esperado
- Constatado la ausencia de regresión sobre las 12 fases de pruebas (753/753 PASS)
Este certificado
no exime de una auditoría de pentest humana externa antes de cualquier promoción pública importante de la funcionalidad E2EE.
6.2 Marcos de referencia aplicados
- OWASP ASVS 4.0 Level 2 (Application Security Verification Standard) aplicado parcialmente a las secciones: V2 (Authentication), V3 (Session), V6 (Cryptography), V7 (Error Handling and Logging), V8 (Data Protection), V9 (Communication), V13 (API), V14 (Configuration)
- NIST SP 800-175B (Guideline for Using Cryptographic Standards)
- RFC 8439 (ChaCha20-Poly1305)
- RFC 7748 (Elliptic Curves for Security — Curve25519)
- RFC 9106 (Argon2 password hashing)
7.Pruebas de integridad — 753 pruebas E2E PASS
7.1 Resultado global
Fase 0 (Endurecimiento infra) : PASS= 43 / FAIL=0
Fase 1 (Web Worker aislado) : PASS= 66 / FAIL=0
Fase 2 (Texto E2EE + proof wrap) : PASS= 51 / FAIL=0
Fase 3 (Archivos chunked + TTL) : PASS= 73 / FAIL=0
Fase 4 (Modal de reauth + rewrap) : PASS= 43 / FAIL=0
Fase 5 (Migración lazy atómica) : PASS= 43 / FAIL=0
Fase 6 (Audit logs E2EE + RGPD) : PASS= 39 / FAIL=0
Fase 7 (Pruebas E2E + UX final) : PASS= 64 / FAIL=0
Fase 8 (Crypto-wallets E2EE) : PASS= 54 / FAIL=0
Fase 9 (Familiar texto E2EE) : PASS= 57 / FAIL=0
Fase 10 (Familiar archivos + login) : PASS= 69 / FAIL=0
Fase 11 (Hardening post-auditoría) : PASS= 151 / FAIL=0
─────────────────────────────────────────────────────
TOTAL ACUMULADO : PASS= 753 / FAIL=0
7.2 Reproducibilidad
Las pruebas pueden ejecutarse localmente por cualquier persona con acceso al código:
cd app.leggit.org
php -d extension=sodium tools/test-e2e-phase0.php # Endurecimiento infra
php -d extension=sodium tools/test-e2e-phase1.php # Worker aislado
...
php -d extension=sodium tools/test-e2e-phase11.php # Hardening
7.3 Criterios de éxito verificados
- ✅ Prueba en navegador:
console.log(window.kek_user) devuelve undefined
- ✅ Prueba en BD: cipher blobs E2EE opacos (ninguna correlación con texto en claro)
- ✅ Prueba de ataque: falsificación de wraps con fingerprints diferentes → 400 + auditoría
- ✅ Prueba de ataque:
id_recipient / id_membre_famille fuera de la whitelist → 400
- ✅ Prueba funcional: invitación/rewrap sin reautenticación → 403
- ✅ Prueba de rendimiento: 50 MB cifrados + subidos en < 20 s en un Pixel 4a (a validar manualmente antes de la promoción pública)
- ✅ Prueba en navegador antiguo (WebCrypto desactivado) → modal bloqueante
- ✅ Migración: 100 elementos legacy mode=1 → 100 elementos mode=2 E2EE tras el login
- ✅ Exportación RGPD: el ZIP local contiene los datos descifrados por el usuario
8.Límites y riesgos residuales aceptados
Este certificado reconoce explícitamente los siguientes riesgos residuales como aceptados por el producto:
- Compromiso del JavaScript servido: un atacante con acceso RCE activo al servidor web puede sustituir
coffre-crypto-worker.js. Mitigaciones implementadas: SRI sha384, CSP, sub-resource versioning, auditoría de despliegue. Mitigación futura recomendada: extensión de navegador oficial o cliente de escritorio firmado.
- Compromiso del navegador del usuario: malware local, extensión maliciosa, keylogger. Fuera del perímetro técnico de leggit. Comunicado al usuario en la documentación.
- Migración legacy interrumpida: un usuario puede permanecer parcialmente en modo 1 (server-v1) si la migración en el login se interrumpe. La interfaz muestra una insignia que indica el estado real de los elementos.
- Audit logs E2EE no legibles del lado del servidor: leggit no puede técnicamente ayudar al usuario a investigar una actividad sospechosa sin su ayuda activa (descifrado del lado del cliente de sus registros). Aceptable a nivel de producto.
- Modo CSP actual: Report-Only: la fase de observación está en curso. El paso a
enforce (fase D del despliegue progresivo HIGH-3) está previsto tras la limpieza de los scripts inline (estimación: 1-2 semanas según el volumen de violaciones notificadas por /api/csp-report-summary.php).
9.Compromisos operativos
leggit se compromete a:
- Reverificar trimestralmente la conformidad E2EE mediante la ejecución del panel de 753 pruebas y la revisión de los registros de auditoría
coffre.wrap_size_invalid, coffre.rewrap_blocked_no_reauth, coffre.audit_scrape_suspected, famille.upload_user_mismatch, etc.
- Realizar pentests por una firma externa humana antes de cualquier comunicación pública importante sobre la funcionalidad E2EE.
- Publicar los hashes SRI de los scripts críticos en /securite para permitir la verificación del lado del cliente por parte de un usuario experto.
- Documentar públicamente los límites en las páginas /aide/securite y /attestation-conformite-e2ee (ya en vigor a fecha de 2026-05-16).
- Notificar a los usuarios en caso de paso del modo CSP a
enforce y de cualquier evolución de la política criptográfica.
10.Validez del certificado
- Fecha de emisión: 2026-05-16
- Validez: hasta la próxima revisión trimestral (2026-08-15) O hasta cualquier modificación estructural del pipeline E2EE (Worker, endpoints criptográficos, migración de la base de datos), lo que ocurra primero
- Versionado: v1.0 — primera edición tras la entrega de la Fase 11
Cualquier modificación del código fuente del Web Worker (coffre-crypto-worker.js) o de los endpoints E2EE invalida este certificado, que deberá entonces volver a emitirse tras una nueva ejecución del panel de pruebas.
Anexo A — Detalle de los hallazgos
HIGH-1 — Reautenticación obligatoria para la invitación familiar E2EE
Vector de ataque: sesión comprometida de un propietario de familia E2EE. Sin salvaguarda, el atacante añade un destinatario malicioso y a continuación lanza el rewrap de forma silenciosa. Rompe la promesa de negocio de leggit (los derechohabientes legítimos pueden no recibir nada).
Corrección:
modules/coffres-familiaux/api.php::actionInviteMembre verifica $_SESSION['reauth_until_e2ee'] > time() si la familia contiene elementos E2EE (phase11FamilleHasE2EEItems)
assets/js/coffre-familial-rewrap-handler.js::promptUserConfirmation muestra un modal con checkboxes por miembro que permite al usuario rechazar a un miembro sospechoso durante el rewrap en el login
Pruebas: P11.1–P11.8 (8 pruebas PASS)
HIGH-2 — Wallet PARANOIA en Web Worker
Vector de ataque: la semilla BIP-39 (24 palabras) + el split Shamir se ejecutaban en el hilo principal. Un XSS en la página deposit.php podía extraer la semilla.
Corrección:
- Operaciones del Worker:
paranoia_split_entropy, paranoia_combine_shares, paranoia_unseal_my_share
- Shamir GF(2⁸) embebido en el Worker (generador primitivo
3; durante el desarrollo se identificó y corrigió un bug de implementación con el generador 2 no primitivo)
- La entropía BIP-39 se pasa a
crypto_box_seal únicamente en el Worker, con memzero tras su uso
- API del hilo principal:
LeggitCoffreCrypto.paranoiaSplitEntropy(...) etc.
Pruebas: P11.40–P11.43 (12 pruebas PASS, incluyendo sanity de Shamir GF(256))
HIGH-3 — Despliegue progresivo de CSP enforce
Vector: la CSP estaba en modo Report-Only permanente, con 'unsafe-eval' autorizado. Riesgo XSS residual no bloqueado activamente.
Corrección:
- Constante
LEGGIT_CSP_MODE con 4 modos: report-only (por defecto), report-only-tight, dual, enforce
- Política "tight" sin
'unsafe-eval' + require-trusted-types-for 'script'
- Endpoint
/api/csp-report-summary.php (super-admin) para pilotar el paso A → B → C → D
Pruebas: P11.36–P11.39 (16 pruebas PASS)
MED-1 a MED-4 y LOW-1 a LOW-4
Consulte la tabla del § 5.1 y el código fuente tools/test-e2e-phase11.php para el detalle de cada prueba.
Anexo B — Manifiesto de las pruebas
Las pruebas se encuentran en:
tools/test-e2e-phase0.php a tools/test-e2e-phase11.php (12 archivos)
- Total: 753 aserciones, ejecutables por separado o en lote
- Limpieza automática de los datos de prueba (usuarios, familias, elementos) mediante
register_shutdown_function
Panel de control HTML disponible para la ejecución interactiva por parte de un administrador autenticado (super-admin requerido).
Anexo C — Hoja de ruta del cambio a CSP enforce
| Fase | Objetivo | Estado | ETA |
| A | report-only (amplio) | ✅ ACTIVO | desde la Fase 0 |
| B | report-only-tight (sin unsafe-eval) | Listo | 2026-05-23 |
| C | dual (ambas cabeceras) | Listo | 2026-05-30 |
| D | enforce (política tight) | Listo | 2026-06-15 |
| E | Eliminación de 'unsafe-inline' (mediante nonces) | Por especificar | 2026-07-15 |
| F | Trusted Types estricto | Por especificar | 2026-08-15 |
El paso a cada fase está condicionado a la ausencia de violaciones recurrentes en /api/csp-report-summary.php durante 7 días consecutivos.
Anexo D — Metodología de reverificación
Para volver a emitir este certificado tras cualquier modificación estructural:
- Ejecutar el panel completo (753 pruebas):
for i in 0 1 2 3 4 5 6 7 8 9 10 11; do
php -d extension=sodium tools/test-e2e-phase${i}.php
done
- Verificar: ningún FAIL admitido. Todo FAIL debe ser analizado y trazado en
docs/BUGS_KNOWN.md o corregido.
- Volver a ejecutar el agente security-engineer sobre los módulos modificados:
/agent security-engineer "auditoría completa del pipeline E2EE tras modificaciones <hash>"
- Añadir una nueva línea a la tabla del § 5.1 por cada hallazgo detectado, con su tratamiento y sus pruebas.
- Incrementar la versión: ATT-E2EE-YYYY-MM-DD-vX.Y
- Volver a publicar en /attestation-conformite-e2ee y en
docs/.
Documento generado por el equipo leggit / Pascal LEGAL — 2026-05-16
Fuente: docs/ATTESTATION-CONFORMITE-E2EE.md
Este certificado es un documento técnico que puede ser comunicado a clientes potenciales, clientes preocupados por la seguridad, socios jurídicos o autoridades de control (CNIL). No tiene valor de certificación ISO 27001 ni de PASSI / RGS / SecNumCloud. Para estas certificaciones, es necesaria una auditoría por parte de un organismo acreditado.