赵卫国
2019-04-29
4174浏览量
安全级别很高 -> 提供芯片级安全存储方案(ID²)及设备秘钥安全管理机制,防止设备密钥被破解
安全级别高 -> 一机一密,适合有能力批量预分配ID密钥烧入到每个芯片的设备
安全级别普通 -> 一型一密,认证时动态获取设备证书,适合批量生产时无法将设备证书烧入每个设备
安全级别高 -> 支持TLS(MQTT\HTTP)、DTLS(CoAP)数据传输通道,保证数据的机密性和完整性
安全级别普通 -> 支持TCP(MQTT)、UDP(CoAP)上自定义数据对称加密通道
支持设备权限管理机制,保障设备与云端安全通信
支持设备级别的通信资源(Topic等)隔离,防止设备越权等问题
1. 身份认证:
主要使用使用一机一密或一型一密
工厂支持逐一烧录的,最好使用一机一密,确保安全性
工厂不支持逐一烧录的,使用一型一密(最好把此批次的设备唯一标识记录下来方便有问题时剔除伪造设备)
2. 通信安全:
支持TLS/DTLS的设备,使用TLS/DTLS相关的加密传输[MQTT(TLS)或CoaP(DTLS)来保证通信安全]
不支持TLS/DTLS的设备,使用对称加密的方式
1. 有些设备对流量很敏感,尽可能减少数据通信量
2. 之前设备已经完成二进制数据编码,不想修改相关代码
// 此函数是把json字串转化为二进制
function protocolToRawData(jsonObj) {
return rawdata;
}
// 此函数是把二进制串转化为json
function rawDataToProtocol(rawData) {
return jsonObj;
}
一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。
属性支持 GET 和 SET 请求方式。应用系统可发起对属性的读取和设置请求。
设备 => 上报属性
云端 => 设置属性
设备可被外部调用的能力或方法,可设置输入参数和输出参数。
相比于属性,服务可通过一条指令实现更复杂的业务逻辑,如执行某项特定的任务。
云端 => 调用服务
设备运行时的事件。
事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。如:
某项任务完成的信息,或者设备发生故障或告警时的温度等,事件可以被订阅和推送。
设备 => 上报事件
开关状态: islock, bool, true:打开, false:关闭
开门通知: DoorOpen, 事件类型:信息
故障上报: DoorError, 事件类型:报警
获取指纹列表: GetFingerprint
输入: 无
输出: 1.指纹id 2.指纹昵称 3.指纹权限
删除指纹: DelFingerprint
输入: 指纹id
输出: 无
添加指纹: AddFingerprint
输入: 指纹权限
输出: 无
场景1:网络不稳定,设备频繁上下线
场景2:多程序同时请求获取设备状态
场景3:设备掉线
1. app通过阿里iot平台接口修改:
修改desired数据,并反馈给设备
用于记录人工的操作
2. 设备上报信息修改:
修改reported数据
用于记录设备执行的操作,反应设备当前状态
{
"state": {
"desired": { % 设备的预期状态,一般是app写
"color": "RED"
},
"reported": { % 设备的报告状态,设备写
"color": "GREEN"
}
},
"metadata": {
"desired": {
"color": {
"timestamp": 1469564492
}
},
"reported": {
"color": {
"timestamp": 1469564492
}
}
},
"timestamp": 1469564492,
"version": 1
}
1.触发条件
2.过滤条件
3.执行动作
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
云安全开发者的大本营