EDI, XML i ochrona danych Przemysław Kazienko Zakład Systemów Informacyjnych, Wydział Informatyki i Zarządzania Politechnika Wrocławska kazienko@pwr.wroc.pl http://www.pwr.wroc.pl/~kazienko
EDI Elektroniczna wymiana danych (Electronic Data Interchange) Klucz do rozwoju współczesnych przedsiębiorstw i społeczeństw Wymiana na poziomie systemów Wymiana na poziomie organizacji Wymiana danych to także PROCESY BIZNESOWE Standardy EDI, np. UN/EDIFACT (Electronic Data Interchange For Administration, Commerce and Transport), SWIFT Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 2
EDI na poziomie systemów Wymiana pomiędzy modułami jednej aplikacji Pomiędzy aplikacjami Usługi web services Z systemów transakcyjnych do hurtowni (ładowanie) EAI (Enterprise Application Integration), systemy middleware integracja systemów wewnątrz instytucji Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 3
EDI na poziomie organizacji Holding Kontrahent Oddział Oddział ZUS Firma Klient Bank Urząd Gminy Urząd Skarbowy NFZ Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 4
XML Rodzina standardów Format tekstowy (niezbędny dla EDI) Znany i powszechny Integracja z WWW (przeglądarki, serwery) Współpraca z bazami danych (Oracle, SQL Server) Możliwość walidacji (sprawdzenie poprawności strukturalnej) schematy XML Schema, DTD Wyszukiwanie XPath, XQuery Transformacje - XSLT Łączenie i integracja XLink, relacje key-keyref, XInclude, encje Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 5
EDI a XML Dokumenty XML zawierają wymieniane dane XML w EDI to aktualnie konieczność Rozwiązuje problem formatu, narzędzi, dostępności, ale nie problem identyfikacji Stare standardy EDI są przenoszone do języka XML, np. SWIFTStandards XML Nowe standardy EDI XML, np. ebxml Usługi web services Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 6
Dotychczasowe mechanizmy bezpieczeństwa Dedykowane łącza (EDIFACT, SWIFT) Zabezpieczanie dokumentów: PGP S/MIME, PEM Systemy dedykowane Wady: brak uznanych standardów (poza S/MIME), nie specjalizowane do wymiany danych, implementacje zwykle ograniczone do konkretnych protokołów, np. pocztowych Zalety: tanie (oprócz dedykowanych łącz), niezależne od kanałów transmisji, bezpieczne po przesłaniu Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 7
Zabezpieczanie transmisji Zabezpieczanie transmisji w sieciach ogólnych: SSL/TLS VPN, IPSec WEP WTLS VLAN Wady: brak dowodów po jej zakończeniu, mechanizmy bezpieczeństwa zwykle nie najsilniejsze, nie specjalizowane do wymiany dokumentów Zalety: tanie, powszechne Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 8
Alternatywa: standardy bezpieczeństwa XML Podpisywanie Szyfrowanie Weryfikacja podpisu XML Signature Deszyfrowanie XML Encryption Rekomendacja 02.2002 Rekomendacja 12.2002 Standard WWW Consortium Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 9
XML Encryption i XML Signature Języki wywodzące się z XML (zintegrowane z XML)... a więc mające postać tekstową Obsługa przestrzeni nazw (namespaces) Obsługa schematów XML Schema Obsługa XPath (do wskazywania, także adresy URI) Możliwość integracji z dowolnym językiem wywodzącym się z XML (np. XHTML, XSLT, SVG, WSDL,...) także XML Encryption z XML Signature Możliwość rozbudowy, np. dodawanie własnych parametrów, stempli czasowych, itd. Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 10
XML Encryption i XML Signature Zabezpieczanie fragmentów dokumentu XML (np. tylko treść elementu NrKartyPłatniczej lub Cena) Zabezpieczanie kilku fragmentów a nawet dokumentów za jednym zamachem Jednoczesne zastosowanie różnych zabezpieczeń (szyfrowania i podpisów) dla różnych fragmentów tego samego dokumentu Możliwość zastosowania różnych (także własnych) algorytmów i ich parametrów Możliwość zabezpieczania danych binarnych, także multimediów Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 11
XML Signature Podpis elektroniczny dla dokumentów XML Składa się z jednego elementu Signature W podpisie wskazanie na podpisywane dane (URI) Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 12
XML Signature przykład <?xml version="1.0" encoding="utf-8"?> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> <Reference URI="http://przyklad.pl/xml/do-podpisu.b64"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> </Reference> </SignedInfo> <SignatureValue>OsH9A1jTNLmEldLmsPLlog6Gdw4YV8SiqD96GwYLAfMBqbk5 o3waog==</signaturevalue> <KeyInfo>...</KeyInfo> dalej </Signature> Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 13
XML Signature klucz DSA <?xml version="1.0" encoding="utf-8"?> <Signature xmlns="... "> <SignedInfo>...</SignedInfo> <SignatureValue>OsH9A1j... 3waOg==</SignatureValue> <KeyInfo> <KeyValue> <DSAKeyValue> <P> imup6lmki4ramustkb/xdbrmwntq+pdn97znla9x3lkbkehtyfyjq3uactgvsj75ivrukx z4cb5rzvm25eakmkq8rif1mtbii6jjdjxmidnaekg9zvtf9gijx1n9i0t3oh1favzdsrzk zjgq2wvdfiffhdjmtb3c0vkgmlzr7xk= </P> <Q>xDve3j7sEnh4rIzM5gK+5/gxxFU=</Q> <G> NLugAf6IZJxo3BCOi5yrGEVwtlEzXcnndXhd0Tz38CnQKc4SEupm4PyP5TmLvK64TDfOD7 sno/w5oi1kzdimfw2c4r/6wanzzsvicmowhlyy621nn6njbc8vnwoxwpzcxhkm70b8+d4y ZMn/eU5DN8dvhTv/bNK21FfJqjp033U= </G> <Y> W7dOmH/vWqocVCiqaxj6soxVXfR8XpMdY2Zv4Amjr3n81geyOLb6IZ+l7MUbdp8529DQzu ovtthvpb9x4jkcprzizifotm1pffltbzjx7egjwjwaivdwyiipjke6va+wuv2n4rl/cgcv rxk5ctov5c/bpaf6o+qrrdgfbllztf4= </Y> </DSAKeyValue> </KeyValue> </KeyInfo> </Signature> Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 14
XML Signature - elementy Signature Properties Manifest Źródło SignedInfo Canonicalization Method Object Signature Value Reference Signature KeyValue DSAKey Value P Q G Y J KeyInfo KeyName RSAKey Value Modulus X509Data PGPData Retrieval Method Exponent Algorithm Zewn/wewn. dane źródł URI Signature Method Algorithm Transforms Transform Algorithm Digest Digest Method Value Algorithm Podpisywane dane atrybut element Legenda Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 15
Podpisywanie wielu dokumentów XML 1 Podpisywane dane XML2 JPG Skrót Skrót Skrót Transformacja Skrót Skrót Wskazanie na dane Metoda skrótu Podpis XML Signature Źródło 1 Skrót Wskazanie na dane Metoda skrótu Źródło 2 Dane o kluczu (dla weryfikacji podpisu), np. certyfikat Skrót Wskazanie na dane Metoda skrótu Metoda podpisu Źródło 3 Skrót Wskazanie na dane Transformacje Metoda skrótu dla 4 danych źródłowych Źródło 3 Skrót do podpisu Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 16
XML Signature umiejscowienie Wbudowany (enveloped) Obejmujący (enveloping) Element podpisywany Podpis Dokument XML Podpis Element podpisywany Dokument XML Załączony (detached) Element podpisywany Podpis Dokument XML Podpis Dokument XML Element podpisywany Dokument XML Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 17
XML Signature proces tworzenie skrótu Dane do podpisu Signature SignedInfo SignatureMethod Reference DigestMethod DigestValue SignatureValue KeyInfo, np. certyfikat Nadawca wskazanie (XPath) podpisywanie przeka zanie Dane do podpisu obliczenie skrótu Signature SignedInfo SignatureMethod Reference DigestMethod DigestValue SignatureValue KeyInfo, np. certyfikat Skrót Odbiorca porównanie skrótów - niezmienność wiadomości porównanie skrótów - uwierzytelnienie nadawcy i wskazań na dane Skrót deszyfr. sprawdzenie klucza/certyfikatu Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 18
XML Encryption Szyfrowanie i deszyfrowanie danych (dokument, element, zawartość elementu) Efektem szyfrowania jest element EncryptedData, który zawiera albo wskazuje na zaszyfrowane dane Może on Zastąpić szyfrowany element Być podelementem szyfrowanego lub innego elementu Być elementem innego dokumentu Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 19
XML Encryption źródło przykładu <?xml version='1.0'?> <InfoPlatnicza xmlns='http://przyklad.pl/platnosc1'> <Nazwa>Józef Nowak</Nazwa> <KartaKredytowa Limit='5,000' Wal= PLN'> <NrKarty>4019 2445 0277 5567</NrKarty> <Wystawca>Nasz Bank S.A.</Wystawca> <DataWaznosci>10/03</DataWaznosci> </KartaKredytowa> </InfoPlatnicza> Zaszyfrować Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 20
XML Encryption przykład <?xml version='1.0'?> <InfoPlatnicza xmlns='http://przyklad.pl/platnosc1'> <Nazwa>Józef Nowak</Nazwa> <EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element xmlns='http://www.w3.org/2001/04/xmlenc#'> <CipherData> <CipherValue>A2s3B4f5TWc5cx6weQ3g5tesV=</CipherValue> </CipherData> </EncryptedData> </InfoPlatnicza> Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 21
XML Encryption - elementy Recipient podelementy Encrypted Data... MimeType Type ID Encryption Method Algorithm Encrypted Key Carried KeyName Reference List EncryptedData ds:keyinfo ds:key Name ds:retrieval Method XML Signature URI Cipher Data Cipher Value ds:key Value Encoding Encryption Properties Cipher Reference Transforms... URI atrybut element Legenda Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 22
Zastosowania - przykłady Szyfrowanie symetrycznym kluczem sesyjnym. Klucz sesyjny asymetrycznym Szyfrowanie kluczy symetrycznych wieloma asymetrycznymi dla wielu odbiorców Różne części szyfrowane różnie dla różnych odbiorców Podpisywanie jednym podpisem wielu dokumentów, np. XSLT Wydzielenie podpisów baza podpisów dla kolekcji dokum. Zebranie podpisów różnych osób (np. członków zarządu) Podpisy wielokrotne: klient sklep internetowy bank Tekstowe podpisy / szyfrowanie danych binarnych Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 23
Problemy Obsługa dokumentów modułowych Jednostki (encje) zewnętrzne - obsługa Dostęp do zdalnych zasobów Kodowanie polskich znaków (Unikod, windows-1250, ISO-8859-2) Atak Denial of Service: zapętlenie przy deszyfrowaniu kluczy (XML Encryption) Niepotrzebne sprowadzanie bardzo dużych plików z sieci (oba) Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 24
Problemy - prezentacja Inna zawartość dokumentu XML inna prezentowana Ogólny problem prezentacji (programy, parametry programów, urządzenia) Dwa elementy: Dokument XML (dane źródłowe) Program prezentujący zwykle osobny plik XSLT rodzaj programu źródłowego dla procesora XSLT ( interpretera ) Pliki XSLT najlepiej: Stosować własne pliki XSLT, specjalizowane dla danego formatu dokumentów (np. FakturaNaszaXML) najczęstszy i najłatwiejszy sposób Zabezpieczać tak jak pliki XML (podpis / szyfrowanie łącznie z dokumentem XML z danymi). W przypadku XML Signature mamy dowód procesowy ewentualnego oszustwa Stosować własne aplikacje (nie wykorzystujące XSLT) W elektronicznej wymianie danych (typowe zastosowanie dla XML) prezentacja nie musi być potrzebna Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 25
Podpisy wielokrotne Trzeci standard Kolejność weryfikacji wielokrotnych podpisów Zabezpieczenia procesów biznesowych zmiany w dokumencie dokonywane przez wielu Klient Sklep Bank Zamówienie Zamówienie Zamówienie Podpis klienta Potwierdzenie sklepu Podpis klienta Podpis sklepu Potwierdzenie sklepu Potwierdzenie banku Podpis klienta Podpis sklepu Podpis banku Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 26
Rozszerzenia XAdES (XML Advanced Electronic Signature) - European Telecommunications Standards Institute (ETSI) Stemple czasowe Listy CRL lub wskazania na nie Podpisy długoterminowe dodawanie co jakiś czas nowych, bezpiecznych elementów podpisanych przez urząd certyfikujący Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 27
XML Encryption i XML Signature - podsumowanie Rożne rodzaje dozwolonych algorytmów kryptograficznych Standardowe (potrójny DES, AES, RSA, SHA1,...) Niestandardowe - własne Zabezpieczanie Fragmentów dokumentów XML Wielu fragmentów jednym Signature lub EncryptedData Wiele zabezpieczeń na raz Tekstowe zabezpieczenia danych binarnych Integracja z językami XML, także XML Signature i XML Encryption Różne umiejscowienie zabezpieczeń względem chronionych danych Możliwość dodawania własnych rozszerzeń (np. stemple) Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 28
Dziękuję za uwagę... Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003 29