¿Cuál es la diferencia entre la autenticación implícita y la autenticación básica ?
http
authentication
https
basic-authentication
digest-authentication
Freelance de puntos
fuente
fuente
Respuestas:
La autenticación implícita comunica las credenciales en forma cifrada mediante la aplicación de una función hash a: el nombre de usuario, la contraseña, un valor nonce proporcionado por el servidor, el método HTTP y el URI solicitado.
Mientras que la autenticación básica utiliza codificación base64 no encriptada .
Por lo tanto, la autenticación básica generalmente solo debe usarse donde se proporciona seguridad de la capa de transporte, como https.
Ver RFC-2617 para todos los detalles sangrientos.
fuente
Autenticación de acceso básico HTTP
La autenticación básica utiliza la codificación base64 (no el cifrado) para generar nuestra cadena criptográfica que contiene la información de nombre de usuario y contraseña. HTTP Basic no necesita implementarse sobre SSL, pero si no lo hace, no es seguro en absoluto. Así que ni siquiera voy a entretener la idea de usarlo sin él.
Pros:
Contras:
En resumen : si tiene el control de los clientes o puede asegurarse de que usan SSL, HTTP Basic es una buena opción. La lentitud de SSL se puede cancelar con la velocidad de solo hacer una solicitud
Sintaxis de autenticación básica
Autenticación de acceso de resumen HTTP La autenticación de acceso de
resumen utiliza las metodologías de hash (es decir, resumen significa cortar en trozos pequeños) para generar el resultado criptográfico. La autenticación de acceso HTTP Digest es una forma más compleja de autenticación que funciona de la siguiente manera:
Pros:
Contras:
En resumen , HTTP Digest es inherentemente vulnerable a al menos dos ataques, mientras que un servidor que utiliza un cifrado seguro para contraseñas con HTTP Basic sobre SSL es menos probable que comparta estas vulnerabilidades.
Sin embargo, si no tiene control sobre sus clientes, podrían intentar realizar la autenticación básica sin SSL, que es mucho menos seguro que Digest.
RFC 2069 Sintaxis de autenticación de acceso implícito
RFC 2617 Sintaxis de autenticación de acceso implícito
fuente y ejemplo
En Cartero se ve de la siguiente manera:
Nota:
fuente
Veamos la diferencia entre las dos autenticaciones HTTP usando
Wireshark
(Herramienta para analizar paquetes enviados o recibidos).1. Autenticación básica HTTP
Tan pronto como el cliente ingrese el nombre de usuario correcto : contraseña , según lo solicitado por el servidor web, el servidor web verifica en la base de datos si las credenciales son correctas y le da acceso al recurso.
Así es como se envían y reciben los paquetes:
En el primer paquete, el Cliente completa las credenciales utilizando el método POST en el recurso: a
lab/webapp/basicauth
cambio, el servidor responde con el código de respuesta http 200 ok , es decir, el nombre de usuario: contraseña era correcta.Ahora, en el
Authorization
encabezado muestra que es Autorización básica seguida de una cadena aleatoria. Esta cadena es la versión codificada (Base64) de las credencialesadmin:aadd
(incluidos los dos puntos).2) Autenticación de resumen HTTP (rfc 2069)
Hasta ahora hemos visto que la autenticación básica envía nombre de usuario: contraseña en texto plano a través de la red. Pero la autenticación implícita envía un HASH de la contraseña utilizando el algoritmo Hash.
Aquí hay paquetes que muestran las solicitudes realizadas por el cliente y la respuesta del servidor.
Tan pronto como el cliente ingrese las credenciales solicitadas por el servidor, la contraseña se convierte
response
mediante un algoritmo y luego se envía al servidor. Si la base de datos del servidor tiene la misma respuesta que el cliente, el servidor da acceso al recurso , de lo contrario, un error 401 .En lo anterior
Authorization
, laresponse
cadena se calcula utilizando los valores deUsername
,Realm
,Password
,http-method
,URI
yNonce
como se muestra en la imagen:(se incluyen dos puntos)
Por lo tanto, podemos ver que la autenticación implícita es más segura, ya que implica Hashing (cifrado MD5), por lo que las herramientas sniffer de paquetes no pueden detectar la contraseña, aunque en la autenticación básica se mostró la contraseña exacta en Wireshark.
fuente
La autenticación básica utiliza la codificación base 64 para generar una cadena criptográfica que contiene la información de nombre de usuario y contraseña.
La autenticación de acceso implícito utiliza las metodologías de hash para generar el resultado criptográfico
fuente