我真的是密码学的新手,我想用AES进行MQTT有效负载加密,我已经用PyCrypto库完成了,但是我仍然想知道如何在将AES密钥发送给用户之前进行加密,所以我选择了名为PyNacl的Python库可以通过ECC(curve25519)来做到这一点,但是我不知道如何在发布者和订阅者之间交换公钥,您有什么想法吗?

#1 楼

根据定义,公用密钥是公用的(不需要将其保密)。

因此没有理由不能通过http下载或作为已知信息的保留消息发布的推送提供公用密钥。 MQTT主题。

评论


感谢您的回答,如果我听懂了,我可以在一个单独的主题中交换公钥并使用代码,以便仅在收到公钥后发送消息,对吗?

–paulo huigo
18年8月6日15:43



作为保留的消息,密钥将在订阅主题后立即发送到设备

– hardillb
18年8月6日在15:44

请困在python代码中,在这种情况下,客户端A要向客户端B发送加密的数据,但是首先他必须接收客户端B的公钥,因此客户端A和B在同一时间是发布者和订阅者同一主题,客户端B将其公钥作为保留消息发送,然后B加密数据并将其发送给B,对我来说,当我想在paho mqtt python中实现它时,似乎有些困惑,您有示例吗?

–paulo huigo
18年8月7日在15:41