AliOS Things 安全测试规范
更新时间:2018-11-15 17:37:18
1.TLS
1.1 设备数据通信使用TLS
用例编号:
用例名称:设备数据通信使用TLS
测试目的:验证设备数据通信中是否使用TLS
测试属性:安全功能
测试拓扑结构:设备与PC处于同一个无线/有线网络环境
测试预置条件:
1.设备联网
2.PC安装WireShark软件
测试步骤:
1.打开WireShark软件,并开始监听局域网的数据包;
2.设备上电,并与云端通信;
预期结果:
1.WireShark中能检测到设备端与云端TLS握手过程;
2.设备端与云端的通信数据包均为TLS数据包;
备注:
2.ID2
2.1 设备硬件安全能力
用例编号:
用例名称:设备硬件安全能力
测试目的:验证设备是否具有硬件安全能力
测试属性:安全功能
测试步骤:
1.检查设备的datasheet;
预期结果:
1.设备带有SE或者带有TrustZone或者使用Secure MCU或者无硬件安全能力
2.2 使用ID2完成设备认证(挑战字方式)
用例编号:
用例名称:使用ID2完成设备认证(挑战字方式)
测试目的:验证设备能正常使用ID2完成设备认证(挑战字方式)
测试属性:安全功能
测试拓扑结构:
1.设备通过串口连接PC;
2.设备与PC处于同一个无线/有线网络环境
测试预置条件:
1.PC端运行SP测试程序,可以响应设备端获取挑战字请求,从ID2服务端获取挑战字,并返回给设备端
2.从设备端获取ID2和认证码,发送给ID2服务端完成设备认证;
3.设备上电开机后空闲的RAM空间 > 1024 Bytes
测试步骤:
1.设备端调用tfs_get_ID2获取ID2;
2.设备端调用获取挑战字程序获取挑战字C;
3.设备端使用挑战字C调用tfs_id2_get_challenge_auth_code获取设备的认证码;
4.设备端将ID2和认证码发送给SP测试程序,SP测试程序ID2和认证码发送给ID2服务器;
预期结果:
1.获取ID2成功;
2.获取挑战字C成功;
3.获取设备认证码成功;
4.SP认证设备程序显示认证成功;
5.系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
2.3 使用ID2完成设备认证(时间戳方式)
用例编号:
用例名称:使用ID2完成设备认证(时间戳方式)
测试目的:验证设备能正常使用ID2完成设备认证(时间戳方式)
测试属性:安全功能
测试拓扑结构:
1.设备通过串口连接PC;
2.设备与PC处于同一个无线/有线网络环境;
测试预置条件:
1.PC端运行SP测试程序,可以从设备端获取ID2和认证码,发送给ID2服务端完成设备认证;
2.设备上电开机后空闲的RAM空间 > 1024 Bytes
测试步骤:
1.设备端调用tfs_get_ID2获取ID2;
2.设备端获取当前时间戳T;
3.设备端使用时间戳T调用tfs_id2_get_timestamp_auth_code获取设备的认证码;
4.设备端将ID2和认证码发送给SP测试程序,SP测试程序ID2和认证码发送给ID2服务器;
预期结果:
1.获取ID2成功;
2.获取时间戳T成功;
3.获取设备认证码成功;
4.SP认证设备程序显示认证成功;
5.系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
2.4 使用ID2从服务端获取关键数据(挑战字方式)
用例编号:
用例名称:使用ID2从服务端获取关键数据(挑战字方式)
测试目的:验证设备能正常使用ID2从服务端获取关键数据(挑战字方式)
测试属性:安全功能
测试拓扑结构:
1.设备通过串口连接PC;
2.设备与PC处于同一个无线/有线网络环境;
测试预置条件:
1.PC端运行SP测试程序,可以响应设备端获取挑战字请求,从ID2服务端获取挑战字,并返回给设备端;
2.生成关键数据,从设备端获取ID2和认证码,发送给ID2服务端获取加密后的关键数据并发送给设备端;
3.设备上电开机后空闲的RAM空间 > 1024 Bytes
测试步骤:
1.设备端调用tfs_get_ID2获取ID2;
2.设备端调用获取挑战字程序获取挑战字C;
3.设备端使用挑战字C调用tfs_id2_get_challenge_auth_code获取设备的认证码;
4.设备端将ID2和认证码发送给SP测试程序,SP测试程序生成关键数据,并将ID2、认证码及关键数据发送给ID2服务器获取加密后的关键数据;
5.设备端从SP测试程序获取关键数据及加密后的关键数据;
6.设备端调用tfs_id2_decrypt获取关键数据;
预期结果:
1.获取ID2成功;
2.获取挑战字C成功;
3.获取设备认证码成功;
4.解密后的关键数据与从SP测试程序获取的关键数据相同;
5.系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
2.5 使用ID2从服务端获取关键数据(时间戳方式)
用例编号:
用例名称:使用ID2从服务端获取关键数据(时间戳方式)
测试目的:验证设备能正常使用ID2从服务端获取关键数据(时间戳方式)
测试属性:安全功能
测试拓扑结构:
1.设备通过串口连接PC;
2.设备与PC处于同一个无线/有线网络环境;
测试预置条件:
1.PC端运行SP测试程序,可以生成关键数据,从设备端获取ID2和认证码,发送给ID2服务端获取加密后的关键数据并发送给设备端;
2.设备上电开机后空闲的RAM空间 > 1024 Bytes
测试步骤:
1.设备端调用tfs_get_ID2获取ID2;
2.设备端获取当前时间戳T;
3.设备端使用时间戳T调用tfs_id2_get_timestamp_auth_code获取设备的认证码;
4.设备端将ID2和认证码发送给SP测试程序,SP测试程序生成关键数据,并将ID2、认证码及关键数据发送给ID2服务器获取加密后的关键数据;
5.设备端从SP测试程序获取关键数据及加密后的关键数据;
6.设备端调用tfs_id2_decrypt获取关键数据;
预期结果:
1.获取ID2成功;
2.获取时间戳T成功;
3.获取设备认证码成功;
4.解密后的关键数据与从SP测试程序获取的关键数据相同;
5.系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常
3.秘钥安全存储
3.1 设备应用key安全存储及安全使用
用例编号:
用例名称:设备应用key安全存储及安全使用
测试目的:验证设备是否能安全存储应用key并安全使用
测试属性:安全功能
测试拓扑结构:
1.设备通过串口连接PC
测试步骤:
1.生成一个随机数K和名称A;
2.调用KM接口km_sec_store存储A,K;
3.生成随机字符串S;
4.使用K签名S得到Sign1;
5.使用A调用KM签名接口km_sign签名S得到Sign2;
预期结果:
1.获取Sign2成功;
2.Sign1与Sign2相同;
3.系统无crash,fail,error,assert,abort,内存泄漏,阻塞等异常;
4.安全启动
4.1 设备安全启动
用例编号:
用例名称:设备安全启动
测试目的:验证设备是否具有安全启动能力
测试属性:安全功能
测试拓扑结构:
1.设备通过串口连接PC
测试预置条件:
1.制作固件BIN;
2.使用正确的私钥签名生成固件BIN1;
3.使用错误的私钥签名生成固件BIN2;
测试步骤:
1.烧录固件BIN1到设备中,并重启设备;
2.烧录固件BIN2到设备中,并重启设备;
预期结果:
1.烧录BIN1到设备中,设备重启成功;
2.烧录BIN2到设备中,设备重启失败;
备注: