国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

V8團隊花3個月造了一把"雙面鎖":防住攻擊者,卻給自家留了后門

0
分享至


2026年3月的Node.js安全更新里,CVE-2026-21717的修復(fù)方案讓V8團隊頭疼了整整三個月。他們要造一把鎖——外面的人怎么也撬不開,但自己人拿鑰匙能秒開。這把鎖叫"可逆哈希",聽起來像個悖論。

HashDoS攻擊的本質(zhì),是把哈希表這個O(1)的神器變成O(n2)的陷阱。攻擊者精心構(gòu)造一批輸入,讓它們?nèi)珨D進同一個哈希桶。服務(wù)器處理這些"撞車"數(shù)據(jù)時,CPU會被拖進線性搜索的泥潭。Node.js作為事件循環(huán)驅(qū)動的運行時,一個惡意請求就能凍住整個線程池。

瀏覽器里的V8不怕這個——用戶關(guān)掉標(biāo)簽頁就完事。但服務(wù)器端不行。Node.js的部署規(guī)模讓它成了活靶子,安全研究員們拿著放大鏡找弱點,CVE-2026-21717就是這么被挖出來的。

矛盾的起點:既要混沌,又要可逆

常規(guī)解法是用隨機化哈希。每次啟動生成密鑰,把輸入攪成不可預(yù)測的輸出。攻擊者不知道密鑰,就無法構(gòu)造碰撞。

但V8有個歷史包袱:字符串哈希被緩存了。為了加速屬性查找,V8會給字符串預(yù)計算哈希值,存起來復(fù)用。這個設(shè)計省了大量CPU周期,卻帶來一個棘手問題——有時候運行時真的需要知道"這個哈希值對應(yīng)的原字符串是什么"。

典型場景是堆快照(Heap Snapshot)。調(diào)試工具導(dǎo)出內(nèi)存狀態(tài)時,要把哈希過的鍵還原成原始字符串,否則開發(fā)者看到的是一堆無意義的數(shù)字。如果哈希是單向的(像SHA-256那樣),這個需求就直接破產(chǎn)。

所以V8團隊要的不是普通哈希,是"置換"(Permutation)——一個完美的雙射函數(shù)。每個輸入對應(yīng)唯一輸出,每個輸出也能逆運算找回輸入。但同時又得讓外部攻擊者無法預(yù)測,無法構(gòu)造碰撞。

設(shè)計方案:用秘密密鑰把置換變成"黑箱"

最終方案是帶密鑰的整數(shù)置換。核心思想 borrowed from 流密碼的設(shè)計:用偽隨機數(shù)生成器(PRNG)的輸出,把輸入的比特位"攪拌"開。

具體實現(xiàn)分幾步。首先,把64位整數(shù)拆成高低兩個32位半?yún)^(qū)。然后,用兩個秘密的64位密鑰,通過類似Feistel網(wǎng)絡(luò)的結(jié)構(gòu)進行多輪變換。每一輪,右半?yún)^(qū)經(jīng)過一個基于密鑰的偽隨機函數(shù)處理,結(jié)果與左半?yún)^(qū)異或,然后左右交換。

「我們選擇了8輪Feistel結(jié)構(gòu),」V8工程師在提交記錄里寫道,「平衡了統(tǒng)計質(zhì)量和計算開銷?!?/p>

關(guān)鍵設(shè)計在于偽隨機函數(shù)的構(gòu)造。它不能太重——每次字符串哈希都要調(diào)用,慢了就是全局性能 regression。但也不能太輕——輕到攻擊者能逆向分析出密鑰結(jié)構(gòu)。

團隊最終用了一個基于乘法、移位和異或的輕量級構(gòu)造。乘法提供非線性,移位實現(xiàn)比特擴散,異或混合密鑰。沒有S盒,沒有查表,純算術(shù)操作對CPU流水線極度友好。

可逆性的實現(xiàn):把加密過程"錄像倒放"

Feistel網(wǎng)絡(luò)的美妙之處在于,解密和加密是同一套流程——只要把輪密鑰倒序使用。V8在啟動時生成兩個64位主密鑰,運行時按需派生出各輪密鑰。

逆運算時,從最后一輪的結(jié)果開始,用相同的輪函數(shù)但逆序的密鑰,一步步還原。因為每一輪的變換都是可逆的(異或的逆是異或,交換的逆是交換),整體必然可逆。

「堆快照工具調(diào)用逆哈希時,延遲在微秒級別,」性能測試報告顯示,「相比之前直接存儲原始字符串的方案,內(nèi)存占用下降了12%。」

這個數(shù)字解釋了為什么V8死磕可逆性。Node.js服務(wù)器的堆快照可能包含數(shù)千萬個字符串對象,每個都存原始值是奢侈的。哈希值只有8字節(jié),原始字符串平均幾十字節(jié),差距在規(guī)模面前被放大。

統(tǒng)計檢驗:它真的"混沌"嗎?

可逆不等于可預(yù)測。V8團隊跑了一套密碼學(xué)統(tǒng)計測試,驗證這個輕量級置換的"亂度"。

首先是雪崩測試:改變輸入的任意一個比特,輸出應(yīng)該有一半的比特發(fā)生變化。測試結(jié)果顯示,平均變化比特數(shù)31.97,標(biāo)準差0.18——接近理想的32比特。

然后是碰撞測試:隨機生成22?個輸入,觀察哈希碰撞頻率。理論預(yù)期是約2次碰撞(生日悖論),實測1次和3次,落在置信區(qū)間內(nèi)。

更嚴格的測試是線性密碼分析。團隊嘗試用線性逼近攻擊恢復(fù)密鑰,在6輪以下成功,8輪時失敗。這驗證了「8輪」這個參數(shù)的安全邊際。

「我們不聲稱這是密碼學(xué)安全的,」工程師在文檔里坦誠,「但在我們的威脅模型里足夠用——攻擊者看不到中間狀態(tài),只能黑盒探測?!?/p>

威脅模型的邊界:防誰,不防誰

V8的威脅模型畫了一條清晰的線:防御"盲攻擊者",不防御"有內(nèi)部視角的攻擊者"。

盲攻擊者只能往Node.js服務(wù)器發(fā)請求,觀察響應(yīng)時間或錯誤信息。他們看不到哈希值,看不到內(nèi)存布局,看不到CPU的緩存狀態(tài)。對于這種對手,8輪Feistel置換的輸出是不可區(qū)分的隨機數(shù)。

但如果攻擊者能讀取V8的內(nèi)存,拿到那兩個64位密鑰,整個系統(tǒng)就崩塌了。他們能瞬間逆推任意哈希,構(gòu)造完美碰撞。這不是設(shè)計缺陷——這是威脅模型的邊界。內(nèi)存讀取權(quán)限意味著游戲已經(jīng)結(jié)束。

類似的,側(cè)信道攻擊(比如通過計時分析密鑰)也不在防御范圍內(nèi)。V8的哈希實現(xiàn)沒有常量時間保證,某些輸入路徑確實更快。但盲攻擊者無法利用這一點,因為他們看不到單個哈希操作的耗時,只能看到端到端的請求延遲,被網(wǎng)絡(luò)噪聲淹沒。

性能賬本:多花了多少CPU周期

安全有代價。V8團隊測了三種場景的overhead:

字符串哈希本身:比原來的MurmurHash3慢約40%。從3.2納秒漲到4.5納秒(x86-64,3.2GHz)。

屬性查找:因為哈希緩存命中率高,端到端影響被稀釋到3-5%。

堆快照生成:逆哈希引入的延遲約占總時間的0.8%,相比內(nèi)存節(jié)省的收益,凈收益為正。

「40%聽起來嚇人,但字符串哈希在V8的CPU占比不到0.5%,」性能工程師解釋,「實際業(yè)務(wù)負載測試顯示,Node.js的RPS(每秒請求數(shù))下降在誤差范圍內(nèi)?!?/p>

這個賬算得精明。安全加固的代價被控制在"測不出來"的級別,而消除的CVE是實打?qū)嵉墓裘妗?/p>

一個未解的 tension

方案合入主線后,社區(qū)里有聲音問:為什么不用標(biāo)準的密碼學(xué)原語?比如AES-128,硬件加速下比這個自定義方案更快,而且經(jīng)過更多眼睛審視。

V8團隊的回應(yīng)很直接:AES不是置換,是分組密碼。同樣的明文用同樣的密鑰總是得到同樣的密文,這恰恰是HashDoS需要的"可預(yù)測性"。他們需要的是一個密鑰化的、可逆的、統(tǒng)計上像隨機的置換,這個需求在密碼學(xué)工具箱里沒有現(xiàn)成答案。

另一個潛在方向是放棄可逆性,改用間接層——哈希值只作為索引,原始字符串存在側(cè)表。但這會讓堆快照的內(nèi)存占用漲回去,而且多一次內(nèi)存訪問的 indirection。

「我們評估過7種替代方案,」工程師在討論串里列出表格,「這是唯一滿足所有約束的?!?/p>

這個"唯一"是工程妥協(xié)的藝術(shù)。不是最美的數(shù)學(xué)構(gòu)造,是在性能、安全、可維護性的三維空間里找到的可行點。

Node.js 22.14.0已經(jīng)攜帶這個補丁運行在生產(chǎn)環(huán)境。下一個被修復(fù)的CVE會是什么形態(tài)?V8的哈希機制還會經(jīng)歷第幾次迭代?

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
沉迷養(yǎng)豬的丁磊,去年賺了338億

沉迷養(yǎng)豬的丁磊,去年賺了338億

大佬灼見
2026-03-13 12:21:50
宋美齡書法對比:鋼筆字似小學(xué)生,英文手稿如中學(xué)生!

宋美齡書法對比:鋼筆字似小學(xué)生,英文手稿如中學(xué)生!

書畫相約
2026-03-26 07:49:18
新消息!伊朗突然宣布了!

新消息!伊朗突然宣布了!

達文西看世界
2026-03-23 20:29:16
國際原子能機構(gòu)總干事:美伊或?qū)⒃诎突固古e行會談

國際原子能機構(gòu)總干事:美伊或?qū)⒃诎突固古e行會談

界面新聞
2026-03-25 22:29:47
航天少帥譚瑞松被判死緩 不執(zhí)行死刑和終身監(jiān)禁

航天少帥譚瑞松被判死緩 不執(zhí)行死刑和終身監(jiān)禁

小鹿姐姐情感說
2026-03-26 02:23:54
多名醫(yī)生建議:血糖不超過這個值,該吃吃該喝喝,吃點甜的更健康

多名醫(yī)生建議:血糖不超過這個值,該吃吃該喝喝,吃點甜的更健康

健康之光
2026-03-24 22:20:04
上海VS天津勝券在握!李花三兄弟無法阻擋,盧偉全力沖擊十二連勝

上海VS天津勝券在握!李花三兄弟無法阻擋,盧偉全力沖擊十二連勝

老葉評球
2026-03-26 17:04:22
你見過哪些員工因為作死被開除的事情?網(wǎng)友:去副總院里偷石榴

你見過哪些員工因為作死被開除的事情?網(wǎng)友:去副總院里偷石榴

另子維愛讀史
2026-03-24 21:35:06
暗殺逼退卡塔爾,以色列打錯算盤!巴鐵核武鎮(zhèn)場,給伊朗免死金牌

暗殺逼退卡塔爾,以色列打錯算盤!巴鐵核武鎮(zhèn)場,給伊朗免死金牌

起喜電影
2026-03-26 15:40:09
重磅實錘!瓜帥即將告別曼城,下一站徹底跳出英超

重磅實錘!瓜帥即將告別曼城,下一站徹底跳出英超

瀾歸序
2026-03-26 06:02:38
伊朗掛斷王毅電話后發(fā)全球照會,薩勒曼震怒

伊朗掛斷王毅電話后發(fā)全球照會,薩勒曼震怒

空間展示知識
2026-03-26 07:06:58
內(nèi)塔尼亞胡:對惡絕不手軟,才是對和平最大的負責(zé)

內(nèi)塔尼亞胡:對惡絕不手軟,才是對和平最大的負責(zé)

老馬拉車莫少裝
2026-03-22 23:24:28
瞞天過海40年!李嘉誠成最大贏家,日產(chǎn)百萬桶,把石油全賣給中國

瞞天過海40年!李嘉誠成最大贏家,日產(chǎn)百萬桶,把石油全賣給中國

阿鳧愛吐槽
2026-03-24 00:54:18
2-0!3-1!意大利背水一戰(zhàn) 法國志在復(fù)仇巴西 熊皇姆巴佩皇馬內(nèi)戰(zhàn)

2-0!3-1!意大利背水一戰(zhàn) 法國志在復(fù)仇巴西 熊皇姆巴佩皇馬內(nèi)戰(zhàn)

萬花筒體育球球
2026-03-26 17:12:13
美國總統(tǒng)特朗普表示將于5月中旬訪華,外交部:元首外交對中美關(guān)系發(fā)揮著不可替代的戰(zhàn)略引領(lǐng)作用,中美雙方就特朗普總統(tǒng)訪華事保持著溝通

美國總統(tǒng)特朗普表示將于5月中旬訪華,外交部:元首外交對中美關(guān)系發(fā)揮著不可替代的戰(zhàn)略引領(lǐng)作用,中美雙方就特朗普總統(tǒng)訪華事保持著溝通

瀟湘晨報
2026-03-26 16:25:20
撿漏成功!廣州市一棟三層別墅拍賣,被人撿漏170.6萬就競得,還要啥套間

撿漏成功!廣州市一棟三層別墅拍賣,被人撿漏170.6萬就競得,還要啥套間

阿離家居
2026-03-26 16:52:37
有沒有人敢爆自己的瓜?網(wǎng)友:確定玩這么大嗎?

有沒有人敢爆自己的瓜?網(wǎng)友:確定玩這么大嗎?

夜深愛雜談
2026-02-18 20:55:58
美議員喊話特朗普:如果北京不答應(yīng)美國要求,就不準中國做一件事

美議員喊話特朗普:如果北京不答應(yīng)美國要求,就不準中國做一件事

讓心靈得以棲息
2026-03-26 05:03:07
世人最尊敬的清華校長攜巨款去了美國,真相令所有人沉默…

世人最尊敬的清華校長攜巨款去了美國,真相令所有人沉默…

背包旅行
2026-03-25 15:05:36
火箭108-110森林狼!杜蘭特看清現(xiàn)實,申京也迷茫,一人該被重用

火箭108-110森林狼!杜蘭特看清現(xiàn)實,申京也迷茫,一人該被重用

魚崖大話籃球
2026-03-26 15:37:49
2026-03-26 18:35:00
像素與芯片
像素與芯片
有態(tài)度網(wǎng)友ytd
466文章數(shù) 2關(guān)注度
往期回顧 全部

科技要聞

Meta高管狂分百億期權(quán),700名員工卻下崗

頭條要聞

男子從四家公司貸出共計356萬元 實際到手卻僅8萬多元

頭條要聞

男子從四家公司貸出共計356萬元 實際到手卻僅8萬多元

體育要聞

申京努力了,然而杜蘭特啊

娛樂要聞

張雪峰家人首發(fā)聲 不設(shè)追思會喪事從簡

財經(jīng)要聞

長護險誰能享受?享受多少?解答來了

汽車要聞

一汽奧迪A6L e-tron開啟預(yù)售 CLTC最大續(xù)航815km

態(tài)度原創(chuàng)

家居
本地
時尚
數(shù)碼
公開課

家居要聞

傍海而居 靜觀蝴蝶海

本地新聞

救命,這只醬板鴨已經(jīng)在我手機復(fù)仇了一萬遍

皮衣+裙,高級到炸

數(shù)碼要聞

蘋果MacBook Neo將重塑整個筆電行業(yè)!分析師紛紛強調(diào):打不過

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關(guān)懷版