Skip to main content

FYI, my wife and I are on an “expedition” type of cruise ship sailing around the southern and western fjords of Greenland.

For whatever reason, in the evening, I opened the Cab3 app and selected Base3. The app searched and then actually reported to be connected to some phantom Base3!

I swiped to see if there was a listing of locomotives but of course there were none.

just curious @Dave Olson if there is a simple explanation of why the app thinks there is a Base3 on this ship and why it would have reported that it was “connected” to the phantom piece of hardware? 🤷

BTW, this is a strange but true story , LOL! 🚂

Original Post

Replies sorted oldest to newest

My guess is that the app is using some combination of hardware ID, well-known IP addresses, and maybe an expected API response of some sort to detect the base on the network.

The API response should allow the app to positively identify a base if implemented properly.

If the app only uses hardware ID and/or IP, a lot of things on a big network (like the Wi-Fi on a cruise ship) might look like the Base3 to the app.

If the app uses an API call where it expects a response from the Base3 but it still gets confused and looks like it connects when there is none, I have two hypotheses.

1) The API that the Base3 uses is a common one that other software uses and something on the network also uses that common API.

2) There is some sort of nefarious "honeypot" on the network that detects (based on the API request) and formulates a response to trick the app. This is a common technique for stealing credentials.

The way Lionel could prevent this is by using a asymmetric public-private key pair on the Base3 and app.

Don't use the Cab3 throttle when you are in iceberg waters!  You might be connecting to Main Control!

When looking for the Base3, the Cab3 scans IPs looking for an open port 5000.  That port is used by UPnP services and other 3rd party services such as my Synology NAS management port.

While a connection to the LCS WiFi's port 5000 requires a followup query to establish whether the a Base is present on the port, the Cab3 logic seems content to open the port without verifying whether the port is provided by a Base3 service.  Dave Olsen is aware of this issue.

Add Reply

Post
×
×
×
×
Link copied to your clipboard.
×
×