2 puntos por GN⁺ 2023-09-19 | 1 comentarios | Compartir por WhatsApp
  • Antes de que se eliminaran las restricciones de exportación de criptografía en EE. UU., la edición de exportación de Lotus Notes incluía una estructura de escrow de claves/puerta trasera llamada differential cryptography
  • Este método obtenía autorización de exportación cifrando 24 bits de un cifrado de 64 bits con la clave pública de la NSA, y la NSA podía acceder al texto plano probando por fuerza bruta solo los 40 bits restantes
  • Durante el proceso de ingeniería inversa, el identificador de la clave pública de la NSA dentro de la aplicación aparecía como O=MiniTruth CN=Big Brother, lo que revela un nombre intencionalmente orwelliano
  • El material de la clave pública fue reconstruido a partir de notas varios años después, por lo que existe posibilidad de errores; el módulo parecía estar en little endian y, en representación big endian, era e = 3, de 760 bits
  • El ID de usuario en formato de clave PGP Director, NSA <dirnsa@nsa.gov> fue creado de forma arbitraria y no es una clave autofirmada (self-signed)

La estructura de puerta trasera en la edición de exportación de Lotus Notes

  • Antes de que se eliminaran las restricciones de exportación de criptografía en EE. UU., la edición de exportación de Lotus Notes incluía una función de escrow de claves/puerta trasera llamada differential cryptography
  • La idea central era una estructura que obtenía autorización de exportación cifrando 24 bits de una clave de 64 bits con la clave pública de la NSA
    • La NSA podía obtener el texto plano probando por fuerza bruta solo los 40 bits restantes
    • Los usuarios comunes tenían que enfrentarse al espacio completo de claves de 64 bits, pero incluso en ese momento seguía existiendo la posibilidad de que la NSA pudiera asumir el mayor costo de un ataque por fuerza bruta
  • Se realizó ingeniería inversa partiendo de la suposición de que en algún lugar dentro de la aplicación debía existir una clave pública de la NSA correspondiente a la clave privada de la NSA

Identificador de clave y datos de clave pública encontrados

  • En el depurador, el nombre de la organización y el nombre común de la clave pública de la NSA aparecían así
    • O=MiniTruth CN=Big Brother
  • MiniTruth y Big Brother se relacionan con expresiones de la novela 1984 de George Orwell
    • El Ministry of Truth es la institución encargada de la propaganda y la supresión de la verdad en el libro
    • Big Brother aparece como el líder malvado de ese gobierno
  • Los datos de la clave pública se organizaron a partir de notas varios años después de la ingeniería inversa, por lo que existe posibilidad de errores
  • El módulo raw de la clave pública es el valor obtenido en el depurador y, tras prueba y error, se consideró que estaba en formato little endian
    • En representación big endian, e = 3
    • El módulo era de 760 bits
  • La clave pública también se presenta en formato de clave PGP
    • pub 760/13629D8D 1998/10/25 Director, NSA <dirnsa@nsa.gov>
    • Este ID de usuario fue creado de forma arbitraria y no es una clave autofirmada
  • En la salida de pgpacket, se confirma como un paquete de clave pública RSA
    • Version Byte: 3
    • Key Created: 25 Oct 1998 01:12:02
    • Algorithm: 1 (RSA)
    • Key ID: 0xA703EFD313629D8D

1 comentarios

 
GN⁺ 2023-09-19
Comentarios de Hacker News
  • Sobre este tema, vale la pena leer el comentario de Ray Ozzie (creador de Lotus Notes) en una discusión de HN de 2013
    https://news.ycombinator.com/item?id=5846189
    Antes de que se lanzara el software, Ray Ozzie y Kauffman explicaron públicamente en la conferencia RSA lo que estaban haciendo. No era una puerta trasera secreta, sino cumplimiento de controles de exportación, algo a lo que toda la industria tuvo que responder. Unos comentarios más abajo, también vale la pena leer el comentario de barrkel

    • Para quienes tengan menos de unos 37 años, quisiera recordarles que, antes de 2000, la criptografía —en especial la incluida en productos comerciales lanzados al mercado— estaba sujeta a una regulación gubernamental bastante distinta de la actual
      https://en.m.wikipedia.org/wiki/Crypto_Wars
      En pocas palabras, el gobierno de EE. UU. prácticamente prohibía lanzar productos de distribución internacional que incluyeran cifrado fuerte. Eso aplicaba en general a casi todos los productos comerciales, aunque ya existieran implementaciones open source de cifrado fuerte como PGP. Hoy a nadie le importa si distribuyes cifrado tan seguro como quieras, pero en aquel entonces era una época en la que había una probabilidad más o menos de 50/50 de que se activara todo el aparato legal del gobierno estadounidense. Fue una época realmente disparatada y contradictoria
    • Hay un video de un exdesarrollador de Microsoft que analiza bien NSAkey
      https://www.youtube.com/watch?v=vjkBAl84PJs
    • Fue una época interesante. Olvidé su nombre, pero una vez hablé brevemente con la persona que implementó crc32 y el algoritmo de cifrado de ZIP, y me dijo, casi como disculpándose, que ese cifrado había sido diseñado para ser exportable según las leyes de la época
      Todavía no es algo completamente trivial de romper, pero en el tiempo que toma probar una sola contraseña en un documento moderno de Office, se pueden probar millones de contraseñas en una entrada de archivo ZIP
    • Secreto o no, era una puerta trasera que podía ser explotada y de hecho lo fue. Es una época muy rara: los gobiernos de hoy exigen “puertas traseras secretas” a las empresas tecnológicas y aun así no ven el enorme riesgo
    • Esto no era secreto en absoluto. Trabajé en Lotus a mediados de los 90, y Lotus Notes tenía dos versiones: una para EE. UU. y otra etiquetada como “International”
  • (2002)
    Discusiones anteriores con Lotus Notes en el título:
    Hace 4 años
    https://news.ycombinator.com/item?id=21859581
    Hace 8 años
    https://news.ycombinator.com/item?id=9291404
    Hace 10 años
    https://news.ycombinator.com/item?id=5846189

  • El viejo y querido NOBUS. Otros errores más entretenidos de la NSA:
    https://en.wikipedia.org/wiki/Clipper_chip
    https://en.wikipedia.org/wiki/Dual_EC_DRBG

    • Esto y el Clipper Chip no son NOBUS. La NSA no quiere que la gente sepa que los sistemas criptográficos tienen una función de acceso para las fuerzas del orden
      Al FBI no le importa demasiado que la gente lo sepa, porque los criminales a los que apunta no aplican bien la seguridad operacional (OPSEC)
  • Me sorprende que la gente de la NSA tuviera suficiente introspección como para reconocer que esto era una conducta al estilo Big Brother, pero no para darse cuenta de por qué eso era malo

    • Eso probablemente fue sarcasmo del ingeniero de Lotus que lo insertó
    • “Big Brother” en sí no me sorprende. Era algo que se sabía desde hacía tiempo, así que al menos uno podía creer, aunque fuera un poquito, que tal vez tenían buenas intenciones. Algo como protegernos de los malos
      Pero MiniTruth… wow, eso sí sorprende
      Por contexto, en la novela 1984, el Ministry of Truth es el organismo encargado de la propaganda, y toda la sociedad está sumergida en esa propaganda. Todo en la sociedad en la que viven es mentira. Esto destruye cualquier última esperanza de que pudieran tener buenas intenciones. La última vez que recuerdo un ejemplo así de cuánto desprecio cínico sienten por la gente a la que dicen servir, y de lo descuidados que son, fue cuando se reveló que el chat interno de FTX se llamaba “Wirefraud”
  • ¿La puerta trasera original no estaba en los ejemplos de código que la NSA les proporcionaba a las empresas que querían usar criptografía? Recuerdo algo así como que les daban una semilla de ejemplo, y que la mayoría de las empresas, en vez de generar sus propios primos, la copiaban y pegaban, lo que hacía que para la NSA fuera muy fácil romperlo
    Mi memoria está borrosa y me cuesta encontrar la fuente original

  • Me pregunto qué tan difícil sería encontrar por fuerza bruta la clave privada a partir de una clave pública RSA de 760 bits de 1998. ¿Alguien sabe?

    • https://en.wikipedia.org/wiki/Integer_factorization_records y https://en.wikipedia.org/wiki/RSA_numbers dan algunas pistas. En particular, el segundo explica que una clave de 768 bits fue factorizada “el 12 de diciembre de 2009, a lo largo de 2 años”, y que el tiempo de CPU fue “aproximadamente equivalente a casi 2000 años de cómputo en una computadora basada en un AMD Opteron de 2.2 GHz de un solo núcleo”.
      Luego, en 2019, se factorizó una clave de 795 bits, y se dice que el tiempo de CPU fue de “aproximadamente 900 años-núcleo” tomando como referencia un CPU Intel Xeon Gold 6130 de 2.1 GHz. En comparación con la factorización de RSA-768, los autores estimaron que mejores algoritmos aceleraron el cálculo entre 3 y 4 veces, y computadoras más rápidas entre 1.25 y 1.67 veces.
      Así que, suponiendo que los algoritmos mejorados también se apliquen a números más pequeños, alguien que sepa manejar eso probablemente podría hacerlo en unos meses con unas cuantas decenas de máquinas modernas. Aunque factorizar números grandes parece mucho más difícil que ejecutar CADO-NFS y apuntarlo a un número y a un clúster.
      Por ejemplo, usando el valor del segundo paper de factorización que dice que “el cálculo de 795 bits debería ser 2.25 veces más difícil que el de 768 bits”, se podría estimar que romper la clave más pequeña con software moderno requeriría 900/2.25 = 400 años-núcleo de CPU en términos de Xeon. Ese CPU ya tiene 6 años. Con 24 servidores de 64 núcleos de rendimiento equivalente, tomaría un poco más de 3 meses. Es mucho para hacerlo como hobby por diversión, pero para una empresa con un interés económico razonable sería perfectamente factible, suponiendo que tenga personal capaz de entender y reproducir el trabajo.
    • Alguien ya intentó factorizarlo en 2018: http://factordb.com/index.php?query=444376527415060195687748...
    • Siempre depende de los recursos disponibles, es decir, recursos de cómputo y tiempo. Es posible, pero no es fácil.
      https://crypto.stackexchange.com/a/1982
    • Es una pregunta extrañamente específica. ¿Hay algo en particular que te preocupe?
  • Ahora que existe la nube, todo esto ya no hace falta. Por las leyes sobre datos almacenados, todos los correos de más de 6 meses quedan disponibles para que hagan con ellos lo que quieran.

    • Busqué, pero no encontré ningún resultado claro sobre qué ley obligaría a empresas como Google a dar a agencias gubernamentales acceso a datos almacenados sin una orden judicial ni una NSL.
  • Relacionado: https://github.com/goshacmd/nsa_panel