AES-256-GCM. Un nonce por secreto. Un salt por secreto.
Cada valor se cifra de forma completamente independiente. Comprometer un secreto no compromete el resto.
- 1HKDF-SHA256 — combina la clave maestra con un salt único para derivar una clave de cifrado individual
- 2AES-256-GCM — cifra el valor con un nonce de 12 bytes generado por
os.urandom - 3GCM tag — garantiza que cualquier modificación del ciphertext sea detectable antes de intentar descifrar
Contraseñas hasheadas con PBKDF2-HMAC-SHA256 · 310.000 iteraciones (OWASP 2023). Comparaciones con hmac.compare_digest para eliminar timing attacks.
Login en dos capas
Credenciales primero. Si el usuario tiene 2FA activo, una segunda prueba antes de entrar. Sin opción de saltearlo.
- TOTP — RFC 6238. Compatible con Google Authenticator, Authy y cualquier app estándar. El secreto se guarda cifrado.
- Touch ID — biometría en macOS vía pyobjc. Ciphie no almacena datos biométricos.
- Bloqueo — 3 intentos fallidos bloquean la cuenta. Duración configurable: 5, 10, 15, 30 o 60 min.
7 tipos de secreto
Cada categoría tiene campos predefinidos. Sin estructuras sueltas, sin campos genéricos para todo.
Cada edición genera una versión recuperable
Crear, editar, eliminar y copiar quedan registrados en el log de auditoría del dashboard.
Aislamiento real entre cuentas
El owner_id se verifica en cada query, no solo al listar. No hay forma de acceder a secretos ajenos sin pasar por autenticación.
- Editar nombre de usuario y email
- Configurar o desactivar 2FA
- Cierre automático por inactividad (30 s – 5 min)
- Borrado en cascada con verificación 2FA
Una obligatoria. Dos opcionales.
- cryptography — AES-256-GCM, HKDF, PBKDF2 · requerida
- qrcode[pil] — QR para setup TOTP · opcional
- pyobjc — Touch ID en macOS · opcional
Todo lo demás es stdlib de Python. Sin frameworks, sin abstracciones innecesarias.
Python puro
Interfaz de escritorio con Tkinter. CLI para operaciones básicas. Base de datos SQLite con permisos 0o600. Requiere Python 3.11+.
Decisiones deliberadas, no limitaciones técnicas
Tus secretos son tuyos. Ciphie no lo olvida.