Skip to content

Conversation

@dmcilvaney
Copy link
Contributor

Allow the Authvar TA to enforce a set of default variables when it is first initialized.

These variables are defined in a JSON file, and encoded into a generated C file at compile time via a python script.

The behaviour can be turned on via CFG_AUTHVARS_DEFAULT_VARS=y. A pair of example JSON files are included, one sets a simple NV variable, while the other provisions a set of secure boot variables.

TODO: Handle partial initialization. Either set an initialization complete flag, or don't persist these writes until we ar done, or check each default variable? We don't want to get halfway through writing the variables then die. But also want these variables to be treated like normal variables once they are written.

Copy link
Member

@DMattoon DMattoon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine with this in principle. I do worry introducing this sort of code generation and build-time complexity will be a problem for us in the future.

@dmcilvaney
Copy link
Contributor Author

As for complexity, this is completely opt-in and hooked into an existing OP-TEE build system flow (gensrcs which generates source files on demand), so hopefully it won't affect any other components. I also made a point to only use the external APIs so this shouldn't be affected by changes to the internal functioning of the TA.

This is definatly a critical step in a Windows secure boot path (verifying signatures from ROM all the way to Windows), and enforcing this with the TA itself seems like the most secure method.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants