问题标签 [tls1.1]
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.
ssl - 如何在 IOS 中使用安全的 Ejabbered 服务器连接 XMPP 客户端?
我正在开发聊天应用程序,其中我的 Ejabbered 服务器使用 SSL 和 TLSv1.1/1.2 是安全的,我正在尝试将客户端连接到服务器,得到以下错误代码。
Appdelegate (Setupstream) 中的必需设置
之后手动信任自定义证书验证
之后在完成处理程序中匹配客户端服务器证书。
GCDAsyncSocket.m/XMPPStream.m 类中是否需要任何自定义以实现安全连接。
ssl - 如何在 nginx 上启用 TLSv1 和 TLSv1.1?
我的 nginx 机密文件如下所示:
不幸的是,Android 4.0-4.3 不支持 TLS1.2,我已经更改了配置:
但在使用SSLTest后,它显示我报告不支持 TLS1 和 TLS1.1。
我是否错过了更改配置文件的内容?提前致谢。
更新:我已经通过命令检查了证书:
并为每个协议启用证书。
php - 自 TLS 1.0 和 1.1 以来更新 Authorize.net 现已弃用
背景
我已经接管了对运行非常旧版本 PHP 的站点的更新。在将站点从 5.3 移动到 7.1 之后,我注意到 authorize.net 不断发送电子邮件,说明,
我们将不再允许 TLS 1.0 和 1.1
它声明它将在接下来的几周内完全停止工作,我不确定如何知道该站点是否使用了这个已弃用的 TLS 版本。我假设我应该能够通过应用程序中的 authorize.net 类知道。但代码并没有以任何方式引用TLS
。我还假设我可以通过正在使用的端点知道,但我还没有看到任何关于正在使用的 TLS 版本与正在使用的端点有关的任何信息。
有谁知道一种可靠的方法来测试并知道我们是否确实在我们的站点中使用了旧版本的 TLS?或者,如果我们可能在站点中使用了一个非常旧版本的 authorize.net,它根本不依赖 TLS?
示例代码
这些是应用程序中使用的一些类的开始。也许有人对TLS
您正在使用的版本指定您正在使用的版本有所了解authorize.net api
。
类.aim.cc.license.php
目标类.php
php - 如何确定连接到 LDAP (PHP) 的 tls/ssl 安全协议版本?
我正在使用 openLDAP 库。如何确定我的服务器用于连接 AD 服务器的安全协议类型和版本?
我了解网站,我可以通过查看浏览器的属性轻松查看类型和版本..
registry - TLS 1.2 1.0 Windows 2008 R2 服务器
我有一个场景如下;
客户端 <--TLS 1.0- -> 服务器进程 <--- TLS 1.2 ---> 后端现有客户端需要继续与我的服务器进程通信 TLS 1.0(它们将在另一天升级)但是“服务器进程”需要使用 TLS 1.2 与后端通信。我已经对注册表进行了以下更改,但是我不确定是否需要启用所有 3 个版本 1.0、1.1 和 1.2,假设握手阶段将根据需要选择最高(正确)版本的 TLS。
我已经创建了 TLS1.0、TLS1.1 和 TLS 1.2 密钥,然后为每个密钥创建了客户端和服务器密钥。在每个下,我将 DisabledByDefault 设置为 0(32 位 DWORD),并将每个设置为 1(32 位 DWORD)。因此,所有 3 个版本的 TLS 都启用如下。这是正确的做法,还是我只需要启用 1.2 版本(客户端和服务器)并禁用所有其他版本?
注册表 看起来像这样 我正在运行 Windows Server 2008 R2 Service Pack 1,它是一个非常脆弱的环境,所以我需要在重新启动之前第一次做到这一点。除了这些更改,我不需要应用任何补丁,不是吗?
感谢一百万您的帮助。
亲切的问候
格雷厄姆
.net - Windows 10 中的 .NET 3.5 + TLS 1.1/1.2 支持
.NET 3.5 最初发布时不支持 TLS 1.1 和 1.2。后来针对Windows 7 SP 1 & Server 2008 R2 SP1、Windows 8.1 和 Server 2012 R2和Windows Server 2012发布了补丁。但是,这些补丁都不会安装在 Windows 10 上。它们都会给出消息“更新不适用于您的计算机”。
是否有适用于 Windows 10 的补丁程序?它似乎还不是 Windows 10 的一部分。我已经通过在 .NET 3.5 应用程序中测试对至少需要 TLS 1.1 的服务器的 HTTPS 请求来确认这一点,但它失败了。
有一个类似的问题有很好的答案,但是 a) 进行代码更改的建议对我不起作用,因为我更喜欢安装补丁,并且 b) 引用补丁的答案不包括 Windows 10。
.net - 将 TLSv1 升级到 TLSv1_2016 后,通信 .NET 应用程序失败
我不是 SSL/TLS 专家。但遇到以下情况
我们从供应商处连接到 Web 服务,“安全策略”是 TLSv1,一切都像一个魅力。该供应商将那里的安全策略升级到 TLSv1_2016。
从那时起,通信就失败了。当他们再次回滚所有作品时。
现在,在看了我们如何建立联系的方式之后,我变得更加困惑。
我们使用 .NET (Framework 4.7.0XXX) 并使用以下类System.ServiceModel.Channels.CustomBinding
根据文档,这应该(默认情况下)支持 Ssl3、Tls、Tls1.1、Tls1.2。https://technet.microsoft.com/en-us/system.servicemodel.channels.sslstreamsecuritybindingelement.sslprotocols(v=vs.96)
这似乎足够了。
在 AWS 我发现以下概述
TLSv1.2 支持足以满足 SSLv3 TLSv1.0 TLSv1_2016 TLSv1.1_2016 TLSv1.2_2018
TLSv1.1 支持足以满足 SSLv3 TLSv1.0 TLSv1_2016 TLSv1.1_2016
TLSv1 支持足以满足 SSLv3 TLSv1.0 TLSv1_2016
所以看这个信息。我猜想我们通过 System.ServiceModel.Channels.CustomBinding 建立连接的方式应该足以与他们升级的(到 TLSv1_2016)策略进行交互(即使它是 TLSv1.1_2016 它应该可以工作,我正在考虑在他们的沟通中说明一个错字:-))
有没有人遇到过这个问题?或有任何想法在哪里进一步调查。
在此先感谢, 问候,乔
django - 在 iOS 8 上使用 AJAX 的 Django CSRF 错误
我正在尝试对 Django 函数进行 AJAX 调用,但在 iOS 8 中开始出现 CSRF 验证失败错误。它适用于最新的 iOS,并且曾经适用于 iOS 8。
这可能与最近对 TLS 的更新有关。我的主机最近弃用了 TLS 1.0 和 TLS_RSA_WITH_3DES_EDE_CBC_SHA。
我将 CSRF 令牌添加为 post 参数。如果我创建函数(服务器端)@csrf_exempt,那么调用就可以工作,但我显然不想剥夺安全性。
我只在 Safari 中测试过这个。我正在使用 Django 1.5.2。
HTML:
Javascript:
是否有任何解决方案或者我必须停止支持 iOS 8?我仍然有一些用户在使用它。
azure-devops - Azure - 在 Windows Server 2012 R2 上禁用了 TLS 1.0,这破坏了 RDP 功能
安全审核后,我们在 Windows server 2012 R2(Azure 云服务)机器上禁用了 TLS 1.0 和 TLS 1.1。进行上述更改后,我们无法在云虚拟机上进行RDP。以下是用于禁用 TLS 的脚本。
dtls - 带有 SHA 的 DTLS AES 256 CBC,我如何计算最终加密的握手消息
我试图了解最终的加密握手消息是如何工作的
为此,我试图确保我的算法给出与此示例相同的结果:
https://www.cloudshark.org/captures/56acf0481a79
由于 0xFEFF 标头,我很确定 DTLS 1.0 遵循 RFC 4347。
已知的是
我正在执行以下步骤:
预大师秘密
premaster secret 的形成如下:如果 PSK 的长度为 N 个八位字节,则连接一个值为 N 的 uint16、N 个零八位字节、一个值为 N 的第二个 uint16 以及 PSK 本身。(RFC 4279 第 2 节)
master_secret = PRF(pre_master_secret, "master secret", ClientHello.random + ServerHello.random) [0..47];
PRF 被定义为结合两个不同的散列函数。RFC 2246 的第 5 节:
key_block = PRF(SecurityParameters.master_secret, "key expansion", ServerHello.random + ClientHello.Random) 根据 RFC4346第 6.3 节
- 客户端 MAC 密钥 (SHA1) 20 个字节
- 服务器 MAC 密钥 (SHA1) 20 个字节
- 32 字节的客户端加密密钥 (AES256)
- 32 字节的服务器加密密钥 (AES256)
- 客户端 IV 16 字节(AES 使用 128 位块)
- 服务器 IV 16 字节(AES 使用 128 位块)
在这种情况下,我们需要生成 136 字节
如果以上是正确的那么
因此,如果我用上面的密钥和 IV 解密客户端握手加密记录,我会得到
我如何获得上面的值?
我知道这需要进行散列(Client Hello + Sever Hello + Sever Hello Done + Client Key Exchange 的串联)
任何人都可以帮忙吗?