10 ms·
Zbox – Zero-knowledge, privacy-focused embeddable file system written in Rust
- cdoxsey 9y agoPerhaps there are use cases where this would make sense (mobile?), but for a server-side application, wouldn't encrypting the filesystem be better? I'm just imagining an operator trying to debug the system only to find out that he can't read any of the files from the terminal and will have to build custom programs using this library to operate with the data. And it seems like there are API abstraction issues too... Imagine you use a library that writes some state to the file system using the standard lib. None of that data would end up encrypted because it didn't go through this library. Whereas using the operating system's filesystem allows transparent compression and encryption without having to change your code at all.
- kazagistar 9y agoI could see it being used alongside Intel SGE for DRM or security reasons, in situations where the OS and system are considered hostile adversaries, but you still need extensive mutable external storage outside the application binary.
- deleted 9y ago[deleted]
- Confiks 9y agoBefore an entire bikeshed discussion arises over the misused term "zero-knowledge", know that the author is sensitive to this issue and will likely correct it soon [1]. [1] https://github.com/zboxfs/zbox/issues/4 https://github.com/zboxfs/zbox/issues/4
- easytiger 9y agoSeems to me the bigger issue is calling it a file system. As far as I can tell it is nothing of the sort.
- _Codemonkeyism 9y agoSo it's not a file system and not zero-knowledge :-)
- frankmcsherry 9y agoOr perhaps it is zero-knowledge, but about file systems. ;)
- Cthoma 9y agoDOA. >The reason why I am using it is mainly for marketing purpose. >I am going to change the term to zero leakage, what do you guys think? The author may change it to Uber Super Duper The Best of The Filesystems in the entire Observable and the non observable parallel universes, makes more sense.
- DennisP 9y agoWell there I was, assuming it wouldn't provide your file but just prove that it could.
- vog 9y agoGreat project, I applaud the effort! Some curious questions: - Where exactly does "zero-knowledge" play a role here? Does this provide steganography? Or, what is meant? - Why do they use libsodium (excellent choice, but C) instead of a native Rust crypto library? - Does this only work with Rust applications?
- zaarn 9y agoApparently "Zero Knowledge" is used in the more modern way; it's encrypted with a password.
- betterunix2 9y agoThat is not exactly what "zero knowledge" means, even in modern times...
- zaarn 9y agoSpideroak disagrees.
- vog 9y agoTo be fair, they use the term "no knowledge", not "zero knowledge": https://spideroak.com/no-knowledge/ https://spideroak.com/no-knowledge/
- zaarn 9y agoThat's what they now use, previously they did use zero knowledge.
- JetSetWilly 9y agoAnd then they realised it was wrong: https://spideroak.com/articles/why-we-will-no-longer-use-the-phrase-zero-knowledge-to-describe-our-software/ https://spideroak.com/articles/why-we-will-no-longer-use-the...
- O1111OOO 9y agoLooks interesting - on my checklist for serious testing. Currently using cryptomator[0] for encrypting local directories under Linux. Works very well with Nemo (File Manager), browsers (I keep local html pages here..), gedit. Some apps don't like accessing the DAV-based links (geany), while others generally work will enough that I have long-term confidence (ZIM Desktop Wiki = issues only with moving pages around within ZIM itself). [0] https://cryptomator.org/ https://cryptomator.org/
- pibefision 9y agoI wonder how can this coexist with docker. Docker volumes maybe could be encrypted?
- nudpiedo 9y agoI will be a bit harsh with the project since I understand it aims to be a technology to be used in production and not just a pet project... (not "Show HN" tag was present.) I only see here yet another key value store with an application programming interfaces that resembles the typical filesystem operations, but it is only accessible within a programming framework. I know it is not finished but the flaws I see at the moment are completely fundamental: it aims to be general purpose, not unix compliant, not mountable, not language or truly operating system agnostic and in conclusion does not permit leverage existing filesystem tools such as mount/find/grep/sshfs etc... not to speak about support for multiple processes, users, time validations... I wish you all the luck in the world as pet project (really! especially since filesystems are quite hard to get mature and stable) but I hope it never succeeds as a serious alternative to filesystems, because that could be worse than mongodb to rdbms. Now trying to be constructive: there is value in the concept of runtime embeddable file systems. Why don't reframe the project as a key-value store which is embeddable within applications and mountable? (for example via fuse so you can even mount it mac/linux/others). Even if it is mountable only as RO that could bring several advantages over existing key-value-stores and advanced filesystems which are not embeddable. Again, impressive work, good luck. EDIT: the way you store data is also a great discussion topic... who is interested in so many possible ways to store the information anyway? that mostly depends on the requirements of the consuming application... for example if you target users which want to have a file-system-alike embedded runtime, why they would like to use this project if they have access to advanced unix compliant filesystems which support encryption and RAID and advanced tools out of the box?
- simias 9y agoI'm also surprised that there's no Fuse interface, it's the first thing I expected while reading the title. For single process crypto storage I'd sooner use a crypto shim for SQLite, I don't know if there's any good one available out there (besides the one sold by the SQLite devs).
- chrisballinger 9y agoYou can use SQLCipher [1] with libsqlfs [2], which has a FUSE interface. 1. https://github.com/sqlcipher/sqlcipher https://github.com/sqlcipher/sqlcipher 2. https://github.com/guardianproject/libsqlfs https://github.com/guardianproject/libsqlfs
- fiatjaf 9y agoCan it run in the browser and store files on IndexedDB?
- burmecia 9y agoNot yet, but could be possible if you can compile it into WebAssembly.