Κρυπτογραφική συσκευή VirtIO για QEMU-KVM

Σχετικά έγγραφα
Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος Οδηγός εργαστηριακής άσκησης Συσκευή κρυπτογράφησης για QEMU-KVM

Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Εισαγωγή στην Πληροφορική

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

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

Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής. Βασιλάκης Βασίλειος Τζανάκης Δημήτριος

Λειτουργικά Συστήματα (Λ/Σ)

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Λιβανός Γιώργος Εξάμηνο 2017Β

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

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

Οδηγός Ασύρματου Δικτύου Αισθητήρων στο Λειτουργικό Σύστημα Linux

Λειτουργικά Συστήματα. Εισαγωγή

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Αρχιτεκτονική Υπολογιστών

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Εικονική Μνήμη (Virtual Μemory)

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Αρχιτεκτονική Υπολογιστών

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

ΕΠΛ425 : Τεχνολογίες Διαδικτύου Εργαστήρια

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (ΗΥ321)

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ. Τεχνολογίες Υπολογιστικού Νέφους

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Εισαγωγή στην Πληροφορική

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Εικονική Μνήμη (1/2)

Λειτουργικά Συστήματα

ΛΟΓΙΣΜΙΚΟ (software)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Server Virtualization με εργαλεία ΕΛ/ΛΑΚ. ΛΑΚ Δήμος Ρεθύμνης.

Ειδικό Τεύχος : Linux και Ηχος. Η Υποδοµή

Λειτουργικά Συστήματα

Επιτεύγµατα των Λ.Σ.

Κεφάλαιο 2: Λογισμικό (Software) Εφαρμογές Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Examination of cloud systems security from virtualization perspective

ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ. Τεχνολογίες Υπολογιστικού Νέφους

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΟΝΑΔΑ ΑΡΙΣΤΕΙΑΣ ΕΛ/ΛΑΚ

Βασίλειος Κοντογιάννης ΠΕ19

Οδηγός Ασύρματου ικτύου Αισθητήρων στο Λειτουργικό Σύστημα Linux

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

ΕΙΣΑΓΩΓΗ ΣΥΣΤΑΤΙΚΑ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

... Copyright c reserved.

Λειτουργικά. Συστήματα Ι. Εγκατάσταση Ιδεατής Μηχανής. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT)

ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ

Εισαγωγή στην Πληροφορική

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Λειτουργικά Συστήματα Η/Υ

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

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

Κεφάλαιο 3 Λειτουργικά Συστήματα Β ΕΠΑΛ

Πληροφορική I. "Λογισμικό (Software)" B. Φερεντίνος

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

Συστήματα Πληροφοριών Διοίκησης Ενότητα 5: Λογισμικό Πληροφοριακών Συστημάτων

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ανατολικής Μακεδονίας και Θράκης. Πτυχιακή Εργασία. Ανάπτυξη Εικονικών Υπολογιστικών Συστημάτων. Αραμπίδης Κλημέντιος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Προγραμματισμός Ταυτόχρονος Προγραμματισμός

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Αρχιτεκτονική Υπολογιστών

1.1 Να προσφερθεί ένα ειδικό σύστημα backup to disk για την τήρηση του συνόλου των αντιγράφων ασφαλείας. 1.2 Αριθμός προσφερόμενων μονάδων.

Αρχιτεκτονική Υπολογιστών

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

Περιγραφή και Έλεγχος ιεργασιών

Εργαστήριο Λειτουργικών Συστημάτων. Εισαγωγή

Writing kernels for fun and profit

Αποδοτικός διαμοιρασμός πόρων Ε/Ε σε εικονικά περιβάλλοντα

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής

Εισαγωγή στα Λειτουργικά Συστήματα

Διεργασίες και Νήματα (2/2)

Εικονικοποίθςθ. Λειτουργικά Συςτιματα Υπολογιςτϊν 6ο Εξάμθνο,

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5

ver Επεξεργαστές κειμένου, λογιστικών φύλλων, παρουσιάσεων Οδηγοί συσκευών (Device Drivers)

Transcript:

Κρυπτογραφική συσκευή VirtIO για QEMU-KVM Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Μάιος 2017

Βασικό Πλαίσιο Node A Δικτυακή διεργασία (πχ chat) TCP Δικτυακή διεργασία (πχ chat) Node B ioctl() ioctl() /dev/crypto /dev/crypto User Kernel I/O I/O Hardware Συσκευή Κρυπτογράφησης Συσκευή Κρυπτογράφησης Βασικό σενάριο άσκησης Πραγματικό / εικονικό περιβάλλον; 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Άσκηση - Ζητούμενα 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Άσκηση - Ζητούμενα Ζ1: Εργαλείο chat πάνω από TCP/IP sockets Αμφίδρομη επικοινωνία πάνω από TCP/IP Με χρήση του BSD Sockets API 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Άσκηση - Ζητούμενα Ζ1: Εργαλείο chat πάνω από TCP/IP sockets Αμφίδρομη επικοινωνία πάνω από TCP/IP Με χρήση του BSD Sockets API Ζ2: Κρυπτογραφημένο chat πάνω από TCP/IP Με χρήση του cryptodev-linux από userspace Κλήσεις συστήματος ioctl() στο /dev/crypto 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Άσκηση - Ζητούμενα Ζ1: Εργαλείο chat πάνω από TCP/IP sockets Αμφίδρομη επικοινωνία πάνω από TCP/IP Με χρήση του BSD Sockets API Ζ2: Κρυπτογραφημένο chat πάνω από TCP/IP Με χρήση του cryptodev-linux από userspace Κλήσεις συστήματος ioctl() στο /dev/crypto Ζ3: Υλοποίηση συσκευής cryptodev με VirtIO Κρυπτογραφημένο chat μέσα σε VM με κλήσεις στο cryptodev του host Υλοποίηση οδηγού στο πλαίσιο VirtIO 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

ΛΣ και Privilege levels (Rings) 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

ΛΣ και Privilege levels (Rings) 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

ΛΣ και Privilege levels (Rings) Μηχανισμός ιεραρχίας του υλικού για εξασφάλιση προστασίας/διαχωρισμού εφαρμογών Κάθε ring επιτρέπει συγκεκριμένες λειτουργίες Πιο προνομιακό το χαμηλότερο ring Πχ Linux σε x86: εφαρμογές(user-mode) > Ring 3, ΛΣ(kernel-mode) > Ring 0 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

ΛΣ και Privilege levels (Rings) Μη επιτρεπτές εντολές πχ στο Ring 3 προκαρούν trap που χειρίζεται το ΛΣ Παράδειγμα 1: διαίρεση με το μηδέν Παράδειγμα 2: πρόσβαση σε μη έγκυρη περιοχή μνήμης Παράδειγμα 3: κλήση συστήματος σε x86: int $0x80 => trap (software interrupt) + μετάβαση σε χώρο πυρήνα 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Οργάνωση ΛΣ (επανάλ) 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Εικονικοποίηση 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Εικονικοποίηση 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Εικονικοποίηση Ορολογία VMM (Virtual Machine Monitor) ή hypervisor: δίνει την ψευδαίσθηση στα VMs ότι εκτελούνται σε φυσικό περιβάλλον Host > ΛΣ διαχειρίζεται το φυσικό υλικό, Guest > διαχειρίζεται το εικονικό υλικό Αναλογία: (φυσικό περιβάλλον) host ΛΣ - εφαρμογές => (εικονικό περιβάλλον) VMM - guest ΛΣ 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Εικονικοποίηση 4 καταστάσεις: Χώρος χρήστη guest Χώρος πυρήνα guest Χώρος χρήστη host Χώρος πυρήνα host 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Κατηγορίες Εντολών Προνομιούχες εντολές Μπορούν να εκτελεστούν απευθείας μόνο αν η CPU βρίσκεται σε προνομιούχο κατάσταση (χώρο πυρήνα) Αν η CPU βρίσκεται σε μη-προνομιούχο κατάσταση (χώρο χρήστη), προκαλείται trap, η CPU μεταβαίνει σε προνομιούχο κατάσταση και η εκτέλεση συνεχίζεται από προκαθορισμένη ρουτίνα χειρισμού στο ΛΣ ή στο VMM αντίστοιχα 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Κατηγορίες Εντολών Προνομιούχες εντολές Μπορούν να εκτελεστούν απευθείας μόνο αν η CPU βρίσκεται σε προνομιούχο κατάσταση (χώρο πυρήνα) Αν η CPU βρίσκεται σε μη-προνομιούχο κατάσταση (χώρο χρήστη), προκαλείται trap, η CPU μεταβαίνει σε προνομιούχο κατάσταση και η εκτέλεση συνεχίζεται από προκαθορισμένη ρουτίνα χειρισμού στο ΛΣ ή στο VMM αντίστοιχα Μη-προνομιούχες εντολές Μπορούν να εκτελεστούν απευθείας σε οποιαδήποτε κατάσταση βρίσκεται η CPU 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Κατηγορίες Εντολών Προνομιούχες εντολές Μπορούν να εκτελεστούν απευθείας μόνο αν η CPU βρίσκεται σε προνομιούχο κατάσταση (χώρο πυρήνα) Αν η CPU βρίσκεται σε μη-προνομιούχο κατάσταση (χώρο χρήστη), προκαλείται trap, η CPU μεταβαίνει σε προνομιούχο κατάσταση και η εκτέλεση συνεχίζεται από προκαθορισμένη ρουτίνα χειρισμού στο ΛΣ ή στο VMM αντίστοιχα Μη-προνομιούχες εντολές Μπορούν να εκτελεστούν απευθείας σε οποιαδήποτε κατάσταση βρίσκεται η CPU Ευαίσθητες εντολές 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Κατηγορίες Εντολών Ανάλογα με την αρχιτεκτονική του συστήματος, συγκεκριμένες ευαίσθητες εντολές μπορεί να παράγουν trap όταν εκτελούνται σε χώρο χρήστη και άρα να είναι και προνομιούχες Επομένως, δεν είναι όλες οι ευαίσθητες εντολές προνομιούχες Εξαρτάται από την αρχιτεκτονική Πχ η popf σε x86 εκτελείται χωρίς trap και σε χώρο χρήστη παράγοντας διαφορετικό αποτέλεσμα 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Κατηγοριοποίηση συστημάτων εικονικοποίησης Full virtualization Μέθοδος trap & emulate Μέθοδος binary translation Hardware-assisted virtualization Paravirtualization Hybrid virtualization 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Μέθοδος trap & emulate Η εικονική μηχανή εκτελείται στο χώρο χρήστη του host Οι μη-προνομιούχες εντολές (διεργασιών ή πυρήνα) εκτελούνται απευθείας από τη CPU Οι προνομιούχες εντολές προκαλούν trap Παρεμβαίνει ο VMM και προσομοιώνει τη συμπεριφορά της εντολής που θα ανέμενε η εικονική μηχανή 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Μέθοδος trap & emulate Η εικονική μηχανή εκτελείται στο χώρο χρήστη του host Οι μη-προνομιούχες εντολές (διεργασιών ή πυρήνα) εκτελούνται απευθείας από τη CPU Οι προνομιούχες εντολές προκαλούν trap Παρεμβαίνει ο VMM και προσομοιώνει τη συμπεριφορά της εντολής που θα ανέμενε η εικονική μηχανή Θεώρημα: Για να είναι δυνατή η εικονικοποίηση με τη μέθοδο trap & emulate, πρέπει το σύνολο των ευαίσθητων εντολών να είναι υποσύνολο των προνομιούχων εντολών Popek, G J, Goldberg, R P (July 1974) Formal requirements for virtualizable third generation architectures 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Μέθοδος binary translation Πρέπει ο VMM να είναι σε θέση να πιάσει ευαίσθητες εντολές που εκτελούνται σε guest χώρο πυρήνα (άρα σε host χώρο χρήστη) Αν αυτές δεν προκαλούν trap στο χώρο χρήστη; 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Μέθοδος binary translation Πρέπει ο VMM να είναι σε θέση να πιάσει ευαίσθητες εντολές που εκτελούνται σε guest χώρο πυρήνα (άρα σε host χώρο χρήστη) Αν αυτές δεν προκαλούν trap στο χώρο χρήστη; Λύση: Οι εντολές στο guest χώρο χρήστη εκτελούνται απευθείας στη CPU Ο VMM διαβάζει τις εντολές στο guest χώρο πύρηνα και τις μεταφράζει (στατικά ή δυναμικά) με άλλες που προσομοιώνουν την αντίστοιχη λειτουργία 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Μέθοδος binary translation Πλεονεκτήματα Δεν υπάρχει επιπλέον κόστος εκτέλεσης των μη-προνομιούχων εντολών Εύκολη δημιουργία/διαχείριση εικονικών μηχανών (ίδιο image πυρήνα με αυτό του φυσικού μηχανήματος) Δεν απαιτούνται αλλαγές στο υλικό Μειονεκτήματα Μεγάλο κόστος εκτέλεσης των προνομιούχων εντολών Πηγή εικόνας: http://wwwvmwarecom/files/pdf/vmware_paravirtualizationpdf 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Hardware-assisted virtualization Αλλαγές στο υλικό, προκειμένου η CPU να αναγνωρίζει και τις 4 καταστάσεις guest/host Πώς Ring -1 Έτσι, οι αντίστοιχες ευαίσθητες εντολές προκαλούν πάντα trap όταν εκτελούνται σε guest χώρο πυρήνα και παρεμβαίνει ο VMM 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Hardware-assisted virtualization Πηγή εικόνας: http://wwwvmwarecom/files/pdf/vmware_paravirtualizationpdf 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Hardware-assisted virtualization Πλεονεκτήματα Εύκολη δημιουργία/διαχείριση εικονικών μηχανών Καλύτερη επίδοση (λόγω υποστήριξης από το υλικό) Μειονεκτήματα Δε βελτιώνεται η επίδοση σε Ι/Ο Πηγή εικόνας: http://wwwvmwarecom/files/pdf/vmware_paravirtualizationpdf 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Paravirtualization Απαιτούνται αλλαγές σε κομμάτια (συνήθως drivers) του πυρήνα ενός φυσικού μηχανήματος για να χρησιμοποιηθούν από ένα εικονικό μηχάνημα Αυτοί οι paravirtualized drivers γνωρίζουν ότι τρέχουν σε εικονικό περιβάλλον Έχοντας αυτή τη γνώση, πραγματοποιούν αιτήματα με αποδοτικότερο τρόπο στον hypervisor (hypercalls - αναλογία με system calls) 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Paravirtualization Πλεονεκτήματα Συνήθως καλύτερη επίδοση (ειδικά στο I/O) Μειονεκτήματα Ειδικές αλλαγές στον κώδικα του ΛΣ μέσα στο VM 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Hybrid virtualization Συνδυασμός hardware-assisted virtualization + paravirtualization Άθικτος κώδικας του μεγαλύτερου μέρους του πυρήνα + αλλαγές στους drivers για γρηγορότερο I/O 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Hybrid virtualization Συνδυασμός hardware-assisted virtualization + paravirtualization Άθικτος κώδικας του μεγαλύτερου μέρους του πυρήνα + αλλαγές στους drivers για γρηγορότερο I/O Πλεονεκτήματα Γενικά καλύτερη επίδοση (και) στο I/O Μειονεκτήματα Aλλαγές στους drivers του VM 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Πλατφόρμα εικονικοποίησης KVM KVM (Kernel Virtual Machine) Hypervisor για Linux σε x86 Hardware-assisted virtualization επιλογή Εκμεταλλεύεται τα virtualization extensions στο υλικό (Intel VT-x, AMD-V) Εντάσσεται σε υπάρχον σύστημα εξομοίωσης υλικού, συνήθως το QEMU 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

QEMU Emulator QEMU Εξομοιώνει τη λειτουργία του υλικού Υλοποίηση υλικού σε λογισμικό (δίσκοι, κάρτες δικτύου, θύρες) Μπορεί να εκτελεστεί σε διάφορα modes (CPU emulation, system virtualization κλπ) Διεργασία χώρου χρήστη 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

VirtIO Είναι ένα πρότυπο για εικονικοποίηση συσκευών E/E Αποτελεί paravirtualized επιλογή Split-driver μοντέλο: 1) frontend (guest kernel) - 2) backend (qemu userspace) drivers Kυκλικοί buffers για επικοινωνία μεταξύ frontend/backend Αντί για εντολές I/O (πχ IN, OUT), εγγραφή σε αντίστοιχη θέση μνήμης ενός buffer doorbell Υπάρχουσες υλοποιήσεις: virtio_net, virtio_blk, virtio_console hybrid: KVM + VirtIO = full virtualization με paravirtualized I/O 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

KVM - QEMU (1) QEMU VM (guest) 1) ioctl() 4) Return 2) VM Entry 3) VM Exit User /dev/kvm KVM kernel module Kernel Hardware Kernelspace driver: υποστηρίζει συσκευή χαρακτήρων /dev/kvm H διεργασία QEMU εκτελεί ioctl()s στο /dev/kvm (1) Δημιουργείται το VM και το module κάνει VM Entry (2) 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

KVM - QEMU (2) QEMU VM (guest) 1) ioctl() 4) Return 2) VM Entry 3) VM Exit User /dev/kvm KVM kernel module Kernel Hardware Οι μη-προνομιούχες εντολές του guest εκτελούνται απευθείας στον επεξεργαστή Οι προνομιούχες εντολές (πχ I/O) προκαλούν αρχικά trap (VM Exit (3)) και περνάνε στη διεργασία του QEMU(4) Το QEMU εξυπηρετεί την εντολή Ι/O, αν χρειαστεί με κλήση συστήματος 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Κρυπτογραφία και υλοποιήσεις Software Από τον προγραμματιστή Απαιτεί εξειδικευμένες γνώσεις και δεν είναι πρακτικό Μέσω βιβλιοθήκης υψηλού επιπέδου Ο συνήθης τρόπος (πχ OpenSSL), αλλά οι υλοποιήσεις σε λογισμικό είναι αργές Hardware Ήδη διαθέσιμο σε πολλές οικογένειες επεξεργαστών/boards (ακόμα και οικιακές, πχ AES σε Intel i7 Westmere) Πολύ ταχύτερο, αλλά μπορεί να απαιτεί ειδικούς drivers 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Cryptodev Kernel driver που υποστηρίζει εξειδικευμένους επιταχυντές σε υλικό Αρχική υλοποίηση: OpenBSD cryptodev API Πραγματοποιεί εξομοίωση σε χώρο πυρήνα για μηχανήματα που δεν διαθέτουν hardware accelerator Υποστηρίζεται από την OpenSSL (ως engine) Εξάγει το αρχείο συσκευής χαρακτήρων /dev/crypto 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Χρήση cryptodev API Τέσσερις κλήσεις ioctl() προς τη συσκευή μας δίνουν όλες τις δυνατότητες! Παράδειγμα fd = open( /dev/crypto ); ioctl(fd, CIOCGSESSION); /* get session */ cryptsrc = clr; cryptdst = enc; cryptop = COP_ENCRYPT; ioctl(fd, CIOCRYPT, &crypt); /* encrypt data */ cryptdst = clr; cryptsrc = enc; cryptop = COP_DECRYPT; ioctl(fd, CIOCRYPT, &crypt); /* decrypt data */ ioctl(fd, CIOCFSESSION); /* close session */ close(fd); Τι μπορούμε να κάνουμε μαζί με TCP/IP sockets; Encrypted chat :) 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Άσκηση Ζ1, Ζ2: Κρυπτογραφημένο chat πάνω από TCP/IP Command line εργαλείο για μεταφορά μηνυμάτων πάνω από TCP/IP sockets Επέκτασή του ώστε να χρησιμοποιεί το cryptodev-linux Σας δίνονται παραδείγματα χρήσης των sockets και του cryptodev 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Άσκηση Ζ1, Ζ2: Κρυπτογραφημένο chat πάνω από TCP/IP Command line εργαλείο για μεταφορά μηνυμάτων πάνω από TCP/IP sockets Επέκτασή του ώστε να χρησιμοποιεί το cryptodev-linux Σας δίνονται παραδείγματα χρήσης των sockets και του cryptodev Έλεγχος για ύπαρξη κρυπτογραφημένων μηνυμάτων #tcpdump -vvv -ni eth0 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Άσκηση Ζ1, Ζ2: Κρυπτογραφημένο chat πάνω από TCP/IP Command line εργαλείο για μεταφορά μηνυμάτων πάνω από TCP/IP sockets Επέκτασή του ώστε να χρησιμοποιεί το cryptodev-linux Σας δίνονται παραδείγματα χρήσης των sockets και του cryptodev Έλεγχος για ύπαρξη κρυπτογραφημένων μηνυμάτων #tcpdump -vvv -ni eth0 Προαιρετικά Πολλοί clients ταυτόχρονα (IRC!) 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Παράδειγμα χρήσης cryptodev Socket to server Client Get user command Server Create and listen on socket Accept client connection 1Encrypt 2Send to server 3Read from client 4Decrypt Wait for server 5Run command 6Get output 9Read from server 8Send to client 7Encrypt 10Decrypt /dev/crypto Output and next command /dev/crypto 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Ζ3: Υλοποίηση συσκευής cryptodev με VirtIO /test_virtio_crypto ioctl() VM User VirtIO frontend driver Kernel Hardware (QEMU) VirtIO ring buffer QEMU crypto backend ioctl() User VFS cryptodev driver Συσκευή Κρυπτογράφησης Kernel Hardware Υλοποίηση frontend+backend virtio_crypto driver Εκτέλεση εργαλείου chat με TCP/IP πάνω από αυτό 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Αναφορές A Kivity, Y Kamay, D Laor, U Lublin, and A Liquori kvm: the linux virtual machine monitor In Linux Symposium, pages 225-230, Ottawa, Ontario, Canada, 2007 F Bellard Qemu, a fast and portable dynamic translator In ATEC 05 Proceedings of the annual conference on USENIX Annual Technical Conference, 2005 R Russel virtio: Towards a de-facto standard for virtual i/o devices In ACM SIGOPS Operating Systems, 2008 Qumranet Kernel-based Virtualization Driver (White Paper), 2006 Yasunori Goto The kernel-based virtual machine Technology Fujitsu Global Book, 2011 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358

Ερωτήσεις; Λίστα μαθήματος: os-lab@listscslabecentuagr 05 / 2017 VirtIO Crypto ΣΗΜΜΥ, 34358