专栏名称: 51CTO技术栈
有趣 | 有料 | 有内涵,为您提供最优质的内容,愿我们一起悦享技术,成就人生。
目录
相关文章推荐
51好读  ›  专栏  ›  51CTO技术栈

试用期没过,因在公司上了1024网站...

51CTO技术栈  · 公众号  · 程序员  · 2021-01-21 18:05

正文

送福利啦

关注 鸿蒙技术社区 ,回复 【鸿蒙】 价值 399元 鸿蒙智能小车 开发套件 (数量有限,先到先得) ,还可以 免费下载 鸿蒙 入门资料


👇 扫码 立刻关注 👇

专注开源技术,共建鸿蒙生态


最近浏览到一个知乎问题:某运营同学在试用期期间因为在工作期间上了某 1024 网站,导致试用期不过。


图片来自 Pexels

前两天还看到不少推文,大意是: 看小电影前一定要注意网址是不是 HTTPS 的,因为 HTTPS 是加密的,别人就不知道了


看到上面几个问题,我不禁想问(这脑回路也是……):

  • 通过浏览器访问 HTTPS 站点,其他人真的没法知道吗?

  • 通过 App 访问匿名论坛(HTTPS),公司怎么知道的?(他是不是接入了公司 WiFi?)


总之就是,上班时间上网摸鱼吗?哪怕用 HTTPS 访问,如果公司知道,是通过什么手段?

本文谈谈我的看法,主要分为以下几个方面:

  • HTTPS 为什么安全?

  • HTTPS 真的安全吗?

  • App 如何保证信息安全,不被爬走?

  • 公司可能的监控手段有哪些?我们如何做才能确保自己的隐私泄露?


HTTPS 为什么安全


HTTPS,也称作 HTTP over TLS,TLS 前身是 SSL,会有各个版本。


TLS 协议在 TCP/IP 协议栈中的关系


上图描述了在 TCP/IP 协议栈中 TLS(各子协议)和 HTTP 的关系,HTTP+TLS 也就是 HTTPS。


和 HTTP 相比,HTTPS 的优势:
  • 数据完整性: 内容传输经过完整性校验。

  • 数据隐私性: 内容经过对称加密,每个连接生成一个唯一的加密密钥。

  • 身份认证: 第三方无法伪造服务端(客户端)身份。

HTTPS 原理

上图就是大致介绍了 HTTPS 的握手流程,感兴趣的同学可以用 WireShark 抓包详细看看其中的每一个步骤,有助于理解 HTTPS 的完整流程。这里,我就不详述了。


大致就是客户端和服务端通过“握手会谈”商量出一个双方支持的加密算法和相应随机参数,得到一对密钥,后续的传输的内容都通过这对密钥进行加解密。


这对密钥很牛皮,比如要加密传输消息『tangleithu』,客户端通过公钥加密得到的密文『xyyaabbccdd』进行传输,服务端用自己的私钥对密文解密,恰好能得到『tangleithu』。


中间错一位都不行,这样就保证了数据完整和隐私性。这个过程比较复杂,本文不详述。


因此,你在通过 HTTPS 访问网站的时候,就算流量被截取监听,获取到的信息也是加密的,啥实质性的内容也看不到。

例如,如下图所示,当我访问某个网站,此时通过 wireshark 抓包得到的信息,能获得仅仅是一些通信的 IP 地址而已。

HTTPS 加密传输


这下放心了吗?摸鱼的过程中,就算访问的 IP 地址被知道了,好像也无关紧要?其实,有了 IP 地址也能获取不少信息了。

还好这个 IP 搜出来是 Github,而不是……

你或许会高兴,连个网站域名都看不到,可以放心摸鱼了。不过,这是真的吗?

HTTPS 真的安全吗?


HTTPS 真的完全安全吗?连访问的域名都获取不到?答案是否定的。上述 HTTPS 在握手阶段有一个很重要的东西:证书。

SNI:域名裸奔


当访问 HTTPS 站点时,会首先与服务器建立 SSL 连接,第一步就是请求服务器的证书。


当一个 Server IP 只对应一个域名(站点)时,很方便,任意客户端请求过来,无脑返回该域名(服务)对应的证书即可。


但 IP 地址(IPv4)是有限的呀,多个域名复用同一个 IP 地址的时候怎么办?


服务器在发送证书时,不知道浏览器访问的是哪个域名,所以不能根据不同域名发送不同的证书。







请到「今天看啥」查看全文