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

时间:2015-12-02 16:07:31

标签: php authentication m2m

要求

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

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

身份验证解决方案?

我处于一个非常早期的受孕状态,但我对某些过程感到疑惑。我从来没有一台机器需要访问我的服务,只有人类。实际上这样做的方法是什么?

我有三种方法:

1。使用" API-Key"

进行访问

意思是:在SBC的操作系统中有一个包含8asd7d7d之类的序列的文件。当我收到GET - 请求portal.company.com/getConfig/8asd7d7d时,我知道它来自哪台机器,并且允许它接收此配置。

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

2。生成一次性UUID-URL

意味着:消费者在线创建他的配置。之后,他会显示一个像portal.company.com/getConfig/d8ac2292ea1fec3fe5c65e6ef573这样的一次性URL,他可以在HMI中输入并加载文件。

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

第3。模拟人工身份验证过程

表示:机器使用其所有者的登录数据向portal.company.com/login发送有效的后请求。它获得了一个会话cookie(甚至可以在非浏览器环境中使用,如纯PHP脚本?!),门户逻辑知道哪些URL可访问,哪些不可访问(如人类访问者)。

任何其他/更好的想法?

我倾向于使用解决方案2,因为它相对容易实现并且希望是安全的(让我们假装sha512-string作为URL参数)。你有什么更好的建议吗?请注意,反过来不可能,门户网站无法主动将数据推送到机器(因为它没有固定的IP,没有网络服务器,......)

1 个答案:

答案 0 :(得分:0)

如果设备支持加密功能,则可以使用PKI。使用设备公钥加密数据。只有知道私钥的设备才能解密配置文件。 PKI也支持身份验证。此处设备连接到请求客户端证书的登录门户,在客户端验证后,配置文件将发送到设备公钥加密的设备。

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