所有的 HTTPS 网站都是安全的吗
HTTPS协议是是目前比HTTP更安全的传输协议
但并不是加了HTTPS的网站就安全,还需要检查以下问题:
1、HTTPS证书分为DV.OV.EV,其中EV是三者中最安全的
2、OV和EV需要公司才可以申请,点击绿锁链可以查看证书是OV或EV
3、打开网站看看地址栏是否有绿色小锁,如果没有是不安全的,需要把网页里http加载项换成https
4、SSL证书是全球老牌可信CA机构签发。
https一定是安全的吗
https不一定全是安全的,一些网站会使用自签名证书。
自签名证书是指不受信任的任意机构或个人,使用工具自己签发的SSL证书。不是从公共证书机构(CA)那里申请来的证书,没有第三方监督审核,不受浏览器和操作系统信任,常被用于伪造证书进行中间人攻击,劫持SSL加密流量。
使用自签名证书的危害:
危害一:自签SSL证书最容易被假冒和伪造,被欺诈网站利用
自签SSL证书是可以随意签发的,不受任何监管,您可以自己签发,别人也可以自己签发。如果您的网站使用自签SSL证书,那黑客也可以伪造一张一模一样的自签证书,用在钓鱼网站上,伪造出有一样证书的假冒网银网站!
危害二:部署自签SSL证书的网站,浏览器会持续弹出警告
自签SSL证书是不受浏览器信任的,用户访问部署了自签SSL证书的网站时,浏览器会持续弹出安全警告,极大影响用户体验。
危害三:自签SSL证书最容易受到SSL中间人攻击
用户访问部署了自签SSL证书的网站,遇到浏览器警告提示时,网站通常会告知用户点击“继续浏览”,用户逐渐养成了忽略浏览器警告提示的习惯,这就给了中间人攻击可乘之机,使网站更容易受到中间人攻击。
典型的SSL中间人攻击就是中间人与用户或服务器在同一个局域网,中间人可以截获用户的数据包,包括SSL数据包,并做一个假的服务器SSL证书与用户通信,从而截获用户输入的机密信息。当网站被假的SSL证书替换时,浏览器会警告用户此证书不受信任,需要用户确认是否信任此证书,用户习惯性点击“继续浏览”,中间人攻击轻而易举的实现了。
所以说,选择SSL证书还是要选择国际知名的SSL证书,一些证书机构并没有受到国际的认证,颁发的证书并不能得到所有浏览器的信任。
iOS相关知识(七)--https 中间人攻击(是怎样攻击的)为何https还能被抓包
HTTPS 中间人攻击。也就是通讯双方中插入一个中间人,通讯双方的对方已经变成中间人了,而不是原本的对方。
HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。
HTTPS的整体过程分为证书验证和数据传输阶段
① 证书验证阶段
② 数据传输阶段
为什么数据传输是用对称加密?
首先,非对称加密的加解密效率是非常低的,而 http 的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的;另外,在 HTTPS 的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以 HTTPS 中内容传输加密采取的是对称加密,而不是非对称加密。
为什么需要 CA 认证机构颁发证书?
HTTP 协议被认为不安全是因为传输过程容易被监听者勾线监听、伪造服务器,而 HTTPS 协议主要解决的便是网络传输的安全性问题。首先我们假设不存在认证机构,任何人都可以制作证书,这带来的安全风险便是经典的“中间人攻击”问题。“中间人攻击”的具体过程如下:
过程原理:
1、客户端请求被劫持(如DNS劫持等),所有请求均发送到中间人的服务器
2、中间人服务器返回中间人自己的证书
3、客户端创建随机数,通过中间人证书的公钥对随机数加密后传送给中间人,然后凭随机数构造对称加密对传输内容进行加密传输
4、中间人因为拥有客户端的随机数,可以通过对称加密算法进行内容解密
5、中间人以客户端的请求内容再向正规网站发起请求
6、因为中间人与服务器的通信过程是合法的,正规网站通过建立的安全通道返回加密后的数据
7、中间人凭借与正规网站建立的对称加密算法对内容进行解密
8、中间人通过与客户端建立的对称加密算法对正规内容返回的数据进行加密传输
9、客户端通过与中间人建立的对称加密算法对返回结果数据进行解密
由于缺少对证书的验证,所以客户端虽然发起的是 HTTPS 请求,但客户端完全不知道自己的网络已被拦截,传输内容被中间人全部窃取。
Q: HTTPS 为什么安全?
A: 因为 HTTPS 保证了传输安全,防止传输过程被监听、防止数据被窃取,可以确认网站的真实性。
Q: HTTPS 的传输过程是怎样的?
A: 客户端发起 HTTPS 请求,服务端返回证书,客户端对证书进行验证,验证通过后本地生成用于改造对称加密算法的随机数,通过证书中的公钥对随机数进行加密传输到服务端,服务端接收后通过私钥解密得到随机数,之后的数据交互通过对称加密算法进行加解密。
Q: 为什么需要证书?
A: 防止”中间人“攻击,同时可以为网站提供身份证明。
Q: 使用 HTTPS 会被抓包吗?
A: 会被抓包,HTTPS 只防止用户在不知情的情况下通信被监听,如果用户主动授信,是可以构建“中间人”网络,代理软件可以对传输内容进行解密。
参考文章地址
使用HTTPS 的网站也能被黑客监听到数据吗
HTTPS 是安全的。HTTP 在 DNS 被劫持后,可以被随意窃听、修改。
问题在于,你在访问私密页面时(比如网银),你的浏览器使用是 HTTP 还是 HTTPS。
现在很多网站,包括国内银行,并不是所有网页都在使用 HTTPS。
这就意味着,攻击者可以篡改那些使用 HTTP 的网页(或 CSS、JS 等其他资源)。
以工行为例。网银页面当然是在 HTTPS 的保护之下的:
但是工行的首页,是不提供 HTTPS 连接的:
这就意味这,工行的首页实际上是可以被任意篡改的。(在网络环境不安全的情况下)
这有什么问题呢?
如果一个用户,想登陆网银,但他是先进的工行首页,然后再点击首页上的“登陆”链接:
那就危险。这个“登陆”链接可能会被篡改,由 https://… 改为 http://…。
此时,浏览器便会以不安全的 HTTP 与服务器建立连接!
攻击者便可以使用类似 SSLStrip 的工具,将浏览器的 HTTP “转成” HTTPS,再发给银行服务器。
用户 == HTTP == 攻击者 == HTTPS == 银行
如果用户在这个 HTTP 的网银页面输入了自己的密码,就等于发给了攻击者。
用户能察觉吗?能!
在登录前瞄一眼浏览器地址栏,没有带锁的安全标识、非 https:// 开头(见第一幅图),即能知晓自己被攻击了。
但是,有多少用户会注意到这些?(浏览器不会有任何警告,银行也不会察觉)
网银的例子可能还不太好,应该不少人是像我一样,直接点收藏夹的链接登陆。这个链接不会被篡改。但是,在 这样登陆、下单时反复在 HTTP 和 HTTPS 间反复跳转的呢?你是否留意该转 HTTPS 的地方转 HTTPS 了吗。
(一段跑题)有的网站更“吝啬”,连登陆页面都不用 HTTPS,自作聪明地使用 Javascript 加密用户密码。但由于这些 JS 本身可以被篡改,而且篡改后一般用户根本无法察觉,所以这么做更像是在自我安慰。实际上据说已经发生过这类攻击(你们以为运营商只是HTTP插点广告而已么,图森破啊,呵呵 -- WooYun)。
如何防范:
作为用户,平常留意一下哪些页面是使用 HTTPS 的,输入密码前确认一下地址栏:域名是否正确?是否是 https:// 开头,带有小锁的图标?
将常用的网银登陆页面加入浏览器收藏夹。
作为网站,现在越来越多的网站在全站部署 HTTPS,比如支付宝、推特、GitHub 等等。虽然会增加成本,但这是对用户负责。我认为这值得推广。
(以上这些问题,应该说是普遍存在的。拿这几个网站举例,只是因为这几个网站是我最常使用的、最熟悉的罢了,没有其他什么意思。)
0条大神的评论