问题标签 [sasl-scram]

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 回答
14832 浏览

authentication - XMPP SASL SCRAM-SHA1 身份验证

最近,按照以下两个网站上的说明,我能够在 Swift IOS 中对 XMPP 流进行 MD5 身份验证(我使用 Apple 的 CommonCrypto C 库的 CC-MD5 函数进行实际散列):

http://wiki.xmpp.org/web/SASLandDIGEST-MD5

http://www.deusty.com/2007/09/example-please.html

我正在寻找有关如何使其他散列 SASL 身份验证方案正常工作的类似解释,尤其是 SCRAM-SHA1。我找到了官方的RFC5802文档,但我在理解它时遇到了很多麻烦(它也不特定于 XMPP)。我将不胜感激一个更简单的解释或一些特定于 XMPP 身份验证的简单可读代码(C、PHP、C++、Javascript、Java),除了实际散列之外不使用任何库。

我有兴趣了解该过程,并且不打算使用 ios XMPP-Framework。任何帮助,将不胜感激。

0 投票
1 回答
1548 浏览

authentication - 实现 SCRAM-SHA1 客户端,在某处出错

注意:我已经阅读了这个问题的非常好的答案,但它没有回答我的问题。

我正在尝试在 Common Lisp 中实现RFC 5802指定的 SCRAM-SHA1 身份验证标准。在生成客户端最终响应消息时,我遇到了问题。

这是函数的代码(其余函数可在此处获得)——这是尝试实现 RFC 第 7 页中描述的算法:

RFC 中的示例对话使用用户名user和密码pencil

获取相同的服务器响应 ( r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,s=QSXCR+Q6sek8bf92,i=4096) 并将其输入到我的函数中,我得到:

如您所见,我的client-proof( 的p=部分final-message)与示例中的完全不同。

我将所有中间变量添加到返回中,以防这里的任何人都可以看到出了什么问题。不幸的是,没有显示中间变量值的示例,所以我无法比较我得到的替代方案。

0 投票
1 回答
759 浏览

mongodb - 在 cl-mongo 中实现 MongoDB SASL 身份验证

我已经从 fons 分叉了 cl-mongo(通用 lisp MongoDB 库)存储库,因为它已经停止维护并且不支持 SCRAM-SHA-1 登录过程。这是我的分叉:https ://github.com/mprelude/cl-mongo——主要的变化是添加了对cl-scram(我的 SCRAM 实现)的依赖,并添加了一个 bson 二进制通用容器。

我仍在尝试发送初始消息,所以问题不在于密码错误,因为尚未使用。

为什么这部分身份验证失败?如果我想将 MESSAGE 中的内容传输到 mongo,任何人都可以确认 BINARY-MESSAGE 是否是我应该发送的内容?

这是我的电话,添加了一些调试输出:

值得注意的是,我认为 Mongo 必须正确读取我的请求,因为消息是“身份验证失败”(错误代码 18),这表明它理解我已请求 SASL 对话。

我相信我遇到的问题是基于有效负载,无论是内容(base64 的初始消息,作为八位字节)或格式。

借鉴MongoDB 文档以及原始讨论的工作方式,这是我重写的 db.auth 函数:

0 投票
1 回答
1203 浏览

php - 通过 PHP 进行 SCRAM-SHA-1 身份验证

请帮助我在 XMPP 服务器中实现有关 SCRAM-SHA-1 授权的手册中的语义代码。所以,我们得到了:

我的PHP代码:

某处错误(可能是所有大错误;))并且我非常需要您的帮助来纠正我的代码,也许我使用了错误的函数或错误位置的参数?因为结果 - 失败,服务器发送给我:

“客户提供的回复与我们计算的不符。”

PS:对不起我的英语不好;)

0 投票
1 回答
850 浏览

javascript - SCRAM 客户端 Javascript 实现/示例/库?

几个月前,我创建了一个为客户端和服务器提供功能的小型 Java 库。昨天它的一个用户问我一个例子,如何在他的网站上实现SCRAM登录客户端,即浏览器(他已经使用我的 lib 在服务器端使用 SCRAM)。他告诉我,他找不到任何 Javascript 示例或库,而且我的搜索也不成功(这让我很惊讶,鉴于所有数据泄露和被盗登录凭据,我认为 SCRAM 现在被更广泛地使用)。

您是否知道可以在浏览器中使用此类示例或库 (javascript) 来提供 SCRAM 身份验证的客户端功能?

0 投票
1 回答
1782 浏览

postgresql - scram-sha-256 设置在 PostgreSQL 10 中使用了多少次迭代?

scram-sha-256 设置在 PostgreSQL 10 中使用了多少次迭代?

文档只是说

将此参数设置为 scram-sha-256 将使用 SCRAM-SHA-256 加密密码。

构建日志读取

添加对密码协商和存储的 SCRAM-SHA-256 支持 (Michael Paquier, Heikki Linnakangas) 这证明了比现有的 md5 协商和存储方法更好的安全性。

0 投票
1 回答
2168 浏览

mongodb - Mongodump 与 authenticationMechanism SCRAM-SHA-1

我有以下mongo docker 图像

在启动容器并使用 bash 附加到它之后,我尝试使用以下命令转储远程数据库。

我得到例外:

我应该在图像中添加一些库吗?

0 投票
1 回答
8788 浏览

apache-kafka - KAFKA:连接到节点的身份验证失败,原因是:由于使用 SASL 机制 SCRAM-SHA-256 的凭据无效,身份验证失败

一段时间以来,我一直在尝试使用 SASL_PLAINTEXT SCRAM-SHA-256 向我的 Kafka Brokers 添加 SASL 身份验证,但没有任何成功。我在 Kafka 的日志文件中不断收到以下错误。

错误 [Controller id=0, targetBrokerId=0] 连接到节点 0 的身份验证失败,原因是:由于 SASL 机制 SCRAM-SHA-256 (org.apache.kafka.clients.NetworkClient) 的凭据无效,身份验证失败。

但是我一直在关注 SCRAM Config 上的 Kafka 文档,并没有成功实现这一目标。

我使用 kafka-configs.sh 在 Zookeeper 上注册了一个管理员用户,如下所示:

这是我配置 SCRAM-SHA-256 的 server.properties 的一部分。

0 投票
0 回答
94 浏览

c# - 如何使用 C# 和 SslStream 类打开与 TLS 通道绑定的连接?

我正在尝试在我的 XMPP 库中实现 SCRAM-SHA-1-PLUS,但我陷入了让通道绑定工作的问题。我的 SslStream 的 TransportContext 中有一个 ChannelBinding 对象,但该值不是服务器所期望的。有没有不同的方法或者.NET Core 没有实现 tls-unique?

编辑:

有问题的代码文件可以在我下面的评论中找到。

0 投票
1 回答
12923 浏览

postgresql - 如何在 Debian 的 Postgres 10 中使用 scram-sha-256?获取“致命:密码验证失败”

我编辑pg_hba.conf

并添加了这一行:

并将所有更改md5为该scram-sha-256文件中的所有内容。

作为postgres用户,我创建了一个具有超级用户权限的新用户:

然后我重新启动了 Postgres:

并尝试使用 pgAdmin4 登录,我在数据库的 Connection 属性下更改了用户名。但这既不是psql -U username testdb < ./testdb.sql我得到的工作,也不是:

致命:用户“用户名”的密码验证失败

那么如何让 Postgres 在我的 Debian9/KDE 机器上使用 scram-sha-256 呢?当我把所有的东西都留md5pg_hba.conf原样时,它更早地起作用了。