Websocket security
- Je potřeba přidat podporu šifrování komunikace pro WebSocket
-
@mikuluf Implementace (ukázková implementace) -
@ondracekr Vygenerování TLS klíčů během instalace balíčku + úprava balíčků pro webapp, aby byl nově vygenerovaný klíč použit také pro HTTPS
-
- Je potřeba autentizovat a autorizovat uživatele/další aplikace
- Autentizace uživatelů může být řešena pomocí jména a hesla (musí se ukládat pouze hash hesla, bezpečné hashovací funkce jsou například bcrypt, scrypt a Argon2) a autorizace může být řešena pomocí JSON Web Tokenů (RFC 7519). Řešení pro webapp. Knihovny pro C++: https://github.com/troian/josepp, https://github.com/Thalhammer/jwt-cpp
- Autorizace dalších aplikací může být řešena přes API klíče.
- Je nutné vymyslet jak uživatele autentizovat a autorizovat, když daemon nebude běžet.
- Token/API klíč bude muset být v JSON requestu.
- WebSocket a UDP rozhraní by se měli upravit, aby šlo nastavit i na jakých adresách budou poslouchat. Protože aktuální řešení pouze kontroluje hlavičku
Host
, do které si může každý napsat co chce. A běžný uživatel se nebude hrabat v iptables/nftables, aby upravil nastavení firewallu.
Edited by Roman Ondráček