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
|