Docs Security - Shaofa/AliOS-Things-Certification-Manual GitHub Wiki

AliOS Things 安全测试规范

TLS

设备数据通信使用TLS

测试用例编号 AOS-5-1
测试用例 设备数据通信使用TLS
测试目的 验证设备数据通信中是否使用TLS
测试属性 必选 | P0 | 安全功能用例
测试设备 1.设备,2.串口线,3.PC
测试拓扑结构 设备与PC处于同一个无线/有线网络环境
测试预置条件 -设备联网
-PC安装WireShark软件
测试步骤 -打开WireShark软件,并开始监听局域网的数据包;
-设备上电,并与云端通信;
预期结果 -WireShark中能检测到设备端与云端TLS握手过程;
-设备端与云端的通信数据包均为TLS数据包;
备注

ID2

设备硬件安全能力

测试用例编号 AOS-5-2
测试用例 设备硬件安全能力
测试目的 验证设备是否具有硬件安全能力
测试属性 必选 | P0 | 安全功能用例
测试设备 1.设备
测试步骤 -检查设备的datasheet;
预期结果 -设备带有SE或者带有TrustZone或者使用Secure MCU或者无硬件安全能力
备注

使用ID2完成设备认证(挑战字方式)

测试用例编号 AOS-5-3
测试用例 使用ID2完成设备认证(挑战字方式)
测试目的 验证设备能正常使用ID2完成设备认证(挑战字方式)
测试属性 必选 | P0 | 安全功能用例
测试设备 1.设备,2.串口线,3.PC
测试拓扑结构 -设备通过串口连接PC;
-设备与PC处于同一个无线/有线网络环境
测试预置条件 -PC端运行SP测试程序,可以响应设备端获取挑战字请求,从ID2服务端获取挑战字,并返回给设备端
-从设备端获取ID2和认证码,发送给ID2服务端完成设备认证;
-设备上电开机后空闲的RAM空间 > 1024 Bytes
测试步骤 -设备端调用tfs_get_ID2获取ID2;
-设备端调用获取挑战字程序获取挑战字C;
-设备端使用挑战字C调用tfs_id2_get_challenge_auth_code获取设备的认证码;
-设备端将ID2和认证码发送给SP测试程序,SP测试程序ID2和认证码发送给ID2服务器;
预期结果 -获取ID2成功;
-获取挑战字C成功;
-获取设备认证码成功;
-SP认证设备程序显示认证成功;
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

使用ID2完成设备认证(时间戳方式)

测试用例编号 AOS-5-4
测试用例 使用ID2完成设备认证(时间戳方式)
测试目的 验证设备能正常使用ID2完成设备认证(时间戳方式)
测试属性 必选 | P0 | 安全功能用例
测试设备 1.设备,2.串口线,3.PC
测试拓扑结构 -设备通过串口连接PC;
-设备与PC处于同一个无线/有线网络环境;
测试预置条件 -PC端运行SP测试程序,可以从设备端获取ID2和认证码,发送给ID2服务端完成设备认证;
-设备上电开机后空闲的RAM空间 > 1024 Bytes
测试步骤 -设备端调用tfs_get_ID2获取ID2;
-设备端获取当前时间戳T;
-设备端使用时间戳T调用tfs_id2_get_timestamp_auth_code获取设备的认证码;
-设备端将ID2和认证码发送给SP测试程序,SP测试程序ID2和认证码发送给ID2服务器;
预期结果 -获取ID2成功;
-获取时间戳T成功;
-获取设备认证码成功;
-SP认证设备程序显示认证成功;
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

使用ID2从服务端获取关键数据(挑战字方式)

测试用例编号 AOS-5-5
测试用例 使用ID2从服务端获取关键数据(挑战字方式)
测试目的 验证设备能正常使用ID2从服务端获取关键数据(挑战字方式)
测试属性 必选 | P0 | 安全功能用例
测试设备 1.设备,2.串口线,3.PC
测试拓扑结构 -设备通过串口连接PC;
-设备与PC处于同一个无线/有线网络环境;
测试预置条件 -PC端运行SP测试程序,可以响应设备端获取挑战字请求,从ID2服务端获取挑战字,并返回给设备端;
-生成关键数据,从设备端获取ID2和认证码,发送给ID2服务端获取加密后的关键数据并发送给设备端;
-设备上电开机后空闲的RAM空间 > 1024 Bytes
测试步骤 -设备端调用tfs_get_ID2获取ID2;
-设备端调用获取挑战字程序获取挑战字C;
-设备端使用挑战字C调用tfs_id2_get_challenge_auth_code获取设备的认证码;
-设备端将ID2和认证码发送给SP测试程序,SP测试程序生成关键数据,并将ID2、认证码及关键数据发送给ID2服务器获取加密后的关键数据;
-设备端从SP测试程序获取关键数据及加密后的关键数据;
-设备端调用tfs_id2_decrypt获取关键数据;
预期结果 -获取ID2成功;
-获取挑战字C成功;
-获取设备认证码成功;
-解密后的关键数据与从SP测试程序获取的关键数据相同;
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

使用ID2从服务端获取关键数据(时间戳方式)

测试用例编号 AOS-5-6
测试用例 使用ID2从服务端获取关键数据(时间戳方式)
测试目的 验证设备能正常使用ID2从服务端获取关键数据(时间戳方式)
测试属性 必选 | P0 | 安全功能用例
测试设备 1.设备,2.串口线,3.PC
测试拓扑结构 -设备通过串口连接PC;
-设备与PC处于同一个无线/有线网络环境;
测试预置条件 -PC端运行SP测试程序,可以生成关键数据,从设备端获取ID2和认证码,发送给ID2服务端获取加密后的关键数据并发送给设备端;
-设备上电开机后空闲的RAM空间 > 1024 Bytes
测试步骤 -设备端调用tfs_get_ID2获取ID2;
-设备端获取当前时间戳T;
-设备端使用时间戳T调用tfs_id2_get_timestamp_auth_code获取设备的认证码;
-设备端将ID2和认证码发送给SP测试程序,SP测试程序生成关键数据,并将ID2、认证码及关键数据发送给ID2服务器获取加密后的关键数据;
-设备端从SP测试程序获取关键数据及加密后的关键数据;
-设备端调用tfs_id2_decrypt获取关键数据;
预期结果 -获取ID2成功;
-获取时间戳T成功;
-获取设备认证码成功;
-解密后的关键数据与从SP测试程序获取的关键数据相同;
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
备注

秘钥安全存储

设备应用key安全存储及安全使用

测试用例编号 AOS-5-7
测试用例 设备应用key安全存储及安全使用
测试目的 验证设备是否能安全存储应用key并安全使用
测试属性 必选 | P0 | 安全功能用例
测试设备 1.设备,2.串口线,3.PC
测试拓扑结构 设备通过串口连接PC
测试预置条件 NA
测试步骤 -生成一个随机数K和名称A;
-调用KM接口km_sec_store存储A,K;
-生成随机字符串S;
-使用K签名S得到Sign1;
-使用A调用KM签名接口km_sign签名S得到Sign2;
预期结果 -获取Sign2成功;
-Sign1与Sign2相同;
-系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常;
备注

安全启动

设备安全启动

测试用例编号 AOS-5-8
测试用例 设备安全启动
测试目的 验证设备是否具有安全启动能力
测试属性 可选 | P0 | 安全功能用例
测试设备 1.设备,2.串口线,3.PC
测试拓扑结构 设备通过串口连接PC
测试预置条件 -制作固件BIN;
-使用正确的私钥签名生成固件BIN1;
-使用错误的私钥签名生成固件BIN2;
测试步骤 -烧录固件BIN1到设备中,并重启设备;
-烧录固件BIN2到设备中,并重启设备;
预期结果 -烧录BIN1到设备中,设备重启成功;
-烧录BIN2到设备中,设备重启失败;
备注
⚠️ **GitHub.com Fallback** ⚠️