Select Language

Descifrado de Contraseñas con Preservación de la Privacidad: Un Protocolo para la Recuperación Segura de Hashes

Análisis del protocolo 3PC que permite el descifrado de hashes de contraseñas por terceros sin revelar el hash ni el texto plano, mediante cifrado predicado y hashes señuelo.
strongpassword.org | Tamaño del PDF: 4.6 MB
Calificación: 4.5/5
Su valoración
Ya ha valorado este documento
Portada de Documento PDF - Descifrado de Contraseñas con Preservación de la Privacidad: Un Protocolo para la Recuperación Segura de Hashes

Tabla de Contenidos

1. Introducción

Las contraseñas siguen siendo la forma dominante de autenticación de usuarios a pesar de los esfuerzos de la industria por adoptar soluciones sin contraseña. Almacenar hashes de contraseñas es una práctica estándar, pero probar su fortaleza mediante descifrado consume muchos recursos. Externalizar esta tarea a servidores de terceros introduce riesgos significativos para la privacidad, ya que tanto el resumen hash como el texto claro recuperado quedan expuestos. Este artículo presenta el protocolo Privacy-Preserving Password Cracking (3PC), que permite a un cliente aprovechar la capacidad computacional de un tercero para el descifrado de hashes sin revelar el hash objetivo ni la contraseña resultante.

2. El Protocolo 3PC

El protocolo 3PC está diseñado para resolver el problema de confianza en el descifrado de contraseñas externalizado. Su innovación central radica en permitir que un tercero realice el trabajo computacionalmente intensivo sin llegar a conocer nada sobre los datos reales del cliente.

2.1 Core Mechanism & Predicate Function

El protocolo se basa en el concepto de cifrado de predicado, adaptado para funciones hash. El cliente no envía el hash objetivo $H(p)$ directamente. En su lugar, envía un conjunto de anonimato que contiene el hash real mezclado con $k-1$ hashes señuelo cuidadosamente construidos. El rol del servidor de terceros es descifrar todos hashes en este conjunto utilizando un diccionario de contraseñas o un conjunto de reglas proporcionado.

La clave es la función predicado $f$. El servidor evalúa una contraseña candidata $p'$ contra cada hash en el conjunto de anonimato. La función se define de modo que $f(H(p'), H_i) = 1$ si y solo si $H(p')$ coincide con el hash $H_i$ en el conjunto. El servidor devuelve el conjunto de contraseñas candidatas que satisfacen $f=1$ para cualquiera hash en el conjunto, sin saber para qué hash específico (real o señuelo) se encontró una coincidencia.

2.2 Decoy Hash Generation & Anonymity Set

Generar señuelos plausibles es crítico para la seguridad. Los hashes señuelo deben ser indistinguibles del hash real para el servidor. El artículo propone generar señuelos a partir de una distribución que coincida con el espacio de salida de la función hash objetivo (por ejemplo, NTLM, SHA-256). Esto garantiza el $k$-anonimato para el hash real. El cliente mantiene negación plausible, ya que incluso el cliente no puede probar criptográficamente cuál hash era el objetivo original después de enviar el conjunto.

Ideas Clave

  • Privacidad a través de la Ofuscación en un Conjunto: La seguridad se deriva de ocultar el hash real entre señuelos, no del cifrado tradicional del hash en sí.
  • Desplazamiento de la Carga Computacional: La sobrecarga del cliente radica en generar el conjunto de anonimato; la ardua tarea de los ataques de fuerza bruta/por listas de palabras se externaliza completamente.
  • Promesa de Búsqueda en Tiempo Constante: El protocolo afirma permitir un tiempo de búsqueda independiente del tamaño $k$ del conjunto de anonimato, limitado únicamente por las IOPS del servidor.

3. Technical Implementation & Analysis

3.1 Fundamento Matemático

La seguridad del protocolo puede modelarse probabilísticamente. Sea $S$ el conjunto de anonimato de tamaño $k$, que contiene un hash real $H_r$ y $k-1$ señuelos $H_{d1}...H_{d(k-1)}$. La probabilidad de que el servidor adivine correctamente el hash real después de observar el conjunto y los resultados del descifrado es como máximo $1/k$, asumiendo señuelos perfectos.

La fuga de información $\mathcal{L}$ hacia el servidor puede cuantificarse utilizando min-entropía: $\mathcal{L} \leq -\log_2(1/k) = \log_2(k)$ bits. El cliente puede controlar la fuga ajustando $k$. La evaluación de la función predicado para un candidato $p'$ a través de todos los $k$ hashes puede representarse como un vector: $\vec{R} = [f(H(p'), H_1), f(H(p'), H_2), ..., f(H(p'), H_k)]$. Una coincidencia en la cualquiera posición devuelve $p'$ al cliente.

3.2 Performance & Scalability

El artículo sostiene que el cuello de botella principal no son las operaciones criptográficas, sino las operaciones de entrada/salida por segundo (IOPS) de la configuración de descifrado del servidor (por ejemplo, el ancho de banda de memoria de la GPU/FPGA). Dado que el servidor debe probar cada contraseña candidata contra todos los $k$ hashes, el factor de trabajo aumenta linealmente en teoría ($O(k)$). Sin embargo, al aprovechar el procesamiento por lotes eficiente en hardware paralelo, la ralentización efectiva puede minimizarse, acercándose a la búsqueda de "tiempo constante" reclamada para valores prácticos de $k$.

4. Experimental Results & Chart Description

Los autores implementaron una prueba de concepto en una arquitectura FPGA. Si bien no se detallan cifras de rendimiento específicas en el extracto proporcionado, el artículo afirma demostrar la viabilidad del protocolo.

Gráfico de Rendimiento Hipotético (Basado en la Descripción del Protocolo): Un gráfico de líneas probablemente mostraría la "Velocidad Efectiva de Descifrado" en el eje Y (por ejemplo, hashes/segundo) frente al "Tamaño del Conjunto de Anonimato (k)" en el eje X. La curva para un ataque tradicional en un único hash sería una línea alta y plana. La curva para el protocolo 3PC mostraría un descenso a medida que k aumenta, pero la pendiente sería menos pronunciada que una proyección lineal simple debido al procesamiento por lotes optimizado en FPGA/GPU. Una tercera línea podría representar el "Límite Teórico Superior (IOPS)", actuando como una asíntota para la curva del 3PC.

5. Caso de Ejemplo del Marco de Análisis

Escenario: Un probador de penetración freelance (Client) recupera un hash NTLM del sistema de un cliente. Se conoce la política de contraseñas: combinación alfanumérica de 9 caracteres. El probador carece de la potencia de GPU para descifrarlo a tiempo.

Aplicación del Protocolo 3PC:

  1. Configuración del Cliente: El evaluador establece un parámetro de privacidad, por ejemplo, $k=100$. El hash NTLM real es $H_{real}$. El software del cliente genera 99 hashes NTLM señuelo criptográficamente plausibles, creando el conjunto de anonimato $S$.
  2. Compromiso del Servidor: El evaluador envía $S$ a un servicio comercial de descifrado (Server) con la solicitud de descifrar todos los hashes utilizando un diccionario y reglas para contraseñas alfanuméricas de 9 caracteres.
  3. Procesamiento del Servidor: El servidor ejecuta sus herramientas de descifrado. Por cada contraseña candidata generada, calcula su hash NTLM y verifica si coincide con los 100 hashes en $S$ en una operación por lotes.
  4. Devolución de Resultado: El servidor devuelve una lista de todas las contraseñas que coincidieron. cualquiera hash en $S$. No especifica cuál hash coincidió.
  5. Filtrado del Cliente: El evaluador conoce el hash original $H_{real}$. Calcula el hash de cada contraseña devuelta para identificar la que coincide con $H_{real}$, recuperando así la contraseña objetivo. Las demás contraseñas devueltas corresponden a señuelos descifrados y se descartan.
El servidor solo descubre que uno de los 100 hashes pertenecía al evaluador, pero no cuál, y ve muchas contraseñas descifradas sin conocer su relevancia.

6. Core Insight & Analyst's Perspective

Perspectiva Central: El protocolo 3PC es un truco ingenioso y pragmático que convierte una limitación fundamental de la criptografía—la naturaleza unidireccional de las funciones hash—en una característica de privacidad. Reconoce que en el descifrado de contraseñas, el objetivo no es ocultar la proceso pero para ocultar el objetivo y el resultado dentro del ruido inherente del proceso. Esto no se trata tanto de criptografía "inquebrantable" como de una ofuscación estratégica de la información, similar en espíritu a cómo las redes de mezcla como Tor ocultan el origen de un mensaje dentro de una multitud.

Flujo Lógico: La lógica es sólida, pero depende de una suposición crítica y a menudo pasada por alto: la capacidad de generar señuelos perfectamente indistinguibles. Si el servidor puede distinguir estadísticamente los hashes reales de los señuelos (por ejemplo, basándose en la frecuencia en filtraciones previas o en patrones de generación de hashes), el modelo de $k$-anonimato colapsa. La extensión del cifrado predicativo a funciones hash que presenta el artículo es novedosa, pero la seguridad en el mundo real depende más de la calidad del algoritmo de generación de señuelos que de la función predicativa en sí.

Strengths & Flaws: Su fortaleza es su aplicabilidad directa a un nicho real y desatendido (pentesters conscientes de la privacidad) y su sobrecarga criptográfica relativamente ligera para el cliente. Una falla importante, como en muchos sistemas de preservación de la privacidad, es el trust-but-verify Paradoja. El cliente debe confiar en que el servidor ejecute correctamente el protocolo y no manipule el proceso (por ejemplo, registrando estados intermedios para correlacionar tiempos). A diferencia de protocolos criptográficos avanzados como el Cifrado Homomórfico Completo (FHE), que ofrece una garantía teórica más sólida pero es imprácticamente lento (como se observa en implementaciones tempranas como el trabajo seminal de Gentry), 3PC sacrifica seguridad criptográfica absoluta por eficiencia práctica. Esta es una compensación de ingeniería válida, pero debe comunicarse claramente.

Perspectivas Accionables: Para los equipos de seguridad, este protocolo es una herramienta viable para auditorías de contraseñas seguras, especialmente cuando el cumplimiento normativo (como el GDPR) restringe compartir hashes sensibles. El paso inmediato es implementar y auditar el módulo de generación de señuelos. Para los investigadores, el próximo desafío es fortalecer el protocolo contra ataques activos del servidor e integrarlo con otras PETs. El futuro no se trata solo de hacer privado el descifrado; se trata de construir un conjunto de operaciones de seguridad que preserven la privacidad, similar a la evolución desde el cifrado simple hasta las pruebas de conocimiento cero en protocolos de autenticación. 3PC es un primer paso prometedor en esa dirección para la seguridad ofensiva.

7. Future Applications & Research Directions

  • Auditoría de Seguridad Impulsada por el Cumplimiento: Permite a industrias reguladas (finanzas, salud) realizar pruebas rigurosas de fortaleza de contraseñas en las cuentas de los empleados sin exponer nunca los hashes de las contraseñas, ni siquiera a los equipos de auditoría interna, ayudando al cumplimiento de GDPR/CCPA.
  • Análisis de Hash Federado: Múltiples organizaciones podrían contribuir de manera colaborativa a un esfuerzo de descifrado contra un volcado de contraseñas de un actor de amenazas compartido (por ejemplo, de un grupo de ransomware) sin que ningún participante revele sus propios hashes internos ni vea los de los demás.
  • Integración con Servicios de Alerta de Filtraciones de Contraseñas: Los usuarios podrían enviar un conjunto de anonimato derivado de sus hashes de contraseña a un servicio como "Have I Been Pwned" sin revelar el hash real, mejorando la privacidad en la verificación de filtraciones.
  • Dirección de Investigación - Resiliencia Post-Cuántica: Investigar la seguridad del protocolo en un contexto post-cuántico. Si bien las funciones hash en sí mismas pueden ser resistentes a la cuántica, los mecanismos de generación de señuelos y la función predicado requieren un análisis frente a modelos adversarios cuánticos.
  • Dirección de Investigación - Modelos de Adversarios Activos: Extender el modelo de seguridad para considerar servidores activamente maliciosos que se desvían del protocolo (por ejemplo, introduciendo canales laterales) es crucial para su adopción en el mundo real.

8. References

  1. Bonneau, J., Herley, C., van Oorschot, P. C., & Stajano, F. (2012). The quest to replace passwords: A framework for comparative evaluation of web authentication schemes. IEEE Symposium on Security and Privacy.
  2. FIDO Alliance. (2022). FIDO: El Futuro de los Inicios de Sesión Rápidos, Seguros y sin Contraseñas. https://fidoalliance.org/
  3. Gentry, C. (2009). Un esquema de cifrado completamente homomórfico (Tesis doctoral, Universidad de Stanford). (Para comparación de técnicas de privacidad computacional).
  4. NIST. (2020). Digital Identity Guidelines (NIST Special Publication 800-63B).
  5. Weir, M., Aggarwal, S., de Medeiros, B., & Glodek, B. (2009). Password cracking using probabilistic context-free grammars. IEEE Symposium on Security and Privacy.
  6. Zhao, F., & Halderman, J. A. (2019). Medición del impacto de la fortaleza de las contraseñas en los ataques de adivinaciónUSENIX Security Symposium.