HTTP權威指南學習-第12章 基本認證機制
我們要保證只有特定的人能看到我們的敏感資訊並且能夠執行我們的特權事務。並不是所有的資訊都能夠公開發布的。
伺服器需要通過某種方式來了解使用者身份。從而判定使用者可以訪問的資源和事務了。
最常見的HTTP認證形式,基本認證(basic authentication)。
12.1 認證
認證就是要給出一些身份證明。
12.1.1 HTTP的質詢/響應認證框架
HTTP提供了一個原生的質詢/響應(challenge/response)框架,簡化了對使用者的認證過程。
大概就是訪問時讓你輸入使用者名稱和密碼。
12.1.2 認證協議與首部
HTTP通過一組可定製的控制首部,為不同的認證協議提供了一個可擴充套件框架。認證的4個步驟:
1.請求:客戶端傳送原始GET請求,沒有附加認證資訊
2.質詢:伺服器返回401拒絕請求,說明需要提供使用者名稱和密碼。
3.授權:客戶端重新傳送請求,附加上Authorization首部,用來說明認證演算法、使用者名稱和密碼。
4.成功:如果授權證書正確,伺服器就會將文件返回。
12.1.3 安全域
Web伺服器會將受保護的文件組織成一個安全域(security realm)。每個安全域都可以有不同的授權使用者集。
下面是一個假想的基本認證質詢:
HTTP/1.0 401 Unauthorized
WWW-Authenticate: Basic realm="Corporate Financials"
上面的realm就指定了域,域的描述性字元名是“Corporate Financials”。
12.2 基本認證
應用最廣泛的機制
12.2.1 基本認證例項
12.2.2 Base-64 使用者名稱/密碼編碼
HTTP基本認證機制將(由冒號分隔的)使用者名稱和密碼打包在一起,並用Base-64編碼方式對其進行編碼。它可以擾亂使用者名稱和密碼防止被管理員看到。
12.2.3 代理認證
中間的代理伺服器也可以實現認證功能。步驟與Web伺服器身份驗證的步驟相同。但首部和狀態碼都有所不同。
12.3 基本認證的安全缺陷
只能用它來防止非惡意使用者無意間進行的訪問,或將其與SSL這樣的加密技術配合使用。
缺陷有:
(1)通過網路傳送使用者名稱和密碼,且是以一種很容易解碼的形式表示的。實際上,密碼是以明文形式傳輸的,任何人都可以讀取並將其捕獲。可以通過SSL加密通道傳送所有HTTP事務,或使用更安全的摘要認證。
(2)即使密碼是以更難解碼的方式加密的,第三方使用者仍然可以捕獲被修改過的使用者名稱和密碼,並將修改過的使用者名稱和,密碼一次一次地重放給伺服器,以獲得對伺服器的訪問權。
(3)即使將基本認證用於一些不太重要的應用程式,比如公司內部網路的訪問控制或個性化內容的訪問,一些不良習慣也會讓讓變得很危險。
(4)沒有提供任何針對代理和作為中間人的中間節點的防護措施,他們沒有修改認證首部,但卻修改了報文的其餘部分,這樣就嚴重改變了事務的本質。
(5)假冒伺服器很容易騙過基本認證。這樣可以騙取使用者名稱和密碼。
一般將基本認證與加加密資料傳輸(SSL)配合使用,可以隱藏使用者名稱和密碼。會使得基本認證更加安全。
相關文章
- HTTP權威指南學習--第8章 整合點:閘道器、隧道及中繼HTTP中繼
- Http基本認證HTTP
- HTTP 1.x 學習筆記 —— Web 效能權威指南HTTP筆記Web
- http authorization 基本認證HTTP
- HTTP認證之基本認證——Basic(一)HTTP
- HTTP認證之基本認證——Basic(二)HTTP
- 認證授權:學習OIDC
- 認證授權:學習OAuth協議OAuth協議
- Hadoop權威指南 第4章 關於YARNHadoopYarn
- CISSP認證考試指南(第7版)
- 【315全民季】Adobe權威國際認證體系,Adobe國際認證!
- 首款透過! 機器學習服務活體檢測演算法榮獲CFCA權威安全認證機器學習演算法
- 留學指南權威乾貨與攻略!
- EMQX_AUTH_HTTP 認證外掛使用指南MQHTTP
- MongoDB身份認證機制揭秘!MongoDB
- HTTPS 加密與認證機制HTTP加密
- JavaScript 日期權威指南JavaScript
- 【ASP.NET Core學習】使用JWT認證授權ASP.NETJWT
- 跟我一起學Go系列:Go gRPC 安全認證機制-SSL/TLS認證GoRPCTLS
- 《HTTPS權威指南》-公鑰基礎設施(PKI)學習筆記HTTP筆記
- REST API簽名認證機制RESTAPI
- [譯] JAVASCRIPT 日期權威指南JavaScript
- Java 13權威指南 - CodeFXJava
- JavaScript權威指南(6)——物件JavaScript物件
- 電子書下載:MySQL5權威指南(第3版)MySql
- Swift程式設計權威指南第2版 讀後收穫Swift程式設計
- HTTP認證之摘要認證——Digest(一)HTTP
- 權威認證 浪潮雲海超融合榮獲信通院“可信雲-超融合”認證
- 認證授權
- 理解OIDC協議和認證機制協議
- 認證授權方案之JwtBearer認證JWT
- Elasticsearch 權威指南(中文版)Elasticsearch
- javascript權威指南——函式篇JavaScript函式
- HBase權威指南【中文版】
- JavaScript權威指南(8)——函式JavaScript函式
- JavaScript權威指南(7)——陣列JavaScript陣列
- 微服務入門權威指南微服務
- 權威認證|安芯網盾記憶體保護系統獲《IT產品資訊保安認證證書》記憶體