Case-study

AegisOS

Mijn eigen securitygerichte Android-distributie op GrapheneOS. Gebouwd, gesigned en op een fysieke Pixel 7a bewezen, niet alleen op papier.

GrapheneOS basisPixel 7a hardware80+ beslissingen

Hoe AegisOS is opgebouwd

Hardware

Titan keystore en Verified Boot controleren de keten voordat er iets laadt.

Basis

GrapheneOS: kernel, SELinux, sandbox en FBE, ongewijzigd geërfd.

Signing

een offline, netwerk-geïsoleerde host tekent elke partition-image.

Services

privileged patches hangen aan Android APIs. Geen almachtige superservice.

UI

SystemUI en Settings lezen alleen status en vragen typed acties aan.

01

Guardian

Bescherming die je kunt uitleggen, niet een zwarte doos.

Guardian is een event-driven bewaker tegen misbruik van Android-permissies, zoals een app die stiekem op de achtergrond je locatie blijft opvragen. Op fysieke hardware bleek Android's AppOps twee onafhankelijke dispatch-kanalen te hebben. Een watcher die er maar één beluistert mist de helft van de echte events. Dat vind je niet in een emulator.

Sensor

Ziet alleen goedgekeurde AppOps events zoals achtergrondlocatie. Nooit ruwe content.

Detectie

Schema validatie en vaste regels. Onbekende velden worden geweigerd, niet genegeerd.

Remediation

Vooraf geregistreerde acties, altijd geverifieerd en altijd omkeerbaar.

Audit & Undo

Elke actie staat in een logboek en kan expliciet worden teruggedraaid.

Duress Unlock

Een paniek-PIN die zich moet gedragen als een gewone telefoon.

Duress Unlock is een aparte PIN. Voer die in en het toestel schakelt naar een volledig apart decoy-profiel, terwijl je echte profiel op de achtergrond vergrendeld blijft. GrapheneOS heeft al een eigen wipe-on-duress-functie. Dit is een aparte, ernaast bestaande laag voor situaties waarin wissen niet is wat je wilt.

Het lastigste deel was niet de switch zelf, maar onzichtbaar zijn. Een decoy-sessie die zich net anders gedraagt dan een normaal, single-owner-toestel is zelf al een lek. Tientallen van dat soort kleine tells zijn gevonden en één voor één dichtgezet: een gebruikersschakelaar die per ongeluk de echte naam liet zien, avatar-kleuren die per profiel verschilden, een sessie beëindigen-knop die een telefoon met maar één eigenaar nooit zou tonen.

Een decoy-PIN op een net opgestart toestel liet ooit de hele telefoon crashen en rebooten. Precies het scenario waarvoor de feature bestaat.

Cost-symmetric

Een mislukte inlog duurt ongeveer even lang, of er nu wel of geen decoy-profiel bestaat.

Silent switch

Geen dialoog, geen aankondiging. Gewoon een ander, volledig gescheiden profiel.

Quiesce, niet stoppen

Het echte profiel bevriest op app niveau, omdat Android weigert user 0 te stoppen.

Identity hiding

Elke naam, avatar en profielstatus klopt met het perspectief van de huidige sessie.

Build & signing

Verified boot is een keten, niet één commando.

Een build die groen draait bewijst niet dat hij klopt. Elke stap van source tot fysiek toestel heeft een eigen, onafhankelijke controle.

  1. 01

    Source build

    GrapheneOS gebouwd vanaf een geverifieerde manifest-tag. Reproduceerbaarheid onafhankelijk gecheckt, niet aangenomen.

  2. 02

    Split signing

    Een offline sleutel-host die kort opent, tekent, onafhankelijk verifieert en zichzelf weer afsluit.

  3. 03

    Verified boot

    Elke image krijgt een AVB descriptor, gecontroleerd op twee losse machines voor er geflasht wordt.

  4. 04

    Fysieke hardware

    Elke claim hierboven ook echt geflasht en gebooot op een Pixel 7a, met een schone boot als bewijs.

  5. 05

    Eigen OTA-server

    Een zelf gehoste update-server levert signed metadata. De Updater-app installeert een update net als bij een gewone build.

  6. 06

    Incidenten opgelost

    Een bootloop, een signature mismatch en een AVB rollback bug zijn hier allemaal echt gebeurd en met bewijs opgelost.

Dit is een actief, onaf project. Dat staat hier zo, niet verbloemd als klaar.

Vastgelegd

threat model80+ beslissingenincident postmortemsreproducible buildshardware in the loopleast privilege

Grenzen

Geen publieke of stabiele release. De bootloader blijft bewust ontgrendeld.

Geen telemetry, analytics of phone home gedrag, van welke aard dan ook.

AI stelt tijdens development alleen typed, gecontroleerde acties voor. Nooit shell of root.

Nog niet af: Network Policy, Worlds en Secure Share staan nog op ontwerpniveau.