gpt4 book ai didi

encryption - Java 应用程序和 C 应用程序与 OpenSSL 正确通信几分钟后发出 'bad record mac' 警报

转载 作者:太空宇宙 更新时间:2023-11-04 04:26:51 27 4
gpt4 key购买 nike

在与基于 C 的 OpenSSL 端正确通信几分钟后,我们的 Java 应用程序收到一个可能包含 bad_record_mac 的数据包,然后 Java 套接字关闭连接。完整的 Java 堆栈跟踪如下:

javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: bad record MAC
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkEOF(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(Unknown Source)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source)
at java.nio.channels.Channels$WritableByteChannelImpl.write(Unknown Source)
...some internal code...
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.net.ssl.SSLException: bad record MAC
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source)
at java.nio.channels.Channels$ReadableByteChannelImpl.read(Unknown Source)
...some internal code...

我们已经尝试了来自开发分支的 Java 6.0_21、6.0_25、Java 7.0_79、OpenSSL 1.0.1h、1.0.1u、1.0.2j、1.1.0b 和 1.1.1。还尝试使用不同的密码 - 结果相同。

应用程序消息大小约为 20...200 字节。数据包数据正确,只是消息认证码的问题。

我们想确定哪一方(Java 或 OpenSSL)对错误负责。有人可以帮助我们调试通信轨迹吗?可在此处下载带有证书的 CAP 文件:https://yadi.sk/d/3cnBUIN3yCRKw

最佳答案

数据包捕获对于调试此类问题毫无用处,因为通信是加密的,您需要提供协商的 key 。最好的办法是增加双方的调试消息以追踪问题。

Java 方面,javax.net.debug 属性 ( http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/ReadDebug.html) 是您理解问题的最佳选择。

关于encryption - Java 应用程序和 C 应用程序与 OpenSSL 正确通信几分钟后发出 'bad record mac' 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40620593/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com