On May 29, 2012, at 7:01 22PM, Maarten Billemont wrote:
> Dear readers,
>
> I've written an iOS / Mac application whose goal it is to produce passwords
> for any purpose. I was really hoping for the opportunity to receive some
> critical feedback or review of the algorithm used[1].
>
> --
> ABOUT
>
> With an increasing trend of web applications requiring users to register
> accounts, we find ourselves with countless accounts. Ideally, each should
> have a different password, so that authenticating yourself for one account
> doesn't reveal your credentials of other accounts. That becomes really hard
> when you've got tens or hundreds of passwords to remember.
>
> Solutions exist, mostly in the form of password "vaults" that list your
> passwords and get stored in an encrypted form. Other solutions send your
> passwords off to be stored on some company's cloud service.
>
> Master Password is different in that it generates passwords based purely off
> of a user's master password and the name of the site. That means you need no
> storage and have a fully offline algorithm that needs nothing more than what
> you can remember easily.
> --
>
> I'm rather a notice in the field of security (certainly in comparison to some
> of you), and I was hoping that some of you might find the time to have a look
> at the algorithm and see if there are any obvious flaws or risks to the
> security and integrity of the solution.
>
> As a side-note, the iOS application, Master Password, is fully open-source[2]
> under the GPLv3. If any of you speak fluent Objective-C, it would be awesome
> if they could have a peek at the source code as well.
>From a very quick glance, it looks to be about the same as
@inproceedings{web-pw-gen,
Author = {J. Alex Halderman and Brent Waters and Edward W. Felten},
Booktitle = {Proc. 14th Intl. World Wide Web Conference},
Month = {May},
Title = {A Convenient Method for Securely Managing Passwords},
Url = {http://userweb.cs.utexas.edu/~bwaters/publications/papers/www2005
.pdf},
Year = 2005,
}
As someone else has noted, a crucial issue is that every site receives a
function of your master password, the site name, and a counter that
defaults to zero. If they launch a password-guessing attack -- and I
know you've made it expensive, but you can't go too far in that
direction without making user password retrieval too time-consuming, and
the attackers have GPUs, botnets, and things like EC2 to parallelize
their work -- they can retrieve the master password and hence all of
your others. You can strengthen you scheme significantly by making the
counter 8 bytes and starting it with some random value.
--Steve Bellovin, https://www.cs.columbia.edu/~smb
_______________________________________________
cryptography mailing list
[email protected]
http://lists.randombit.net/mailman/listinfo/cryptography