首页 > 其他分享 >盘点HTTP的四种认证方式

盘点HTTP的四种认证方式

时间:2023-02-01 17:31:20浏览次数:43  
标签:HTTP 认证 发送 盘点 BASIC 服务器 ID 客户端

HTTP/1.1使用的认证方式有下面四种。

1、BASIC认证

BASIC认证(基本认证)是从HTTP/1.0就定义的认证方式。即便是现在仍有一部分的网站会使用这种认证方式。是Web服务器与通信客户端之间进行的认证方式。

认证步骤:

  1. 当请求的资源需要BASIC认证时,服务器会随状态码401Authorization Required,返回带WWW-Authenticate首部字段的响应。该字段内包含认证的方式(BASIC)及Request-URI安全域字符串(realm)。
  2. 接收到状态码401的客户端为了通过BASIC认证,需要将用户ID及密码发送给服务器。发送的字符串内容是由用户ID和密码构成,两者中间以冒号(:)连接后,再经过Base64编码处理。
  3. 接收到包含首部字段Authorization请求的服务器,会对认证信息的正确性进行验证。如验证通过,则返回一条包含Request-URI资源的响应。

BASIC认证虽然采用Base64编码方式,但这不是加密处理。不需要任何附加信息即可对其解码。换言之,由于明文解码后就是用户ID和密码,在HTTP等非加密通信的线路上进行BASIC认证的过程中,如果被人窃听,被盗的可能性极高。

2、DIGEST认证

DIGEST认证同样使用质询/响应的方式(challenge/response),但不会像BASIC认证那样直接发送明文密码。所谓质询响应方式是指,一开始一方会先发送认证要求给另一方,接着使用从另一方那接收到的质询码计算生成响应码。最后将响应码返回给对方进行认证的方式。因为发送给对方的只是响应摘要及由质询码产生的计算结果,所以比起BASIC认证,密码泄露的可能性就降低了。

认证步骤:

  1. 请求需认证的资源时,服务器会随着状态码401 Authorization Required,返回带WWW-Authenticate首部字段的响应。
  2. 接收到401状态码的客户端,返回的响应中包含DIGEST认证必须的首部字段Authorization信息。
  3. 接收到包含首部字段Authorization请求的服务器,会确认认证信息的正确性。认证通过后则返回包含Request-URI资源的响应。

DIGEST认证提供了高于BASIC认证的安全等级,但是和HTTPS的客户端认证相比仍旧很弱。DIGEST认证提供防止密码被窃听的保护机制,但并不存在防止用户伪装的保护机制。DIGEST认证和BASIC认证一样,使用上不那么便捷灵活,且仍达不到多数Web网站对高度安全等级的追求标准。因此它的适用范围也有所受限。

3、SSL客户端认证

SSL客户端认证是借由HTTPS的客户端证书完成认证的方式。凭借客户端证书(在HTTPS一章已讲解)认证,服务器可确认访问是否来自已登录的客户端。为达到SSL客户端认证的目的,需要事先将客户端证书分发给客户端,且客户端必须安装此证书。

认证步骤:

  1. 接收到需要认证资源的请求,服务器会发送Certificate Request报文,要求客户端提供客户端证书。
  2. 用户选择将发送的客户端证书后,客户端会把客户端证书信息以Client Certificate报文方式发送给服务器。
  3. 服务器验证客户端证书验证通过后方可领取证书内客户端的公开密钥,然后开始HTTPS加密通信。
4、基于表单认证

基于表单的认证方法并不是在HTTP协议中定义的。客户端会向服务器上的Web应用程序发送登录信息(Credential),按登录信息的验证结果认证。

基于表单认证本身是通过服务器端的Web应用,将客户端发送过来的用户ID和密码与之前登录过的信息做匹配来进行认证的。

认证步骤:

  1. 客户端把用户ID和密码等登录信息放入报文的实体部分,通常是以POST方法把请求发送给服务器。而这时,会使用HTTPS通信来进行HTML表单画面的显示和用户输入数据的发送。
  2. 服务器会发放用以识别用户的Session ID。通过验证从客户端发送过来的登录信息进行身份认证,然后把用户的认证状态与Session ID绑定后记录在服务器端。
  3. 客户端接收到从服务器端发来的Session ID后,会将其作为Cookie保存在本地。下次向服务器发送请求时,浏览器会自动发送Cookie,所以Session ID也随之发送到服务器。服务器端可通过验证接收到的Session ID识别用户和其认证状态。

通常,一种安全的保存方法是,先利用给密码加盐(salt)[插图]的方式增加额外信息,再使用散列(hash)函数计算出散列值后保存。但是我们也经常看到直接保存明文密码的做法,而这样的做法具有导致密码泄露的风险。

标签:HTTP,认证,发送,盘点,BASIC,服务器,ID,客户端
From: https://blog.51cto.com/key3feng/6031725

相关文章

  • 转载 Nginx 一个高性能的HTTP和反向代理服务器
    本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解过,欢迎留言交流。......
  • 车载吸尘器欧盟亚马逊CE认证EN50498检测报告办理
    车载吸尘器的风机叶轮在电动机高速驱动下,将叶轮中的空气高速排出风机,同时使吸尘部分内空气不断地补充进风机。这样就与外界形成较高的压差。吸嘴的尘埃、脏物随空气被吸入吸......
  • 亚马逊儿童文具书包CPC认证CPSIA检测
    新学期开始了,学习文具都准备好了吗?学生安全是大家关注的问题,尤其是与学生每日接触的学生用品的安全,更加重要。针对儿童学习文具,各国都有相应的检测标准。儿童文具分类:小学生......
  • HTTP1 与HTTP2的简要区别
    HTTP1.1与HTTP2的对比头信息压缩HTTP1.1中,每一次发送和响应,都有HTTP头信息。HTTP2压缩头信息,减少带宽。推送功能HTTP2之前,只能客户端发送数据,服务器端返回数据。HTTP2......
  • XMLHttpRequest Level2的新功能
    可以设置HTTP请求的时限可以使用FormData对象管理表单数据可以上传文件可以获得数据传输的进度信息设置HTTP请求时限  FormData对象管理表单数据......
  • 情人节装饰品氛围灯串欧盟亚马逊CE认证
    灯串出口欧洲CE认证使用什么标准?灯串产品出口欧洲,CE认证是灯具进入欧盟市场的通行证,要做CE认证,EMC和LVD两个指令!灯串CE认证使用LVD(安规)标准为:欧洲EN60598-2-20:2015灯串的......
  • 如何通过Zabbix Docker配置HTTPS访问系统?
    概述前面文章曾介绍过如果使用docker-compose快速部署一个Zabbix系统,但是部署的Zabbix系统是使用http协议进行访问的。有时候为了保证安全。我们需要配置使用https协议进......
  • 浏览器报Mixed Content错误的解决:Mixed content: load all resources via HTTPS to im
    https地址中,如果加载了http资源,浏览器将认为这是不安全的资源,将会默认阻止,这就会给你带来资源不全的问题了,比如:图片显示不了,样式加载不了,JS加载不了。控制台报错:Mixed......
  • HTTP学习笔记3-HTTP报文
    HTTP协议主要由三大部分组成:起始行(startline):描述请求或响应的基本信息;头部字段(header):使用key-value形式更详细地说明报文;消息正文(entity):实际传输的数据,它不一定是纯文......
  • mormot2 https演示
    mormot2https演示functionTFileServer.StartServer(constpmcPort:RawUtf8;pmMode:THttpServerMode;constpmcCertFileName,pmcPrivKeyFileName:TFileName;co......