Investigacion: HIPAA Security Rule - Controles Tecnicos Detallados
Identificador: MTS-INV-005
Version: 1.0.0
Fecha: 2025-12-02
Autor: SpecQueen
Solicitado en: GAP-KB-005 (Round 10)
Estado: Completado
Resumen Ejecutivo
Documentacion detallada de los controles tecnicos requeridos por la HIPAA Security Rule (45 CFR Part 164) para la proteccion de ePHI (electronic Protected Health Information) en MedTime.
Estructura de la Security Rule
| Categoria |
Referencia |
Controles |
| Administrative |
164.308 |
9 estandares |
| Physical |
164.310 |
4 estandares |
| Technical |
164.312 |
5 estandares |
| Policies |
164.316 |
2 estandares |
1. Salvaguardas Tecnicas (164.312)
1.1 Control de Acceso (164.312(a)(1))
Requerimiento: Implementar politicas y procedimientos tecnicos para sistemas electronicos que mantienen ePHI, permitiendo acceso solo a personas o programas autorizados.
Especificaciones de Implementacion
| Especificacion |
Tipo |
Implementacion MedTime |
| Unique User ID |
Requerido |
UUID por usuario, nunca reutilizado |
| Emergency Access |
Requerido |
Procedimiento documentado, logs especiales |
| Automatic Logoff |
Direccionable |
15 min inactividad (configurable 5-30) |
| Encryption/Decryption |
Direccionable |
AES-256 en reposo, campo a campo para PHI |
Controles Especificos
Access Control Implementation:
authentication:
primary: email/telefono + password
mfa: TOTP o biometrico (obligatorio para PHI)
session_timeout: 15_minutes
max_failed_attempts: 5
lockout_duration: 30_minutes
authorization:
model: RBAC (Role-Based Access Control)
roles:
- paciente_autonomo
- paciente_dependiente
- cuidador_solidario
- cuidador_responsable
- profesional_salud
- admin_sistema
permission_granularity: campo
emergency_access:
activation: manual por admin autorizado
logging: detallado + alertas inmediatas
duration: maximo 24 horas
review: obligatoria post-acceso
1.2 Controles de Auditoria (164.312(b))
Requerimiento: Implementar mecanismos de hardware, software y procedimentales que registren y examinen actividad en sistemas con ePHI.
Eventos a Registrar
| Categoria |
Eventos |
Retencion |
| Autenticacion |
Login, logout, MFA, fallos |
6 anos |
| Acceso a PHI |
Lectura, escritura, eliminacion |
6 anos |
| Modificaciones |
Cambios configuracion, permisos |
6 anos |
| Sistema |
Errores, alertas, mantenimiento |
2 anos |
Estructura del Audit Log
{
"timestamp": "2025-12-02T10:30:00.000Z",
"event_id": "uuid-v4",
"event_type": "PHI_ACCESS",
"event_subtype": "READ",
"actor": {
"user_id": "uuid-usuario",
"role": "cuidador_responsable",
"session_id": "uuid-sesion"
},
"resource": {
"type": "medication",
"id": "uuid-medicamento",
"patient_id": "uuid-paciente"
},
"context": {
"ip_address_hash": "sha256...",
"device_fingerprint": "sha256...",
"geo_country": "MX"
},
"result": "SUCCESS",
"metadata": {
"fields_accessed": ["nombre", "dosis", "frecuencia"]
}
}
Almacenamiento de Logs
| Aspecto |
Especificacion |
| Formato |
JSON estructurado |
| Inmutabilidad |
Append-only, firma criptografica |
| Cifrado |
AES-256 |
| Backup |
Diario, 3 ubicaciones |
| Busqueda |
Indexado para consultas rapidas |
1.3 Integridad (164.312(c)(1))
Requerimiento: Implementar politicas y procedimientos para proteger ePHI de alteracion o destruccion impropia.
Mecanismos de Integridad
| Mecanismo |
Implementacion |
Verificacion |
| Checksums |
SHA-256 por registro |
En cada lectura |
| Firmas digitales |
Ed25519 para documentos |
Al crear/modificar |
| Versionado |
Historial completo |
Auditable |
| Validacion entrada |
Schema validation |
Antes de guardar |
Proteccion en Transito
Data Integrity in Transit:
protocol: TLS 1.3
cipher_suites:
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
certificate_pinning: true
hsts: true
hsts_max_age: 31536000
Message Integrity:
api_requests:
- HMAC-SHA256 signature header
- Timestamp validation (+/- 5 min)
- Nonce para replay protection
1.4 Autenticacion de Persona/Entidad (164.312(d))
Requerimiento: Implementar procedimientos para verificar que una persona o entidad buscando acceso a ePHI es quien dice ser.
Niveles de Autenticacion
| Nivel |
Metodo |
Uso |
| Basico |
Email/telefono + password |
Acceso general |
| Elevado |
+ MFA (TOTP/SMS/Email) |
Acceso a PHI |
| Critico |
+ Biometrico |
Operaciones sensibles |
Requisitos de Password
Password Policy:
min_length: 12
max_length: 128
require_uppercase: true
require_lowercase: true
require_number: true
require_special: true
prohibit_common: true # Lista de passwords comunes
prohibit_personal: true # No nombre, email, etc.
history: 12 # No repetir ultimas 12
expiration: never # NIST 800-63B
compromise_check: true # HaveIBeenPwned API
MFA Implementation
| Metodo |
Prioridad |
Notas |
| TOTP (Authenticator) |
1 |
Preferido |
| Biometrico (Face/Touch) |
2 |
Conveniente |
| SMS OTP |
3 |
Fallback (menos seguro) |
| Email OTP |
4 |
Ultimo recurso |
1.5 Seguridad de Transmision (164.312(e)(1))
Requerimiento: Implementar medidas de seguridad tecnica para prevenir acceso no autorizado a ePHI transmitida sobre redes electronicas.
Cifrado en Transito
| Componente |
Protocolo |
Notas |
| API Rest |
TLS 1.3 |
Certificate pinning |
| WebSocket |
WSS (TLS) |
Para tiempo real |
| Push Notifications |
TLS |
Contenido cifrado E2E |
| Sync |
TLS + payload cifrado |
Doble capa |
Network Security
Network Controls:
firewall:
default: deny
allowed_ports: [443]
rate_limiting: true
ddos_protection:
provider: cloudflare/aws_shield
intrusion_detection:
enabled: true
alerts: immediate
vpn:
admin_access: required
protocol: WireGuard
2. Salvaguardas Fisicas (164.310) - Relevantes para App
2.1 Controles de Dispositivo (164.310(d)(1))
Requerimiento: Implementar politicas y procedimientos para disponer de ePHI y hardware/medios electronicos donde se almacena.
Implementacion en App Movil
| Control |
Implementacion |
| Borrado remoto |
Comando desde servidor |
| Borrado en desinstalacion |
Limpiar KeyChain/KeyStore |
| Cifrado local |
Hardware-backed encryption |
| Jailbreak detection |
Bloquear en dispositivos comprometidos |
Device Security:
encryption:
ios: Data Protection (NSFileProtectionComplete)
android: Encrypted Shared Preferences + Keystore
secure_storage:
keys: Hardware Security Module (if available)
fallback: Software keystore con password
app_integrity:
ios: DeviceCheck + App Attest
android: Play Integrity API
on_uninstall:
action: clear all local data
keychain_ios: delete items
keystore_android: delete keys
3. Salvaguardas Administrativas (164.308) - Tecnicas
Matriz de Acceso por Rol
| Rol |
Medicamentos |
Adherencia |
Alertas |
Exportar |
Admin |
| Paciente Autonomo |
CRUD |
R |
CRUD |
R |
- |
| Paciente Dependiente |
R |
R |
R |
- |
- |
| Cuidador Solidario |
R* |
R* |
R* |
- |
- |
| Cuidador Responsable |
CRUD |
R |
CRUD |
R |
- |
| Profesional Salud |
R** |
R** |
R** |
R** |
- |
| Admin Sistema |
- |
- |
- |
- |
CRUD |
Segun permisos otorgados
*Solo pacientes con consentimiento
3.2 Proteccion contra Software Malicioso (164.308(a)(5)(ii)(B))
Malware Protection:
code_signing:
ios: Apple certificate required
android: Play App Signing
obfuscation:
enabled: true
tool: ProGuard/R8 (Android), bitcode (iOS)
tampering_detection:
checksum_verification: true
debugger_detection: true
emulator_detection: true
secure_dependencies:
scan: automated (Snyk/Dependabot)
update_policy: critical within 24h
4. Requisitos de Cifrado Detallados
4.1 Algoritmos Aprobados
| Uso |
Algoritmo |
Key Size |
Notas |
| Simetrico (datos) |
AES-256-GCM |
256 bits |
Preferido |
| Asimetrico (claves) |
RSA-4096 o Ed25519 |
4096/256 bits |
Key exchange |
| Hash |
SHA-256/SHA-3 |
256 bits |
Integridad |
| KDF |
Argon2id |
- |
Password hashing |
| MAC |
HMAC-SHA256 |
256 bits |
Autenticacion |
4.2 Gestion de Claves
Key Management:
master_key:
storage: HSM (Hardware Security Module)
rotation: annual
backup: encrypted, geographically distributed
data_encryption_keys:
derivation: from master using HKDF
per_user: true
rotation: on password change
session_keys:
algorithm: ECDHE
lifetime: session duration
key_backup:
method: encrypted export to user
recovery: via verified identity
4.3 Cifrado Campo a Campo
| Campo |
Cifrado |
Busqueda |
| nombre |
AES-256 |
Tokenizado |
| fecha_nacimiento |
AES-256 |
Rango (ciphertext) |
| medicamentos |
AES-256 |
No busqueda directa |
| notas_medicas |
AES-256 |
Full-text index cifrado |
5. Checklist de Compliance
5.1 Controles Tecnicos
| Control |
Referencia |
Estado MedTime |
| Unique User ID |
164.312(a)(2)(i) |
Implementado |
| Emergency Access |
164.312(a)(2)(ii) |
Documentado |
| Automatic Logoff |
164.312(a)(2)(iii) |
15 min default |
| Encryption |
164.312(a)(2)(iv) |
AES-256 |
| Audit Controls |
164.312(b) |
Implementado |
| Integrity |
164.312(c)(1) |
SHA-256 checksums |
| Authentication |
164.312(d) |
MFA obligatorio |
| Transmission Security |
164.312(e)(1) |
TLS 1.3 |
5.2 Documentacion Requerida
| Documento |
Estado |
| Politica de Seguridad |
Requerido |
| Procedimiento de Respuesta a Incidentes |
Requerido |
| Plan de Contingencia |
Requerido |
| Analisis de Riesgos |
Requerido (anual) |
| Registro de Capacitacion |
N/A (usuarios finales) |
6. Recomendaciones de Implementacion
6.1 Prioridad Alta (Pre-MVP)
| Implementacion |
Complejidad |
Impacto |
| Cifrado AES-256 en reposo |
Media |
Critico |
| TLS 1.3 en transito |
Baja |
Critico |
| Audit logging |
Media |
Critico |
| MFA para acceso PHI |
Media |
Critico |
| Implementacion |
Complejidad |
Impacto |
| Rate limiting |
Baja |
Alto |
| Jailbreak detection |
Media |
Alto |
| Intrusion detection |
Alta |
Alto |
6.3 Prioridad Baja (Post-MVP)
| Implementacion |
Complejidad |
Impacto |
| HSM para claves master |
Alta |
Medio |
| Zero-knowledge encryption |
Alta |
Medio |
Referencias
Documento generado por SpecQueen - La especificacion funcional ES el sistema.