Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1058
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
▼
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
▼
enero
(Total:
52
)
- Configuración MariaDB (MySQL) Gestor Base de Datos
- Instalar WSL2 en Windows 10 para ejecutar Linux de...
- Análisis BackBlaze de los discos duros mecánicos m...
- Tecnologías grabación disco duro mecánico HDD: dif...
- Europol desmantela Emotet: la botnet de malware má...
- Obtener IP de un contacto mediante una llamada en ...
- Nomenclatura de la BIOS/UEFI: ErP Ready, CSM, VRM,...
- Vulnerabilidad en sudo presente desde 2011 permite...
- Seguridad en SSH: uso de llaves privadas y multifa...
- Securizar una RaspBerry Pi
- Convierte tu Raspberry PI en un analizador de red ...
- Optimizar módulo PHP FPM y opciones de seguridad e...
- Los mejores HoneyPots: ejemplos, tipos, caracterís...
- SMiShing: ¿Por qué son tan efectivos los engaños p...
- Vulnerabilidad en "Enviar a Kindle" por e-mail per...
- Utilizan Windows RDP (Escritorio Remoto) puerto 33...
- Secuestran mediante phishing la cuenta de Instagra...
- Google indexa de nuevo datos privados de WhatsApp ...
- Arbitrium-RAT: troyano de acceso remoto multiplata...
- Un exempleado interrumpe el envío de suministros d...
- Los 10 mejores sitios web descarga de Torrent de 2021
- La Policía Nacional detiene en Valencia varón 25 a...
- La policía británica borra por error 400.000 histo...
- Guía configuración y optimización Apache (MPM, suE...
- Administración de Trump añade a Xiamoi a lista de ...
- Comprobar la capacidad real de espacio en un pendr...
- Error en Windows 10 corrompe tu disco duro al ver ...
- Empresa china filtra 200 millones de datos de usua...
- Expertos alertan potente y peligroso RAT llamado R...
- nVidia presenta la serie GeForce RTX Serie 30 y AM...
- Intel agrega a procesadores capacidades de detecci...
- Archivan todas las publicaciones de Parler elimina...
- Fuga de datos privados de la ONU: trabajadores de ...
- Muchas otras redes sociales se unen al veto de Twi...
- SolarWinds contrata una nueva empresa de cibersegu...
- Compartir la ubicación de Telegram no es tan priva...
- HackTools v0.3.0 : la extensión todo en uno para W...
- FBI advierte a empresas sobre ataques del ransomwa...
- Estados Unidos condena ruso a 12 años de cárcel po...
- Aumentan las descargas de Signal y Telegram ante p...
- Condenan a Vodafone a devolver 20.380 euros a un c...
- La aplicación KeyDecoder permite usar el teléfono ...
- Comprendiendo el cifrado TPM con BitLocker y métod...
- Descubre contraseñas escuchando las pulsaciones de...
- Grupo Ransomware DoppelPaymer roba y publica datos...
- Apple compara cuántos metadatos recoge Whatsapp Vs...
- Nintendo pide $15 millones de daños de un sitio we...
- Crecen los ciberataques a los bancos a raíz del co...
- iptables Vs FirewallD: diferencias, ejemplos práct...
- Desactivar scripts PowerShell para evitar ataques ...
- Fallo en Facebook SDK permitía robar cuentas vía o...
- ¿Se atreverá Twitter banear a Donald Trump cuando ...
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
Un fallo de diseño en el mecanismo de registro del servidor VPN de Fortinet puede aprovecharse para ocultar la verificación exitosa de cre...
-
Trinity asegura haber robado 560 GB de datos de la Agencia Tributaria (AEAT) española, así como haber secuestrado parte de sus sistemas, ci...
Descubre contraseñas escuchando las pulsaciones del teclado con Keytap2
Keytap2 - escuchas de teclado acústico basadas en frecuencias de n-gramas del lenguaje. Se necesita un teclado mecánico obligatoriamente y un tiempo de aprendizaje, es decir, grabar previamente el 100 sonidos de las teclas para poder tener un algoritmo de patrón. Actualmente sólo funciona con el idioma inglés.
Keytap: escuchas del teclado acústico
El sonido emitido por las pulsaciones de teclas se puede utilizar potencialmente para realizar un ataque de canal lateral para adivinar el texto que se está escribiendo. Esta página ejecuta un programa que demuestra este tipo de ataque.
Primero, escribes algo de texto en el lienzo de abajo para entrenar el modelo de predicción. No escriba muy rápido: se recomienda probar primero un estilo de escritura Hunt and Peck para al menos obtener algunos resultados positivos. El programa intentará predecir las teclas que se hayan pulsado al menos 3 veces.
Cuando esté listo para escribir los datos de entrenamiento, haga clic en el botón Pedict, espere a que el modelo se entrene y continúe escribiendo fuera de la ventana del navegador. El programa intentará continuamente adivinar lo que se está escribiendo analizando únicamente la captura de audio de la página.
Actualmente, el código no es muy portátil, así que lea los requisitos a continuación y asegúrese de cumplirlos. Además, esta es una prueba de concepto y probablemente no funcione de manera efectiva en todos los entornos. Sin embargo, funciona bastante bien en mi configuración: iMac, teclado mecánico Filco, micrófono incorporado.
Requisitos
- Navegador no móvil compatible con pthreads con WebAssembly (es decir, Chrome o Firefox Nightly)
- Teclado mecánico
- Micrófono (aumenta el nivel de entrada al máximo)
Una versión on-line del algoritmo está disponible aquí: keytap2.ggerganov.com (aproximadamente 8 MB de módulo WASM + activos)
KeyTap2
Keytap es un proyecto de pasatiempo de Georgi Gerganov para la escucha clandestina de teclados acústicos. En resumen, funciona así:
- Entrena un algoritmo con los sonidos que emite un teclado específico al presionar sus teclas
- Grabe el sonido de alguien escribiendo un texto desconocido en ese teclado
- Ejecute el algoritmo en la grabación para intentar recuperar el texto original que se escribió
Aquí hay un breve video de 1 minuto de mi enfoque original donde entreno Keytap en un teclado y luego lo uso para olfatear teclas de otra aplicación:
Video. Escuchar a escondidas en un navegador Google Chrome usando Keytap
Uno de los principales inconvenientes del proceso descrito es que primero es necesario recopilar datos de entrenamiento para el teclado específico en el que estarían escuchando a escondidas (paso 1). Además, en el paso 2, uno tiene que usar exactamente la misma configuración de teclado + micrófono que usaron en el paso 1 para obtener resultados algo confiables.
El nuevo algoritmo Keytap2 es un intento de resolver estos problemas. En este enfoque, ya no necesitamos recopilar datos de entrenamiento. El algoritmo funciona agrupando las pulsaciones de teclas detectadas en función de su similitud de sonido y luego utilizando información estadística sobre la frecuencia de las letras n-gramas en el supuesto idioma del texto (por ejemplo, inglés). Esto implica que necesitamos tener conocimientos previos sobre el idioma del texto, pero ahora este es un requisito mucho más débil en comparación con el paso 1 anterior. Además, necesitamos suficientes muestras registradas para realizar un análisis estadístico exitoso.
En esta publicación, daremos algunos detalles sobre la implementación. Antes de comenzar, aquí hay un video de 5 minutos que muestra Keytap2 en acción donde lo uso para recuperar un texto en inglés desconocido solo del audio grabado de mí tocando el teclado (tenga en cuenta que Keytap2 se ejecuta en el navegador y estoy escribiendo en otra aplicación) :
Demostración de Keytap2
Vid. Corto 5 min. demostración de Keytap2
Como todos sabemos cómo las cosas nuevas generalmente se presentan por primera vez, estos son algunos resultados "típicos" ... es decir, he seleccionado cuidadosamente un ejemplo en el que mi algoritmo produce buenos resultados 😄 Por lo tanto, tenga en cuenta que esto es solo un prueba de concepto, por lo que si decide probarlo, reduce tus expectativas.
Una versión en línea del algoritmo está disponible aquí: keytap2.ggerganov.com (aproximadamente 8 MB de módulo WASM + activos)
Alternativamente, puede construir este repositorio localmente y ejecutar el binario keytap2-gui.
Fundamentos
La mayoría de los fundamentos del algoritmo son los mismos que en Keytap, así que asegúrese de consultar mi publicación anterior del blog para obtener más detalles. En breve:
- Usamos una técnica de umbral adaptativo en la forma de onda de sonido grabada para detectar automáticamente la ubicación de las pulsaciones de teclas.
Pulsaciones de teclas detectadas automáticamente
Fig. Las pulsaciones de teclas detectadas en la grabación están marcadas con rectángulos rojos. La herramienta también permite especificar manualmente la ubicación de las claves.
- A continuación, calculamos el "Mapa de similitud de claves" Sij, la "similitud de sonido" entre las pulsaciones de teclas iy j detectadas. Cuanto mayor sea el valor de S, más similar suenan las 2 pulsaciones de tecla y Sii = 1. En Keytap2 sigo usando la Correlación cruzada entre las formas de onda de las pulsaciones de teclas para calcular Sij
Mapa de similitudes clave
Fig. El "Mapa de similitud clave" Sij presentado visualmente: las celdas más brillantes indican un valor más alto.
Cifrado de sustitución
¡Sí, lo leíste correctamente! En Keytap2 transformamos el problema de recuperar el texto desconocido en el problema de romper un cifrado de sustitución.
Para explicar esto mejor, imaginemos por un momento que nuestro Mapa de similitudes clave Sij era de alguna manera perfecto. Esto significa que de alguna manera podemos saber con 100% de certeza si 2 pulsaciones detectadas son producidas por la misma tecla del teclado, solo por el sonido que emitieron. En otras palabras, para cada par de pulsaciones de teclas ij para las que las teclas presionadas fueron las mismas, obtenemos Sij = 1. De lo contrario, obtenemos Sij = 0.
Si ese fuera el caso, podríamos agrupar las pulsaciones de teclas en grupos basados en Sij y obtener un "cifrado" del texto original que estamos intentando recuperar. Este "cifrado" es exactamente un cifrado de sustitución.
Romper un cifrado de sustitución es relativamente fácil, dado que tenemos suficiente texto cifrado. Una técnica popular es utilizar un algoritmo genético que intenta maximizar la probabilidad de encontrar los n-gramas descifrados, dada su distribución de frecuencia en el idioma de destino. En Keytap2 utilicé una variación de la siguiente implementación. Descubrí que si el texto cifrado tiene al menos 100 letras, se las arregla para romperlo con bastante facilidad.
Cifrado de sustitución no exacto
En realidad, nuestro Sij no es ni de lejos perfecto. Esto se debe a muchos factores: la misma tecla puede sonar diferente dependiendo de la forma en que se presionó, el ruido de grabación, el ruido de fondo, etc. Sin embargo, al menos podemos esperar que Sij se correlacionará con la probabilidad de que las dos teclas i y j fueron producidos por la misma tecla del teclado.
En esta configuración, aún podemos intentar agrupar las pulsaciones de teclas en grupos y convertir el problema en romper un cifrado de sustitución. Sin embargo, para aumentar las posibilidades de éxito, el algoritmo necesita explorar muchas agrupaciones diferentes de pulsaciones de teclas y encontrar un equilibrio entre qué tan bien se ajustan las agrupaciones al Mapa de similitud de claves y qué tan bien el texto descifrado se ajusta a las estadísticas de n-gramas del idioma. Keytap2 intenta resolver este problema generando una gran cantidad de agrupaciones utilizando un enfoque similar a Metropolis-Hastings. Para cada agrupación que genera, aplica el algoritmo original de ruptura de cifrado por sustitución. En el proceso, realiza un seguimiento de los mejores resultados que coinciden lo suficientemente bien con las estadísticas de frecuencia n-gram en inglés.
La generación de agrupaciones funciona así:
- Para cada pulsación de tecla detectada i, asigne un clúster Ci
- Calcule una métrica de bondad de ajuste para la agrupación {Ccur}: F ({Ccur}) = ΣiΣjlog (pij), si Ci = Cj entonces pij = Sij else pij = 1-Sij
- Mute aleatoriamente el agrupamiento actual para obtener un nuevo agrupamiento Cnew
- Acepte el nuevo agrupamiento con probabilidad exp (F ({Cnew}) - F ({Ccur}))
- Vaya al paso 3 y repita
En general, esta es la parte más crucial del enfoque descrito. No creo que mi solución sea la mejor que existe y creo que podría haber algunos enfoques alternativos interesantes para atacar este problema. Definitivamente, avíseme si tiene ideas sobre cómo resolver este desafío.
Rendimiento de KeyTap2
El rendimiento de Keytap2 es cuestionable. Lo hice funcionar con mi propia configuración, pero no lo he probado en ninguna otra configuración, por lo que hay una alta probabilidad de que el algoritmo esté "sobreajustado" a mi configuración.
Existen algunas limitaciones importantes al usar Keytap2:
- No pude lograr la automatización completa del ataque. Por lo tanto, presenté una opción para proporcionar "sugerencias" al algoritmo. Esto se demuestra mejor en el video al comienzo de esta publicación. Puede proporcionar tales sugerencias mientras se ejecuta la optimización y el algoritmo se reajustará automáticamente. A veces, es muy útil restablecer la optimización para evitar quedarse atascado en los mínimos locales.
Fig. Proporcione "sugerencias" al algoritmo seleccionando las partes decodificadas que crea que tienen sentido.
- Necesitas un teclado mecánico. No estoy seguro de si todos los teclados mecánicos son susceptibles a este tipo de ataque, pero el mío lo es porque hace ruidos de clic.
- La versión del navegador de Keytap2 consume bastante CPU, así que si su máquina no es lo suficientemente potente, asegúrese de probar el programa nativo.
- Actualmente, el texto grabado debe estar en inglés, ya que estos son los datos de frecuencia n-gramo que tengo. En teoría, se pueden usar frecuencias de n-gramas para otros idiomas.
- Asegúrese de registrar al menos 100 caracteres de texto significativo. Es muy importante que el texto tenga sentido, de lo contrario no seguirá la distribución estadística promedio de los n-gramas y el enfoque fallará por completo.
- No grabes más de 300 caracteres o el cálculo se volverá extremadamente lento.
- Trata de no cometer errores al escribir :) Esto puede confundir el algoritmo. Además, utilice sólo letras y "espacio"; no hay información estadística sobre las otras teclas.
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.