Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何测试我的.NET客户端使用的TLS版本?_.net_Fiddler_Wireshark_Packet Sniffers_Tls1.2 - Fatal编程技术网

如何测试我的.NET客户端使用的TLS版本?

如何测试我的.NET客户端使用的TLS版本?,.net,fiddler,wireshark,packet-sniffers,tls1.2,.net,Fiddler,Wireshark,Packet Sniffers,Tls1.2,我支持一个.NET站点,该站点(在许多其他站点中)与来自供应商系统的远程API进行对话 我们希望升级以支持TLS 1.2 我们希望根据这个问题这样做: 但是一旦我做了改变,我该如何检查它是否真的起作用呢 理想情况下,我的一个供应商站点将开始仅使用TLS 1.2,然后我的测试可以是“我们现在可以和那个供应商谈谈吗?”但我们没有。 我猜我可以用包嗅探器做一些事情,但我不知道我到底在寻找什么,也不知道如何设置嗅探器以可读的方式收集必要的数据 要么: 有人能告诉我如何在Fiddler/WireShar

我支持一个.NET站点,该站点(在许多其他站点中)与来自供应商系统的远程API进行对话

我们希望升级以支持TLS 1.2 我们希望根据这个问题这样做:

但是一旦我做了改变,我该如何检查它是否真的起作用呢

理想情况下,我的一个供应商站点将开始仅使用TLS 1.2,然后我的测试可以是“我们现在可以和那个供应商谈谈吗?”但我们没有。 我猜我可以用包嗅探器做一些事情,但我不知道我到底在寻找什么,也不知道如何设置嗅探器以可读的方式收集必要的数据

要么:

  • 有人能告诉我如何在Fiddler/WireShark中收集这些数据的全面指南吗

  • 是否有人可以建议一种替代方法来测试变更是否有效

System.Net跟踪确实包含足够的详细信息来检查这一点,尽管它不是很容易访问

通过线路发送的字节被记录下来,在该博客文章给出的示例中,客户端流开始:

System.Net.Sockets Verbose: 0 : [3848] Data from Socket#48285313::Send
System.Net.Sockets Verbose: 0 : [3848] 00000000 : 16 03 00 00 41 01 00 00-3D 03 00 43 26 02 90 83 : ....A...=..C&...
RFC5246描述了TLS 1.2和:

struct{
协议版本客户端\ U版本;
随机;
会话id会话id;
密码套件;
压缩法压缩法;
选择(存在扩展名){
案例错误:
结构{};
大小写正确:
扩展;
};
}克利恩泰罗;
记录以0x16开始作为类型标记,然后是协议版本

上面显示的会话版本为3.0

3.3是TLS1.2

因此,如果您的客户机数据开始“
16 03
”,则您的客户机正在尝试协商TLS 1.2


您可能需要检查ServerHello以确定实际使用的版本。

如果您在Wireshark中捕获连接创建,并检查来自客户端的第一个数据包,则Wireshark将为您在
ClientHello
结构中注释字段,包括客户端请求的TLS版本

类似地,如果查看来自服务器的第一个回复数据包,Wireshark将为您注释
ServerHello
结构中的字段,包括为连接确定的TLS版本

请参阅或以获取工作示例。

如果在中打开“连接”,则可以在Inspectors->TextView中查看TLS/SSL版本


要启用连接,请转到菜单栏中的
规则
,并取消选中“隐藏连接”

注意:必须禁用解密HTTPs流量


参考资料:

应注意,需要禁用“解密HTTPS流量”才能正常工作。在链接到的文章中提到了它,但我想这可能会消失。Fiddler不支持TLS1.3,因此无论如何都无法检查它。
  struct {
      ProtocolVersion client_version;
      Random random;
      SessionID session_id;
      CipherSuite cipher_suites<2..2^16-2>;
      CompressionMethod compression_methods<1..2^8-1>;
      select (extensions_present) {
          case false:
              struct {};
          case true:
              Extension extensions<0..2^16-1>;
      };
  } ClientHello;