http和https的区别
1、http是不安全的。https在配置正确时被认为是安全的。
2、http由"http://"开始,默认端口是80;https由"https://"开始,默认端口是443。
3、http协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器都无法验证对方的身份。https是运行在SSL/TLS之上的HTTP协议,SSL/TLS协议是运行在TCP之上的。所有传输的内容都经过加密,加密采用对称加密,但对称加密的秘钥用了服务器端的证书进行了非对称加密。
https优缺点
优点: 1、客户端产生的秘钥只有客户端和服务器能得到。
2、加密的数据只有客户端和服务器端才能得到明文。
3、客户端到服务端的通信是安全的。
缺点: 1、比http消耗更多的服务器资源(主要看SSL/TLS本身消耗多少资源)。
2、过程复杂,访问不如HTTP高效,流量成本高。
3、并不能防止被网络蜘蛛抓取。在某些情形中,被加密资源的URL可仅通过截获请求和响应的大小推得,这就可使攻击者同时知道明文和密文,从而是选择密文攻击成为可能。
4、SSL证书需要钱,功能越强大点证书费用越高。
5、SSL证书需要绑定IP,不能在同一证书上绑定多个域名。
对称加密和非对称加密:
对称加密:密钥只有一个,加密解密使用同一密码,加解密速度快。典型的加密算法有DES、AES等。
非对称加密:密钥成对出现,加密解密使用不同的公钥和密钥。速度较慢。
实际上,两个主机每次会约定一个加密-解密算法,对于每一次加密算法类型一般不会变化,不同点在于加密参数(公钥)和解密参数(私钥),他们根据服务器端产生的几个随机数计算得到。
服务器端将加密参数公布在互联网上,所有人都可以通过加密参数(公钥)将信息加密并发送到服务器端,而因为无法从加密参数(公钥)得到解密参数(私钥),因此除了服务器端外所有人都无法解密。
中间人攻击
在加密后,信息传输过程本身是安全的,但是实施的时候本身存在一个风险:如果有人截获了获取公钥请求,然后冒充服务器端将伪造的公钥发送给客户端,那么客户端很难辨别真伪。一旦客户端使用伪造的公钥加密信息并发送给服务端,中间人会继续截获密文并用对应的私钥解密获取重要的信息。更致命的是中间人可以选择将信息用真正的公钥加密并发送给服务端。
这意味着在客户端和服务端永远存在一个中间节点,而客户端和服务端没有任何办法意识到中间人的存在。
面对中间人攻击,我们要做到是确定公钥来源的可靠性——唯一、根本的方法是通过非网络环境确定公钥。SSL和SSH实现方式不同。
SSL/TLS和SSH加密协议
SSL/TLS: SSL标准化后称为TLS。
面对冒充风险(中间人攻击),SSL/TLS的方法是引入CA证书。
CA:证书签证机关。它是负责管理和签发证书的足够权威的第三方机构。每个CA通过根证书来签发子证书。CA的根证书被预置在操作系统中,也只有根证书被操作系统认证的公司被认为是CA。
理论上,人人都可以找个证书工具自己做一个证书,但是这个证书是没有效力的。只有当某个证书链的头部为CA根证书时才有效。
证书的加密参数为私钥,证书的解密参数为公钥,且(根证书)公钥由操作系统预置,无需访问网络,只要操作系统为正版,那么公钥一定正确。
SSH: 专为远程登录会话和其他网络服务提供的安全性协议。利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件。
在默认状态下SSH主要提供两种服务,一种是远程联机服务器的服务,另一种是类似ftp的服务sftp-server。
SSH验证方式:
1、客户端直接发起请求
在客户端收到服端的公钥后,先计算公钥的MD5码,让用户通过可靠的方式(非网络方式或SSL)确认公钥。如果MD5码符合,则认为没有中间人,创建加密连接。
2、客户端自行发送公钥
http和https的区别以及加密协议
最新推荐文章于 2024-08-18 17:37:50 发布