Research Article
TEE-Watchdog: Mitigating Unauthorized Activities within Trusted Execution Environments in ARM-Based Low-Power IoT Devices
Algorithm 1
Translating the application’s manifest file to memory-mapped access table
| | Input:, ⊳ CBOR-encoded Manifest File and list of system peripherals | | | Output: Access Table | | | procedure Policy_Converter , | | | = Decode | | | 3 Initialize Access Table ⊳ Initialize the Access Table data structure | | | | | | token = Tokenize ⊳ Begin converting text into tokens and get first token | | | while token do | | | if token = = “UniqueID” then | | | token = Tokenize ⊳ Get next token | | | Access Table [i].app_ID = token | | | else if token = = “Policies” then | | | while 1 do | | | token = Tokenize ⊳ Get next token | | | | | | while ti is less than sizeof (Peripherals) do | | | if token = = Peripherals[ti].name then | | | Access Table [i].peripheral = Peripheral[ti].addr | | | token = Tokenize ⊳ Get next token | | | if token = = “RW” then | | | Access Table [i].perm = = “RW” | | | ++ | | | break | | | else if token = = “RO” then | | | Access Table [i].perm = = “RO” | | | ++ | | | break | | | else | | | ++ | | | break ⊳ Invalid permission | | | end | | | else | | | ++ | | | end | | | end | | | if token has terminator then | | | break | | | end | | | end | | | else | | | do nothing | | | end | | | end | | | end procedure |
|