Nella sicurezza basata sulle capacità, i programmi seguono il principio dei privilegi minimi come indicato Wikipedia. Ciò significa che ogni programma non ha quasi nessuna autorizzazione e le autorizzazioni vengono quindi concesse solo per le parti di cui ha bisogno il programma. Questo è generalmente fatto su un livello molto più alto dei domini di protezione gerarchici.
Nei domini di protezione gerarchica, ci sono essenzialmente livelli che contengono ciascuno determinati permessi. I programmi con livelli più privilegiati hanno più permessi. In questo modo, i programmi non si avviano senza autorizzazioni e possono essere concesse molte autorizzazioni di cui non hanno effettivamente bisogno. Questo è spesso applicato dall'architettura della CPU anziché nel software puro ed è molto meno granulare della sicurezza basata sulle capacità. Questo approccio contraddice il principio del privilegio minimo .
Nel senso che entrambi gli approcci sono utilizzati per il provisioning delle autorizzazioni ai programmi, sono metodi diversi per lo stesso scopo, ma tendono ad applicarsi a domini diversi. Il sistema operativo Android implementa un kernel simile a Linux e utilizza domini di protezione gerarchica , ma in aggiunta aggiunge lo stack Android e quindi utilizza la sicurezza basata sulle capacità per le app .