Elastyczna ochrona w elektronicznej wymianie danych
- 01.12.2003
Język XML jest już powszechnie wykorzystywany w serwisach internetowych oraz elektronicznej wymianie danych. Nowe standardy bezpieczeństwa zwiększają zakres jego możliwości.
Język XML jest już powszechnie wykorzystywany w serwisach internetowych oraz elektronicznej wymianie danych. Nowe standardy bezpieczeństwa zwiększają zakres jego możliwości.
Elektroniczna wymiana danych (EDI - Electronic Data Interchange) to przede wszystkim możliwość kontaktowania się w sposób elektroniczny między współpracującymi firmami czy organizacjami, niezależnie od zainstalowanego w tych firmach oprogramowania i wykorzystywanych formatów danych.
Jeszcze kilka lat temu powszechnymi standardami EDI były ANSI X.12 (Ameryka Północna) oraz UN/EDIFACT (reszta świata). Rozwiązania te mają jednak pewne wady: są drogie i bardzo skomplikowane - dokumenty EDI miały bardzo złożoną, sztywną strukturę. Obecnie coraz większa część elektronicznej wymiany wykorzystuje język XML. Istnieją międzynarodowe inicjatywy na rzecz wykorzystania XML w elektronicznej wymianie danych, np. ebXML (electronic business XML), BizTalk Framework, OAGIS (The Open Applications Group Integration Specification), BASDA (The Business Application Software Developers Association) czy specjalizowane RosettaNet (przemysł elektroniczny) i OTA (The OpenTravel Alliance - turystyka). Trwają nawet prace nad adaptacją standardu X.12 do formatu XML.
Wymiana EDI może dotyczyć nie tylko podmiotów gospodarczych, ale także urzędów (np. wymiana między urzędem skarbowym a podatnikiem czy szpitalem a Narodowym Funduszem Zdrowia), organizacji niekomercyjnych czy nawet pojedynczych osób (np. wymiana danych w systemach aukcyjnych). Przekazywanie danych może się odbywać nie tylko między odrębnymi instytucjami, lecz także w ramach tej samej organizacji (np. komunikacja pomiędzy oddziałami lub różnymi wykorzystywanymi systemami) lub nawet w obrębie jednego systemu. Ważnym przykładem są usługi web services, w których dane pomiędzy niezależnymi systemami/komponentami są przesyłane za pomocą protokołu SOAP (Simple Object Access Protocol). Przesyłane dane mają oczywiście format XML.
Bezpieczeństwo elektronicznej wymiany danych
Ważnym aspektem przesyłania danych jest ich bezpieczeństwo. Ma to szczególne znaczenie w przypadku wykorzystywania ogólnodostępnych kanałów transmisji, jakie oferuje Internet. Projektant takiej wymiany ma do dyspozycji typowe rozwiązania: wirtualne sieci prywatne (VPN), wirtualne sieci lokalne (VLAN), protokół SSL (Secure Socket Layer), stosowany często w komunikacji poprzez HTTP, czy S/MIME (Secure Multipurpose Internet Mail Extensions), wykorzystywany zwłaszcza do zabezpieczania listów poczty elektronicznej. Metody te są jednak ogólne, tzn. traktują dokument XML jak każdy inny i chronią całą jego zawartość. Ponadto VPN czy SSL dotyczą wyłącznie transmisji i po jej zakończeniu informacja o zabezpieczeniach (np. podpis elektroniczny) ginie. Oprócz tego są w nich uwierzytelniane najczęściej systemy (serwery, stacje), a nie autorzy wiadomości (użytkownicy), co może mieć istotne znaczenie, np. w procesach sądowych.
Innym rozwiązaniem jest zastosowanie nowych, ostatecznie zatwierdzonych w 2002 r. standardów bezpieczeństwa specjalizowanych do języka XML, czyli podpisów elektronicznych (XML Signature) oraz szyfrowania (XML Encryption). Standardy te - jak cała koncepcja języka XML - są bardzo elastyczne. Dzięki nim można w szczególności:
- zabezpieczyć niemal dowolny fragment dokumentu XML, np. tylko numer karty kredytowej w informacji o płatności lub cenę hurtową w katalogu produktów, pozostawiając resztę dokumentu niechronioną;
- zabezpieczyć kilka fragmentów jednym mechanizmem, np. podpisać wszystkie poprawki naniesione przez redagującego (przydatne zapewne przy redagowaniu ustaw i przekazywaniu ich drogą elektroniczną), czy zaszyfrować wszystkie ceny z katalogu jednym kluczem;
- zastosować wiele różnych zabezpieczeń (podpisów i szyfrów) dla tych samych danych chronionych, np. kilka podpisów złożonych pod uchwałą przez wszystkie upoważnione osoby czy zaszyfrować dane dla kilku różnych odbiorców;
- stosować różne, nawet własne, algorytmy kryptograficzne oraz ich różne parametry;
- zabezpieczać dane binarne, np. podpisywać obrazki lub programy;
- dowolnie rozdzielać lub łączyć dane zabezpieczone i dane źródłowe, w tym powoływać się na dane rozproszone w sieci, np. podpisać zdalną stronę WWW, zaś klucz niezbędny do weryfikacji podpisu umieścić na jeszcze innym serwerze.