Are there any reliable strategies to implement a login mechanism that will allow access to an application for maintenance purposes? Kind of like how some routers have a list of default logins that technicians can use. But the way routers do it is insecure, and I was wondering if there are better ways to implement this sort of access control.EDIT: Here's a possible solution I came up with. Generate a list of passwords for a given time window, say a month, with a different password for every day. This list would exist in the software in encrypted form. Maintenance technicians would have access to this list, and its use would be logged so we know when to block access should unauthorized personnel gets a copy of the list and use it to log in. Periodic updates would renew the application's password table.
Patterns for maintenance login
login
Providing an electronic backdoor is a ... terrible idea.  Don't do it.  It doesn't take much searching to find a number of cases where this feature blows up and gets the offending company slathered with horrific mentions in the news.Your best option would be to provide a reset switch within the device itself.  And please note that's within the system, not on the outside of the system. That forces an attacker to have physical access to the system before they can reset passwords.  Obviously, you should provide a lock to secure the physical system in order to discourage unauthorized access.You should also assume that any time that reset switch is thrown that the system has been compromised.  So you need to provide a means to audit / validate the settings of the system.  And you need to provide some indicator on the system itself to show that it's in an untrusted state.  Ideally, you'll lock it out from being able to process transactions or do anything else until the audit check is cleared.  You'll also need to identify a way to protect any data that may have been stored on that system.  Assume that reset password means someone attacking the device and then look for ways to harden that data from any access until the system is validated and determined to be trustworthy again.If you're thinking wow, that's an incredible pain in the rear then you'd be right.  But that's the point.  A rogue point of sale system represents a significant liability for the owning company.  You want these types of resets to be difficult to achieve, and you want to make sure any attack against the system is obvious to everyone else.In your comment, you mention this is for point of sale systems.  MichaelT's comment with a link to some PCI security documents would be a good place to continue your research.