zoukankan      html  css  js  c++  java
  • 网页中的无间道1

       在网络中,经常会传递一些数据,如果不加处理明文传递,一但网络被监控,数据将赤裸裸的展现在窃听者面前。主要有以下三大风险

    1. 窃听风险(eavesdropping):第三方可以获知通信内容。
    2. 篡改风险(tampering):第三方可以修改通信内容。
    3. 冒充风险(pretending):第三方可以冒充他人身份参与通信。

      总结需要做三件事

    加密:是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性

    身份认证:是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。

    封装大法:对应用层有需要透明处理数据,也能把工作留在下层,不给上层制造麻烦。

      所以网景公司站出来开发了ssl(Secure Socket Layer)安全协议,就是在传输层加密。在达到ftp,http等应用层已经解密。网景的技术只用于web,但后来被人认可,IEtF有将其发扬光大出现TLS(Transport Layer Security)

      达到效果

    1. 所有信息都是加密传播,第三方无法窃听。
    2. 具有校验机制,一旦被篡改,通信双方会立刻发现。
    3. 配备身份证书,防止身份被冒充。

    具体操作:  SSL协议可分为两层:SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

    我理解的分为了三步,1.认证2.指定加密规则3加密解密。

    首选1认证:要像完成认证将使用一伟大的加密技术,非对称加密rsa。

    RSA:RSA是一种非对称加密的算法,所谓非对称加密算法,就是用于加密解密的密钥有两个,即公钥和私钥,用公钥加密过的数据,只有私钥才能解密,用私钥加密过的数据,只有公钥才能解密。(对称加密算法就是说用于加密解密的只有一个密钥,密钥既能加密数据,又能解密数据) 
    公钥是可以公开的,别人知道也无所谓,私钥则要存储在安全的地方,不能泄漏。

    我理解的rsa的两个作用:

    1.加密文件:流程可以理解为  谁都可以用公钥加密文件发给我,但它用我的公钥加密后,只有我用私钥能解开。有个比喻不知道有没有漏洞,公钥可以比作锁,私钥是钥匙,钥匙只有我有,有无数把相同的锁头,锁上就只有我能打开了。

     2.认证:用私钥加密一个东西,只要我发出的公钥能解开,他们就知道这个是我了。

    感想:其实公钥私钥都有上锁功能,虽然不知道数学上的推导,但我理解公钥私钥只是两个名字的定义,如果公钥保留一份,私钥随处发是不是身份就调换了。

    基于私钥创建证书的认证过程: 即有人将其他的服务器的公钥给了客户端,使客户端误以为自己在跟正确的服务器进行交互。(攻击者可以在代理服务器层拦截客户端的请求,再重定向到自己的服务器) 

    • 这时候我们需要一个权威的第三方机构(CA)确认这一个公钥确实是真实的服务器的公钥,服务器将自己的公钥和一些私人信息发给CA,CA用自己的私钥将这些数据加密之后就是数字证书(SSL证书)。
    • 当服务器向客户端发送数据的时候,还附带上从CA下载到本地的证书,客户端拿到证书以后使用CA的公钥进行解密,确认服务器的公钥无误。

    基于公开密钥的加密过程

      比如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:

    1. Bob将他的公开密钥传送给Alice。
    2. Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
    3. Bob用他的私人密钥解密Alice的消息。

    如何确保你拿到的服务器公钥确实是正确的服务器的公钥呢? 即有人将其他的服务器的公钥给了客户端,使客户端误以为自己在跟正确的服务器进行交互。(攻击者可以在代理服务器层拦截客户端的请求,再重定向到自己的服务器) 

    • 这时候我们需要一个权威的第三方机构(CA)确认这一个公钥确实是真实的服务器的公钥,服务器将自己的公钥和一些私人信息发给CA,CA用自己的私钥将这些数据加密之后就是数字证书(SSL证书)。
    • 当服务器向客户端发送数据的时候,还附带上从CA下载到本地的证书,客户端拿到证书以后使用CA的公钥进行解密,确认服务器的公钥无误。

    回到ssl实际上ssl只用了,rsa的认证,和证书认证,并没有使用rsa的加密,而且使用的一种约定的对称性,下章在说。

  • 相关阅读:
    771. Jewels and Stones
    706. Design HashMap
    811. Subdomain Visit Count
    733. Flood Fill
    117. Populating Next Right Pointers in Each Node II
    250. Count Univalue Subtrees
    94. Binary Tree Inorder Traversal
    116. Populating Next Right Pointers in Each Node
    285. Inorder Successor in BST
    292. Nim Game Java Solutin
  • 原文地址:https://www.cnblogs.com/LiSuSpAu/p/7636254.html
Copyright © 2011-2022 走看看