本章主要介绍设备取证服务的平台适配、设备适配和ROM度量服务适配。
平台适配
DAS仅使用到少数几个libc标准函数(strlen、memcpy、memset)和数据类型定义(size_t、uint8_t、uint32_t、uint64_t)。
如果设备平台没有相关实现或有不同的定义,可以通过在Makefile中设置CONFIG_DAS_PLATFORM_ALT替代头文件,然后在替代头文件中实现或重定义DAS所需的函数和类型。
Makefile示例如下:
CONFIG_DAS_PLATFORM_ALT = platform_alt.h
设备适配
设备适配的函数定义在inc/das/hardware.h文件中。
- 获取设备固件版本
size_t das_hal_firmware_version(char *buf, size_t size);
- 获取设备硬件标识
size_t das_hal_device_id(char *buf, size_t size);
ROM度量服务适配
作为DAS缺省的安全度量服务,ROM Service完成设备代码完整性的检查功能,需要设备适配ROM(txt段)的分段信息。
typedef struct _das_rom_bank {
uint8_t* address;
size_t size;
} das_rom_bank_t;
int das_hal_rom_info(das_rom_bank_t banks[DAS_ROM_BANK_NUMBER]);
ROM度量服务可以通过修改inc/das/configure.h中DAS_SERVICE_ROM_ENABLED的定义来禁用。