目录
1. 技术要求
1.1 硬件安全要求
车载信息交互系统所使用的芯片应满足以下要求:
a) 按照 2.1a)进行测试,调试接口应禁用或设置安全访问控制;
b) 按照 2.1 b)进行测试,不存在后门或隐蔽接口。
按照 2.1 c)进行测试,车载信息交互系统所使用的处理器、存储模块、通信IC等用于处理、存储 和传输个人敏感信息的关键芯片及安全芯片,应减少暴露管脚。
按照 2.1 d)进行测试,车载信息交互系统所使用的关键芯片之间应减少暴露的通信线路数量,例 如:使用多层电路板的车载信息交互系统可采用内层布线方式隐藏通信线路。
按照 2.1 e)进行测试,电路板及芯片不宜暴露用以标注端口和管脚功能的可读丝印
1.2 通信协议与接口安全要求
1.2.1 对外通信安全
通信连接安全
车载信息交互系统应实现对平台服务端或外部终端的身份认证。当身份认证成功后,车载信息交互系统与平台服务端或外部终端才能进行业务数据的通信交互。
通信传输安全
车载信息交互系统与平台服务端或外部终端间传输的数据内容应进行加密,宜使用国密算法。
通信终止响应安全
车载信息交互系统进行通信时,应满足以下要求:
a)数据内容校验失败时,应终止该响应操作;
b)发生身份鉴权失败时,应终止该响应操作。
远程通信协议安全
车载公有远程通信协议,应采用 TLS1.2 版本及以上或至少同等安全级别的安全通信协议。
短距离通信协议安全
1. 短距离通信口令应用安全
2. 车载蓝牙通信协议安全
3. 车载WLAN通信协议安全
1.2.2 内部通信安全
当车载信息交互系统通过CAN、车载以太网等类型总线与车内其他控制器节点进行数据交互时, 应使用安全机制确保车辆确保车辆控制指令等所传输重要数据的完整性和可用性。
1.2.3 通信接口安全
a)不应存在任何后门或隐蔽接口;
b)访问权限等需授权内容不应超出正常业务范围。
车外通信接口安全
车载信息交互系统应支持路由隔离,隔离执行控制车辆指令、收集 个人敏感信息等功能的核心业务平台的通信,隔离对内通信中非核心业务平台的内部通信以及对外通 信中非核心业务平台的外网通信等。
车内通信接口安全
车载信息交互系统应满足以下要求:
a)对合法指令设置白名单;
b)对总线控制指令来源进行校验。
1.3 操作系统安全要求
1.3.1 操作系统安全配置
车载信息交互系统在其操作系统安全配置方面,应满足以下要求:
a)禁止最高权限用户直接登录,且限制普通用户提权操作;
b)删除或禁用无用账号,并使用至少包括阿拉伯数字、大小写拉丁字母, 长度不少于8位的强复杂度口令;
c)具备访问控制机制控制用户、进程等主体对文件、数据库等客体进行 访问;
d)禁止不必要的服务,例如:FTP服务等,禁止非 授权的远程接入服务。
1.3.2 安全调用控制能力
在用户明示同意后,才能执行;
通信类功能受控机制:
- 拨打电话
- 三方通话
- 发送短信
- 发送彩信
- 发送邮件
- 移动通信网络连接
- WLAN网络连接
本地敏感功能受控机制:
- 定位功能
- 通话录音功能
- 人机交互功能
- 对用户数据的操作
1.3.3 操作系统安全启动
车载信息交互系统应满足以下要求:
a)操作系统的启动应始于一个无法被修改的信任根;
b)应在可信存储区域验证操作系统签名后,才能加载车载端操作系统, 防止加载被篡改的操作系统;
c) 在执行其他的安全启动代码前,应验证代码完整性
1.3.4 操作系统更新
车载信息交互系统应满足以下要求:
a)应具备系统镜像的防回退校验功能;
b) 当更新镜像安装失败时,应恢复到更新前的版本或者进入安全状态;
c)应具有验证更新镜像完整性和来源可靠的安全机制。
1.3.5 操作系统隔离
除必要的接口和数据,例如:拨打电话等功能和电话本和短信等数据,可共享外,预置功能平行的多操作系统之间不应进行通信。
1.3.6 操作系统安全管理
车载信息交互系统应满足以下要求:
a) 针对车机类操作系统,应对应用软件运行的实时环境进行监控,对异常 状况,例如:异常网络连接、内存占用突增等状况进行告警;
b) 针对车机类操作系统,应支持FTP、HTTP等服务,以及SU登录等操 作的审计功能;
c) 应具备重要事件,例如:关键配置变更、非系统的安全启动校验失败等 事件的日志记录功能,并若具有网联功能,应能按照策略上传至服务器;
d)应对日志文件进行安全存储;
e)应采取访问控制机制,对日志读取写入的权限进行管理;
f)应对开发者调试接口进行管控,禁止非授权访问;
g)不应存在由权威漏洞平台6个月前公布且未经处置的高危及以上的 安全漏洞;
h)宜具备识别、阻断应用软件以高敏感权限,例如:最高权限用户权限、涉 及非业务内控车行为的权限等运行的能力。
1.4 应用软件安全要求
1.4.1 应用软件基础安全
车载信息交互系统上的应用软件基础安全应满足以下要求:
a)从安全合规的来源下载和安装软件;
b)不存在由权威漏洞平台6个月前公布且未经处置的高危及以上的安 全漏洞;
c)不存在非授权收集或泄露个人敏感信息、非授权数据外传等恶意行为;
d)不以明文形式存储个人敏感信息;
e)具备会话安全保护机制,例如:使用随机生成会话ID等机制;
f)使用至少包括阿拉伯数字、大小写拉丁字母,长度不少于8位的强复杂 度口令或向用户提示风险;
g)符合密码学要求,不直接在代码中写入私钥; 使用已验证、安全的加密算法和参数;同一个密钥不复用于不同用途;
h)使用到的随机数符合GM/T0005—2012等随机数相关标准,保证由已 验证、安全的随机数生成器产生。
1.4.2 应用软件代码安全
车载信息交互系统上的应用软件代码安全应满足以下要求:
a)应用软件的开发者在使用第三方组件时应识别其涉及公开漏洞库中已 知的漏洞并安装补丁;
b) 对于非托管代码,应确保内存空间的安全分配、使用和释放;
c)应用软件安装包应采用代码签名认证机制;
d)发布后应禁用调试功能,并删除调试信息;
e) 在非调试场景或非调试模式下,应用软件日志不应包含调试输出;
f)宜使用构建工具链提供的代码安全机制,例如:堆栈保护、自动引用计 数等;
g)宜使用安全机制,例如:混淆、加壳等,防止被逆向分析。
1.4.3 应用软件访问控制
车载信息交互系统上的应用软件访问控制应满足以下要求:
a)应支持权限管理,不同的应用软件基于实现特 定功能分配不同的接口权限;
b)对外部输入的来源,例如:用户界面、URL等来源进行校验;
c) 身份校验时,应至少进行本地验证
1.4.4 应用软件运行安全
车载信息交互系统上的应用软件运行安全应满足以下要求:
a)与控制车辆、支付相关等关键应用软件在启动时应执行自检机制;
b) 当输入个人敏感信息时,应采取安全措施确保个人敏感信息不被其他 应用窃取,并通过使用安全软键盘等防止录屏;
c) 应用软件正常退出时,应擦除缓存文件中的个人敏感信息;
d)应用软件进程间通信不宜明文传输个人敏感信息;
e)不宜利用进程间通信提供涉及个人敏感信息功能的接口。
1.4.5 应用软件通信安全
车载信息交互系统上的应用软件通信安全应满足以下要求:
a) 对外传输个人敏感信息时,应采用数据加密传输方式;
b)实现通信端之间的双向认证后,才能发送个人敏感信息;
c)使用已验证、安全的参数设置,只允许验证通 过 OEM 授信CA签发的证书。
1.4.6 应用软件日志安全
车载信息交互系统上的应用软件日志安全应满足以下要求:
a)采取访问控制机制管理日志读取和写入的权限;
b)对用于记录用户支付历史记录、导航检索历史记录等事件的重要日志 文件进行安全存储;
c)对个人敏感信息进行脱敏或其他防护后,才能写入应用日志。
1.5 数据安全要求
1.5.1 数据采集
车载信息交互系统数据采集应满足以下要求:
a) 采集用户数据时,应告知用户采集目的和范围,取得授权同意,并提供 关闭数据采集的功能;
b) 采集个人敏感信息时,应取得用户的明示同意,并确保个人信息主体 的明示同意是其在完全知情的基础上自愿给出的、具体的、清晰明确的意愿表示;
c) 采集远程控制、远程诊断等功能场景下所发送的指令数据时,应取得用 户授权同意;
d)宜在提供相应服务的同时进行用户数据采集。
1.5.2 数据存储
车载信息交互系统数据存储应满足以下要求:
a)应采用SM2、SM3、SM4、长度不低于2048位的 RSA、长度不低于 128位的 AES、哈希(Hash)摘要等加密算法存储个人敏感信息,宜采用硬件安全存储方式;
b)应实现安全重要参数的安全存储和运算,可采用硬件防护方式;
c) 存储用户数据时,应防止非授权访问;
d)应采用技术措施处理后再进行存储个人生物识别信息,例如:仅存储 个人生物识别信息的摘要等方式;
e)未经用户授权不应修改、删除用户数据;
f)应对用户数据采集、传输、存储、销毁等操作进行日志存储。
1.5.3 数据传输
车载信息交互系统应采取管理措施和技术手段,保护所传输用户数据的保密 性、完整性和可用性。
1.5.4 数据销毁
车载信息交互系统数据销毁应满足以下要求:
a)应具备用户数据销毁的功能,且销毁后数据不能恢复;
b) 对共享类应用,例如:共享汽车等应用场景,在当前用户退出后,应清 空个人敏感信息。
2. 实验方法
2.1 硬件安全实验
按照下列流程进行:
a) 检查是否存在暴露在PCB板上的JTAG接口、USB接口、UART接口、SPI接口等调试接口, 如存在则使用测试工具尝试获取调试权限;
b) 拆解被测样件设备外壳,取出PCB板,检查PCB板硬件是否存在后门或隐蔽接口;
c) 通过采用开盒观察方法,检查关键芯片管脚暴露情况,或审查相应文档,是否有减少暴露管脚 的考量;
d) 查看PCB布线及设计,检查芯片之间通信线路是否做隐蔽处理,检查敏感数据的通信线路数 量或审查相应文档,检查通信线路是否有做隐蔽处理与减少通信线路数量的考量;
e) 通过采用开盒观察方法,检查车载信息交互系统的电路板及电路板上的芯片是否存在用以标 注端口和管脚功能的可读丝印。
2.2 通信协议与接口安全实验
2.2.1 对外通信协议安全实验
通信连接安全实验
按照下列流程进行:
a) 采用网络数据抓包工具进行数据抓包,解析通信报文数据,检查车载信息交互系统与平台服务 端或外部终端的通信有无身份认证;
b) 采用网络数据抓包工具进行数据抓包,解析通信报文数据,模拟中间人攻击方式,检查车载信 息交互系统与平台服务端或外部终端是否无法建立通信连接
通信传输安全实验
采用网络数据抓包工具进行数据抓包,解析通信报文数据,检查车载信息交互系统与平台服务端或 外部终端间传输的数据内容是否经过加密
通信终止响应安全实验
车按照下列流程进行:
a) 采用网络数据抓包工具进行数据抓包,解析通信报文数据,将其篡改,发送篡改数据,触发数据 内容校验失败,检查车载信息交互系统是否终止该响应操作;
b) 采用网络数据抓包工具进行数据抓包,解析通信报文数据,模拟伪造签名的报文数据,触发身 份鉴权失败,检查车载信息交互系统是否终止该响应操作。
远程通信协议安全实验
采用网络数据抓包工具进行数据抓包,解析通信报文数据,检查是否采用如TLS1.2同等安全级别 或以上要求的安全通信协议。
短距离通信协议安全实验
1. 短距离通信口令应用安全
按照下列流程进行:
a) 使用暴力破解的方法,检查缺省口令的复杂度;
b) 通过对同一产品的多个样品验证缺省口令的方式,检查缺省口令是否具有唯一性;
c) 设置较低复杂度口令,检查修改过程中是否给出明确的风险提示或不允许设置;
d) 对于人机接口或跨信任网络的不同车载信息交互系统之间接口的登录认证,使用暴力破解的 方法,检查是否成功触发防暴力破解机制;
e) 通过尝试篡改口令文件,检查是否设置了访问控制。
2. 车载蓝牙通信协议安全
按照下列流程进行:
a) 模拟遍历连接车载信息交互系统上的蓝牙设备,检查是否不存在后门提供其他车辆服务;
b) 采用蓝牙抓包工具进行数据抓包,解析蓝牙通信数据,检查针对 Classic场合,是否采用SSP 模式或针对LE场合,是否采用LESecureConnection模式;
c) 向车载蓝牙设备发出配对请求,检查车载蓝牙设备是否对配对请求进行验证;
d) 利用未具有访问权限的外部设备,尝试进行控制车辆,检查是否不能成功接入;
e) 在利用蓝牙进行非接触控制车辆业务时,采用蓝牙抓包工具进行数据抓包,解析蓝牙通信数 据,检查是否对相关数据进行安全加密处理。
3. 车载WLAN通信协议安全
通过获取 WLAN热点安全类型,检查 WLAN热点是否采用 WPA2PSK或更高安全级别的加密 认证方式。
2.2.2 内部通信安全
采用车内网络报文抓包、解析及发送数据的方法,检查车载信息交互系统通过CAN或车载以太网 等总线与车内其他控制器节点进行数据交互、传输重要数据时,是否使用安全机制保证传输数据的完整 性及可用性。
2.2.3 通信接口安全
按照下列流程进行:
a) 对软硬件接口进行探测、对端口进行扫描,检查是否不存在未公开接口,是否不存在可绕过系 统安全机制对系统或数据进行访问的功能;
b) 对通信接口进行遍历,检查其访问权限是否满足最小权限原则。
车外通信接口安全
下列流程进行:
a) 访问车载信息交互系统中不同区域的数据,检查车载信息交互系统是否支持路由隔离,是否可 以隔离核心业务平台的通信、内部通信、外网通信等;
b) 使用公网访问车载信息交互系统和核心业务平台,检查车载信息交互系统与核心业务平台的 通信是否采用专用网络或者虚拟专用网络通信,与公网隔离。
车内通信接口安全
按照下列流程进行:
a) 调用非白名单指令,检查车载信息交互系统是否针对发送和接收到的指令进行白名单过滤;
b) 模拟恶意应用,发送控制指令,检查车载信息交互系统是否实现总线控制指令来源的校验
2.3 操作系统安全要求
2.3.1 操作系统安全配置
按照下列流程进行:
a) 使用最高权限用户账号登录,并使用普通账号登录后尝试进行提权,检查系统是否禁止最高权 限用户直接登录,限制普通用户提权操作;
b) 查看系统中的账号列表,检查是否存在无用账号,或者尝试登录其中的无用账号,验证是否无 法登陆,通过设置弱口令,检查系统是否提示口令安全弱,账号口令至少包括阿拉伯数字、大小 写拉丁字母,并且长度不小于8位;
c) 使用授权身份或授权进程对文件、数据库等进行访问,检查访问是否被允许,使用非授权身份 或非授权进程对文件、数据库等进行访问,检查访问是否无法成功;
d) 查看正在运行的应用服务,检查是否关闭了不必要的应用服务;
e) 使用授权身份进行远程接入,检查是否可以成功远程接入,使用非授权身份进行远程接入,检 查是否不能远程接入服务
2.3.2 安全调用控制能力
在用户明示同意后,才能执行;
通信类功能受控机制:
- 拨打电话
- 三方通话
- 发送短信
- 发送彩信
- 发送邮件
- 移动通信网络连接
- WLAN网络连接
本地敏感功能受控机制:
- 定位功能
- 通话录音功能
- 人机交互功能
- 对用户数据的操作
2.3.3 操作系统安全启动
按照下列流程进行:
a) 获取操作系统安全启动信任根存储区域的访问方法和地址,使用软件调试工具写入数据,重复 多次检查是否可将数据写入该存储区域;
b) 提取操作系统签名,使用软件调试工具对签名进行篡改,将修改后签名写入到车载终端内的指 定可信区域内,检查是否正常工作;
c) 获取操作系统的系统固件等其他安全启动代码,使用软件调试工具对其进行篡改,将修改后的 启动代码写入到车载终端内的指定区域,检查是否正常工作
2.3.4 操作系统更新
按照下列流程进行:
a) 将镜像替换为过期的镜像,检查是否无法成功加载;
b) 如通过在更新镜像时人为断电等方法,确认更新镜像安装失败时,系统安装之前的版本是否可 用或是否进入安全状态;
c) 修改更新镜像,检查更新流程是否无法执行;
d) 使用非官方授信的更新镜像,检查更新流程是否无法执行。
2.3.5 操作系统隔离
审查设计文档,检查是否采用了操作系统隔离措施,即除拨打电话、电话本和短信等必要的接口和 数据可以共享外,不同操作系统之间不能进行通信。
2.3.6 操作系统安全管理
按照下列流程进行:
a) 针对车机类操作系统,引入异常状况,例如:异常网络连接、内存占用突增等,检查是否会对异 常情况进行告警;
b) 针对车机类操作系统,审查文档,检查操作系统是否对重要服务和重要操作具有审计功能;
c) 打开日志查询界面,检查操作系统是否对重要事件进行了日志记录;
d) 审查文档,检查操作系统是否设定了将日志上传至服务器的策略;
e) 通过尝试覆盖、删除日志存储区域,检查日志的存储是否存在安全防护;
f) 使用授权身份进行日志读取或写入,检查是否可以成功操作,使用非授权身份进行日志读取或 访问,检查是否无法成功;
g) 使用授权身份通过调用调试接口访问内部数据,检查是否可以成功操作,使用非授权身份通过 调用调试接口访问内部数据,检查是否无法成功;
h) 使用漏洞扫描工具对车载终端进行漏洞检测,检测是否存在权威漏洞平台发布6个月及以上 的高危安全漏洞;若存在高危漏洞,则检查该高危漏洞处置方案的技术文件;
i) 通过应用软件进行最高权限用户权限运行和业务不包含控车的应用软件进行控车行为操作, 检查该操作是否会被阻断。
2.4 应用软件安全要求
2.4.1 应用软件基础安全
按照下列流程进行:
a) 尝试下载和安装未使用官方签名的应用软件,检查是否不可以正常下载和安装;
b) 使用漏洞扫描工具对车载终端进行漏洞检测,检测是否存在权威漏洞平台发布6个月及以上 的高危安全漏洞;若存在高危漏洞,则检查该高危漏洞处置方案的技术文件;
c) 对应用软件中数据进行分析,检查应用软件对个人敏感信息是否非授权收集或泄露、非授权数 据是否外传等恶意行为;
d) 使用分析、查找方法,检查应用软件是否以明文形式存储个人敏感信息;
e) 分析会话内容,检验车载信息交互系统是否具备会话安全保护机制,如:使用随机生成的会话 ID等;
f) 使用暴力破解方法,检查用户口令长度、字符类型等策略,是否满足要求或未使用强复杂度的 口令时,检查是否向用户提示风险;
g) 对代码进行查找和分析,检查是否在代码中不存在私钥;
h) 对代码进行查找和分析,检查该应用软件是否使用已验证的、安全的加密算法和参数;
i) 对代码进行查找和分析,检查是否不存在将同一个密钥复用于多种不同用途;
j) 使用设计文档分析的方法并验证,检查使用到的随机数是否由已验证的、安全的随机数生成器 产生并符合随机数标准。
2.4.2 应用软件代码安全
a) 使用代码扫描工具,对应用软件代码进行扫描,检查应用软件构建设置是否满足安全要求,应 用软件使用的第三方组件是否识别已知漏洞并安装补丁;
b) 对于非托管代码,使用代码扫描工具,检查是否可确保内存空间的安全分配、使用和释放;
c) 分析设计文档,检查应用软件是否采用代码签名机制;
d) 使用调试分析方法,检查应用软件发布后是否可用调试功能或包含调试信息;
e) 在非调试场景或非调试模式下,使用调试工具进行分析,检查应用软件日志是否包含调试 输出;
f) 使用代码扫描工具,检查是否使用构建工具链提供的代码安全机制,例如堆栈保护、自动引用 计数;
g) 使用逆向工具进行分析,检查应用软件是否使用混淆、加壳等安全机制,对抗针对应用的逆向 分析。
2.4.3 应用软件访问控制
按照下列流程进行:
a) 通过遍历调用所有接口的方式,检查是否授予超出其实际业务需求的权限;
b) 采用分析设计文档和测试的方法,检查不同的应用软件是否分配不同的接口权限集合;
c) 通过对应用软件的输入接口进行模糊测试的方式,检查应用软件是否对输入信息的来源,包括 用户界面、URL等进行校验;
d) 采用分析设计文档的方法,检查身份验证是否至少在本地进行。
2.4.4 应用软件运行安全
按照下列流程进行:
a) 篡改或替换关键应用软件的部分代码,检查关键应用程序能否正常启动运行;
b) 检验输入个人敏感信息时,检查是否使用安全软键盘或其他安全措施,确保敏感信息不被其他 应用窃取,并防止录屏;
c) 应用软件正常终止时,读取内存数据,检查是否包含个人敏感信息;
d) 截取进程间通信内容,进行分析,检查进程间通信是否涉及明文的个人敏感信息;
e) 遍历接口,截取各接口通信内容,进行分析,检查应用软件是否利用进程间通信提供敏感功能 的接口。
2.4.5 应用软件通信安全
按照下列流程进行:
a) 采用网络数据抓包工具进行数据抓包,解析应用软件对外传输的数据,检查个人敏感信息是否 加密;
b) 采用网络数据抓包工具进行数据抓包,解析通信数据,检查通信端是否进行双向认证;
c) 采用网络数据抓包工具进行数据抓包,解析通信数据,检查是否使用已验证、安全的参数设置;
d) 采用网络数据抓包工具进行数据抓包,解析通信数据,获取证书,检查证书是否是通过 OEM 授信的CA签发的。
2.4.6 应用软件日志安全
按照下列流程进行:
a) 通过尝试日志读取写入操作,检查是否存在访问控制机制,检查是否对日志读写进行权限 管理;
b) 通过尝试覆盖、删除日志存储区域,检查重要日志是否实现了安全存储
c) 分析应用软件存储的日志,检查是否包含未脱敏的个人敏感信息。
2.5 数据安全要求
2.5.1 数据采集
按照下列流程进行:
a) 检查车端在采集用户数据时,是否通过明确告知采集目的和范围等方式得到用户的授权同意 和提供关闭数据采集的功能;
b) 检查车端在采集个人敏感信息时,是否通过主动点击“同意”等方式得到用户的明示同意;
c) 检查车端在远程控制、远程诊断等功能场景下发送指令数据时,是否通过明确告知等方式得到 用户的授权同意;
d) 启动一项服务,检查是否在服务启动之后才进行数据采集,终止服务时停止数据采集
2.5.2 数据存储
按照下列流程进行:
a) 通过尝试读取存储包含个人敏感信息的文件,检查个人敏感信息是否使用SM2、SM3、SM4、 长度不低于2048位的 RSA、长度不低于128位的 AES、Hash摘要等加密算法进行了加密 存储;
b) 通过查看车载信息交互系统设计文档,检查是否有效实现重要安全参数的安全存储和运算;
c) 使用非授权身份访问存储用户数据的文件,检查是否无法访问文件信息;
d) 检查存储在车载信息交互系统中的个人生物识别信息,是否使用了仅存摘要等技术措施;
e) 通过尝试修改和删除存储的用户数据,检查是否无法成功,用户同意之后,尝试修改和删除存 储的用户数据,检查是否成功;
f) 检查车载信息交互系统是否支持采集、传输、存储、销毁等数据操作日志的存储功能。
2.5.3 数据传输
使用篡改、伪造等方法进行模拟攻击,检查对于数据完整性、保密性和可用性的防护措施是否有效
2.5.4 数据销毁
按照下列流程进行:
a) 通过更换零部件操作或者应用安装后删除等操作,检查车载信息交互系统是否具备数据销毁 的功能;对销毁的数据尝试进行恢复,检查是否能恢复销毁数据;
b) 启动共享应用程序,执行用户退出后再次登录,检查是否可以获取到个人敏感信息