对于物联网设备(IOT)设备的身份认证,有什么好的办法吗?

比如,一些人脸识别设备,用来每天上下班打卡。
服务端的api我们来开发。然后将api提供给设备端系统开发人员用来对接。

问题来了:

在设备只有SN的情况下,怎么对设备进行身份进行注册授权,或者说身份认证呢?

换个方式说,假如我们只用三台设备。这三台设备是允许向我们后台发送请求的。那么怎么防止未经我们认证的第四台设备给我们的api发送请求?

这个身份认证流程应该怎么设计呢?

一些问题

假如用SN码来判断设备,如果别人知道我们已经绑定的设备的SN码。那么就可以用已经绑定的SN来一直发送请求了。
因为我们只提供api。我们有设计认证流程的权力。但是客户端开发不由我们。

乌鸦嘴新手社区 wyz.xyz 为技术新手提供服务
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

在设备只有 SN 码的情况下,可以通过以下方法来对设备进行身份认证:

  1. 在服务端建立一个设备注册表,将所有已注册的设备的 SN 码存储在表中。
  2. 当设备端连接服务器时,首先需要向服务器发送 SN 码。
  3. 服务器收到 SN 码后,会在设备注册表中查找该 SN 码是否存在。
  4. 如果 SN 码存在,说明该设备已经注册,服务器会给予访问授权。如果 SN 码不存在,说明该设备未注册,服务器会拒绝访问。

这种方法的优点是实现简单,不需要用户名/密码或证书。缺点是如果设备的 SN 码被拦截或破解,有可能被恶意用户模拟。

可以采取以下措施来保证安全性:

  1. 在设备端使用密码进行加密,在发送 SN 码时需要提供密码。这样,即使设备的 SN 码被拦截,也无法模拟请求。
  2. 在服务端进行防护,如限制单个设备的请求频率,或对来自同一 IP 地址的大量请求进行限制等。这样,即使恶意用户拦截了设备的 SN 码,也无法频繁发送请求。
  3. 在服务端设置安全机制,例如使用 TLS/SSL 协议进行数据加密,或使用 OAuth 认证等。这样,即使恶意用户拦截了设备的 SN 码,也无法破解数据加密。
1年前 评论
shebaoting (楼主) 1年前
讨论数量: 12
cnguu

参考智能门锁,需要植入安全芯片,才能保证身份认证的安全

1年前 评论
jiangjun

签名,服务端维护一个sn和秘钥的表,设备用秘钥签名,并传给服务器。服务器验证这个签名

1年前 评论

每台机器要有一个唯一的编号

1年前 评论

设备执行命令前需要从服务端获取执行秘钥才能执行

1年前 评论

签名,验签的方式

1年前 评论
orange1994

证书签名?

1年前 评论
sanders

授权过程发个令牌下去,然后就是用令牌、时间、数据和随机值生成签名了,但是还得想办法有人可以避免挖到这个令牌,所以令牌传输过程还得做加解密。

1年前 评论

设备的SN码或者mac地址当做用户,首先进行登录认证返回认证令牌,可以用passport

1年前 评论

接口加密,sn做唯一标识。先解密。解密完可以校验设备是不是授权的设备。如果不是,就可以禁止访问了

1年前 评论

在设备只有 SN 码的情况下,可以通过以下方法来对设备进行身份认证:

  1. 在服务端建立一个设备注册表,将所有已注册的设备的 SN 码存储在表中。
  2. 当设备端连接服务器时,首先需要向服务器发送 SN 码。
  3. 服务器收到 SN 码后,会在设备注册表中查找该 SN 码是否存在。
  4. 如果 SN 码存在,说明该设备已经注册,服务器会给予访问授权。如果 SN 码不存在,说明该设备未注册,服务器会拒绝访问。

这种方法的优点是实现简单,不需要用户名/密码或证书。缺点是如果设备的 SN 码被拦截或破解,有可能被恶意用户模拟。

可以采取以下措施来保证安全性:

  1. 在设备端使用密码进行加密,在发送 SN 码时需要提供密码。这样,即使设备的 SN 码被拦截,也无法模拟请求。
  2. 在服务端进行防护,如限制单个设备的请求频率,或对来自同一 IP 地址的大量请求进行限制等。这样,即使恶意用户拦截了设备的 SN 码,也无法频繁发送请求。
  3. 在服务端设置安全机制,例如使用 TLS/SSL 协议进行数据加密,或使用 OAuth 认证等。这样,即使恶意用户拦截了设备的 SN 码,也无法破解数据加密。
1年前 评论
shebaoting (楼主) 1年前

用网关ip简单的实现一下,也能屏蔽好大一部分。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!