SCP 比 SFTP 更安全嗎?

二月 11, 2020 安全與合規性, MOVEit

並不會。該追求在最短的時間內完成,還是該更進一步斟酌?好,我得先談談這兩種通訊協定的起源,才能解釋我的結論。

很久以前,筆記型電腦並不像現在這樣方便攜帶 (1980 年代左右),當時,BSD Unix 推出了 RCP (Remote Copy Program,遠端複製程式)。這在當時確實很有用,但安全性不高,功能也不夠好,因此,後來結合了 SecureShell (SSH) 通訊協定的安全複製通訊協定 (SCP) 反而更受歡迎。如果是 SSH,只要使用驗證金鑰和登入資料就能進行安全的遠端登入,也能讓電腦或伺服器彼此通訊。使用 SSH 的流量採演算法加密機制,比方說進階加密標準 (Advanced Encryption Standard,AES) 或標準雜湊演算法 (Standard Hashing Algorithm,SHA-2)。SSH 成為一項網際網路標準。

顧名思義,SecureShell 檔案傳輸通訊協定 (SecureShell File Transfer Protocol,SFTP) 是從 SecureShell 演變而來,並且結合了這項技術的所有特點。另請注意,不要將 SFTP 和 FTPS 混為一談,後者採用的是 安全通訊端層 (Secure Socket Layer,SSL) 而非 SSH,是另一項截然不同的通訊協定。 

相關文章:檔案傳輸通訊協定 (FTP) 與管理式檔案傳輸 (MFT) 的比較

從 SFTP 和 SCP 的初期評估可以看出,這兩種通訊協定採用的傳輸中資料加密平台皆是 SecureShell,因此兩者一樣安全。 

2019 年開始就未必如此了 (假設當時的 SCP 用戶端全都還沒有安裝修補程式)。ZDNet 報告指出,1983 年以後的 SCP 使用案例,全都因為四大安全瑕疵而受到影響。這些瑕疵是由一名 F-Secure 研究人員發現的,所有瑕疵全都源自於之前提到過的 RCP 實作方式一開始所採用的 BSD。

請注意,要利用這類中間人 (Man-In-the Middle,MITM) 攻擊和漏洞,唯有入侵 SCP 伺服器才能辦到。當時,凡以 SCP 為預設檔案傳輸法的用戶端,全數受到影響,這類用戶端包括 OpenSSH、Putty 和 WinSCP。使用者可能會接受錯誤的主機指紋,導致惡意活動得以趁虛而入—而且從來沒有出現過使用者錯誤,對吧?

不過,後來推出的 SCP2 修正了這個問題,因此,請務必使用 SCP2,不要使用早已過時淘汰的原始 SCP。

關於 SCP

讓我用門外漢能懂的話來解釋這件事 (我不是開發人員,所以門外漢也包括我),SCP 優於 SSH,但 SFTP 是從 SCP 開發而來,所以,我個人認為,SFTP 的安全度在本質上更高。

Progress 自己的 WS_FTP Server 支援 SCP2,原因就在於剛剛提到過的:原始 SCP 有漏洞。此外,如果想使用 SCP,一定要使用 SCP 用戶端,而且最好選擇 Putty。

SCP 比較適合用於 Linux 環境,但有多少企業是以 Linux 為主?這並不重要,當 SFTP 還是主流標準時,Windows 版 SCP 用戶端出現了,而且不需要另外使用用戶端或指令碼就能整合於企業級 FTP 和 MFP 解決方案。

對我而言,這就好比買了 Microsoft Word 之後才發現其他解決方案更符合自己的需求。舉例來說,Microsoft Word 並不能與 Final Draft (寫電影劇本用的業界標準) 或 Scrivener (受歡迎的寫小說專用解決方案) 整合,也不提供這類工具所包含的功能。如果沒有非用 SCP 不可的特定用途,就用 SFTP。

SFTP 與 SCP 優劣比較

研究這篇探討「SCP 與 SFTP 優劣比較」之爭的文章時,還浮現了其他問題。大多數專家認為兩者都採用 SSH,所以一樣安全。這兩種技術都提供檔案傳輸功能,SCP 透過高延遲網路傳輸檔案的速度比 SFTP 更快,因為 SCP 是採用其本身的傳輸演算法,不會驗證每一個封包。

SCP 唯一有真憑實據的優點就在於傳輸速度。不過,SCP 包含的功能與其名稱所象徵的含義差不多:它可以傳輸檔案。

SFTP 也能傳輸檔案,還能用於管理遠端檔案、管理目錄、刪除檔案、重新命名,以及您認為 FTP 解決方案應具備的一切功能。要談讓使用者備感困擾的問題,莫過於下載或上傳過程中突然斷線。使用 SFTP 可以接續進行之前中斷的傳輸。使用 SCP 則可覆寫已經傳輸完畢的部分,或是重新開始傳輸。

如您所見,使用 SFTP 比使用 SCP 多了幾項優點。

檔案大小無關乎通訊協定問題

不論使用 SCP 或 SFTP,許多使用者都會擔心檔案大小。不過,這兩種通訊協定均未界定大小限制。這與安全性無關,但仍然值得探討—唯有在來源或目的地設限的情況下,大小限制才會產生影響。設限的原因包括但不限於:

1. 使用免費服務

免費服務供應商會對使用者設限。有些是為了方便管理,有些則是為了鼓勵使用者升級使用付費服務。這類服務包括免費的伺服器儲存空間、網站代管服務等等。

2. 使用付費服務

付費服務也分等級或層次,而且往往會採用預設限制。有些服務是可以設定的;有些則必須升級。

3. 資源管理

伺服器管理員會根據使用者人數和可用資源設限。有時候,目的地儲存空間未必夠用。

4. 32 位元障礙

如果來源或目的地是 32 位元,傳送單一檔案的大小上限是 4Gb,也就是根本不提供大檔案支援 (Large File Support,LFS)。如果安裝 32 位元的用戶端,自然也必須遵守這項規則。處理 32 位元的容器?– 情況是一樣的。

因此,如果您無法傳輸特定大小的檔案,或者發現有檔案大小限制,請深入研究其原因─問題並不在於您選擇的通訊協定。

結論

SCP 和 SFTP 之爭,重點終究在於選擇。您需要的是什麼?如果您需要更多的功能,顯然該選 SFTP。如果您想要安全地傳輸檔案,SCP 也辦得到。如果您注重的是安全性,兩種選擇都可行。

立即試用 MOVEit Transfer 免費試用版

Michael O'Dwyer

An Irishman based in Hong Kong, Michael O’Dwyer is a business & technology journalist, independent consultant and writer who specializes in writing for enterprise, small business and IT audiences. With 20+ years of experience in everything from IT and electronic component-level failure analysis to process improvement and supply chains (and an in-depth knowledge of Klingon,) Michael is a sought-after writer whose quality sources, deep research and quirky sense of humor ensures he’s welcome in high-profile publications such as The Street and Fortune 100 IT portals.