# Autenticació (informàtica)

La autenticació és l'acte o procés de confirmar que alguna cosa (o algú) és qui diu ser. A la part que s'identifica se l'anomena emprovador. A la part que verifica la identitat se l'anomena verificador. És habitual que l'emprovador sigui un usuari que vol accedir a certs recursos i el verificador sigui un sistema que protegeix l'accés a aquests recursos i ha de verificar que el que accedeix sigui un usuari que té permisos per accedir a aquests recursos. Per poder tenir autenticació és necessària, com a condició prèvia, l'existència d'identitats biunívocament identificades de tal forma que es permeti la seva identificació.

## Definicions

Autenticació o millor dit acreditació, en termes de seguretat de xarxes de dades, es pot considerar un dels tres passos fonamentals (AAA). Cadascun, de forma ordenada:
   * Autenticació. En la seguretat d'ordinador, l'autenticació és el procés d'intent de verificar la identitat digital del remitent d'una comunicació com una petició per connectar-se. El remitent sent autenticat pot ser una persona que usa un ordinador, un ordinador per si mateix o un programa de l'ordinador. En un web de confiança, "autenticació" és una manera d'assegurar que els usuaris són qui ells diuen que ells són - que l'usuari que intenta realitzar funcions en un sistema està autoritzat per fer-ho.
   * Autorització. Procés pel qual la xarxa de dades autoritza a l'usuari identificat a accedir a determinats recursos.
   * Auditoria. Mitjançant la qual la xarxa o sistemes associats registren tots i cadascun dels accessos als recursos que realitza l'usuari autoritzats o no.
El problema de l'autorització sovint, és idèntic a la d'autenticació; molts protocols de seguretat extensament adoptats estàndard, regulacions obligatòries, i fins a estatuts estan basats en aquesta assumpció. No obstant això, l'ús més exacte descriu l'autenticació com el procés de verificar la identitat d'una persona, mentre l'autorització és el procés de verificació que una persona coneguda té l'autoritat per realitzar una certa operació. L'autenticació, per tant, ha de precedir l'autorització. Per distingir l'autenticació de l'autorització de terme estretament relacionada, existeixen unes notacions de taquigrafia que són: A1 per a l'autenticació i A2 per a l'autorització que de tant en tant són usades,també existeixen els termes AuthN i AuthZ que són usats en algunes comunitats.

## Tipus d'autenticació

Els mètodes d'autenticació estan en funció del que utilitzen per a la verificació i aquests es divideixen en tres categories:
   * Sistemes basats en alguna cosa conegut. Exemple, un password (Unix) o passphrase (PGP).
   * Sistemes basats en alguna cosa posseït. Exemple, una targeta d'identitat, una targeta intel·ligent (smartcard), dispositiu usb tipus epass token, targeta de coordenades, smartcard o dongle criptogràfic.
   * Sistemes basats en una característica física davant usuari o un acte involuntari del mateix: Exemple, verificació de veu, d'escriptura, de petjades, de patrons oculars..

## Característiques d'autenticació

Qualsevol sistema d'identificació ha de posseir unes determinades característiques per ser viable:
   * Ha de ser fiable amb una probabilitat molt elevada (amb dades d'errors en els sistemes menys segurs)....
   * Econòmicament factible per a l'organització (si el seu preu és superior al valor del que s'intenta protegir, tenim un sistema incorrecte).
   * Suportar amb èxit cert tipus d'atacs.
   * Ser acceptable per als usuaris, que seran al cap i a la fi els qui ho utilitzin.
   * Resposta immediata, directa, intel·ligent, senzilla, davant cada situació.

## Mecanisme d'autenticació

Per autenticar és necessari establir un protocol de comunicació entre les parts de manera que la part verificadora (normalment) prova verificar que la part que s'identifica (normalment un usuari) efectivament és qui diu que és. En general el procés d'autenticació consta dels següents passos:
   * L'emprovador sol·licita accés a un sistema.
   * El verificador sol·licita a l'usuari que s'autentiqui.
   * L'emprovador aporta les credencials que li identifiquen i permeten verificar l'autenticitat de la identificació.
   * El verificador valguda segons les seves regles si les credencials aportades són suficients per donar accés a l'usuari o no.

## Control d'accés

Un exemple familiar és el control d'accés. Un sistema informàtic supòsit per ser utilitzat solament per aquells autoritzats, ha de procurar detectar i excloure el desautoritzat. L'accés a ell per tant és controlat generalment insistint en un procediment de l'autenticació per establir amb un cert grau establert de confiança la identitat de l'usuari, per tant concedint aquests privilegis com pot ser autoritzat a aquesta identitat. Els exemples comuns del control d'accés que impliquen l'autenticació inclouen:
   * Retirar diners d'un caixer automàtic.
   * Control d'un ordinador remot sense Internet.
   * Ús d'un sistema de banca per Internet.
Per intentar provar la identitat d'un subjecte o objecte possible aplicar una o més proves que, si s'aproven, s'han declarat prèviament per ser suficients procedir. El problema és determinar-se quines proves són suficients, i molts tals són inadequades. Han estat molts casos de tals proves que són enganyades amb èxit; tenen per la seva falta demostrada, ineludible, ser inadequades. Molta gent continua mirant les proves -- i la decisió per mirar èxit a passar -com a acceptable, i per culpar la seva falta en “descuit” o “incompetència” de part d'algú. El problema és que la prova va ser suposada per treballar en la pràctica -- no sota condicions ideals de cap descuit o incompetència-i no. És la prova que ha fallat en tals casos. Considerar la caixa molt comuna d'un correu electrònic de la confirmació al com hagi de ser contestat per activar un compte en línia d'una certa classe. ja que el correu electrònic es pot arreglar fàcilment per anar a o per venir d'adreces falses i untraceable, est és just sobre la menys autenticació robusta possible. L'èxit a passar aquesta prova significa poc, sense consideració alguna cap a sloppiness o incompetència.

## Autenticació per multifactor

Els factors de l'autenticació per als éssers humans es classifiquen, generalment, en quatre casos:
      * Alguna cosa que l'usuari és (exemple, l'empremta digital o el patró de retina), la seqüència d'ADN (hi ha definicions classificades de quin és suficient), el patró de la veu (una altra vegada diverses definicions), el reconeixement de la signatura, els senyals bio-elèctriques úniques produïdes pel cos viu, o un altre identificador biomètric).
      * Alguna cosa que l'usuari té (exemple, targeta de la identificació, símbol de la seguretat, símbol del programari o telèfon mòbil)
      * Alguna cosa que l'usuari sap (exemple, una contrasenya, una frase o un nombre d'identificació personal (el PIN) del pas).
      * Alguna cosa que l'usuari fa (exemple, reconeixement de veu, signatura, o el pas).
       i
      * Autenticació mitjançant dos factors "alguna cosa que tinc" la clau + "alguna cosa que sé" un nombre de PIN (token criptogràfic)
      * Autenticació triple factor "alguna cosa que tinc" el dispositiu criptogràfic + "alguna cosa que sé" una clau d'autenticació tipus PIN (al token criptogràfic) + "qui sóc" l'empremta dactilar que em permet autenticar-me al dispositiu de forma unívoca.
Una combinació de mètodes s'utilitza de vegades, exemple, una targeta de banc i un PIN, en aquest cas s'utilitza el terme “autenticació de dos factors”. Històricament, les empremtes digitals s'han utilitzat com el mètode més autoritari d'autenticació, però processos legals recents als EUA i a una altra part han aixecat dubtes fonamentals sobre fiabilitat de l'empremta digital. Altres mètodes biomètrics són prometedors (les exploracions retinianas i de l'empremta digital són un exemple), però han demostrat ser fàcilment enganyats en la pràctica. En un context de les dades de l'ordinador, s'han desenvolupat protocols de repte-resposta que permeten l'accés si el que es vol autenticar respon correctament a un desafiament proposat pel verificador. Hi ha protocols repte-resposta basats en algorismes criptogràfics cridant-se protocols criptogràfics de desafiament-resposta. La seguretat dels protocols criptogràfics de desafiament-resposta es basa en la seguretat dels algorismes criptogràfics que usa.

## Autenticació

L'autenticació va ser definit per Arnnei Speiser en 2003 mentre que la web va basar el servei que proporciona en l'autenticació d'usuaris finals que tenen accés (Login) a un servei d'Internet. L'autenticació és similar a la verificació de la targeta de crèdit per als llocs web de l'eCommerce. La verificació és feta per un servei dedicat que rebi l'entrada i retorni la indicació de l'èxit o de fallada. Per exemple, un usuari final desitja entrar en el seu lloc web. Ell aconsegueix entrar en una pàgina Web de la connexió que requereix per a accés, el seu user-id i una contrasenya o als llocs assegurats i la seva contrasenya alhora. La informació es transmet al servei de l'eAuthentication com a pregunta. Si el servei retorna èxit, es permet a l'usuari final entrar en el servei d'aquesta pàgina web amb els seus privilegis com a usuari.

## Autenticació d'usuaris en Unix
### Autenticació clàssica

En un sistema Unix habitual cada usuari posseeix un nom d'entrada al sistema o login i una clau o password; tots dos dades s'emmagatzemen generalment en el fitxer /etc/passwd. Aquest arxiu conté una línia per usuari on s'indica la informació necessària perquè els usuaris puguin connectar al sistema i treballar en ell, separant els diferents camps mitjançant ':'.
Al contrari del que molta gent creu, Unix no és capaç de distingir als seus usuaris pel seu nom d'entrada al sistema. Per al sistema operatiu el que realment distingeix a una persona d'una altra (o almenys a un usuari d'un altre) és l'UID de l'usuari en qüestió; el login és alguna cosa que s'utilitza principalment per a comoditat de les persones (òbviament és més fàcil acordar-se d'un nom d'entrada com toni que d'un UID com 2643, sobretot si es tenen comptes en diverses màquines, cadascuna amb un UID diferent).
Per xifrar les claus d'accés dels seus usuaris, el sistema operatiu Unix empra un criptosistema irreversible que utilitza la funció estàndard de C crypt, basada en l'algorisme DONIS. Per a una descripció exhaustiva del funcionament de crypt. Aquesta funció pren com a clau els vuit primers caràcters de la contrasenya triada per l'usuari (si la longitud d'aquesta és menor, es completa amb zeros) per xifrar un bloc de text en clar de 64 bits posats a zero; per evitar que dos passwords iguals resultin en un mateix text xifrat, es realitza una permutació durant el procés de xifrat triada de forma automàtica i aleatòria per a cada usuari, basada en un camp format per un nombre de 12 bits (amb el que aconseguim 4096 permutacions diferents) anomenat salt. El xifrat resultant es torna a xifrar utilitzant la contrasenya de l'usuari de nou com a clau, i permutant amb el mateix salt, repetint-se el procés 25 vegades. El bloc xifrat final, de 64 bits, es concatena amb dos bits zero, obtenint 66 bits que es fan representables en 11 caràcters de 6 bits cadascun i que, juntament amb el salt, passen a constituir el camp password del fitxer de contrasenyes, usualment /etc/passwd. Així, els dos primers caràcters d'aquest camp estaran constituïts pel salt i els 11 restants per la contrasenya xifrada.

#### Problemes del model clàssic

Els atacs de text xifrat escollit constitueixen la principal amenaça al sistema d'autenticació d'Unix; a diferència del que molta gent creu, no és possible desxifrar una contrasenya, però és molt fàcil xifrar una paraula al costat d'un determinat salt, i comparar el resultat amb la cadena emmagatzemada en el fitxer de claus. D'aquesta forma, un atacant llegirà el fitxer /etc/passwd (aquest fitxer ha de tenir permís de lectura per a tots els usuaris si volem que el sistema funcioni correctament), i mitjançant un programa endevinador (o crackejador) xifrarà totes les paraules d'un fitxer denominat diccionari (un fitxer ASCII amb un gran nombre de paraules de qualsevol idioma o camp de la societat: història clàssica, esport, cantants...), comparant el resultat obtingut en aquest procés amb la clau xifrada del fitxer de contrasenyes; si tots dos coincideixen, ja ha obtingut una clau per accedir al sistema de forma no autoritzada.

### Shadow Password

Altre mètode cada dia més utilitzat per protegir les contrasenyes dels usuaris el denominat Shadow Password o enfosquiment de contrasenyes. La idea bàsica d'aquest mecanisme és impedir que els usuaris sense privilegis puguin llegir el fitxer on s'emmagatzemen les claus xifrades.

### Envelliment de contrasenyes

En gairebé totes les implementacions de Shadow Password actuals se sol incloure la implementació per a un altre mecanisme de protecció de les claus denominat envelliment de contrasenyes (Password Aging). La idea bàsica d'aquest mecanisme és protegir els passwords dels usuaris donant-los un determinat període de vida: una contrasenya solament va a ser vàlida durant un cert temps, passat el qual expirarà i l'usuari haurà de canviar-la.
Realment, l'envelliment prevé, més que problemes amb les claus, problemes amb la transmissió d'aquestes per la xarxa: quan connectem mitjançant mecanismes com telnet, ftp o rlogin a un sistema Unix, qualsevol equip entre el nostre i el servidor pot llegir els paquets que enviem per la xarxa, incloent aquells que contenen el nostre nom d'usuari i la nostra contrasenya.

### Altres mètodes

Alguna cosa pel que s'ha criticat l'esquema d'autenticació d'usuaris d'Unix és la longitud, per a propòsits d'alta seguretat, massa talla de les seves claus; el que fa anys era poc més que un plantejament teòric, actualment és alguna cosa factible: sense ni tan sols entrar en temes de maquinari dedicat, segurament massa car per a la majoria d'atacants, amb un superordinador és possible trencar claus d'Unix en menys de dos dies.
Un mètode que augmenta la seguretat de les nostres claus enfront d'atacs d'intrusos és el xifrat mitjançant la funció coneguda com bigcrypt o crypt16, que permet longituds per a les claus i els salts més llargues que crypt i no obstant això, encara que s'augmenta la seguretat de les claus, el problema que es presenta aquí és la incompatibilitat amb les claus de la resta d'Unices que segueixin utilitzant crypt; est és un problema comú amb altres aproximacions que també es basen a modificar l'algorisme de xifrat, quan no a utilitzar un de nou.

## PAM

PAM (Pluggable Authentication Module) no és un model d'autenticació en si, sinó que es tracta d'un mecanisme que proporciona una interfície entre les aplicacions d'usuari i diferents mètodes d'autenticació, tractant d'aquesta forma de solucionar un dels problemes clàssics de l'autenticació d'usuaris: el fet que una vegada que s'ha definit i implantat cert mecanisme en un entorn, és difícil canviar-ho. Mitjançant PAM podem comunicar a la nostra aplicacions amb els mètodes d'autenticació que desitgem d'una forma transparent, la qual cosa permet integrar les utilitats d'un sistema Unix clàssic (login, ftp, telnet...) amb esquemes diferents de l'habitual password: claus d'un sol ús, biomètrics, targetes intel·ligents...
La gran majoria de les aplicacions de linux usen aquests mètodes (PAM) per autenticar-se enfront del sistema, ja que una aplicació preparada per PAM (PAM-aware) pot canviar el mecanisme d'autenticació que usa sense necessitat de recompilar els fonts. Fins i tot es pot arribar a canviar el sistema d'autenticació local sense si més no tocar les aplicacions existents.
PAM ve 'de sèrie' en diferents sistemes Unix, tant lliures com a comercials, i el nivell d'abstracció que proporciona permet coses tan interessants com kerberitzar nostra autenticació (almenys la parteix servidora) sense més que canviar la configuració de PAM, que es troba bé en el fitxer /etc/pam.conf o bé en diferents arxius dins del directori /etc/pam.d/
PAM treballa amb quatre tipus separats de tasques d'administració: authentication, account, session, i password. L'associació de l'esquema d'administració preferit amb el comportament de l'aplicació es fa mitjançant arxius de configuració. Les funcions d'administració les fan mòduls que s'especifiquen en l'arxiu de configuració. Més endavant s'expliqués breument la sintaxi de l'arxiu de configuració ja que es va fora de l'abast d'aquest article.
Quan una aplicació preparada per PAM inicia, s'activa la seva comunicació amb l'API de PAM. Entre altres coses això força la lectura de l'arxiu de configuració: /etc/pam.conf. Alternativament pot ser que s'iniciï la lectura dels arxius de configuració sota /etc/pam.d/ (quan existeix un arxiu de configuració correcte sota aquest directori, s'ignora l'arxiu /etc/pam.conf)

### Sintaxi de l'arxiu de configuració

L'arxiu (/etc/pam.conf) està format per una llista de regles (típicament una per línia). Cada regla és un conjunt de camps separats per espais (els tres primers són casi-sensitives):
service type control module-path module-arguments
La sintaxi dels arxius baix /etc/pam.d/ és igual tret que no existeix el camp "service". En aquest cas "service" és el nom de l'arxiu en el directori /etc/pam.d/ (el nom de l'arxiu ha d'estar en minúscules) Usualment service és el nom del servei o aplicació comunament usat, exemple d'això són login, el seu i ssh.
type especifica al fet que grup d'administració està associada la regla. Les entrades vàlides són:
   * account: aquest mòdul maneja el compte sense basar-se en autenticació. Típicament s'usa per restringir/permetre l'accés a un servei basat en l'hora o potser des d'on es logueja l'usuari (ex.: root només es pot loguejar des de consola
   * auth: proveeix mecanisme d'autenticació (l'usuari és qui diu ser).
   * password: aquest mòdul és requerit per modificar la password de l'usuari.
   * session: aquest mòdul està associat amb fer tasques prèvies i/o posteriors a l'inici del servei mateix (poden ser coses com muntar un directori, activar loguins, etc.).
El tercer camp control especifica que fer si falla el control aplicat. Existeixen dues sintaxis per a aquest camp, una senzilla d'un camp i una altra que especifica més d'un camp dins de claudàtors rectes Per a la bàsica, les opcions són:
   * required: indica que aquesta regla ha de ser reeixida, en cas contrari l'usuari no és autoritzat a córrer el servei. Si falla es retorna el control al programa, però abans s'executen tots els mòduls.
   * requisite: és com el required, però retorna el control al programa de seguida en fallar.
   * sufficient: Si aquest mòdul es verifica, llavors (es retorna) se li dona l'ok al programa i no se segueix verificant els altres mòduls.
   * optional: la falla o no d'aquest mòdul és solament important si és l'únic existent.
El quart camp module-path especifica el path al mòdul PAM associat amb la regla. Els mòduls es troben en /lib/security.
El cinquè camp module-arguments és un conjunt de zero o més arguments passats al mòdul durant la seva invocació. Els arguments varien segons el mòdul.
La configuració dels arxius de configuració sota /etc/pam.d/ resulta ser més flexible (s'evita tenir una arxiu únic enorme). Sota aquest directori es pot trobar l'arxiu de configuració personal d'un servei particular com ser ssh. L'única diferència entre la sintaxi de l'arxiu /etc/pam.conf és que no existeix el camp service.

## Vegeu també

* Criptografia
* Secure Shell
* RADIUS
* DIAMETER
* Test de CAPTCHA
* Punt d'accés
* Kerberos
* Protocol lleuger d'accés a directoris

## Referències

* ↑ «What is Authentication? Definition of Authentication, Authentication Meaning». [Consulta: 15 novembre 2020].
* 1 2 3 «Digital Authentication: The Basics». Cryptomathic. Arxivat de l'original el 14 agost 2016. [Consulta: 9 agost 2016].
* ↑ «Draft NIST Special Publication 800-63-3: Digital Authentication Guideline». National Institute of Standards and Technology, USA. Arxivat de l'original el 13 setembre 2016. [Consulta: 9 agost 2016].
* ↑ Federal Financial Institutions Examination Council. «Authentication in an Internet Banking Environment», 2008. Arxivat de l'original el 2010-05-05. [Consulta: 31 desembre 2009].