ESP8266云端数据加密保护

启用mosquitto上加密

要在mosquitto上启用加密,您首先需要拥有证书。 您可以从发行证书的公司购买它们,也可以将它们自己生成为自签名证书。

安装OpenSSL包

首先,确认您已安装openssl软件包,并且它具有较新的版本(1.0.2g),如以下屏幕截图所示:

如果您尚未安装openssl,则需要先使用以下命令进行安装:

生成证书

首先转到/etc/mosquitto/certs并发出以下命令:

然后,将邀请您填写一些有关证书所有者的详细信息,如以下屏幕截图所示,例如居住国,州,公司,城市,电子邮件地址,最重要的是完全合格的域名 (FQDN)。 如果您没有域名,则必须是您的服务器域或服务器IP地址:

当询问密码短语时,您需要输入一个超过四个字符的密码。 不用担心,在下一步中,我们将从证书中将其删除。

前面命令的结果应该是**/etc/mosquitto/certs**目录中的两个文件:

以下命令删除先前的密码并生成一个新文件:

此命令的输入文件是ca.crt,它将生成一个文件名newca.pem,其中删除了密码短语。 我们可以在以下屏幕截图中看到这一点:

最后,您应该在/ etc / mosquitto / certs中拥有三个文件:

要配置mosquitto,您需要编辑**/etc/mosquitto/**中的配置文件mosquitto.conf。 文件的新内容应为:

使用以下命令重新启动mosquitto服务以从新配置开始:

现在,可以通过查看/var/log/mosquitto/mosquitto.log来检查mosquitto是否已正确启动和mosquitto.conf中有没有错误:

如果没有错误,则可以继续将客户端连接到新的安全端口。

ESP8266和MQTT代理之间安全

首先创建一个帐户,然后确认您的电子邮件地址。 之后,您可以登录并获取您的私人已分配主题。 它是一个八个字符的代码,例如c5c05211,并且此代码需要在所有主题之前,如下所示:

无论您发布还是订阅。 以下代码连接到Wi-Fi,然后通过端口8883建立到云MQTT的安全连接。发送到代理的每条消息都像回送一样被接收。

稍后,每次接收到一条消息时,将使用GPIO 12来使LED闪烁,并且每次接收到内容为1的消息时,GPIO 13将变为高电平;如果消息有效负载为0,则将其变为低电平:

在设置功能中,我们将ESP8266连接到提供的Wi-Fi网络,并将要使用的MQTT服务器和端口写入客户端对象。 在先前的示例中,使用了端口1883。 代理正在侦听端口8883,以便提供与8883端口的安全连接:

脱机工作

如果您的数据更加敏感,并且您不想通过Wi-Fi网络共享数据,或者您没有Wi-Fi连接,那么一种解决方案是将数据存储在SD卡上。

硬件需求:

确定SD卡尺寸Sketch代码:

SD卡保存数据

假设现在您需要将数据保存到SD卡,这些数据以后可以在PC中离线使用。

比如,ESP8266构建恒温控制器那样连接DHT22,并读取其值并将其记录在microSD卡上的文件中。

检查PC上的microSD卡是否显示创建的文件:

打开文件以查看记录的数据:

如果您的数据敏感,则可以加密数据,然后将其写入SD卡。 如果SD卡丢失,则任何人都无法看到您的数据。

结语

现在,您可以将加密的MQTT消息传输到MQTT代理,再从那里传输到另一个ESP8266或数据库或服务器。 这样做,没有人可以拦截和更改您的数据,因此您的房屋或数据是安全的。 如今,物联网中的安全性非常重要,因为即使有用户和密码,许多设备也不安全。 如果您需要脱机工作,那么现在您已经拥有一个完整的microSD卡,可以从其中写入或读取数据。 使用电池供电的ESP8266和深度睡眠功能,可以将数据记录到microSD卡中保持数月。 对它们进行加密,以确保您是唯一有权访问它们的人。

详情参阅 - 亚图跨际

你可能感兴趣的:(物联网,esp8266,数据加密)