有一个用 Java 编写的客户端-服务器应用程序。它们以某种方式相互通信。不幸的是,我们的技术人员不可靠(我们打算解雇他)。
他接受了公司的申请。他们声称一切都很安全。
我不是技术人员,您能帮我查明客户端和服务器之间的通信是否加密吗?
我可以访问该服务器。该服务器是 Windows Server。
建议使用一个netstat
,但我不知道如何使用它(提供哪些参数)
答案1
你应该使用wireshark检查数据。如果您的应用程序使用标准加密方案(如 ssl/tls),您应该可以看到整个握手过程。
如果您看到的只是随机二进制数据,则很难知道它是什么。对于未知软件,您无法轻松区分压缩数据或加密数据(两者看起来都像随机二进制垃圾),并且您必须使用其他方法才能弄清楚(困难且昂贵)。
如果您与应用程序开发商/公司签订了合同,您应该询问他们是否使用了加密以及使用了何种加密。
答案2
实际上,您要使用的程序是wireshark。您可以使用 wireshark 捕获应用程序正在生成的实际网络流量并进行检查,然后确定它是什么类型的流量、包含哪些数据等。
答案3
使用数据包嗅探器,例如Wireshark查看网络流量。您可以在客户端或服务器上运行数据包嗅探器。如果应用程序使用 SSL,Wireshark 应该能够告诉您 SSL 握手选择了什么密码。但是,如果协议使用自己的加密方案,您就无法真正判断加密的安全性——它可能与 AES 一样安全,也可能像使用固定密钥重复 XOR 一样脆弱。