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

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

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

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

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

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

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

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

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

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

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

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

2η Προγραµµατιστική Εργασία

Θέματα διπλωματικών εργασιών σε. Συστοιχίες παράλληλης εξυηρέτησης εφαρμογών Διαδικτύου

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

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

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

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

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον. Υπηρεσίες Διαδικτύου

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

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

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

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

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

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

... Copyright c reserved.

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

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

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

7.2 Τεχνολογία TCP/IP

ΠΡΟΓΡΑΜΜΑ ΠΡΟΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

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

2. Αλγόριθμοι, δομές δεδομένων και πολυπλοκότητα

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

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

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

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

Χρονοδρομολογητής Κυκλικής Επαναφοράς

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

AN IMPLEMENTATION OF THE CLOUD BASED SCHOOL

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό

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

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

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

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

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

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

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

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

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

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

Κρυπτογραφία και Ηλεκτρονικοί Υπολογιστές. ΣΥΝΤΕΛΕΣΤΕΣ: Κραβαρίτης Αλέξανδρος Μαργώνη Αγγελική Χαλιμούρδα Κων/να

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

Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες. Χειμερινό εξάμηνο

Πρωτόκολλα Διαδικτύου. Άγγελος Ρούσκας Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τµήµα ιοικητικής Επιστήµης και Τεχνολογίας ΥΛΟΠΟΙΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA.

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

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

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

Ο Σ ο β ι ε τ ι κ ό ς Κ ρ υ π τ α λ γ ό ρ ι θ μ ο ς G O S T

4.2.1 Α εξάμηνο Β εξάμηνο Γ εξάμηνο 4.2. ΣΥΝΟΠΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΑΝΑ ΕΞΑΜΗΝΟ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Εργαστηριακή Άσκηση 5

Β Εξάµηνο Τίτλος Μαθήµατος Θ Φ Α.Π Ε Φ.E. Π.Μ Προαπαιτούµενα

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΤΙΚΗΣ ΕΑΡΙΝΩΝ ΕΞΑΜΗΝΩΝ & ΕΠΙ ΠΤΥΧΙΩ ΕΞΕΤΑΣΤΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ (ΟΡΘΗ ΕΠΑΝΑΛΗΨΗ 5 )

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

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

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

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ

Προγραµµατισµός Συστηµάτων Πραγµατικού Χρόνου

ΔΟΜΗ ΠΑΛΑΙΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ( )

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΤΙΚΗΣ ΕΑΡΙΝΩΝ ΕΞΑΜΗΝΩΝ & ΕΠΙ ΠΤΥΧΙΩ ΕΞΕΤΑΣΤΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ ( )

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

Κ Α Λ Ε Ι. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Καβάλα ΥΠΟΥΡΓΕΙΟ ΥΓΕΙΑΣ & ΚΟΙΝΩΝΙΚΗΣ

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

Εισαγωγή στους Υπολογιστές

ΘΕΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ 2012

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

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

Σύστημα Διαμοιρασμού Βιβλιογραφικών Αναφορών. Κοντοτάσιου Ιωάννα ΑΜ 3125 Μπέσσας Απόστολος ΑΜ 3171

A. ΓΕΝΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ ΥΛΙΚΟΥ

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΤΙΚΗΣ ΕΑΡΙΝΩΝ ΕΞΑΜΗΝΩΝ & ΕΠΙ ΠΤΥΧΙΩ ΕΞΕΤΑΣΤΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ (ΟΡΘΗ ΕΠΑΝΑΛΗΨΗ 1 )

Μοντέλο συστήματος διαχείρισης της ποιότητας

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

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Μοντέλο OSI 1.8. Κεφάλαιο 1. ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : Τάξη. : Β Τομέα Πληροφορικής Μάθημα. : Δίκτυα Υπολογιστών I Διδάσκων

Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης

Αξιοποίηση Εικονικών Μηχανών στην διδασκαλία εξειδικευμένων εκπαιδευτικών αντικειμένων

Πανεπιστήμιο Πατρών, Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Κωνσταντίνος Κοντοδήμας, Διπλωματούχος Μηχανικός Η/Υ και Πληροφορικής c

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

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος 2015 2016 Κρυπτογραφική συσκευή VirtIO για QEMU-KVM Εργαστήριο Υπολογιστικών Συστημάτων Ε.Μ.Π. os-lab@lists.cslab.ece.ntua.gr Απρίλιος 2016

Περιεχόμενα 1 Εισαγωγή 2 2 Κρυπτογραφημένη επικοινωνία πάνω από TCP/IP 2 3 Κρυπτογραφική συσκευή VirtIO 3 4 Ζητούμενα 5 5 Εξέταση άσκησης και αναφορά 5 1 Εισαγωγή Αντικείμενο της παρούσας άσκησης είναι η ανάπτυξη εικονικού υλικού στο περιβάλλον εικονικοποίησης QEMU-KVM. Στο πλαίσιο της άσκησης, θα σχεδιάσετε και θα υλοποίησετε εικονική κρυπτογραφική συσκευή VirtIO, η οποία θα αποτελεί πλέον μέρος του QEMU. Η εικονική κρυπτογραφική συσκευή θα επιτρέπει σε διεργασίες που εκτελούνται μέσα στην εικονική μηχανή να έχουν πρόσβαση σε πραγματική κρυπτογραφική συσκευή του host, τύπου cryptodev-linux, με χρήση τεχνικής παρα-εικονικοποίησης (paravirtualization). Η συσκευή cryptodev-linux επιτρέπει σε εφαρμογές να έχουν πρόσβαση σε επιταχυντές υλικού για κρυπτογραφία (hardware crypto accelerators), κάνοντας κλήσεις σε ειδικό αρχείο /dev/crypto. Περισσότερα για τον τρόπο πρόσβασης σε συσκευές cryptodev-linux και το προσφερόμενο API μπορείτε να διαβάσετε στον οδηγό προγραμματισμού cryptodev-linux που σας δίνεται, καθώς και στο http://cryptodev-linux.org/. Το σενάριο χρήσης του οδηγού σας, με το οποίο και θα επαληθεύσετε τη σωστή λειτουργία του, είναι η υλοποίηση ενός εργαλείου για κρυπτογραφημένη επικοινωνία (encrypted chat) πάνω από TCP/IP sockets, όπως φαίνεται στο Σχήμα 1. 2 Κρυπτογραφημένη επικοινωνία πάνω από TCP/IP Η κατασκευή της εφαρμογής chat είναι μέρος της άσκησης. Τα δύο άκρα στα οποία εκτελείται η εφαρμογή θα επικοινωνούν μέσω TCP/IP, κάνοντας χρήση του BSD 2

Node A Δικτυακή διεργασία (π.χ. chat) TCP Δικτυακή διεργασία (π.χ. chat) Node B /dev/crypto /dev/crypto I/O I/O Σχήμα 1: Κρυπτογραφημένο chat πάνω από TCP/IP Sockets API. Περισσότερα για το BSD Sockets APΙ μπορείτε να βρείτε στον οδηγό προγραμματισμού με BSD Sockets που σας δίνεται. Η κρυπτογράφηση των μηνυμάτων θα γίνεται μέσω του cryptodev userspace API (/dev/crypto). Η εφαρμογή chat θα μπορεί να τρέξει είτε χρησιμοποιώντας απευθείας συσκευή cryptodev-linux, όταν εκτελείται στον host, είτε χρησιμοποιώντας τη δική σας κρυπτογραφική συσκευή VirtIO, όταν εκτελείται μέσα σε εικονική μηχανή QEMU- KVM. 3 Κρυπτογραφική συσκευή VirtIO Για την υποστήριξη πρόσβασης σε κρυπτογραφικούς επιταχυντές μέσα από VMs, θα σχεδιάσετε και θα υλοποιήσετε δική σας κρυπτογραφική συσκευή VirtIO για cryptodev (εικονικό hardware στο QEMU), και αντίστοιχο οδηγό συσκευής για τον guest πυρήνα Linux, μέσα στην εικονική μηχανή. Η συσκευή θα υλοποιηθεί σε δύο μέρη, σύμφωνα με το split-driver model: Ένα 3

frontend (μέσα στο VM) κι ένα backend (μέρος του QEMU), τα οποία θα χρησιμοποιούν το VirtIO ως μηχανισμό επικοινωνίας ανάμεσά τους, όπως φαίνεται και στο Σχήμα 2../test_virtio_crypto VM VirtIO frontend driver (QEMU) VirtIO ring buffer QEMU crypto backend VFS cryptodev driver Σχήμα 2: Αρχιτεκτονική λογισμικού της (paravirtualized) συσκευής virtio-crypto Πιο συγκεκριμένα, σας ζητείται υλοποίηση του οδηγού συσκευής για τον guest πυρήνα του Linux, ο οποίος θα εξάγει στις εφαρμογές το ίδιο cryptodev userspace API που εξάγει η συσκευή cryptodev του host, ουσιαστικά η υλοποίηση της κλήσης σε κατάλληλη εικονική συσκευή. Αντίστοιχα, στην πλευρά του backend, μέσα στον κώδικα του QEMU, σας ζητείται να λαμβάνετε τις κλήσεις του frontend και να τις προωθείτε για επεξεργασία από τη συσκευή cryptodev του host. Η υλοποίηση της κρυπτογραφικής συσκευής VirtIO θα βασιστεί στον κώδικα της συσκευής virtio-console που υποστηρίζεται ήδη από το QEMU. Περισσότερα για τη λειτουργία του VirtIO και την υλοποίηση συσκευών VirtIO μπορείτε να βρείτε στον οδηγό της εργαστηριακής άσκησης που σας δίνεται. 4

4 Ζητούμενα Τα ζητούμενα της άσκησης, σε χρονολογική σειρά είναι: Ζ1: Εργαλείο chat πάνω από TCP/IP sockets Το εργαλείο αυτό θα επιτρέπει αμφίδρομη επικοινωνία πάνω από TCP/IP, με χρήση του BSD Sockets API, χωρίς κρυπτογράφηση των μηνυμάτων που ανταλλάσσονται. Ζ2: Κρυπτογραφημένο chat πάνω από TCP/IP Επέκταση του εργαλείου chat, ώστε τα δεδομένα που μεταφέρονται πάνω από TCP/IP να είναι κρυπτογραφημένα με προσυμφωνημένο κλειδί. Χρήση του cryptodev-linux API, από userspace, για την κρυπτογράφηση των δεδομένων. Ζ3: Υλοποίηση συσκευής cryptodev με VirtIO Σχεδίαση και υλοποίηση εικονικής συσκευής cryptodev, με χρήση του πλαισίου VirtIO, έτσι ώστε το προηγούμενο εργαλείο να μπορεί να εκτελείται μέσα σε VM κάνοντας χρήση κρυπτογραφικών επιταχυντών σε υλικό, οι οποίοι ως τώρα ήταν προσβάσιμοι μόνο από τον host. Το εργαλείο πρέπει να εκτελείται ακριβώς με το ίδιο API, αλλάζοντας μόνο τη συσκευή την οποία χρησιμοποιεί για κρυπτογράφηση των δεδομένων. Προαιρετικά, μπορείτε να διερευνήσετε τη δυνατότητα επικοινωνίας πολλών ταυτόχρονων πελατών με κοινό server, σε σενάριο παρόμοιο με αυτό της υπηρεσίας Internet Relay Chat (IRC). 5 Εξέταση άσκησης και αναφορά Η προθεσμία για την εξέταση της άσκησης στο εργαστήριο είναι: Πέμπτη 19/05/2016, για τα Ζ1,Ζ2 Πέμπτη 02/06/2016, για το Ζ3 Μετά την εξέταση κάθε ομάδα θα πρέπει να συντάξει σύντομη αναφορά, η οποία θα περιγράφει τις βασικότερες επιλογές που κάνατε, τα προβλήματα που προέκυψαν και τον τρόπο με τον οποίο τα επιλύσατε, κατά τη σχεδίαση και υλοποίηση του εργαλείου chat και της κρυπτογραφικής συσκευής VirtIO. Η προθεσμία για την παράδοση της αναφοράς είναι η Πέμπτη 09/06/2016. 5