嵌入式设备一旦联网,就必须考虑安全。基础安全加固不一定复杂,但默认空密码、开放调试端口、证书随意存放、升级包不校验,都会给产品留下明显风险。
一、账号和密码
量产设备不要保留默认 root 空密码。
建议:
- 禁止空密码登录。
- 禁止通用固定密码。
- SSH 默认关闭或限制。
- 调试账号只在 debug 固件存在。
- 出厂密码按设备唯一信息生成或首次启动强制修改。
检查:
1 | cat /etc/passwd |
二、SSH 和调试端口
开发阶段 SSH 很方便,量产阶段要谨慎。
可选策略:
- 默认关闭 SSH。
- 只允许内网。
- 只允许密钥登录。
- 现场维护时通过临时开关开启。
- 开启后记录日志。
不要把开发阶段的便利直接带进量产。
三、证书和密钥
证书和私钥建议放在:
1 | /data/secure |
权限要收紧:
1 | chmod 600 /data/secure/device.key |
如果硬件有安全存储或 TPM/TEE,优先使用硬件能力。
四、固件升级校验
OTA 包必须校验完整性和来源。
最低要求:
- sha256 校验。
- 版本和型号校验。
更推荐:
- manifest 签名。
- 设备内置公钥验签。
- 禁止降级到有漏洞版本。
不要只靠 HTTPS 下载。下载通道安全不等于固件内容可信。
五、最小化系统
减少攻击面:
- 删除不必要服务。
- 删除调试工具。
- 关闭不用端口。
- release 镜像不带编译器。
- 不保留测试脚本入口。
- 文件权限最小化。
查看端口:
1 | netstat -lntup |
或:
1 | ss -lntup |
精简 rootfs 里不一定都有,可以按实际工具替代。
六、日志和审计
关键安全事件要记录:
- 登录成功和失败。
- 配置修改。
- OTA 开始和结果。
- 证书更新。
- SSH 开启和关闭。
日志不要记录明文密码、token 和私钥。
七、出厂和维护平衡
安全和维护要平衡。设备完全锁死会让现场排查困难,完全开放又有风险。
比较稳的做法:
- debug 固件用于研发。
- release 固件默认关闭调试入口。
- 现场维护需要授权开启。
- 维护动作记录日志。
- OTA 包必须签名。
基础安全不是最后上线前补一层,而应该从 rootfs、账号、服务、升级和生产流程一起设计。
- 本文链接: https://blog.hansong.icu/2026/06/26/Embedded_Linux_Series_14_Security_Basics/
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。