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

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

V8團(tuán)隊(duì)花3個月造了一把"雙向鎖":防住攻擊的同時還要能秒開

0
分享至


2026年3月,Node.js安全團(tuán)隊(duì)修復(fù)了一個編號CVE-2026-21717的漏洞。攻擊者只需構(gòu)造少量惡意輸入,就能讓服務(wù)器哈希表退化成鏈表,單線程事件循環(huán)被徹底卡死。這不是理論風(fēng)險——V8作為Node.js的引擎,在瀏覽器里崩潰只關(guān)一個標(biāo)簽頁,在服務(wù)器上就是整臺機(jī)器停擺。

修復(fù)方案的核心矛盾讓人頭疼:哈希函數(shù)既要足夠隨機(jī)、讓攻擊者猜不到碰撞點(diǎn),又要能被V8自己快速還原。前者防HashDoS,后者保性能優(yōu)化。谷歌工程師形容這"像給保險箱裝一把鎖,壞人打不開,但主人不能用鑰匙——得用念力秒開"。

哈希表的阿喀琉斯之踵

哈希表的設(shè)計(jì)承諾是O(1)平均時間復(fù)雜度。理想情況下,插入n個元素的總成本是O(n)。但當(dāng)大量鍵被映射到同一槽位,查找變成線性掃描,最壞情況會退化為O(n2)。

這種退化在客戶端只是卡頓,在服務(wù)器端就是武器。攻擊者不需要海量流量,幾十條精心構(gòu)造的字符串就能讓單線程事件循環(huán)陷入長時間計(jì)算,其他請求全部餓死。Node.js的安全團(tuán)隊(duì)把這種攻擊命名為"哈希洪水"——小規(guī)模輸入引發(fā)結(jié)構(gòu)性潰壩。

V8對此并非毫無防備。2012年,團(tuán)隊(duì)引入過隨機(jī)化種子讓哈希值不可預(yù)測。但舊方案有個副作用:某些性能優(yōu)化需要知道原始字符串,而哈希不可逆意味著額外存儲開銷。V8選擇了性能,把原始值存了下來——這為后來的攻擊留下了縫隙。

雙向鎖的設(shè)計(jì)困局

CVE-2026-21717的修復(fù)要求同時滿足兩個目標(biāo)。第一,哈希函數(shù)必須是密碼學(xué)強(qiáng)度的偽隨機(jī)置換,攻擊者在不知道密鑰的情況下,無法找到碰撞輸入。第二,V8運(yùn)行時持有密鑰,必須能高效逆運(yùn)算,還原出原始整數(shù)用于內(nèi)部優(yōu)化。

標(biāo)準(zhǔn)加密哈希如SHA-256滿足第一條,但不可逆。簡單線性同余生成器可逆,但太容易被預(yù)測。團(tuán)隊(duì)需要造一把"雙向鎖":對外是混沌黑箱,對內(nèi)是透明管道。

最終方案基于Feistel網(wǎng)絡(luò)結(jié)構(gòu)——一種被DES、AES等算法反復(fù)驗(yàn)證的設(shè)計(jì)。核心思想是把輸入分成兩半,通過多輪輪函數(shù)交替混淆。V8的實(shí)現(xiàn)選了4輪,每輪用不同的64位隨機(jī)密鑰與數(shù)據(jù)塊進(jìn)行算術(shù)運(yùn)算。輪函數(shù)本身不可逆,但整輪流程是置換,只要按逆序應(yīng)用輪密鑰就能還原。


密鑰空間被刻意限制在運(yùn)行時內(nèi)部。編譯后的V8二進(jìn)制不攜帶密鑰,每次啟動時由操作系統(tǒng)熵源重新生成。攻擊者即使拿到相同版本的Node.js,也無法復(fù)現(xiàn)哈希值。

統(tǒng)計(jì)檢驗(yàn)與工程取舍

設(shè)計(jì)完成后,團(tuán)隊(duì)用NIST SP 800-22測試套件對哈希輸出進(jìn)行檢驗(yàn)。15項(xiàng)統(tǒng)計(jì)測試中,該函數(shù)全部通過,包括頻率檢驗(yàn)、游程檢驗(yàn)、矩陣秩檢驗(yàn)等。特別針對哈希攻擊場景,團(tuán)隊(duì)還測試了雪崩效應(yīng):輸入改變1比特,輸出平均50%比特翻轉(zhuǎn),符合密碼學(xué)哈希的混淆要求。

性能數(shù)據(jù)同樣關(guān)鍵。可逆性帶來的開銷被控制在1%以內(nèi)。在典型的字符串哈希緩存場景中,新方案相比舊方案內(nèi)存占用增加約12%,但消除了存儲原始值的必要——總體仍算節(jié)省。

一個細(xì)節(jié)暴露了工程現(xiàn)實(shí)的復(fù)雜性。V8內(nèi)部有種"數(shù)字字符串"優(yōu)化:純數(shù)字字符串會被直接解析為整數(shù)哈希,避免完整字符串哈希計(jì)算。新方案必須兼容這個捷徑,否則大量JSON解析場景會性能暴跌。團(tuán)隊(duì)最終讓數(shù)字字符串走同一套Feistel流程,但用固定密鑰派生路徑,既保安全又不破壞優(yōu)化。

Node.js的修復(fù)時間線

漏洞披露到修復(fù)上線歷時87天。2025年12月,安全研究員通過HackerOne提交報(bào)告,演示了用200個特定字符串讓Node.js事件循環(huán)阻塞超過30秒。Node.js安全工作組確認(rèn)影響后,協(xié)調(diào)V8團(tuán)隊(duì)共同開發(fā)修復(fù)。

2026年2月,修復(fù)方案進(jìn)入Node.js 18.x、20.x、22.x的LTS分支。3月安全發(fā)布日,三個版本同步更新。由于涉及V8引擎底層,Electron、Deno等依賴項(xiàng)目也收到提前通知。

值得玩味的是瀏覽器端的處理。Chrome團(tuán)隊(duì)評估后認(rèn)為,同源策略和站點(diǎn)隔離已足夠緩解風(fēng)險,未同步更新哈希方案。同一套V8代碼,在客戶端和服務(wù)器端走上了不同的安全策略——這解釋了為什么Node.js需要獨(dú)立的安全發(fā)布流程,而非簡單跟隨Chrome更新。

修復(fù)發(fā)布后,有開發(fā)者在GitHub issue下提問:如果攻擊者通過側(cè)信道(如時序分析)推測輪函數(shù)結(jié)構(gòu),F(xiàn)eistel的4輪設(shè)計(jì)是否足夠?V8工程師回復(fù)稱,當(dāng)前威脅模型假設(shè)攻擊者只能進(jìn)行黑盒查詢,物理側(cè)信道不在考慮范圍內(nèi)——但留下一句"歡迎提交新的安全報(bào)告"。

這把"雙向鎖"的鑰匙,現(xiàn)在握在每個Node.js進(jìn)程啟動時的系統(tǒng)熵池手里。而攻擊者面對的,是一個每次重啟都換鎖芯的保險箱。下一個問題或許是:當(dāng)量子計(jì)算讓64位密鑰變得可窮舉,V8的第5輪設(shè)計(jì)該留多少性能余量?

特別聲明:以上內(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)推薦
熱點(diǎn)推薦
帶娃出國的中產(chǎn)后悔了:想回來,但回國失敗

帶娃出國的中產(chǎn)后悔了:想回來,但回國失敗

視覺志
2026-03-24 10:36:13
回顧“91女神”琪琪:五官出眾,卻因天真讓自己“受傷”

回顧“91女神”琪琪:五官出眾,卻因天真讓自己“受傷”

就一點(diǎn)
2025-11-22 10:36:39
舊手機(jī)回收價狂漲五六倍!回收商:開不了機(jī)的照樣高價收

舊手機(jī)回收價狂漲五六倍!回收商:開不了機(jī)的照樣高價收

快科技
2026-03-25 14:53:24
東契奇43分創(chuàng)紀(jì)錄,湖人逆轉(zhuǎn)勝步行者穩(wěn)西部第三

東契奇43分創(chuàng)紀(jì)錄,湖人逆轉(zhuǎn)勝步行者穩(wěn)西部第三

李絙在北漂
2026-03-26 13:20:36
51歲孔令輝:為生活奔波,與劉國梁9年未見面,一個電話讓他落淚

51歲孔令輝:為生活奔波,與劉國梁9年未見面,一個電話讓他落淚

夢史
2026-03-25 11:33:08
王勵勤動真格了!倫敦世乒賽陣容有變,陳夢調(diào)整,2人被冷落

王勵勤動真格了!倫敦世乒賽陣容有變,陳夢調(diào)整,2人被冷落

不似少年游
2026-03-25 17:03:59
你知道我在床上有多厲害嗎?

你知道我在床上有多厲害嗎?

果粉之家
2026-03-20 12:35:16
從歐爾班行為,看北約當(dāng)年拒絕俄羅斯的遠(yuǎn)見

從歐爾班行為,看北約當(dāng)年拒絕俄羅斯的遠(yuǎn)見

民間胡扯老哥
2026-03-23 18:53:38
破防!小縣城殯儀館大屏流出,中年人扎堆離世,網(wǎng)友:還爭什么?

破防!小縣城殯儀館大屏流出,中年人扎堆離世,網(wǎng)友:還爭什么?

川渝視覺
2026-03-23 19:26:44
喪夫僅5個月,49歲翁帆突傳“喜訊”高調(diào)露面,狀態(tài)好到出人意料

喪夫僅5個月,49歲翁帆突傳“喜訊”高調(diào)露面,狀態(tài)好到出人意料

冷紫葉
2026-03-24 19:12:36
勇士逆轉(zhuǎn)橫掃送籃網(wǎng)9連敗 桑托斯31分大爆發(fā)波杰姆斯基22分

勇士逆轉(zhuǎn)橫掃送籃網(wǎng)9連敗 桑托斯31分大爆發(fā)波杰姆斯基22分

醉臥浮生
2026-03-26 12:45:06
第六險來了!一文讀懂“長護(hù)險”

第六險來了!一文讀懂“長護(hù)險”

極目新聞
2026-03-26 07:21:00
張雪峰猝死后,盧克文也不敢跑步了,曾每年跑1千公里,身體垮了

張雪峰猝死后,盧克文也不敢跑步了,曾每年跑1千公里,身體垮了

水晶的視界
2026-03-26 09:28:29
有沒有人敢爆自己的瓜?網(wǎng)友:確定玩這么大嗎?

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

夜深愛雜談
2026-02-18 20:55:58
四川高縣村支書暴打殘疾村婦致輕傷 法院判決免于刑事處罰引爭議

四川高縣村支書暴打殘疾村婦致輕傷 法院判決免于刑事處罰引爭議

律法刑道
2026-03-26 10:55:03
2.4億成全你!詹姆斯降薪2000萬?雙詹合體咋辦!

2.4億成全你!詹姆斯降薪2000萬?雙詹合體咋辦!

柚子說球
2026-03-25 11:44:10
薩巴倫卡贏鄭欽文后吃100美元漢堡 頂奢!魚子醬+金箔碎她說超好吃

薩巴倫卡贏鄭欽文后吃100美元漢堡 頂奢!魚子醬+金箔碎她說超好吃

勁爆體壇
2026-03-26 08:10:23
4000噸稀土被轉(zhuǎn)運(yùn)美國?大陸停供臺灣稀土!臺學(xué)者:不如直接統(tǒng)一

4000噸稀土被轉(zhuǎn)運(yùn)美國?大陸停供臺灣稀土!臺學(xué)者:不如直接統(tǒng)一

小舟談歷史
2026-03-19 17:27:44
RMC記者:姆巴佩在發(fā)布會上說謊了,我1000%確認(rèn)他被誤診了

RMC記者:姆巴佩在發(fā)布會上說謊了,我1000%確認(rèn)他被誤診了

懂球帝
2026-03-26 06:43:05
伊拉克民兵無人機(jī)出擊!炸了美軍的雷達(dá),又擊中黑鷹直升機(jī)

伊拉克民兵無人機(jī)出擊!炸了美軍的雷達(dá),又擊中黑鷹直升機(jī)

戰(zhàn)風(fēng)
2026-03-25 11:44:25
2026-03-26 13:55:00
像素與芯片
像素與芯片
有態(tài)度網(wǎng)友ytd
424文章數(shù) 2關(guān)注度
往期回顧 全部

科技要聞

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

頭條要聞

伊朗議長和外長暫被移出美以清除名單 時限4到5天

頭條要聞

伊朗議長和外長暫被移出美以清除名單 時限4到5天

體育要聞

35歲替補(bǔ)門將,憑什么入選英格蘭隊(duì)?

娛樂要聞

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

財(cái)經(jīng)要聞

黃仁勛:芯片公司的時代已經(jīng)結(jié)束了

汽車要聞

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

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

游戲
數(shù)碼
教育
家居
時尚

IGN認(rèn)為Xbox機(jī)會來了!新主機(jī)要轉(zhuǎn)守為攻 重塑自我

數(shù)碼要聞

Intel史上最先進(jìn)!酷睿Ultra 300系列vPro平臺發(fā)布

教育要聞

2027屆注意:暑期實(shí)習(xí)=秋招通行證,錯過等一年

家居要聞

傍海而居 靜觀蝴蝶海

2026年了,最好看的還是“這件針織”!

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