我目前正在从事家庭自动化项目。以下是我的设置。
ESP8266 WiFi模块将连接到各种传感器。一盏灯 Web服务器将在模块上运行。将会有一个Linode Cloud 部署运行某些NodeJS脚本和MongoDB数据库。该 移动应用程序(客户端)将向云发送请求 控制和监控各种传感器。我将保证连接 使用JSON Web Tokens在应用程序和云之间进行。我也愿意 尝试使用HTTPS来保护此连接。
我对如何保护云服务器和ESP8266模块之间的通信感到困惑。我做了很多研究。了解某些概念但无法获得清晰完整的图片。有人请指导我。谢谢。
答案 0 :(得分:1)
在所有应用之间的标头中使用令牌。 当你发送请求时,这看起来像这样:
request.post({
url: 'https://mycoolserver.com/',
headers: {
Authorization: 'lalalablablabla'
}
})
更新:就您发送请求而言,该方的服务器会检查您的令牌是否与他拥有的令牌相匹配。有很多安全技巧可以让你保持令牌安全,我建议这是一个非常基本的安全措施,但你可以在飞行途中轻松完成。稍后您可以提高安全级别。
答案 1 :(得分:1)
假设您在系统(客户端和服务器)中都有实时时钟
生成类似(((unixTime)/1000) + SomeNumbers) * ASmallNumber
的功能(unixTime)/1000 is unixTime in second
,SomeNumbers is a static number like 897645
,ASmallNumber is a small number like 7
此公式将生成一个取决于时间的数字。将此号码发送给接收方。在接收器中(具有相同的SomeNumbers
和ASmallNumber
值),解码数字并使用接收器unixTime检查unixTime
示例:if(unixTime - decodingUnixTime< 5&& unixTime - decodingUnixTime> 0)然后消息被信任