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==== |