指尖的詠嘆調(diào)提示您:看后求收藏(詩(shī)鼎小說(shuō)網(wǎng)網(wǎng)m.autocad360.cn),接著再看更方便。
<script>theme();</script></dt>
作者有話要說(shuō): 此處應(yīng)有“參考文獻(xiàn)”大概上千篇。
但是作者懶得裝這個(gè)逼,請(qǐng)大家將就腦補(bǔ)一下吧。
……
好吧,其實(shí)因?yàn)槎际腔A(chǔ)知識(shí)儲(chǔ)備,不用查資料也能寫(xiě)【手動(dòng)狗頭
第58章
沒(méi)有去上課的時(shí)夜, 今天坐在圖書(shū)館里,借用這邊的網(wǎng)絡(luò)。
當(dāng)楚英縱上完課來(lái)招人的時(shí)候,就看見(jiàn)這冰山小學(xué)弟坐在某個(gè)多功能媒體室的最角落里, 若有所思地看著自己的筆記本電腦,眉頭有若有似無(wú)的皺起痕跡。
——問(wèn)題真的很難解嗎?
楚英縱走進(jìn)來(lái)帶上了門(mén), 看了時(shí)夜一陣, 不知不覺(jué)把自己帶來(lái)的橘子全剝好了,悄悄放在時(shí)夜手邊。
時(shí)夜抬頭看向楚英縱。
楚英縱:“我超安靜的!沒(méi)打擾你!”
“……”時(shí)夜默默地又低下了頭。
過(guò)了一會(huì)兒, 楚英縱偷瞄著時(shí)夜屏幕上的內(nèi)容, 見(jiàn)他這次好像在看一個(gè)dll文件, 看函數(shù)名的名字大概為:certdllverifymicrosoftrootcertificatechainpolicy……
楚英縱不由好奇地問(wèn):“你不是要破解手機(jī)嗎?怎么在看數(shù)字證書(shū)的東西?”
時(shí)夜道:“ecc更新了新版本,和ios兼容性不是很好,可能有漏洞。”
楚英縱聽(tīng)了, 精神一振:“有道理啊!”
他跟著也瞄起了屏幕,粗略地看了看里頭新更新的函數(shù)。
根據(jù)版本更行后的對(duì)比來(lái)看,微軟這次主要是修改了幾個(gè)證書(shū)鏈接策略有關(guān)的函數(shù), 新增了幾個(gè)對(duì)于新協(xié)議的兼容性入口。
時(shí)夜若有所思地來(lái)回調(diào)試,將一些關(guān)于內(nèi)存對(duì)比的代碼進(jìn)行了高亮處理。
楚英縱對(duì)于這點(diǎn)東西還是能看懂的, 好奇地說(shuō):“是這里在對(duì)公鑰進(jìn)行對(duì)比嗎?”
時(shí)夜說(shuō):“嗯。”
數(shù)字證書(shū), 可以類比人的“簽證”,需要通過(guò)官方信賴的機(jī)構(gòu)進(jìn)行簽發(fā)。
用微軟發(fā)明的這個(gè)橢圓曲線算法(ecc)來(lái)進(jìn)行舉例:簽證機(jī)構(gòu)首先選取一個(gè)私鑰, 將私鑰定義一條橢圓曲線,引入額外參數(shù), 來(lái)得到橢圓上的另一個(gè)解, 這個(gè)解就是公鑰。
私鑰這個(gè)東西只有簽證機(jī)構(gòu)自己知道,但是公鑰是要發(fā)布到全網(wǎng)上的。
當(dāng)簽證機(jī)構(gòu)給某個(gè)軟件簽發(fā)數(shù)字證書(shū)的時(shí)候,他會(huì)用自己的私鑰、某些局域參數(shù)和哈希值一并來(lái)產(chǎn)生簽名, 也就變成了那個(gè)軟件的“簽證”。
然后,公網(wǎng)上的任何人,都能夠使用公鑰,來(lái)比較這個(gè)軟件的簽證,也就是自己再通過(guò)一次橢圓曲線計(jì)算,可以對(duì)比得到結(jié)果是否相等——
相等就說(shuō)明“簽證”就是官方機(jī)構(gòu)簽發(fā)的,沒(méi)問(wèn)題了;
如果不相等,那么這就是“無(wú)效簽證”,這個(gè)軟件就是可疑的,是沒(méi)有護(hù)照的黑戶,不予信任。
這一整個(gè)數(shù)字簽證的過(guò)程,就是一場(chǎng)不對(duì)稱的加密策略。
“不對(duì)稱”就在于:簽證機(jī)構(gòu)持有私鑰,而所有人都持有公鑰,整個(gè)過(guò)程只能驗(yàn)算,卻無(wú)法逆推。
就像國(guó)家掌握了印錢(qián)的防偽技術(shù),所有人都能簡(jiǎn)單地用看一看、摸一摸的手段來(lái)驗(yàn)明錢(qián)幣的防偽標(biāo)記,但是沒(méi)有人能偽造出這種標(biāo)記來(lái)。
這種技術(shù)也能最大程度地幫助計(jì)算機(jī)軟件來(lái)防偽,也就變相保證了設(shè)備本身的安全性。
但是,在時(shí)夜的世界里,沒(méi)有不可能一說(shuō)。
畢竟——“世界上沒(méi)有絕對(duì)安全的系統(tǒng),只有尚未被發(fā)現(xiàn)的漏洞”。
他來(lái)回調(diào)試著更新后的ecc簽證算法,接著發(fā)現(xiàn)了一個(gè)叫做“certverifycertificatechainpolicy”的函數(shù),連續(xù)傳遞了四個(gè)證書(shū)相關(guān)的參數(shù),而且未做任何處理,便傳向了下游的函數(shù)。
他陷入了沉思。
楚英縱見(jiàn)時(shí)夜突然停在了某個(gè)確定的位置上,不由也盯著看了半晌,抓耳撓腮的問(wèn):“時(shí)小夜,我能看懂oid這個(gè)參數(shù),剩下三個(gè)是什么意思?”
時(shí)夜拿起筆,隨手在紙上寫(xiě)下了這幾個(gè)參數(shù),對(duì)他解釋道:“假設(shè)根證書(shū)的私鑰是p,這個(gè)私鑰我們無(wú)從得知,但ecc的基點(diǎn)為g,那么公鑰就是pg。這幾個(gè)參數(shù)只是在自定義橢圓曲線的參數(shù)r、s和公鑰……”
說(shuō)到此處,他聲音突然停住了。
楚英縱猛地“啊”了一聲,說(shuō):“那這么校驗(yàn)的話,我自己傳參進(jìn)去,用一模一樣的自定義參數(shù),不就可以用隨便一個(gè)私鑰也可以進(jìn)行簽證了?”
時(shí)夜沉默片刻,說(shuō):“你想的不錯(cuò)。”
時(shí)夜在電腦上打開(kāi)了命令提示符,開(kāi)始使用openssl命令,自己偽造一系列參數(shù),嘗試生成新的ecc證書(shū)。
然后用偽造的ecc證書(shū),他隨手對(duì)一個(gè)三無(wú)小軟件做了簽名。
楚英縱看到一半的時(shí)候,已經(jīng)自發(fā)自覺(jué),默默地將自己的手機(jī)掏了出來(lái),連接到電腦上。
接著,時(shí)夜嘗試將軟件安裝到他的手機(jī)上——
數(shù)字簽名校驗(yàn)通過(guò)。
軟件安裝成功。
到這一步,楚英縱的嘴巴已經(jīng)變成了“o”型,叫道:“哇哇哇哇哇哇哇我們發(fā)現(xiàn)了一個(gè)0day!時(shí)小夜,發(fā)了啊!”
時(shí)夜平靜地:“嗯。”