es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Beneficios de rendimiento al utilizar el mismo mecanismo de encriptación/desencriptación para todos los participantes en el intercambio de mensajes a través de nats-server.

Básicamente lo que dice el asunto. Me preguntaba si existen beneficios en términos de rendimiento al utilizar el mismo mecanismo de encriptación/desencriptación cuando los clientes se comunican a través de mensajes enviados/recibidos desde el mismo servidor nats.

He planteado la misma pregunta aquí si alguien está interesado:

https://github.com/nats-io/nats-server/discussions/2740

Consideremos, por ejemplo, los siguientes dos escenarios para la comunicación basada en nats:

Escenario #1:

Un publicador (P) está publicando en nats en el tema “foo.bar”, utilizando el esquema de encriptación-desencriptación (A) con su propia clave de encriptación (A)

Un consumidor (C) está suscrito al tema nats “foo.bar”, utilizando el esquema de encriptación-desencriptación (B) con su propia clave de encriptación (B)

En este escenario, asumo que el servidor nats descifrará los mensajes publicados por (P) utilizando el esquema de desencriptación (A), examinará el tema y reenviará los mensajes “foo.bar” al consumidor (C) después de haber vuelto a encriptar estos mensajes utilizando el esquema de encriptación (B).

Escenario #2:

Un publicador (P) está publicando en nats en el tema “foo.bar”, utilizando el esquema de encriptación-desencriptación (A) con su propia clave de encriptación (A)

Un consumidor (C) está suscrito al tema nats “foo.bar”, utilizando el mismo esquema de encriptación-desencriptación (A) que el publicador

En este escenario, asumo que el servidor nats solo necesitaría descifrar el tema del mensaje publicado por (P) utilizando el esquema de desencriptación (A) y, después de examinar el tema, reenviaría los mensajes “foo.bar” al consumidor (C) mediante “copiar y pegar” la carga útil (datos) del mensaje “tal cual” ya que el mecanismo de encriptación-desencriptación es exactamente el mismo.

Supongo que esta simetría en la encriptación-desencriptación debería proporcionar un mejor rendimiento cuando la carga es alta.

¿Estoy en lo correcto con estas suposiciones? ¿O me falta algo? No he visto que nadie señale el escenario #2 como una forma de aumentar el rendimiento y reducir la latencia (potencialmente reduciendo también las tasas de error).

¿Opiniones? ¿Ideas? ¿Enlaces a documentación relevante?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Utilizando el mismo mecanismo de cifrado/descifrado para clientes que se comunican a través de mensajes enviados/recibidos desde el mismo servidor NATS puede potencialmente proporcionar un mejor rendimiento y reducir la latencia, especialmente en escenarios de alta carga. En el escenario #2, donde el publicador y el consumidor utilizan el mismo esquema de cifrado-descifrado, el servidor NATS solo necesita descifrar el asunto del mensaje publicado por el publicador y enviar el mensaje al consumidor “tal cual” sin volver a cifrarlo. Esta simetría en el cifrado-descifrado puede mejorar significativamente el rendimiento en comparación con el escenario #1, donde el servidor NATS requiere volver a cifrar. Sin embargo, es importante tener en cuenta que este enfoque requiere que el publicador y el consumidor tengan acceso al mismo esquema de cifrado-descifrado, lo cual puede no ser siempre factible dependiendo de los requisitos de seguridad específicos del sistema. Puede ser necesario realizar experimentación y pruebas adicionales para determinar el mecanismo de cifrado/descifrado óptimo para un sistema determinado.

Comments are closed.