名称

zmq_curve - 安全的身份验证和保密性

概要

CURVE机制定义了一种用于客户端和服务器之间通信的安全身份验证和保密性机制。CURVE旨在用于公共网络。CURVE机制由本文档定义:https://rfc.zeromq.cn/spec:25

客户端和服务器角色

使用CURVE的套接字在任何时候都可以是客户端或服务器,但不能两者都是。角色与绑定/连接的方向无关。

套接字可以通过设置新选项在任何时候改变角色。该角色会影响所有后续的zmq_connect和zmq_bind调用。

要成为CURVE服务器,应用程序需要在套接字上设置ZMQ_CURVE_SERVER选项,然后设置ZMQ_CURVE_SECRETKEY选项,为套接字提供其长期私钥。应用程序不需要为套接字提供其长期公钥,公钥仅由客户端使用。

要成为CURVE客户端,应用程序需要设置ZMQ_CURVE_SERVERKEY选项,提供其接下来打算连接或接受连接的服务器的长期公钥。然后,应用程序设置ZMQ_CURVE_PUBLICKEY和ZMQ_CURVE_SECRETKEY选项,提供其客户端的长期密钥对。

如果服务器进行身份验证,将基于客户端的长期公钥。

密钥编码

密钥在源代码中的标准表示形式是32字节的256进制(二进制)数据,或使用由https://rfc.zeromq.cn/spec:32定义的Z85算法编码的40个字符的85进制数据。

Z85算法旨在生成可打印的密钥字符串,用于配置文件、命令行和代码。在https://github.com/zeromq/rfc/tree/master/src有一个C语言的参考实现。

测试密钥值

对于测试用例,客户端应使用此长期密钥对(指定为十六进制和Z85格式)

public:
    BB88471D65E2659B30C55A5321CEBB5AAB2B70A398645C26DCA2B2FCB43FC518
    Yne@$w-vo<fVvi]a<NY6T1ed:M$fCG*[IaLV{hID

secret:
    7BB864B489AFA3671FBE69101F94B38972F24816DFB01B51656B3FEC8DFD0888
    D:)Q[IlAW!ahhC2ac:9*A}h:p?([4%wOTJ%JR%cs

服务器应使用此长期密钥对(指定为十六进制和Z85格式)

public:
    54FCBA24E93249969316FB617C872BB0C1D1FF14800427C594CBFACF1BC2D652
    rq:rM>}U?@Lns47E1%kR.o@n%FcmmsL/@{H8]yf7

secret:
    8E0BDD697628B91D8F245587EE95C5B04D48963F79259877B49CD9063AEAD3B7
    JTKVSB%%)wK0E.X)V>+}o?pNmC{O&4W4b!Ni{Lh6

另请参阅

作者

本页面由0MQ社区编写。要进行修改,请阅读位于https://zeromq.cn/how-to-contribute/的0MQ贡献政策。