第58章
沒有去上課的時夜, 今天坐在圖書館裏,借用這邊的網絡。
當楚英縱上完課來招人的時候,就看見這冰山小學弟坐在某個多功能媒體室的最角落裏, 若有所思地看著自己的筆記本電腦,眉頭有若有似無的皺起痕跡。
——問題真的很難解嗎?
楚英縱走進來帶上了門, 看了時夜一陣, 不知不覺把自己帶來的橘子全剝好了,悄悄放在時夜手邊。
時夜抬頭看向楚英縱。
楚英縱:“我超安靜的!沒打擾你!”
“……”時夜默默地又低下了頭。
過了一會兒, 楚英縱偷瞄著時夜屏幕上的內容, 見他這次好像在看一個dll文件, 看函數名的名字大概為:CertDllVerifyMicrosoftRootCertificatePolicy……
楚英縱不由好奇地問:“你不是要破解手機嗎?怎麽在看數字證書的東西?”
時夜道:“ECC更新了新版本,和IOS兼容性不是很好,可能有漏洞。”
楚英縱聽了, 精神一振:“有道理啊!”
他跟著也瞄起了屏幕,粗略地看了看裏頭新更新的函數。
根據版本更行後的對比來看,微軟這次主要是修改了幾個證書鏈接策略有關的函數, 新增了幾個對於新協議的兼容性入口。
時夜若有所思地來回調試,將一些關於內存對比的代碼進行了高亮處理。
楚英縱對於這點東西還是能看懂的, 好奇地說:“是這裏在對公鑰進行對比嗎?”
時夜說:“嗯。”
數字證書, 可以類比人的“簽證”,需要通過官方信賴的機構進行簽發。
用微軟發明的這個橢圓曲線算法(ECC)來進行舉例:簽證機構首先選取一個私鑰, 將私鑰定義一條橢圓曲線,引入額外參數, 來得到橢圓上的另一個解, 這個解就是公鑰。
私鑰這個東西隻有簽證機構自己知道,但是公鑰是要發布到全網上的。
當簽證機構給某個軟件簽發數字證書的時候,他會用自己的私鑰、某些局域參數和哈希值一並來產生簽名, 也就變成了那個軟件的“簽證”。
然後,公網上的任何人,都能夠使用公鑰,來比較這個軟件的簽證,也就是自己再通過一次橢圓曲線計算,可以對比得到結果是否相等——
相等就說明“簽證”就是官方機構簽發的,沒問題了;
如果不相等,那麽這就是“無效簽證”,這個軟件就是可疑的,是沒有護照的黑戶,不予信任。
這一整個數字簽證的過程,就是一場不對稱的加密策略。
“不對稱”就在於:簽證機構持有私鑰,而所有人都持有公鑰,整個過程隻能驗算,卻無法逆推。
就像國家掌握了印錢的防偽技術,所有人都能簡單地用看一看、摸一摸的手段來驗明錢幣的防偽標記,但是沒有人能偽造出這種標記來。
這種技術也能最大程度地幫助計算機軟件來防偽,也就變相保證了設備本身的安全性。
但是,在時夜的世界裏,沒有不可能一說。
畢竟——“世界上沒有絕對安全的係統,隻有尚未被發現的漏洞”。
他來回調試著更新後的ECC簽證算法,接著發現了一個叫做“CertVerifyCertificatePolicy”的函數,連續傳遞了四個證書相關的參數,而且未做任何處理,便傳向了下遊的函數。
他陷入了沉思。
楚英縱見時夜突然停在了某個確定的位置上,不由也盯著看了半晌,抓耳撓腮的問:“時小夜,我能看懂OID這個參數,剩下三個是什麽意思?”
時夜拿起筆,隨手在紙上寫下了這幾個參數,對他解釋道:“假設根證書的私鑰是p,這個私鑰我們無從得知,但ECC的基點為G,那麽公鑰就是pG。這幾個參數隻是在自定義橢圓曲線的參數r、s和公鑰……”
說到此處,他聲音突然停住了。
楚英縱猛地“啊”了一聲,說:“那這麽校驗的話,我自己傳參進去,用一模一樣的自定義參數,不就可以用隨便一個私鑰也可以進行簽證了?”
時夜沉默片刻,說:“你想的不錯。”
時夜在電腦上打開了命令提示符,開始使用openssl命令,自己偽造一係列參數,嚐試生成新的ECC證書。
然後用偽造的ECC證書,他隨手對一個三無小軟件做了簽名。
楚英縱看到一半的時候,已經自發自覺,默默地將自己的手機掏了出來,連接到電腦上。
接著,時夜嚐試將軟件安裝到他的手機上——
數字簽名校驗通過。
軟件安裝成功。
到這一步,楚英縱的嘴巴已經變成了“O”型,叫道:“哇哇哇哇哇哇哇我們發現了一個0day!時小夜,發了啊!”
時夜平靜地:“嗯。”
他繼續做著接下來的工作,檢查了一下這個自己偽造的數字證書,名字隻是隨便打了一個“1”而已,簽名者的名字和日期都沒有,但在係統裏卻是可被信任的“正常證書”。
楚英縱就沒這麽淡定了,傻笑著原地轉了兩圈,往時夜的嘴裏塞了兩瓣橘子,喜滋滋道:“這可是數字證書的漏洞,提交給微軟起碼是個‘危重’級別。到時候獎金發下來,時小夜你要成百萬富翁了!”
橘子很甜,時夜默默地吃了,舔了下嘴唇。
楚英縱看得怦然心動,又開心地親了他一下。
學長也很甜,時夜默默地被親了,然後才隨口道:“先不提交。”
楚英縱這才想起來:“啊對,這才是第一步呢,你真的打算要破解IOS係統13?”
時夜:“嗯。”
說話間,時夜手頭的動作沒有停,將證書打包進了自己的IOS破解包裏。
得到了一個價值連城的微軟0day,好像對他沒有產生任何影響。
也許他更高興的,其實是自己能夠在解題的步驟上更進了一步。
楚英縱不覺間也安靜了下來,看著他專注的側臉,呆呆地想了一會兒事情。
片刻後,楚英縱說:“阿夜,你有沒有考慮過真的破解掉了係統以後,你可能會有很大名氣,你不一定喜歡的那種……”
時夜停頓了一下。
他真的沒有考慮過——現實世界的很多東西,本能地不在他的意識範圍裏。
這時楚英縱說:“當年IOS四代的時候,不是好像是歐洲的一個高中生破解出來的嗎?他當晚就成名了,還被蘋果公司告了。雖然最後法庭判斷是‘智力好奇’,並沒有定罪……”
“我知道。”時夜說,“這是法律的灰色地帶。”
楚英縱低著頭道:“時小夜,我們可以出於學術的目的去嚐試,但是你可以答應我,不用來做非法的牟利嗎?”
時夜看了他一陣,嘴角好像帶著一抹淡淡地笑意,說:“好。”
楚英縱這才重新活躍起來,樂嗬嗬道:“好!接下來還有要幫忙的地方不?我也來我也來!灑家這輩子還沒幹過這種大事——刺激!!”
這一整天,楚英縱都忍不住和時夜泡在了圖書館裏。
他們一起看那些佶屈聱牙的函數,一起調試各種亂七八糟的參數,一起被深奧的數學問題虐得懷疑人生。
每當到了腦細胞死亡的時候,楚英縱就默默地剝一個橘子喂給時夜,時夜就不自覺地吃掉了……結果晚飯他根本吃不下。
楚英縱去外麵帶了兩大碗餛飩回來,又開始給時夜喂一個、喂一個,怕他不吃晚飯會餓著似的。
最後兩人不得不一起癱軟在沙發上。
楚英縱是大腦放空,累的。
時夜是撐的。
到了晚上,餘景樹果然又開始加班了。
他用內部軟件給時夜發消息:【顧問先生,您今天有新的進展嗎?我們這邊已經額外準備了一些文件,你可以看一看。】
時夜:【有。】
餘景樹很是驚訝:【方便和我解釋一下麽?!我馬上打電話過去。】
時夜:【不方便,楚英縱睡著了。】
餘景樹:【你們在宿舍嗎?你可以出去接電話,不會吵到他的。】
時夜:【不,我看著他。】
餘景樹:“??”這是什麽意思,您為啥看著他睡覺?太言簡意賅了。一和這孩子對話,總覺得自己又要開始禿頭了。
其實,時夜隻是被楚英縱纏住了。
傻學長歪倒在沙發上,睡著了嘴巴還一張一合的,像一條擱淺的美男魚。
時夜伸出手,將他身下的數據線抽出來,給用了一天的手機充電。
楚英縱迷迷糊糊間不滿地哼了兩聲,伸手抓住了時夜的腰,用臉在他後腰上蹭了兩下,然後又打起了呼嚕來。
時夜:“……”
時夜伸出手指頭,撩撥了一下楚英縱顫動的睫毛,換來了兩聲小豬似的哼哼。
時夜歪了歪頭,又伸手一一撫觸過他的鼻梁、眉梢、微張的嘴唇,還有很多他感興趣的地方。
被吵得狠了,楚英縱不耐煩地翻了個麵睡,嘴都不自覺地嘟了起來。
可是時夜好像找到了新的玩具,有種樂此不彼的愉快感,完全忘記了自己正在運行中的電腦。
楚英縱又睡了一會兒,總覺得身上哪兒都癢癢,最後還是一骨碌爬了起來,頂著滿頭亂毛道:“算了算了,我們回宿舍睡吧?”
時夜眸光深深地看著他,說:“嗯。”
楚英縱臉蛋都睡紅了,起身迷迷瞪瞪地收拾東西,將橘子皮都丟進垃圾桶裏,順便隨口道:“解題嘛,不急於一時,明天等我下課了再來找你……”
“但是‘這道題’我很喜歡,希望明天盡早開始工作。”時夜忽然說著,想了想還補充了一句,“希望晚上也可以做。”
楚英縱懵了半天:“我靠,這就是學神的境界嗎?比不了比不了。”
時夜頓了一下,說:“……可能還是因為,題目比較新穎和有趣。”
楚英縱抱怨:“天天做題,不懂勞逸結合嗎?你的時間表裏能不能留個位置跟我玩啊……誒,你在笑啥?”
時夜笑而不語。
作者有話要說:別多想,該漏洞在2020年1月已經被微軟修複了。