Che cos'è un token di accesso?
Nei sistemi operativi per 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 o un altro processo che richiede l'autorizzazione. Gli oggetti sicuri sono generalmente dati nel file system con i privilegi di lettura e scrittura definiti e un processo è qualsiasi altro programma o servizio che richiede l'autorizzazione per accedere alle sue funzioni. Mentre un token di accesso è semplicemente un contenitore in grado di contenere qualsiasi informazione, di solito viene 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 di Google. Alcune delle grandi piattaforme di social network utilizzano anche i token di accesso nelle loro API.
Fondamentalmente, quando un utente accede a un sistema operativo o ad 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. Qualsiasi processo - come applicazioni, programmi o servizi - avviato dall'utente porterà con sé il token di accesso. Il token di accesso, quindi, deve archiviare diversi bit di dati contro cui un altro programma o oggetto controlla per consentire l'accesso.
I token di accesso contengono gli identificativi di sicurezza (SID), in genere codici numerici, per l'utente, tutti i gruppi di utenti a cui appartiene l'utente e la sessione di accesso corrente. Il token contiene anche un elenco di tutti i privilegi consentiti all'utente o ai gruppi. Esistono un paio di diversi tipi di token di accesso, quindi il token deve anche identificarne il 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 fare il suo lavoro, incontra un monitor di riferimento di sicurezza (SRM), un servizio che controlla l'accesso agli oggetti e ai processi sul sistema. 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 ciascuna voce di controllo di accesso (ACE) definisce determinate autorizzazioni per quell'oggetto o processo. Ad esempio, nel caso di un file sul sistema, il descrittore di sicurezza contiene informazioni su quali utenti o gruppi hanno il permesso di leggere o scrivere sul 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.