O servidor só repassa blobs cifrados: não lê as conversas e, por padrão, não guarda histórico. Canais abertos e privados, mensagens diretas com sigilo por sessão, voz e arquivos.
Também aqui: RELEASE (manifesto com versão e SHA-256) e RELEASE.sig (assinatura Ed25519).
Um chat cifrado só vale se o binário for o original. O manifesto RELEASE é assinado, e esta é a
chave de assinatura das releases:
fingerprint:
SHA256 bbb1 c46e c211 64f5 2da8 8815 ebbe b73c 6795 0bea e86e 79b4 a781 8057 cd77 ce1e
chave pública:
oH5pJyULtqqayVJ0sOWdrSbSOj+NqlNGnNkPd05yOYE=
Confira a mesma fingerprint por outro canal (no grupo, com quem te passou o link): se alguém trocasse esta página, trocaria a chave também.
Linux (troque o nome do arquivo se for ARM64):
# 1) assinatura do manifesto (OpenSSL 3)
printf -- '-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAoH5pJyULtqqayVJ0sOWdrSbSOj+NqlNGnNkPd05yOYE=\n-----END PUBLIC KEY-----\n' > crptochat.pub
openssl base64 -d -A -in RELEASE.sig -out RELEASE.sig.bin
openssl pkeyutl -verify -pubin -inkey crptochat.pub -rawin -in RELEASE -sigfile RELEASE.sig.bin
# deve dizer: Signature Verified Successfully
# 2) SHA-256 do binário contra o manifesto assinado
grep ' crptochat-linux-amd64$' RELEASE | sha256sum -c -
# deve dizer: crptochat-linux-amd64: OK
chmod +x crptochat-linux-amd64
macOS: o openssl do sistema (LibreSSL) não confere Ed25519. Use o do Homebrew
(brew install openssl@3), trocando openssl por
$(brew --prefix openssl@3)/bin/openssl nos comandos acima. Para o hash:
grep ' crptochat-macos-arm64$' RELEASE | shasum -a 256 -c -
chmod +x crptochat-macos-arm64
xattr -d com.apple.quarantine crptochat-macos-arm64 # o binário não é assinado pela Apple
Windows (PowerShell):
$esperado = (Select-String -Path RELEASE -Pattern ' crptochat-windows-amd64\.exe$').Line.Split(' ')[0]
$atual = (Get-FileHash crptochat-windows-amd64.exe -Algorithm SHA256).Hash.ToLower()
if ($atual -eq $esperado) { "OK" } else { "NÃO CONFERE: não execute" }
A assinatura do RELEASE no Windows: rode os comandos de Linux no Git Bash, que já traz o OpenSSL 3.
./crptochat-linux-amd64 crptochat.acpt.app.br --pin 9ba6d425f166820e049fbb628f43d7d51387f867e32bbbc4a26db83bfa3b1323
No Windows: .\crptochat-windows-amd64.exe crptochat.acpt.app.br --pin 9ba6d425f166820e049fbb628f43d7d51387f867e32bbbc4a26db83bfa3b1323
fingerprint do certificado do servidor (o --pin):
9ba6d425f166820e049fbb628f43d7d51387f867e32bbbc4a26db83bfa3b1323
Com o --pin, o cliente recusa qualquer servidor que não seja este, já na primeira conexão.
crptochat crptochat.acpt.app.br -a entra como anônimo, com um nick descartável.Esc abre o menu com tudo. Para começar: /join #lobby.O servidor não é confiável por projeto: ele não lê nada, mas poderia tentar se passar por alguém. Por isso, com quem importa:
| /whois nick | mostra a fingerprint e o número de segurança entre vocês dois |
| /verify nick | compare o número por outro meio (pessoalmente, ligação) e marque ✓ |
| ⚠ chave mudou | as mensagens diretas ficam bloqueadas até vocês conferirem de novo |
| /msg nick texto | mensagem direta cifrada |
| /create #canal privado | canal protegido por senha (a senha nunca vai ao servidor) |
| /send nick arquivo | arquivo cifrado de ponta a ponta |
| /rec · F2 | mensagem de voz, com disfarce de voz por padrão |
| /ttl nick 10m | mensagens diretas que somem |
| /search texto · Ctrl+F | busca no que está na tela (só local) |
| /help | todo o resto |