Help me 'lokaal' en 'port-forwarding' te begrijpen

Mijn oude Homey Pro is helaas kapot gegaan, dus ik gebruik nu sinds een paar dagen een ‘early 2023’ Pro…

Ik begrijp alleen niet hoe het ‘lokale’ aspect werkt… In de instellingen heb ik port-forwarding geactiveerd. Ik zie als ik op mijn wifi netwerk zit, ook als verbindingstype dat het lokaal gebeurt…

Zit met twee vragen:

  1. Als ik buiten mijn wifi zit, dus 4G of 5G, hoe weet de Homey app dan wat mijn IP van thuis is? Ik had nl. verwacht dat naast een poort ook je je IP adres moet invoeren? Ik neem dus aan dat de app dan via de Homey servers mijn Pro weet te vinden, maar wat is dan het nut van port-forwarding?

  2. En als ik het goed begrijp: voor authenticatie zijn altijd (dus binnen en buiten huis) de Homey servers nodig? Dus als ik gewoon op mijn wifi zit en de app open, klopt het dat de app dan eerst authenticatie via servers van Homey doet, en daarna alles lokaal regelt? Zo ja, wat als de Homey servers offline zijn en dermate lang dat de eventuele sessie ook verlopen is?

Dus, ter lering ende vermaeck, bovenstaande ben ik nieuwsgierig naar :smile:

Port forwarding heeft niks te maken met “lokale access” maar met het direct kunnen communiceren van de app met je Homey (via je router), in plaats van via Athom servers (die, als je geen port forwarding aan hebt staan, proxyen tussen je mobiel en je Homey).

Je Homey blijft dan verder wel door draaien, maar je kunt 'm niet besturen via de apps omdat die de servers nodig hebben.

Er is vast iemand die beide implementaties heel logisch vindt, maar ik niet.

1 Like

Communicatie van bijvoorbeeld de app op je tablet met Homey kan op 3 manieren:

  1. Via je lokale netwerk. Beide apparaten zitten op het zelfde LAN-segment, waardoor ze elkaar kunnen “zien” en vinden.

  2. Via het internet en de servers van Athom. Zowel je tablet als Homey maken een verbinding met de servers, de server schakelt de berichten door.

  3. Via het internet, zonder servers. Voor binnenkomende verbinding moet je op je router een portforwarding opzetten. Een binnenkomende verbinding van naar poort 4859 moet de router doorzetten naar het vaste IP-adres van je Homey en poort 443. En de app op de tablet moet je openbare IP-adres van je router kennen.
    Ik weet niet of de app dit zelf uitzoekt, met bv https://whatismyipaddress.com/ , of dat je dit in je app moet configureren.

De verbinding via 3 is denk ik wat sneller, want de Athom servers zitten er niet meer tussen, maar is ook iets onveiliger doordat je een poort open hebt staan en iedereen kan proberen je Homey te hacken.

Zie ook Port Forwarding in App 8.0

Je Homey is normaal ook benaderbaar via de cloud dus voor hacking maakt dat geen verschil.

Aangezien je Homey een verbinding heeft met de cloud servers van Athom is daar ook het IP (remote address) van je huis bekend. De mobiele app vraagt aan de servers van Athom wat het remote address van je Homey is.

Deze word vervolgens opgeslagen in de mobiele app in een cache waardoor het zelfs ook mogelijk zou moeten zijn om remote bij je Homey te komen als de servers van Athom down zijn.

Het enige probleem is dat auth sessies soms gerefreshed moeten worden en dit is helaas nog wel afhankelijk van Athom’s servers.

NEE!
want via de cloud gaat het om twee uitgaande verbindingen, die op de server binnen komen en daar aan elkaar doorgeknoopt worden. En laat je router geen inkomende verbindingen toe. Al was het alleen al omdat de router niet weet naar welk IP adres de verbinding door te zetten. Dus moet je eerst de server hacken.

1 Like

Plus dat het via de cloud nog enigszins obfuscated is omdat de hostname gebaseerd is op een random cloud id. Vulnerability scanners kunnen nu makkelijk poort 4859 toevoegen aan hun lijsten (want default poort, en wie verandert die nou?) om op direct bereikbare Homey’s te scannen.

Dat is wel een goed punt ja maar de uiteindelijke webserver erachter is net zo veilig als die eerst was.

Wat is veiliger: bezoekers kunnen rechtstreeks bij mijn voordeur aanbellen, of ik haal bezoekers op bij het politiebureau?

In dit geval kunnen bezoekers die dus je homey id weten nogsteeds gewoon bij je aanbellen.

Hoe komen die aan mijn Homey ID en vervolgens aan mijn adres dan?

In de analogie van het politiebureau, weet de bezoeker mijn naam en alleen de politie mijn adres. Dus moet je eerst het politiebureau hacken.

En nogmaals, de router laat geen inkomende verbindingen toe, dus je kunt wel mijn router aanvallen maar niet mijn Homey.

https://homeyid.homey.eu-west-1.homeypro.net/api/manager/system/ping is een proxy in het geval van port forwarding vervang je dat dus door https://ip:port/api/manager/system/ping.

Dus je moet of het homey id weten of het ip met port combinatie.

Dat is al voor je gedaan door https://www.shodan.io/
Ik heb er al wat Homey info kunnen vinden, lijkt me.

Ik neem aan dat je nu een response van de server krijgt omdat je ingelogd bent.
Anders heeft Athom een groot security probleem, want je kunt in een script alle id’s uitproberen.

Ping is een public endpoint.

In het eerste geval ping je geen Homey, want ik zie geen id. in het tweede geval wel. Dus is in het tweede geval je Homey kwetsbaarder.

Je ziet geen id omdat ik die heb weggelaten :smile:

Even terug naar het begin van deze discussie. Je hebt deze stelling dus nog steeds niet onderbouwd.
Voor mij is deze discussie gesloten. Als je wilt krijg je wat mij betreft gewoon gelijk :grin:

Ik heb toch juist aangetoond dat je via beide wegen de homey kan pingen dus benaderen. Hoe is je Homey dan niet benaderbaar volgens jou. Als Athom ipv de /ping endpoint een fout maakt in een endpoint die een ernstig lek heeft en iemand weet je homey id dan ben je de sjaak.

Omdat https://ip:port/api/manager/system/ping niet werkt als je portforwarding hebt uitgezet én met je app niet op je eigen netwerk zit. Zet Wifi op te telefoon maar eens uit.

Het punt is dat als je via de cloud gaat, je Homey óók beschermd wordt door de Athom server.
Als je portforwarding open zet, zal je Homey rechtstreeks aangevallen worden. En mis je de bescherming van de server van Athom.
Een DOS aanval is dan bv simpel mogelijk, doordat iedereen je Homey gaat pingen. En IP-adressen waar Homeys met portforwarding achter zitten zijn openbaar, zie Shodan.io

Er zijn natuurlijk meerdere wegen die naar Rome leiden.
Maar gaat dit niet een beetje offtopic zo?