Hacker News new | past | comments | ask | show | jobs | submit login
MIT 6.858 Computer Systems Security Final Projects (csail.mit.edu)
118 points by jlrubin on Dec 15, 2014 | hide | past | favorite | 28 comments



Here's the full course (20+ lectures) on youtube if anyone's interested:

https://www.youtube.com/results?search_query=6.858+Fall+2014



From Pretty Good Chat:

"We consider the case of the private key being stolen as very unlikely. The users themselves are not able to access it outside the app, and no other adversary will be able to either"


Reminds me of Google Authenticator, hiding the private key (used for generating the one time codes) by hand-waving and wishful thinking. Most users probably don't realize that there is a shared key -- and are left wondering why there's no sane way to import/export keys/accounts (there's of course no good reason for this other than dumbing down/simplifying the UI/UX: I suppose opinions are divided on whether or not this is a good thing). When you don't understand that there's a shared secret, you don't realize that that secret could be backed up/leaked from the server side -- without you knowing. Pretending that it's a HSM type deal and hiding the complexity of key management obscures some pretty obvious attack vectors from the users.

All that said, (T)OTPs have some advantages versus traditional "provably shared-secret, by way of salt+hash+stretching" of traditional passwords.


Not a very good starting point to consider phone app storage a reliable secure black box...


True, but you can increase that reliability with encrypted sqlite. Gonna have to pay for it, though.



And where would you hide your encryption key exactly? (Honest question, maybe this is a solved problem, but I don't know the solution).


I would say in comparison to storing it on the server, storing the encrypted private key in Keychain probably offers a lot more security. An attacker would need direct access to the device and would need to either a) know the user's passphrase, b) be able to fool TouchID or c) be able to bypass Keychain's security.

However if iCloud Keychain is enabled then this opens up the attack surface a lot more.


Interesting how 4 of the 25 projects are related to Bitcoin. It just goes show that the cryptocurrency inspires a good fraction of computer & network security people:

CheckBits: http://css.csail.mit.edu/6.858/2014/projects/adat-bschang-er...

TorCoin: http://css.csail.mit.edu/6.858/2014/projects/bchrobot-ynnad1...

Dryer21, a Bitcoin Anonymizer Service: http://css.csail.mit.edu/6.858/2014/projects/asuhl-dannybd-s...

Merkelized Abstract Syntax Trees: http://css.csail.mit.edu/6.858/2014/projects/jlrubin-mnaik-n...


No doubt influenced by the MIT Bitcoin Project [1] that gave $100 in BTC to every MIT undergrad this fall.

[1] http://mitbitcoinproject.org/


I'll note that OP is a founder of the MIT Bitcoin Project.


Correct. Also in connection to the post, I'm an author of Merkelized Abstract Syntax Trees project for what it's worth.


first hit is always free


I'd like to congratulate all the students for all of their hard work. 6.858 always produces new, original results, and this year is no different.


I was a consultant for MIT and a student decided his final project would be to hack the custom LMS system we were working on. To our surprise, he figured out at least two ways before letting us know he was working on a final project. Gotta love MIT.


If anyone has taken the time to go through all/all projects of a certain category, I'd love to hear some impressions/TL;DRs.


I can try to offer some impressions on the encrypted filesystems, as I went through all of those. Perhaps it's a bad choice, as it is the "default" project, but it's the area I am most interested in. I am not an expert in encrypted file systems, but I am a developer for a private cloud storage provider, and have some passing familiarity with the subject.

* Paranoia: Another Encrypted File System

They make repeated statements about relying on the server to protect the file from access such as "We depend on the server to correctly process ACLs and serve files that the user is authorized to view." and "If the server can be trusted to enforce the ACLs,no malicious user, perhaps named Mallory, can be permitted to read Alice's files." but since the premise of these projects is to deny trust to the server it seems odd to trust the server with anything. They do make sure that file contents cannot be read by the server without the client key, however I'm not sure why they went ahead and implemented a server except as a learning exercise or perhaps to provide an end-to-end solution. Inspection of the GitHub code raised some odd practices, such as explicit calls to sys.path.insert(0, '/home/henchill/Documents/Workspace/encrypted_file_system/server'), which makes me think perhaps it wasn't packaged correctly. At least they put it on GitHub, some of the other project were shipped as tar.gz.

* FyreBox - Encrypted File System

"Our filesystem is made up of 3 components: the client, the server, and a trusted cloud service." A trusted cloud service for the keys? I don't know why you would trust a cloud service and not the server. GitHub code seems reasonably clean, but requiring trusted cloud service seems like a dealbreaker.

* KBox: An Encrypted File System

I see a lot of math and LaTex, and security seems well considered, but I have to wonder about usability. The solution seems to store so much on the client side, including information needed to reconstruct the root directory and file names, that access from multiple clients or using it for sharing files seems untenable. However, I could have misunderstood. Noticed mixed tabs and spaces in the Python code, as well as cleartext password and private key in the code. Even if it is for testing, seems like bad practice.

* DarkFS - An Encrypted File System

I think I actually liked this one the best. They start right out by saying they do not trust the server for anything, and implemented their solution against the Dropbox API. They insert and encrypt the permissions/ACLs with the file data. However, these permissions are enforced by the client, so I wonder if a malicious client implementation could sidestep the permissions checking entirely. It is unclear if the permissions are enforced by the nature and sequence of the encryption itself. They also mention that had some issues with the Dropbox API, specifically being unable to encode file sharing data. I wonder if they would have been better served to implement their solution against the Amazon S3 API, as it supports file metadata and is quickly become the standard for file storage. S3 API is implemented by OpenStack Swift, EMC Atmos, Hitachi HCP, etc. Their code seemed well organized and the writers seemed familiar with Python. Would have preferred to see it on GitHub.

I was also a bit disappointed not to see anything here about distributed filesystems, leveraging torrents or other distributed infrastructure so that no server has the whole picture. There was interesting work done in projects such as Tahoe-LAFS years ago, nothing in these MIT projects seems radically innovative.


To compare with previous years (http://css.csail.mit.edu/6.858/2013/projects.html):

2013 vs 2014

2/35 vs 4/25 - Bitcoin Projects

12/35 vs 4/25 - Encrypted Filesystems

2/35 vs 1/25 - Privilege Separation


The reference materials page is also worth checking out: http://css.csail.mit.edu/6.858/2014/reference.html


There should be a final project like this to make distributed systems. It's a new area and could disrupt major players.


There's actually another course (6.824, http://css.csail.mit.edu/6.824/2014/) that runs in the Spring that focuses on distributed systems, and also has had a number of interesting final projects. While we haven't released project writeups in the past, its possible we'll do something similar to 6.858 and put them up online at the end of the class for 2015.


That's a lot of encrypted filesystems :)


Yeah, we made that the default project for teams to work on.


I want to know about the Hacking MIT writeup! It's not available yet, I wonder what they achieved?


They asked for a delay on release so that affected services can be patched.


I really want to see the package manager security paper when it's out.


MAST looks interesring.

As to Kerby, all I have to say is Xposed.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: