您当前的位置: 首页 >  ssl

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SSL基础:1:算法基础介绍

发布时间:2019-12-07 08:07:14 ,浏览量:0

在这里插入图片描述 SSL是安全套接层(Secure Sockets Layer)的缩写,最早是Netscape公司推出浏览器是提出的。HTTP协议在整个互联网构建中起到了及其重大的作用,但是传统的HTTP协议使用明文进行数据的传输,这就存在着数据被窃取或者篡改的风险,而SSL证书则能在其中对安全起到加固的作用。

HTTP vs HTTPS

HTTPS是Hyper Text Transfer Protocol over SecureSocket Layer的缩写,它相当于HTTP + SSL的实现。在引入SSL之前,传统的SSL之间存在信任的危机:

  • 无证上岗的网站提供良莠不齐的信息,甚至大量钓鱼网站的存在,使得用户难以判断其是否是安全的
  • “中间人”可能会在网络数据传输中窃取本来希望仅传输给特定用户的数据
  • 数据的篡改也可能会存在,数据发送方发送数据,接收方无法证明这个数据就是发送方所提供并未篡改,除了安全,不可抵赖性无法得到保证。

浏览器或者客户端以https://的方式对服务器端提供的服务进行访问时,实际上就是通过SSL连接使用的HTTP协议,保证了用户数据在传输过程中的安全。

加密算法 对称密钥算法

对称密钥算法以DES和AES最为著名,其最主要的特征是“同一把钥匙”,也就是说加密解密都是使用同样的密钥,非常容易理解,使用的过程如下图所示: 在这里插入图片描述 发送方使用明文数据和密钥进行加密,加密后的数据在网络上或者其他方式进行传输,接收方拿同一把钥匙进行解密。对称密钥算法非常快速、易用和方便,但是每次每对发送者/接收者都使用唯一的密钥进行通信(相同就更加不安全了),在数量增大的情况下,在密钥管理上将会非常之复杂,密钥的安全需要得到保证,同时由于没有数字签名,不可抵赖性也无法得到保证。

对称密钥算法中有很多优秀的传统算法,DES和AES是其中的翘楚:

  • DES:算法名称为数据加密算法(Data Encryption Standard)的DES出自于IBM之手,后在美国军方采纳得到了更为广泛的应用。一般来说DES提供56位的密钥,这在当下的计算能力之下,一般都能很快的被破解掉
  • AES:算法名称为(Advanced Encryption Standard)的AES就是DES的替代算法之一,由NIST(美国国家标准与技术研究院)在2001年11月发布,并在2002年成为有效标准,是最流行的对称密钥加密算法之一。
非对称密钥算法

相较于同一把钥匙加密和解密的对称密钥算法,加密和解密使用不同钥匙的算法则是非对称密钥算法,其中RSA和DSA较为著名。以Bob发行的公钥和密钥为例,使用过程示例如下图所示: 在这里插入图片描述 可以看到与前面对称密钥算法的区别在于,加密和解密使用的密钥不同。非对称密钥由如下特点:

  • 公钥:可以公开传输和使用,一般用于数据传输之前的加密
  • 私钥:必须严格保存,代表使用者身份,可以进行加密数据的解密

由于加密和解密不是同一把钥匙,只有拥有私钥才能进行解密,只要将私钥进行严格管理就能保证相对的安全性。 非对称密钥算法中有很多优秀的传统算法,比如RSA:

  • RSA:RAS是1977年MIT麻省理工学院的罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)所共同提出,此算法也是以三人姓名的首字母组成。算法的基本理论基础在于大数分解的安全性,虽然RSA无法抵抗穷举,但在量子计算机真正使用之前还是相对很安全的,也是目前主流的安全加密算法。

基于椭圆曲线理论的公钥加密技术ECC是从另外一个角度创建的非对称加密算法,以及DSA(Digital Signature Algorithm)数字签名算法,它是一种数字签名标准,严格来说不算是加密算法,使用也较为广泛。

使用SSL进行数据传输

HTTPS使用SSL对HTTP协议的安全进行的加强,在理论上SSL可以对基于TCP的任何协议进行支持。一个使用SSL的客户端和 在这里插入图片描述 在这个过程之中,基于非对称密钥算法公钥和私钥起到了重要作用:

  • 公钥:上图中提到的证书实际上包含了公钥和其他一些服务器端的信息,客户端使用公钥对要传输的数据进行加密。
  • 私钥:私钥只有服务器才拥有,数据即使被窃取,没有私钥也无法获得客户端传递的信息,这也是非对称密钥的重要思路。
总结

建立在非对称密钥算法基础之上的SSL能够在一定程度上保证数据传输过程的安全,但是还是由很多风险,在下一篇文章中介绍“Man-in-the-middle”的一些基础知识。

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

1.1296s