记得小时候,敞篷卡车从果园拉着一车车的苹果,运到码头上,然后再装载到万吨货轮上运往上海。但运往码头的最后一公里,道路坑坑洼洼,卡车会放慢速度,这时就会有一些青少年爬上货车,从袋子里拿苹果吃,每次都会有一袋或几袋被开包,为此运输公司非常苦恼。

后来为了减少损失,运输公司使用了封闭的集装箱,装载好苹果再将车厢锁起来,到达目的地再打开,这样即使有人想从车厢里拿苹果,也无从下手。

以上敞篷卡车所对应的就是TCP,苹果对应的是HTTP,由于敞篷卡车无法保证在传输路途上,苹果是否被窃取、调包、所以最终有多少货物到达目的地,那完全要看坏小子的心情,如果坏小子只是插入一些广告,用户的浏览器最多弹出一些广告页面。

更甚一步,窃取用户cookie,登录用户账户做非法的勾当。还可以通过明文http植入木马,可以远程控制用户电脑,窃取用户敏感信息。

集装箱代表TCP + TLS(Transport Layer Security),从果园运输的十吨苹果能够原封不动地到达目的地,既不会多也不会少。

明文HTTP让坏人有机可乘
为了实现网络的高度安全,需要很多环节协同工作,只要有一个环节有漏洞,就有可能被利用,而为了提高网络的相对安全性,最高优先级就应该从HTTP下手,因为这个用户使用的最频繁。

目前几乎所有的个人电脑都处于路由器NAT保护之下,如果用户不主动访问Internet,别人无从对NAT后个人电脑下手。

一旦用户主动访问Internet,就相当于在NAT城门上啄了一个小洞,这个小洞就是一个NAT映射表,如果没有流量刷新,300秒之后小洞就会关闭。

在小洞存活的300秒以内,允许外部主机来访问个人电脑,而明文的HTTP就是最好的载体。一旦个人电脑被植入了木马,木马程序就会主动周期性发消息给Internet的控制终端,这样NAT小洞会一直敞开大门(周期性消息刷新定时器),给远程控制提供了便利。

HTTPS提供了端到端的安全加密
不仅提供数据机密性(加密),还提供数据完整性(不篡改数据)保护、防重放(把捕获的报文再发一次无效),这样坏小子就很难下手,没有session key 很难去偷窥并篡改用户的数据,更无法依赖HTTPS这个载体植入木马。

一定有同学会有疑问,为何明文传输的HTTP可以被劫持,篡改网页内容,而加密传输的HTTPS却不可以?

那是因为HTTP被劫持篡改页面,重新计算TCP checksum,用户电脑是无法判别是否被篡改,只好被动接收。

而加密传输之后,有了HMAC保护,任何篡改页面的尝试,由于没有session key,无法计算出和篡改网页一致的HMAC,所以数据接收端的SSL/TLS会轻易地识别出网页已被篡改,然后丢弃,既然无法劫持,也就没有篡改的冲动了,所以HTTPS可以很好地对付网页劫持。

HTTPS并不是100%绝对可靠
斯诺登暴露出,针对IPsec,TLS的密钥交换所依赖的Diffie-Hellman算法攻击,即通过离线的超级计算机预先计算出海量的公钥、私钥对,一旦尝试出私钥就会得到Master Key,进而推导出session key,这样历史数据、现在、将来的数据全可以解密。

以上是被动攻击方式,针对数字证书欺骗则属于主动攻击,可以实时地解密用户数据。但种种主、被动攻击难度都很高,往往是以国家意志为源动力,而不是一些小团体所能完成的。

有读者肯定会心生疑惑,既然HTTPS不是绝对可靠,那依靠HTTPS工作的网银安全吗?安全,放心使用!

银行在转账时,通常需要用户私钥签名确认,而私钥就嵌入在USB Token里,类似下图中的硬件设备。只要用户不要把这个借给别人使用,转账可以确保安全。

电脑网银用户一般都有一个USB Token,里面有用户数字证书私钥(Private Key),网银转账一定要有用户数字证书私钥签名的转账确认,而这个私钥只有用户的Token唯一拥有,而银行拥有用户数字证书公钥(Public Key),可以成功解密出用户私钥(Private Key)签名的转账确认,以此确信转账指令是由拥有USB Token的用户发出来的,这样会进一步提高网银的安全性。

手机银行一般都是APP,可以强制使用(Public Key Pinning )特定根证书作为证书信任链的顶端,可以避免客户端使用误安装的伪造证书,所以APP不会与假的服务器建立TLS连接,只会与真正的服务器建立安全隧道,一旦隧道成功建立,通信就是安全的,即使转账也是安全的。转账之前通过手机验证码确认,又多了一层安全保护。

hmac sha256安全吗_全面普及HTTPS有意义吗?相关推荐

  1. hmacsha256 c语言源码,纯C语言实现hmac sha256,可在单片机中使用_沃航科技

    这是小沃最近遇到的一个项目,由于百度云的所有接口都需要通过hmac sha256计算,所以小沃在网上找到了相关代码可以在单片机中实现,现在就分享给大家. SHA256.h#ifndef SHA256_ ...

  2. Http请求加密规则(3DES、Base64、HMAC SHA256)

    Http请求加密规则(3DES.Base64.HMAC SHA256) 如果使用了Https请求,那么大多数情况下就无需双方再制定一套加密规则,所以本人讲述的是使用Http请求时,对于一些安全性较高的 ...

  3. js怎么实现hmacsha256_各种语言HMAC SHA256实现

    语言包含: Javascript ,PHP,Java,Groovy,C#,Objective C,Go,Ruby,Python,Perl,Dart,Swift,Rust,Powershell. Jav ...

  4. spark在服务器运行示例_创建示例HTTPS服务器以获取乐趣和收益

    spark在服务器运行示例 通常,在开发或/和针对真实场景进行测试期间,我们(开发人员)面临着运行成熟的HTTPS服务器的需求,可能同时进行一些模拟. 在JVM平台上,除非您知道适合此工作的正确工具, ...

  5. hmac sha256 php,PHP中的HMAC-SHA-256

    我必须从这个字符串构建一个autorisation哈希: kki98hkl-u5d0-w96i-62dp-xpmr6xlvfnjz:20151110171858:b2c13532-3416-47d9- ...

  6. sha256可逆吗_当我们谈“X+区块链”的时候,到底搞懂区块链了吗?

    https://www.zhihu.com/video/1219202997248602112 你好,这里是BIMBOX. 今天的内容是一期付费内容免费看,内容来自于我们的专栏<精读10本好书中 ...

  7. linux桌面版和服务器版区别_简单普及一些linux和windows的区别,减少新入手一些云服务时的不适应...

    近一年,发的linux或者服务器之类的教程资源相对比较多,被问到一些令人头大的一些问题,也不知道怎么回答,可能需要稍微普及一点linux和windows的区别,虽然自己也是新人半桶水. 1.windo ...

  8. python HMAC SHA256 加密(python3 HmacSHA256加密)

    首先保证亲测可用,代码如下:from hashlib import sha256 import hmacdef get_sign(key, data):#sha256加密有2种# hsobj = sh ...

  9. 易语言 用精易的网页_访问 请求https的时候返回不了数据

    如题,起初不知道什么原因, 改用了 网页_访问s 或者 网页_访问_对象 ,结果都是一样没有数据. 今天用wireshark抓包看了一下,提示Alert Level: Fatal, Descripti ...

最新文章

  1. android内存不足,Android OutOfMemoryError:内存不足问题的排查与解决
  2. windo.open 全攻略
  3. 毕业后两三月的本科毕业生,他们都怎么样了
  4. Amcharts插件实现3D饼图
  5. pcu tps_Mac版Microsoft Office 2011重新定义您的TPS报告体验
  6. Linux 定时器设置
  7. 稳定币兑换器Orbits发布路线图,包括发行治理代币ORB等
  8. ES2021 更新的内容!
  9. Unity3D实习生面试题总结-图形学相关
  10. Int.Parse()、Convert.toInt32()和(int)区别
  11. Codeforces Round #776 (Div. 3)
  12. 日志易智能日志分析助力农信银双十一运维降本增效
  13. 航空公司客户价值分析
  14. ENVI遥感图像监督分类与出图制作
  15. 芯片和计算机专业的关系,cpu是芯片吗?芯片和cpu是什么关系?
  16. 你想靠AI实现永生吗?
  17. autoCAD恐吓式销售_恐吓式软文的例子?恐吓式软文营销经典案例分享
  18. python 抽奖 完全公平的随机数算法_抽奖 随机数
  19. python中ndarray对象_学习python的第二十二天(numpy模块(对矩阵的处理,ndarray对象)
  20. Cesium实践(4)——空间数据加载

热门文章

  1. Linux安装Swift开发环境
  2. C++ 虚函数表解析 继承
  3. myeclipse下Tomcat java.lang.OutOfMemory Error: Java heap space
  4. MOSS Farm Architecture
  5. java 正则 标签内容_java正则匹配html片段,并取得标签中的内容
  6. java接收前台tex格式t数据_java 下载文件时,设置response.setContentType 根据文件类型...
  7. 12月29日云栖精选夜读 | SQL Server数据库漏洞评估了解一下
  8. Lubuntu 18.10仍有可能支持32位PC
  9. OSChina 周日乱弹 ——局长才是真神
  10. matplotlib之scatter