Releases: Zulaa9/KeyPing
v1.1.1 — Hotfix: CSS layout y detección de vault en AppImage
Correcciones
CSS no se aplicaba en la versión empaquetada
La optimización inlineCritical de Angular generaba un <link media="print" onload="this.media='all'"> para cargar los estilos. El atributo onload inline es un event handler bloqueado por la directiva script-src 'self' de la CSP, por lo que los estilos permanecían en modo impresión y nunca se aplicaban a la pantalla. Resultado: modal de creación de vault fuera de posición, botones sin estilos y layout roto. Deshabilitado con inlineCritical: false en la configuración de producción.
"Crear y desbloquear" no tenía efecto
Cuando localStorage está vacío (limpieza de datos, primera apertura tras actualización, o perfil de usuario nuevo) pero kp-auth.json ya existe en disco, init() mostraba la pantalla de "crear vault" en lugar de la de desbloqueo. Al pulsar el botón, authSetup lanzaba Unauthorized en el proceso principal, error que se tragaba silenciosamente sin ningún feedback. Corregido haciendo que init() consulte el estado real del disco vía IPC (keyping:hasVault) como fuente de verdad, independientemente de localStorage.
Error silencioso en creación de vault
Añadido try/catch en onCreateMaster() para mostrar un mensaje de error visible al usuario en lugar de fallar sin ninguna respuesta.
Artefactos
| Archivo | SHA-256 |
|---|---|
KeyPing-1.1.1.AppImage |
8e474efc829ba843b1c24de54dfa8d075a468f2743c6cc243b391fdb4ae11e8b |
v1.1.0 — Security hardening: auth rewrite & secret exposure reduction
Mejoras de seguridad
Esta release cierra una ronda completa de hardening. No hay cambios funcionales visibles para el usuario; la actualización es transparente y la migración del vault es automática.
Autenticación
- Reescritura del sistema de auth: la clave de sesión ahora se deriva de la contraseña maestra mediante PBKDF2-SHA512 (600 000 iteraciones, OWASP 2023) y vive únicamente en memoria del main process. El renderer nunca posee material criptográfico.
- Verificación de contraseña en main process: la confirmación de contraseña para exportar y otras operaciones sensibles se valida en el proceso principal (
keyping:auth:verify), no en el renderer. - Rotación de contraseña atómica: si el re-cifrado del vault falla durante un cambio de contraseña, el auth file y la sesión se restauran automáticamente al estado anterior.
- Validación de
iterations: el campoiterationsdekp-auth.jsonse valida y se clampea a[100 000, 2 000 000]para prevenir ataques por fichero manipulado.
Migración automática de vaults legacy
Los vaults cifrados con el esquema anterior (kp-master.key) se migran automáticamente al nuevo sistema en el primer unlock tras la actualización. No se requiere ninguna acción por parte del usuario.
Eliminación de cachés sensibles
- Eliminado el caché cifrado del vault en
localStorage(keyping.vault.enc.v1). El vault en disco es la única fuente de verdad. - Los metadatos del vault (URLs, nombres de usuario, emails, carpetas) ya no persisten en el almacenamiento local del navegador entre sesiones.
Reducción de exposición de secretos en el renderer
- Dashboard: la detección de contraseñas duplicadas usa hashes HMAC-SHA256 en lugar de comparar contraseñas en claro.
- Página de salud: el análisis completo opera sobre metadatos y hashes HMAC. Las contraseñas en claro solo se cargan bajo demanda explícita del usuario (botón "revelar"), una a la vez.
- Lista de contraseñas: eliminadas las sincronizaciones automáticas de vault al
localStoragetras cada operación CRUD.
Hardening de IPC y superficie del renderer
- Eliminados handlers IPC muertos:
keyping:auth:failedAttempt,keyping:auth:clearAttemptState. contextBridgereducida: eliminadas las APIssessionUnlock,clearAttemptStateyrecordFailedAttempt.clearSessionKey()se invoca en crash del renderer y en navegaciones internas para evitar fugas de sesión.
Artefactos
| Archivo | SHA-256 |
|---|---|
KeyPing-1.1.0.AppImage |
b430046bc64401aed67bf9309a1dc5cbba750c77e5c9b86a87062fc61b6e836d |
v.1.0.2
KeyPing v1.0.2
Minor UX and visual consistency improvements for service icon detection.
Fixes
- Improved service icon detection coverage across the application.
- Added and normalized multiple service mappings so icons resolve correctly from service names and URLs.
- Fixed several cases where service logos were missing or incorrectly resolved.
- Improved detection of compact service names (no spaces), such as
riotgames,stackoverflow, andw3school. - Corrected brand rendering behavior for selected services to preserve original logo colors where appropriate.
Notes
This release focuses on improving icon detection reliability and overall visual consistency across the UI.
No changes were made to the vault encryption model or password storage logic in this version.
v1.0.1
v1.0.0
KeyPing v1.0.0 – First Stable Release
KeyPing is a privacy-first desktop password manager focused on detecting weak, reused, and risky passwords while keeping all data fully local and offline.
This first stable release includes the core functionality of the project and is intended for real daily use.
Main Features
- Local-only encrypted vault (AES-256-GCM)
- Password similarity and reuse detection
- Password health analysis and scoring
- Version history per password
- Advanced filtering and search
- Folder organization with drag and drop
- Secure clipboard with auto-wipe and history cleaning
- Offline encrypted import/export
- Interactive onboarding and demo mode
- Automatic updates via GitHub Releases
- ES / EN interface
Security Highlights
- AES-256-GCM encrypted vault
- PBKDF2-HMAC-SHA512 key derivation
- Clipboard auto-clear protection
- Brute-force delay protection on master unlock
- Vault integrity validation
Downloads
- Windows:
.exeinstaller (NSIS) - Linux:
AppImage - macOS:
.dmg
Checksums for release integrity are included with this release.
Notes
KeyPing is actively developed and improvements in security, UX, and testing continue.
Feedback, bug reports, and suggestions are welcome.
License
MIT License.