公司能不能监控到微信聊天?
The following article is from 车小胖谈网络 Author 车小胖谈网络
520送书留言送书活动
520,IT服务圈儿联合华章图书为粉丝送一波高质量Java经典图书
活动规则:我们将从精选留言中随机抽取 7名 小伙伴赠书,中奖者可在文末书单中任选一本图书,我们包邮赠送。书籍有限,中奖后先选先得。
留言要求:
内容与本文核心信息相关 & 想要的书籍名称
每人仅限精选一条留言(用心留言更容易上墙)
为了大家都有机会中奖,每个小伙伴每个星期只能中一次奖哦~
最近有朋友私信问我一个问题,在公司用微信聊天,用公司网络,公司能看到聊天内容吗? 坦率地说,以前从来没有分析过微信这类聊天软件,大概率使用私有协议。而私有协议在协议分析软件上的呈现,一般都是TCP封装一长串字节流,而这些字节流究竟是什么内容,协议软件无法给出答案!看看协议分析软件能否看到微信网页版、手机APP版的聊天内容? 一、网页版微信 1.协议分析结果不知道大家看到“美女好[玫瑰]”哇,这个就是协议分析软件分析出来的聊天内容。
2.真实聊天内容
一摸一样!
3.实验结论协议分析软件可以将聊天内容解密出来! 4.实验分析网页版微信通常是使用浏览器来与微信服务器通信的,而浏览器多种多样,有Chrome、Firefox、IE等等,要想与不同的厂商浏览器通信,必须使用标准协议,而标准协议在协议分析软件上是可以解开的。
考虑到网页版的微信,可能会使用SSL/TLS加密聊天内容,需要用Fiddle作为中间人,用Fiddle伪造的证书来欺骗浏览器,让浏览器误以为Fiddle就是微信服务器。Fiddle再与微信服务器建立SSL/TLS加密通道,传输聊天内容。
浏览器与Fiddle建立SSL/TLS加密通道 Fiddle与微信服务器建立SSL/TLS加密通道 Fiddle做为二传手,将消息在两条通道上进行传递,先解密,再加密 Fiddle需要伪造微信服务器证书 电脑需要安装、信任Fiddle自签名的根证书
二、手机版微信
协议分析结果
微信手机版没有使用TLS + HTTP= HTTPS的加密传输方式,而是使用了HTTP的传输方式,如上图所示。 每一个报文大概是这个样子的:
除了HTTP 报文头(HTTP Header)是明文的,HTTP报文体(HTTP Body)看起来是一堆杂乱无章的字节流。 没有找到聊天的任何内容。最最滑稽的是,当发送聊天内容时,Fiddle没有任何反应! 意味着发送聊天内容的报文既不是HTTP,也不是HTTPS,那很可能是TCP、或UDP协议原始(Raw)封装。 为了确认到底是TCP还是UDP传输报文,特意去了微信研发公众号去确认,得到的确认是采用TCP传输。分为两种连接方式:
长连接:TCP + 私有协议 + MMTLS + 业务层 短连接:TCP + HTTP + MMTLS + 业务层
MMTLS是TLS1.3版本的改良版,或者说简化版。在微信决定使用MMTLS之前,TLS1.3版本长期逗留在草案状态,没有形成一个最终标准。于是微信决定采用TLS1.3草案中的标准,大刀阔斧砍掉客户端认证这个环节,只保留服务器认证。 手机微信APP里预置了微信服务器的两件秘密武器:
ECDSA公钥 静态ECDH公钥
微信网页版:使用公司网络,公司可以看到聊天内容,无论使用的是公司电脑还是个人电脑。但是如果使用4G网络,流量没走公司,公司自然也无法看到聊天内容。
微信手机版:使用私有协议通信,手机APP嵌入了服务器的公钥,APP只认与这个公钥一一对应的私钥签名。使用其它私钥签名的一概不认,所以无法欺骗微信APP。使用微信手机版聊天是安全的,无论是使用公司网络还是4G网络,公司都无法看到聊天内容。
end
👇👇👇520书单留言的朋友均有机会获得书籍呦~
▊ 《深入理解计算机系统》
理解计算机系统首首选书目, 10余万程序员的共同选择。卡内基-梅隆、北京大学、清华大学、上海交通大学等国内外众多知名高校选用指定教材。从程序员视角全面剖析的实现细节,使读者深刻理解程序的行为,将所有计算机系统的相关知识融会贯通。每位不只想一直做码农的IT从业者都该仔细阅读!
▊《Java核心技术 卷I 基础知识(原书第11版)》
《Java核心技术》,获Jolt大奖图书,第11版针对Java SE 9、10、11全面更新,补充了Java新版本的新特性,用更清晰明了的示例加以解释。卷I:主要介绍Java语言的基础知识的专业级详解;完整讲解Java开发者学习路线。适合全体初-中级Java编程人员阅读。
你是否正在寻找一本能够更加深入地了解Java编程语言的书,以便编写出更清晰、更正确、更健壮且更易于重用的代码?本书再适合不过了!这是一本分享经验并指引你少走弯路的经典著作,针对如何编写高效、设计优良的程序提出了最实用、最权威的指导方针,通过90条经验法则,探索新的设计模式和语言习惯用法,帮你更加有效地使用Java编程语言及其基本类库。适合已经掌握Java核心技术的程序员,想更加深入地了解Java编程语言的开发者阅读。
▊《Java编程思想(第4版)》
Java学习必读经典,殿堂级著作!《Java编程思想》赢得了全球程序员的广泛赞誉,即使是晦涩的概念,在BruceEckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。
▊《Java并发编程实战》
Java并发编程里程碑著作!10年畅销100000+册。从并发编程的基本理论入手,逐步介绍了在设计Java并发程序时各种重要的设计原则、设计模式以及思维模式,使得开发人员能够更快地领悟Java并发编程的要领,快速地构建大规模的并发应用程序。
▊《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》
大厂面试通关宝典全新升级!第三版大幅更新50%以上内容,周志明从Java技术体系、自动内存管理、虚拟机执行子系统、程序编译与代码优化、高效并发5个维度全面剖析虚拟机。以实战为导向,通过大量实际案例,分享解决各种Java技术难题的方案和技巧。几乎涵盖大厂面试全部知识点。值得所有Java技术人员一读再读。
▊ 《深入解析Java虚拟机HotSpot》
以源码分析为基础,从运行时、垃圾回收器、即时编译器3个维度全面、深入解析HotSpot VM的底层实现和工作机制,同时与上层的Java语言和库结合,指导读者解决JVM开发、JVM调优和JVM排错方面遇到的各种问题。作者是阿里云Java技术专家,热衷于研究编程语言的设计与实现,对Java虚拟机和编译器都有很深入的研究。
▊ 《深入理解JVM字节码》
《深入理解Java虚拟机》作者周志明等多位专家力荐。从原理和应用两个维度深入剖析字节码,揭示其在Java性能优化、软件破解、APM等各种应用场景中的“黑科技”。包含大量高度提炼和总结的图表,非常易于阅读和理解。
▊《Java高并发编程详解:深入理解并发核心库》
▊ 《架构师的自我修炼:技术、架构和未来》
极客时间畅销专栏全面升级!《大型网站技术架构》作者李智慧新作,通过基础知识、程序设计、系统架构、沟通管理4大方面的修炼,构建你的架构师知识体系。
4、意念打字登Nature封面!每分钟写90个字符,准确率超99%,网友:我打的都比它慢
识别关注我们
了解更多精彩内容
点分享
点点赞
点在看