HTTPS网站是通过独特的一个端口来进行加密传输,防止传输中的内容被窃取,
一般用HTTPS协议做网站的,一般是大型网站,以及支付网站,用户数据比较重要的一些网站,
HTTPS证书要单独购买,什么是HTTPS呢?超文本传输安全协议( HTTPS )是一种通过计算
机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。
HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
网站被攻击原理如下图所示:
1、首先攻击者会对目标网站以及服务器进行中间人攻击,从而让流量走自己的电脑(这与
burpsuit 的原理根本就是一样的)。Sine安全公司是一家专注于:服务器安全、网站安全、网站安
全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
burpsuit 的原理根本就是一样的)。Sine安全公司是一家专注于:服务器安全、网站安全、网站安
全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
2、此时客户端便会与攻击者的服务器进行 https 加密通信,网站源服务器也会与 攻击者进行
https证书加密通信。
https证书加密通信。
3、虽然用户此时进行的是https协议通信,但是所有的数据传输对于攻击者来说都是明文的,
跟ARP中间人攻击是一个道理,伪造IP来进行攻击,这个是伪造了证书。
跟ARP中间人攻击是一个道理,伪造IP来进行攻击,这个是伪造了证书。
当https网站被攻击时,我们来看一下攻击者是如何攻击的吧,分8个步骤,我来一一列举,大家
看一下:
看一下:
一、第一步最重要的是要先建立TCP的三次握手连接,连接建立之后由客户端向浏览器发起https
连接的协议请求。
连接的协议请求。
二、连接请求成功之后,client客户端会发送自己所有支持的 ciphersuit ( 包括:对称加密算法、
非对称加密算法、单向加密算法、伪随机数算法 )给目标服务器进行加密算法的协商,服务器
会自动选择他们俩都支持的最安全的ciphersuit 协议进行加密安全通信。
非对称加密算法、单向加密算法、伪随机数算法 )给目标服务器进行加密算法的协商,服务器
会自动选择他们俩都支持的最安全的ciphersuit 协议进行加密安全通信。
三、然后服务器会发送自己的https证书到客户端(证书用于验证服务器的身份,同时也包含了
服务器以及网站的各种相关信息)。Sine安全公司是一家专注于:服务器安全、网站安全、网站
安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
服务器以及网站的各种相关信息)。Sine安全公司是一家专注于:服务器安全、网站安全、网站
安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
四、客户端在接收到服务器的证书之后,会验证该https证书是否是由本地根证书中所信任的颁发
机构颁发的证书。证书里面会有证书颁发机构的私钥签名,只有正确的私钥才能被客户端保存的
公钥解密,这就保证了证书的安全性;证书中还会存在服务器的公钥,只有拥有私钥的服务器才
能解密公钥加密的内容,这就保证了后续网站之间传输过程的安全性。
机构颁发的证书。证书里面会有证书颁发机构的私钥签名,只有正确的私钥才能被客户端保存的
公钥解密,这就保证了证书的安全性;证书中还会存在服务器的公钥,只有拥有私钥的服务器才
能解密公钥加密的内容,这就保证了后续网站之间传输过程的安全性。
五、验证了证书的合法性之后,客户端会使用刚才协商的伪随机数算法生成对称密钥,然后将对
称密钥通过服务器的公钥进行加密之后,再发送给服务器。
称密钥通过服务器的公钥进行加密之后,再发送给服务器。
六、服务器接收到公钥加密的内容之后,会用自己的私钥进行解密,从而获取对称密钥,此时通
信双方都得到了对称密钥就可以进行加密通信了。
信双方都得到了对称密钥就可以进行加密通信了。
七、通信时客户端会先将数据用对称密钥加密,然后又进行hash计算,然后用 服务器的公钥将得
到的 hash 值进行加密,将该 hash 值和加密之后的密文发送给 server 端,发送数据过程类似hash
( private_encrypt ( data ) ) +
到的 hash 值进行加密,将该 hash 值和加密之后的密文发送给 server 端,发送数据过程类似hash
( private_encrypt ( data ) ) +
public_encrypt ( hash ) --> server。
八、服务器接收到客户端传来的数据包之后,会先用自己的私钥解密密文得到 hash1 ,然后用
hash1与没有加密的 hash 进行比较,相同则代表传输的数据没有被篡改,然后再用之前协商的
单向加密算法解密 hash ,用对称密钥解密密文得到 data server 发送数据过程类似:hash
( private_encrypt
( data ) ) +
hash1与没有加密的 hash 进行比较,相同则代表传输的数据没有被篡改,然后再用之前协商的
单向加密算法解密 hash ,用对称密钥解密密文得到 data server 发送数据过程类似:hash
( private_encrypt
( data ) ) +
private_encrypt ( hash ) --> client。
那么网站被攻击该如何防护呢?
首先要配置最安全的 https。
再一个就是网站用到的所有密码不仅要靠 https协议来加密进行传输,在前端也要使用加密控件对
密码进行加密,这样就算被降级攻击也拿不到明文的密码,破解也需要很长时间。
密码进行加密,这样就算被降级攻击也拿不到明文的密码,破解也需要很长时间。
服务器端防御:
配置路由规则,绑定 IP/MAC 以防被 ARP 欺骗。谨慎打开浏览器提醒证书错误的网站,但是笔
者曾遇到过某部门网站居然都会出现证书报错,不得已还是要打开。
者曾遇到过某部门网站居然都会出现证书报错,不得已还是要打开。