问题标签 [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.

0 投票
1 回答
3843 浏览

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); 中抛出异常

0 投票
1 回答
1172 浏览

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:

#xA;

I am however unable to find out the reason for this error.

Below is my code snippet

#xA;
0 投票
1 回答
9252 浏览

java - 如何在 Java SSLEngine 中设置自定义 DH 组以防止 Logjam 攻击?

针对 TLS 的新 Logjam 攻击基于常见的 DH 组。此链接建议为每个服务器生成一个新的自定义 2048 位 DH 组。

如何在使用 SSLEngine 的 Java 服务器代码中设置自定义 DH 组?

ETA:如果我只使用临时 DH 密码套件,即带有 DHE 或 ECDHE 而不是 DH 或 ECDH 的名称,我会安全吗?还是这无关?

0 投票
0 回答
346 浏览

java - SSLEngine 握手完成后打印解码数据

SSL握手完成后如何获取解码数据?

目前它似乎只解密了一些数据。

重现步骤

  1. 保存并运行此代码
  2. 转到https://localhost:1500 - 您应该注意到请求的开头和结尾有如下内容:

?GET ... #$?+{???u7Y???

0 投票
0 回答
533 浏览

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 连接?

0 投票
1 回答
198 浏览

java - 如何检测委托任务中的异常(SSLEngine)

我使用SSLEngines 和 NIO 来为我的应用程序提供非阻塞 SSL 连接。在握手期间的某个时刻(可能在收到之后ServerHelloDoneSSLEngine需要我处理委派的任务。

所以我打电话getDelegatedTask给它的run方法。任务本身调用X509ExtendedKeyManager.getCertificateChain,而后者又抛出一个NullPointerException. 该异常被 捕获Handshaker并存储以供以后报告。

然而,报告通过调用checkTaskThrown仅在收到消息或要发送消息时调用的私有方法来工作。但是如果没有getCertificateChain正确完成,就没有东西可以发送,对方也没有发送任何东西,所以没有东西可以接收。因此异常保持隐藏。

由于没有一方继续进行,我们有一个活锁。我发现没有办法阻止或检测到这一点,除了

  • 使用反射调用checkTaskThrown
  • 使用一些任务/计时器超时

哪一条都不是我想走的路……

0 投票
2 回答
440 浏览

java - 在使用 SSLEngine 之前如何获取请求的域名?

在确定将使用哪个证书发回之前,我想在 java 中获取域名。我怎样才能做到这一点?

我需要自己分析字节吗?或者有这个图书馆吗?或者一些java SSL lib可以做到吗?

相关文章 从 TLS 客户端 hello 中提取服务器名称指示 (SNI)

但我希望只使用 java 库来获取主机名。

0 投票
1 回答
88 浏览

java - 如何使用来自 chrome、firefox 或任何浏览器的所有相同公钥/证书创建 SSLEngine?

无论如何使用与 Chrome 一起安装的证书来创建 SSLEngine 吗?我记得默认情况下它安装了很多权威公共证书。

我认为,由于 chrome 可与我所知道的所有网站一起使用,因此会更加详尽,并且仅安装 chrome 并依赖它会更容易。

谢谢,院长

0 投票
1 回答
482 浏览

java - 再次调用共享 SSLContext 对象的 init() 时对 SSLEngine 的影响

我有一个反应器模式的实现,我在其中加载(基本上是SSLContext一个TransportListener侦听器在给定端口上侦听 HTTPS 连接。)正在启动。

然后我init()再次调用相同的方法(通过对侦听器方法的JMX调用)

一旦我在信任库中添加或删除证书。我必须重新加载SSLContext以避免侦听器出现任何停机时间。

所以这是我目前面临的问题。

假设一个请求到达监听器并建立了一个连接。如果我SSLContext在响应返回给客户端之前重新加载对象,这会影响连接SSLEngine对象wrap在发送前加密有效负载的过程吗?

注意:我已经验证了同一个SSLContext对象被传递给所有 SSLEngines。当侦听器启动时,SSLContext 对象被传递给其他几个对象。例如,我有一个连接池,我必须将此 SSLContext 对象传递到该连接池。因此创建一个新的 SSLContext 对象将完全打破现有的连接是连接池。这就是为什么我尝试使用相同的 SSLContext 对象。

0 投票
1 回答
118 浏览

java - SSLEngine 但没有委托任务

Java中是否有办法拥有与SSLEngine相同的功能但没有委托任务,因为我的程序需要处理大量连接,我在NIO中编写它的目的是使用更少的内存,拥有更多的连接并具有更好的性能,所以如果我使用委托任务,它会破坏目的,我的程序将使用更多的内存作为线程,大量占用相当多的空间。