【发布时间】:2018-06-09 17:21:48
【问题描述】:
我想解码和存储原始 SSL/TLS 数据,以便将来证明一些事情,我认为如果我用一个例子来描述它会更好:
1) 有一个远程 REST 端点可通过 SSL 访问并提供一些有用的数据。此端点由某个第三方控制,我无法控制它。
2) 我向该端点发出 GET 请求,并将响应的原始 SSL 流量存储在一个文件中,然后将解码后的 ssl 流量存储在另一个文件中
3) 另外我将此端点的 SSL 证书保存在一个单独的文件中(我猜这个操作只需要执行一次)
如果我在获得上述步骤中的所有数据时理解正确,并且在未来,当另一个第三方要求我提供过去某个时间远程服务器上存在某些数据的证据时,我可以:
1) 向他们出示我保存的证书(步骤 3)。由于此证书是由知名机构签署的,因此我伪造它的可能性几乎为零
2) 向他们展示 RAW SSL 数据以及使用上述证书对其进行解码的方法
3) 在解码的 REST 响应标头中,还应该存在远程服务器时间。
因此,如果我没记错的话,我几乎可以毫无疑问地证明,在过去的某个时间点,即使远程服务器本身不再运行,远程方的服务器上也存在某些数据.
因此,我可以使用原始 SSL 数据来证明过去远程服务器上存在某些东西。而且几乎没有人质疑这种说法,因为伪造响应数据或标头意味着我能够破解 SSL 加密。
有没有办法自动化这样的场景?我的意思是有没有办法以一种可以让以后轻松解码的形式记录原始 SSL 数据?
我已经尝试使用 firefox/chrome 浏览器以及 sslkeylog 文件并使用 wireshark 嗅探流量 - 它确实有效,但是有没有办法使用某种 REST 库来自动化它,因为每次使用 firefox 并记录 SSL 密钥可能很麻烦 - 可能需要每小时存储数千个这样的请求,并且手动执行将是一项全职工作,另外我不确定是否有办法证明存储在 ssskeylog 文件中的这些密钥实际上匹配远程服务器的证书...
【问题讨论】:
-
您正在寻找的技术称为数字签名。您目前的方法既不合适也不可行。
标签: ssl encryption https decoding