Changes

1,314 bytes added ,  06:37, 18 June 2019
Line 22: Line 22:  
The Secure Monitor was updated.
 
The Secure Monitor was updated.
   −
<check back later for diff>
+
* 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====