PPP認證兩種:PAP和CHAP,兩次握手和三次握手

CHAP(Challenge-Handshake Authentication Protocol,質詢握手認證協議)的設計理念是增強網絡認證過程的安全性。在CHAP的三次握手過程中,不直接傳送用戶的明文密碼,以此來提高安全性,具體步驟如下:

  1. 服務器挑戰認證過程開始時,認證服務器向客戶端發送一個隨機生成的挑戰消息challenge)。這個消息是一個數據串,用于后續的認證計算,而不是直接請求用戶名和密碼。

  2. 客戶端響應:接收到挑戰消息后,客戶端使用自己知道的一個密鑰(通常是用戶密碼的某種加密形式或者衍生信息,但不是明文密碼本身)對這個挑戰消息進行處理(通常是哈希運算),然后將處理結果返回給服務器。這一過程不涉及用戶名的直接傳輸,進一步增加了安全性,因為即使通信被截獲,攻擊者也很難從中直接獲取到敏感信息。

  3. 服務器確認:服務器收到客戶端的響應后,使用它存儲的該客戶端的密鑰(或相應的加密信息)對原始挑戰消息執行相同的處理過程,并將結果與客戶端返回的響應進行對比。如果兩者匹配,說明客戶端確實擁有正確的密鑰,認證成功;如果不匹配,則認證失敗。

PAP的兩次握手很好理解,客戶端傳送,服務器回應判斷結果。

疑問:三次握手的時候,為啥是服務器發起?

CHAP采用三次握手過程,包含服務器的挑戰、客戶端的響應以及服務器的確認。為什么CHAP握手過程沒有客戶端先傳送用戶名密碼這一過程?

無論是CHAP還是PAP,我認為都應該是客戶端首先發起連接請求,難道這有問題嗎?你怎么說CHAP的認證開始是服務器發起,難道服務器隨時都在發起挑戰嗎,他怎么知道哪個客戶端需要建立連接呢?

======================================================================

讓我們澄清一下CHAP和PAP協議在PPP(點對點協議)連接建立過程中的角色和時序:

實際上,在PPP協議中,無論是使用CHAP還是PAP進行身份驗證,客戶端和服務器之間的連接初始化通常是由客戶端發起的。當客戶端嘗試建立PPP連接時,它會發送LCP(鏈路控制協議)的配置請求包給服務器,開始鏈路的建立過程。這一階段包括協商數據包的格式、認證方式等參數。

一旦LCP階段完成,如果雙方同意使用CHAP或PAP作為認證方法,認證流程才會開始。在這個上下文中,當我說“CHAP的認證過程開始是服務器發起”,我指的是在認證階段,確實是服務器首先發送一個挑戰(challenge)給客戶端,但這是在客戶端已經發起了PPP連接建立請求,并且雙方通過LCP協商確定使用CHAP之后的事情。

至于服務器如何知道哪個客戶端需要建立連接,這是因為在PPP連接建立的早期階段(即LCP協商階段),客戶端會向服務器發送一個或多個配置包,表明其存在并請求建立連接。服務器基于這些請求來初始化連接和隨后的認證過程。

總結來說,雖然認證的確切流程(如CHAP的挑戰)是由服務器發起的,但整個連接的嘗試最初是由客戶端啟動的。服務器響應客戶端的連接請求,并按照之前協商好的認證協議(如CHAP)來進行身份驗證。

那么,三次握手屬于PPP協議的NCP階段,對嗎?

實際上,三次握手并不直接屬于PPP(點對點協議)的NCP(網絡控制協議)階段。PPP協議的建立分為兩個主要階段:

1. **鏈路建立階段(LCP,Link Control Protocol)**:在這個階段,兩端設備通過交換LCP數據包來建立PPP鏈路,協商諸如最大傳輸單元(MTU)、認證協議、魔術字等參數。此階段確保了物理連接的建立和基本參數的設置。

2. **認證階段**:如果在LCP階段協商決定使用認證(如PAP、CHAP),認證將在LCP完成之后進行CHAP的三次握手認證流程發生在這個階段,但它并不是NCP的一部分。

3. **網絡層協議配置階段(NCP,Network Control Protocol)**:只有當鏈路建立和認證(如果適用)都成功完成后,才會進入NCP階段。在這個階段,為不同的網絡層協議(如IPCP用于IP協議)配置具體的參數,比如分配IP地址、DNS服務器地址等,以使數據能夠在PPP鏈路上傳輸。

因此,CHAP的三次握手認證過程發生在PPP的認證階段,而非NCP階段。NCP是在認證成功之后,用于配置網絡層協議參數的階段。

PPP到底分哪幾個階段?

PPP(點對點協議)的建立過程大致可以分為以下幾個階段:

1. **Dead(鏈路不可用)階段**:這是鏈路的初始狀態,表示物理層尚未準備好或者鏈路已斷開。當物理層變為可用時,PPP嘗試進入下一階段。

2. **Establish(鏈路建立)階段**:在這個階段,PPP鏈路開始進行LCP(鏈路控制協議)參數的協商,包括驗證類型、最大傳輸單元(MTU)、魔術字等。LCP協商成功后,鏈路進入Opened狀態,意味著鏈路控制協議層面已經準備好進行數據傳輸。

3. **Authenticate(認證)階段**(可選):根據LCP協商的結果,如果啟用了認證,接下來會進行用戶或設備的身份驗證。常見的認證協議有PAP(密碼驗證協議)和CHAP(挑戰握手驗證協議)。認證成功后,繼續到下一個階段;若失敗,則鏈路可能被終止并返回到Dead階段。

4. **Network-Layer Protocol(網絡層協議)配置階段**(NCP):一旦鏈路和認證(如果需要)都成功,接下來會進行NCP協商。NCP負責配置網絡層協議,如IPCP(Internet Protocol Control Protocol)用于配置IP參數,如分配IP地址、默認網關等。每種支持的網絡層協議都有其對應的NCP來配置必要的參數。

5. **Link Terminate(鏈路終止)階段**:當需要關閉鏈路時,PPP通過交換特定的終止包來優雅地關閉連接,之后鏈路回到Dead狀態。

請注意,認證階段并非總是必需的,這取決于LCP協商時是否啟用了認證。此外,整個過程是有序的,每個階段的成功完成通常是進入下一階段的前提條件。

結論:原來PAP和CHAP的認證階段,是介于LCP和NCP之間!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20204.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20204.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20204.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開源大模型源代碼

開源大模型的源代碼可以在多個平臺上找到,以下是一些知名的開源大模型及其源代碼的獲取方式: 1. **艾倫人工智能研究所的開放大語言模型(Open Language Model,OLMo)**: - 提供了完整的模型權重、訓練代…

springboot結合mybatis使用多數據源的方式

背景 最近有一個需求,有兩個庫需要做同步數據,一個Doris庫,一個mysql庫,兩邊的表結構一致,這里不能使用navicat等工具提供的數據傳輸之類的功能,只能使用代碼做同步,springboot配置多數據…

如何設置手機的DNS

DNS 服務器 IP 地址 蘋果 華為 小米 OPPO VIVO DNS 服務器 IP 地址 中國大陸部分地區會被運營商屏蔽網絡導致無法訪問,可修改手機DNS解決。 推薦 阿里的DNS (223.5.5.5)或 114 (114.114.114.114和114.114.115.115) 更多公開DNS參考: 蘋果…

ESP32-C3模組上實現藍牙BLE配網功能(1)

本文內容參考: 《ESP32-C3 物聯網工程開發實戰》 樂鑫科技 藍牙的名字由來是怎樣的?為什么不叫它“白牙”? 特此致謝! 一、藍牙知識基礎 1. 什么是藍牙? (1)簡介 藍牙技術是一種無線數據和…

【緩存】OS層面緩存設計機制

操作系統的緩存設計機制是計算機體系結構中的一個重要組成部分,旨在提高系統的性能,特別是通過減少對慢速存儲設備(如硬盤)的訪問次數來加速數據的讀取和寫入。 以下是一些常見的操作系統緩存設計機制: CPU緩存&…

web學習筆記(六十一)

目錄 如何使用公共組件來編寫頁面 如何使用公共組件來編寫頁面 1.導入公共組件nav.vue import Catenav from "/components/nav.vue"; 2.在頁面插入子組件 如果使用了setup語法糖此時就可以直接在頁面插入 <Catenav ></Catenav>標簽&#xff0c; …

.NET 快速重構概要1

1.封裝集合 在某些場景中,向類的使用者隱藏類中的完整集合是一個很好的做法,比如對集合的 add/remove 操作中包 含其他的相關邏輯時。因此,以可迭代但不直接在集合上進行操作的方式來暴露集合,是個不錯的主意。 public class Order { private int _orderTotal; private Li…

Camunda BPM架構

Camunda BPM既可以單獨作為流程引擎服務存在,也能嵌入到其他java應用中。Camunda BPM的核心流程引擎是一個輕量級的模塊,可以被Spring管理或者加入到自定義的編程模型中,并且支持線程模型。 1,流程引擎架構 流程引擎由多個組件構成,如下所示: API服務 API服務,允許ja…

邏輯回歸分類算法

文章目錄 算法推導 線性回歸解決連續值的回歸預測&#xff1b;而邏輯回歸解決離散值的分類預測&#xff1b; 算法推導 邏輯回歸可以看作是兩部分&#xff0c;以0、1分類問題說明&#xff1b; 線性回歸部分 對于一個樣本 x i x_i xi?&#xff0c;有n個特征 x i ( 1 ) x_i^{(1)…

蒙自源兒童餐新品上市,引領健康美味新潮流

隨著夏日的熱烈與兒童節的歡樂氛圍到來&#xff0c;蒙自源品牌隆重推出兒童餐新品&#xff0c;以“快樂不分大小&#xff0c;誰還不是個寶寶”為主題&#xff0c;為廣大消費者帶來一場健康與美味的盛宴。新品上市活動將于5月25日舉行&#xff0c;蒙自源將以其獨特的產品魅力和創…

install

目錄 1、 install 1.1、 //creates form with validation 1.2、 onStepChanging: function (event, currentIndex, newIndex) { 1.3、 onFinishing: function (event, currentIndex) { 1.4、 //init inst

最新 HUAWEI DevEco Studio 調試技巧

最新 HUAWEI DevEco Studio 調試技巧 前言 在我們使用 HUAWEI DevEco Studio 編輯器開發鴻蒙應用時&#xff0c;免不了要對我們的應用程序進行代碼調試。我們根據實際情況&#xff0c;一般會用到以下三種方式進行代碼調試。 肉眼調試法注釋排錯調試法控制臺輸出法彈出提示法斷…

【算法實戰】每日一題:將某個序列中內的每個元素都設為相同的值的最短次數(差分數組解法,附概念理解以及實戰操作)

題目 將某個序列中內的每個元素都設為相同的值的最短次數 1.差分數組&#xff08;后面的減去前面的值存儲的位置可以理解為中間&#xff09; 差分數組用于處理序列中的區間更新和查詢問題。它存儲序列中相鄰元素之間的差值&#xff0c;而不是直接存儲每個元素的值 怎么對某…

STM32 入門教程(江科大教材)#筆記2

3-4按鍵控制LED /** LED.c**/ #include "stm32f10x.h" // Device headervoid LED_Init(void) {/*開啟時鐘*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //開啟GPIOA的時鐘/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_I…

關系數據庫:關系運算

文章目錄 關系運算并&#xff08;Union&#xff09;差&#xff08;Difference&#xff09;交&#xff08;Intersection&#xff09;笛卡爾積&#xff08;Extended Cartesian Product&#xff09;投影&#xff08;projection&#xff09;選擇&#xff08;Selection&#xff09;除…

微信小程序中應用van-calendar時加載時間過長,以及設置min-data無效的問題解決

一、我們微信小程序中應用van-calendar時&#xff0c;如果沒有設置min-data&#xff0c;那么頁面的加載時間會非常長&#xff0c;所以&#xff0c;一定一定要配置min-data&#xff1b; 二、vue中min-data的寫法是:min-data“new Date(2023, 0, 1)”&#xff0c;而在小程序中的寫…

docker使用docker logs命令查看容器日志的幾種方式

以下是如何使用docker logs命令的基本示例&#xff1a; docker logs [容器ID或名稱]如果想要實時查看日志&#xff0c;可以加上-f參數&#xff0c;這樣日志就會像使用tail -f命令一樣實時輸出。 docker logs -f [容器ID或名稱]如果只想查看最近幾行的日志&#xff0c;可以使用…

讓表單引擎插上AI的翅膀-記馳騁表單引擎加入AI升級

讓表單引擎插上AI的翅膀 隨著科技的飛速發展&#xff0c;人工智能&#xff08;AI&#xff09;已經逐漸滲透到我們工作和生活的每一個角落。在數字化辦公領域&#xff0c;表單引擎作為數據處理和流程自動化的重要工具&#xff0c;也迎來了與AI技術深度融合的新機遇。讓表單引擎…

Java對象的比較——equals方法,Comparable接口,Comparator接口

Java對象的比較——equals方法&#xff0c;Comparable接口&#xff0c;Comparator接口 1. equals方法2. Comparable接口3. Comparator接口 1. equals方法 在判斷兩個整數是否相同時&#xff0c;我們可以使用以下方式&#xff1a; System.out.println(1 2); System.out.printl…

安防綜合管理系統EasyCVR平臺GA/T1400視圖庫:基于XML的消息體格式

GA/T 1400標準的應用范圍廣泛&#xff0c;涵蓋了公安系統的視頻圖像信息應用系統&#xff0c;如警務綜合平臺、治安防控系統、交通管理系統等。在視頻監控系統中&#xff0c;GA/T 1400公安視圖庫的對接是實現視頻圖像信息傳輸、處理和管理的重要環節。 以視頻匯聚EasyCVR視頻監…