问题标签 [sslengine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - SSLEngine:在成功握手后展开时无效的 TLS 填充数据
我正在使用非阻塞 socketChannel 和 SSLEngine 一个 ssl 服务器。因此,在成功握手后,我读取了套接字(第一次读取的是 184 字节/384 字节),然后我将此缓冲区传递给 unwrap 方法。unwrap 方法抛出以下异常:
但是如果我第一次读取所有字节(384/384),那么我不会得到这个异常。
我认为如果 sslengine 没有足够的字节来解包,它将返回一个 bufferUnderflow 状态。
我真的需要所有字节来调用 unwrap 方法吗?如果是,我如何确定我读取了非阻塞套接字的所有字节?
编辑:代码:
然后我使用非阻塞通道读取 184/384 字节。
读取 = _socketChannel.read(缓冲区);
然后将buffer
要解密的传递给:
在 engine.unwrap engineRes=engine.unwrap(inNetData, outAppData); 中抛出异常
java - JAVA SSLENGINE: Unsupported record version Unknown-0.0 while trying to unwrap bytebuffer record with SSLEngine
I am using an SSLEngine
over Java NIO
unblocking server sockets to handle connections. I am able to successfully handshake the clients and pass small record sets to the server. However when I try to transfer a file to the server text/binary
I am getting the following error:
I am however unable to find out the reason for this error.
Below is my code snippet
#xA;java - 如何在 Java SSLEngine 中设置自定义 DH 组以防止 Logjam 攻击?
针对 TLS 的新 Logjam 攻击基于常见的 DH 组。此链接建议为每个服务器生成一个新的自定义 2048 位 DH 组。
如何在使用 SSLEngine 的 Java 服务器代码中设置自定义 DH 组?
ETA:如果我只使用临时 DH 密码套件,即带有 DHE 或 ECDHE 而不是 DH 或 ECDH 的名称,我会安全吗?还是这无关?
java - SSLEngine 握手完成后打印解码数据
SSL握手完成后如何获取解码数据?
目前它似乎只解密了一些数据。
重现步骤
- 保存并运行此代码
- 转到https://localhost:1500 - 您应该注意到请求的开头和结尾有如下内容:
?GET ... #$?+{???u7Y???
android - 在 Android 4.0.4 上使用 TLS1.2
有谁知道在建立 SSL 连接时启用 Android 4.0.4 使用 TLS1.2 的方法?
我已经阅读了这个问题的答案:-让 SSLEngine 在 Android (4.4.2) 上使用 TLSv1.2?
但是,Google Play 服务在生产的 Famoco NFC 设备上不可用,由于硬件原因,这些设备仅限于 4.0.4。
是否有任何库可以帮助 SSLEngine 建立 TLS1.2 连接?
java - 如何检测委托任务中的异常(SSLEngine)
我使用SSLEngine
s 和 NIO 来为我的应用程序提供非阻塞 SSL 连接。在握手期间的某个时刻(可能在收到之后ServerHelloDone
)SSLEngine
需要我处理委派的任务。
所以我打电话getDelegatedTask
给它的run
方法。任务本身调用X509ExtendedKeyManager.getCertificateChain
,而后者又抛出一个NullPointerException
. 该异常被 捕获Handshaker
并存储以供以后报告。
然而,报告通过调用checkTaskThrown
仅在收到消息或要发送消息时调用的私有方法来工作。但是如果没有getCertificateChain
正确完成,就没有东西可以发送,对方也没有发送任何东西,所以没有东西可以接收。因此异常保持隐藏。
由于没有一方继续进行,我们有一个活锁。我发现没有办法阻止或检测到这一点,除了
- 使用反射调用
checkTaskThrown
- 使用一些任务/计时器超时
哪一条都不是我想走的路……
java - 在使用 SSLEngine 之前如何获取请求的域名?
在确定将使用哪个证书发回之前,我想在 java 中获取域名。我怎样才能做到这一点?
我需要自己分析字节吗?或者有这个图书馆吗?或者一些java SSL lib可以做到吗?
相关文章 从 TLS 客户端 hello 中提取服务器名称指示 (SNI)
但我希望只使用 java 库来获取主机名。
java - 如何使用来自 chrome、firefox 或任何浏览器的所有相同公钥/证书创建 SSLEngine?
无论如何使用与 Chrome 一起安装的证书来创建 SSLEngine 吗?我记得默认情况下它安装了很多权威公共证书。
我认为,由于 chrome 可与我所知道的所有网站一起使用,因此会更加详尽,并且仅安装 chrome 并依赖它会更容易。
谢谢,院长
java - 再次调用共享 SSLContext 对象的 init() 时对 SSLEngine 的影响
我有一个反应器模式的实现,我在其中加载(基本上是SSLContext
一个TransportListener
侦听器在给定端口上侦听 HTTPS 连接。)正在启动。
然后我init()
再次调用相同的方法(通过对侦听器方法的JMX调用)
一旦我在信任库中添加或删除证书。我必须重新加载SSLContext
以避免侦听器出现任何停机时间。
所以这是我目前面临的问题。
假设一个请求到达监听器并建立了一个连接。如果我SSLContext
在响应返回给客户端之前重新加载对象,这会影响连接SSLEngine
对象wrap
在发送前加密有效负载的过程吗?
注意:我已经验证了同一个SSLContext
对象被传递给所有 SSLEngines。当侦听器启动时,SSLContext 对象被传递给其他几个对象。例如,我有一个连接池,我必须将此 SSLContext 对象传递到该连接池。因此创建一个新的 SSLContext 对象将完全打破现有的连接是连接池。这就是为什么我尝试使用相同的 SSLContext 对象。
java - SSLEngine 但没有委托任务
Java中是否有办法拥有与SSLEngine相同的功能但没有委托任务,因为我的程序需要处理大量连接,我在NIO中编写它的目的是使用更少的内存,拥有更多的连接并具有更好的性能,所以如果我使用委托任务,它会破坏目的,我的程序将使用更多的内存作为线程,大量占用相当多的空间。