diff options
-rw-r--r-- | README.md | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -8,17 +8,17 @@ ## About this project -The TorFS project was initialted as a final project in [NTU Cryptography and Network Security course](https://www.csie.ntu.edu.tw/~hchsiao/courses/cns19.html). It was motivated by [dnsfs](https://github.com/benjojo/dnsfs) and [pingfs](https://github.com/yarrick/pingfs). We explored the similar idea, that exploits storage from protocols which was not intended for this purpose. We discovered Tor hidden services can be regarded as reliable and retrievable data storage. +The TorFS project was initiated as a final project in [NTU Cryptography and Network Security course](https://www.csie.ntu.edu.tw/~hchsiao/courses/cns19.html). It was motivated by [dnsfs](https://github.com/benjojo/dnsfs) and [pingfs](https://github.com/yarrick/pingfs). We explored the similar idea, which exploits storage from protocols which was not intended for this purpose. We discovered Tor hidden services can be regarded as reliable and retrievable data storage. ## How TorFS works -Before involving into TorFS, it's better to understand Onion services (formerly, hidden services). It provides anonymity to websites and other services beneath Tor's Onion network. Tor website already has a good [explanation](https://www.torproject.org/docs/onion-services.html.en) on Onion services. For those who wants to know about it deserve 10 minutes reading on this. +Before involving into TorFS, it's better to understand Onion services (formerly, hidden services). It provides anonymity to websites and other services beneath Tor's Onion network. Tor website already has a good [explanation](https://www.torproject.org/docs/onion-services.html.en) on Onion services. A 10-minute reading is worthwhile for those who want to know about it. To setup an Onion service, we generate a private/public long-term key pair as our service indentity. Currently Tor allows Ed25519 or RSA1024 keys. We advertise our service named XYZ.onion or some by asking _introduction points_, basically Tor relays, to store our public keys. Whoever client visiting our service should learn about our public key, and setups up a _rendezvous point_ for futher contact. -However. we only need to store data without an actual service. We don't need the whole feature of Onion service. It turns out the _introduction points_, along with our public keys, can survive even the actual service is absent. As you can figure out, we put the stuffs into public keys and retrieve them back using _.onion_ addresses! That's basically how TorFS works. +However, we only need to store data without an actual Onion service. It turns out the _introduction points_, along with our public keys, can survive even the actual service is absent. As you can figure out, we put the stuffs into public keys and retrieve them back using _.onion_ addresses! That's basically how TorFS works. -In details, e derived an algorithm to generate 1024-bit long RSA keys, where 800 of 1024-bits of _n_ component (product of two primes) is arbitrary data. We manipulate remaining bits to satisfy RSA's constraints. Then, We build a virtual file system that slice the files into 800-bit blocks, distribute them to introduction points, and keep track of the replicas by _.onion_ addresses. +In detail, we derived an algorithm to generate 1024-bit RSA keys, where 800 out of 1024 bits in _n_ component (product of two primes) can contain arbitrary data. We manipulate the remaining bits to satisfy RSA's constraints. Then, we build a virtual file system that slice the files into 800-bit blocks, distribute them to introduction points, and keep track of the replicas by _.onion_ addresses. ## Prerequisites |