GithubHelp home page GithubHelp logo

Celluloid

Build Status Code Climate Coverage Status Dependency Status

"I want people to see the truth... regardless of who they are... because without information, you cannot make informed decisions as a public" -- Chelsea Elizabeth Manning

The Cryptosphere is a global peer-to-peer cryptosystem for publishing and securely distributing content pseudonymously with no central point of failure. The system is openly federated and anyone can join. To ensure quality service and prevent abuse, the Cryptosphere uses an integrated cryptographically secure reputation system which provides a distributed web of trust.

There are several systems with similar goals to the Cryptosphere, such as MNet, Freenet, and Tahoe-LAFS. These systems serve as inspiration for the Cryptosphere's design. The Cryptosphere is also heavily influenced by Git, the distributed version control system.

For more information, please see the project philosophy page in the wiki.


Like the Cryptosphere? Join the Google Group. To join by e-mail, send a message to: [email protected]

We're also on IRC at #cryptosphere on irc.freenode.net

Is it any good?

Yes.

Is it "Production Ready™"?

DANGER: EXPERIMENTAL

No, the Cryptosphere is still in an early development stage, and is not yet ready for general usage.

Can I use it yet?

No, but the system is being actively developed. You can view progress here:

Is there at least something I can play with?

You can see the system's work-in-progress UI if you'd like.

First, make sure that libsodium is available. For OS X, it is available via Homebrew: brew install libsodium. On other systems, follow the installation instructions.

Then run the following to clone the repo from Github and set up a local copy.

git clone https://github.com/cryptosphere/cryptosphere.git
cd cryptosphere
bundle
bundle exec bin/crypt server

This will launch a local web server:

$ bundle exec bin/crypt server
I, [2012-11-30T21:23:30.059083 #62043]  INFO -- : Starting web UI on http://127.0.0.1:7890

You can view the web UI at http://127.0.0.1:7890

Documentation

The Cryptosphere Wiki contains all relevant documentation, including the protocol specification, FAQ, and usage notes.

Use Cases

The Cryptosphere provides an encrypted storage system where only users with the capability tokens for respective content are able to access it. Unlike many other peer-to-peer systems, there is no global search feature because all content in the system is encrypted and therefore unsearchable.

This makes the Cryptosphere quite a bit different from many other P2P systems which sought to publicize users content. Instead, the Cryptosphere tries to keep your content as confidential as possible. This makes it useful for the following things:

  • Secure personal backups
  • File sharing among small groups (ala Dropbox)
  • Secure anonymous encrypted source control
  • Censorship-proof anonymous web hosting

Important Questions

Is it "Military Grade™"?

Only if your military understands twisted Edwards curves

Does it have a lock with a checkmark?

Sure, here you go:

Checkmarked Lock

No really, I'm interested in the system's cryptography. What should I read?

We realize there's a lot of people making "interesting" claims in the security world, and that claims alone don't work. We need well-designed, well-documented, well-scrutinized open source cryptosystems.

Check out the Data Model page in the Wiki for the threat model and a specification of the cryptography employed in the system. It's still a work in progress and some components of the system aren't specified yet. We're going with a specify-then-implement approach, so by all means provide feedback on the design, we'd love it.

The Protocol page of the Wiki describes the transport encryption we use (CurveCP) and our rationale for this choice.

Cryptographic primitives are supplied by RbNaCl, a Ruby binding to the Networking and Cryptography (NaCl) library by Daniel J. Bernstein. The Cryptosphere uses a portable repackaging of NaCl named libsodium.

Is it NSA-proof?

tl;dr: NO.

Time for some RealTalk™...

In the pantheon of potential adversaries you can have in a cryptographic system, the NSA falls into a category you never want to deal with: state-level adversaries with vast resources, expertise, and manpower.

It is the opinion of the creators of this software that if the NSA wants to compromise this software (or any software-only cryptosystem) they will be able to, both by finding flaws in this software and exploiting endpoint vulnerabilities (e.g. unpatched OS vulnerabilities/zero days).

We do not claim to be NSA-proof because we do not think it's a responsible claim for software of this nature to make.

That said, we are still trying to build the best cryptosystem we can.

Have any fancy pants cryptographers taken a look at the design?

Matt Green glanced over an initial draft of the data model. He thought that Blake2bXSalsa20Poly1305 was a funny name.

Contributing to the Cryptosphere

  • Fork this repository on github
  • Make your changes and send us a pull request
  • If we like them we'll merge them

License

Copyright (c) 2014 Tony Arcieri. Distributed under the MIT License. See LICENSE.txt for further details.


Dedicated to the memory of Iain Banks

Cryptosphere's Projects

boulangerie icon boulangerie

An opinionated library for creating and verifying Macaroons in Ruby

boulangerie-rails icon boulangerie-rails

Rails support for Boulangerie, an opinionated library for creating and verifying Macaroons in Ruby

confusion icon confusion

An experiment in fingerprint-free encrypted messaging

cryptor icon cryptor

An easy-to-use library for real-world Ruby cryptography

cryptosphere icon cryptosphere

Encrypted peer-to-peer web application platform for decentralized, privacy-preserving applications

fling icon fling

Simple secret sharing over Tahoe-LAFS

ithos-rb icon ithos-rb

Ruby client library for the ithos directory server

keyspace icon keyspace

Capability-based secure key management and credential storage

macaroons-rs icon macaroons-rs

Macaroons: bearer credentials with caveats for distributed authorization

objecthash-rb icon objecthash-rb

A content hash algorithm which works across multiple encodings (JSON, Protobufs, etc)

objecthash-rs icon objecthash-rs

A content hash algorithm which works across multiple encodings (JSON, Protobufs, etc)

ordo icon ordo

Ordered Representation for Distinguished Objects: A Certificate Format

ruby-ring icon ruby-ring

Ruby wrapper for the *ring* cryptography library

shinjitsu icon shinjitsu

Cryptographically verifiable authenticity for Ruby object attributes

sysrandom icon sysrandom

Secure random number generation for Ruby using system RNG facilities

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.