0x49D1 / WinPass

A unofficial KeePass password manager client, compatible with KeePass 2.x for desktop.
9 stars 15 forks source link

Opening database takes minutes #2

Open winpassuser opened 8 years ago

winpassuser commented 8 years ago

I have got a moderately sized password database with around 200 entries. For security, it uses 10 million key transformation rounds. Keepass2Android can open this database in 15 seconds on a Motorola Moto E 2014 (Qualcomm Snapdragon 200, 1.2 GHz dual-core Cortex A7). Winpass on a Lumia 640 (Qualcomm Snapdragon 400, 1.2 GHz quad-core ARM Cortex A7) takes many minutes to open this same database, making Winpass inpractical. I understand that opening the database could be single threaded and that the Lumia could be as slow as the Moto E, but I don't understand the order of magnitude difference. Is this expected behavior?

ghost commented 8 years ago

Maybe you could give it a try by reducing the "Number of key Transformation rounds" in your database.

You find this setting at:

  1. Open DB with KeePass
  2. File -> Datebase Settings
  3. Change to tab 'Security'
  4. Reduce the the number at 'Number of key Transformation rounds'
  5. Save the database
  6. Reload the database at your cell phone
  7. Check how long it takes to open the database.

I hope this helps.

Regards.

winpassuser commented 8 years ago

Thanks! Reducing the number of transformation rounds can significantly reduce the time to load the database (to less than a second). However, it also compromises security since it enables brute force attacks. Longer passwords do too, but there's a trade-off and 10M rounds is a sweet spot for me.

My real question is how Keepass2Android can be an order of magnitude faster on the same hardware. My guess is that there is some inefficient code in WinPass's implementation, and I hope someone takes the effort to find out. WinPass seems to be the best KeePass tool for Windows Phone, but this slowness may scare users. I sure don't open WinPass unless I absolutely have to.