【问题标题】:Detect SSL protocol in C在 C 中检测 SSL 协议
【发布时间】:2014-01-24 01:34:43
【问题描述】:

我正在编写一个接受传入 TCP 连接的服务器,我想在 C 中实现一种简单的方法来检测连接是否是 SSL,只检查几个接收到的字节。有什么帮助吗?

【问题讨论】:

  • 分配特定端口?有一个初始协商阶段,第一部分是ClientHello消息; security.stackexchange.com/questions/34780/…
  • SSL 而不是什么?您必须检测哪些其他协议很重要。例如,如果您必须检测它是 SSL 还是 HTTP,这非常容易—— HTTP 发送的第一个字符始终是大写字母,而 SSL 则永远不会。

标签: c sockets ssl tcp


【解决方案1】:

这是可能的,因为建立连接后的第一条消息应该是来自客户端的“hello”消息。消息中的第一个字段是 SSL/TLS 版本,然后是时间戳 - 根据普通客户端使用的应用层协议,这可能足以确定连接的客户端是否使用 SSL/TLS。

有关消息结构的更多详细信息,请参阅https://www.rfc-editor.org/rfc/rfc5246#section-7.4

编辑:这是一个非常相似的问题,答案很好:https://security.stackexchange.com/questions/34780/checking-client-hello-for-https-classification

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 2018-06-21
    • 2015-11-27
    • 1970-01-01
    相关资源
    最近更新 更多