warmstarter / tinyfugue

TinyFugue
GNU General Public License v2.0
4 stars 0 forks source link

consider SSL verify #39

Open warmstarter opened 3 years ago

warmstarter commented 3 years ago

There's an existing patch which was tested and isn't working properly. Look into fixing that up, but also consider if it's even something useful.

cpu commented 3 years ago

:wave: @warmstarter super happy to see someone rebooting TF with an eye towards modern practices. Thanks for all your work so far. I've been building your branches but haven't switched to using them yet.

Look into fixing that up, but also consider if it's even something useful.

Having TLS support but without certificate validation (correct me if I'm wrong, but I think that's the state of the Python branch as of https://github.com/warmstarter/tinyfugue/commit/f2f7015bcbbdf9106b039557629e74fcba5bf5ff) would be unfortunate. If you're looking for community votes on the importance of this feature I'm a +1 :-)

warmstarter commented 3 years ago

The last official release of TF5b8 just made SSL connections without doing full verification, which isn't great, but also better than the plain text way most people uses MUs. There was a community a patch to add in SSL verification. The patch was added in and I found that a) the patch is buggy and b) the majority of MUs I connected to did not have a correctly setup SSL cert. Self-signing, expired, etc.. Having it in there was actually making it so some had to to stop using SSL (which was doing a fine job of encrypting) and then in some cases not caring about broken certs. There was supposedly an option to keep connecting or stop on an error, and that wasn't working either.

I emergency reverted the patch, figuring that an unverified SSL connection was better than having to connect in plaintext because SSL was broken. I gave details to the person that originally wrote the patch, and I'm giving them a little time to see if they are going to work on it. If not I'll take the time to do a deep-dive into SSL and figure it out.

pre-release has broken SSL verify, and python-scripting now has SSL verify removed. python-scripting is actually mature enough that it's about to get merged into pre-release, in which case neither will have SSL verify.

So yeah, it's definitely on my radar. If you have specific other things you notice or want, feel free to let me know. It's a code base that hasn't been touched in some time, so I'm generally sort of circling around and fixing things bit-by-bit and using that as a way to get the codebase in my head. But also happy to focus on the issues that are important to people.

cpu commented 3 years ago

The last official release of TF5b8 just made SSL connections without doing full verification, which isn't great,

Oh jeez, I didn't realize that was the state the beta left things :broken_heart:

There was a community a patch to add in SSL verification. The patch was added in and I found that a) the patch is buggy and b) the majority of MUs I connected to did not have a correctly setup SSL cert. Self-signing, expired, etc.

Shame about the patch. If you're looking for a test MUD with a well formed certificate chain I recently configured dunemud.net (running LDMud 3.5.4) to offer one with a properly managed Let's Encrypt certificate. dunemud.net:6788, or for our dev instance (w/ TLS 1.3 support) dev.dunemud.net:4241. I've verified both complete a successful handshake/chain validation with openssl s_client as a comparison point. Mudlet and tintin++ are both happy too but they could be ignoring certificate validation as well for all I know!

I emergency reverted the patch, figuring that an unverified SSL connection was better than having to connect in plaintext because SSL was broken.

I have mixed feelings about this but suspect you're probably right on the whole :-)

So yeah, it's definitely on my radar. If you have specific other things you notice or want, feel free to let me know. It's a code base that hasn't been touched in some time, so I'm generally sort of circling around and fixing things bit-by-bit and using that as a way to get the codebase in my head. But also happy to focus on the issues that are important to people.

Sounds great. It's important to me but I also acknowledge there's tons of work to do and my feature requests might not match the majority of your userbase. I think I'm a rare type that sits at the intersection of TLS/PKI enthusiasm and MUDing :joy:

I'd love to help implement a working patch but I'm a bit underwater right now finishing up a long list of upgrades our MUD required. In the future I could imagine dusting off my C programming to help with a patch but it's unlikely to be for weeks+.

Anyway, thanks again for all your TF work! Let me know if you start a Patreon or Github sponsorship or something one day :-)