From 3ad60a837a0745679f19f389104859fd65541443 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Fri, 20 Dec 2024 13:04:32 -0500 Subject: [PATCH] add section on clearing sensitive data from memory --- static/features.html | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/static/features.html b/static/features.html index eb10bd28c..cdac25b2a 100644 --- a/static/features.html +++ b/static/features.html @@ -110,6 +110,7 @@

Table of contents

  • Supports longer passwords
  • Auto reboot
  • +
  • Clearing sensitive data from memory
  • Duress PIN/Password
  • More secure fingerprint unlock
  • @@ -819,6 +820,37 @@

    Auto reboot

    panic which leads to a reboot.

    +
    +

    Clearing sensitive data from memory

    + +

    As documented in our section on our added + exploit mitigations, GrapheneOS adds zeroing of freed memory to both the + standard userspace and kernel allocators. These features have the secondary + purpose of clearing sensitive data from memory as soon as possible in addition + to defending against exploits. Android implements regular compaction of frozen + cached apps and apps currently running in the background based on triggering a + full compacting garbage collection (GC) and then requesting that malloc frees as + much memory as it can back to the OS. This pairs well with zeroing features and + results in freed data getting cleared faster for Java/Kotlin and also the C, C++ + and Rust libraries used by them where low-level allocators get held onto until + the high level objects are freed.

    + +

    When the device is locked, we trigger full compacting garbage collection (GC) + for the SystemUI and system_server processes to release all of the memory that's + no longer used back to the OS. Due to GrapheneOS enabling kernel page allocator + zeroing, this results in all the no longer referenced data in objects being + cleared. We based our approach on Android's standard approach to running a full + compacting GC for these two processes after the device is unlocked to clear + remnants of the user's PIN/password and keys derived from it. This is a nice way + to clear some data immediately after locking prior to our + auto-reboot feature kicking in to clear all of the OS + memory.

    + +

    GrapheneOS modifies some of the ways the device can be rebooted to proceed + with the normal reboot process where memory gets freed and cleared by the kernel + page and slab allocator zeroing features enabled by GrapheneOS.

    +
    +

    Duress PIN/Password