当前位置: 首页 > 科技观察

试用期还没过,因为在公司用过1024网站,,

时间:2023-03-18 23:15:02 科技观察

最近浏览了一个知乎问题:试用期间,一个运营同学上班期间去了某1024网站,导致试用期期限届满。图片来自Pexels,前两天看到很多推文。大意是:看小电影之前,一定要注意网址是不是HTTPS,因为HTTPS是加密过的,别人是不会知道的。看到上面的问题,不禁要问(这脑回路也是。。。):通过浏览器访问HTTPS站点,别人真的不知道吗?公司如何知道通过Apps访问匿名论坛(HTTPS)?(他有连上公司的WiFi吗?)总之,你上班时间上网钓鱼吗?即使你用HTTPS访问,如果公司知道,通过什么方式访问?这篇文章说说我的看法,主要分为以下几个方面:为什么HTTPS是安全的?HTTPS真的安全吗?App如何保证信息安全,不被抓取?公司可能的监控方式有哪些?如何确保我们的隐私不被泄露?,TLS的前身是SSL,会有各种版本。TCP/IP协议栈中TLS协议的关系上图描述了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:domainnamestreaking当访问一个HTTPS站点时,会先与服务器建立SSL连接,第一步就是请求服务器的证书。当一个ServerIP只对应一个域名(站点)时,就很方便了。任何客户端请求它,想都没想就返回域名(服务)对应的证书。但是IP地址(IPv4)是有限的。多个域名重复使用同一个IP地址怎么办?服务器在发送证书的时候并不知道浏览器访问的是哪个域名,所以不能根据不同的域名发送不同的证书。.因此升级了TLS协议,增加了SNI。SNI即ServerNameIndication,是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。现在所有的主流客户端都支持这个协议。不要问我是怎么知道这一点的,我之前的工作中也因为这件事费了很大功夫……它的原理是:在与服务器建立SSL连接之前,先发送域名(Hostname)要访问的站点的名称,以便服务器根据域名返回适当的证书。这个时候是没有办法加解密的,所以至少这个域名是裸奔的。如下图所示,上面的截图其实是我个人博客(www.tanglei.name)的抓包。客户端在发送握手请求时,有意识地带上自己的域名。HTTPSSNI因此,即使是HTTPS,访问的域名信息也是裸奔的。当你在工作期间访问小电影网站时,你会留下痕迹。如果你访问公司网络,你自然会被抓到。除了域名裸奔,其实还有一个更严重的风险,那就是中间人攻击。前面提到的中间人攻击,其实HTTPS的关键就在于这个证书。顾名思义,中间人攻击就是在客户端和服务器之间加一个“中介”,“中介”冒充客户端和服务器之间的对方。如下图,这个“MitmProxy”充当中间人,互相欺骗:man-in-the-middleattack,evil0x的来源可以安装MitmProxy或者Fiddler等抓包软件试试,然后打开代理人。这时我用手机访问百度,得到的信息如下:信任证书前提示,连接不是私密连接。事实上,浏览器认为证书不对,没有信任。而如果此时手机上安装了Fiddler证书,则可以正常访问。证书被信任后,就可以正常访问了。因此,当你信任证书时,你可以再次看到中间人面前的一切。而如果你用的是公司电脑,估计有相应的操作信任证书,或者手机上有没有安装类似的客户端软件?花时间查看手机的证书安装详情(比如我手机上的):我之前的公司在信息安全方面非常谨慎。手机将有一个工作手机,任何未经授权的App都无法安装。谁知道App会悄悄做什么。(最新热点,QQ扫描浏览器历史,你懂的)当然,各种APP肯定不是吃素的,不会让“中间人攻击”轻易得逞,让我们继续拭目以待。如何防止信息安全,前面提到的防爬,实施中间人攻击,关键在于证书是否可信。浏览器的行为是证书可以让用户授权是否信任,APP可以由开发者自己控制。例如,我尝试用类似的方式抓包解密匿名社区的HTTPS,但最终失败了。为什么?这是关于“SSLPinning”技术的。App可以验证SSL握手时服务器返回的证书是否合法。“SSLpinning”技术意味着只有固定的证书或公钥在应用程序中是可信的。因为在握手阶段必须把服务器的证书返回给客户端,如果客户端在打包,把服务器的证书放在本地,在握手验证证书链接中比对,服务器返回的证书和本地内置的证书一模一样,发起网络请求。否则直接掉线不可用。当然,一般情况下,这种技术也可以防止HTTPS信息被解密。但是还有其他的技术可以破解这个方法,比如Android下的一些Hook技术,具体来说就是绕过本地证书强校验的逻辑。有兴趣的同学可以带着学习的目的研究一下。不过据说这个方法需要对系统进行root、越狱等操作,需要一些更高权限的设置。因此,也告诫我们一定不要胡乱安装一些软件。一不小心,就有可能被中招,让自己在网络上裸奔。一方面是个人隐私信息等被泄露,另一方面,一些非常重要的信息比如账号密码也有可能被盗取。可能的监测方法有哪些?办公电脑当然要连上公司网络。通过上面介绍的内容,你应该也知道自己在什么时间浏览了哪些网站。公司实际上什么都知道。如果你的手机连上了公司网络,就完全一样了(连Agent软件都不用安装)。这提醒我们尽量使用自己的移动网络进行私密上网。浏览记录,上面提到的来源知乎,比如一些涉及隐私的敏感信息,比如一些PC软件和手机APP,如果内部加密传输,内容加密(包括但不限于HTTPS)的话问题不大它没有破裂。不过,这当然取决于这些软件设计者的水平。比如,同一个匿名用户显示的ID不能相同,如果相同,就暴露了一个逻辑漏洞。当然,我们不应该冒险。在监管要求下,如果确实有一些违法、不当的言论,总会有办法找到你的。更何况一般的办公电脑都会预装一些公司的安全软件。至于这些软件是干什么的,有没有偷偷截图,这个因人(公司)而异。(不讨论类似行为是否涉及侵犯员工隐私等问题)图源知乎不过,我个人认为,我们不必过于担心。一般的公司不会因为你上班偶尔抓个鱼,刷个淘宝,刷个微博就来找你麻烦。毕竟,没必要为了这种小事“大打出手”。不过最好还是看看员工手册,看看有没有明文禁止的行为?是不是我的行为太过分了,免得被抓到,俗话说“常在河边走,不湿鞋”,“欲加罪,无所顾忌”。后记本人是个见多识广的人才,文中难免有疏漏之处,如有相应的问题,希望大家多多指教,最后祝大家一路顺风不要因为文中提到的类似事情而掉坑。作者:石头哥,阿里P7,清华学渣,前大疆后端负责人。编辑:陶佳龙来源:转载自公众号程序猿石石(ID:tangleithu)