小小千想和您聊一聊

当前位置: 首页> 技术分享> 网络基础 — CA认证(2)

网络基础 — CA认证(2)

  CA机构通过数字签名的方法来验证你所访问的网站服务器和合法性和真实性。而在上一节CA证书中出现了SHA、RSA等数字签名相关的算法,它们是CA认证必不可少的技术核心。

  以上这些算法,咱们先从“消息摘要”开始说起。

  通俗来讲,消息摘要是把输入的原始数据消息,通过摘要算法,产生长度固定的字符串(像不像对一篇文章进行总结并归纳出它的中心思想)。而原始数据中的任何内容发生变化(哪怕是多了一个空格)也会产生不一样的摘要信息。这个特点被用来检测文件内容的完整性和是否被修改过(是否被人动过手脚)。

  例如在MySQL的官方下载页面,下载链接的旁边就提供了一个MD5的摘要字符串。你可以将下载的文件在本地进行摘要计算,用自己本地得到的摘要信息和官网上提供的摘要信息进行比对,从而判断下载的文件是否完整。

  “消息摘要”是通过“散列函数(hash function)”来实现的,即将任意长度的输入转化为定长输出的一种算法。散列函数的结果也常被称为“散列(hash)”、“指纹”、“摘要”,或者直接翻译为“哈希”。它有以下几个特性:

  1) 单向性:散列函数是不可逆的,即无法通过一个给定的散列结果,反向找到出生成它的原始信息内容。

  2) 抗碰撞性:通过计算无法找到两个不同的原始信息具有相同散列的情况。

  常见的摘要算法有MD系列和SHA系列。

  MD全称Message-Digest Algorithm,该系列的代表算法是:MD4(1990年)和MD5(1991年),能够产生128比特的散列值。其中MD4已经不再安全。而且在2004年,王小云团队提出了MD5的碰撞攻击方法,也对MD5的安全性产生了巨大影响。

  SHA 全称Secure Hash Algorithm,翻译为“安全散列算法”,由美国所设计,SHA 是一个家族算法,分别包括:

  1) SHA-1(1995年公布)。会产生一个160位的消息摘要,但是它的安全性已经变弱了(2017年2月23日,Google经过两年的研究,表示其已经成功破解了SHA-1加密),因此需要使用其它的SHA算法(如SHA-256、SHA-3)

  2) SHA-2系列。包括SHA-224、SHA-256、SHA-384和SHA-512这四个不同的算法。上一节我们看到百度的证书中就是使用其中的SHA-256算法。虽然SHA-2尚未被攻破,但是由于SHA-2采用的是与SHA-1同样的结构,因此SHA-2也存在着潜在安全隐患。

  3) SHA-3(使用Keccak算法)。至目前为止,第三方密码分析已经显示出Keccak没有严重的弱点

  这里必须要提到的是,中国科学院院士、密码学家王小云(女),提出了密码哈希函数的碰撞攻击理论,即模差分比特分析法,提高了破解了包括MD5、SHA-1在内的5个国际通用哈希函数算法的概率;设计了中国哈希函数标准SM3。2019年获得未来科学大奖“数学与计算机科学奖”。

  当一个网站(如百度)向CA机构申请数字证书的时候,需要提交申请信息,如国家、域名、公司名称等内容,然后CA机构确认无误后通过消息摘要算法生成整个申请信息的摘要签名。如下图展示的就是百度证书里面的签名算法和指纹(生成的摘要),使用的证书签名算法为SHA-256,对证书信息进行摘要处理后,产生32个字节(共256位)的摘要信息。

上一篇:Java面试经典算法题2

下一篇:写不好测试用例是因为没时间吗?

QQ技术交流群

千锋软件测试官方①群
858327674

加入群聊

用户登录

手机号:

密码:

图形验证码:

点击切换

用户注册

手机号:

登录密码:

图形验证码:

点击切换

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

手机号:

图形验证码:

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

新密码:

确认新密码:

获取课程

添加小千老师微信,获取课程信息

如何获取课程?

一、需拥有此本教材

如没有,可点击下方入口购买当当购买入口京东购买入口

二、添加小千老师,发送拥有凭证,解锁课程资源

1.购买该教材的订单信息
2.拥有的实体书信息等

更换手机号

新手机号:

图形验证码:

短信验证码:

获取验证码