Empowering journalists and whistleblowers

Overview

Onymochat

Empowering journalists and whistleblowers

Version Python Versions Release Testted_On MIT License PR's Welcome

Onymochat is an end-to-end encrypted, decentralized, anonymous chat application. You can also host your anonymous .onion webpage with Onymochat.

  • Onymochat works over the Tor.
  • Anyone can start their own chat server from their own PC.
  • It's end-to-end encrypted.
  • It's basically magic.

Features

  • Start your own chat server for two or more users from your own PC.
  • Users can get connected to a chat server using the public key of the server.
  • You can launch your chat client and chat with anyone who has your public key and server details (after he/she/they joins the server).
  • You can launch your own anonymous .onion webpage with Onymochat. You can use this anonymous website for your journalistic works and whistleblowing.

You don't have to rely upon any third-party app to provide you with a platform/server to anonymously chat with your friend. You can host your own server and if the person you want to chat with has the server's public key, he/she/they can join the server with his/her/their chat client and chat with you.

Multiple people can use a single chat server. The chat data is deleted whenever the server is closed. The chat is end to end encrypted, so even if someone hacks into the server somehow, they won't be able to get to know what two people are talking about. It uses 4096 bit RSA keys for encryption. You connect to the chat server over the Tor network, which gives you anonymity.

Security

Let's see what makes Onyomochat a secure chat application:

  • End-to-end 4096 bit RSA encryption for messages.
  • Version 3 Onion Service for your .onion webpage.
  • Version 3 Onion Service for your chat server.
  • Connection to server over the Tor network.

Installation

Environment Setup

Onymochat requires Python 3.9 or above to run. I have tested it with Python 3.9. Make sure that you have Python added to your PATH. When you install Python in your Windows system, make sure to check 'Add Python 3.x to PATH'. If you forget to do it, see this tutorial to know how to add Python to your PATH for Windows.

Install Python

For Windows and Mac

Download Python 3.9 from here. Use the installer to install Python in your System. Download 'macOS 64-bit universal2 installer' for Mac OS. Download 'Windows x86-64 executable installer' for your Windows 64 Bit system and 'Windows x86 executable installer' for Windows 32 bit system.

For Linux

Use the following command to install Python 3.9 on your Linux system.

apt-get install python3.9

Check pip

Make sure you have pip installed in your system. Use the following command to check if you have pip installed.

pip --version

If you see a message like 'pip 21.2.2' then you have pip installed on your system. Otherwise, follow this tutorial to install pip in your system. Generally, Python comes with an ensurepip module, which can install pip in a Python environment.

python -m ensurepip --upgrade

Download Repository

Go to the GitHub repository of Onymochat: https://github.com/SamratDuttaOfficial/onymochat

Click on the green 'Code' button and click on 'Download ZIP' and unzip the archive somewhere to use Onymochat.

Or, use the command below if you have git installed in your system.

git clone https://github.com/SamratDuttaOfficial/onymochat

Install Requirements

Open up your terminal (CMD on Windows) and go to the folder where you've cloned/unzipped Onymochat. Example:

cd C:\User\Desktop\Onymochat-master

Then install all the requirements from the requirements.txt file.

Windows:

pip install -r requirements.txt

Linux and Mac OS:

pip3 install -r requirements.txt

If you're on Linux, you might need to install Tkinter separately in the following way:

sudo apt install python3-tk

This will install all of the requirements, except Tor.

Install Tor

Download and install Tor browser from the official Tor Project website: https://www.torproject.org/download/

Take a note of where you're installing Tor/Tor Browser, it will be required later.

How to Use

After installation, open the 'onymochat' subdirectory in your terminal. This directory should have a file like run_onymochat.py. Run this file.

python run_onymochat.py

If you are on Linux, run that file using the following command instead:

python3 run_onymochat.py

This will run the Onymochat program in your terminal. This will greet you with a menu. Just input the number of the option you want to go to, and hit the enter button.

First, configure Onymochat with Tor.

Configure Onymocaht with Tor

Run the program and go to option 0 (zero).

Then, on the next prompt, enter the path to tor.exe in the TorBrowser folder. This is important to configure Onymochat with Tor. You have to do this step only once after installation. Paste the path to tor.exe in the TorBrowser (or any similar name) folder.

Example (For Windows): C:\user\Desktop\Tor Browser\Browser\TorBrowser\Tor\tor.exe

Example (For Mac): Applications\TorBrowser.app\Tor\tor.real

Linux users just write 'tor' without the quotations.

Now you are ready to use Onymochat

Things You Can Do

Here are all the things you can do with Onymochat.

  1. Create new hidden service and chat server
  2. Generate encryption keys for chat
  3. Run chat client
  4. Create onion webpage
  5. Generate QR codes for your encryption keys
  6. Generate QR codes for other keys
  7. Delete all saved keys
  8. Exit

How to Chat?

Here are some steps you need to follow to chat with someone through Onymochat.

CAUTION: NEVER SHARE ANY OF YOUR PRIVATE KEYS WITH ANYONE

Step 1

First, select option 1 to create a new hidden service and server and follow the instructions given in your terminal/command window. This will be the server where the chat data will be temporarily saved (all chat data will be lost when the hidden service and server is closed). You can press Ctrl + C to close this hidden service and server when you are done chatting.

Then, share the hidden service public key with someone you want to chat with. You can do it in person by meeting that person, or through any other communication method. You can use the same hidden service (same public key) to chat with multiple persons but this comes with the risk of sharing the same keys with everyone, and someone might use them later to spam you. Or, the other person, with whom you want to chat with, can provide you with his/her/their hidden service public key and you can use it too.

Step 2

Select option 2 to generate encryption keys for your chat. You need to share your public key with any person you want to chat with.

Step 3

Select option 3 to run your chat client. There you won't need to create any new encryption keys for chatting if you don't want to. Creating more than one key will be very hard to manage and might be the reason of some problems in future.

You will need to enter your or the other person's hidden service and server's public key and also the other person's public key for encryption to chat with that person.

How to Create an Anonymous (.onion) Webpage

Step 1

In the 'onymochat' directory, go to the 'onion_webpage' directory. Edit the index.html HTML according to your preference. This will be the page for your anonymous webpage.

Step 2

Select option 4 from the main menu. You can generate a new URL for your .onion webpage and save the private key of that webpage to resume the webpage later with the same URL. Or, you can use a pre-saved private key to resume your website with a particular URL you've generated before.

Generate QR Codes for Encryption Keys

Option 5, and 6 is to generate QR codes for different keys used in Onymochat. These QR codes are saved in \files\qr_codes. You can print them and share them with other people you want to communicate with.

Delete all saved keys and QR codes

Use option 7 to delete all saved public and private keys and QR codes from your system. Use this option only when you suspect a security breach.

Exit Program

Exit the program by selecting option 8 from the main menu.


Author

Created by Samrat Dutta

Github: https://github.com/SamratDuttaOfficial

Linkedin: https://www.linkedin.com/in/SamratDuttaOfficial

Buy me a coffee: https://www.buymeacoffee.com/SamratDutta


Github

Please visit the Github repository to download Onymochat and see a quick tutorial.

https://github.com/SamratDuttaOfficial/onymochat

Pull requests are always welcome.

Owner
Samrat Dutta
Developer, designer, writer. Developer of CoWiseCare.
Samrat Dutta
Code for the TPAMI paper: "Syntax Customized Video Captioning by Imitating Exemplar Sentences"

Syntax-Customized-Video-Captioning Code for the TPAMI paper: "Syntax Customized Video Captioning by Imitating Exemplar Sentences". This is my second w

3 Dec 05, 2022
Advbox is a toolbox to generate adversarial examples that fool neural networks in PaddlePaddle、PyTorch、Caffe2、MxNet、Keras、TensorFlow and Advbox can benchmark the robustness of machine learning models.

Advbox is a toolbox to generate adversarial examples that fool neural networks in PaddlePaddle、PyTorch、Caffe2、MxNet、Keras、TensorFlow and Advbox can benchmark the robustness of machine learning models

AdvBox 1.3k Dec 25, 2022
Text mining project; Using distilBERT to predict authors in the classification task authorship attribution.

DistilBERT-Text-mining-authorship-attribution Dataset used: https://www.kaggle.com/azimulh/tweets-data-for-authorship-attribution-modelling/version/2

1 Jan 13, 2022
Mengzi Pretrained Models

中文 | English Mengzi 尽管预训练语言模型在 NLP 的各个领域里得到了广泛的应用,但是其高昂的时间和算力成本依然是一个亟需解决的问题。这要求我们在一定的算力约束下,研发出各项指标更优的模型。 我们的目标不是追求更大的模型规模,而是轻量级但更强大,同时对部署和工业落地更友好的模型。

Langboat 424 Jan 04, 2023
Create Data & AI apps in 20 lines of code with Shimoku

Install with: pip install shimoku-api-python Start with: from os import getenv import shimoku_api_python.client as Shimoku

Shimoku 5 Nov 07, 2022
source code of “Visual Saliency Transformer” (ICCV2021)

Visual Saliency Transformer (VST) source code for our ICCV 2021 paper “Visual Saliency Transformer” by Nian Liu, Ni Zhang, Kaiyuan Wan, Junwei Han, an

89 Dec 21, 2022
High-Resolution Image Synthesis with Latent Diffusion Models

Latent Diffusion Models arXiv | BibTeX High-Resolution Image Synthesis with Latent Diffusion Models Robin Rombach*, Andreas Blattmann*, Dominik Lorenz

CompVis Heidelberg 5.6k Dec 30, 2022
Transformer Huffman coding - Complete Huffman coding through transformer

Transformer_Huffman_coding Complete Huffman coding through transformer 2022/2/19

3 May 19, 2022
FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation.

FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation [Project] [Paper] [arXiv] [Home] Official implementation of FastFCN:

Wu Huikai 815 Dec 29, 2022
Amazon Forest Computer Vision: Satellite Image tagging code using PyTorch / Keras with lots of PyTorch tricks

Amazon Forest Computer Vision Satellite Image tagging code using PyTorch / Keras Here is a sample of images we had to work with Source: https://www.ka

Mamy Ratsimbazafy 360 Dec 10, 2022
GAT - Graph Attention Network (PyTorch) 💻 + graphs + 📣 = ❤️

GAT - Graph Attention Network (PyTorch) 💻 + graphs + 📣 = ❤️ This repo contains a PyTorch implementation of the original GAT paper ( 🔗 Veličković et

Aleksa Gordić 1.9k Jan 09, 2023
Black-Box-Tuning - Black-Box Tuning for Language-Model-as-a-Service

Black-Box-Tuning Source code for paper "Black-Box Tuning for Language-Model-as-a-Service". Being busy recently, the code in this repo and this tutoria

Tianxiang Sun 149 Jan 04, 2023
TorchCV: A PyTorch-Based Framework for Deep Learning in Computer Vision

TorchCV: A PyTorch-Based Framework for Deep Learning in Computer Vision @misc{you2019torchcv, author = {Ansheng You and Xiangtai Li and Zhen Zhu a

Donny You 2.2k Jan 06, 2023
An implementation of the "Attention is all you need" paper without extra bells and whistles, or difficult syntax

Simple Transformer An implementation of the "Attention is all you need" paper without extra bells and whistles, or difficult syntax. Note: The only ex

29 Jun 16, 2022
Implementation of Advantage-Weighted Regression: Simple and Scalable Off-Policy Reinforcement Learning

advantage-weighted-regression Implementation of Advantage-Weighted Regression: Simple and Scalable Off-Policy Reinforcement Learning, by Peng et al. (

Omar D. Domingues 1 Dec 02, 2021
A python comtrade load library accelerated by go

Comtrade-GRPC Code for python used is mainly from dparrini/python-comtrade. Just patch the code in BinaryDatReader.parse for parsing a little more eff

Bo 1 Dec 27, 2021
Creating multimodal multitask models

Fusion Brain Challenge The English version of the document can be found here. Обновления 01.11 Мы выкладываем пример данных, аналогичных private test

Sber AI 43 Nov 28, 2022
Tensorflow implementation of Human-Level Control through Deep Reinforcement Learning

Human-Level Control through Deep Reinforcement Learning Tensorflow implementation of Human-Level Control through Deep Reinforcement Learning. This imp

Devsisters Corp. 2.4k Dec 26, 2022
Learning based AI for playing multi-round Koi-Koi hanafuda card games. Have fun.

Koi-Koi AI Learning based AI for playing multi-round Koi-Koi hanafuda card games. Platform Python PyTorch PySimpleGUI (for the interface playing vs AI

Sanghai Guan 10 Nov 20, 2022
House3D: A Rich and Realistic 3D Environment

House3D: A Rich and Realistic 3D Environment Yi Wu, Yuxin Wu, Georgia Gkioxari and Yuandong Tian House3D is a virtual 3D environment which consists of

Meta Research 1.1k Dec 14, 2022