Web Services Security. Μέρος Ι

Σχετικά έγγραφα
Web Services Security. Μέρος ΙΙ

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά

Β. Μάγκλαρης 30/11/2015

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών;

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ

8.3 Ασφάλεια ικτύων. Ερωτήσεις

Τίτλος Εργασίας: Ασφάλεια σε Υπηρεσίες Ιστού (Security in Web Services)

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Εισαγωγή. Χρήστος Ξενάκης

Ηλεκτρονικό εμπόριο. HE 6 Ασφάλεια

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (Ι) Απειλές Ασφαλείας Συμμετρική & Μη-Συμμετρική Κρυπτογραφία

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

Cryptography and Network Security Chapter 16. Fifth Edition by William Stallings

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων SSL/TLS

Τεχνική Ανάλυση των η-υπογραφών & των η-πιστοποιητικών

ΗΜΕΡΟΛΟΓΙΟ ΓΛΩΣΣΑΡΙ ΔΙΑΔΙΚΤΥΟΥ

Τεχνολογία Ηλεκτρονικού Εμπορίου. 6η διάλεξη: Ασφάλεια ιαδικτυακών Συναλλαγών και Ηλεκτρονικού Εμπορίου (EC Security) Χρήστος Γεωργιάδης

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια

9 - Ασφάλεια Ηλεκτρονικών Συναλλαγών ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ

Ασφάλεια στο Ηλεκτρονικό Επιχειρείν. ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας

ΣΕΜΙΝΑΡΙΟ. ΠΑΡΟΥΣΙΑΣΗ 19/5/11 Αµφιθέατρο

Freedom of Speech. Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet

Ανάλυση Δικτυακής Κίνησης Πρωτοκόλλων Υπηρεσιών. Ασφάλεια Δικτύων. (4 η άσκηση) Διαχείριση Δικτύων - Ευφυή Δίκτυα, 9 ο Εξάμηνο,

Ασφάλεια Υπολογιστικών Συστημάτων

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές

Διαδικτυακές υπηρεσίες προστιθέμενης αξίας: Τεχνολογικό περιβάλλον

Ασφαλείς Εφαρμογές η-υπογραφών

Ασφάλεια Υπολογιστικών Συστηµάτων

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

Κρυπτογραφία. Εργαστηριακό μάθημα 1

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

Ασφάλεια ικτύων (Computer Security)

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

PayByBank RESTful API

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος

L 53/68 Επίσημη Εφημερίδα της Ευρωπαϊκής Ένωσης

Σχεδιασμός Εικονικών Δικτύων Ενότητα 4α: VPN on IPSec

Ασφάλεια Web Services

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 9: Web Services. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Paybybank RESTful API GUIDE

Σχεδιασμός Εικονικών Δικτύων Ενότητα 4β: VPN on IPSec (Μέρος 2ο)

Συστήματα Διαχείρισης Κινδύνου στα Ασύρματα Δίκτυα. Επιμέλεια: Βασίλης Παλιούρας MSc Information Security, MCSA, CCDA, CCA

PayByBank RESTful API GUIDE

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά

ΑΣΦΑΛΕΙΑ ΔΙΚΤΥΩΝ ΚΑΙ ΣΥΝΑΛΛΑΓΩΝ

Ασφάλεια Υπολογιστικών Συστημάτων

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Βασικά Θέματα Κρυπτογραφίας Συμμετρική & Ασύμμετρη Κρυπτογραφία-Ακεραιότητα)

Cryptography and Network Security Chapter 15

Ρ ΓΑ Σ Τ Ή Ρ Ι Ο 8 Α Σ Φ Ά Λ Ε Ι Α Σ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Ώ Ν Σ Υ Σ Τ Η Μ ΆΤ Ω Ν

Διαβούλευση για την ηλεκτρονική υποβολή αποδείξεων

Ασφάλεια (PGP)

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων

Αλγόριθµοι δηµόσιου κλειδιού

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 10 : Ασφάλεια. Δρ. Γκόγκος Χρήστος

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ. ΔΙΑΧΕΙΡΙΣΗ ΑΣΦΑΛΕΙΑΣ: SSL/TLS, , Firewalls, IDS. Β. Μάγκλαρης

Αρχιτεκτονική Ασφάλειας

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής

Οδηγίες Εγκατάστασης και Χρήσης Ψηφιακών Πιστοποιητικών

Σχεδιασμός Εικονικών Δικτύων Ενότητα 6: Εικονικά Ιδιωτικά Δίκτυα Επιπέδου Μεταφοράς - Secure Sockets Layer (SSL) / Transport Layer Security (TLS)

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ ΓΙΑ ΑΣΦΑΛΗ ΚΑΙ ΠΙΣΤΟΠΟΙΗΜΕΝΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΗΝ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ. Οδηγίες προς τις Συνεργαζόμενες Τράπεζες

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

Μεταδεδομένα στο Ψηφιακό περιβάλλον

Κεφάλαιο 22. Πρωτόκολλα και πρότυπα ασφαλείας του Διαδικτύου

Υπηρεσίες Ιστού (Web Services) Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

Ανάπτυξηλογισμικού υλοποίησης του ανοικτού πρότυπου EPCALEv1.1 για εφαρμογές RFID

Ασφάλεια Υπολογιστικών Συστημάτων

ΥΠΟΓΡΑΦΗ. Ηλεκτρονική επικοινωνία. Κρυπτογραφία και ψηφιακές υπογραφές ΚΡΥΠΤΟΓΡΑΦΙΑ & ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ

Β. Μάγκλαρης.

Διακιρυξθ Διαγωνιςμοφ για το Ζργο ΨΘΦΙΑΚΘ ΠΕΡΙΘΓΘΘ ΣΟ ΠΟΛΙΣΙΣΙΚΟ ΚΑΙ ΙΣΟΡΙΚΟ ΑΡΧΕΙΟ ΣΟΤ ΧΑΪΔΑΡΙΟΤ

Ασφάλεια Πληροφοριακών Συστημάτων

ιαχείριση ικτύων ρ.αρίστη Γαλάνη

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Διαχείριση κλειδιών. Χρήστος Ξενάκης

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Βασικές Έννοιες Κρυπτογραφίας

Μητρώο [.gr] Οδηγός ιασύνδεσης. Αξιοποίησης του Εξυπηρετητή EPP. Έκδοση 2.0. [ EPP Server Connection and Use Guide ]

Transcript:

Web Services Security Μέρος Ι Χρ. Ηλιούδης

To πρόβλημα Με την χρήση των Web Services γίνεται μεταφορά πληροφορίας σε μορφή εγγράφων XML και αυτή η πληροφορία κυκλοφορεί μέσω του internet για να φθάσει από την πηγή στον προορισμό της. Για αυτό το λόγο θα πρέπει να ληφθούν μέτρα ασφάλειας για την προστασία τόσο της πληροφορίας όσο και της υπηρεσίας

Επιθέσεις και Απειλές Ασφάλειας Μη εξουσιοδοτημένη χρήση Παθητική και ενεργός παρακολούθηση Αποποίηση Άρνηση παροχής υπηρεσίας Επανεκπομπή ολόκληρων μηνυμάτων ή τμήματος Man in the middle attack principal spoofing forged claims

Υπηρεσίες ασφαλείας (1) Yπηρεσία αναγνώρισης και αυθεντικοποίησης ομότιμης οντότητας Υπηρεσία αυθεντικοποίησης προέλευσης δεδομένων Υπηρεσία ακεραιότητας δεδομένων Υπηρεσία εμπιστευτικότητας δεδομένων

Υπηρεσίες ασφαλείας (2) Υπηρεσία ελέγχου μοναδικότητας μηνύματος Υπηρεσία ελέγχου προσπέλασης Υπηρεσία μη αποποίησης

Συμμετρική κρυπτογραφία

Δημοσίου κλειδιού

Διαδικασία ψηφιακής υπογραφής

Το μοντέλο ασφάλειας των Web Services (1) WS- SecureConversation WS-Federation WS-Authorization WS-Policy WS-Trust WS-Privacy WS-Security XML Encryption, XML Signature, SAML, XACML, XrML, XKMS

XML Signatures Παρέχει τις υπηρεσίες: ακεραιότητας δεδομένων, μη αποποίησης αυθεντικοποίησης.

Αλγόριθμοι παραγωγής και επιβεβαίωσης XML υπογραφών DSAwithSHA1 HMAC-SHA1 RSAwithSHA1

Η σύνταξη του στοιχείου Signature <Signature> <SignedInfo> <CanonicalizationMethod/> <SignatureMethod/> (<Reference URI? > (<Transforms>)? <DigestMethod> <DigestValue> </Reference>)+ </SignedInfo> <SignatureValue> (<KeyInfo>)? (Object ID? >)* </Signature>

Βασικά (elements) στοιχεία του XML signature Signature element, πρόκειται για το root element το οποίο περιλαμβάνει τα υπόλοιπα. SignedInfo element, περιλαμβάνει πληροφορίες σχετικές με το τι πρόκειται να υπογραφεί SignatureValue element, περιέχει την πληροφορία της ψηφιακής υπογραφής. KeyInfo element, περιέχει πληροφορίες σχετικές με το δημόσιο κλειδί που θα χρειαστεί για να γίνει validate στην ψηφιακή υπογραφή <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <Reference URI="http://www.foo.com/secureDocument.html" /> </SignedInfo> <SignatureValue>...</SignatureValue> <KeyInfo>... </KeyInfo> </Signature>

βασικοί τύποι ψηφιακής υπογραφής : Enveloping <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <Reference URI="#111" /> </SignedInfo> <SignatureValue>...</SignatureValue> <KeyInfo>...</KeyInfo> <Object> <SignedItem id="111">stuff to be signed</signeditem> </Object> </Signature> Περιλαμβάνει το (item) στοιχείο το οποίο πρόκειται να υπογραφεί Πρόκειται για αναφορά (reference) σε ένα στοιχείο XML element μέσα στο Signature element.

βασικοί τύποι ψηφιακής υπογραφής : Enveloped <PurchaseOrder id="po1"> <SKU>125356</SKU> <Quantity>17</Quantity> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <Reference URI="#po1" /> </SignedInfo> <SignatureValue>...</SignatureValue> <KeyInfo>...</KeyInfo> </Signature> </PurchaseOrder> Η αναφορά δείχνει σε ένα parent XML element όπως φαίνεται στο διάγραμμα

Detached. <PurchaseOrderDocument> <PurchaseOrder id="po1"> <SKU>12366</SKU> <Quantity>17</SKU> </PurchaseOrder> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <Reference URI="#po1" /> </SignedInfo> <SignatureValue>...</SignatureValue> <KeyInfo>...</KeyInfo> </Signature> Αυτή η μορφή η υπογραφή (detached signature) δείχνει σε ένα XML element ή binary file έξω από την δομή της Signature. Δηλαδή το στοιχείο που δείχνεται δεν είναι ούτε child (Enveloping Signature) ούτε γονιός (parent)(enveloped Signature). Δηλαδή μπορεί να δείχνει σε ένα element του ίδιου εγγράφου ή εκτός του εγγράφου.

XML Encryption Προσφέρει την υπηρεσία της εμπιστευτικότητας. end to end και όχι point to point προστασία

XML Encryption Κρυπτογραφημένα δεδομένα με την χρήση XML elements Τμήματα ενός XML εγγράφου μπορεί να είναι κρυπτογραφημένα κατά περίπτωση Οι πληροφορίες που μπορούν να κρυπτογραφηθούν με τη χρήση του XML encryption γενικά είναι Δεδομένα όπως HTML, JPEG, XML. Κρυπτογραφημένο κλειδί όπως για παράδειγμα symmetric key. Πληροφορία σχετική με συμφωνία του κλειδιού κρυπογράφησης (π.χ. Diffie-Hellman) Αναφορά (Reference) σε κρυπτογραφημένα δεδομένα εντός και εκτός του εγγράφου. Η μέθοδος κρυπτογράφησης (π.χ. RSA για την κρυπτογράφηση του symmetric key, AES για τα δεδομένα).

Αλγόριθμοι κρυπτογραφίας AES 128-bit key AES 192-bit RSA v2 AES 256-bit Triple-DES RSA v1.5

Η σύνταξη του στοιχείου EncryptedData <EncryptedData Id? Type? MimeType?Encoding?> <EncryptionMethod/>? <ds:keyinfo> <EncryptedKey>? <AgreementMethod>? <ds:keyname>? <ds:retrievalmethod>? <ds:*>? </ds:keyinfo>? <CipherData> <CipherValue>? <CipherReference URI?>? </CipherData> <EncryptionProperties>? </EncryptedData>

XML Encryption: παράδειγμα <Employee> <EmployeeID>512-34-4567</EmployeeID> <Manager>Fred Jones</Manager> <Salary>$50,000</Salary> </Employee> Το κρυπτογραφημένο μήνυμα θα έχει την παρακάτω μορφή με το XML encryption : <Employee> <EmployeeID><EncryptedData> A.Ije@OJFdl</EncryptedData></EmployeeID> <Manager>Fred Jones</Manager> <EncryptedData>J1!%dW2s23#D'?D2@</EncryptedData> </Employee>

XML Encryption: παράδειγμα SOAP:Envelope> <SOAP:Header> <!--Firewall info --> <EncryptedData>binary data</encrypteddata> </SOAP:Header> <SOAP:Body> <EncryptedData>binary data</encrypteddata> </SOAP:Body></SOAP:Envelope>

βασικά στοιχεία (elements) του XML encryption: EncryptedData EncryptedData : Είναι το κύριο element στο XML encryption. Περιλαμβάνει τα δεδομένα σε κρυπτογραφημένη μορφή ή πρόκειται για αναφορά σε πληροφορία που είναι κρυπτογραφημένη. Στην περίπτωση που πρόκειται για αναφορά σε εξωτερικό URI τότε μπορεί να αναφέρεται είτε σε XML έγγραφο είτε σε άλλη μορφή δεδομένων. Επίσης μπορούμε μαζί με τα κρυπτογραφημένα δεδομένα να συμπεριλάβουμε και το public key μέσα σε ένα KeyInfo element. Σε ένα έγγραφο μπορούμε να έχουμε περισσότερα από ένα EncryptedData elements. Τα κύρια elements που περιέχονται είναι το EncryptionMethod και το CipherData. Το EncryptionMethod περιλαμβάνει τον αλγόριθμο που χρησιμοποιήθηκε για την κρυπτογράφηση. To CipherData είτε περιλαμβάνει τα κρυπτογραφημένα δεδομένα (CipherValue) είτε περιλαμβάνει αναφορά στην κρυπτογραφημένη πληροφορία (CipherReferecne URI).

<EncryptedData Id? Type? MimeType? Encoding?> <EncryptionMethod/>? <ds:keyinfo> <EncryptedKey>? <AgreementMethod>? <ds:keyname>? <ds:retrievalmethod>? <ds:*>? </ds:keyinfo>? <CipherData> <CipherValue>? <CipherReference URI?>? </CipherData> <EncryptionProperties>? </EncryptedData>

Διαδικασία κρυπτογράφησης (XML Encryption) : 1. Επιλογή αλγορίθμου κρυπτογράφησης με την χρήση του EncryptionMethod element (3DES, AES) 2. Απόκτηση του encryption key. Δημιουργία ή και ανάκτηση υπάρχοντος κλειδιού. Χρήση του KeyInfo element στο έγγραφο χωρίς να συμπεριλαμβάνουμε τίποτα (χρήση κοινού κλειδιού γνωστού και στους δύο εκ των προτέρων), με χρήση μοναδικού ονόματος και agreement protocol, ή κρυπτογράφηση του κλειδιού με χρήση δημοσίου κλειδιού. 3. Serialize Message Data (UTF-8 Encoding). Οι αλγόριθμοι κρυπτογράφησης περιμένουν octets (stream of bytes) και έτσι τα XML δεδομένα πρέπει να μετατραπούν σε octets για να κρυπτογραφηθούν. Αυτό το βήμα εφρμόζεται μόνο στο XML plaintext το οποίο πρέπει να μετατραπεί σε UTF-8 πριν την κρυπτογράφηση. (UTF : Unicode Transformation Format, το οποίο μετατρέπει το Unicode characters(plaintext) σε octets (sequence of bytes). 4. Κρυπτογράφηση των δεδομένων. Αφού έχουμε επιλέξει τον αλγόριθμο, το encryption key και τα δεδομένα (raw data) μπορούμε να κάνουμε την κρυπτογράφηση. 5. Καθορισμός του τύπου δεδομένων. Χρήση του EncryptedDataType το οποίο καθορίζει element ή περιεχόμενο κρυπτογράφησης. Αυτό το element (το οποίο είναι προαιρετικό αλλά πιθανόν χρειάζεται πάντα) σε συνδυασμό με το MimeType και το Encoding πρέπει να καθοριστούν.δημιουργία του αντίστοιχου EncryptedData element. Είναι το τελικό βήμα που συμπεριλαμβάνει όλα τα αποτελέσματα των προηγούμενων βημάτων.

Διαδικασία αποκρυπτογράφησης : Διαδικτυακές Υπηρεσίες Προστιθέμενης 1. Ανάκτηση του αλγορίθμου, των παραμέτρων και του KeyInfo τα οποία αναμένονται να βρεθούν στα elements EncryptedData και EncryptionMethod. Στην περίπτωση που είναι γνωστά εκ των προτέρων τα πεδία είναι κενά. 2. Ανάκτηση του κλειδιού από το KeyInfo element. Το κλειδί μπορεί να περιέχεται κρυπτογραφημένο ή με αναφορά στο EncryptedKey οπότε θα πρέπει να ανακτηθεί και να αποκρυπτογραφηθεί. 3. Αποκρυπτογράφηση των δεδομένων που περιλαμβάνονται στο CipherData και μπορεί να είναι ενσωματωμένα στο CipherValue ή να υπάρχει αναφορά στο CipherReference (URI) οπότε πρέπει να ανακτηθεί. 4. Επεξεργασία των XML elements και του περιεχομένου τους. Το κείμενο πρέπει να είναι base64 decoded για την ανάκτηση του encryped octet sequence το οποίο περιμένει ο αλγόριθμος κρυπτογράφησης. Μετά την αποκρυπτογράφηση είναι διαθέσιμα τα δεδομένα σε μορφή UTF-8 (encoded bytes). Στην περίπτωση που έχει καθοριστεί το EncryptedDataType η αποκρυπτογραφημένη πληροφορία τοποθετείται στο XML έγγραφο αντικαθιστώντας τη δομή EncryptedData. Αν δεν έχει καθοριστεί τότε προχωράμε στο επόμενο βήμα. 5. Επεξεργασία δεδομένων των οποίων ο τύπος δεν έχει καθοριστεί (non XML element ή non XML element content). Στην περίπτωση που δεν έχει καθοριστεί το EncryptedDataType attribute το αποτέλεσμα της αποκρυπτογράφησης στέλνεται στην εφαρμογή. Τα EncryptedData, MimeType και Encoding είναι προαιρετική πληροφορία για να βοηθήσει την εφαρμογή για να διαχειριστεί τα δεδομένα που θα παραλάβει. Διαδικασία Αποκρυπτογράφησης (XML decryption) :

SAML (Security Assertion Markup Language) Το πρότυπο SAML (Security Assertion Markup Language) είναι πρότυπο βασισμένο σε XML και δημιουργήθηκε για να δώσει την δυνατότητα οικουμενικών οντοτήτων (portable identities) και ισχυρισμών που θέλουν να υποστηρίξουν. Πρόκειται για προδιαγραφή που αναπτύχθηκε από τον οργανισμό OASIS

SAML (Security Assertion Markup Language) Το SAML είναι ένα standard XML format κατάλληλο για την μεταφορά Το πρότυπο περιλαμβάνει ένα πρωτόκολλο ανταλλαγής μηνυμάτων (standard message exchange protocol) και καθορίζει τον τρόπο με τον οποίο ζητάμε την πληροφορία που χρειάζεται. Καθορίζει τους κανόνες για τον τρόπο μεταφοράς επιτυγχάνοντας διαλειτουργικότητα (interoperability) Εκφράζει την ασφάλεια με την μορφή ισχυρισμών (assertions) σχετικά με τα αντικείμενα. Αυτό είναι ιδιαίτερα σημαντικό στα web services όπου τα ασφαλή δεδομένα μεταφέρονται μέσω αρκετών συστημάτων για την υλοποίηση μιας συναλλαγής.

SAML είναι ουσιαστικά τρείς μηχανισμοί βασισμένοι σε XML Assertions. XML schema και ορισμός για τους ισχυρισμούς ασφάλειας, το οποίο έχει την δυνατότητα επέκτασης με νέους ισχυρισμούς. Protocol. XML schema και ορισμός ενός request/response πρωτοκόλλου. Οι αιτήσεις γίνονται για αποφάσεις πολιτικής ασφάλειας και εφαρμογής ασφάλειας (enforcement) από τις SAML authorities. Bindings. Κανόνες για την χρήση των ισχυρισμών και περιγράφονται με bindings και πρωτόκολλα.

SAML Η SAML ορίζει μεταξύ άλλων: την σύνταξη και την δομή των assertions (SAML assertions), τους κανόνες που πρέπει να ακολουθούνται για την επεξεργασία των assertions, ένα σύνολο request-response πρωτοκόλλων για την ανταλλαγή των assertions.

SAML assertions authentication assertion attribute assertion authorization assertion

ισχυρισμός εμπιστοσύνης Authentication. Σημαίνει ότι ένα authentication authority έχει κάνει authentication το υποκείμενο του ισχυρισμού, χρησιμοποιώντας συγκεκριμένη διαδικασία σε συγκεκριμένο χρόνο και για συγκεκριμένο χρονικό διάστημα εγκυρότητας (ισχύος). Authorization. Σημαίνει ότι η συγκεκριμένη οντότητα (authority) έχει δώσει δικαιώματα ή αρνήθηκε δικαιώματα για το υποκείμενο (subject) του ισχυρισμού για να ενεργήσει σε συγκεκριμένο πόρο μέσα σε συγκεκριμένο χρονικό διάστημα. Μία τέτοια οντότητα είναι εξουσιοδοτημένη να διαβάσει, να προωθήσει, να διαγράψει ή να κάνει άλλες ενέργειες. Attributes. Παρέχουν τις πληροφορίες δικαιωμάτων για ένα ισχυρισμό authentication ή authorization.

Παράδειγμα ισχυρισμού (assertion) για authentication : <saml:assertion> MajorVersion="1" MinorVersion="0" AssertionID="192.168.0.1.12345" Issuer="Company.com" IssueInstant="2004-01-21T10:02:00Z"> <saml:conditions> NotBefore="2004-01-21T10:02:00Z" NotAfter="2004-01-21T10:09:00Z" /> <saml:authenticationstatement> AuthenticationMethod="password" AuthenticationInstant="2004-01-21T10:02:00Z"> <saml:subject> <saml:nameidentifier SecurityDomain="Company.com" Name="jothy" /> </saml:subject> </saml:authenticationstatement> </saml:assertion>

SAML Domain Model

Παράδειγμα πλήρους SOAP request που στέλνεται μέσω HTTP <samlp:authenticationquery>: POST /SamlService HTTP/1.1 Host: www.example.com Content-Type: text/xml Content-Length: nnn SOAPAction: http://www.oasis-open.org/committees/security <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <samlp:request xmlns:samlp:="..." xmlns:saml="..." xmlns:ds="..."> <ds:signature>... </ds:signature> <samlp:authenticationquery>... </samlp:authenticationquery> </samlp:request> </SOAP-ENV:Body> </SOAP-ENV:Envelope> To binding που καθορίζει το SAML, αν και δεν αποκλείει την χρήση άλλων, απαιτεί SOAP over HTTP. Η πληροφορία του SAML περιέχεται στο SOAP

Παράδειγμα απάντησης SOAP response στην προηγούμενη αίτηση με τον ισχυρισμό <samlp:authenticationstatement> : HTTP/1.1 200 OK Content-Type: text/xml Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <samlp:response xmlns:samlp="..." xmlns:saml="..." xmlns:ds="..."> <Status> <StatusCodevalue="samlp:Success"/> </Status> <ds:signature>... </ds:signature> <saml:assertion> <saml:authenticationstatement> </SOAP-Env:Body>... </saml:authenticationstatement> </saml:assertion> </samlp:response> </SOAP-ENV:Envelope>

WS-Policy Η WS-Policy παρέχει την γραμματική με την οποία μπορούμε να εκφράσουμε: ικανότητες, απαιτήσεις, προτιμήσεις γενικά χαρακτηριστικά κάποιας οντότητας που υφίσταται εντός ενός XML Web services-based συστήματος. Οι απαιτήσεις, οι ικανότητες, οι προτιμήσεις και τα υπόλοιπα χαρακτηριστικά εκφράζονται μέσω των policies (πολιτικές).

WS-SecurityPolicy Η WS-SecurityPolicy ορίζει security assertions με τα οποία μία οντότητα μπορεί να γνωστοποιήσει απαιτήσεις ασφαλείας σε επίπεδο SOAP μηνυμάτων.

WS-SecurityPolicy security assertions SecurityToken assertion Integrity assertion Confidentiality assertion Visibility assertion Security header assertion MessageAge assertion

WS-Trust Η WS-Trust ορίζει τον μηχανισμό με τον οποίο εκδηλώνονται οι παραπάνω λειτουργίες: εκδηλώνεται ένα αίτημα για απόκτηση ενός πιστοποιητικού εκδίδονται τα πιστοποιητικά ενημερώνονται, ακυρώνονται και ανταλλάσονται τα πιστοποιητικά ελέγχεται η εγκυρότητά τους (λειτουργίες τεκμηρίωσης - validation).

Το WS-Trust μοντέλο

Παράδειγμα χρήσης WS-Trust

XKMS 2.0 Ανάγκη ύπαρξης μίας υποδομής που θα υποστηρίζει λειτουργίες που σχετίζονται με την τεχνολογία του δημόσιου κλειδιού. Η XKMS λειτουργεί ως ένα Web service που προσφέρει μία διεπαφή προς μία PKI

X-KISS και X-KRSS Το XKMS πρωτόκολλο ορίζει έναν μηχανισμό request/response και αποτελείται από δύο επιμέρους πρωτόκολλα: το XML Key Information Service Specification (X-KISS) το XML Key Registration Service Specification (X-KRSS).

XACML Η XACML παρέχει το XML λεξιλόγιο με το οποίο μπορεί να εκφραστεί μία πολιτική ελέγχου πρόσβασης.

XACML (extensible Access Control Markup Language), αποτελεί πρότυπο του οργανισμού OASIS και καθορίζει ένα λεξικό για την έκφραση κανόνων βάσει των οποίων λαμβάνονται αποφάσεις access control. Η τελευταία έκδοση είναι το XACML 2.0.

κανόνας στην XACML: A target, an effect, a set of conditions. target : ορίζει τον χώρο της αίτησης απόφασης η οποία αναφέρεται σε ενέργειες σε πόρους όπως για παράδειγμα αίτηση ανάγνωσης για συγκεκριμένο έγγραφο effect : ορίζει την απόφαση όπως για παράδειγμα permit/deny. conditions : δίνουν δυναμική συμπεριφορά στον κανόνα ανάλογα με την περίπτωση

Παράδειγμα κανόνας ο οποίος δίνει δικαιώματα ανάγνωσης σε ιατρικά δεδομένα ασθενούς του οργανισμού example.com μόνο αν αυτός που ζητά πρόσβαση είναι ο ίδιος ο ασθενής (the SAML subject) <?xml version="1.0" encoding="utf-8"?> <Rule RuleId="//medico.com/rules/rule1" Effect="Permit" xmlns="urn:oasis:names:tc:xacml:0.15i:policy" xmlns:function="urn:oasis:names:tc:xacml:0.15i:function" xmlns:identifier="urn:oasis:names:tc:xacml:0.15i:identifier" xmlns:saml="urn:oasis:names:tc:saml:1.0:assertion" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="urn:oasis:names:tc:xacml:0.15i:policy http://www.oasis-open.org/tc/xacml/v15/ draft-xacml-schema-policy-15i.xsd"> <Description>A person may read any record for which he or she is the designated patient</description>

Η αίτηση SOAP λαμβάνεται από το σημείο PEP (Policy Enforcement Point) και η απόφαση για allow/deny γίνεται σε συνδυασμό αρκετών οντοτήτων XACML. To authorization decision query στέλνει λεπτομέρειες για τον πόρο που ζητείται πρόσβαση (δηλαδή το Web Service) στο PDP (Policy Decision Point) μαζί με λεπτομέρειες για την ταυτότητα του αιτούντος Η πολιτική ανακτάται από το PDP από το PRP (Policy Retrieval Point). Αυτό φαίνεται στα βήματα 3 και 5 Τα βήματα 6 και 7 δείχνουν ότι ένα PIP (Policy Information Point) χρησιμοποιείται για το Predicate of a rule, δηλαδή όπως έχει οριστεί στην XACML σημαίνει την δυνατότητα για την αναζήτηση ενός attribute Τέλος αφού το PDP έχει όλες τις πληροφορίες που χρειάζεται για να πάρει την απόφαση, εξετάζει τον κανόνα και αν το αποτέλεσμα είναι να επιτραπεί η πρόσβαση τότε επιστρέφει ένα SALM authorization ισχυρισμό απόφασης στο PEP. Αυτό μπορεί να εισαχθεί στο SOAP message και στην συνέχεια να προωθηθεί στο target Web Service (βήμα 9).

access requester 2. access request PEP 13. obligations obligations service 3. request 12. response PDP 4. request notification 5. attribute queries 10. attributes 11. response context context handler 9. resource content resource 6. attribute query 8. attribute 1. policy PIP 7c. resource attributes 7b. environment attributes 7a. subject attributes PAP subjects environment