问题标签 [handshake]

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 投票
2 回答
1579 浏览

ssl - 在初始 https 之后再次为 wss 握手?

假设一个 100% 安全的 websocket 站点,webserver 提供所有文件:html、js、css 等,websocket 提供客户端和服务器之间的所有数据。

显然最初的 ssl 握手是在默认 https 端口上的客户端和 webserver 之间进行的,但是 wss 将在不同的端口上,所以它必须再次握手吗?

我问的原因是因为 websockets 和 spdy 还没有一起工作(所以我已经读过),所以我希望通过在 web 服务器上安装 spdy 并依赖 wss 的 keep-alive 来解决它,因为有些握手后声称spdy并不比keep-alive快多少(如果有的话)spdy比keep-alive https快吗?.

0 投票
1 回答
681 浏览

java - 在 Java 中使用自己的随机数进行 TLS 握手

我有一个硬件,它实现了一些加密功能,如随机数生成(例如智能卡)。我想在我的 TLS hadshake 期间使用这个硬件。是否可以做到这一点,而无需我自己实施 TLS 握手?

我试图扩展类“SecureRandom”,但“下一个”方法是最终的,所以我不能覆盖它,以便它返回“我的”生成的数字。

所以基本上我想“外包”所有加密功能而不在 JAVA 中实现 TLS 握手。

谢谢

0 投票
0 回答
242 浏览

java - 与智能卡的 TLS 握手

我的 TLS 握手仍然有一些问题(请参阅:TLS-handshake with own random numbers in Java)。数字生成工作正常。

现在我遇到了问题,我需要在我的智能卡中生成 EC 密钥和预主密钥,并将这些密钥用于 Diffie-Hellman 密钥交换。我发现KeyPairGeneratorSpi应该做的工作。但我不知道,KeyPairGenerator在握手期间如何使用我自己的,也不知道如何读取“ServerKeyExchange”期间发送的客户端的曲线参数和公钥。

0 投票
3 回答
6932 浏览

serial-port - Arduino:一次检查一个字符的字节数组

我使用发送一系列字节的程序通过串行与 Arduino 通信。

为了让 Arduino 意识到它正在接收消息而不是垃圾,我用字符“S”“T”“A”“R”“T”标记了我的字节数组的开头。在此之后最终将遵循一系列将分配给内部变量的字节(尚未实现)。

Arduino 必须按顺序读取每个字节并将其与字节数组进行比较,如果所有字节都以正确的顺序出现,它将继续程序的下一部分,否则它将丢弃当前字节并等待更多字节到达。

我试图以最有效和可读的方式实现它,而不是使用一系列嵌套的 if 语句。

到目前为止,我得到了:

然而,这似乎没有超过第二个字节,我不知道为什么。

0 投票
5 回答
109978 浏览

java - 如何使因“SSL 对等方错误关闭”而导致 SSL 连接失败的 Java 6 像 Java 7 一样成功?

我看到来自运行 Java 6 的客户端的 SSL 连接失败,出现如下异常:

该服务器是一个基于 Tomcat 7 的应用程序,在 Java 7、Linux 和 Amazon EC2 上运行,物有所值。

我发现了很多关于可能原因的建议,包括意外连接到非 SSL 端口等。我相信我已经排除了这一切,主要是因为完全相同的客户端在运行 Java 7 时工作而没有任何变化。(在这两种情况下都是 OS X。)

下面我包括 Java 6 和 Java 7 的 SSL 连接过程的调试输出。我对专家的问题是,这是否表明可以在 Java 6 中启用某些可能的密码或协议设置(可能是 Java 7 中的默认设置)以使其工作

爪哇 6:

爪哇 7:

0 投票
1 回答
899 浏览

http - SSLSocketFactory.createSocket 使用 http 而不是 https 连接

我需要握手。我用下面的代码来做。

我在小程序中运行代码,直接针对服务器运行时它工作正常。当相同的代码通过代理运行时,就会出现我遇到的问题。我正在查看激活了跟踪级别 5 的 Java 控制台。直接在代码行“SSLSocket socket = (SSLSocket) factory.createSocket("www.theserver.com", 443);"之后 执行此行出现在 java 控制台“network: Connecting http://www.theserver.com:443 with proxy=DIRECT”中。在此之后,小程序停止工作。我认为这是因为代理不允许端口 443 上的 http 流量。

谁能告诉我为什么它使用http连接以及我应该怎么做才能让它使用https连接?

0 投票
4 回答
3134 浏览

ssl - 握手警报:unrecognized_name 错误

我正在使用 Charles 3.7 来调试 SSL 连接。我能够查看大部分 HTTPS 连接,但是当我尝试调试它时,有 1 或 2 个站点返回“SSLProtocol:握手警报:unrecognized_name”,并且我无法在 Charles 开启的情况下加载该网站。我可以使用 Fiddler 来做到这一点。关于如何解决这个问题的任何想法?谢谢。

0 投票
0 回答
790 浏览

ssl - 充当 SSL 客户端的 WebSphere 服务器能否在握手期间提供其证书列表?

我知道在 WebSphere Security 中,在 SSL 配置 -> QOS 设置下 - 我可以将客户端身份验证设置为“必需”。这意味着在 SSL 握手期间,客户端应该通过向服务器显示证书链列表来验证自己。如果服务器也信任其中一个证书,则握手将继续进行。

我的情况与此完全相反。

我的 Websphere 服务器充当客户端(向另一台服务器发送 SOAP 请求)。但另一台服务器也将客户端身份验证设置为 true。在尝试调试握手时,我发现我的 Websphere 服务器在步骤 ServerHello Done 之后没有提供证书列表。

Websphere 中是否有任何配置可以用来执行此操作?

这是握手的要点:

0 投票
1 回答
5333 浏览

asp.net - 由于意外的数据包格式,WebRequest 握手失败

我有许多 ASP.NET 网站和一个 Web 服务,它们使用相同的代码“登录”到第三方网站。这基本上包括使用 WebRequest 使用我的凭据对网站的登录页面进行 HTTP POST,将生成的 cookie 存储在 CookieContainer 中,并在任何后续 WebRequest 中使用该 CookieContainer 来授权我的网站访问第三方网站上的页面。

代码基本上如下:

这段代码已经工作了很长时间(几个月,半年多)。从这个周末开始,它开始经常失败(我估计有 90% 的时间,但不是 100% 的时间)。我一直看到的错误是:System.Net.WebException:底层连接已关闭:发送时发生意外错误。---> System.IO.IOException: 由于意外的数据包格式,握手失败。 堆栈跟踪如下:

当我用谷歌搜索这个错误时,我一直看到的唯一解决方案是禁用 WebRequest 的 KeepAlive 属性和/或将 ProtocolVersion 设置为 HttpVersion10。我尝试了两者(在所有可能的组合中)并且没有任何帮助。

错误并不总是出现,但当它出现时,我可以继续尝试所有我喜欢的,我会一次又一次地收到错误。如果我将它放置几分钟再试一次,我有机会它会工作(一旦成功,它会继续工作一段时间)。

奇怪的是,我没有改变任何东西。这段代码已经运行了几个月没有问题。第三方网站完全有可能最终改变了一些东西,和/或我的虚拟主机提供商改变了一些东西。但以防万一我能做点什么来解决这个问题,我想问问我是不是做错了什么。

我可以联系第三方网站(可能不会得到回复)或我的虚拟主机,但我需要更好地了解到底出了什么问题,因为只是把这个错误扔给他们可能对他们没有帮助。

那么,有什么我可以做的吗,或者我是否有充分的理由突然在我的所有网站上看到这个错误(它们都连接到同一个第三方网站)?

谢谢

0 投票
1 回答
5263 浏览

java - 在 Java 6 上运行时,Java 7 ssl 握手失败

我正在使用 Ability 邮件服务器 (AMS) 工具来测试我的 SMTP 服务器网络在各种配置(SMTP、带 TLS 的 SMTP、基于 SSL 的 SMTP 等)中的可用性。我的服务器端是用 java 编写的,并使用 SubethaSmtp 库来实现。

在我决定将服务器从 java 6 升级到 java 7 之前,AMS 运行良好并且可以很好地满足我的测试需求。从那时起,我无法使用此实用程序来测试我的 SMTP over SSL 和 SMTP 与 TLS 连接,因为每次尝试我越来越:

我也写在 java 上的其他集成测试是成功的,但是这个问题仍然困扰着我。我无法找出,有什么不同。

我的 java 6 成功的 SSL 握手调试输出

我的 java 7 总是失败 SSL 握手调试输出

我的 SMTP over SSL 服务器实现

实施与以往没有任何区别。唯一的区别是 JDK 的版本。

我不知道,握手期间会出什么问题。是在测试实用程序问题还是我应该执行任何步骤来修复此错误以防止发生?