P3P è la tecnologia definita dal W3C per la gestione della privacy sul Web, ne abbiamo già parlato in un precedente articolo. Tramite un opportuno documento scritto in questo linguaggio basato su XML, un sito Web può dichiarare le politiche di gestione dei dati personali adottate.
La definizione formale delle politiche di gestione della privacy secondo lo standard P3P si presta all'interpretazione automatica delle dichiarazioni ed al confronto con le preferenze dell'utente, ma come può essere concretamente sfruttata una dichiarazione P3P di un sito?
Lo scenario
Immaginiamo di avere un browser abilitato all'interpretazione delle politiche P3P. Questo browser ci consentirà anche la definizione delle nostre preferenze in merito alla gestione dei dati personali. Ad esempio, potremmo indicare di voler essere avvisati ogni volta che visitiamo un sito che dichiara di fornire a terze parti i dati acquisiti.
A questo punto possiamo navigare sul Web affidando al nostro browser il compito di confrontare automaticamente le nostre preferenze con le politiche P3P dichiarate dai vari siti Web.
In pratica, il browser accede ad un sito e verifica se è pubblicato un file P3P. In caso affermativo confronta le dichiarazioni P3P con le nostre preferenze e si comporta come da noi richiesto. Se la politica P3P del sito è compatibile con le nostre preferenze non avviene nessuna segnalazione. In caso contrario verremo avvisati e ci verrà notificato quale preferenza viene violata.
L'anello mancante per la realizzazione di questo scenario è la definizione delle nostre preferenze sulla privacy. La soluzione proposta dal W3C è APPEL, "A P3P Preference Exchange Language", ancora una volta un linguaggio basato su XML.
Le regole dell'utente
APPEL completa l'infrastruttura per la creazione di una piattaforma standard per la gestione delle politiche di gestione della privacy sul Web.
Il linguaggio consente di definire un insieme di regole, detto ruleset
, che permette ad un browser abilitato di prendere decisioni automatiche o semi-automatiche sull'accettabilità della politica P3P pubblicate da un sito Web.
Struttura generale di un ruleset APPEL
<?xml version="1.0"?>
<appel:RULESET xmlns:appel="http://www.w3.org/2001/02/APPELv1"
xmlns:p3p="http://www.w3.org/2000/12/P3Pv1"
crtdby="W3C" crtdon="Thu Oct 12 16:23:54 2006">
<appel:RULE behavior="..." description="..." >
...
</appel:RULE>
<appel:RULE behavior="..." description="..." >
...
</appel:RULE>
</appel:RULESET>
Come è evidente, si tratta di un elemento radice <RULESET>
che contiene un insieme di elementi <RULE>
.
Un esempio di regola APPEL
<appel:RULE behavior="limited"
description="Se non esplicitamente vietato, il sito può condividere informazioni di identificazione con altre aziende ed enti"
>
<p3p:POLICY >
<p3p:STATEMENT appel:connective="and" >
<p3p:RECIPIENT appel:connective="or" >
<p3p:same required="opt-out" />
<p3p:other-recipient required="opt-out" />
<p3p:unrelated required="opt-out" />
<p3p:public required="opt-out" />
</p3p:RECIPIENT>
<p3p:DATA-GROUP >
<p3p:DATA >
<p3p:CATEGORIES appel:connective="or" >
<p3p:physical />
<p3p:online />
<p3p:government />
</p3p:CATEGORIES>
</p3p:DATA>
</p3p:DATA-GROUP>
</p3p:STATEMENT>
</p3p:POLICY>
</appel:RULE>
Come indicato nell'attributo description
, questa regola individua le dichiarazioni P3P che prevedono la condivisione con terze parti dei dati identificativi dell'utente.
Da un punto di vista sintattico, abbiamo un esempio di applicazione di elementi provenienti da diversi namespace. Gli elementi prefissati da p3p provengono dalla grammatica P3P, mentre il prefisso appel individua gli elementi specifici del nostro linguaggio.
Quindi una regola APPEL non è altro che un elenco di elementi P3P da confrontare con il contenuto delle politiche pubblicate da un sito Web. APPEL mette a disposizione l'attributo connective
(connettivo logico) che indica se gli elementi P3P contenuti devono essere presenti contemporaneamente (and
) o è sufficiente che ne sia presente soltanto uno (or
).
L'attributo behavior
dell'elemento <RULE>
indica il comportamento che il browser deve assumere in presenza di politiche P3P che soddisfano la regola. I valori previsti sono:
request
: la politica P3P individuata è accettabile, si può quindi procedere con la richiesta della risorsalimited
: la politica P3P individuata è parzialmente accettabile; alcune informazioni richieste non dovrebbero essere inviateblock
: la politica P3P individuata non è accettabile e la richiesta della risorsa viene bloccata
Il modello di elaborazione
Sostanzialmente il comportamento di un browser che supporta APPEL effettua la valutazione delle politiche P3P di un sito Web nel seguente modo:
- ciascuno
<STATEMENT>
del file P3P viene confrontato con le regole delruleset
- il criterio di valutazione delle regole è sequenziale
- la prima regola che individua uno
<STATEMENT>
P3P viene applicata e termina la valutazione
Un problema di valutazione riguarda il caso in cui nessuna regola è applicabile, ad esempio quando non è presente un file P3P. Cosa deve fare il browser in questi casi?
APPEL prevede l'elemento <appel:OTHERWISE>
che individua la regola da applicare in queste situazioni e che normalmente dovrebbe essere presente essere in fondo al ruleset
.
Si potrebbe definire una regola che accetta qualsiasi risorsa per la quale non è specificata una politica P3P.
<appel:RULE behavior="request" >
<appel:OTHERWISE />
</appel:RULE>
oppure chiedere l'intervento dell'utente:
<appel:RULE behavior="limited" prompt="yes"
promptmsg="Nessuna politica dichiarata. Vuoi procedere?">
<appel:OTHERWISE/>
</appel:RULE>
In quest'ultimo esempio notiamo l'uso degli attributi prompt
e promptmsg
pensati appunto per la richiesta di intervento da parte dell'utente.
Conclusioni
In questa rapida panoramica su APPEL abbiamo avuto modo di vedere come è possibile esprimere le proprie preferenze per la gestione dei dati personali e come un potenziale browser abilitato può confrontarle con le politiche P3P dichiarate da un sito Web.
Purtroppo al momento il supporto dell'infrastruttura messa a punto da P3P e APPEL non è molto diffuso. Non sono molti infatti i siti Web che pubblicano la propria politica di gestione della privacy mediante P3P. D'altro canto, non mi risulta un vero supporto APPEL da parte dei browser web più diffusi. Eppure la combinazione tra le due tecnologie offrirebbe una maggiore trasparenza nella trasmissione dei dati personali sul Web.