[TriLUG] supporting legacy SSL ciphers
William Sutton via TriLUG
trilug at trilug.org
Mon Nov 30 10:19:40 EST 2020
I figured I would have seen a response by now.
Any reason you can't use Apache?
William Sutton
On Fri, 27 Nov 2020, Alan Porter via TriLUG wrote:
>
> Hi guys,
>
> Some of you were around in 2004-2006 when I worked at TMIO, "the oven place".
> We worked on a very early "internet of things" kind of home oven that could
> be remotely controlled or pre-programmed to start cooking a meal in time for
> it to be done when you got home from work.
>
> The oven was way ahead of its time -- remember, the first iPhone didn't come
> out until a year later. It was also a pretty wacky project to work on. Some
> of you might've attended the TriLUG talk on building the embedded Linux
> system that is at the heart of the oven.
>
> Now in 2020, I am still supporting the 2006-era Debian server that those
> ovens connect to! While the Java applet that you would use to remotely
> control the oven will no longer run in a browser, the one internet feature
> that still works on these things is the weather screen saver.
>
> We made the fortuitous decision to proxy the weather through our server,
> rather than having the ovens connect directly to a weather service. That
> enabled us to change the software on the server whenever various weather
> services (Yahoo weather, weather.com, NOAA) changed or discontinued their
> services. This has happened several times.
>
> I hear that NOAA is going to change their API once again, and so I would like
> to modernize the back end. (1) Write the weather scripts in Python (2)
> jettison all of the proprietary remote-control server software (3) host it on
> a modern OS.
>
> I have already written a python flask application that runs in a gunicorn
> WSGI server and will respond with the weather info that the ovens need. And
> if I hit it with a browser with the same parameters the ovens send, I get the
> right stuff back. It passes the "curl" test.
>
> However, the ovens were made in 2006, and so they use 2006-era HTTPS. And so
> my modern NGINX server can not even negotiate an HTTPS connection when the
> ovens try to connect. To dig into this a little, I ran `ssldump -k my.key -i
> 'eth0' -dnq 'tcp and host SERVERIP and port 443' -SH` and it tells me what
> ciphers the oven is trying to use. None of them are supported by NGINX and
> openssl on my modern server, even if I allow older SSL protocol versions.
>
> ssldump starts with `C>S SSLv2 compatible client hello` and then `Version
> 3.1`. So I am not sure if that means it's SSLv2 or SSLv3. Some of the
> cipher names suggest it could do TLSv1.
>
> At this point, some of you are going to tell me that these old ciphers and
> SSL protocols were deprecated for a reason, and I should upgrade the ovens.
> NO CAN DO. These machines are out in the wild, and they will try to connect
> and get weather as long as our domain resolves. So I just want to serve the
> weather for a few more years, from a more modern server, if that's possible.
>
> I wanted to see if I can get NGINX to use the old ciphers. I downloaded the
> current version of openssl and recompiled it with `enable-weak-ssl-ciphers`
> and `enable-ssl3` configure flags. But when I run `openssl ciphers`, I get
> the same list that I got with the stock version of openssl.
>
> Do you think there is a way I can compile openssl with at least one of the
> acceptable ciphers? And if I do, will NGINX use them to negotiate an HTTPS
> connection?
>
> Alan
>
>
>
>
> The ciphers from the client:
>
> New TCP connection #2340: CLIENTIP(36335) <-> SERVERIP(443)
> 2340 1 0.0407 (0.0407) C>S SSLv2 compatible client hello
> Version 3.1
> cipher suites
> TLS_RSA_WITH_RC4_128_MD5
> SSL2_RC4_128_WITH_MD5
> TLS_RSA_WITH_RC4_128_SHA
> TLS_RSA_WITH_AES_128_CBC_SHA
> TLS_DHE_RSA_WITH_AES_128_CBC_SHA
> TLS_DHE_DSS_WITH_AES_128_CBC_SHA
> TLS_RSA_WITH_3DES_EDE_CBC_SHA
> SSL2_DES_192_EDE3_CBC_WITH_MD5
> TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
> TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
> TLS_RSA_WITH_DES_CBC_SHA
> SSL2_DES_64_CBC_WITH_MD5
> TLS_DHE_RSA_WITH_DES_CBC_SHA
> TLS_DHE_DSS_WITH_DES_CBC_SHA
> TLS_RSA_EXPORT_WITH_RC4_40_MD5
> SSL2_RC4_128_EXPORT40_WITH_MD5
> TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
> TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
> TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
> 2340 2 0.0410 (0.0002) S>C Alert
> level fatal
> value internal_error
> 2340 0.0411 (0.0001) S>C TCP RST
>
>
> --
> This message was sent to: William <william at trilug.org>
> To unsubscribe, send a blank message to trilug-leave at trilug.org from that
> address.
> TriLUG mailing list : https://www.trilug.org/mailman/listinfo/trilug
> Unsubscribe or edit options on the web :
> https://www.trilug.org/mailman/options/trilug/william%40trilug.org
> Welcome to TriLUG: https://trilug.org/welcome
More information about the TriLUG
mailing list