Saltar a contenido

Modulo de Privacidad, Cifrado y Consentimiento

Identificador: MTS-PRI-001 Version: 3.1.0 Fecha de ultima actualizacion: 2025-12-08 Estado: Aprobado Autor: SpecQueen Revisores: Director del Proyecto


1. Historial de Versiones

Version Fecha Autor Cambios
3.1.0 2025-12-08 SpecQueen Nueva seccion: Privacidad en Busquedas de Catalogos Publicos (INV-015, TECH-CS-001)
3.0.0 2025-12-05 SpecQueen OBS-068: Arquitectura E2E zero-knowledge, incorpora INV-008/009/010/011
2.1.0 2025-12-05 SpecQueen Iteracion 13: APIs de privacidad, retencion de logs
2.0.0 2025-12-01 SpecQueen ACL8-006 Politica unificada de retencion
1.0.0 2025-11-28 SpecQueen Version inicial

2. Proposito

Este modulo especifica la arquitectura de privacidad y seguridad de datos de MedTime V1.0, basada en tres principios fundamentales:

  1. Zero-Knowledge: MedTime no puede ver los datos del paciente
  2. Control del Paciente: El paciente decide quien accede a sus datos
  3. Cumplimiento Regulatorio: HIPAA, LGPD, LFPDPPP, NOM-024

Referencia: Este modulo implementa las investigaciones: - INV-008 - Blind Index y Split-Key - INV-009 - Consentimiento Explicito - INV-010 - Anonimizacion - INV-011 - Auditoria Zero-Knowledge


3. Principio Fundamental

"El paciente tiene control ABSOLUTO sobre quien accede a su informacion y para que proposito. Ni siquiera MedTime puede ver los datos."

ARQUITECTURA ZERO-KNOWLEDGE V1.0:

+------------------+     +------------------+     +------------------+
|   DISPOSITIVO    |     |  FIREBASE        |     |  MEDTIME         |
|   (Usuario)      |     |  (Almacenamiento)|     |  (Empresa)       |
+------------------+     +------------------+     +------------------+
|                  |     |                  |     |                  |
| Datos en claro   |     | Blobs cifrados   |     | Sin acceso a     |
| Cifrado local    |---->| Solo metadatos   |     | datos de usuario |
| Master Key local |     | No puede leer    |     |                  |
|                  |     |                  |     |                  |
+------------------+     +------------------+     +------------------+
       ^                                                   |
       |                                                   |
       +--------------- SIN ACCESO A DATOS ----------------+

GARANTIA: Solo el usuario con su Master Key puede descifrar sus datos

4. Arquitectura de Cifrado E2E

4.1. Capas de Cifrado

Capa Algoritmo Proposito Clave
1. Transporte TLS 1.3 Datos en transito Certificado servidor
2. Aplicacion AES-256-GCM Datos en reposo Master Key usuario
3. Campo AES-256-GCM + Blind Index Busqueda cifrada Derived Key

4.2. Jerarquia de Claves (INV-008)

JERARQUIA DE CLAVES:

                    +-------------------+
                    |    USER SECRET    |
                    | (PIN / Password)  |
                    +-------------------+
                            |
                    +-------v--------+
                    |   ARGON2ID     |
                    | (derivacion)   |
                    +-------+--------+
                            |
                    +-------v--------+
                    |   MASTER KEY   |
                    | (256 bits)     |
                    +-------+--------+
                            |
          +-----------------+-----------------+
          |                 |                 |
    +-----v-----+     +-----v-----+     +-----v-----+
    | DATA KEY  |     | INDEX KEY |     | SHARE KEY |
    | (cifrado) |     | (busqueda)|     | (compartir)|
    +-----+-----+     +-----+-----+     +-----+-----+
          |                 |                 |
    +-----v-----+     +-----v-----+     +-----v-----+
    |   Datos   |     |  Blind    |     |  Key      |
    | cifrados  |     |  Index    |     |  Escrow   |
    +-----------+     +-----------+     +-----------+

4.3. Master Key Management

Tier Generacion Almacenamiento Recuperacion
Free PIN + Argon2id Keychain/Keystore local Reinicio (pierde datos)
Pro Firebase + Argon2id Keychain + Cloud backup cifrado Via Firebase Auth
Perfect Firebase + MFA + Argon2id Keychain + Split-Key Recovery Key (24 palabras)

4.4. Split-Key para Recovery (Perfect - INV-008)

flowchart TD
    A[Master Key generada] --> B[Split con Shamir Secret Sharing]
    B --> C[Share 1: Almacenado en Keychain]
    B --> D[Share 2: Derivado de Recovery Key]
    B --> E[Share 3: Almacenado cifrado en Firebase]

    Note over C,E: Requiere 2 de 3 shares para reconstruir

    F[Usuario pierde dispositivo] --> G{Tiene Recovery Key?}
    G -->|Si| H[Share 2 + Share 3 = Master Key]
    G -->|No| I[Datos irrecuperables]

    H --> J[Usuario recupera acceso]

5. Blind Index para Busqueda Cifrada (INV-008)

5.1. Concepto

El Blind Index permite buscar en datos cifrados sin exponer el contenido.

BLIND INDEX:

Dato original: "Metformina 850mg"
                    |
                    v
+-----------------------------------+
|          HMAC-SHA256              |
|   (dato + INDEX_KEY + salt)       |
+-----------------------------------+
                    |
                    v
Blind Index: "a7f2b9c3d4e5..." (truncado)
                    |
                    v
+-----------------------------------+
|   Almacenado junto con blob       |
|   cifrado del dato original       |
+-----------------------------------+

BUSQUEDA:
Query: "Metformina"
  -> Generar blind index de query
  -> Buscar en indices
  -> Retornar blobs cifrados que coinciden
  -> Descifrar localmente

5.2. Campos con Blind Index

Campo Tiene Index Longitud Index Notas
Nombre medicamento Si 12 bytes Para busqueda
Nombre medico Si 12 bytes Para busqueda
Email usuario Si 16 bytes Para login
Nombre paciente No N/A Solo cifrado, sin busqueda
Dosis No N/A Solo cifrado
Notas No N/A Solo cifrado

5.3. Implementacion

{
  "medication_id": "med_abc123",
  "name_encrypted": "AES256:base64...",
  "name_blind_index": "a7f2b9c3d4e5f6a7",
  "dosage_encrypted": "AES256:base64...",
  "schedule_encrypted": "AES256:base64...",
  "created_at": "2025-12-05T10:30:00Z"
}

6. Consentimiento Explicito (INV-009)

6.1. Marco Regulatorio

Regulacion Requisito Implementacion MedTime
LFPDPPP (Mexico) Consentimiento expreso para datos sensibles Firma electronica
LGPD (Brasil) Consentimiento especifico y destacado Checkbox + scroll
HIPAA (USA) Autorizacion escrita para PHI Firma electronica
NOM-024-SSA3 Consentimiento informado Documento descargable

6.2. Tipos de Consentimiento

Tipo Obligatorio Revocable Consecuencia de Revocar
Terminos de Servicio Si No* No puede usar app
Aviso de Privacidad Si No* No puede usar app
Tratamiento Datos Salud Si Si Eliminacion de cuenta
Notificaciones Push No Si Sin alertas
Analisis de Uso No Si Sin mejoras personalizadas
Fotos de Tratamiento No Si No puede tomar fotos

6.3. Proceso de Consentimiento para Datos de Salud

sequenceDiagram
    participant U as Usuario
    participant A as App MedTime
    participant S as Sistema

    U->>A: Iniciar onboarding
    A->>U: Mostrar aviso de privacidad completo
    Note over A,U: Usuario debe hacer scroll hasta el final

    A->>U: Habilitar checkbox "He leido y acepto"
    U->>A: Marcar checkbox

    A->>U: Mostrar pantalla de firma electronica
    Note over A,U: Para datos de salud requiere firma adicional

    U->>A: Confirmar con PIN/biometria
    A->>A: Generar hash del documento
    A->>A: Crear firma electronica

    S->>S: Registrar consentimiento con metadata
    S->>U: Enviar copia por email (PDF)

    A->>U: Continuar con onboarding

6.4. Firma Electronica

Componente Contenido
Documento Hash SHA-256 del texto de consentimiento
Timestamp Fecha/hora ISO 8601 con timezone
Dispositivo device_id, modelo, OS version
IP Hash de IP (no IP en claro)
Metodo "PIN" o "biometric" o "password"
Version Version del documento aceptado
{
  "consent_id": "con_abc123",
  "type": "health_data",
  "document_version": "2.0.0",
  "document_hash": "sha256:a7f2b9c3...",
  "signature": {
    "method": "biometric",
    "timestamp": "2025-12-05T10:30:00Z",
    "device_id_hash": "sha256:device...",
    "ip_hash": "sha256:ip...",
    "signed_payload_hash": "sha256:payload..."
  },
  "revoked": false,
  "revoked_at": null
}

7. Anonimizacion de Datos (INV-010)

7.1. Tecnicas de Anonimizacion

Tecnica Uso en MedTime Datos Aplicables
Hashing Identificadores user_id, device_id
Truncamiento Timestamps Estadisticas agregadas
Generalizacion Ubicacion Solo pais/region
Supresion Nombres Exports anonimos

7.2. Datos Anonimizados para Analytics

{
  "event": "medication_taken",
  "timestamp_truncated": "2025-12-05T10:00:00Z",
  "user_id_hash": "sha256:abc123...",
  "medication_category": "antidiabetic",
  "adherence_rate_bucket": "80-90%",
  "region": "LATAM"
}

7.3. Exportacion Anonima (Investigacion)

Para contribuir a investigacion medica (con consentimiento adicional):

Dato Original Anonimizado
Nombre Juan Garcia [SUPRIMIDO]
Edad 45 40-50
Medicamento Metformina 850mg Antidiabetico oral
Dosis 2 veces al dia 2x
Adherencia 87.3% 80-90%
Region Ciudad de Mexico Mexico

8. Auditoria Zero-Knowledge (INV-011)

8.1. Principio

El sistema de auditoria registra QUIEN accedio CUANDO y A QUE, pero nunca el contenido de los datos.

AUDITORIA ZERO-KNOWLEDGE:

+--------------------------------------------------+
|              LOG DE AUDITORIA                     |
+--------------------------------------------------+
| timestamp: 2025-12-05T10:30:00Z                   |
| action: "VIEW_MEDICATION"                         |
| user_id_hash: "sha256:abc..."                     |
| resource_id_hash: "sha256:med..."                 |
| resource_type: "medication"                       |
| accessor_role: "CS" (Cuidador Solidario)          |
| permission_used: "ver_medicamentos"               |
| ip_hash: "sha256:ip..."                           |
| device_id_hash: "sha256:device..."                |
+--------------------------------------------------+
|                                                   |
| NOTA: No contiene nombre del medicamento,         |
|       dosis, ni ningun dato de salud en claro    |
+--------------------------------------------------+

8.2. Eventos Auditados

Categoria Eventos Retencion
Autenticacion Login, logout, MFA, cambio password 90 dias
Acceso datos Ver, editar, eliminar medicamentos 5 anos
Consentimiento Otorgar, revocar, actualizar 10 anos
Compartir Invitar CS, revocar acceso 5 anos
Exportacion Solicitar, descargar datos 5 anos
Administracion Cambio tier, eliminar cuenta 10 anos

8.3. Politica Unificada de Retencion

Tipo de Log Retencion Justificacion
Logs operacionales 90 dias Debugging, soporte
Logs de seguridad 2 anos Investigacion incidentes
Logs de consentimiento 10 anos Cumplimiento legal
Logs de acceso PHI 5 anos HIPAA requirement
Logs de transacciones 7 anos Cumplimiento fiscal

8.4. Estructura de Log de Auditoria

{
  "log_id": "log_abc123",
  "timestamp": "2025-12-05T10:30:00.123Z",
  "event_type": "ACCESS_PHI",
  "action": "VIEW_MEDICATION",
  "actor": {
    "user_id_hash": "sha256:actor...",
    "role": "CS",
    "session_id_hash": "sha256:session..."
  },
  "target": {
    "resource_type": "medication",
    "resource_id_hash": "sha256:med...",
    "owner_id_hash": "sha256:owner..."
  },
  "context": {
    "ip_hash": "sha256:ip...",
    "device_id_hash": "sha256:device...",
    "app_version": "1.0.0",
    "platform": "iOS"
  },
  "authorization": {
    "permission": "ver_medicamentos",
    "granted_at": "2025-11-01T00:00:00Z"
  },
  "result": "SUCCESS"
}

9. Privacidad en Busquedas de Catalogos Publicos

9.1. Diferencia con Zero-Knowledge

IMPORTANTE: La arquitectura Zero-Knowledge de MedTime protege losdatos del usuario(medicamentos agregados, historial de tomas, recetas, etc.). Sin embargo, lasbusquedas en catalogos publicos operan de forma diferente.

Aspecto Datos del Usuario Busquedas en Catalogo
Arquitectura Zero-Knowledge E2E Cliente-Servidor tradicional
Cifrado AES-256-GCM local TLS 1.3 en transito
Servidor ve contenido NO - Solo blobs cifrados SI - Texto de busqueda
Justificacion Datos sensibles de salud Catalogo publico, no es PHI

9.2. Que Ve el Servidor en Busquedas

Cuando un usuario busca en el catalogo de medicamentos, el servidor recibe:

Dato Visible al Servidor Ejemplo
Texto de busqueda SI "metformina 850mg"
Timestamp SI 2025-12-08T10:30:00Z
Identidad del usuario NO user_id hasheado para rate-limiting
Medicamento seleccionado NO Seleccion ocurre localmente
Si agrego el medicamento NO Dato cifrado E2E
sequenceDiagram
    participant U as Usuario
    participant App as App MedTime
    participant S as Servidor

    U->>App: Escribe "metformina"
    App->>S: POST /api/v1/catalog/search
    Note over App,S: {query: "metformina", timestamp}
    Note over App,S: user_id hasheado (solo rate-limiting)

    S->>S: Buscar en catalogo
    S-->>App: Lista de resultados

    U->>App: Selecciona "Metformina 850mg"
    Note over App: Seleccion LOCAL - servidor no sabe

    U->>App: Agregar a mis medicamentos
    App->>App: Cifrar con Master Key
    App->>S: PUT /api/v1/medications (blob cifrado)
    Note over App,S: Servidor recibe blob opaco

9.3. Disclaimer de Privacidad Requerido (INV-015)

Referencia: INV-015 - Investigacion sobre privacidad en busquedas de catalogos

El sistema DEBE mostrar un disclaimer claro al usuario antes de realizar busquedas en el catalogo:

Momento Comportamiento
Primera busqueda manual Modal con disclaimer + opcion de activar automatica
Busqueda automatica habilitada Disclaimer aceptado previamente, busqueda directa
Busqueda manual posterior Texto informativo discreto en UI

Texto del Disclaimer:

+--------------------------------------------------+
| Aviso de Privacidad - Busqueda en Catalogo        |
+--------------------------------------------------+

Cuando buscas medicamentos en nuestro catalogo:

[Icono Check] Tu busqueda se envia a nuestros servidores
[Icono Check] NO sabemos quien eres (busqueda anonima)
[Icono Check] NO vemos que medicamento seleccionas
[Icono Check] NO vemos si lo agregas a tu tratamiento

Tus medicamentos y datos de salud siguen protegidos
con cifrado de extremo a extremo.

[ ] Activar busqueda automatica
    (No mostrar este aviso cada vez)

[Entendido, buscar]  [Cancelar]
+--------------------------------------------------+

9.4. Regla de 100 Registros - Privacidad por Volumen (TECH-CS-001)

Referencia: TECH-CS-001 seccion 3.2.3.1

Para proteger la privacidad adicional, el servidor implementa la Regla de 100 Registros:

Aspecto Implementacion
Resultados minimos Siempre retorna 100 registros (padding)
Ordenamiento Los mas relevantes primero, resto aleatorio
Proposito Observador no puede inferir interes especifico
Rate limiting Por IP hasheada, no por usuario
// Ejemplo de respuesta del servidor
{
  "results": [...], // Siempre 100 items
  "total_matches": 3,  // Coincidencias reales
  "padded": true,      // Indica que hay padding
  "relevance_cutoff": 3 // Primeros 3 son relevantes
}

Beneficio de Privacidad: Un observador de red que intercepte la respuesta no puede determinar si el usuario buscaba "Metformina" (3 resultados reales) o cualquiera de los otros 97 medicamentos en la respuesta.

Regla Descripcion
RN-PRI-011 Busquedas en catalogo publico NO estan cifradas E2E (solo TLS)
RN-PRI-012 Usuario debe aceptar disclaimer antes de primera busqueda
RN-PRI-013 Servidor no almacena historial de busquedas por usuario
RN-PRI-014 Rate limiting por IP hasheada, no por identidad
RN-PRI-015 Respuestas paddeadas a 100 registros minimo
RN-PRI-016 Seleccion de medicamento ocurre 100% localmente

10. Control de Acceso Compartido

10.1. Permisos Granulares para CS

Permiso Codigo Descripcion Requiere Consentimiento
Ver medicamentos ver_medicamentos Lista de medicamentos Si
Ver adherencia ver_adherencia Estadisticas de tomas Si
Registrar tomas registrar_tomas Confirmar en nombre del PI Si (adicional)
Recibir alertas recibir_alertas_tomas Notificacion de omision Si
Ver recetas ver_recetas Recetas digitalizadas Si (adicional)
Ver citas ver_citas Agenda medica Si (adicional)
Ver analisis ver_analisis Resultados de laboratorio Si (adicional)

10.2. Flujo de Compartir con CS

sequenceDiagram
    participant PI as Paciente (PI)
    participant A as App MedTime
    participant CS as Cuidador Solidario

    PI->>A: Ir a Mis Cuidadores > Invitar
    A->>PI: Mostrar formulario de invitacion
    PI->>A: Ingresar email/telefono del CS

    A->>PI: Seleccionar permisos a otorgar
    PI->>A: Selecciona: ver_medicamentos, ver_adherencia
    A->>PI: Mostrar consentimiento para compartir

    Note over A,PI: "Autorizas a [CS] a ver tus medicamentos y adherencia"

    PI->>A: Confirmar con PIN/biometria
    A->>A: Registrar consentimiento de compartir
    A->>CS: Enviar invitacion

    CS->>A: Acepta invitacion
    A->>A: Crear relacion PI-CS con permisos
    A->>PI: Notificar aceptacion

10.3. Revocacion de Acceso

Accion Efecto Inmediato Log
Revocar permiso individual CS pierde acceso a esa categoria Si
Revocar todos los permisos CS desvinculado completamente Si
PI elimina cuenta Todos los CS pierden acceso Si

11. Derechos del Titular (ARCO/LGPD)

11.1. Derecho de Acceso

Aspecto Implementacion
Solicitud Desde Centro de Privacidad
Tiempo respuesta Inmediato (descarga local)
Formato JSON, PDF, o CSV
Contenido Todos los datos del usuario

11.2. Derecho de Rectificacion

Dato Rectificable Metodo
Nombre Si Editar perfil
Email Si Verificacion requerida
Medicamentos Si Editar medicamento
Historial tomas No* Inmutable por diseno

*El historial de tomas es inmutable para garantizar integridad clinica

11.3. Derecho de Cancelacion/Eliminacion

flowchart TD
    A[Usuario solicita eliminacion] --> B[Mostrar advertencias]
    B --> C[Confirmar con PIN + texto SI ELIMINAR]
    C --> D{Tier del usuario?}

    D -->|Free| E[Eliminar datos locales inmediatamente]
    D -->|Pro/Perfect| F[Eliminar datos locales]

    F --> G[Marcar cuenta para eliminacion en cloud]
    G --> H[Periodo de gracia 30 dias]
    H --> I{Usuario cancela?}

    I -->|Si| J[Restaurar cuenta]
    I -->|No - 30 dias| K[Eliminacion permanente]

    E --> L[Cuenta eliminada]
    K --> L

    L --> M[Log de eliminacion retenido 10 anos]

11.4. Derecho de Oposicion

Tratamiento Oposicion Permitida Consecuencia
Datos de salud Si Eliminacion de cuenta
Analytics anonimizados Si Sin personalizacion
Notificaciones Si Sin alertas
Marketing Si Sin comunicaciones

12. Exportacion de Datos

12.1. Formatos Disponibles

Formato Contenido Uso
JSON Completo estructurado Portabilidad tecnica
PDF Legible para humanos Compartir con medico
CSV Tabular Analisis en Excel
FHIR HL7 FHIR R4 Interoperabilidad

12.2. Contenido de Exportacion

{
  "export_version": "1.0",
  "generated_at": "2025-12-05T10:30:00Z",
  "user": {
    "name": "Juan Garcia",
    "email": "juan@example.com",
    "role": "PI",
    "tier": "Pro",
    "created_at": "2025-01-15T00:00:00Z"
  },
  "medications": [...],
  "dose_history": [...],
  "prescriptions": [...],
  "health_events": [...],
  "appointments": [...],
  "caregivers": [...],
  "consents": [...],
  "audit_log_summary": {
    "total_logins": 245,
    "last_login": "2025-12-05T08:00:00Z",
    "data_accesses": 1847
  }
}

13. Consentimiento Adicional para Fotos de Tratamiento

13.1. Clarificacion (OBS-037)

Accion Requiere Consentimiento Adicional Motivo
Tomar foto de tratamiento No Es dato del propio usuario
Almacenar foto cifrada local No Datos propios, cifrados
Sincronizar foto cifrada a cloud No Cubierto por consentimiento general
Compartirfoto con cuidador Si Tercero accede a datos sensibles
Compartirfoto con profesional Si Tercero accede a datos sensibles

13.2. Flujo de Compartir Foto

sequenceDiagram
    participant PI as Paciente
    participant A as App MedTime
    participant CS as Cuidador

    PI->>A: Seleccionar foto de tratamiento
    A->>PI: Opciones: Ver, Eliminar, Compartir

    PI->>A: Compartir con CS
    A->>PI: Mostrar consentimiento adicional

    Note over A,PI: "Autorizas a [CS] a ver esta foto de tratamiento?"
    Note over A,PI: "Esta foto contiene informacion sensible de salud"

    PI->>A: Confirmar con PIN
    A->>A: Registrar consentimiento de compartir foto
    A->>A: Generar clave de acceso temporal

    A->>CS: Notificar foto disponible
    CS->>A: Solicitar acceso a foto
    A->>A: Verificar permiso
    A->>CS: Enviar foto cifrada + clave temporal

    Note over A,CS: Clave expira en 24 horas

14. Centro de Privacidad

14.1. Componentes

Seccion Funcionalidad
Mis Consentimientos Ver, descargar, revocar consentimientos
Mis Datos Exportar, ver historial de accesos
Quienes Acceden Lista de CS con permisos, revocar
Eliminar Cuenta Proceso de eliminacion con advertencias
Historial Log de accesos a mis datos

14.2. Interfaz de Centro de Privacidad

+--------------------------------------------------+
| CENTRO DE PRIVACIDAD                              |
+--------------------------------------------------+

+--------------------------------------------------+
| [Icono Documento]                                 |
| MIS CONSENTIMIENTOS                               |
| 5 consentimientos activos                         |
| [Ver todos >]                                     |
+--------------------------------------------------+

+--------------------------------------------------+
| [Icono Personas]                                  |
| QUIENES ACCEDEN A MIS DATOS                       |
| 2 cuidadores con acceso                           |
| [Gestionar >]                                     |
+--------------------------------------------------+

+--------------------------------------------------+
| [Icono Descargar]                                 |
| EXPORTAR MIS DATOS                                |
| Descarga en JSON, PDF o CSV                       |
| [Exportar >]                                      |
+--------------------------------------------------+

+--------------------------------------------------+
| [Icono Historial]                                 |
| HISTORIAL DE ACCESOS                              |
| Ultimos 30 dias                                   |
| [Ver historial >]                                 |
+--------------------------------------------------+

+--------------------------------------------------+
| [Icono Eliminar] ZONA DE PELIGRO                  |
| Eliminar mi cuenta                                |
| Esta accion es irreversible                       |
| [Eliminar cuenta]                                 |
+--------------------------------------------------+

15. Reglas de Negocio

Regla Descripcion
RN-PRI-001 Todo dato de salud se cifra antes de salir del dispositivo
RN-PRI-002 Master Key nunca se transmite ni se almacena en servidor
RN-PRI-003 Consentimiento de datos de salud requiere firma electronica
RN-PRI-004 Logs de auditoria nunca contienen datos en claro
RN-PRI-005 Revocar consentimiento de datos de salud elimina la cuenta
RN-PRI-006 Export incluye todos los datos del usuario
RN-PRI-007 Eliminacion de cuenta tiene periodo de gracia de 30 dias
RN-PRI-008 Compartir fotos requiere consentimiento adicional
RN-PRI-009 Acceso de CS se registra en log de auditoria
RN-PRI-010 Hash de IP se usa en lugar de IP en claro

16. Integracion con Otros Modulos

Modulo Integracion
MTS-AUTH-001 Master Key derivada de credenciales
MTS-BCK-001 Backup de datos cifrados
MTS-ONB-001 Flujo de consentimiento inicial
MTS-SEC-001 Algoritmos de cifrado

17. Criterios de Aceptacion

17.1. Cifrado

  • Datos se cifran localmente antes de enviar a Firebase
  • Blind Index permite buscar sin exponer datos
  • Master Key se almacena solo en Keychain/Keystore
  • Firebase solo almacena blobs opacos

17.2. Consentimiento

  • Firma electronica se genera para datos de salud
  • Consentimiento se puede revocar desde Centro de Privacidad
  • Copia PDF se envia por email

17.3. Auditoria

  • Todos los accesos a datos se registran
  • Logs no contienen datos en claro
  • Usuario puede ver historial de accesos

17.4. Derechos ARCO

  • Usuario puede exportar todos sus datos
  • Usuario puede eliminar su cuenta
  • Periodo de gracia de 30 dias funciona

18. Referencias


Documento generado por SpecQueen - "La privacidad no es una opcion, es un derecho. Esta especificacion lo garantiza."