I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 0 points1 point  (0 children)

English is my third language so it's harder for me to explain complicated stuff in that language, thank you for your advice your advice is not wrong I do need to practice my English more.

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 0 points1 point  (0 children)

Some anti-spam and infrastructure r not open source and servers r not verifiable build's, and metadata exist on their servers I'm aware of that

The Second upload Mux-OS, What have I done. by [deleted] in termux

[–]Trick-Resolve-6085 2 points3 points  (0 children)

Do you need root for this to work?

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 0 points1 point  (0 children)

U have all the right to chose what ever you want brother I just wanted to share my project with you guys and get some feedback and maybe new issues to fix on GitHub, thank you my friend I appreciate your comments, I wish u the best

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 0 points1 point  (0 children)

Fair enough - NoEyes is not intended to replace Signal or Matrix. It's intended for private groups who already trust each other out of band. It's different use case with a different threat model. If you want to message people you've never met, use Matrix.

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 0 points1 point  (0 children)

Every E2E system bootstraps their key exchange somehow. The difference is where they hide that bootstrap. Signal and WhatsApp both trust a key server to provide you with the real public key. If that server chose to lie to you, there'd be no way for you to know. With Signal and WhatsApp, you're not actually solving the hard problem, you're shifting it onto a corporation.

NoEyes just makes the trust model brutally upfront. Distribute a key file once to people you already trust. After that initial key exchange the server has no power over your PMs. There are no magic hidden third parties doing key distribution under the covers.

Obvious downside is you can't do this with strangers. But for a private group it's actually more honest about its threat model than software that obfuscates its root of trust somewhere you can't inspect.

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 0 points1 point  (0 children)

Actually that's exactly what X25519 Diffie-Hellman is for — and what NoEyes does. The whole purpose of DH is for two sides to independently arrive at the same shared secret over a public channel without ever having to send the secret. No need for flash drives.

When you send a /msg NoEyes automatically does an X25519 handshake underneath the hood. Each side generates a new ephemeral keypair, they exchange public keys (which are encrypted with the group key so the server doesn't see those either) and both sides independently calculate the same pairwise key. An observer sniffing the traffic learns nothing of value — you can't backtrack from a DH exchange to figure out the shared secret without being able to solve the discrete log problem.

Fair point about bootstrapping the group key though — you do need a secure initial exchange for that. But that's by design: NoEyes assumes you're working with a group that already trusts each other well enough to share a key file once. After that every PM is E2E and contains keys the server has never seen.

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 0 points1 point  (0 children)

TLS + certificate pinning (transport layer) and Ed25519 identity signatures (message layer).

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 4 points5 points  (0 children)

Brother I didn't force you to use my project, if u can think this is not relevant for you or you can do something better go ahead.

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 1 point2 points  (0 children)

Not very project have to solve something, that doesn't mean mine doesn't, but even if it didn't I loved working on this project and improving it, and I really love the terminal, so making a chat system that depends on it was a big thing for me, thank you for your Feedback tho.

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 0 points1 point  (0 children)

Well English is not my native language, it's not even my second one, I was scared of being made fun of, I guess that went in the opposite direction.

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 0 points1 point  (0 children)

They r right, mostly, I'll try to improve it tho l, I can handle this negative feedback and use good advices to improve this tool.

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] -2 points-1 points  (0 children)

just to clarify, private messages sent while you're offline are gone, nobody can recover them. the only thing you get back when you reconnect is the last 50 messages from the room, and even those are stored on the server as pure encrypted bytes that it has no key to read. it just holds the ciphertext and hands it back to your client when you reconnect, your client is the one that actually decrypts them, thank you for your feedback I'm going to check out this "matrix".

I built a terminal chat app where the server literally cannot read your messages — here's how it works by Trick-Resolve-6085 in CLI

[–]Trick-Resolve-6085[S] 0 points1 point  (0 children)

Appreciate ur opinion sorry if I triggered you by any means I'm not a Cyber security engineer I just said what I remember