Codici fiscali e omocodie


codici-fiscali-e-omocodie

Ogni giorno migliaia e migliaia di applicativi sfornano codici fiscali: li calcolano dai dati personali del soggetto, li salvano e li attribuiscono alle persone. Ed è qui – il grande Bardo direbbe – che c'è l'intoppo.

Cos'è l'omocodia

Un po' di anni fa, per un progetto relativo alla formazione edile, scoprii che esiste un grosso problema con i codici fiscali: l'omocodia. L'omocodia si verifica quando un codice fiscale risulta uguale a quello di un'altra persona.

Nel dicembre 1976, il ministero delle finanze spiegava il “sistema di codificazione dei soggetti da iscrivere all'anagrafe tributaria”, ovvero il sistema per calcolare una stringa alfanumerica di 16 caratteri che identificasse univocamente ogni cittadino italiano.

Già a quell'epoca l'omocodia era stata prevista ed erano note le metodologie per gestirla, immaginando che due persone aventi stesso sesso, stessa data e luogo di nascita e nome e cognome molto simili era un caso non impossibile, ma abbastanza raro.

Al giorno d'oggi uno degli elementi sociali che più hanno influito sul problema delle omocodie è l'immigrazione: nel calcolo del codice fiscale fornito agli stranieri, viene preso in considerazione il paese di nascita e non il comune; questo fa sì che, in presenza di persone con dati simili, le varianti della stringa siano molto inferiori rispetto a quelle per le persone nate in Italia.

Il documento dell'Agenzia delle Entrate

Il 10 febbraio di quest’anno, il direttore dell’agenzia delle entrate ha realizzato un’indagine sulla problematica delle omocodie e di altri problemi legati all’uso del codice fiscale.
Il numero di omocodie gestite è di 35.800, molto basso in relazione al numero della popolazione totale, ma certamente significativo.

Nel grafico che segue è possibile vedere l'aumento, anno per anno delle omocodie: grafico numero omocodie gestite

La problematica principale è la gestione dei codici fiscali esteri, come detto precedentemente.
Il grafico che segue illustra la differenza tra l'aumento delle omocodie dei cittadini italiani e quelle dei cittadini esteri: grafico differenza omocodie italiane estere

La gestione dell'omocodia

L'agenzia delle entrate gestisce le omocodie nel seguente modo:

  • individua i codici fiscali interessati;
  • genera nuovi codici fiscali, partendo da quello delle singole persone, sostituendo i numeri con delle lettere, a partire dal fondo, seguendo una tabella di relazione;
  • annulla il codice fiscale base per renderlo non utilizzabile.

Le basi delle omocodie, ovvero i codici fiscali di partenza, vengono annullati e resi inutilizzabili perchè continuerebbero a causare omocodie.

L'inquinamento delle banche dati

Molte banche dati si basano, per identificare univocamente l'utente, sul codice fiscale.

Il problema enorme, però, è la sua autogenerazione da parte dei software.

Se sei uno sviluppatore e hai realizzato, o usato, uno script per calcolare automaticamente il codice fiscale, beh, sappi che hai contribuito a inquinare le banche dati e ad accrescere il problema.
Sei in buona compagnia: moltissimi software di gestione utenti hanno il calcolo automatico del codice fiscale (anch'io lo facevo tanto tempo fa).
A volte accade persino che ai cittadini stranieri venga calcolato il codice fiscale in un negozio e che non venga, quindi, attribuito dall'agenzia delle entrate ( o dagli Sportelli Unici per l’Immigrazione, o dalle Questure). Il risultato è che quel cittadino straniero presenterà quel codice fiscale come suo a chi gliene farà richiesta: puoi facilmente immaginare le conseguenze.

Possibili soluzioni

L'autogenerazione è quindi il male. E' incrociare i flussi. Non farlo più.
Ma cosa si fa, allora, in questi casi? Soprattutto per validare il codice fiscale in fase di inserimento dati?

Ci sono diverse soluzioni, alcune infruttuose, altre più valide:

  • controllo con espressione regolare: questa di seguito è l'espressione regolare per il codice fiscale "base" ^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z][0-9]{3}[a-z]$.
    Ma come abbiamo visto prima, all'inserimento di un codice omocodico corretto, la validazione non passerebbe anche se il codice è valido. Potresti aggiungere altre espressioni regolari che gestiscano la possibilità di avere delle lettere al posto dei numeri. Ma a questo punto si fa prima a verificare che i 16 caratteri siano numeri o lettere senza dettagliare quante e dove;
  • doppio campo input: una soluzione efficace può essere quella di far riscrivere 2 volte il codice fiscale, come per l'email, nella speranza che l'utente verifichi la correttezza del dato che inserisce. Ahimè, l'utente potrebbe copiare e incollare il dato nel secondo campo, rendendo vano lo scopo del duplice campo. Per non parlare delle litigate col tuo UX designer...
  • la presa di coscienza dell'incongruenza: questa è quella che avevo adottato. All'inserimento del codice fiscale, il sistema confronta il dato codice fiscale con quello che ricava dagli altri dati che lo compongono e controlla se combacia. Nel caso in cui non ci fosse corrispondenza, un messaggio avvisa l'utente che può correggere o confermare l'inserimento. esempio messaggio validazione omocodia
    E' una soluzione che impatta poco sull'usabilità: certo, aumenta di un passaggio la procedura di inserimento dati (in caso di avviso, l'utente viene riportato al form per verificare i dati) ma è un passaggio utile che richiede la presa di responsabilità dell'utente per l'inserimento di un codice fiscale anomalo.

Conclusioni

Se il codice fiscale è il dato su cui si basa il tuo sistema deve essere corretto e univoco: un codice attribuito ad una persona diversa può creare scenari imprevedibili.
Purtroppo, per i limiti che si porta dietro l'algoritmo, è possibile solo cercare di forzare l'utente a controllare il dato che inserisce.
Ovviamente una soluzione molto affidabile ci sarebbe: un bel webservice dell'agenzia delle entrate da interrogare all'occorrenza.
Ma al momento non c'è, mettiti il cuore in pace.
C'è la verifica online, ma non è utilizzabile con automatismi ed è solo per utenti umani (compila il captcha!): la trovi a questo indirizzo.


FONTI

Blog tags


Cerca un post


Ultimi tweet


pubblicato il {{ tweet.created_at | formattaData }}