在Android中调试SSL/TLS连接

在Android中调试SSL/TLS连接,android,security,debugging,ssl,handshake,Android,Security,Debugging,Ssl,Handshake,任何人都可以指导我如何调试SSL/TLS连接所有握手过程。 比如: 密钥生成方式(随机数、非对称密钥) 如何握手过程中包装和打开套接字通道,并得到适当的解密转换 如何在android中为SSL/TLS套接字启用调试日志 根据,Java使用Java-Djavax.net.debug=all MyApp或ssl调试是否要监视套接字级数据?或者您只想调试http级别的数据。如果您需要后者,那么您只需使用诸如Charles或Fiddler之类的http调试工具即可。感谢Ruchira,实际上您想要确定j

任何人都可以指导我如何调试SSL/TLS连接所有握手过程。 比如:

  • 密钥生成方式(随机数、非对称密钥)
  • 如何握手过程中包装和打开套接字通道,并得到适当的解密转换
  • 如何在android中为SSL/TLS套接字启用调试日志

  • 根据,Java使用
    Java-Djavax.net.debug=all MyApp或ssl调试

    是否要监视套接字级数据?或者您只想调试http级别的数据。如果您需要后者,那么您只需使用诸如Charles或Fiddler之类的http调试工具即可。感谢Ruchira,实际上您想要确定java决定如何加密和解密ssl套接字的逻辑。以及如何启用它。我浏览了上面的链接,但仍然无法使用源代码进行调试。对于Package分析,我使用wireshark,但这不是我的需要。Hi Nilesh,通常任何操作系统都内置一组函数,用于处理有关建立SSL连接的所有复杂细节。正如您所知,有一个复杂的事件链,其中包括证书交换、证书验证、启动和密钥交换,最终将建立安全的SSL连接。这些操作系统层库以这样一种方式处理它们,我们可以通过简单地将URL更改为“https”而不是“http”来关注我们的逻辑。就像你的情况一样,我真的不知道如何查看这些键!我知道操作系统级库正在这样做。但在上面链接中的java上,我发现ssleng在做这件事。但无法识别握手过程。一步一步地。我是安卓开发者,我知道安卓为此使用了无聊的ssl/Openssl,但无法精确跟踪握手、密钥和密码交换的类。你能给我推荐一些我可以找到这个证书和密钥交换正在开始或正在验证的类吗?。我知道它非常庞大,因为有很多算法和密码,但很少有握手的开始可以帮助我很多。我调试了SSLSocketfactory、SSLEngin,但未找到它。是否要监视套接字级别的数据?或者您只想调试http级别的数据。如果您需要后者,那么您只需使用诸如Charles或Fiddler之类的http调试工具即可。感谢Ruchira,实际上您想要确定java决定如何加密和解密ssl套接字的逻辑。以及如何启用它。我浏览了上面的链接,但仍然无法使用源代码进行调试。对于Package分析,我使用wireshark,但这不是我的需要。Hi Nilesh,通常任何操作系统都内置一组函数,用于处理有关建立SSL连接的所有复杂细节。正如您所知,有一个复杂的事件链,其中包括证书交换、证书验证、启动和密钥交换,最终将建立安全的SSL连接。这些操作系统层库以这样一种方式处理它们,我们可以通过简单地将URL更改为“https”而不是“http”来关注我们的逻辑。就像你的情况一样,我真的不知道如何查看这些键!我知道操作系统级库正在这样做。但在上面链接中的java上,我发现ssleng在做这件事。但无法识别握手过程。一步一步地。我是安卓开发者,我知道安卓为此使用了无聊的ssl/Openssl,但无法精确跟踪握手、密钥和密码交换的类。你能给我推荐一些我可以找到这个证书和密钥交换正在开始或正在验证的类吗?。我知道它非常庞大,因为有很多算法和密码,但很少有握手的开始可以帮助我很多。我调试了SSLSocketfactory,SSLEngin,但没有找到它。