KDE Wallet Manager (KWallet) es un software de administración de contraseñas gratuito y de código abierto escrito en C++ para sistemas operativos estilo UNIX. KDE Wallet Manager se ejecuta en un sistema operativo basado en Linux y su característica principal es almacenar contraseñas cifradas en KDE Wallets. [2] La característica principal del administrador de billetera KDE (KWallet) es recopilar las credenciales del usuario, como contraseñas o ID, y cifrarlas mediante el algoritmo de cifrado de bloques simétrico Blowfish o el cifrado GNU Privacy Guard .
KDE Wallet manager (KWallet) se puede integrar con varios navegadores web, incluidos Chrome, Firefox, Opera y Edge.
Para utilizar la integración del administrador de KDE Wallet (KWallet) en Google Chrome o Chromium, el usuario debe ejecutar un programa con argumento --password-store=kwallet5o --password-store=detect. [4]
También hay disponible un complemento independiente en Firefox. Este complemento permite a los usuarios almacenar contraseñas internamente a través del administrador de KDE Wallet (KWallet) en lugar del administrador de contraseñas predeterminado de Firefox.
Konqueror, el navegador web oficial de K Desktop Environment (KDE), cuenta con KDE Wallet manager (KWallet) para almacenar contraseñas confidenciales cifradas.
API
Las API de KDE Wallet Manager activan eventos de autenticación cuando la aplicación realiza una solicitud a través del protocolo de comunicaciones de escritorio (DCOP), que es el principal mecanismo de comunicación entre procesos (IPC) de KDE, que hace que se muestre un cuadro de diálogo de contraseña para la aplicación. Esto hace que el proceso del demonio de KDE inicie el cuadro de diálogo de contraseña. Los usuarios pueden elegir entre cancelar el cuadro de diálogo que finalizará la aplicación o completar el cuadro de contraseña. Si el cuadro de contraseña está lleno, Wallet se abrirá automáticamente. Solo se puede acceder al protocolo de comunicaciones de escritorio (DCOP) de KDE Wallet Manager de forma local porque es un protocolo de comunicación entre procesos (IPC) que se procesa a través de sockets locales UNIX. [5]
GUI
En la GUI de KDE Wallet Manager, los usuarios pueden administrar cada billetera y contraseña que se les asigne.
KDE Wallet Manager permite a los usuarios guardar o eliminar carteras y los usuarios pueden identificar qué aplicaciones de billetera deben buscar cuando intentan acceder a una contraseña almacenada. [5]
Estas son las listas de acciones que los usuarios pueden realizar en la GUI del administrador de KDE Wallet (KWallet):
Crear nueva billetera
Cambiar la billetera predeterminada
Bloquear la billetera
Almacenar contraseñas en una billetera
Desbloquear la contraseña de Wallet
Actualizar la información en una Wallet
Ver contraseñas almacenadas en Wallet [5]
Carteras
Administrar billeteras en KWallet.
Wallet es un término para el almacenamiento de contraseñas utilizado en el software KDE Wallet Manager. Las billeteras pueden ser creadas manualmente por el usuario o se ofrecen mediante un diálogo cuando el usuario ingresa una contraseña en cualquier sitio web o entorno de escritorio KDE. Una vez creada, Wallet puede almacenar varias contraseñas y está controlada por una contraseña maestra. De esta manera, los usuarios no tienen que recordar varias contraseñas, sino que simplemente pueden administrarlas memorizando una contraseña maestra para la billetera. La billetera predeterminada se llama "kdewallet" y los usuarios pueden crear más si es necesario.
Administrar billeteras
Los usuarios pueden administrar billeteras en su propia ventana de KDE Wallet Manager. Se pueden empaquetar o combinar carteras arrastrando y soltando. Si el usuario desea exportar información a otras ubicaciones, como unidades flash, la ventana le permite elegir si desea exportar datos cifrados o no. Al proporcionar la contraseña maestra, el usuario puede importar de manera similar los datos cifrados.
También es posible configurar las preferencias de las billeteras; el usuario puede configurar ciertas billeteras para que sean la billetera predeterminada. La configuración de cerrar billetera permite al usuario cerrar la billetera después de:
Cerrar cuando no se utilice durante
Cerrar cuando se inicie el salvapantallas
Cerrar cuando la aplicación deje de usarla
Cifrado de la contraseña
Los datos almacenados por el administrador de KDE Wallet se pueden cifrar de dos formas principales. El algoritmo GNU Privacy Guard (GnuPG o GPG) se utiliza si la biblioteca GnuPG Made Easy está instalada en el sistema operativo basado en Linux del usuario. De lo contrario, se utiliza el algoritmo de cifrado de bloques simétrico Blowfish. [6]
Los métodos de cifrado de KWallet.
Algoritmo de cifrado de bloques simétricos Blowfish
KDE Wallet Manager cifra los datos almacenados en la billetera utilizando el algoritmo de cifrado de bloques simétrico Blowfish en modo CBC. Para proteger la información del usuario, los datos cifrados de Blowfish se autentican con el algoritmo hash SHA-1.
El cifrado Blowfish del administrador de KDE Wallet proporciona un cifrado más rápido en comparación con Khufu, RC5, DES, IDEA y Trip-DES. Blowfish cifra a una velocidad de 18 ciclos de reloj por byte en microprocesadores de 32 bits.
El algoritmo Blowfish del administrador de KDE Wallet se puede ejecutar en la memoria dentro de 5k, y una estructura simple es fácil de implementar y fácil de determinar la solidez del algoritmo. El algoritmo es variable en cuanto a la longitud de la clave, que puede tener hasta 448 bits y permite operaciones básicas de suma de palabras y XOR de bits. [7]
Cifrado GNU Privacy Guard
Los usuarios pueden crear una billetera basada en GNU Privacy Guard (GnuPG o GPG) para almacenar contraseñas extra confidenciales. Esto requiere que los usuarios instalen la biblioteca GnuPG Made Easy. Si la biblioteca está instalada y una vez que el software encuentra GNU Privacy Guard (GnuPG o GPG), se pedirá a los usuarios que elijan una clave para usar en una nueva billetera. [6] El usuario aún puede cifrar contraseñas con el algoritmo de cifrado de bloques simétrico Blowfish, ya que la biblioteca de cifrado GNU Privacy Guard incluye el algoritmo de cifrado de bloques simétrico DSA/Blowfish. [8]
Seguridad del administrador de KDE Wallet
El uso de KDE Wallet Manager (KWallet) puede facilitar la gestión de contraseñas, pero no proporciona mayores condiciones de seguridad al sistema del usuario. En lugar de obtener otras contraseñas del usuario, los atacantes pueden obtener la contraseña maestra de las billeteras del usuario a través de la PC del usuario.
Dado que el directorio de archivos cifrados del administrador de billetera KDE (KWallet) se encuentra en archivos predecibles, puede ser vulnerable a virus o gusanos que están programados para apuntar al propio sistema de administración de contraseñas. [5]
Vulnerabilidades conocidas
La función hash SHA-1 que se utiliza en KDE Wallet manager (KWallet) está criptográficamente rota. Google y CWI Amsterdam han demostrado que dos resúmenes SHA-1 idénticos muestran dos contenidos PDF diferentes. Varias empresas, incluida Microsoft, han descontinuado la compatibilidad con SHA-1; sin embargo, KDE Wallet manager (KWallet) usa SHA512 en versiones superiores a 4.13 o con un módulo de autenticación conectable o usa la función hash SHA-1.
"kwallet-pam en KDE KWallet anterior a 5.12.6 permite a los usuarios locales obtener la propiedad de archivos arbitrarios mediante un ataque de enlace simbólico".
"fishProtocol::establecerConexión en fish/fish.cpp en KDE kio-extras hasta 20.04.0 realiza una llamada de autenticación de caché incluso si el usuario no había configurado la opción keepPassword. Esto puede provocar que KWallet almacene una contraseña de forma no intencionada".
"kwalletd en KWallet anterior a KDE Applications 14.12.0 usa Blowfish con el modo ECB en lugar del modo CBC al cifrar el almacén de contraseñas, lo que facilita a los atacantes adivinar contraseñas mediante un ataque de libro de códigos".
"SHA-1 no es resistente a colisiones, lo que facilita que los atacantes dependientes del contexto realicen ataques de suplantación de identidad, como lo demuestran los ataques al uso de SHA-1 en TLS 1.2. NOTA: este CVE existe para proporcionar un identificador común para hacer referencia este problema SHA-1; la existencia de un identificador no es, por sí sola, una recomendación tecnológica". [9]
"Se descubrió un problema en password-store.sh al pasar en Simple Password Store 1.7.x anterior a 1.7.2. La rutina de verificación de firmas analiza la salida de GnuPG con una expresión regular incompleta, lo que permite a atacantes remotos falsificar firmas de archivos en la configuración. archivos y scripts de extensión. La modificación del archivo de configuración permite al atacante inyectar claves de cifrado adicionales bajo su control, revelando así contraseñas al atacante. La modificación de los scripts de extensión permite al atacante la ejecución de código arbitrario". [10]
"GnuPG 2.2.21 y 2.2.22 (y Gpg4win 3.1.12) tienen un desbordamiento de matriz, lo que provoca un bloqueo o posiblemente otro impacto no especificado, cuando una víctima importa la clave OpenPGP de un atacante, y esta clave tiene preferencias AEAD. El desbordamiento es causado por un error g10/key-check.c. NOTA: GnuPG 2.3.x no se ve afectado. GnuPG 2.2.23 es una versión fija." [11]
"Se encontró una falla en la forma en que se podían falsificar las firmas de certificados usando colisiones encontradas en el algoritmo SHA-1. Un atacante podría usar esta debilidad para crear firmas de certificados falsificadas. Este problema afecta a las versiones de GnuPG anteriores a la 2.2.18". [12]
"GnuPG 1.x anterior a 1.4.16 genera claves RSA usando secuencias de introducciones con ciertos patrones que introducen un canal lateral, lo que permite a atacantes físicamente próximos extraer claves RSA a través de un ataque de texto cifrado elegido y criptoanálisis acústico durante el descifrado. NOTA: las aplicaciones son Por lo general, no se espera que se protejan de ataques acústicos de canal lateral, ya que podría decirse que esto es responsabilidad del dispositivo físico. En consecuencia, los problemas de este tipo normalmente no recibirían un identificador CVE. Sin embargo, para este problema, el desarrollador ha especificado un código de seguridad. política en la que GnuPG debería ofrecer resistencia de canal lateral, y las violaciones de la política de seguridad especificadas por los desarrolladores están dentro del alcance de CVE". [13]
"El subdesbordamiento de enteros en la función ksba_oid_to_str en Libksba anterior a 1.3.2, como se usa en GnuPG, permite a atacantes remotos provocar una denegación de servicio (caída) a través de un OID diseñado en un (1) mensaje S/MIME o (2) basado en ECC. Datos OpenPGP, lo que provoca un desbordamiento del búfer." [14]
"Vulnerabilidad de uso después de la liberación en kbx/keybox-blob.c en GPGSM en GnuPG 2.x hasta 2.0.16 permite a atacantes remotos provocar una denegación de servicio (caída) y posiblemente ejecutar código arbitrario a través de un certificado con un gran número de nombres alternativos de sujeto, que no se maneja adecuadamente en una operación de reasignación al importar el certificado o verificar su firma". [15]
"mainproc.c en GnuPG anterior a 2.2.8 maneja mal el nombre de archivo original durante las acciones de descifrado y verificación, lo que permite a atacantes remotos falsificar la salida que GnuPG envía en el descriptor de archivo 2 a otros programas que usan la opción "—status-fd 2". Por ejemplo, los datos de OpenPGP pueden representar un nombre de archivo original que contiene caracteres de avance de línea junto con códigos de estado GOODSIG o VALIDSIG". [dieciséis]
"La función de verificación de integridad en OpenPGP, cuando se maneja un mensaje que fue cifrado usando el modo de retroalimentación de cifrado (CFB), permite a atacantes remotos recuperar parte del texto sin formato a través de un ataque de texto cifrado elegido cuando se conocen los primeros 2 bytes de un bloque de mensaje. y hay disponible un oráculo u otro mecanismo para determinar si falló una verificación de integridad". [17]
"El desbordamiento del búfer basado en montón en la función Ask_outfile_name en openfile.c para GnuPG (gpg) 1.4 y 2.0, cuando se ejecuta de forma interactiva, podría permitir a los atacantes ejecutar código arbitrario a través de mensajes con expansiones "C-escape", lo que hace que la función make_printable_string devolver una cadena más larga de lo esperado mientras se construye un mensaje." [18]
"GnuPG 1.4.6 y anteriores y GPGME anteriores a 1.1.4, cuando se ejecutan desde la línea de comandos, no distinguen visualmente las partes firmadas y no firmadas de mensajes OpenPGP con múltiples componentes, lo que podría permitir a atacantes remotos falsificar el contenido de un mensaje sin ser detectado ". [19]
"mainproc.c en GnuPG anterior a 2.2.8 maneja mal el nombre de archivo original durante las acciones de descifrado y verificación, lo que permite a atacantes remotos falsificar la salida que GnuPG envía en el descriptor de archivo 2 a otros programas que usan la opción "—status-fd 2". Por ejemplo, los datos de OpenPGP pueden representar un nombre de archivo original que contiene caracteres de avance de línea junto con códigos de estado GOODSIG o VALIDSIG". [20]
"Las funciones de mezcla en el generador de números aleatorios en Libgcrypt anteriores a 1.5.6, 1.6.x anteriores a 1.6.6 y 1.7.x anteriores a 1.7.3 y GnuPG anteriores a 1.4.21 facilitan a los atacantes obtener valores de 160 bits. aprovechando el conocimiento de los 4640 bits anteriores." [21]
"kbx/keybox-search.c en GnuPG anterior a 1.4.19, 2.0.x anterior a 2.0.27 y 2.1.x anterior a 2.1.2 no maneja adecuadamente los desplazamientos bit a izquierda, lo que permite a atacantes remotos provocar una denegación de servicio (operación de lectura no válida) a través de un archivo de llavero diseñado, relacionado con extensiones de signo y "memcpy con rangos superpuestos". [22]
Notas
^ Solo LGPL-2.0, LGPL-2.0 o posterior, LGPL-2.1 o posterior y LGPL-3.0 o posterior.
Referencias
^ "v5.247.0" . Consultado el 9 de enero de 2024 .
^ Zhang, Jie; Luo, Xin; Akkaladevi, Somasheker; Ziegelmayer, Jennifer (2009). "Mejora de la recuperación de múltiples contraseñas: un estudio empírico". Revista europea de sistemas de información . 18 (2): 165-176. doi :10.1057/ejis.2009.9. ISSN 0960-085X. S2CID 7244341.
^ Gris, Josué; Franqueira, Virginia NL; Yu, Yijun (2016). "Análisis forense sólido de los riesgos de seguridad derivados del uso de administradores de contraseñas locales". Talleres de la 24a Conferencia Internacional de Ingeniería de Requisitos de IEEE 2016 (REW) (PDF) . Pekín, China: IEEE. págs. 114-121. doi :10.1109/REW.2016.034. ISBN978-1-5090-3694-3. S2CID 15971740.
^ Tomán, Zinah Hussein; Tomán, Sarah Hussein; Hazar, Manar Joundy (2019). "Una comparación en profundidad de marcos de software para desarrollar aplicaciones de escritorio utilizando tecnologías web". Revista de la Universidad Southwest Jiaotong . 54 (4). doi : 10.35741/issn.0258-2724.54.4.1 . ISSN 0258-2724. S2CID 209057621.
^ abcd Mulligan, J.; Elbirt, AJ (2005). "Compensaciones de usabilidad y seguridad del escritorio: una evaluación de los sistemas de administración de contraseñas". Seguridad de los Sistemas de Información . 14 (2): 10-19. doi :10.1201/1086/45241.14.2.20050501/88289.3. ISSN 1065-898X. S2CID 21253225.
^ ab Dudášová, Ludmila; Vaculík, Martín; Procházka, Jakub (29 de diciembre de 2021). "Psychologický kapitál v pracovní, klinické a školní psychologii: přehledová studie". Psicología Ceskoslovenska . 65 (6): 558–574. doi : 10.51561/cspsych.65.6.558 . ISSN 0009-062X. S2CID 245578091.
^ Mousa, A. (2005). "Rendimiento de cifrado de datos basado en Blowfish". 47º Simposio Internacional ELMAR, 2005 . IEEE. págs. 131-134. doi :10.1109/elmar.2005.193660. ISBN953-7044-04-1. ISSN 1334-2630. S2CID 21814142.
^ Aghili, Hamed (26 de julio de 2018), "Mejora de la seguridad mediante el algoritmo Blow Fish en el almacenamiento en la nube con deduplicación", Investigación fundamental en ingeniería eléctrica , Apuntes de conferencias en ingeniería eléctrica, vol. 480, Singapur: Springer Singapur, págs. 723–731, doi :10.1007/978-981-10-8672-4_54, ISBN978-981-10-8671-7, S2CID 69654258 , consultado el 27 de mayo de 2022
^ "NVD-CVE-2005-4900". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2018-12356". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2020-25125". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2019-14855". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2013-4576". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2014-9087". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2010-2547". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2018-12020". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2005-0366". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2006-6169". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2007-1263". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2018-12020". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2016-6313". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
^ "NVD-CVE-2015-1607". nvd.nist.gov . Consultado el 27 de mayo de 2022 .Este artículo incorpora texto de esta fuente, que se encuentra en el dominio público .