Cómo manejar la autenticación y autorización para conexiones TCP

Teniendo en cuenta una situación en la que el cliente Bob intenta autenticarse con el servidor TCP Alice. La autenticación se realizará mediante intercambio de claves. Ahora esto puede ser presa de suplantación o de espionaje. Entonces Bob y Alice usarán una conexión TLS segura para el intercambio de claves.

Una vez que esté utilizando TLS, la mitad de los problemas relacionados con la autenticación ya están resueltos. Así que ahora es libre de diseñar su propio protocolo basado en el nivel de importancia requerido.

Establecimiento de enchufes:

Dado que Alice es el servidor, durante el registro, Alice asignará un puerto para Bob. Bob almacenará el puerto y la ip de Alice. Ahora, durante el inicio de TCP, Bob creará un zócalo de recepción utilizando el puerto y la IP de Alice. Y Bob generará un socket de envío utilizando su puerto e IP. Luego pasará su variable de socket a Alice. Alice hará de esto su receptáculo de recepción. Ahora Alice usará su ip y puerto (el asignado para Bob) para crear un socket de envío . Ahora Alice enviará un mensaje a Bob para hacerle saber que está lista para recibir. Bob recibirá el mensaje. Luego irá por la autenticación de la cuenta de usuario que se proporciona a continuación.

————————————————————————————————————-

Ahora, para usar cualquier servicio a través de TCP, por ejemplo, una simple aplicación de chat entre Bob y Alice, necesitamos autenticar la cuenta de usuario de Bob; de lo contrario, otra persona puede usar la computadora de Bob para chatear o leer sus mensajes.

Como Bob es cliente de Alice, podemos suponer que el proceso de registro ya se ha realizado antes y que Bob tiene una cuenta en el servidor (Alice). Ahora, durante el registro, ambas partes llegan a un acuerdo para usar la misma función criptográfica y la misma clave secreta (criptografía de clave simétrica). Por lo tanto, la clave solo la conocen Alice y Bob.

  • Después de que Bob recibe sus credenciales (ID de usuario y contraseña) del usuario, las cifrará con la clave secreta. Se generará un archivo binario generado.
  • Ahora Bob convertirá la codificación binaria a Base64 para garantizar que la información no se altere en el canal de comunicación debido al ruido en la transmisión.
  • Ahora el archivo se enviará a través del canal TLS a Alice.
  • Dado que la conexión TLS es un protocolo específico de sesión de usuario, la configuración de una conexión TLS significa que la identificación del usuario ya ha sido notificada al servidor.
  • Alice decodificará base64 a binario.
  • Alice descifrará el texto cifrado utilizando la clave almacenada correspondiente al ID de usuario.
  • La información descifrada contiene contraseña e ID de usuario.
  • La coincidencia de ambas ID de usuario obtenidas en los dos procesos demuestra que la ID de usuario existe en el servidor.
  • A continuación, Alice comparará la contraseña almacenada en la base de datos del servidor correspondiente a la identificación del usuario y se comparará con la obtenida.
  • Una coincidencia indicará que las credenciales son genuinas. Se genera una variable de sesión en el servidor correspondiente al usuario. como sesión [userid].
  • La variable de sesión se devuelve al cliente Bob como un mensaje de bienvenida que confirma la autenticación.

La conexión TLS se mantiene activa para garantizar la seguridad de los mensajes que se enviarán. Al cerrar sesión, Bob enviará una solicitud de cierre de sesión y Alice destruirá la variable de sesión, cerrando así la conexión TCP. Después de eso, TLS se cerrará.

Espero que esto ayude 🙂 🙂 !!