2015-12-02 179 views
0

要求通过HTTPS进行M2M通信 - 如何进行身份验证?

我目前正在为机器销售商开发一个PHP门户。他的机器能够通过带有LAN端口的集成SBC通过互联网进行通信。购买机器的消费者可以在登录到机器销售商门户后在线配置它。

在他们在线配置之后,他们可以通过HMI(触摸屏在机器本身)将配置文件下载到机器上。配置文件包含有价值的私人信息。 HMI不是基于浏览器的。这是一个二进制应用程序,例如,具有“加载配置”按钮。其余的必须在背景中的bash/php-scripts中完​​成。

验证解决方案?

我处于很早的受孕状态,但我想知道一些过程。我从来没有机器需要访问我的服务,只有人类。实际上做到这一点的方法是什么?

我有三种方法:在SBC的OS在于含有像8asd7d7d一个序列的文件:

1. “API密钥”

上网方式。当我收到一个GET-对portal.company.com/getConfig/8asd7d7d的请求时,我知道它来自哪台机器,并且它可以接收此配置。

缺点:买方可以访问SBC文件系统。他可能会意外破坏文件。他可以找出生成方案并从其他购买者处下载配置文件。

2.生成一次性UUID-URL

方式:消费者在网上建立自己的配置。之后,他会显示一个一次性URL,如portal.company.com/getConfig/d8ac2292ea1fec3fe5c65e6ef573,他可以在HMI中输入并加载文件。

缺点:消费者必须在HMI的显示器中输入一个长URL。

3.模拟人认证处理

方式:本机发送一个有效后请求portal.company.com/login与其人类所有者的登录数据。它会得到一个会话cookie(甚至可能在非纯PHP脚本的非浏览器环境中!),并且门户逻辑知道哪些URL可访问,哪些不可访问(例如对于人类访问者)。

其他/更好的想法?

我倾向于使用解决方案2,因为它相对容易实现,希望能够保证安全(假设sha512字符串为URL参数)。你有更好的建议吗?注意,相反方向是不可能的,门户网站不能主动将数据推送到机器(因为它没有固定的IP,没有网络服务器,...)

回答

0

如果设备支持加密功能,PKI可以是用过的。使用设备公钥加密数据。只有知道私钥的设备才能解密配置文件。 PKI也支持认证。这里设备连接到请求客户端证书的登录入口,并且在客户端认证之后,配置文件被发送到在设备公钥中加密的设备。

缺点:每个设备都需要客户端证书。

+0

我正在积极使用和理解PKI(SSH,PGP),但使用证书进行身份验证对我来说是新的(不是作为消费者,而是作为开发人员)。你有关于这个话题的阅读建议吗? –

+0

检查此链接http://softwareengineering.stackexchange.com/questions/201119/web-authentication-using-pki-certs在这里回答 – ajzz

相关问题