【发布时间】:2016-01-30 22:59:05
【问题描述】:
SSL_CTX_set_verify() 和 SSL_set_verify() 调用可用于分别为底层上下文和 ssl 设置 verify_callback() 函数。这是verify_callback()文档中的一个sn-p:
verify_callback的返回值控制着策略 进一步的验证过程。如果 verify_callback 返回 0,则 验证过程立即停止并显示“验证失败” 状态。如果设置了 SSL_VERIFY_PEER,则会发送验证失败警报 到对等方并且 TLS/SSL 握手终止。如果 verify_callback 返回 1,继续验证过程。如果 verify_callback 总是返回 1,TLS/SSL 握手不会 因验证失败和连接而终止 将成立。
现在我的问题。如果我设置了verify_callback()(以及任何其他必要的OpenSSL设置调用、证书等),然后调用SSL_connect(),是否可以安全地假设任何对verify_callback()的调用都将在返回之前返回SSL_connect() 的电话?
在我看来,这是一个安全的假设,因为文档指出此回调决定是否建立连接。所以回调会直接影响SSL_connect()调用的返回值。任何人都可以确认/否认这个假设吗?
【问题讨论】: