Social Networking Web Service

Una possibilità potrebbe essere l’utilizzo di un certo tipo di “reti sociali” in grado di funzionare esclusivamente sulla base di inviti, sulla scorta della teoria dei sei gradi di separazione http://en.wikipedia.org/wiki/Six_degrees_of_separation .

Per esempio, un servizio a soli inviti potrebbe attribuire punti agli utenti che hanno dimostrato di essere affidabili. Le organizzazioni che utilizzano un tale approccio, interrogherebbero il servizio utilizzando l’id univoco dell’utente (non collegato ad alcun dato personale) ricevendo come risposta un punteggio rappresentante l’affidabilità dell’utente basata sui servizi che l’utente stesso ha utilizzato. All’inizio una persona potrebbe avere dei limiti di accesso su alcuni siti, ma dopo un certo periodo l’utente in questione potrebbe essere riconosciuto come una controparte affidabile, con conseguente garanzia di accesso ad altri servizi online. Un’ipotetica tabelle Utente potrebbe avere una struttura del tipo:

Utente

Campo

Tipo

UserID

Contatore

ParentID

Integer

Affidabilità

Integer

PuòRaccomandare

Boolean

Euristica

Essendo il sistema basato su presentazioni, esso avrà una struttura ad albero. Se qualcuno dovesse mai abusare della fiducia, egli dovrebbe subito diventare “non affidabile”. E trattandosi di un servizio online, un beneficio concreto sarebbe che quest’informazione diverrebbe disponibile immediatamente per tutti i membri della rete.

Qualunque utente raccomandato dalla persona “incriminata”, assieme alla persona che in origine li ha raccomandati, dovrebbe essere immediatamente identificata nel caso di comportamento inaffidabile basato su euristiche determinate da una tabella storica. Se qualcuno all’interno di un ramo è inaffidabile, tutti i membri di quel ramo potrebbero avere la possibilità di richiederne la rimozione con conseguente spostamento ad un livello “base” di quel ramo, il che potrebbe assicurare che gli utenti porgano particolare attenzione a chi raccomandano, visto che potrebbe derivare una penalizzazione dall’aver raccomandato utenti non “disciplinati”.

L’ipotetica tabella StoriaUtente potrebbe avere questa struttura:

StoriaUtente

Campo

Tipo

StoriaID

Contatore

UserID

Integer

Data

Date/Time

Note

String

Affidabilità

Integer

PuòRaccomandare

Boolean

Fornitori del servizio

Il servizio dovrebbe anche prevedere l’inclusione di un elenco di organizzazioni in grado di fornire una sorta di feedback online sul comportamento degli utenti, così da evitare attacchi maliziosi aventi lo scopo di screditare specifici utenti. Se un fornitore di servizi comunica la non affidabilità di un utente, ma quella comunicazione risulta è fondata, il fornitore continuerà ad utilizzare il servizio, ma non potrà più comunicare comportamenti “anti-sociali”.

Service

Campo

Tipo

ServiceID

Contatore

StringaNome

Integer

PuòComunicare

Boolean

Per aiutare le ricerche, una tabella Utilizzo potrebbe tracciare l’uso dei servizi dap arte degli utenti, tenendo traccia di ogni incidente riportato.

Utilizzo

Campo

Tipo

UserID

Integer

ServiceID

Integer

Data

Date/Time

Incidente

String

Diagramma Entità-Relazioni

La tabella Utente è in relazione uno a molti con la tabella StoriaUtente; sia la tabella Utente che quella Service sono in relazione uno a molti con la tabella Utilizzo

Diagramma entità-relazione

Conclusioni

Certamente ci vorrebbe molto lavoro per rendere il tutto semplice ed intuitivo, così come ci vorrebbe del tempo per impiantare una comunità di questo genere, ma penso che l’uso di un servizio web basato su un network sociale rappresenti un approccio ben più ragionevole rispetto al test sulle abilità del singolo utente, oltretutto rispettoso della privacy dell’utente online.

Gli attuali CAPTCHA, testando le abilità degli utenti del Web, causano e causeranno sempre la nascita di insormontabili barriere per alcuni utenti, il che non può essere ignorato.