-
Notifications
You must be signed in to change notification settings - Fork 20
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
Attempt to get feeder to use API credentials to authenticate to MQTT #31
Comments
@kruton Can you take a look and see if "pegasus" is in the firmware anywhere. The docs make it sound like it is always the MQTT username. |
The only place it mentions pegasus is in this MQTT login function where |
We can add a special authentication plugin for HBMQTT broker. There is some documentation in an issue on HBMQTT. Also, someone talked about it on gitter:
|
Yah, it looks like we should just be able to implement something simple that follows the pattern of their current auth plugins and reads from the SQLite DB |
I got it authenticating with a unique password, but it's still not a secure solution. Anyone could call the |
Well, it looks like we both spent time implementing something in this space. My fault for not being more clear on that front. I had this same thought and was planning on digging into making our current HTTP calls also validate API keys. We could then have a togglable “discovery mode” that allows new feeders to connect and get new API keys. |
According to the Konexios docs, the feeder uses its API key data to try and authenticate to the MQTT broker. We are able to get the feeder to connect by not enabling authentication on the broker, but this is a big security issue. It would be trivial to discover the broker, subscribe to the
#
topic, and replay the commands we send to control the feeder.This would require us to generate and store actual API keys for feeders, instead of just returning random garbage on
/gateways/{gateway_id}/config
Kronos endpoint.The text was updated successfully, but these errors were encountered: