Principle of Least Privilege (PoLP) è un principio di sicurezza. Come principio di sicurezza, deve essere applicato. Non può presumere che tutti i partecipanti stiano cooperando.
Interfaccia Segregation Principle (ISP) è un principio di progettazione di servizi e API. Come ha sottolineato David Amo in un commento, l'ISP è un modo per facilitare l'implementazione di PoLP a livello di API e di servizio. Tuttavia, ci sono alcuni requisiti:
- Come precondizione per l'implementazione del PoLP, gli utenti del sistema devono essere autenticati come responsabili della sicurezza . (Non essere confuso dall'ortografia.)
- Ogni operazione deve essere identificata con l'identità di sicurezza che la richiede.
- Per gli implementatori di un lato client (un utente che è anche un pezzo di software), deve essere progettato per richiedere il minimo livello di privilegio necessario per eseguire la propria funzione.
- L'operazione non deve essere concessa se l'utente non dispone dell'autorizzazione (privilegio) per tale operazione.
- Se implementato insieme all'ISP, è possibile raggruppare le operazioni che appartengono allo stesso tipo di privilegio e inserire ciascun gruppo di queste operazioni correlate in interfacce separate.
Per applicare il PoLP, almeno uno di questi, e preferibilmente entrambi, dovrebbe essere applicato:
- Il controllo dell'autorizzazione deve essere eseguito quando un utente richiede un'interfaccia (seguendo la progettazione dell'ISP) a un diverso livello di privilegio.
- Il controllo dell'autorizzazione deve essere eseguito quando un utente esegue qualsiasi operazione con qualsiasi interfaccia, ogni volta.
Il controllo di grana più fine è necessario perché:
- L'autorizzazione può essere revocata in qualsiasi momento. È possibile che l'autorizzazione venga revocata dopo che un utente ha ottenuto l'accesso a un'interfaccia (seguendo la progettazione dell'ISP). Ciononostante, un utente che tenta di eseguire un'operazione con tale interfaccia dopo la revoca deve essere negato.
- In alcune architetture e ambienti di programmazione, è possibile aggirare le interfacce, utilizzando la riflessione (nei linguaggi di programmazione) o creando manualmente un messaggio simile a una richiesta di servizio legittima.
Per concludere,
- ISP può semplificare l'utilizzo di un sistema PoLP, raggruppando le operazioni con i relativi livelli di privilegio.
- ISP può fare una violazione di privilegi involontaria (ad esempio un errore da parte di un programmatore che implementa un lato client) più facile da rilevare e correggere sollevando l'errore al momento della richiesta di interfaccia.
- ISP può migliorare la facilità di manutenzione del codice a causa dei primi due motivi. Questo vantaggio si applica ai progetti che implementano i principi di sicurezza.
- L'ISP da solo non soddisfa i requisiti del PoLP o di qualsiasi principio di sicurezza, in quanto è facilmente elusivo e quindi inadeguato per qualsiasi scopo di sicurezza.
- PoLP ha i propri requisiti di implementazione, insieme a un'intera suite di altri modelli di progettazione.