README.md 7.88 KB
Newer Older
1
<p align="center">
Kevin's avatar
Kevin committed
2

3
<img src="./docs/onionr-logo.png" width='250'>
4 5 6

</p>

7
<p align="center">
Kevin's avatar
Kevin committed
8
    Privacy Respecting Communication Network 馃摗
9
</p>
Kevin Froman's avatar
Kevin Froman committed
10 11 12
<p align="center">
    Anonymous social platform, mail, file sharing.
</p>
13

Kevin's avatar
Kevin committed
14
<img src='https://img.shields.io/github/license/beardog108/onionr'> <img src='https://gitlab.com/beardog/Onionr/badges/master/build.svg'> <img src='https://img.shields.io/badge/docker%20%F0%9F%90%8B-supported-success'> <img src='https://img.shields.io/badge/python%20version%20%F0%9F%90%8D-3.7+-blue'> <img src='https://img.shields.io/github/commit-activity/m/beardog108/onionr'>
Kevin's avatar
Kevin committed
15

Kevin's avatar
Kevin committed
16 17
<img src='https://onionr.net/block-count.svg' alt='current stored block count'>

18
<a href='https://www.reddit.com/r/onionr'><img src = 'https://img.shields.io/reddit/subreddit-subscribers/onionr?style=social'></a> <a href='https://twitter.com/onionrnet'><img src='https://img.shields.io/twitter/follow/onionrnet?style=social'></a>
Kevin's avatar
Kevin committed
19 20 21 22

|                                      |                            |                            |
| -----------                          | -----------                | -----------                |
| [Install](#install-and-run-on-linux) | [Features](#main-features) | [Screenshots](#screenshots)|
Kevin's avatar
Kevin committed
23
| [Docs](#documentation)/[web copy](https://beardog108.github.io/onionr/)               | [Get involved](#help-out)  | [Onionr.net](https://onionr.net/)/[.onion](http://onionrbak72t5zhbzuey2fdkpczlvhowgcpqc6uoyrd3uxztzxwz5cyd.onion/)                  |
Arinerron's avatar
Arinerron committed
24

Kevin's avatar
Kevin committed
25

26
<hr>
27

Kevin's avatar
Kevin committed
28 29
**The main repository for this software is at https://GitLab.com/beardog/Onionr/**

Kevin's avatar
Kevin committed
30
**The [GitHub repository](https://github.com/beardog108/onionr/) is a mirror, do not submit PRs or issues there.**
31

Kevin's avatar
Kevin committed
32
# About
33

Kevin's avatar
Kevin committed
34
Onionr ("Onion Relay") is a decentralized/distributed peer-to-peer communication network, designed to be anonymous and resistant to (meta)data analysis, spam, and corruption.
35

36
Onionr stores data in independent packages referred to as 'blocks'. The blocks are distributed to all interested nodes. Blocks and user IDs cannot be easily proven to have been created by a particular user. Even if there is enough evidence to believe that a specific user created a block, nodes still operate behind Tor or I2P and as such cannot be trivially unmasked. Anonymity is achieved by a stateless network, with no given indication of what node a block originates from. Through message mixing and key privacy, it is intended to be nigh impossible to discover the identity of a message creator or recipient.
37

38 39 40
Via long-term traffic analysis, a well funded adversary may discover the most probable node(s) to be creating a set of related blocks, however doing so would only lead them to a node behind Tor or I2P. As the first node that a block appears on is almost always not the creator of the block, there is plausible deniability regarding the true creator of the block.

Onionr gives the individual the ability to speak freely, without fear of surveillance and censorship.
41

42
Users are identified by ed25519/curve25519 public keys, which can be used to sign blocks or send encrypted data.
43 44

Onionr can be used for mail, as a social network, instant messenger, file sharing software, or for encrypted group discussion.
Kevin's avatar
Kevin committed
45

Kevin Froman's avatar
Kevin Froman committed
46
The whitepaper is available [here](docs/whitepaper.md).
47

48 49
![Tor stinks slide image](docs/tor-stinks-02.png)

50
## Main Features
51

Kevin's avatar
Kevin committed
52 53 54
* [X] 馃寪 Fully p2p/decentralized, no trackers or other single points of failure
* [X] 馃敀 End to end encryption of user data
* [X] 馃摙 Optional non-encrypted blocks, useful for blog posts or public file sharing
55
* [X] 馃捇 Easy HTTP API for integration to websites
Kevin's avatar
Kevin committed
56 57
* [X] 馃暤锔 Metadata analysis resistance and anonymity
* [X] 馃摗 Transport agnosticism (no internet required)
58

59 60 61 62 63
Onionr ships with various application plugins ready for use out of the box:

Currently usable:

* Mail
Kevin's avatar
Kevin committed
64
* Public anonymous chat/message board
Kevin's avatar
Kevin committed
65
* Simple webpage hosting - Will be greatly extended
66 67 68 69 70 71
* File sharing (Work in progress)

Not yet usable:

* Instant messaging

72 73 74 75 76 77 78 79


## Watch the talk from BSidesPDX 2019

<a href="https://invidio.us/watch?v=mrULtmSkKxg">
<img src="docs/talk.png" alt="improving anonymous networking talk link" width="600">
</a>

Kevin's avatar
Kevin committed
80 81 82 83
# Screenshots

<img alt='Node statistics page screenshot' src='docs/onionr-1.png' width=600>

Kevin's avatar
Kevin committed
84
Home screen
Kevin's avatar
Kevin committed
85 86 87 88 89 90 91

<img alt='Friend/contact manager screenshot' src='docs/onionr-2.png' width=600>

Friend/contact manager

<img alt='Encrypted, metadata-masking mail application screenshot' src='docs/onionr-3.png' width=600>

Kevin's avatar
Kevin committed
92
Encrypted, metadata-masking mail application. One of the first distributed mail systems to have basic forward secrecy.
Kevin's avatar
Kevin committed
93

94 95 96 97 98 99 100
# Documentation

More docs coming soon.

* [Block specification](docs/specs/block-spec.md)
* [HTTP API](docs/http-api.md)

101
# Install and Run on Linux
102

103 104
The following applies to Ubuntu Bionic. Other distros may have different package or command names.

105 106
`$ sudo apt install python3-pip python3-dev tor`

Kevin's avatar
Kevin committed
107
* Have python3.7+, python3-pip, Tor (daemon, not browser) installed. python3-dev is recommended.
108 109
* Clone the git repo: `$ git clone https://gitlab.com/beardog/onionr`
* cd into install direction: `$ cd onionr/`
110
* Install the Python dependencies ([virtualenv strongly recommended](https://virtualenv.pypa.io/en/stable/userguide/)): `$ pip3 install --require-hashes -r requirements.txt`
111
* (Optional): Install desktop notification dependencies: `$ pip3 install --require-hashes -r requirements-notifications.txt`
112

113
(--require-hashes is intended to prevent exploitation via compromise of PyPi/CA certificates)
Kevin's avatar
Kevin committed
114

Kevin's avatar
Kevin committed
115 116 117 118 119
## Run Onionr

* Run Onionr normally:  `$ ./onionr.sh start`
* Run Onionr in background as daemon: `$ ./start-daemon.sh`
* Open Onionr web interface  `$ ./onionr.sh openhome`
120
* Gracefully stop Onionr from CLI `$ ./onionr.sh stop`
Kevin's avatar
Kevin committed
121

Kevin's avatar
Kevin committed
122 123 124 125 126

# Contact

Email: beardog [ at ] mailbox.org

Kevin Froman's avatar
Kevin Froman committed
127
Onionr Mail: `particularizing-zabaione-defuze-iodizer-saucepan-patientest-sell-waken-chifforobe-embonpoint-aquanaut-chambermaid-barky-fumer-jolt-biotic`
Kevin's avatar
Kevin committed
128

129
# Help out
Kevin's avatar
Kevin committed
130

131
Everyone is welcome to contribute. Help is wanted for the following:
132 133

* Development (Get in touch first)
Kevin's avatar
Kevin committed
134
    * Creation of a shared lib for use from other languages and faster proof-of-work
135
    * Android and IOS development
Kevin's avatar
Kevin committed
136
    * Windows and Mac support (already partially supported, testers needed)
137
    * Bug fixes and development of new features
138
* Testing
Kevin's avatar
Kevin committed
139
* Translations/localizations
Kevin's avatar
Kevin committed
140
* UI/UX design
141 142
* Running stable nodes
* Security review/audit
Kevin's avatar
Kevin committed
143
* Automatic I2P setup
Kevin's avatar
Kevin committed
144

Kevin's avatar
Kevin committed
145
## Contribute money:
Kevin's avatar
Kevin committed
146

Kevin's avatar
Kevin committed
147
Donating at least $3 gets you cool Onionr stickers. Get in touch if you want them.
Kevin's avatar
Kevin committed
148 149 150

![sticker](docs/sticker.png)

Kevin's avatar
Kevin committed
151

152 153 154
Bitcoin: [1onion55FXzm6h8KQw3zFw2igpHcV7LPq](bitcoin:1onion55FXzm6h8KQw3zFw2igpHcV7LPq) (Contact us for a unique address or for other coins)

Monero: 4B5BA24d1P3R5aWEpkGY5TP7buJJcn2aSGBVRQCHhpiahxeB4aWsu15XwmuTjC6VF62NApZeJGTS248RMVECP8aW73Uj2ax
Kevin's avatar
Kevin committed
155 156 157

USD (Card/Paypal): [Ko-Fi](https://www.ko-fi.com/beardogkf)

Kevin's avatar
Kevin committed
158 159
Note: probably not tax deductible

Kevin's avatar
Kevin committed
160 161
# Security

Kevin Froman's avatar
Kevin Froman committed
162
Onionr is alpha software. This means it is unstable, probably insecure, and experimental.
Kevin's avatar
Kevin committed
163

Kevin's avatar
Kevin committed
164 165 166
No matter how good Onionr and other software gets, there will always be ways for clever or well-funded adversaries to break your security.

Onionr does not protect your identity if you associate your user ID with your name either on Onionr or elsewhere.
Kevin's avatar
Kevin committed
167 168 169 170 171 172

*Do not rely on Onionr or any other software to hold up if your life or liberty are at stake.*

### Licenses and Branding

Onionr is published under the GNU GPL v3 license, except for the logo.
Kevin's avatar
Kevin committed
173

174 175 176
The Tor Project and I2P developers do not own, create, or endorse this project, and are not otherwise involved.

Tor is a trademark for the Tor Project. We do not own it.
Kevin's avatar
Kevin committed
177

Kevin's avatar
Kevin committed
178
## Onionr Logo
Kevin's avatar
Kevin committed
179

180
The Onionr logo was created by [Anhar Ismail](https://github.com/anharismail) under the [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/).
Kevin's avatar
Kevin committed
181

182
If you modify and redistribute our code ("forking"), please use a different logo and project name to avoid confusion. Please do not use the project name or logo in a way that makes it seem like we endorse you without our permission.