附录

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