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