dc.contributor.author |
Χαρίσης-Πούλος, Δημήτριος
|
el |
dc.contributor.author |
Charisis-Poulos, Dimitrios
|
en |
dc.date.accessioned |
2024-06-07T10:05:18Z |
|
dc.date.available |
2024-06-07T10:05:18Z |
|
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/59681 |
|
dc.identifier.uri |
http://dx.doi.org/10.26240/heal.ntua.27377 |
|
dc.rights |
Default License |
|
dc.subject |
Operating Systems |
en |
dc.subject |
Linux |
en |
dc.subject |
Cryptography |
en |
dc.subject |
AES |
en |
dc.subject |
XTS |
en |
dc.subject |
io_uring |
en |
dc.subject |
Ublk |
en |
dc.subject |
GPGME |
en |
dc.subject |
OpenSSL |
en |
dc.title |
Design and implementation of an encrypted I/O path in userspace, using the Ublk Framework and the io uring mechanism |
en |
heal.type |
bachelorThesis |
|
heal.classification |
Computer Science |
en |
heal.language |
en |
|
heal.access |
free |
|
heal.recordProvider |
ntua |
el |
heal.publicationDate |
2024-03-08 |
|
heal.abstract |
Linux is an operating system that runs on the majority of servers worldwide and on many home computers. One of the main functions of an operating system is to manage requests from userspace programs that require access to hardware. Traditionally, Linux supports these system calls in a synchronous manner, meaning it completes the requested operation first and then returns control to the program. Although Linux offers methods for asynchronous communication, they have significant drawbacks.
To address the lack of a reliable mechanism for asynchronous communication, the io_uring mechanism, which was integrated into the Linux kernel in 2019, allows programs to communicate with the kernel in an asynchronous, fast, and efficient manner. This led to the development of new frameworks that take advantage of io_uring's capabilities. One such framework is ublk, which enables the implementation of block device drivers in userspace. This is achieved via a limited ublk driver module in the kernel that forwards application requests to a server in userspace for processing.
In this thesis, we expanded the ublk framework by integrating a cryptographic path directly into the ublk server running in userspace. Thus, data sent by applications using the ublk-supported disk are stored encrypted. We implemented the encryption in three different ways - one serial and two parallel - and compared the implementations, drawing useful conclusions about the capabilities of our implementations and their potential extensions with the aim of contributing our work upstream to ublk. |
el |
heal.advisorName |
Κοζύρης, Νεκτάριος |
el |
heal.committeeMemberName |
Γκούμας, Γεώργιος |
el |
heal.committeeMemberName |
Πνευματικάτος, Διονύσιος |
el |
heal.academicPublisher |
Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών |
el |
heal.academicPublisherID |
ntua |
|
heal.numberOfPages |
249 σ. |
el |
heal.fullTextAvailability |
false |
|