Este artículo tiene varios problemas. Ayúdenos a mejorarlo o a discutir estos problemas en la página de discusión . ( Aprenda cómo y cuándo eliminar estos mensajes )
|
Desarrollador(es) | Compañía Apple Inc. |
---|---|
Lanzamiento inicial | 1999 |
Sistema operativo | Mac OS 9 , macOS |
Sucesor | Contraseñas |
Tipo | utilidad del sistema |
Licencia | APSL-2.0 |
Sitio web | Servicios de llaveros |
Desarrollador(es) | Compañía Apple Inc. |
---|---|
Versión estable | 11.0 (55314) / 2022 |
Sistema operativo | Mac OS 9 , macOS |
Sucesor | Contraseñas |
Tipo | administrador de contraseñas |
Sitio web | Ayuda para acceder a llaveros |
Keychain es un sistema de gestión de contraseñas desarrollado por Apple para macOS . Fue introducido con Mac OS 8.6 y se incluyó en todas las versiones posteriores del sistema operativo, así como en iOS . Un llavero puede contener varios tipos de datos: contraseñas (para sitios web , servidores FTP , cuentas SSH , recursos compartidos de red , redes inalámbricas , aplicaciones de groupware , imágenes de disco cifradas ), claves privadas , certificados y notas seguras. Algunos datos, principalmente contraseñas, en el llavero son visibles y editables mediante una interfaz fácil de usar en Contraseñas , una aplicación integrada en macOS Sequoia e iOS 18 y disponible en Configuración del sistema / Configuración en versiones anteriores de los sistemas operativos de Apple.
Los llaveros se desarrollaron inicialmente para el sistema de correo electrónico de Apple, PowerTalk , a principios de los años 90. Entre sus muchas funciones, PowerTalk utilizaba complementos que permitían recuperar correo de una amplia variedad de servidores de correo y servicios en línea. El concepto de llavero surgió naturalmente de este código y se utilizó en PowerTalk para administrar todas las credenciales de inicio de sesión de un usuario para los diversos sistemas de correo electrónico a los que PowerTalk podía conectarse.
Las contraseñas no eran fáciles de recuperar debido al cifrado, pero la simplicidad de la interfaz permitía al usuario seleccionar una contraseña diferente para cada sistema sin temor a olvidarlas, ya que una sola contraseña abriría el archivo y las devolvería todas. En ese momento, las implementaciones de este concepto no estaban disponibles en otras plataformas. Keychain era una de las pocas partes de PowerTalk que obviamente era útil "por sí sola", lo que sugería que debería promocionarse para convertirse en parte del sistema operativo básico de Mac. Pero debido a la política interna, se mantuvo dentro del sistema PowerTalk y, por lo tanto, estuvo disponible para muy pocos usuarios de Mac. [ cita requerida ]
No fue hasta el regreso de Steve Jobs en 1997 que el concepto de Keychain fue revivido a partir del ahora discontinuado PowerTalk. En ese momento, el concepto ya no era tan inusual, pero todavía era raro ver un sistema de Keychain que no estuviera asociado con una pieza particular de software de aplicación, típicamente un navegador web . Keychain se convirtió más tarde en una parte estándar de Mac OS 9 y se incluyó en Mac OS X en las primeras versiones comerciales.
En macOS, los archivos de llavero se almacenan en ~/Library/Keychains/
(y subdirectorios), /Library/Keychains/
, y /Network/Library/Keychains/
, y la aplicación GUI de Keychain Access se encuentra en la carpeta Utilidades en la carpeta Aplicaciones. [1] [2] Es un software gratuito de código abierto publicado bajo los términos de APSL-2.0 . [3] El equivalente de línea de comandos de Keychain Access es /usr/bin/security
.
La base de datos de la cadena de claves está cifrada por tabla y por fila con AES-256-GCM . El momento en el que se descifra cada credencial, el tiempo durante el que permanecerá descifrada y si la credencial cifrada se sincronizará con iCloud varía según el tipo de datos almacenados y está documentado en el sitio web de soporte de Apple. [4]
El archivo de llavero predeterminado es el login
llavero, que normalmente se desbloquea al iniciar sesión con la contraseña de inicio de sesión del usuario, aunque la contraseña para este llavero puede ser diferente de la contraseña de inicio de sesión de un usuario, lo que agrega seguridad a expensas de cierta comodidad. [5] La aplicación Keychain Access no permite configurar una contraseña vacía en un llavero.
El llavero puede configurarse para que se "bloquee" automáticamente si el equipo ha estado inactivo durante un tiempo, [6] y puede bloquearse manualmente desde la aplicación Acceso al llavero. Cuando está bloqueado, la contraseña debe volver a ingresarse la próxima vez que se acceda al llavero para desbloquearlo. Sobrescribir el archivo con ~/Library/Keychains/
uno nuevo (por ejemplo, como parte de una operación de restauración) también hace que el llavero se bloquee y se requiera una contraseña en el próximo acceso.
Si el llavero de inicio de sesión está protegido por la contraseña de inicio de sesión, la contraseña del llavero se cambiará siempre que se cambie la contraseña de inicio de sesión desde una sesión iniciada en macOS. En una red compartida Mac/no Mac, es posible que la contraseña del llavero de inicio de sesión pierda la sincronización si la contraseña de inicio de sesión del usuario se cambia desde un sistema que no sea Mac. Además, si la contraseña se cambia desde un servicio de directorio como Active Directory u Open Directory, o si la contraseña se cambia desde otra cuenta de administrador, por ejemplo, mediante las Preferencias del sistema. Algunos administradores de red reaccionan a esto eliminando el archivo del llavero al cerrar la sesión, de modo que se creará uno nuevo la próxima vez que el usuario inicie sesión. Esto significa que las contraseñas del llavero no se recordarán de una sesión a la siguiente, incluso si la contraseña de inicio de sesión no se ha cambiado. Si esto sucede, el usuario puede restaurar el archivo del llavero desde ~/Library/Keychains/
una copia de seguridad, pero al hacerlo se bloqueará el llavero, que luego deberá desbloquearse en el próximo uso.
Se desarrolló una aplicación de software de terceros que permitía la sincronización de llaveros personales generados mediante el acceso a llaveros en Mac OS X. Estos llaveros de usuarios generados mediante el acceso a llaveros estándar se podían sincronizar entre dispositivos (iPhones y computadoras de escritorio de Apple) mediante un par de aplicaciones de sincronización de llaveros desarrolladas por Patrick Stein de Jinx Software, una para Mac OS X y otra para iOS llamada Keychain2Go. El desarrollador no pudo actualizar correctamente Keychain2Go para tener en cuenta las restricciones que Apple hizo a Keychain y al acceso a Keychain en Mac OS X Sierra 10.12. [7]
Keychain se distribuye tanto con iOS como con macOS. La versión para iOS es más sencilla porque las aplicaciones que se ejecutan en dispositivos móviles normalmente solo necesitan funciones muy básicas de Keychain. Por ejemplo, funciones como las ACL (listas de control de acceso) y el uso compartido de elementos de Keychain entre diferentes aplicaciones no están presentes. Por lo tanto, los elementos de Keychain de iOS solo son accesibles para la aplicación que los creó.
Como almacenamiento predeterminado de información confidencial de los usuarios de Mac, Keychain es un objetivo principal para ataques de seguridad.
En 2019, el investigador de seguridad alemán Linus Henze, de 18 años, demostró su truco, llamado KeySteal, que obtiene contraseñas del llavero. Inicialmente, ocultó los detalles del truco y exigió a Apple que estableciera una recompensa por errores para macOS. Sin embargo, Apple no lo había hecho cuando Henze reveló posteriormente el truco. Utilizó el acceso de Safari a los servicios de seguridad, disfrazado como una utilidad en macOS que permite a los administradores de TI manipular los llaveros. [8]