Inżynieria biomedyczna Projekt Przygotowanie i realizacja kierunku inżynieria biomedyczna studia międzywydziałowe współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego.
Ø Metody reprezentacji informacji cz.4 Jacek Rumiński Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: 3472678, fax: 3471757, e-mail: jwr@eti.pg.gda.pl Projekt Przygotowanie i realizacja kierunku inżynieria biomedyczna studia międzywydziałowe współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego.
Plan wykładu: 1. Podpis elektroniczny i szyfrowanie XML 2. Transformacje dokumentów XSLT 3. Formatowanie dokumentów XSL- FO 4. Zastosowania XML 3
Podpis elektroniczny w XML Podpis cyfrowy (elektroniczny) służy do: - uwierzytelniania autora podpisu (autorem podpisu jest osoba, której klucz prywatny został użyty do utworzenia podpisu), - zagwarantowania nienaruszalności treści podpisywanego dokumentu/dokumentów od momentu podpisania. Podpis elektroniczny generuje się dwuetapowo: 1. Utworzyć skrót wiadomości z wybranym algorytmem kryptograficznym, 2. Zaszyfrować skrót wiadomości stosując klucz prywatny. 4
Podpis elektroniczny w XML Specyfikacja XML Signature wprowadza specjalny element XML o nazwie signature, który można: - dołączyć do podpisywanego dokumentu, - wydzielić w postaci osobnego dokumentu XML, - włączyć podpisywane dane do elementu signature. Element signature zawiera przede wszystkim trzy inne subelementy: - <SignedInfo> - informacja o algorytmach szyfrujących, - <SignatureValue> - zbiór bajtów (zakodowanych tekstem) podpisu elektronicznego, - <KeyInfo> - informacje o kluczu. 5
Podpis elektroniczny w XML W elemencie KeyInfo umieszczany jest klucz publiczny osoby podpisującej, wskazanie na niego lub pełen certyfikat X509 albo jego identyfikator. Klucz publiczny nadawcy służy do weryfikacji podpisu elektronicznego, którą może wykonać odbiorca. Oprócz tego, opracowany został standard dla weryfikacji podpisów wielokrotnych, gdzie kolejni odbiorcy mogą dodawać do dokumentu nowe elementy. Każda odbiorca podpisuje swoje wersje wzbogaconego dokumentu, zawierającą wcześniejsze podpisy. Poniżej pokazano przykład dokumentu zawierającego podpis XML Signature ujęty w element envelope. W przykładzie wykorzystano algorytm SHA1 do generacji skrótu wiadomości oraz DSA do generacji kluczy. 6
Podpis elektroniczny w XML <?xml version="1.0" encoding="utf-8"?> <Envelope xmlns="urn:envelope"> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI=""> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>TU SKRÓT WIADOMOŚCI</DigestValue> </Reference> </SignedInfo> <SignatureValue> TU WARTOŚĆ PODPISU </SignatureValue> <KeyInfo> <KeyValue> <DSAKeyValue> <P>TU WARTOŚĆ PARAMETRU P </P> <Q> TU WARTOŚĆ PARAMETRU Q </Q> <G> TU WARTOŚĆ PARAMETRU G </G> <Y> TU WARTOŚĆ PARAMETRU Y </DSAKeyValue> </KeyValue> </KeyInfo> </Signature> </Envelope> </Y> 7
Szyfrowanie danych w XML Rekomendacja XML Encypion Syntax and Processing Standard definiuje znaczniki XML pomocne w umieszczaniu w dokumencie XML zaszyfrowanych informacji. Podsatwowym elementem wprowadzanym przez XML Encrypion jest EncryptedData, który zawiera: - <CipherData> - dane zaszyfrowane (wartość zaszyfrowana w subelemencie <CipherValue>), - <EncrypionMethod> - opcjonalny element, który może przechowywać informacje o algorytmie szyfrującym oraz o kluczu. 8
Szyfrowanie danych w XML Załóżmy, że mamy następujący dokument XML, który zawiera wrażliwe dane: <?xml version='1.0'?> <PaymentInfo xmlns='hjp://example.org/paymentv2'> <Name>Jan Nowak<Name/> <CreditCard type= Visa > <Number>2200 2233 1111 0120</Number> <ExpiraUon>05/15</ExpiraUon> <SecurityCode>123</SecurityCode> </CreditCard> </PaymentInfo> Dokument powyższy można poddać szyfrowaniu na różne sposoby: a) zaszyfrować wybrany element dokumentu XML, b) zaszyfrować treść wybranego elementu XML, c) zaszyfrować cały dokument XML. 9
Szyfrowanie danych w XML Ad a) <?xml version='1.0'?> <PaymentInfo xmlns='hjp://example.org/paymentv2'> <Name>Jan Nowak</Name> <EncryptedData Type='hJp://www.w3.org/2001/04/ xmlenc#element' xmlns='hjp://www.w3.org/2001/04/xmlenc#'> <CipherData> <CipherValue> TU ZASZYFROWANA WARTOŚĆ </ CipherValue> </CipherData> </EncryptedData> </PaymentInfo> 10
Szyfrowanie danych w XML Ad b) <?xml version='1.0'?> <PaymentInfo xmlns='hjp://example.org/paymentv2'> <Name>Jan Nowak<Name/> <CreditCard type= Visa > <EncryptedData xmlns='hjp://www.w3.org/2001/04/ xmlenc#' Type='hJp://www.w3.org/2001/04/xmlenc#Content'> <CipherData> <CipherValue>TU ZASZYFROWANA WARTOŚĆ</ CipherValue> </CipherData> </EncryptedData> </CreditCard> </PaymentInfo> 11
Szyfrowanie danych w XML Ad c) <?xml version='1.0'?> <EncryptedData xmlns='hjp://www.w3.org/2001/04/xmlenc#' MimeType='text/xml'> <CipherData> <CipherValue> TU ZASZYFROWANA WARTOŚĆ </ CipherValue> </CipherData> </EncryptedData> 12