Universal Password Storage in Windows 8
For most users the only form of credential management is password saving in a web browser. This often leads to an unsatisfactory experience, as the passwords are actually stored on a pre-browser, per-computer basis. Without additional software one cannot share accounts between IE and Firefox or their work and home computer.
Under Windows 8 your Windows Live account becomes your master password. With it one can access any other password from any Windows 8 machine that is marked as “trusted” by the user. While Windows will generally enter the password for you, it can be viewed using the “Manage you credentials” screen.
Since this makes losing one’s Windows Live password a huge security risk Microsoft is recommending users disable the normal password recovery system. Instead they can use a secondary email address or a cell phone for password recovery, but those too pose a risk.
For the application developer this new ecosystem offers some interesting prospects. Windows 8 credential storage offers an API for both traditional and Metro style applications. That means developers are no longer responsible for securing locally stored passwords and benefit from cross-machine replication.
The entry point for the API is the PasswordVault class. From here one can get a list of resources by username or usernames by resource. A resource is just a string which may represent something like a URL or application ID. Each resource/username pair may have a single password associated with it.
There are a few questions still unanswered:
- Will all applications have access to the same repository of passwords, or do they each get their own?
- If it is shared, how will Windows prevent a rogue application from stealing every password in one go?
- If it isn’t shared, how will Windows differentiate one application from another?