附录
btarmor-os
btarmor-os 是一个基于 Debian Linux 安全操作系统。
btarmor-os 目前提供两个不同的版本:
Btarmor 社区版
默认安装的版本是社区版,任何人可以自由下载使用。
Btarmor 企业版
企业版需要注册之后得到授权文件,把授权文件部署在社区版上,就可以升级成 为企业版。
社区版和企业版的区别在于
社区版使用共享的相同的 Key
企业版使用私有的 Key
企业版的安全内核经过加壳来保证安全,社区版的安全内核没有经过加壳
Btarmor 内核模式
高级模式
专用模式
高级模式的主要特征:
高级模式不允许 Linux 内核直接访问安全应用的内存。如果需要访问,必须 得到安全应用的授权。
默认情况下,Linux 内核是可以访问安全应用的内存,高级模式能够提供更高的 安全性,但是也需要更多的了解操作系统的内存管理,ELF文件的组成,以及编 译器的工作原理等相关知识。否则,安全应用可能无法正常运行,或者即便运行, 也降低了安全性。
专用模式的主要特征:
只有经过加密的安全应用才可以运行
默认情况下,普通的可执行文件和动态库还可以继续使用,安全应用也可以正常 运行。但是在专用模式下面,普通的可执行文件和动态库都无法使用,必须转换 成为相应的安全文件才可以继续使用。
这两个模式可以同时启用,并不互斥。
安全应用
使用 btmake 命令转换之后的应用程序称之为安全应用。
安全应用是经过加密后的应用程序。
安全应用的代码,数据和堆栈都是可以设置成为不允许内核访问的。
安全应用无法运行普通的 Linux 系统中,只能运行在 btarmor-os 中的安全层。
在同一个系统中,每一个安全应用使用自己独有的Key被加密。
认证应用
使用 btmake 命令的同时指定选项 --sys
,这样转换之后的可执行
文件和动态库称之为认证应用和认证动态库。
认证应用无法运行普通的 Linux 系统,只能运行在 btarmor-os 中。
认证应用运行在应用层,而不是运行在安全层。
认证应用的代码和数据是能够被内核直接访问的。
认证动态库被安全应用调用的时候运行在安全层,被认证应用调用的时候运行在应用层。
其它用户无法修改认证应用。
在同一个系统中,所有的认证应用使用相同的Key被加密。
安全层
运行安全应用的最高权限层。
内核层
运行操作系统内核的次高权限层。
应用层
运行一般应用程序的最低权限层。
Debian Packages
btarmor 提供了下列 Debian 包
开发环境的功能包,目前支持 amd64 和 arm64 两种架构
btarmor-cli 提供了命令行工具 btarmor ,大部分的开发相关的工作都可以使用这个命令完成
btarmor-toolkit 提供了头文件和示例源文件,用于帮助生成具备高级保护功能的 c 应用程序
运行环境的包,主要包括两个
一是用于替换原来的 Linux 内核包:
raspberrypi-btarmor (适用于 raspberry os,替换原来的 raspberrypi-kernel)
linux-image-bt-arm64 (适用于 debian 系统,替换原来的 linux-image-arm64)
linux-btarmor (适用于 ubuntu 系统,替换原来的 linux-generic)
二是用于装载安全应用和动态库的包,主要是替换原来的 ld.so 的功能,支持安全库的装载
btarmor-runtime