There’s been a lot of noise about the new firmware update, and a lot of misunderstanding over what it does, why, and how. Hopefully I can explain this in a way that most people will understand, and see why users have concerns over this.
The Claim
This change is mitigating any risk of remote hacks or printer exposure issues that have happened in the past and also lower the risk of abnormal traffic or attacks.
Nobody thinks this is a bad thing, everyone welcomes security updates and the above should mostly be able to be done without any impact to the user
What is this Auth System?
For this example, let’s think about your home, and for the sake of this example, nobody can get near it without your username and password.
Right now, to access your house you need a key to get through your front door. As the owner of the house, you have that key. As the owner, you have the ability to let whoever you want into your house, and as such, you decide you want a cleaner.
To let that cleaner into your house, you get your key copied, and give them that key. The cleaner can now come into your house, and they have the ability to go everywhere.
The problem here, is the cleaner may not be who they say they are, and without your knowledge, are stealing things from your house. Once you discover this, what can you do about it?
You can ask them nicely to give you the key back, or you have to change the lock. This locks everyone out of your house until you give them a new copy of your new key.
This is the way Bambu operates today, and for all of these 3rd party services, it is a problem. Developers have been asking for better access controls for a long time due to these risks.
How did Bambu solve this?
Bambu decided to employ a bouncer/doorman process. As the home owner, to let people into your home, you still need to copy your key, however the bouncer is the one that ultimately says whether someone can come into your home. If you have a key and the bouncer says no, you’re not on the guest list, you’re not getting in.
To get on the guest list, you need to request access from the Bouncers manager (Bambu Connect)
For now, the bouncer will still let you look through the windows (read data), and will pass a message on if they approve it (Orca sending print commands via Bambu Connect)
The issue with this, the guest list to your home is controlled by Bambu. You want to hire a cleaner, but Bambu don’t like that cleaner, so they’re not on the guest list and cant get in, even though you gave them a key. Bambu can also decide at any point, you can no longer look through the window, nor will they pass a message on.
Why is this a problem?
Now, if you want a cleaner, Bambu need to approve the cleaner, and add them to the guest list. If Bambu don’t like the cleaner, tough, they’re not getting in.
Now image Bambu decide they provide their own cleaners, so if you want your home cleaned, you have to use a cleaner approved by Bambu. There is now the danger that if you want your home cleaned, in the future, there could be additional charges associated with this.
Later on, it turns out the cleaner provided by Bambu turns out the be malicious. Your home security is at the mercy of some unknown background check, which in this case failed, and you’re trusting Bambu. How do you get the cleaner out of your home? Change the locks, but now you have no cleaner.
The other concern here is, is that the guest list should be encrypted, and to decrypt it you need a key. That key should only be known by the bouncer and their manager.
The bouncers manager however, is a client app (Connect) which means you can effectively steal this key from the manager without them knowing. Now you can get yourself onto the guest list, pretending to be Bambu, and the bouncer is none the wiser.
(Note: seems like this has already been done…) Now we’re back to square 1 and nobody is any better off.
Why don’t Bambu Studio and Handy need to use Bambu Connect?
Simply put, Bambu trust them, so they get a copy of the guest list key. This way, they can add their own messages to the list.
So, how should you solve this?
Instead, you install an access system. As the home owners, it lets you create different keys for different people. You can make it so certain keys, can only access certain parts of your home. You can see when they access your home, what they access, and what they get denied access to. In addition, if your cleaner turns out to be a problem, you can simply revoke their access key without impacting everyone else.
As the home owner, you can decide who comes into your home. In addition, if Bambu determine that certain actions like changing the locks should only be access by the home owner, they can apply these restrictions. They retain control over the security of their ecosystem, the home owner retains control over who accesses their home and how.
Alternativey you can do this on an application level. If you signed into Bambu with a Google/Apple/Facebook account, this is 1 way to do it.
You as the user would get a popup that says “Hey, OrcaSlicer is trying to access your Bambu account, they will have the ability to do XYZ. Do you approve?”
Everyone wins.
Some other bits to mention
No matter how you approach this, at the end of the day, Bambu can decide that they want to stop people from controlling their printer. It doesn’t matter which approach you take.
The issue many have is the approach that is being taken, is control under the mask of security. It is well known, that Bambu are developing farm software, and even in their own wiki, it states “The current software has functions for free use. If the payment function is introduced in the future, we will notify in advance and provide fee descriptions and function introductions”
Whilst providing the huge cloud service that Bambu does, is not cheap, and is currently free, it is absolutely reasonable that they might want to charge for things in the future. Right now though, there is no transparency, and blindly looking to restrict printer control without any transparency isn’t really a great way to start.
There are much better ways to monetize this, in a way that people would get onboard with.
Hopefully this explains the scenario in a way everyone can understand, and explains why part of the community have a problem with it.
Update from Bambu
I would urge everyone to read their latest update. Whilst their is an element of trust needed as always on what is said today vs the future, it’s good to hear they have listened
The good news here, is they have listened, and are implemented a new, developer mode for LAN communication. The downside is that you’ll lose all functionality of their cloud service:
- Developer Mode (Optional): For advanced users of the X1, P1, A1, and A1 Mini who prefer full control over their network security, an option will be available to leave the MQTT channel, live stream, and FTP open. This feature must be manually enabled on the printer, and users who select this option will assume full responsibility for securing their local network environment. Please note that Bambu Lab will not be able to provide customer support for this mode, as the communication protocols are not officially supported.
I am still a little confused as to why they need to use Bambu Connect, when clearly by their own admission, the Network Plug-in already handles this. Why not application access keys? This still, doesn’t address any of the security requirements they mentioned its needed for.
Personally, I use Bambu Handy all the time, and their cloud system and ecosystem is fantastic. However, I use the local control from Home Assistant, and picking between the 2 is ridiculous.