Tanto la autenticación como la autorización tienen significados distintos. Pero, es normal que se piense que estos son sinónimos. De hecho, son procesos de seguridad que tienen propósitos diferentes. En esencia, la autenticación verifica la identidad del usuario que quiere acceder a un recurso. Por otro lado, la autorización valida si efectivamente el usuario tiene el permiso para acceder al mismo o realizar alguna función. Hoy en RedesZone os vamos a explicar en detalle las diferencias entre autenticación y autorización, para que te queden claros estos dos conceptos tan importantes en la seguridad informática.
Autenticación y autorización: aclarando conceptos
Es importante comenzar por lo esencial, es decir, definir qué significa cada cosa. Así sabremos reconocer cómo actúa cada uno de estos términos. Ambos están relacionados con la identidad del usuario, con el hecho de poder iniciar sesión o acceder a un determinado dispositivo según los permisos.
En qué consiste la autenticación
La autenticación es el proceso de identificar a los usuarios y garantizar que los mismos sean quienes dicen ser. Esto evita que cualquiera pueda entrar en un determinado sistema o iniciar sesión en alguna plataforma de forma indebida, sin que realmente sea el usuario legítimo que tiene el poder para hacerlo.
¿Cuál podría ser una prueba de autenticación? La más utilizada es la contraseña. Podemos decir que es la principal barrera para evitar intrusos. Si el usuario conoce su par de credenciales (nombre de usuario y contraseña), el sistema entenderá que la identidad de dicho usuario es válida. En consecuencia, podrá acceder al recurso o conjunto de recursos deseado.
Hay una tendencia visible a métodos adicionales de autenticación, para evitar únicamente el uso de las contraseñas. Uno de estos métodos de autenticación adicional son los OTP (OTP – One Time Passcodes) que son series alfanuméricas que llegan por mensaje de texto (SMS), correo electrónico o lo generamos con una aplicación autenticadora como Google Authenticator, Authy o Latch. El OTP se utiliza para la autenticación MFA, es decir, multifactor. Es un paso extra que nos da una mayor seguridad a la hora de autenticar a un usuario.
Otra aplicación de autenticación más moderna es el SSO o Single Sign-On en donde un usuario puede acceder a todos los recursos de sistema que necesita. Esto, sin necesidad de ingresar su par de credenciales cada vez que quiere ingresar a tal o cual cosa.
Entonces, ¿en qué consiste la autorización?
La autorización es lo que define a qué recursos de sistema el usuario autenticado podrá acceder. Que haya logrado pasar la instancia de la autenticación, no significa que podrá utilizar el sistema por completo como super administrador. De acuerdo a una serie de reglas, normas y regulaciones propias de cada red interna, se determina que el usuario A tendrá acceso a los recursos X e Y. Sin embargo, el usuario B sólo podrá acceder al recurso Z.
Si fuese un usuario administrador, tendría acceso tanto a los recursos X, Y y Z como a los recursos 1, 2, y 3, que son exclusivos de aquellos que tienen permisos y privilegios de administrador.
Se pueden sintetizar ambos conceptos de la siguiente manera:
- Autenticación: verifica las identidades, por diferentes métodos (algo que sabemos, algo que tenemos, algo que somos).
- Autorización: verifica los permisos que corresponden a cada identidad.
Como mencionamos, la identificación sin autentificación no valdría para nada, pues cualquiera puede introducir un inicio de sesión, el cual existe en la base de datos. Por lo cual es necesario un sistema de contraseña. Por lo contrario, la autorización sin identificación, puede llegar a ser posible. Podemos, por ejemplo, facilitar el acceso a un documento en la nube, para que cualquiera que tenga el enlace pueda acceder a él.
Ante todos estos métodos, siempre será recomendable seguir unos pasos.
- Crear contraseñas complejas, únicas y sólidas para todas nuestras cuentas.
- Si es necesario, podemos usar un gestor de contraseñas que las recuerde por nosotros. Hoy en día, esta función ya está integrada en gran cantidad de dispositivos.
- Activar la autenticación en dos factores. Esto puede generar códigos que usaremos a mayores de nuestras credenciales, incluso textos. De lo contrario, si alguien averigua nuestra contraseña, podrá acceder sin ningún problema.
Métodos de autenticación más utilizados
Ya hemos repasado uno de los métodos más utilizados: el MFA o autenticación Multifactor. Pasemos a citar otros métodos populares:
- Sin contraseña o Passwordless. Este es uno de los métodos modernos más prácticos. Un ejemplo de aplicación es el uso de un enlace mágico (magic link). Consiste en que, cada vez que quieras iniciar sesión a un recurso o servicio, se enviará a tu correo electrónico un enlace que te permitirá acceder sin necesidad de contraseña. Este es un método recomendable, ya que se necesita del acceso al correo electrónico y, por ende, hay más garantías de asegurar que es el propio usuario quien está accediendo.
- Por redes sociales. Sin duda, ya habrás utilizado este método. Varias aplicaciones y servicios te dan como opción iniciar sesión directamente con alguna cuenta social. La ventaja principal es que no hace falta crear una cuenta aparte de forma manual, directamente los datos de esa cuenta social hacen ese paso al iniciar la sesión. Las plataformas sociales más utilizadas son Facebook, Twitter y la cuenta Google. De esta forma podremos iniciar sesión en programas o páginas de forma más rápida, sin tener que registrarnos.
- Autenticación API. Este es el proceso de certificar la identidad de un usuario que quiera acceder a recursos y/o servicios en el servidor. Para tener en cuenta, alguna de las APIs de autenticación más populares son: autenticación básica por HTTP, de Core (núcleo) API y OAuth.
- Autenticación Biométrica. Se vale de las huellas dactilares para validar la identidad del usuario. El caso de uso más popular es en los lugares de trabajo, en donde tanto para registrar la entrada como salida, se posa el dedo para validar la huella dactilar. Esa huella es validada mediante un previo registro de la misma que se almacena en la base de datos. Es cada vez más utilizado este método también en dispositivos móviles, para iniciar sesión, realizar un pago, etc.
Métodos de autorización más utilizados
Lo que comentaremos a continuación, es información especialmente útil para todo desarrollador aplicaciones y servicios web en general. Recordemos que parte fundamental de una gran experiencia de usuario es que los mismos puedan acceder con confianza y seguridad a todos los recursos necesarios en todo momento que precisen disponer de los mismos.
- Autorización HTTP. Así como la autenticación, existe la autorización de tipo HTTP. ¿En qué consiste? La persona ingresa su nombre de usuario y contraseña para poder autenticarse. Es bueno tener presente que este método no implica a las cookies, IDs de sesiones o páginas de inicio de sesión. Este puede ser usado por servidores para revisar solicitudes, y por parte de un cliente para proveer información de autentificación. Para realizar esto, el servidor responde al usuario con un «Unauthorized», el cual también le proporciona al usuario toda la información para que conozca el método de autorización. Luego, el cliente que se quiera autorizar puede hacerlo con una solicitud «Authorization», y sus credenciales. Lo más normal es que el cliente haga una solicitud mediante un usuario y contraseña, en donde se incluye un encabezado «Authorization» directo al servidor.
- Autorización API. Así como la autenticación, existe la autorización de tipo API. Cuando el usuario intenta ganar acceso a recursos de un sistema durante su registro, se genera una clave API. Esa misma clave se empareja con un token (una ficha identificadora) que se encuentra oculto. Entonces, esa combinación de clave API y token oculto es la que se utiliza constantemente cada vez que el usuario se autentica e ingresa a su entorno de recursos y servicios que puede utilizar. Estas se implementan para definir lo que el cliente debe hacer para enviar una solicitud al servidor, y para definir la respuesta que este recibe.
- OAuth 2.0. Este método permite que la API se autentique y acceda a los recursos del sistema que necesita. La versión 2.0 de OAuth es uno de los métodos más seguros tanto de autenticación como autorización. Funciona de forma que el usuario delega la función de realizar algunas acciones, a las cuales da su consentimiento para realizarlas a su nombre. Un ejemplo, pueden ser las aplicaciones que genera un post en Twitter de forma automática.
- Autorización JWT. Es un estándar abierto que se utiliza para la transmisión segura de datos entre distintas partes. Tiene soporte tanto para la autenticación como para la autorización. JWT es utilizada comúnmente para la autorización, y se vale un par de claves público-privada. Es decir, ese par contiene una clave privada y una pública.
Es sumamente importante implementar y utilizar tanto la autenticación como la autorización. Ambos procesos de seguridad proveen capas adicionales de protección a los sistemas y los recursos. Esta protección extra permite que se prevengan numerosos ciberataques que perjudican especialmente a los usuarios. Recordemos que estos usuarios ponen en manos de las aplicaciones y servicios sus datos personales.
En muchos casos, se incluyen datos sumamente sensibles como los bancarios, financieros y comerciales. Los eventos de filtración de datos son uno de los riesgos más grandes a los que se enfrentan los sistemas. Que una organización y su aplicación o servicio ofrecido se vea afectado por una filtración de datos, implica una gran violación a la seguridad y privacidad de los usuarios, que desemboca en perjuicios de valor incalculable para los mismos.
¿Por qué son necesarios estos sistemas?
Mabos sistemas son partes cruciales dentro de las estructuras de todas las empresas. Sin alguno de estos sistemas, cualquier persona podría llegar a acceder a los recursos y datos que en muchos casos son muy sensibles. Siendo esto algo que tiene graves consecuencias en muchos aspectos diferentes. Los robos de identidad, fraudes financieros y daños a la reputación son las principales consecuencias a las que nos podemos enfrentar. Estos sistemas siempre nos van a ayudar a garantizar la privacidad tanto de los usuarios internos como de los clientes, ya que se impide el acceso no autorizado en todos los casos.
Estos sistemas incorporan contraseñas, tokens de seguridad, autenticación de doble factor, o incluso reconocimientos biométricos. Y todo se puede implementar mediante el uso de roles y permisos. Todo en conjunto, nos permite tener un control de acceso a todos los recursos y acciones con los que se cuenta en la empresa. Esto sin duda es algo que ayuda directamente en la economía de la empresa, así como genera mucha más confianza en los clientes si estos saben que se cuenta con estrictas medidas de seguridad.
Por otro lado, estos poco a poco se han convertido es aspectos obligatorios en cualquier corporación. Esto tiene el objetivo de cumplir con todas las regulaciones y leyes de protección de datos. Como puede ser la GDPR de la Unión Europea, o la Ley de Protección de Datos Personales con las que cuentan muchos países. Estas regulaciones, hacen que las empresas necesiten incorporar todas estas medidas de seguridad para mantener a salvo la privacidad de todos los datos personales de los usuarios. Pues sin estos, los riesgos de accesos no autorizados, robos de identidad y fraudes, aumentan de forma considerable. Lo que puede tener consecuencias muy graves para la empresa, así como para los usuarios que han visto comprometida su seguridad.
Por tanto, como hemos visto hay diferencias entre autenticación y autorización. Hemos explicado qué significa cada término y en qué circunstancias lo vamos a utilizar. En ambos casos servirá para evitar el acceso indeseado y reducir así el riesgo de que posibles intrusos entren en las cuentas y dispositivos.