Live data from Hacker News

Show HN: Terminal-based group chat with end-to-end encryption

github.com

11–20 of 45 posts

Re: Show HN: Terminal-based group chat with end-to-end encryption

#11
post #8

kba, your comment is dead, though insightful.

In case people are wondering what stavrosk is referring to, kba wrote:

I'm tired of people labeling their applications as "cryptographically secure" with no proof of correctness or any kind of guarantee. It's just a blunt and stupid statement.

The author of this clearly has no cryptographic expertise and just wrongly applied a cryptographic scheme.

In the description, it reads "[..] messages are encrypted and decrypted at the end points such that malicious machines on the network cannot eavesdrop on the conversation, including the chat server," but no effort is made in the client code (client.py) to ensure the server works as it should. Yes, the server can't eavesdrop on the data as-is, but that means you have to trust the hosting provider is using exactly your server.go, thus you have to trust the server completely after all. And if you do, why bother trying to hide it from the server in the first place?

I'd feel even less safe using this than IRC over SSL.

The major problem with this is that you're trying to do something impossible. In order to have a secure connection between two or more people, you need to either have a key in place or establish one. Both of these options are extremely hard to achieve.

In the former, you have a to get a key in place (which can't get transferred through the server for obvious reasons), so that has to be established before any confidential data is being transferred. This is clearly not happening.

The latter option is a key exchange protocol such as Diffie–Hellman. This can work; you can in fact make a key exchange between two parties where an eaves-dropper will be none the wiser for listening in. But then you have another problem: authenticity. You have no guarantee that you are in fact talking to who you think you are.

Your system makes no effort to overcome either of these challenges.

Re: Show HN: Terminal-based group chat with end-to-end encryption

#12
Slightly tangential, but can people please stop naming their software "salt"? This is like the 4th or 5th relatively high profile project I've seen with that name recently :/

More on topic - does anyone have any good reference guides for how to not suck at cryptography, preferably more "API guide for programmers in a hurry" than "maths textbook for people who want to learn the inner details of algorithms for their own sake"?

(I know that knowing the internals will make you a better programmer, but it seems there are a lot of people who don't know the internals or externals of cryptography, and having a step-by-step cookbook which can be followed blindly would make this situation slightly less bad. Sure it might give people a false sense of security - but they already have a false sense of security from rolling their own crypto, so a cookbook couldn't be worse :P)

Re: Show HN: Terminal-based group chat with end-to-end encryption

#13
post #12

Slightly tangential, but can people please stop naming their software "salt"? This is like the 4th or 5th relatively high profile project I've seen with that name recently :/ More on topic - does anyone have any good reference guides for how to not suck at cryptography, preferably more "API guide for programmers in a hurry" than "maths textbook for people who want to learn the inner details of algorithms for their ow…

I think if you are a "programmer in a hurry" you should stay away from crypto.

Re: Show HN: Terminal-based group chat with end-to-end encryption

#15
post #12

Slightly tangential, but can people please stop naming their software "salt"? This is like the 4th or 5th relatively high profile project I've seen with that name recently :/ More on topic - does anyone have any good reference guides for how to not suck at cryptography, preferably more "API guide for programmers in a hurry" than "maths textbook for people who want to learn the inner details of algorithms for their ow…

Short answer: Use PGP, TLS/SSL or KeyCzar.

Re: Show HN: Terminal-based group chat with end-to-end encryption

#17
post #3

I'm a little confused by this. How can it be a group chat with end to end encryption? Surely everyone logged into the chat room would need to read the messages, so it's really no more secure than IRC over SSL. Or is this actually more like a peer-to-peer instant messenger?

I haven't looked at the code itself, but based on the usage section it seems like everyone in the room shares a secret key. I think the concept is that in order to get the secret key, you have to explicitly be given it by someone in the room.

Re: Show HN: Terminal-based group chat with end-to-end encryption

#18
post #16

Please, please, please, please, please, stop releasing hobby applications that use cryptography. You're bound to do it wrong. Please stop it.

How will people learn if they don't try?

The problem is not creating and releasing such applications; the problem is overclaiming their security, or putting early confidence in them.

Crypto is hard, we get it. Beginners and non-experts are going to mess it up, we get it. Even experts almost always mess it up, we get it.

Still, a good programmer of crypto software (or even just, "wise user of battle-tested crypto libraries in the proper ways") will almost always start out as a bad programmer of crypto software... who got started, and learned by failing.

To borrow an aphorism from other project/product wisdom: if your first version's crypto isn't obviously and embarassingly broken, you waited too long to release.

Re: Show HN: Terminal-based group chat with end-to-end encryption

#19
post #12

Slightly tangential, but can people please stop naming their software "salt"? This is like the 4th or 5th relatively high profile project I've seen with that name recently :/ More on topic - does anyone have any good reference guides for how to not suck at cryptography, preferably more "API guide for programmers in a hurry" than "maths textbook for people who want to learn the inner details of algorithms for their ow…

[deleted]

Re: Show HN: Terminal-based group chat with end-to-end encryption

#20
post #3

I'm a little confused by this. How can it be a group chat with end to end encryption? Surely everyone logged into the chat room would need to read the messages, so it's really no more secure than IRC over SSL. Or is this actually more like a peer-to-peer instant messenger?

I haven't looked at the code itself, but based on the usage section it seems like everyone in the room shares a secret key. I think the concept is that in order to get the secret key, you have to explicitly be given it by someone in the room.

By the way, there's an already-existing secure group chat software, SILC, that does something similar: https://en.wikipedia.org/wiki/SILC_%28protocol%29 (see "security" section, and technical details in http://www.silcnet.org/support/faq/crypto/ )
Post reply on HN