# security_deviceauth
**Repository Path**: jameshw/security_deviceauth
## Basic Information
- **Project Name**: security_deviceauth
- **Description**: Security authentication capabilities for device interconnection | 提供设备互连安全认证能力
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 235
- **Created**: 2021-03-23
- **Last Updated**: 2021-07-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 简介
- **设备互联安全性**
为实现用户数据在多个终端设备间的安全流转,设备认证组件提供将用户多个设备安全连接起来的能力,这种能力体现在设备间信任关系建立和设备通信时信任关系验证两个阶段。本文档主要描述IoT设备可信互联场景中主控设备与IoT设备建立、验证信任关系的实现。
- **IoT设备互联安全**
设备认证提供了IoT主控设备(手机、平板等)与IoT配件设备(如智能家居、智能穿戴等)间建立并验证帐号无关点对点信任关系的能力。具备这种信任关系的设备在通信连接时可搭建安全的连接通道,实现用户数据的端到端加密传输。
- **IoT主控设备的身份标识**
IoT主控设备在与配件设备建立点对点信任关系时,会生成椭圆曲线公私钥对作为本设备的身份标识;IoT主控设备上可能存在多种IoT设备互联业务,设备认证组件将针对不同的IoT设备互联业务为主控设备生成不同的身份标识,形成不同业务间的隔离。
- **IoT配件设备的身份标识**
IoT配件设备同样会在与主控设备建立点对点信任关系时,生成椭圆曲线公私钥对作为本设备的身份标识;其中私钥不出IoT设备,设备每次恢复出厂设置时,会重置该公私钥对。
上述的身份标识用于IoT主控设备与IoT配件设备间的安全通信,下面将描述基于身份标识的帐号无关点对点信任关系建立与验证的实现。
- **设备间点对点信任关系的建立与验证**
IoT主控设备和IoT配件建立帐号无关点对点信任关系的过程,实际上是相互交换身份标识的过程。
在信任关系建立过程中,用户需要在主控设备上输入配件设备提供的PIN码(或其他形式的共享信息)。典型的PIN码呈现形式为:对于有屏幕的设备,该PIN码动态生成;对于没有屏幕的设备,该PIN码由设备生产厂家预置并打印在设备上;PIN码的格式,可以是一个用户可读的6位数字,也可以是一个二维码。在用户完成PIN码输入后,主控设备和配件设备将调用设备认证服务基于PAKE协议完成认证会话密钥协商,并基于该会话密钥,安全的交换各自身份公钥。
当建立过信任关系的主控设备与配件设备间进行通信时,双方将相互交换身份公钥,并通过检查本地是否存储对端身份信息的方式确认对端与本设备的信任关系。进一步地,基于双方的身份公私钥对,通信对端设备可以基于STS协议进行密钥协商并建立安全通信通道,支撑设备间通信数据的端到端加密传输。
# 目录
```
base/security
├── deviceauth
│ ├── frameworks
│ │ └── deviceauth_lite 设备授权实现
│ └── interfaces
│ └── innerkits
│ └── deviceauth_lite 设备授权接口
```
# 相关仓
deviceauth