本章主要介绍设备取证服务的平台适配、设备适配和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的定义来禁用。