summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 0fff293d86ba220fc3610d9c3129e27f04a08aa3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# Noshitalk
NoshiTalk is a zero-knowledge, end-to-end encrypted messaging system designed for maximum privacy and security. Built with Go, it operates seamlessly over Tor hidden services and implements military-grade cryptography with perfect forward secrecy.

🌟 Features
🔒 Uncompromising Security

End-to-End Encryption: ECDH key exchange + AES-256-GCM
Perfect Forward Secrecy: New keys for every session
TLS 1.3: Modern secure transport layer
Memory Protection: Secure key handling with memguard
Zero-Knowledge Architecture: Server learns nothing about messages

🧅 Complete Anonymity

Native Tor Support: Built-in .onion routing
No Logs Policy: Zero data retention
Anonymous Identities: Random user IDs per session
No Registration: Connect and chat instantly
Auto-Wipe: Session data destroyed on disconnect

💪 Reliability & Performance

Persistent Connections: No timeouts, infinite session support
Auto-Reconnection: Intelligent connection recovery
Heartbeat Protocol: Keep-alive mechanism
Low Latency: Optimized for Tor networks
Cross-Platform: Linux, macOS, Windows support

🚀 Quick Start
Prerequisites

Go 1.21 or higher
Tor (for .onion connections)
Git

Installation
bash# Clone the repository
git clone https://github.com/gabrix73/noshitalk.git
cd noshitalk

# Install dependencies
go mod init noshitalk
go get github.com/awnumar/memguard
go get fyne.io/fyne/v2
go get golang.org/x/net/proxy

# Build server
go build -trimpath -ldflags="-s -w" -o noshitalk-server server.go

# Build client (requires CGO for GUI)
CGO_ENABLED=1 go build -trimpath -ldflags="-s -w" -o noshitalk-client client.go
📖 Usage
Starting the Server
bash# Standard mode
./noshitalk-server

# The server will:
# - Generate self-signed certificates (first run)
# - Listen on port 8083
# - Accept connections via Tor or direct
Running the Client
bash# Launch GUI client
./noshitalk-client

# Connect to:
# - Local server: localhost:8083
# - Tor hidden service: xyz123.onion:8083
Tor Hidden Service Setup

Install Tor:

bash# Debian/Ubuntu
sudo apt install tor

# macOS
brew install tor

# Start Tor
tor

Configure Hidden Service (/etc/tor/torrc):

bashHiddenServiceDir /var/lib/tor/noshitalk/
HiddenServicePort 8083 127.0.0.1:8083

Get your .onion address:

bashsudo cat /var/lib/tor/noshitalk/hostname
🔧 Configuration
Server Options
ParameterDefaultDescriptionPort8083Listening portTLSAuto-generatedECC certificatesTimeoutNonePersistent connectionsLoggingDisabledZero-knowledge policy
Client Features

Auto-Reconnect: Checkbox to enable/disable
Debug Log: Real-time connection monitoring
Secure Input: Encrypted before leaving client
Message History: Session-only, wiped on disconnect

🏗️ Architecture
┌──────────────┐         ┌──────────────┐         ┌──────────────┐
│   Client A   │◄────────┤   Server     ├────────►│   Client B   │
├──────────────┤  ECDH + │              │  ECDH + ├──────────────┤
│  AES-256-GCM │  TLS 1.3│  Zero-Trust  │  TLS 1.3│  AES-256-GCM │
│   memguard   │◄────────┤  No Storage  ├────────►│   memguard   │
└──────────────┘   Tor   └──────────────┘   Tor   └──────────────┘
Cryptographic Flow

TLS Handshake: Establish secure channel
ECDH Exchange: Generate shared secret (X25519)
Key Derivation: Create AES-256-GCM key
Message Encryption: AES-256-GCM with random nonce
Forward Secrecy: Keys destroyed on disconnect

🔮 Roadmap
v0.2 - Quantum Resistance (In Development)

 McEliece post-quantum cryptography
 Hybrid classical-quantum encryption
 Independent from NIST curves

v0.3 - Secure File Transfer

 End-to-end encrypted file sharing
 Chunked transfer protocol
 Integrity verification (BLAKE3)

v0.4 - Multimedia Support

 Encrypted audio/video streaming
 WebRTC integration
 Opus/AV1 codecs

v0.5 - Advanced Steganography

 Hide messages in images
 Drag & drop interface
 Multiple encoding algorithms

🛡️ Security Considerations
What NoshiTalk Protects Against
✅ Message Interception: End-to-end encryption
✅ Traffic Analysis: Tor routing
✅ Identity Correlation: Anonymous, ephemeral IDs
✅ Memory Forensics: Secure key wiping
✅ Replay Attacks: Nonce-based encryption
✅ Future Decryption: Perfect forward secrecy
Operational Security (OPSEC)

Always verify .onion addresses out-of-band
Use Tor Browser for additional anonymity
Run on trusted, encrypted systems
Consider using Tails OS for maximum security
Never share session identifiers

🤝 Contributing
Contributions are welcome! Please ensure:

Code follows Go best practices
Security is never compromised for features
All cryptographic changes are peer-reviewed
Tests pass and coverage remains high

📄 License
MIT License - See LICENSE file for details
⚠️ Disclaimer
NoshiTalk is provided as-is for educational and legitimate privacy purposes. Users are responsible for complying with local laws and regulations. The developers assume no liability for misuse.
🙏 Acknowledgments

memguard - Secure memory handling
Fyne - Native Go GUI framework
Tor Project - Anonymous communication
Cryptography community for peer review

📞 Contact

Security Issues: Open a private security advisory
Feature Requests: Use GitHub Issues
General Discussion: GitHub Discussions


Remember: True security comes from good OPSEC, not just good crypto.
🔐 Stay Secure, Stay Anonymous, Use NoshiTalk