This is very important in industrial environment, where the operator PC have to show only the SCADA system. Of course, there are situations, where a supervisor have to close the SCADA and have to use other programs. (For example during maintenance.)
In this case, he has to identify himself with a password, but here is a problem:
How can the Desklock store the password?
In Windows, you have two possibilities to store something (of course there are lots of methods, but this two are the most common.):
- In the Registry
- In a file
The Desklock stores its configurations (and the password) in a config file. [I wrote the method to decrypt the stored password, but I removed it. You don't need it to protect your system. By the way, if you are an engineer who has to restore a forgotten password, you will discover it yourself very easily.]
It's not a big problem. If Desklock is active, then you can't open the config file, because Desklock can be configured to start with Windows. But, if the attacker can reboot the computer, then he can start it in safe mode. (In safe mode, the autostart programs won't run automatically.) In this case, the attacker can steal the config file.
By the way, I never heard that this password handling was abused by an attacker. I discovered this, when I fixed an operator PC. I needed the password of Desklock, but the operator was unavailable. I checked the config file, had luck and finished with the fix just in time.
What have you to do, if you use Desklock?
- You have to use a separate password for Windows and for Desklock. (It's an important rule: One application, one password.)
- Desklock can store the Windows password too, but it's in the same unsafe way. In my opinion, if you want to log in automatically, you don't need Desklock for this.
- You have to configure the Windows to ask password after boot.
- You have to log all reboot.
What have you to do, if you are a developer, who want to create a software with locally stored password?
- Don't store the password without an irreversible and secure hashing. (In most cases, you never have to decrypt the password.)
- Even if you use some good hashing, you have to salt the password before it.
- Use a hashing algorithm more thousand times.
- For more details, see this topic.