Tramite la contact form mi è stato chiesto come mai molti programmatori parlano ed utilizzano XML per le proprie applicazioni ed il perchè nessuno applica sistemi di protezione su XML. Visto che ho affrontato l'argomento alcuni mesi indietro per un importante progetto.. beh facciamola a modo nostro.. blogghiamoci sopra ;).

Prendendo spunto da questo “gradito” messaggio, inauguriamo l’inizio dei post relativi ad XML e Sicurezza. Il tutto sempre trovando il giusto collegamento con .NET.

Bene tutti quanti sappiamo come e perché funziona XML, pertanto possiamo subito partire a parlare di cose interessanti. Prendiamo d’esempio questo file XML seguente.

<Order>
   <Items>
      <Item 
ID="123456789">
         <Description>
SuperEfficient GC</Description>
         <Price>
0.99</Price>
      <
/Item>
   <
/Items>
   <Payment 
Method="Credit" Type="HighInterest">
      <Number>
7890123456789012</Number>
      <ExpirationDate>
12/12/2003</ExpirationDate>
   <
/Payment>
<
/Order>

Il problema vero e proprio non è il viaggio che questo file può affrontare tra i numerosi server e-commerce di una classica applicazione. Per anni ormai questi files passano su canali https o business channels. Il vero problema che difficilmente si affronta è:

Come posso mettere in sicurezza i dati? Come posso firmarli e criptarli in modo che un altro programma possa verificare la firma e successivamente passare ad una operazione di decrypt senza incontrare problemi relativi alla piattaforma che li ha generati ( es : 1 server Windows 2003 Server ed un Server Novel?

La risposta l’abbiamo già a disposizione.
Il World Wide Web Consortium (W3C) si è già accorto del problema ed attualmente esistono due specifiche che spiegano in modo abbastanza chiaro come sia possibile firmare e criptare i i dati XML. Queste si chiamano XML Signatures e XML Encryption le quali le verranno spiegate a fondo nei prossimi post (Sec23-Sec24).

PS = Andrea Saltarello spacca di brutto. ;)