Security is an important thing and deserves attention from the very beginning of the design phase (as it’s SO much more expensive to “do right” after then).
A lot of people hear some words and think they are magical–but the design ‘behind the covers’ is what really counts.
You can bring up an “HTTPS” connection–but, done wrong, it might not be so effective.
The same goes for authentication and other security measures. You can develop “window dressing” approaches, that look difficult-to-break and secure. BUT, they might have serious flaws that can be bypassed as easily as subbing out a URL path.
Additionally, if there are built in “back doors” that allow the support organization wide-open access to your device, these can be a mess. At best, they can create a risk for exposure if the “trick” for getting in manages to become discovered. And, they can allow access to things you’d never want. And, it’s nearly impossible to ever know whether or not this is the case.
Even if the “mother ship” can’t connect directly to a gizmo on their own, chances are the gizmo is reaching out to the mother ship for updates, etc. And, that process can be leveraged to install things, update code, and gain access.
Plus, all those paths can be abused by malicious actors.
Thus–the extreme importance of solid, secure design from the get-go. Transparency and open-source try to aid in helping ensure good security. It’s a lot harder to hide poor/insecure code if the world can see it. And, when it can, others can jump in to help lock things down. But, alas, that’s not always a viable business model.
Note: I’m NOT in ANY WAY trying to smear any particular product with these comments. These are just GENERAL comments that apply to application development and security for any type of internet-connected device.