【分享】bsp 安全功能介绍
key-value 键值对(nvram)
key-value 键值对(nvram)存储在flash 独立的分区,采用双备份的存储方式和aes128 加密确保数据安全,密匙在编译的时候动态可配置,用于存储PID,UUID ,AUTH KEY 和加密密匙等重要信息。
文件系统加密
文件系统采用AES128 aes-cbc-essiv:sha256 加密算法,密匙在工程kconfig 里可配置,存在key-value 键值对中,目前已经支撑squashfs,jffs2,ubifs2,yaffs2 的加密。
ota
ota 固件使用云端加签和本地 secp256k1加签结合的方式,确保安全的基础上,给用户多中选择配置。
一机一密
rootfs 登录密码使用sha256加密,系统集成linux 的overlay fs,用户产测注入不同的登录密码,保障不同的设备有不同的登陆密码。
串口禁用
uboot 里通过固定密码加enter 开关来进入uboot,enter 开关存在key-value 键值对中, linux 中的串口通过设置 key-value键值对来禁用串口,串口一单禁用,就无法登陆系统,也没有日志输出,保障了系统的安全。
kernel 加密
kernel 在打包时通过aes128加密,uboot 起来后加载kernel,解密kernel加载程序,密码在编译的时候可配置,密码不匹配,系统加载失败,保障非法kernel 在本系统中无法运行。
黑白名单
用于对访问设备的ip进行安全控制,没有许可的ip 不允许访问系统。
非root 跑业务
利用linux 的分级权限管理capabilities,来对root权限进行更加细粒度的划分,给普通用户运行程序的最小权限,保障系统的安全。
elf文件加签
对elf 文件进行secp256k1加签,签名方法和ota 方式一致,密匙独立,签名放在elf 文件尾部,运行程序时linux 在load_elf_binary中加载elf 数据段和代码段之前进行验签,验证失败则不能运行程序,保证非法程序在系统中运行,利于系统安全。