图灵禁区 第63节
  作者有话要说:  此处应有“参考文献”大概上千篇。
  但是作者懒得装这个逼,请大家将就脑补一下吧。
  ……
  好吧,其实因为都是基础知识储备,不用查资料也能写【手动狗头
  第58章
  没有去上课的时夜, 今天坐在图书馆里,借用这边的网络。
  当楚英纵上完课来招人的时候,就看见这冰山小学弟坐在某个多功能媒体室的最角落里, 若有所思地看着自己的笔记本电脑,眉头有若有似无的皱起痕迹。
  ——问题真的很难解吗?
  楚英纵走进来带上了门, 看了时夜一阵, 不知不觉把自己带来的橘子全剥好了,悄悄放在时夜手边。
  时夜抬头看向楚英纵。
  楚英纵:“我超安静的!没打扰你!”
  “……”时夜默默地又低下了头。
  过了一会儿, 楚英纵偷瞄着时夜屏幕上的内容, 见他这次好像在看一个dll文件, 看函数名的名字大概为:certdllverifymicrosoftrootcertificatechainpolicy……
  楚英纵不由好奇地问:“你不是要破解手机吗?怎么在看数字证书的东西?”
  时夜道:“ecc更新了新版本,和ios兼容性不是很好,可能有漏洞。”
  楚英纵听了, 精神一振:“有道理啊!”
  他跟着也瞄起了屏幕,粗略地看了看里头新更新的函数。
  根据版本更行后的对比来看,微软这次主要是修改了几个证书链接策略有关的函数, 新增了几个对于新协议的兼容性入口。
  时夜若有所思地来回调试,将一些关于内存对比的代码进行了高亮处理。
  楚英纵对于这点东西还是能看懂的, 好奇地说:“是这里在对公钥进行对比吗?”
  时夜说:“嗯。”
  数字证书, 可以类比人的“签证”,需要通过官方信赖的机构进行签发。
  用微软发明的这个椭圆曲线算法(ecc)来进行举例:签证机构首先选取一个私钥, 将私钥定义一条椭圆曲线,引入额外参数, 来得到椭圆上的另一个解, 这个解就是公钥。
  私钥这个东西只有签证机构自己知道,但是公钥是要发布到全网上的。
  当签证机构给某个软件签发数字证书的时候,他会用自己的私钥、某些局域参数和哈希值一并来产生签名, 也就变成了那个软件的“签证”。
  然后,公网上的任何人,都能够使用公钥,来比较这个软件的签证,也就是自己再通过一次椭圆曲线计算,可以对比得到结果是否相等——
  相等就说明“签证”就是官方机构签发的,没问题了;
  如果不相等,那么这就是“无效签证”,这个软件就是可疑的,是没有护照的黑户,不予信任。
  这一整个数字签证的过程,就是一场不对称的加密策略。
  “不对称”就在于:签证机构持有私钥,而所有人都持有公钥,整个过程只能验算,却无法逆推。
  就像国家掌握了印钱的防伪技术,所有人都能简单地用看一看、摸一摸的手段来验明钱币的防伪标记,但是没有人能伪造出这种标记来。
  这种技术也能最大程度地帮助计算机软件来防伪,也就变相保证了设备本身的安全性。
  但是,在时夜的世界里,没有不可能一说。
  毕竟——“世界上没有绝对安全的系统,只有尚未被发现的漏洞”。
  他来回调试着更新后的ecc签证算法,接着发现了一个叫做“certverifycertificatechainpolicy”的函数,连续传递了四个证书相关的参数,而且未做任何处理,便传向了下游的函数。
  他陷入了沉思。
  楚英纵见时夜突然停在了某个确定的位置上,不由也盯着看了半晌,抓耳挠腮的问:“时小夜,我能看懂oid这个参数,剩下三个是什么意思?”
  时夜拿起笔,随手在纸上写下了这几个参数,对他解释道:“假设根证书的私钥是p,这个私钥我们无从得知,但ecc的基点为g,那么公钥就是pg。这几个参数只是在自定义椭圆曲线的参数r、s和公钥……”
  说到此处,他声音突然停住了。
  楚英纵猛地“啊”了一声,说:“那这么校验的话,我自己传参进去,用一模一样的自定义参数,不就可以用随便一个私钥也可以进行签证了?”
  时夜沉默片刻,说:“你想的不错。”
  时夜在电脑上打开了命令提示符,开始使用openssl命令,自己伪造一系列参数,尝试生成新的ecc证书。
  然后用伪造的ecc证书,他随手对一个三无小软件做了签名。
  楚英纵看到一半的时候,已经自发自觉,默默地将自己的手机掏了出来,连接到电脑上。
  接着,时夜尝试将软件安装到他的手机上——
  数字签名校验通过。
  软件安装成功。
  到这一步,楚英纵的嘴巴已经变成了“o”型,叫道:“哇哇哇哇哇哇哇我们发现了一个0day!时小夜,发了啊!”
  时夜平静地:“嗯。”
  他继续做着接下来的工作,检查了一下这个自己伪造的数字证书,名字只是随便打了一个“1”而已,签名者的名字和日期都没有,但在系统里却是可被信任的“正常证书”。
  楚英纵就没这么淡定了,傻笑着原地转了两圈,往时夜的嘴里塞了两瓣橘子,喜滋滋道:“这可是数字证书的漏洞,提交给微软起码是个‘危重’级别。到时候奖金发下来,时小夜你要成百万富翁了!”
  橘子很甜,时夜默默地吃了,舔了下嘴唇。
  楚英纵看得怦然心动,又开心地亲了他一下。
  学长也很甜,时夜默默地被亲了,然后才随口道:“先不提交。”
  楚英纵这才想起来:“啊对,这才是第一步呢,你真的打算要破解ios系统13?”
  时夜:“嗯。”
  说话间,时夜手头的动作没有停,将证书打包进了自己的ios破解包里。
  得到了一个价值连城的微软0day,好像对他没有产生任何影响。
  也许他更高兴的,其实是自己能够在解题的步骤上更进了一步。
  楚英纵不觉间也安静了下来,看着他专注的侧脸,呆呆地想了一会儿事情。
  片刻后,楚英纵说:“阿夜,你有没有考虑过真的破解掉了系统以后,你可能会有很大名气,你不一定喜欢的那种……”
  时夜停顿了一下。
  他真的没有考虑过——现实世界的很多东西,本能地不在他的意识范围里。
  这时楚英纵说:“当年ios四代的时候,不是好像是欧洲的一个高中生破解出来的吗?他当晚就成名了,还被苹果公司告了。虽然最后法庭判断是‘智力好奇’,并没有定罪……”
  “我知道。”时夜说,“这是法律的灰色地带。”
  楚英纵低着头道:“时小夜,我们可以出于学术的目的去尝试,但是你可以答应我,不用来做非法的牟利吗?”
  时夜看了他一阵,嘴角好像带着一抹淡淡地笑意,说:“好。”
  楚英纵这才重新活跃起来,乐呵呵道:“好!接下来还有要帮忙的地方不?我也来我也来!洒家这辈子还没干过这种大事——刺激!!”
  这一整天,楚英纵都忍不住和时夜泡在了图书馆里。
  他们一起看那些佶屈聱牙的函数,一起调试各种乱七八糟的参数,一起被深奥的数学问题虐得怀疑人生。
  每当到了脑细胞死亡的时候,楚英纵就默默地剥一个橘子喂给时夜,时夜就不自觉地吃掉了……结果晚饭他根本吃不下。
  楚英纵去外面带了两大碗馄饨回来,又开始给时夜喂一个、喂一个,怕他不吃晚饭会饿着似的。
  最后两人不得不一起瘫软在沙发上。
  楚英纵是大脑放空,累的。
  时夜是撑的。
  到了晚上,余景树果然又开始加班了。
  他用内部软件给时夜发消息:【顾问先生,您今天有新的进展吗?我们这边已经额外准备了一些文件,你可以看一看。】
  时夜:【有。】
  余景树很是惊讶:【方便和我解释一下么?!我马上打电话过去。】
  时夜:【不方便,楚英纵睡着了。】
  余景树:【你们在宿舍吗?你可以出去接电话,不会吵到他的。】
  时夜:【不,我看着他。】
  余景树:“??”这是什么意思,您为啥看着他睡觉?太言简意赅了。一和这孩子对话,总觉得自己又要开始秃头了。
  其实,时夜只是被楚英纵缠住了。
  傻学长歪倒在沙发上,睡着了嘴巴还一张一合的,像一条搁浅的美男鱼。
  时夜伸出手,将他身下的数据线抽出来,给用了一天的手机充电。
  楚英纵迷迷糊糊间不满地哼了两声,伸手抓住了时夜的腰,用脸在他后腰上蹭了两下,然后又打起了呼噜来。
  时夜:“……”
  时夜伸出手指头,撩拨了一下楚英纵颤动的睫毛,换来了两声小猪似的哼哼。
  时夜歪了歪头,又伸手一一抚触过他的鼻梁、眉梢、微张的嘴唇,还有很多他感兴趣的地方。
  被吵得狠了,楚英纵不耐烦地翻了个面睡,嘴都不自觉地嘟了起来。
  可是时夜好像找到了新的玩具,有种乐此不彼的愉快感,完全忘记了自己正在运行中的电脑。
  楚英纵又睡了一会儿,总觉得身上哪儿都痒痒,最后还是一骨碌爬了起来,顶着满头乱毛道:“算了算了,我们回宿舍睡吧?”
  时夜眸光深深地看着他,说:“嗯。”
  楚英纵脸蛋都睡红了,起身迷迷瞪瞪地收拾东西,将橘子皮都丢进垃圾桶里,顺便随口道:“解题嘛,不急于一时,明天等我下课了再来找你……”
  “但是‘这道题’我很喜欢,希望明天尽早开始工作。”时夜忽然说着,想了想还补充了一句,“希望晚上也可以做。”
  楚英纵懵了半天:“我靠,这就是学神的境界吗?比不了比不了。”