0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于HTTP/3構(gòu)建SSH協(xié)議會(huì)是什么樣呢?

SDNLAB ? 來源:SDNLAB ? 2024-02-20 17:07 ? 次閱讀

來自UCLouvain的Fran?ois Michel 和Olivier Bonaventure在研究中思考了一個(gè)問題:如果使用最新網(wǎng)絡(luò)技術(shù)來重新設(shè)計(jì)SSH協(xié)議,那新協(xié)議會(huì)是什么樣子呢?

Secure Shell (SSH) 協(xié)議專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性,利用 SSH 協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題。SSH 構(gòu)建在未加密的 TCP 協(xié)議之上,提出了自己的機(jī)制來建立安全通道并執(zhí)行用戶身份驗(yàn)證。

374f30f4-cfcb-11ee-a297-92fbcf53809c.png

近年來,傳輸協(xié)議設(shè)計(jì)取得了重大進(jìn)展,諸如 QUIC 等新協(xié)議提出了 TCP 的快速、安全替代方案。到 2023 年底,也就是在 SSH 協(xié)議設(shè)計(jì)出來近 30 年后,F(xiàn)ran?ois Michel 和Olivier Bonaventure根據(jù) QUIC ( RFC 9000 )、TLS 1.3 ( RFC 8446 ) 和 HTTP/3 ( RFC 9114 ) 等最新協(xié)議重新審視了 SSH 協(xié)議。與 SSHv2 相比,該新協(xié)議的功能集有所增強(qiáng)。

2023 年 12 月,《Towards SSH3: how HTTP/3 improves secure shells》論文正式發(fā)表,該研究論文提出了 SSH 協(xié)議新迭代的候選方案——SSH3。該候選方案能否成為 SSH 的第三個(gè)版本,或是成為一個(gè)單獨(dú)名稱的獨(dú)立協(xié)議,還猶未可知,需要在IETF討論之后決定。(文末附論文下載

wKgZomXUbD-AO6JiAAPFDbqxXZQ335.jpg

簡(jiǎn)而言之,SSH3 使用 QUIC 和 TLS1.3 來建立安全通道,并使用 HTTP 授權(quán)(RFC 9114、RFC 9110)機(jī)制進(jìn)行用戶身份驗(yàn)證。其中,SSH3 改進(jìn)了以下方面:

更快的會(huì)話建立;

除了傳統(tǒng)的 SSH 用戶身份驗(yàn)證之外,還包括 OAuth 2.0 ( RFC 6749 ) 和OpenID Connect (OIDC) 等 HTTP 身份驗(yàn)證方法;

對(duì)端口掃描攻擊的魯棒性,可以使 SSH3 服務(wù)器對(duì)其他互聯(lián)網(wǎng)用戶不可見;

除了經(jīng)典的 TCP 端口轉(zhuǎn)發(fā)之外,還有 UDP 端口轉(zhuǎn)發(fā);

包含現(xiàn)代 QUIC 協(xié)議允許的所有功能,包括連接遷移和多路徑連接。

為了理解這些改進(jìn)是如何實(shí)現(xiàn)的,先看一下最近標(biāo)準(zhǔn)化的 HTTP/3 協(xié)議及其提供的現(xiàn)代機(jī)制。

01

HTTP/3

HTTP/3 在 QUIC 之上提供了 HTTP/2 的特性,而不是傳統(tǒng)的 TCP 和 TLS 的經(jīng)典組合。QUIC 提供無縫連接遷移,并且很快將提供多路徑通信 ( draft-ietf-quic-multipath-06 ),實(shí)現(xiàn)平滑的網(wǎng)絡(luò)切換,從而避免 TCP 連接中斷。

Extended CONNECT HTTP 擴(kuò)展 ( RFC 9220 ) 允許應(yīng)用程序直接使用底層 QUIC 流來發(fā)送任意協(xié)議數(shù)據(jù)。HTTP 最吸引人的地方是它對(duì)用戶身份驗(yàn)證的支持。SSH 協(xié)議的關(guān)鍵部分在于會(huì)話建立,尤其是用戶身份驗(yàn)證過程。HTTP 已經(jīng)提供了一套可靠的機(jī)制來執(zhí)行用戶身份驗(yàn)證,這些機(jī)制已經(jīng)在銀行和電子商務(wù)等敏感用例中實(shí)施和使用了多年。

02

重新審視 SSH 協(xié)議架構(gòu)

有一些建議是考慮在 QUIC 協(xié)議上運(yùn)行 SSH,但這些提議僅限于在 QUIC 流中攜帶經(jīng)典的 SSH 機(jī)制 ( draft-bider-ssh-quic-09 )。與這些主張相反,SSH3 是在 HTTP/3 之上構(gòu)建的,而不是直接在 QUIC 之上構(gòu)建的,并且重新考慮了整個(gè)協(xié)議架構(gòu)。

減少會(huì)話建立

由于 QUIC 使用 TLS 1.3 進(jìn)行協(xié)議握手,SSH3 提供了比 SSHv2 快得多的會(huì)話建立速度。使用 SSHv2 建立新會(huì)話可能需要5到7個(gè)RTT:

TCP 握手;

密鑰交換和加密算法協(xié)商;

切換到用戶身份驗(yàn)證協(xié)議;

實(shí)際用戶身份驗(yàn)證;

切換到 SSH 連接協(xié)議。

依靠QUIC和HTTP/3,這個(gè)時(shí)間可以顯著減少。SSH3 可以通過以下步驟建立會(huì)話:

QUIC 握手,包括密鑰交換(在單次往返中包含了SSHv2 的步驟 1 和 2)。

等待 ENABLE_CONNECT_PROTOCOL HTTP 設(shè)置幀。

發(fā)送帶有授權(quán)標(biāo)頭集的 HTTP CONNECT 方法(包括 SSHv2 的步驟 3、4 和 5)。

當(dāng)與已知的支持基于 HTTP/3 的 SSH 的服務(wù)器通信時(shí),可以忽略步驟 2。

wKgaomXUbD-ATG0WAAR0t04qVJI416.jpg

SSHv2會(huì)話建立(左)、SSH3會(huì)話建立(右)

這大大減少了會(huì)話建立時(shí)間,如下圖所示,在ping時(shí)間為100毫秒的網(wǎng)絡(luò)環(huán)境下,將SSH3和經(jīng)典的OpenSSH進(jìn)行了比較。

376d4e22-cfcb-11ee-a297-92fbcf53809c.gif

在100ms RTT的網(wǎng)絡(luò)上比較SSH3和SSH

論文中還評(píng)估并比較了 OpenSSH SSHv2 實(shí)現(xiàn)和 SSH3 原型的會(huì)話建立時(shí)間。運(yùn)行單命令非交互式 SSH 會(huì)話,并記錄建立會(huì)話、運(yùn)行單個(gè)命令和退出所需的時(shí)間。運(yùn)行的三個(gè)命令顯示在下圖的 x 軸上。

wKgaomXUbHKAL-NsAALx9X_XXvc876.jpg

非交互式會(huì)話的完成時(shí)間

SSHv2 是經(jīng)典的 OpenSSH 實(shí)現(xiàn),而 SSHv2-nodelay 是 OpenSSH 的一個(gè)版本,研究人員對(duì)其進(jìn)行了修改,以強(qiáng)制執(zhí)行 TCP_NODELAY Linux 內(nèi)核選項(xiàng),進(jìn)一步減少 SSHv2 的會(huì)話建立時(shí)間。運(yùn)行的三個(gè)命令平均具有不同的輸出大小:df為 582 字節(jié),sysctl為 35kB , ls為 131kB 。對(duì)于每個(gè)運(yùn)行命令,與 SSHv2 和 SSHv2-nodelay 相比,SSH3 大大縮短了會(huì)話完成時(shí)間。

URL復(fù)用

HTTP/3 的一個(gè)優(yōu)勢(shì)是它提供了 URL 級(jí)別的多路復(fù)用,這是單獨(dú)使用 QUIC 無法實(shí)現(xiàn)的??梢酝ㄟ^特定 URL 訪問 SSH3 實(shí)例。首先,它可以使 SSH3 對(duì)掃描攻擊具有魯棒性。與許多基于 TCP 的應(yīng)用程序一樣,SSHv2 也會(huì)受到端口掃描攻擊。攻擊者可以通過掃描每個(gè) TCP 端口,找到響應(yīng) SSH 會(huì)話建立的端口來輕松發(fā)現(xiàn) SSH 公共服務(wù)器。一旦攻擊者發(fā)現(xiàn)公共 SSH 端點(diǎn),他們就可以嘗試對(duì)密碼進(jìn)行字典攻擊。

wKgZomXUbHKAPm-RAARUzcoK1u0444.jpg

公共SSHv2服務(wù)器每隔幾秒鐘就會(huì)收到惡意連接嘗試

基于 HTTP/3,SSH3 服務(wù)器可以通過僅響應(yīng)在 HTTP CONNECT 請(qǐng)求中輸入特定值的 SSH3 客戶端來避免被公開發(fā)現(xiàn)。在web應(yīng)用程序中,像這樣將受保護(hù)的資源置于秘密鏈接后面是一種常見行為。然而,它只是對(duì)用戶身份驗(yàn)證過程的補(bǔ)充。SSH3 原型已經(jīng)允許將服務(wù)器放置在一個(gè)秘密鏈接后面。

wKgZomXUbHKAbSnxAAGR5cuZk6M623.jpg

SSH3 對(duì)于使用秘密 URL 的掃描攻擊具有魯棒性。不知道秘密 URL 的攻擊者無法區(qū)分 SSH3 服務(wù)器和經(jīng)典 HTTP 服務(wù)器。服務(wù)器還可以配置為丟棄主機(jī)名不正確的 QUIC 連接嘗試。

另一個(gè)優(yōu)勢(shì)是它允許 HTTP/3 代理作為 SSH3 網(wǎng)關(guān),根據(jù) CONNECT 請(qǐng)求中指定的 URL 路徑連接到不同的物理服務(wù)器。使用 HTTP 授權(quán)機(jī)制將用戶身份驗(yàn)證材料附加到請(qǐng)求。這允許在 HTTP 代理后面定位大量虛擬機(jī)或容器,并通過其特定 URL 訪問它們,如下圖所示。除了 URL 之外,還可以基于 HTTP 主機(jī)名進(jìn)行多路復(fù)用。

wKgZomXUbHKAeBaXAAMMuf8zRGU586.jpg

SSH3 原型目前僅允許基于主機(jī)名的多路復(fù)用,因?yàn)榉聪虼硇枰来韰f(xié)議才能根據(jù) URL 路徑正確轉(zhuǎn)發(fā)請(qǐng)求。

話雖如此,SSH3 用戶已經(jīng)可以依靠服務(wù)器名稱指示 (SNI) 多路復(fù)用,將其 SSH3 服務(wù)器與傳統(tǒng) HTTP/3 服務(wù)器共置在端口 443 上。基于 SNI 的多路復(fù)用還允許定義虛擬主機(jī),而無需解密 QUIC 流量,從而確保 SSH3 客戶端和服務(wù)器之間完整的端到端通信,無需充當(dāng)中間機(jī)器的代理。

基于 HTTP 的身份驗(yàn)證

SSH3 使用通用 HTTP 授權(quán)機(jī)制,并將用戶身份驗(yàn)證資料放入 CONNECT 請(qǐng)求的授權(quán)標(biāo)頭中。如果提供的標(biāo)頭足以對(duì)用戶進(jìn)行身份驗(yàn)證和授予訪問權(quán)限,則服務(wù)器將響應(yīng)200 OK HTTP響應(yīng)。SSH3 原型實(shí)現(xiàn)了三種身份驗(yàn)證技術(shù):

使用基本 HTTP 方案 ( RFC 7617 ) 的基于密碼的經(jīng)典身份驗(yàn)證。

經(jīng)典的基于公鑰的身份驗(yàn)證使用Bearer HTTP方案(RFC 6750),發(fā)送一個(gè)由用戶私鑰簽名的HTTP JWTBearer 令牌(RFC 7519)。

OIDC 身份驗(yàn)證,使用 Bearer HTTP 方案。

wKgaomXUbHKAb2jtAAIZA-B2sLY270.jpg

HTTP身份驗(yàn)證是靈活的,允許多種身份驗(yàn)證機(jī)制

SSH3 原型原生支持 OIDC,允許用戶通過其公司的身份提供商或使用自己的 Google/Microsoft/Github/… 帳戶進(jìn)行連接。

wKgZomXUbHKAR67VAASwfYHDeeI176.jpg

SSH3 with OIDC

未來還可以使用其他認(rèn)證方案,并且可以添加新的標(biāo)準(zhǔn)化方案,而無需太多的實(shí)現(xiàn)工作,例如最近在簽名HTTP認(rèn)證方案互聯(lián)網(wǎng)草案中提出的簽名方案。

考慮到HTTP/3協(xié)議棧的現(xiàn)代特性,該論文對(duì)SSH協(xié)議的設(shè)計(jì)進(jìn)行了重新思考。SSH3通過重用TLS 1.3的安全機(jī)制和標(biāo)準(zhǔn)HTTP認(rèn)證機(jī)制,降低了協(xié)議設(shè)計(jì)和實(shí)現(xiàn)的復(fù)雜性。與SSHv2相比,它大大減少了連接建立時(shí)間,提供了靈活的新方式來驗(yàn)證用戶,還提供了諸如UDP端口轉(zhuǎn)發(fā)和連接遷移新的功能。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1353

    瀏覽量

    79074
  • 加密算法
    +關(guān)注

    關(guān)注

    0

    文章

    215

    瀏覽量

    25549
  • RFC
    RFC
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    10107
  • SSH協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    1612
  • TLS
    TLS
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    4251

原文標(biāo)題:假如 SSH 協(xié)議基于 HTTP/3 構(gòu)建,會(huì)是什么樣?

文章出處:【微信號(hào):SDNLAB,微信公眾號(hào):SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么樣的電流探頭才是可靠的?

    電流探頭是示波器測(cè)量電流的必備配件,但不同品牌之間價(jià)格往往差別很大,到底什么樣的電探頭才是可靠的?本文分享了電流探頭可靠性驗(yàn)證的完整過程,并呈現(xiàn)所有實(shí)測(cè)結(jié)果,您也可依據(jù)此法對(duì)自己使用的電流探頭進(jìn)行驗(yàn)證。
    的頭像 發(fā)表于 10-18 14:24 ?1.1w次閱讀
    <b class='flag-5'>什么樣</b>的電流探頭才是可靠的<b class='flag-5'>呢</b>?

    LabVIEW可為L(zhǎng)AN提供什么樣的接口與協(xié)議

    我想了解LabVIEW可為L(zhǎng)AN提供什么樣的接口與協(xié)議,與其他設(shè)備(如PLC,第三方測(cè)試儀器) 實(shí)現(xiàn)通訊,然后完成圖形顯示和數(shù)據(jù)存儲(chǔ)的功能。麻煩大家啦
    發(fā)表于 09-09 11:37

    請(qǐng)問用什么樣的方式接入位于云端的服務(wù)器是合理的?tcp報(bào)文自己定個(gè)協(xié)議傳遞數(shù)據(jù)?還是http上來直接報(bào)告?

    本帖最后由 一只耳朵怪 于 2018-6-7 15:43 編輯 用CC3200做終端產(chǎn)品,采集環(huán)境信息、報(bào)告位置、報(bào)告狀態(tài),規(guī)模小于5萬。問題是用什么樣的方式接入位于云端的服務(wù)器是合理的?tcp報(bào)文自己定個(gè)協(xié)議傳遞數(shù)據(jù)?還是htt
    發(fā)表于 06-07 00:17

    HTTP協(xié)議的相關(guān)資料分享

    前言HTTP協(xié)議是一個(gè)簡(jiǎn)單的請(qǐng)求-響應(yīng)協(xié)議,它通常運(yùn)行在TCP之上,傳輸端口一般為80。它指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什么樣
    發(fā)表于 02-10 07:46

    串口通訊協(xié)議的物理層和協(xié)議層是什么樣的?

    串口通訊協(xié)議的物理層和協(xié)議層是什么樣的?
    發(fā)表于 02-18 07:30

    3g手機(jī)是什么樣

    3g手機(jī)是什么樣 3g手機(jī)是什么樣的手機(jī) 還有現(xiàn)在說的3G是什么...3g手機(jī)是支持WCDMA、
    發(fā)表于 01-20 09:46 ?1378次閱讀

    什么樣的冰箱沒有霜

    什么樣的冰箱沒有霜 什么樣的冰箱比較容易結(jié)霜,什么樣的冰箱在這方面就會(huì)好些?使用中要注意哪些問題?   風(fēng)冷冰箱不易結(jié)霜
    發(fā)表于 02-21 17:56 ?2026次閱讀

    HTTP,HTTP協(xié)議的作用是什么?

    HTTP,HTTP協(xié)議的作用是什么? HTTP:Hypertext Transfer Protocol 超文本傳輸協(xié)議
    發(fā)表于 03-22 10:45 ?2.5w次閱讀

    未來環(huán)保汽車會(huì)是什么樣?

    未來環(huán)保汽車會(huì)是什么樣? 一汽-大眾
    發(fā)表于 04-07 09:08 ?1827次閱讀
    未來環(huán)保汽車<b class='flag-5'>會(huì)是</b><b class='flag-5'>什么樣</b>?

    未來的工廠會(huì)是什么樣子的?人工智能(AI)在未來的工廠的作用概述

    未來的工廠會(huì)是什么樣子的?在AI作為關(guān)鍵驅(qū)動(dòng)力的作用下,工廠會(huì)變得更敏捷更定制化。這方面以及有一些國(guó)家(比如美國(guó)、中國(guó))和公司開始捷足先登。但是絕大部分國(guó)家和公司對(duì)此仍然認(rèn)知不足,或者能力不足
    的頭像 發(fā)表于 05-19 10:25 ?1.1w次閱讀

    未來存儲(chǔ)技術(shù)的發(fā)展是什么樣

    未來的存儲(chǔ)技術(shù)會(huì)是什么樣?對(duì)于基于NVMe的傳統(tǒng)Flash技術(shù),我們應(yīng)該繼續(xù)期望更高的容量。
    發(fā)表于 09-18 14:39 ?1332次閱讀

    定點(diǎn)程序會(huì)是什么樣?為什么要進(jìn)行定點(diǎn)仿真?

    浮點(diǎn)程序已經(jīng)給出了,那么定點(diǎn)程序會(huì)是什么樣?為什么要進(jìn)行定點(diǎn)仿真?這是產(chǎn)品的要求!很多產(chǎn)品中用于實(shí)現(xiàn)算法的器件都會(huì)是FPGA或者DSP
    的頭像 發(fā)表于 06-29 14:19 ?3301次閱讀

    什么是HTTP協(xié)議?

    超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)是一個(gè)簡(jiǎn)單的請(qǐng)求-響應(yīng)協(xié)議,它通常運(yùn)行在TCP之上。它指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得
    發(fā)表于 05-06 15:43 ?1373次閱讀

    Chiplet的未來會(huì)是什么樣?

    Chiplet的未來會(huì)是什么樣?它們可能會(huì)改變半導(dǎo)體行業(yè)的結(jié)構(gòu),將其從摩爾定律的束縛和少數(shù)代工廠的霸權(quán)中解放出來嗎?或者,就像之前的薄膜混合物和multi-die封裝一,可能會(huì)分
    的頭像 發(fā)表于 08-03 09:01 ?972次閱讀

    什么是HTTP協(xié)議?什么是RPC協(xié)議?二者如何選擇使用?

    為什么有了HTTP,還需要RPC協(xié)議?在進(jìn)行說明之前,首先我們需要了解什么是HTTP協(xié)議,什么是RPC
    的頭像 發(fā)表于 08-11 09:25 ?2667次閱讀
    什么是<b class='flag-5'>HTTP</b><b class='flag-5'>協(xié)議</b>?什么是RPC<b class='flag-5'>協(xié)議</b>?二者如何選擇使用?