FTP協(xié)議的分析和擴展
| <------------------------------------------- 220 |
| AUTH TLS -------------------------------------------> |
| <------------------------------------------- 234 |
| TLSneg() <------------------------------------------> TLSneg() |
| PBSZ 0 -------------------------------------------> |
| <------------------------------------------- 200 |
| PROT P -------------------------------------------> |
| <------------------------------------------- 200 |
| USER elly -------------------------------------------> |
| <------------------------------------------- 331 |
| PASS **** -------------------------------------------> |
| <------------------------------------------- 230 |
| |
\====================================================================/
一個SSL FTP的連接過程實例:
/====================================================================\
| |
| WinSock 2.0 -- OpenSSL 0.9.7d 17 Mar 2004 |
| [R] Connecting to 192.168.21.3 -> IP=192.168.21.3 PORT=2121 |
| [R] Connected to 192.168.21.3 |
| [R] 220 Please enter your login name now. |
| [R] AUTH TLS (認(rèn)證方法)|
| [R] 234 AUTH Command OK. Initializing SSL connection. |
| [R] Connected. Negotiating SSL/TLS session.. |
| [R] SSL/TLS negotiation successful... (協(xié)商關(guān)聯(lián))|
| [R] TLSv1/SSLv3 encrypted session using cipher AES256-SHA (256 bits)
| [R] PBSZ 0 (PBSZ設(shè)置)|
| [R] 200 PBSZ Command OK. Protection buffer size set to 0. |
| [R] USER elly (ftp傳統(tǒng)認(rèn)證)|
| [R] 331 Password required for elly . |
| [R] PASS (hidden) |
| [R] 230 User elly logged in. |
| [R] SYST |
| [R] 215 UNIX Type: L8 , CP:936 |
| [R] FEAT (擴展指令測試)|
| [R] 211-Extensions supported: |
| [R] SIZE |
| [R] MDTM |
| [R] MDTM YYYYMMDDHHMMSS filename |
| [R] LIST -laT |
| [R] STAT -laT |
| ... |
| [R] AUTH SSL |
| [R] AUTH TLS |
| [R] PROT |
| [R] PBSZ |
| [R] SSCN |
| [R] UTF8 |
| [R] 211 END |
| [R] CLNT FlashFXP 2.2.985 |
| [R] 213 client type set to FlashFXP 2.2.985. |
| [R] PWD (傳統(tǒng)通訊過程)|
| [R] 257 "/" is current directory |
| [R] TYPE A |
| [R] 200 Type set to ASCII. |
| [R] PROT P (切換到保護(hù)模式)|
| [R] 200 PROT P accepted. |
| [R] PASV |
| [R] 227 Entering Passive Mode (192,168,21,3,5,122) |
| [R] Opening data connection IP: 192.168.21.3 PORT: 1402 |
| [R] LIST -al |
| [R] Connected. Negotiating SSL/TLS session.. (加密通訊過程)|
| [R] 150 Opening ASCII data connection for ls / using SSL/TLS. |
| [R] SSL/TLS negotiation successful... |
| [R] TLSv1/SSLv3 encrypted session using cipher AES256-SHA (256 bits)
| [R] 226-free disk space under this directory : 101 mb |
| [R] 226 Transfer finished successfully. Data connection closed . |
| [R] List Complete: 181 bytes in 0.14 seconds (1.26 KBps) |
| |
\====================================================================/
在ssl ftp中,有以下幾個特殊點:
1, AUTH是可選指令,因為ssl ftp實現(xiàn)的方式不同而存在,詳見下一節(jié)explicit SSL
與implicit SSL;
2, PBSZ和PROT是必須指令,用于切換到保護(hù)通道模式;
3, AUTH,PBSZ和PROT指令是實現(xiàn)SSL認(rèn)證方式的必須方法,但可以與傳統(tǒng)的User/Password
模式共存,或只取其一;
4, SSL認(rèn)證方法的SSL認(rèn)證過程(AUTH/PBSZ)和傳統(tǒng)模式認(rèn)證并無嚴(yán)格的先后順序關(guān)聯(lián),可能在
用戶名和密碼之前,也可能在之后;但出于安全因素,最好在User/Password傳輸之前切換
到安全模式,可以確保User/Password的傳輸安全;
5, 在explicit SSL模式中,可以在任何時間切換到保護(hù)模式,如第四條所述;在implicit
SSL模式中,初始化連接將直接采用SSL Socket建立,不需要AUTH指令切換。
>>3.4 Explicit SSL和Implicit SSL
由于歷史和軟件兼容性因素,ssl FTP的實現(xiàn)有兩種方式,分別是Explicit SSL和Implicit SSL,
上面的大部分?jǐn)?shù)據(jù)都是以explicit SSL為范例。
Explicit SSL(外部SSL),又被稱為AUTH SSL方式;Explicit SSL保持了與傳統(tǒng)ftp服務(wù)的
良好兼容性,以一個ftp服務(wù)擴展指令的方式存在。初始化連接可以采用與傳統(tǒng)ftp兼容的連
接模式,當(dāng)需要傳輸加密信息時使用AUTH SSL指令切換到保護(hù)模式。使用Explicit SSL時
Server必須完整地實現(xiàn)AUTH/PBSZ/PROT等指令。
Implicit SSL(隱含SSL),是一個全新的ftp實現(xiàn)方式,在TCP三步握手完成之后就直接使用
SSL Socket進(jìn)行協(xié)商和通訊,之后將全程采用SSL加密連接。在這種模式中一般ftp server
將監(jiān)聽在一個新的服務(wù)端口,IANA指定ftps:tcp:990為implicit SSL ftp的默認(rèn)端口。因為在
連接初始階段就自動由SSL實現(xiàn)完成了協(xié)商,因此implicit模式中AUTH指令是可選的。
在不考慮兼容性的因素下,在服務(wù)期端最好優(yōu)先使用implicit SSL模式,可以獲得更好的保密
特性。
比較兩種ssl ftp實現(xiàn)模式區(qū)別如下:
/======================================================================\
| explicit implicit |
| client server client server |
|======================================================================|
| | |
| connect() ------> -+-明文 | sslConnect() ------> 加密 |
| <------ 220 | | <------ 220 -+ |
| AUTH SSL ------> | | USER *** ------> | |
| <------ 234 -+ | <------ 331 | |
| TLSneg() <-----> TLSneg() -+-加密 | PASS *** ------> | |
| <------ 200 | | <------ 230 | |
| USER *** ------> | | LIST <-----> ... | |
| <------ 331 | | RETR <-----> ... | |
| PASS *** ------> | | ... | |
| <------ 230 | | | |
| LIST/RETR <-----> ... | | sslClose() <-----> ... -+ |
| close() <-----> ... -+ | |
| | |
\======================================================================/
>>3.5 一些雜亂圖示
在3.3種引用了一個Explicit SSL連接指令序列,這里是對應(yīng)的Implicit SSL連接過程:
/======================================================================\
| WinSock 2.0 -- OpenSSL 0.9.7d 17 Mar 2004 |
| [R] Connecting to 192.168.21.3 -> IP=192.168.21.3 PORT=9909 |
| [R] Connected to 192.168.21.3 |
| [R] Connected. Negotiating SSL/TLS session.. |
| [R] SSL/TLS negotiation successful... |
| [R] TLSv1/SSLv3 encrypted session using cipher AES256-SHA (256 bits) |
| [R] 220 Please enter your login name now. |
| [R] PBSZ 0 |
| [R] 200 PBSZ Command OK. Protection buffer size set to 0. |
| [R] USER elly |
| [R] 331 Password required for elly . |
| [R] PASS (hidden) |
| [R] 230 User elly logged in. |
| [R] SYST |
| [R] 215 UNIX Type: L8 , CP:936 |
| [R] PROT P |
| [R] 200 PROT P accepted. |
| [R] PASV |
| [R] 227 Entering Passive Mode (192,168,21,3,5,122) |
| [R] Opening data connection IP: 192.168.21.
相關(guān)文章

重啟可暫時解決!微軟承認(rèn)Win10/Win11經(jīng)典版Outlook存在3個BUG
微軟承認(rèn)Win10/Win11經(jīng)典版Outlook存在多個bug,官方現(xiàn)已呼吁受影響用戶提交診斷日志以協(xié)助分析,在為正式解決之前提供了臨時解決辦法2026-03-16
加密郵件終于能打開了! 微軟緊急修復(fù)Win10/Win11經(jīng)典版Outlook故障
微軟緊急修復(fù) Win10/Win11 經(jīng)典版 Outlook 故障,加密郵件終于能打開了,針對無法等待正式補丁的用戶,微軟提供了兩種臨時解決方案,詳細(xì)如下文2026-02-02
Win10/Win11新版Outlook無法打開Excel 附件的兩種臨時解決辦法
微軟承認(rèn)部分 Win10/Win11 新版 Outlook 無法打開 Excel 附件,遇到這個問題的朋友可以參考本文的兩種臨時解決辦法2025-12-03
Win10/Win11版Outlook存在加密郵件問題:附臨時解決方案
微軟官方近日已承認(rèn)經(jīng)典版Outlook桌面客戶端存在程序漏洞,該漏洞導(dǎo)致用戶在嘗試打開來自外部組織(其他租戶)的OMEv2加密郵件時操作失敗,同時會彈出“正在為信息權(quán)限管理2025-09-28
微軟補丁更新引發(fā)的軟件故障屢見不鮮,最近win10/win11系統(tǒng)更新最新版本的Outlook后,發(fā)現(xiàn)無法正常啟動,下面分享臨時解決辦法2025-08-21
遇到Outlook無法啟動跳 4usqa 錯誤怎么辦?別擔(dān)心,跟著以下步驟,讓你的Outlook重新煥發(fā)活力2025-05-14
微軟新版Outlook將推出郵件分類快捷鍵及多項優(yōu)化:5月開始部署
微軟計劃在新版Outlook for Windows中引入郵件分類快捷功能,用戶可通過預(yù)設(shè)快捷鍵快速對郵件進(jìn)行分類,從而大幅提升工作效率并優(yōu)化管理流程2025-04-21rsync The --password-file option may only be used when accessing a
客戶端上傳文件執(zhí)行命令出錯,提醒The --password-file option may only be used when accessing an rsync daemon.查找資料也很少這樣的說法,最后發(fā)現(xiàn)是冒號的問題2025-02-26
郵箱密碼忘記了怎么找回來? 網(wǎng)易郵箱密碼找回流程
郵箱在使用的時候,由于各種原因,有時候我們可能會遇到忘記密碼、賬號被盜等問題,這時候就需要進(jìn)行163郵箱找回操作,本文將為大家介紹如何進(jìn)行163郵箱找回操作2025-02-01
電子郵件成為了我們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡囊徊糠?,無論是注冊社交媒體、購物平臺,還是與他人溝通,一個穩(wěn)定的郵箱賬號都變得至關(guān)重要,本文將為您提供詳細(xì)的電子郵件2025-02-01



