8.1.0: Difference between revisions
→Secure Monitor: full diff |
|||
Line 22: | Line 22: | ||
The Secure Monitor was updated. | The Secure Monitor was updated. | ||
* The SE key read disable function no longer writes zero to AES_KEY_READ_DISABLE/RSA_KEY_READ_DISABLE. | |||
* Functions for locking/checking PMC secure scratch now have additional bitmasks 0x40/0x80 for locking more secure scratch registers. | |||
* NVDEC/TSECB access to the kernel carveout was removed. | |||
* On suspend (SC7 Entry), SWR_USBD_RST is now checked, and AHB arbitration disable is now checked to be COP, ARC, USB, USB2. | |||
** This further mitigates against Deja Vu. | |||
* TZ/SE context save logic has been changed. | |||
** The context save function now first generates 16 random bytes, and securely saves them to scratch (using the usual write-writelock-check-readlock-checklocked pattern). | |||
** It then generates a random aes-256 key, and derives an actual encryption/MAC key by decrypting the random data with that key. | |||
*** Previously, it generated a random aes-256 key and used it directly. | |||
*** This prevents attacks that might coerce the usage of a specific aes-256 key instead of a random one. | |||
** Calls into the check scratch locked/lock scratch function which previously passed one bitmask at a time now pass multiple | |||
*** Accordingly, the lock/check locked functions now support multiple bitmasks instead of single bitmasks at a time. | |||
* The function that initializes the SE/derives keys now sets flag 0x100 on AES keyslots 8-15, and RSA keyslots 0-1. | |||
====Kernel==== | ====Kernel==== |