TLS会阻止其他人对我的协议进行反向工程吗

时间:2014-03-24 04:52:08

标签: security networking ssl protocols

我正在开展网络计划,我不希望任何人知道在他们嗅探网络时传递了什么样的信息。使用TLS会实现这个吗?我的主要原因是我想保留我现在使用的协议。如果没有,请告诉我是否有任何可以实现我的目标。

2 个答案:

答案 0 :(得分:4)

这取决于很多事情,例如您的确切威胁模型是什么,以及您可以容忍多少信息泄漏。

对于TLS提供充分保护,这些假设必须为真:

  1. 显然,您应该使用正确的实现,否则,例如,如果您使用的是iOS 7.0.4中的SecureTransport,则所有投注均已关闭。
  2. 您应该强制执行最低版本要求,并且仅支持安全密码套件。如果您允许降级到SSLv2,那么您可以自行解决问题。
  3. 检查服务器公钥的有效性。你会惊讶地发现有多少客户端应用程序跳过这个。
  4. 您使用客户端证书对客户端以及服务器进行身份验证,否则,可以编写与您的TLS服务器通信并对您的协议进行反向工程的虚假客户端。 (您也可以使用其他方法在协议生命周期的早期对客户端进行身份验证,但协议的那部分不安全。)
  5. 保持私钥的安全。
  6. (如果您使用的是X509证书和信任链:)您信任的证书颁发机构会执行他们应该执行的操作,即不以其他人的名义签署证书。
  7. 您仍然会泄漏一些数据包长度和时间信息,而这些信息对于逆向工程师来说是不够完整的。
  8. 攻击者无法控制您的客户端或服务器,也无法访问任何一方的二进制文件。如果像iPhone应用程序一样,你放弃了客户端二进制文件,那么你已经输了。
  9. 您的更高级别的协议不能被欺骗,盲目地重定向到另一个服务器,或者在客户端安全通道中断时失去理智并做一些其他疯狂的事情。这有时很难被注意到,并取决于许多其他因素。
  10. 我可能错过了其他的东西。

答案 1 :(得分:1)

  

TLS会阻止其他人对我的协议进行反向工程吗?

可能不是。 Pentesters一直这样做。他们使用Burp Suite之类的代理连接并观察所有网络请求。

  

如果没有,请告诉我是否有任何可以实现我的目标。

通常的做法是:如果你不想被盗,被复制,被盗,滥用等,那么你就不要把它放在客户端上。因此,所有敏感代码和数据都会在您控制的服务器上运行。由于客户端可以看到请求,因此您必须从中删除所有敏感信息。