Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meraki Device Tracker SSL Error #15538

Closed
smccloud opened this issue Jul 18, 2018 · 12 comments · Fixed by #15546 or #15957
Closed

Meraki Device Tracker SSL Error #15538

smccloud opened this issue Jul 18, 2018 · 12 comments · Fixed by #15546 or #15957
Assignees

Comments

@smccloud
Copy link

smccloud commented Jul 18, 2018

Home Assistant release with the issue:

0.73.2

Last working Home Assistant release (if known):
0.72.0

Operating environment (Hass.io/Docker/Windows/etc.):

Docker on Debian Linux

Component/platform:

Meraki Device Tracker

Description of problem:
Trying to validate the Post URL in the Meraki dashboard I get an error of "Response other than 200". In the HA log I get

2018-07-18 08:39:32 ERROR (MainThread) [homeassistant.core] Error doing job: SSL error errno:1 reason: NO_SHARED_CIPHER
Traceback (most recent call last):
  File "uvloop/sslproto.pyx", line 497, in uvloop.loop.SSLProtocol.data_received
  File "uvloop/sslproto.pyx", line 204, in uvloop.loop._SSLPipe.feed_ssldata
  File "uvloop/sslproto.pyx", line 171, in uvloop.loop._SSLPipe.feed_ssldata
  File "/usr/local/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:841)

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

- platform: meraki
  secret: !secret meraki_secret
  validator: !secret meraki_validator

Traceback (if applicable):


Additional information:
Seems to be related to deprecation of older SSL cipher suites.

@balloob
Copy link
Member

balloob commented Jul 18, 2018

Correct. We are using the Mozilla suggested ciphers. Looks like Meraki is not supporting modern ciphers?

@smccloud
Copy link
Author

#15546 did not resolve this issue.

@balloob balloob reopened this Jul 19, 2018
@ghost
Copy link

ghost commented Aug 1, 2018

I have the same issue.

See #15303

@chriskacerguis
Copy link
Contributor

Same issue with HA 0.75.2 running the Docker version.

ssl.SSLError: [SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:841)
2018-08-06 15:33:49 ERROR (MainThread) [homeassistant.core] Error doing job: SSL error errno:1 reason: NO_SHARED_CIPHER
Traceback (most recent call last):
  File "uvloop/sslproto.pyx", line 504, in uvloop.loop.SSLProtocol.data_received
  File "uvloop/sslproto.pyx", line 204, in uvloop.loop._SSLPipe.feed_ssldata
  File "uvloop/sslproto.pyx", line 171, in uvloop.loop._SSLPipe.feed_ssldata
  File "/usr/local/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()

@chriskacerguis
Copy link
Contributor

FWIW - I looked at #15546 and that is for outgoing connections. This component (Meraki) would be an incoming web hook (so that PR would have no effect on this)

@chriskacerguis
Copy link
Contributor

I've been working with Meraki on this, here is the issue:

The Meraki Dashboard is proposing the following cyphers:

  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_DHE_DSS_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_DHE_DSS_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
  • TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
  • TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
  • TLS_EMPTY_RENEGOTIATION_INFO_SCSV

However, HA is only accepting the following:

  • ECDHE-RSA-AES256-GCM-SHA384
  • ECDHE-RSA-CHACHA20-POLY1305
  • ECDHE-RSA-AES128-GCM-SHA256
  • ECDHE-RSA-AES256-SHA384
  • ECDHE-RSA-AES128-SHA256

So, there is no match. I'm seeing if I can escalate this with Meraki so they can add one of those, but I suspect that it would be easier for HA to accept one of the ones that Meraki is proposing.

@chriskacerguis
Copy link
Contributor

@balloob could I call your attention here? I'm sure you are swamped, and I want to be super respectful of your time, but it seems like this may be a larger issue. It seems that HA is accepting only a very limited set of cyphers (not, necessary a bad thing, however it would seem that other companies aren't as "on top of security".../sigh).

Would you mind chiming in here when you have a moment? I didn't want to open a bunch of tickets and send devs down lots of rabbit holes.

Thank you so much for all you have done (and continue to do) for the community and HA!

@balloob
Copy link
Member

balloob commented Aug 9, 2018

We are following the Mozilla modern compatibility configuration for SSL: https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility

I don't think that it's a good idea to downgrade the security of Home Assistant for a single integration.

@chriskacerguis
Copy link
Contributor

Hi @balloob thank you for taking the time to chime in :)

This issue seems to be happening in a few places (for example #15579 (comment) ).

Looking over that doc, I get what you are saying, that said their default is "Intermediate compatibility", perhaps, at least for the time being, that would provide better compatibility.

OR perhaps an option could be added to allow the user to select which compatibility mode to use. Apologies, I'm not a Python dev...so that would be hard for me to do.

Thoughts?

@rpitera
Copy link

rpitera commented Aug 11, 2018

Definitely happening in more than one integration. While I agree it's never a good idea to downgrade the security of HASS, maybe as a interim step provide a logged warning and identify which integration or integrations is/are at fault so that users can then go to the vendor to seek their assistance in getting them to upgrading their cyphers? Just a thought.

@gidadavid
Copy link

@balloob Are you working on this issue? There are a great number of user which experience this Issue
( #15579 )
Or is there another way, I could remove these strings full of errors. I can´t fix my configuration.yaml if I m not be able to see other errors

Greetings Gideon

@balloob
Copy link
Member

balloob commented Aug 13, 2018

It is difficult to figure out the integration because of the handshake failure, the client never tells us what path it wants to reach.

@ghost ghost added the in progress label Aug 13, 2018
@ghost ghost removed the in progress label Aug 14, 2018
@home-assistant home-assistant locked and limited conversation to collaborators Dec 14, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
5 participants