Signature - Politechnika Wrocławska

Transkrypt

Signature - Politechnika Wrocławska
EDI, XML
i ochrona danych
Przemysław Kazienko
Zakład Systemów Informacyjnych, Wydział Informatyki i Zarządzania
Politechnika Wrocławska
[email protected]
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
Oddział
Oddział
Kontrahent
Klient
Firma
ZUS
Urząd Skarbowy
Bank
Urząd Gminy
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
Deszyfrowanie
XML Signature
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
Signature
Properties
Manifest
Object
Źródło
Canonicalization
Method
Algorithm
Zewn/wewn.
dane źródł
KeyInfo
Signature
Value
SignedInfo
X509Data
KeyValue
DSAKey
Value
Reference
URI
Signature
Method
KeyName
RSAKey
Value
P Q G Y J Modulus
Transforms
PGPData
Retrieval
Method
Exponent
Digest Digest
Method Value
Transform
Algorithm
Algorithm
Algorithm
Podpisywane dane
Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003
atrybut
element
Legenda
15
Podpisywanie wielu dokumentów
Podpisywane
dane
XML2
JPG
XML 1
Transformacja
Skrót
Skrót
Skrót
Podpis XML
Signature
Dane o kluczu (dla weryfikacji
podpisu), np. certyfikat
dla 4 danych źródłowych
Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003
16
Skrót do podpisu
Metoda podpisu
Skrót
Wskazanie na dane
Transformacje
Metoda skrótu
Źródło 3
Skrót
Wskazanie na dane
Metoda skrótu
Źródło 3
Skrót
Wskazanie na dane
Metoda skrótu
Źródło 2
Skrót
Wskazanie na dane
Metoda skrótu
Źródło 1
Skrót
XML Signature – umiejscowienie
Element
podpisywany
Wbudowany (enveloped)
Podpis
Dokument
XML
Podpis
Obejmujący (enveloping)
Element
podpisywany
Dokument XML
Załączony (detached)
Element
podpisywany
Podpis
Dokument XML
Element
podpisywany
Dokument XML Dokument XML
Podpis
Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003
17
XML Signature – proces
tworzenie Dane do Nadawca
skrótu podpisu wskazanie
(XPath)
Signature
SignedInfo
przeka
zanie
Dane do obliczenie
skrótu
podpisu
Signature
SignedInfo
SignatureMethod
SignatureMethod
Skrót
Odbiorca
porównanie
skrótów niezmienność
wiadomości
porównanie
skrótów uwierzytelnienie
nadawcy i
DigestValue
wskazań na
dane
Skrót
SignatureValue
deszyfr.
KeyInfo, np.
certyfikat
sprawdzenie
klucza/certyfikatu
Reference
DigestMethod
Reference
DigestMethod
DigestValue
podpi-
SignatureValue sywanie
KeyInfo,
np. certyfikat
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>
Zaszyfrować
</KartaKredytowa>
</InfoPlatnicza>
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
MimeType
EncryptedData
Type
ID
Encryption
Method
Recipient
Encryption
Properties
Cipher
Data
ds:KeyInfo
Algorithm
Encrypted
Key
Encoding
ds:Key
Name
Cipher
Value
Cipher
Reference
URI
Transforms
ds:Retrieval ds:Key
Value
Method
Carried
XML
KeyName Signature
URI
...
podelementy
Encrypted
Reference
Data
List
...
Przemysław Kazienko: EDI, XML i ochrona danych. SECURE, 5 listopada 2003
atrybut
element
Legenda
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