此備忘錄( memo )的狀態
本文檔爲Internet社區指定了Internet標準跟蹤協議,並請求討論和改進建議。有關本協議的標準化狀態和狀態,請參閱當前版本的“互聯網官方協議標準”(STD 1)。這份備忘錄的分發是無限的。
1. 介紹
SOCKS版本5的協議規範指定了在初始SOCKS連接設置中使用任意身份驗證協議的通用框架。本文檔描述了其中一個協議,因爲它適合SOCKS版本5身份驗證“子協商”( subnegotiation )。
注意:
- 除非另有說明,數據包格式圖中出現的十進制數字表示相應字段的長度,單位爲八位字節( Byte );
- 如果給定的八位字節必須具有特定的值,則語法
X'hh'
用於表示該字段中單個八位字節的值;- 當使用 Variable 一詞時,它表示對應的字段具有由關聯的(一個或兩個八位字節)長度字段或數據類型字段定義的可變長度。
2. 初始協商(Initial negotiation)
一旦SOCKS V5服務器啓動,並且客戶端選擇了用戶名/密碼身份驗證協議,用戶名/密碼子協商就開始了。首先,客戶端生成用戶名/密碼請求:
VER | ULEN | UNAME | PLEN | PASSWD |
---|---|---|---|---|
1 | 1 | 1 to 255 | 1 | 1 to 255 |
- VER 字段包含子協商的當前版本,即
X'01'
; - ULEN 字段包含後面 UNAME 字段的長度;
- UNAME 字段包含源操作系統已知的用戶名;
- PLEN 字段包含後面 PASSWD 字段的長度;
- PASSWD 字段包含與給定 UNAME 的密碼關聯。
服務器驗證提供的UNAME和PASSWD,併發送以下響應:
VER | STATUS |
---|---|
1 | 1 |
狀態字段 X'00'
表示成功。如果服務器返回“failure”(狀態值不是X'00'
)狀態,則必須關閉連接。
3. 安全考慮
本文檔描述了一個爲SOCKS協議提供身份驗證服務的子協商。由於請求以明文形式攜帶密碼,因此不建議在“嗅探”可行且實用的環境中使用此子協商。