对于原生态的IOS系统,每次安装软件时,都必须要验证一个软件的证书——该证书通常由苹果公司亲自签发,或者由他们信任和指定的第三方机构签发。
没有被苹果公司审核过的软件,当然就没有证书。
这就好比一个人想要过海关,却没有护照和签证一样,看上去有些荒谬。
现在,时夜的目光就落在了这个证书上。
——就在今年1月,微软更新了他们的椭圆曲线密码证书的算法,它是计算机界的第9代护照。
作者有话要说:此处应有“参考文献”大概上千篇。
但是作者懒得装这个逼,请大家将就脑补一下吧。
……
好吧,其实因为都是基础知识储备,不用查资料也能写【手动狗头
第58章
没有去上课的时夜,今天坐在图书馆里,借用这边的网络。
当楚英纵上完课来招人的时候,就看见这冰山小学弟坐在某个多功能媒体室的最角落里,若有所思地看着自己的笔记本电脑,眉头有若有似无的皱起痕迹。
——问题真的很难解吗?
楚英纵走进来带上了门,看了时夜一阵,不知不觉把自己带来的橘子全剥好了,悄悄放在时夜手边。
时夜抬头看向楚英纵。
楚英纵:“我超安静的!没打扰你!”
“……”时夜默默地又低下了头。
过了一会儿,楚英纵偷瞄着时夜屏幕上的内容,见他这次好像在看一个dll文件,看函数名的名字大概为:CertDllVerifyMicrosoftRootCertificateChainPolicy……
楚英纵不由好奇地问:“你不是要破解手机吗?怎么在看数字证书的东西?”
时夜道:“ECC更新了新版本,和IOS兼容性不是很好,可能有漏洞。”
楚英纵听了,精神一振:“有道理啊!”
他跟着也瞄起了屏幕,粗略地看了看里头新更新的函数。
根据版本更行后的对比来看,微软这次主要是修改了几个证书链接策略有关的函数,新增了几个对于新协议的兼容性入口。
时夜若有所思地来回调试,将一些关于内存对比的代码进行了高亮处理。
楚英纵对于这点东西还是能看懂的,好奇地说:“是这里在对公钥进行对比吗?”
时夜说:“嗯。”
数字证书,可以类比人的“签证”,需要通过官方信赖的机构进行签发。
用微软发明的这个椭圆曲线算法(ECC)来进行举例:签证机构首先选取一个私钥,将私钥定义一条椭圆曲线,引入额外参数,来得到椭圆上的另一个解,这个解就是公钥。
私钥这个东西只有签证机构自己知道,但是公钥是要发布到全网上的。
当签证机构给某个软件签发数字证书的时候,他会用自己的私钥、某些局域参数和哈希值一并来产生签名,也就变成了那个软件的“签证”。
然后,公网上的任何人,都能够使用公钥,来比较这个软件的签证,也就是自己再通过一次椭圆曲线计算,可以对比得到结果是否相等——
相等就说明“签证”就是官方机构签发的,没问题了;
如果不相等,那么这就是“无效签证”,这个软件就是可疑的,是没有护照的黑户,不予信任。
这一整个数字签证的过程,就是一场不对称的加密策略。
“不对称”就在于:签证机构持有私钥,而所有人都持有公钥,整个过程只能验算,却无法逆推。
就像国家掌握了印钱的防伪技术,所有人都能简单地用看一看、摸一摸的手段来验明钱币的防伪标记,但是没有人能伪造出这种标记来。