¿Por qué no usar cifrado simétrico?

4

Algo muy simple: la mayoría de nosotros nos comunicamos la mayor parte del tiempo con personas que ya conocemos. Alice y Bob probablemente también tienen contacto físico. Sí, hay casos en que los denunciantes quieren ponerse en contacto con los periodistas por primera vez, pero esa no es la situación problemática para la mayoría de nosotros.

Por lo tanto, el cifrado simétrico es apropiado y más simple que el asimétrico: una clave en lugar de cuatro para Alice y Bob. ¿Pero cómo compartes la clave secreta? Usted les dice en persona, lo lee por teléfono, usa One Time Secret o Diffie-Hellman.

¿Me he perdido algo? ¿O es el cifrado (para proteger cosas en tránsito) realmente fácil?

    
pregunta Peter 17.12.2014 - 12:33
fuente

10 respuestas

31

Si hablas con 1000 personas y usas claves simétricas compartidas previamente, debes recordar 1000 claves secretas. El almacenamiento de claves secretas puede ser difícil. Con el cifrado asimétrico solo tiene que recordar solo las claves públicas, y eso es fácil porque las claves públicas son públicas, por lo que pueden ser "recordadas" al ser publicadas en algún lugar, donde todos puedan verlas.

Además, habla con las máquinas más a menudo que con las personas. En particular, cada vez que visite un sitio web "https: //". ¿Cómo, precisamente, leería una tecla por teléfono con un servidor ? Es una máquina, no tiene una voz que puedas reconocer.

    
respondido por el Thomas Pornin 17.12.2014 - 12:51
fuente
24

Creo que estás subestimando el valor de contactar a alguien con quien nunca has hablado antes, y estás sobreestimando la complejidad de un sistema de clave pública.

Cada vez que desee comunicarse con alguien nuevo utilizando el cifrado simétrico, debe " decirle [la clave compartida] en persona, leerlo por teléfono, usar One Time Secret ," etc. Debe comunicarse con la persona por teléfono o en persona antes de poder contactarla en línea, lo que parece afectar seriamente la utilidad de la comunicación cifrada. Para la clave pública criptográfica, las claves se pueden publicar en línea en un repositorio público (o, mejor aún, en muchos repositorios en línea), eliminando esta desventaja. (De manera análoga, considere un mundo en el que es imposible crear una guía telefónica pública o pasarle un número de teléfono a un amigo: para llamar a alguien, primero debe reunirse con ellos en persona para agregarlos a su guía privada).

Tenga en cuenta que, al usar criptografía de clave pública, para vincular una clave a una identidad personal, todavía necesita comunicación fuera de banda (por ejemplo, partes de firma clave), pero la principal ventaja es que puede crear una Web pública de confianza. Si Alice quiere enviarle un mensaje a Bob, puede inspeccionar el trabajo para ver si hay docenas de personas que ya lo conocieron en persona. No es necesario que llame a Bob por teléfono antes de enviar un correo electrónico, ya que tiene acceso a su clave pública y acceso a muchas declaraciones criptográficas públicas de la validez del par de { key, identity } que encontró para Bob. (Con suerte, algunas de estas declaraciones provienen de alguien en quien confía, o de alguien en quien confía).

Usted dice que:

  

Por lo tanto, el cifrado simétrico es ... más simple que asimétrico: una clave en lugar de cuatro para Alice y Bob.

Pero el número de claves reales no es estrictamente relevante: deberíamos considerar el número de claves que necesita cada parte. Cada parte en criptografía de clave pública tiene que gestionar

  1. su propia clave privada,
  2. su propia clave pública, y
  3. una clave pública para cada persona con la que quieran ponerse en contacto.

Supongamos que hay n de personas que se comunican entre sí. En su sistema simétrico imaginado, el número de claves que posee cada parte es n-1 (una clave para cada otra persona). En un sistema asimétrico, el número de claves que posee cada parte es (n-1)+2 => n+1 (una clave para cada otra persona, más su propio par de llaves). Suponiendo un gran número de participantes n , eso no es una diferencia significativa en absoluto. (En términos amortizados, ambos son O(n) .)

    
respondido por el apsillers 17.12.2014 - 15:16
fuente
12

El problema que resuelve el cifrado asimétrico es que retiene el control sobre quién puede y no puede firmar / cifrar mensajes.

Supongamos que tiene una clave simétrica K . Alice, Bob y Eve comparten esta clave K para que todos puedan intercambiar mensajes cifrados. Sin embargo, Eve le entrega una copia de K a Mallory (que tiene intenciones maliciosas) sin avisar a nadie. Ahora se ha comprometido toda la red, y Mallory puede enviar y leer mensajes como cualquier otro miembro.

Si, en cambio, Alice, Bob y Eve tenían sus propias claves privadas A , B y E respectivamente (con las claves públicas A+ , B + y E+ ), luego, cuando Mallory se queda con E , todo lo que puede hacer es leer los mensajes destinados a Eve, y envíale mensajes que parezcan a Eve cifrados. Pasamos de una situación en la que Eve ha comprometido a toda la red, a una situación en la que la mala elección de Eve solo afecta los mensajes para ella.

Si pudiera confiar completamente en todas las personas, entonces la criptografía simétrica sería suficiente. Sin embargo, si pudiera confiar completamente en todas personas, entonces podría enviar texto sin formato. ;)

    
respondido por el Ryan Kennedy 17.12.2014 - 20:37
fuente
4

En primer lugar, el cifrado se realiza de manera que todos puedan usarlo y solo porque no necesite las ventajas de los métodos de clave pública / privada no significa que sea así para nadie más. Imagine a una persona en un país con una fuerte vigilancia: no podrá obtener una clave simétrica de manera segura, pero obtener una clave pública no es un problema porque todos pueden verla.

Otro gran beneficio de la inscripción asimétrica es que (en la mayoría de los casos) también puede firmar sus propios textos, por lo que puede probar que el mensaje es realmente suyo y que no ha sido alterado a través de Internet.

Información adicional

Un servicio web (onetimesecret por ejemplo) nunca es una buena idea para usar. Realmente no sabes lo que está sucediendo con tus datos, no sabes si es realmente seguro y supongo que si una agencia quisiera ver tu "secreto" no tendrían demasiados problemas para hacerlo.

    
respondido por el Tokk 17.12.2014 - 13:38
fuente
2

Un par de cosas hacen obvio que no entiendes el tema profundamente. En primer lugar, la biblioteca de javascript que menciona implementa RSA, que es un cifrado asimétrico. Diffie-Hellman es un esquema de intercambio de claves que utiliza el cifrado asimétrico para compartir una clave secreta que luego se utiliza para el cifrado simétrico. No está evitando el cifrado asimétrico con cualquiera de esas sugerencias.

En términos generales, el cifrado asimétrico no es adecuado para los "mensajes" en la forma en que nosotros, como usuarios, pensamos en los mensajes. En primer lugar, es estrictamente de tamaño limitado. Nunca puede transmitir de forma segura un mensaje sobre el tamaño permitido por el esquema de encriptación, donde un cifrado simétrico permite mensajes de longitud arbitraria. Normalmente, utilizará el cifrado asimétrico como un método para verificar la identidad y como un medio de intercambio de claves con un nuevo contacto, y es mucho más adecuado para estos roles que el cifrado simétrico.

En última instancia, un sistema de comunicación seguro completamente funcional utilizará el cifrado asimétrico junto con el cifrado simétrico, cada uno en función de sus fortalezas. Se supone que su problema aquí se plantea mediante una comprensión mínima de un sistema como PGP , y el hecho de que incorpora asimetría Cifrado para proteger las comunicaciones por correo Pero, si observa detenidamente el diagrama en la página de wikipedia, puede ver que solo está utilizando una clave pública criptográfica para cifrar una clave privada que se utiliza para cifrar / descifrar simétricamente el mensaje de correo electrónico.

    
respondido por el Jason 17.12.2014 - 20:38
fuente
2

Un hecho muy divertido es: Cuando utilice el sistema basado en encriptación Asymmetric , usted está en su mayoría utilizando la encriptación Symmetric . (No es obligatorio, por supuesto, pero sería inútil sin el cifrado Simétrico porque es lento y no tan seguro (...)).

== > La parte asimétrica se solo se usa para intercambiar la clave simétrica

Por lo tanto, si no tiene problemas para intercambiar la clave:

  • Por persona / computadora (y confías en que la persona es la que pretende ser, y la forma en que lo haces es segura, ... y otras cosas ya explicadas)
  • clave de pocos caracteres aleatorios de longitud - > Excesivamente importante (no te atreverías a usar una clave fácilmente capaz de fuerza bruta, ¿verdad?)
  • Tecla diferente cada tiempo - > Muy importante también ... (nunca se sabe)

Entonces, si esos no son un problema, entonces, seguro, es exactamente lo mismo usar solo el cifrado simétrico ... (y si es un problema, tendrás tu respuesta en " ¿Por qué estamos usando Asymetric? ";)

Editar: en realidad no es exactamente lo mismo (como se menciona en los comentarios). Por ejemplo, en una conversación entre Alicia y Bob, no tendrá pruebas (en una sala del tribunal) sobre quién escribe el mensaje (¿fue Alicia o Bob?).

    
respondido por el Nabodix 18.12.2014 - 12:32
fuente
1

Los mensajes en sí están protegidos con cifrado de clave simétrica, pero la clave se comparte mediante cifrado asimétrico. La biblioteca de Javascript que usted cita implementa RSA. Al igual que DH, es un algoritmo de cifrado de clave asimétrico que solo se utiliza para establecer una única clave compartida para proteger el mensaje o la sesión.

He aquí por qué el cifrado de clave asimétrico es valioso:

1: no necesito hablar contigo fuera de la banda antes de hablar contigo de forma segura
   1a: piense en los cientos o miles de dominios web a los que accede a diario, e imagínese si tuviera que llamar por teléfono a cada uno (se aplican tarifas de larga distancia en el extranjero) y lea largas cadenas de números y letras, y espere que no lo haga. la transcripción
 2: Si una clave está comprometida, debo llamar a la persona o personas que tienen acceso a ella y leer la nueva clave
 3: ¿Quién está respondiendo por mí? ¿Cómo sabes que soy legítimo? Con PKI, tienes una jerarquía de confianza. Alguien dice que soy quien digo ser y que no soy malicioso, y está apostando su reputación en ello.  4: ¿Cómo compruebo que el mensaje no se ha modificado en tránsito? No puedo firmarlo de una manera que lo demuestre
 5: Si soy un sitio web con un millón de clientes, ¿quiero REALMENTE almacenar y rastrear un millón de claves privadas? ¿Qué pasa si interactuar conmigo es anónimo? ¿Cómo puedo determinar qué clave privada usar?
 6: Vamos, no asumas que crypto es fácil. RSA, DH y ECDH surgieron porque es muy difícil, y esto lo lleva de chupar a ser manejable.

Y para la persona que se ofenderá de mi tono, estoy de permiso y no me importa

    
respondido por el DTK 17.12.2014 - 16:23
fuente
0

Otras respuestas ya cubrieron los aspectos específicos importantes de por qué varios enfoques de encriptación tienen valor, pero en última instancia, la respuesta a la pregunta:

"¿Por qué no usar cifrado simétrico (para correo electrónico con una parte conocida)?"

es que talla única no se ajusta a todas. La elección de los métodos de cifrado, los cifrados y los algoritmos dependen del modelo de amenaza contra el que desea protegerse. El cifrado simétrico es muy útil para lo que hace, pero el mal uso negará cualquier protección que pueda ofrecer.

¿Por qué Alice está cifrando la información a Bob? ¿Quién no quiere que lo lea? (Confidencialidad) ¿Quiere ella probar que fue ella quien lo envió? (Autenticidad) ¿Le importa si solo Bob puede leerlo o está bien si Bob le da la llave a otra persona? ¿Qué tal el administrador de la máquina de Bob para el almacenamiento de los datos en reposo?

    
respondido por el JesseM 18.12.2014 - 01:46
fuente
0

Te estás perdiendo la propiedad llamada secreto hacia adelante .

En un sistema privado, comparto una clave con Alice. Supongamos que Alice es asaltada por la Stasi y se apoderan de una computadora que tiene la llave. ¡Luego pueden usar esa clave para descifrar todos los mensajes que hemos intercambiado!

En un sistema de clave pública, le puedo dar una clave a Alice y eso le permite crear mensajes cifrados que nadie más que yo puede leer. Incluyendo a Alice , y quienquiera que se apodere de la computadora de Alice. Por lo general, esto implica una clave simétrica por sesión y se llama "perfecto secreto hacia adelante".

    
respondido por el pjc50 18.12.2014 - 10:32
fuente
0

Si Alice envía un mensaje cifrado simétricamente a Bob y Bob pierde la clave, ahora todos los mensajes que Bob envía a Alice pueden ser escuchados por terceros.

Si la clave es asimétrica, tu única esperanza es espiar a Bob mientras él todavía está escribiendo la clave de encriptación previa de Alice. Por supuesto, podría filtrar deliberadamente todos los mensajes de texto que envía, pero si no es malicioso y solo filtró la clave de Alice accidentalmente (o tal vez fue robada y no sabe), la asimetría anula el problema. Fuga de clave privada es muy mala. Fuga de clave pública: ¿a quién le importa?

Como a nadie le importa que su clave pública se filtre, es mejor que la filtre usted mismo. Si lo filtra lo suficientemente bien, al difundir en toda la red desde servidores públicos, incluso puede asumir que todos ya tienen su clave (o pueden obtenerla). Ahora el otro problema de Alice está resuelto: cómo obtener una llave para Bob en primer lugar.

    
respondido por el Superbest 19.12.2014 - 00:16
fuente

Lea otras preguntas en las etiquetas