We have a security requirement on our ARM based product using CAmkES 2.2.x
to ensure all sensitive data declared in specific seL4SharedData regions
are erased on detection of a power failure. We achieve this by overwriting
the data with a known pattern that we read back from a separate component
before declaring the device as secured. This is working fine. But we need
to guarantee that the overwrite data is actually written to DDR and we
aren't just using cached values. This means flushing the L1 and L2 data
caches specific regions.

We could use seL4HardwareMMIO regions and declare our data in the memory
map and use these regions as un-cached. Or use the _hardware_cached
attribute and call the provided flush method when necessary. Our main issue
with doing this, except the fiddle of mapping multiple different sized
regions into the memory map, is we could potentially expose the physical
locations of the sensitive data rather than having it wrapped in the
virtual address space of a component.

Having a flush method on seL4SharedData would be the ideal solution.

We are not in a position to upgrade our CAmkES version on this product at
the moment.

Any thoughts?

Zippy
_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to