Live data from Hacker News

Show HN: Free, instant, secure, disposable chat rooms built in Go

niltalk.com

51–60 of 99 posts

Re: Show HN: Free, instant, secure, disposable chat rooms built in Go

#51
How one runs this? I installed go, and redis. The ran "go get github.com/goniltalk/niltalk", which installed. The previous command created three directories under my $GOPATH, one on which has a 'nilktalk' executable.

For someone who has never dabbled with go, how do I run nilktalk after all of the above was done?

Re: Show HN: Free, instant, secure, disposable chat rooms built in Go

#52
I only feel safe using end-to-end encrypted chatrooms. Currently, niltalk can read every message. At the very least, AES encrypting messages by the chatroom's password will reduce reliance on SSL. But it really should use public key crypto for a key exchange between users. This is what's done by other disposable chatrooms:

https://crypto.cat/

https://ephemeral.pw/chat/ (Also written in Go)

Re: Show HN: Free, instant, secure, disposable chat rooms built in Go

#53
post #17
post #15

And this is secured how exactly?

Password-protected and no public listing, I assume. Nothing on secure data transfer, though.

The number of bcrypt rounds is extremely low, too[1]. While the Go bcrypt lib will actually accept a cost of 5, that seems an unreasonably low value to me.

Coupled with absolutely no encryption of the messages in memory, I think "anonymous" would be a better term than "secure" for this.

1:https://github.com/goniltalk/niltalk/blob/master/api.go#L75

Re: Show HN: Free, instant, secure, disposable chat rooms built in Go

#54
post #52

I only feel safe using end-to-end encrypted chatrooms. Currently, niltalk can read every message. At the very least, AES encrypting messages by the chatroom's password will reduce reliance on SSL. But it really should use public key crypto for a key exchange between users. This is what's done by other disposable chatrooms: https://crypto.cat/ https://ephemeral.pw/chat/ (Also written in Go)

The problem with end-to-end encryption is not the encryption but the key-exchange (and especially so for multi-user setups).

If you are trusting the server to create or associate identities with keys, the end-to-end encryption is easily subvertible.

Re: Show HN: Free, instant, secure, disposable chat rooms built in Go

#55
post #28
post #25

Earlier quoted context omitted.

Message transmission is over SSL with no logging anywhere.

Yes except it's all plain-text on the server?

Yes, there is no end to end encryption as of now, although there is no persistence or storage of any sorts on the server.

Re: Show HN: Free, instant, secure, disposable chat rooms built in Go

#56

Good work. Though I have to say I've seen so many of these web-based "secure, private, anonymous" chat services now, I've lost track. What we need is end-to-end encryption and with an open source client that just has to be downloaded and built/installed once (and in such a way that it's verifiably secure, think reproducible builds).

why does the client need to be built locally? Are you inherently suspicious of anything delivered over HTTPS?

I'm genuinely interested in why people feel local clients are more secure than something running in a browser. It's something I came across when writing an ssh client in browser (www.minaterm.com).

I guess it's the potential for a HTML page to updated overtime so it no longer reflects an audited version. However it seems that it's really a failing in our browsers that this is the case. Perhaps an external service that verifies the hash of a page would help? But this would need browser support of course.

The only thing I could think of that could be implemented in current browsers was a small stub page which calculates and displays a hash of the HTML/Javascript to be launched. The stub would need to be small enough that a user could manually check that nothing malicious has been added here.

Re: Show HN: Free, instant, secure, disposable chat rooms built in Go

#58
post #54
post #52

I only feel safe using end-to-end encrypted chatrooms. Currently, niltalk can read every message. At the very least, AES encrypting messages by the chatroom's password will reduce reliance on SSL. But it really should use public key crypto for a key exchange between users. This is what's done by other disposable chatrooms: https://crypto.cat/ https://ephemeral.pw/chat/ (Also written in Go)

The problem with end-to-end encryption is not the encryption but the key-exchange (and especially so for multi-user setups). If you are trusting the server to create or associate identities with keys, the end-to-end encryption is easily subvertible.

New keypairs would be generated on the client every time you join a chatroom. Another member of the chatroom sends you the shared_key encrypted by your public key. Server knows nothing, stores no keys. Keys exchanged between users.

Javascript crypto is still a problem though: http://matasano.com/articles/javascript-cryptography/

When you re-download the codebase on every use, there is no way to ensure integrity of the code. This is the reason cryptocat ships as a chrome extension, because it is downloaded once. Even with these issues, I'd take javascript crypto + open source over nothing (or just SSL).

Re: Show HN: Free, instant, secure, disposable chat rooms built in Go

#59
post #56

Good work. Though I have to say I've seen so many of these web-based "secure, private, anonymous" chat services now, I've lost track. What we need is end-to-end encryption and with an open source client that just has to be downloaded and built/installed once (and in such a way that it's verifiably secure, think reproducible builds).

why does the client need to be built locally? Are you inherently suspicious of anything delivered over HTTPS? I'm genuinely interested in why people feel local clients are more secure than something running in a browser. It's something I came across when writing an ssh client in browser (www.minaterm.com). I guess it's the potential for a HTML page to updated overtime so it no longer reflects an audited version. Howe…

If the code can't change, what's the point of having it be delivered through the browser each time? Aren't you better off saving the bandwidth by downloading it once?

Re: Show HN: Free, instant, secure, disposable chat rooms built in Go

#60

How one runs this? I installed go, and redis. The ran "go get github.com/goniltalk/niltalk", which installed. The previous command created three directories under my $GOPATH, one on which has a 'nilktalk' executable. For someone who has never dabbled with go, how do I run nilktalk after all of the above was done?

The README has the full instructions. Edit the file config.json and then do "./run" on the terminal.
Post reply on HN