¿Es un secreto precompartido suficiente para el cifrado?

3

Supongamos:

A y B están configurados inicialmente para poseer la misma clave.

  

- la clave solo es conocida por el par
  - ninguna clave tiene que ser pública

A tiene un algoritmo, a, que toma un mensaje (texto plano), m, lo muta con una clave, k, produciendo un mensaje cifrado (texto cifrado), c.
B posee la misma clave, k, que permite que su algoritmo, b, tome c y k para reproducir m.
a y b están disponibles hoy en día; conecta el algoritmo que más te guste.
Entonces A y B se establecen para ser inmutables. Luego, A y B se separan y deben comunicarse a través de un medio vulnerable.

A solo envía mensajes a B.
B solo escucha y no da nada más que ACK por los mensajes que recibe.

Sé que B puede obtener una entrada maliciosa, pero ¿no se descifra la entrada maliciosa en basura?
¿Se puede falsificar A si la clave y el algoritmo se establecieron inicialmente antes de separarlos?
La clave y el algoritmo están preestablecidos, por lo que no se envía nada a través del medio, ¿verdad? Si A y B son inmutables, entonces nada puede ser cambiado / comprometido internamente.

La única infracción que puedo ver es si A o B se toman en su totalidad, y la clave se toma junto con uno de los algoritmos.

¿Hay alguna otra forma en que este método sea vulnerable?

ps. No especifiqué un algoritmo en particular, ya que el concepto parecía ser lo suficientemente aplicable a cualquier algoritmo para al menos proporcionar algún tipo de confidencialidad adicional.

    
pregunta user2738698 24.02.2014 - 18:52
fuente

4 respuestas

1

¡Sí!

Los cyphers pueden tomar todo tipo de formas. Por definición, todo lo que se necesita es un secreto.

No significa que será lo suficientemente seguro ...

enlace

EDITAR: Si está proponiendo implementar realmente algo así en la producción, repetiría el consejo experimentado en otras publicaciones. Utilice algoritmos y bibliotecas ya probados. Eso generalmente significa que, en su escenario, A se cifra con la clave pública B y B se descifra con la clave privada B.

También, considere que una vez que A o B caiga, es un desastre completo. Los atacantes pueden falsificar cualquier punto de la red, crear cualquier mensaje o leer cualquier mensaje que haya pasado a través de la red o que alguna vez lo hará.

    
respondido por el Sandokas 24.02.2014 - 19:02
fuente
1

El cifrado de clave privada es lo suficientemente fuerte como para protegerte dado que

  1. Estás usando un algoritmo lo suficientemente fuerte
  2. Tienes suficientes bits en la clave
  3. Está bastante seguro de que sus máquinas de punto final no se perderán ni serán robadas
  4. No tiene que lidiar con demasiados empleados descontentos que podrían robar la clave
  5. Para tratar con # 3 y amp; # 4, tiene algunos medios para hacer rodar la llave y distribuir otras nuevas en respuesta a los eventos de seguridad y también de forma proactiva en un horario regular (la frecuencia depende del tamaño de la llave)
respondido por el John Wu 24.02.2014 - 23:14
fuente
0

Parece que tienes algunos conceptos erróneos importantes. Una sal no es una parte del cifrado, es una parte del hash. Hay un concepto similar en el cifrado denominado IV o vector de inicialización que se usa en un cifrado de flujo para que sea más difícil analizar el resultado del cifrado de flujo, pero solo proporciona un beneficio si cada bloque de un mensaje depende de el bloque dependiente anterior para su salida (es decir, es un modo de encadenamiento).

La premisa básica del cifrado es que un mensaje (texto sin formato) se muta a través de un secreto (una clave) a un formulario que es difícil de entender sin la clave (texto cifrado). A lo largo de los años, ha habido muchos sistemas de este tipo con diferentes niveles de seguridad, desde los que se pueden descifrar de manera trivial hasta los que son muy difíciles (o incluso imposibles) de descifrar si se siguen adecuadamente.

La fuerza de la protección ofrecida depende de la aleatoriedad de la clave así como de la fuerza del propio algoritmo para resistir el análisis, y esa es la parte que es realmente muy difícil de entender.

    
respondido por el AJ Henderson 24.02.2014 - 19:17
fuente
0

Definitivamente hay problemas en el protocolo, no necesariamente en el esquema de encriptación del que pregunta.

El protocolo permite ataques de repetición, es decir, una entidad R puede capturar los mensajes que A envía a B, y luego los reenvía sin saber qué hay en esos mensajes, aunque A no haya tenido la intención de enviarlos. Luego todo se reduce a lo que contienen esos mensajes. Por ejemplo, vamos a que A y B son computadoras y A envía un mensaje a B para reiniciar, y otra entidad E lo captura. Ahora, solo reproduciendo el mensaje y observando el comportamiento de B, E no solo puede hacer que B se comporte como quiere, sino que también entiende lo que significa el mensaje aunque no pueda ver el contenido.

Un segundo tipo de ataque es que otra entidad M puede falsificar A y comenzar a enviar B con muchos mensajes. Dado que B no sabe si provienen de una fuente confiable, B intentará descifrar esos mensajes y consumir recursos. Puede que M no necesite tantos recursos, ya que todo lo que M debe hacer es crear y enviar datos aleatorios, pero B comenzará a quedarse sin recursos, eso es un ataque de DOS.

Otro ataque involucra a M que captura los mensajes que A envía a B y responde con ACK en nombre de B, que ha capturado en un intercambio anterior. B nunca recibe los mensajes reales y no sabe que no recibió el mensaje. A nunca sabe que no fue B quien recibió el mensaje, sino que fue E.

Hay otros ataques más sofisticados que se pueden construir de esta manera. Los que enumeré aquí son típicamente los ataques introductorios que se observan al diseñar protocolos seguros.

La seguridad viene con toda una plétora de cosas, no solo con cifrado. El cifrado resuelve un aspecto, aunque el más importante, alrededor de la seguridad. Pero en su caso, también está diseñando un protocolo que no es seguro y, por lo tanto, también puede utilizar un protocolo existente.

Ahí es donde entran los protocolos de seguridad en los que se realizan los protocolos apropiados, la autenticación (para garantizar que la otra parte es la correcta), proporciona protección contra los ataques de repetición, etc. Los ataques de intermediarios podrían ser una vulnerabilidad no confíe en la infraestructura de clave pública, es decir, aunque en su caso, puede resolver eso porque A y B tienen un secreto compartido (de hecho, supongo que está comenzando con el secreto compartido principalmente porque A y B sí lo hacen). No confíe en nadie más en el mundo, generalmente es una buena razón para compartir secretos.)

Por cierto, una vez que tenga dichos protocolos de seguridad, dado todos los datos que deben enviarse entre sí, terminará con tokens de seguridad para asegurarse de que todas las partes tengan un entendimiento mutuo de lo que contienen, cómo está codificado, etc. (p. ej., nonce, claves, datos cifrados, firma digital, etc.)

En esencia, IMO, está intentando crear su propio protocolo de seguridad y, como alguien ya lo ha mencionado, es mejor que intente comenzar con un protocolo existente.

    
respondido por el Omer Iqbal 11.06.2014 - 21:04
fuente

Lea otras preguntas en las etiquetas