网络安全基本概念以及结合https分析

前言:

本来打算计网就这样结束的,但是貌似安全方面以及https方面没了解,就翻书顺手把那章节大概看了,这里总结一下。

对称密钥密码体系

在发送方和接收方 公用一个密钥。加密和解密都是用此密钥。这个共享密钥不能为他人所知,只能由双方知道。其他人就算只要加密算法和加密后的报文也不能推断出密钥

公开密钥加密

发送方和接收方都拥有着两个密钥,一个公钥(提供给发送方来加密报文),一个密钥(用于解密报文)。发送信息用接收方的公钥来加密,而接收方解密则用自己的私钥来解密。
两个密钥之一是保密的,无解密密钥,解密不可行。
知道算法和其中一个密钥以及若干的密文不能确定另一个密钥。

RSA

其加密方式比较特殊,需要两个密钥:公开密钥简称公钥(publickey)和私有密钥简称私钥(privatekey)。公钥加密,私钥解密;私钥加密,公钥解密。这个加密算法就是伟大的RSA。
特点就是加密容易,破解难。缺点就是适用小数据加密。

会话密钥

在实际应用中,由于RSA加密和解密的过程耗时,所以通常配合会话密钥来使用,即发送端拿到接收端的公钥,生成一个用于加密数据本身的密钥,再用公钥将其加密,传送给接收端,接收端收到之后用私钥解密,就得到了该加密数据的密钥(会话密钥—对称密钥)。然后后面传输大量数据就可以用此会话密钥加密了

报文完整性

前面的加密是为了给通信机密性,而通信过程中报文的完整性也要注意。
而报文的完整性需要解决两个问题:

  • 报文的源主机是谁?
  • 报文在传输过程中没有被篡改

报文在传输过程中没有被篡改

  • 密码散列函数:
    -不相等的两个报文散列之后得到的字符串不相等,最常见的散列算法有md5,sha-1。
    在传送报文过程中发送者将报文散列过后的字符串 附加到报文后面。当到达接收端时,接收段用相同散列算法对报文散列,得到的字符串与携带的字符串相比,如果相等则证明未被修改。 存在问题:攻击者修改完报文后,用相同散列算法得到字符串,并修改携带的字符串。这样接收段也会误认为没错,此时就需要引入
  • 报文鉴别码。
    报文鉴别码:为了执行报文的完整性,除了使用密码散列函数外,还需要发送方和接收方共享一段比特串(报文鉴别密钥),
    (1)在计算散列的时候计算报文+报文鉴别码,得到的报文鉴别码(MAC)。
    (2)随后发送方将MAC附加到报文上,生成扩展报文。发送给接收方
    (3)接收方收到扩展报文后,已知报文鉴别密钥,将报文和报文鉴别密钥散列化后与MAC比较,相等则证明未被修改。
    问题又来了,,那么如何让双方共享这个报文鉴别密钥呢???
    这个跟上面说的会话密钥不久连在一起了吗=。=
    解决报文的源主机是谁
  • 数字签名
    数字签名的用处是在MAC的基础上再加一增加新的加密来保证源主机的不变。
    运作过程
    (1)发送方用自身的私钥计算签名。发送给接收方
    (2)接收方用发送方的公钥进行解密,假若可以解密则代表着该报文涞源与发送方,因为根据公开密钥体系 公钥加密后的数据用密钥可以解析,密钥加密后的数据公钥可以解析。
    但是加密一整个报文的话,耗费时间太长,所以最终应用都是对散列后的报文进行生成数字签名。
    问题又来了,,我擦叻我是老黑客了啊,我用自己私钥来进行数字签名,然后发送给接收方我自身的公钥,然后冒充我是警察,这时候接收端用我的公钥来解密我的数字签名,这当然可以解析出来啊,这样他就认为了我是警察???
    上述存在这认证问题。
    这时候呢认证中心CA就出来了

认证中心 CA

将公钥与特定的实体绑定起来。
1)CA证明一个实体的真实身份。
2)一旦CA验证了某个实体的身份,这个CA会生成一个将其身份和实体的公钥绑定起来的证书。这个证书包含了这个公钥和公钥所有者全局唯一的身份标识的信息。
那么是如何避免上述问题的发生呢?
1)发送方在发送报文的时候,也发送了其CA签署的证书
2)接收方用 CA的公钥来核对证书的合法性,然后提取发送方的公钥
3)然后就是用提取出来的公钥解密咯。。。
完美解决了把这样就。

端点鉴别

端点鉴别是一个实体经计算机网络向另一个实体证明其自己的过程.
采用的是不重数的解决方案
1)发送端给接收端发送hello信息
2)接收段选择一个不重数,发给接收段
3)发送端用自身的私钥加密该不重数,然后发送给接收段,接收段用发送端的公钥,得到的不重数相等,则确认收到hello的报文是由发送端发送的。

TCP连接安全:SSL

唏嘘 说了这么多,终于到了实际的应用了https

超文本传输安全协议(HTTPS,常称为 HTTP over TLS/SSL)是一种通过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

TLS/SSL

  • TCP (Transmission Control Protoco) 传输层控制协议
  • TLS (Transport Layer Security) 传输层安全协定
  • SSL (Secure Socket Layer) 安全套接层
    更详细的理解请移步:http://liuduo.me/2018/05/14/https-detail/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章