Published on

Tres conceptos básicos de seguridad web

Authors

Tres conceptos básicos de seguridad web

Iniciando mi estudio de seguridad web me encontré con estos tres conceptos básicos que pueden causar confusión pero es fundamental entender a la hora de desarrollar aplicaciones web ya sea que estes en la parte del frontend o del backend.

Authentication

Authentication o autenticación es la verificación de quién eres. Por ejemplo, supongamos que llegas al aeropuerto y para abordar el avión te piden tu identificación ó pasaporte junto con tu ticket. Quien te atiende revisa que el pasaporte y el ticket tengan el mismo nombre y que la foto de tu ID coincida contigo. Es decir, verifican que eres quien dices ser.

La autenticación hace uso de una serie de factores para verificar una identidad. Estos se pueden clasificar dentro de los siguientes tipos:

  • Conocimiento

Es decir algo que tú sabes: como un username, contraseña, correo electrónico.

  • Posesión

Algo que tú tienes: un token físico, un smartphone.

  • Inherencia:

Algo que tú eres: por ejemplo el face ID del iPhone o un lector de huella digital.

La autenticación que usa solo un factor, tipo usuario-contraseña se le conoce en inglés como Single-Factor Authentication y en el standard actual se le considera insegura.

Seguro recientemente has hecho login en una app en donde además de escribir tu user y contraseña te piden un código que te llega a tu smartphone. Aquí se esta usando el factor conocimiento: algo que sabes (user y contraseña). Y, posesión: algo que tu tienes, en este caso el código de un solo uso, One-Time Password - OTP, que te llegó a tu celular. Cuando una autenticación usa multiples factores, como la de este ejemplo, se le conoce como Multi-Factor Authentication.

Authorization

Ahora bien, si la autenticación se refiere a verificar si eres quien dices ser. La autorización se refiere a verificar que estas permitido a hacer. Regresando a nuestro ejemplo del aeropuerto, ya se verifico que tú eres la persona a la que pertenece el ticket y haces match con tú ID. Te permiten abordar el avión. Tu tienes asiento clase turista. Dentro del avión los sobrecargos se encargan de que tomes el asiento que te corresponde y no uno de primera clase. Si quisieras entrar a la cabina del avión de igual manera te impedirían el acceso.

La autorización es importante para proteger otras cuentas, assets y privilegios.

No porque un pasajero tenga asientos de primera clase significa que puede sentarse en el asiento del piloto del avión.

Encryption

La encriptación en términos prácticos es transformar data en ilegible a menos que se tenga la llave para desencriptarla.

Tenemos dos tipos de encriptacion:

  • Symmetric encryption: usa la misma key para encriptar y desencriptar la data.
  • Asymmetric encryption: usa una key para encriptar y otra para desencriptar la data.

Conclusión

Estos tres conceptos que vimos en este post: Authentication, Authorization, Encryption. Son distintos pero se relacionan entre sí dentro de la seguridad web y ciberseguridad en general. Recuerda que la autenticación es sobre si eres quien dices ser. La autorización es acerca de los privilegios que cada usuario tiene dentro del sistema y la encriptación es sobre asegurar que ciertos datos solo pueden ser accesados por las personas correctas.