Nei sistemi operativi dei computer e in altri framework software, un token di accesso è qualsiasi struttura di dati che contiene le informazioni di sicurezza necessarie a un processo per accedere a un oggetto protetto oa un altro processo che richiede l’autorizzazione. Gli oggetti protetti sono solitamente dati nel file system con privilegi di lettura e scrittura definiti e un processo è qualsiasi altro programma o servizio che richiede l’autorizzazione per accedere alle sue funzioni. Sebbene un token di accesso sia semplicemente un contenitore in grado di contenere qualsiasi informazione, viene solitamente utilizzato per memorizzare i privilegi dell’utente.
Il concetto di token di accesso è stato concepito e utilizzato principalmente dai sistemi operativi e dai programmi Microsoft®, ma la loro utilità li ha portati altrove. L’interfaccia di programmazione dell’applicazione (API) per Google descrive un metodo per utilizzare i token di accesso durante la programmazione di applicazioni che devono accedere ai dati associati all’account di un utente Google. Alcune delle grandi piattaforme di social network utilizzano anche token di accesso nella loro API.
Fondamentalmente, quando un utente accede a un sistema operativo oa un framework di sistema software, il sistema verifica l’utente e la password in un database di sicurezza e viene creato un token di accesso che identifica l’utente a qualsiasi oggetto o processo sul sistema. Tutti i processi, come applicazioni, programmi o servizi, avviati dall’utente porteranno con sé il token di accesso. Il token di accesso, quindi, deve memorizzare diversi bit di dati che un altro programma o oggetto verifica per concedere l’accesso.
I token di accesso contengono gli identificatori di sicurezza (SID), in genere codici numerici, per l’utente, eventuali gruppi di utenti a cui appartiene l’utente e la sessione di accesso corrente. Il token contiene anche un elenco di tutti i privilegi concessi all’utente o ai gruppi. Esistono un paio di diversi tipi di token di accesso, quindi anche il token deve identificare il suo tipo, primario o di rappresentazione. Un token di accesso primario è il tipo standard utilizzato, ma è anche possibile creare un token di rappresentazione per agire per conto dell’utente.
Quando un token di accesso viene chiamato per svolgere il proprio lavoro, incontra un monitor di riferimento di sicurezza (SRM), un servizio che monitora l’accesso a oggetti e processi nel sistema. L’SRM richiama il descrittore di sicurezza dell’oggetto o del processo per il confronto con il token di accesso. Il descrittore di sicurezza contiene un elenco di controllo di accesso (ACL), in cui ogni voce di controllo di accesso (ACE) definisce determinate autorizzazioni per quell’oggetto o processo. Ad esempio, nel caso di un file nel sistema, il descrittore di sicurezza contiene informazioni su quali utenti o gruppi hanno il permesso di leggere o scrivere nel file. Se il token di accesso che richiede l’accesso per aprire o modificare il file non corrisponde alle autorizzazioni nel descrittore di sicurezza, l’accesso non riesce e all’utente viene negato l’accesso al file.