Python implementation of passcode hashing algorithm used on Samsung Galaxy S4
gist.github.com
gist.github.com
If you want to talk about weak passwords though, consider that millions of broadband customers in the UK are likely using cable modems/routers with the default Wifi password that came printed on the base... currently 8 random lowercase characters on Virgin Medias newest gear for example. WPA2-PSK handshakes only add 12 bits during key stretching, so that's only 2^50 hash iterations to compromise potentially millions of wifi networks.... which can be done in about ~2 minutes to a few hours with a bit of hardware investment.
I think most people just use face or pattern unlock these days though?
Android actually does quite well in this regard: KitKat now uses Scrypt... although both PIN and Face Unlock can still be used with encryption, which very secure. Oddly you can't use pattern.
Most average users, sure. I've seen a couple of family members using face unlock, and many random people and coworkers using patterns. Myself, I use a password.
I'm having a number of devices, from 'swipe to unlock' via 'pattern unlock' and full passphrases.
My phone uses a lock pattern, because
- swipe to unlock would unlock the phone in my pocket. Rare, but happened a number of times
- my phone is the one device that consistently lies around the house and gets carried away by my 1.x year old son. Swipe to unlock was very easy to understand...
So - pattern aren't secure, agreed. They are just a way to lock the keyboard against accidents and for that they work quite well..
I'd add that it also does add a bit of "intent" (in the same sense that (quite easily pickable) door locks do -- if your child/friend/coworker unlocks your phone with your pattern, that's clearly crossing a boundary - more so than just looking at your unlocked phone.
Not sure how this is stored in the cellphone though.
Edit: I meant the encryption used to remotely unlock and lock a car
To bypass complicated physical security you at least need to be a skilled lock picker, own precision tools or physically break something. Once one person has figured out a software security flaw, they're a redistributable script away from everyone knowing it. Software based security is creeping into our lives, and it's scary how poorly thought out a lot of it is.
I was at first skeptical of this, but this seems right. Suppose that Samsung is willing to make it take 5 seconds for the phone to perform the hash to check the PIN (which is a ridiculously large amount of time). With 10,000 PINs you could still break it in brute force in 14 hours. And that's not even counting the difference between phone CPUs and desktop CPUs, or parallelism; in reality it would probably take an order of magnitude less time.
You can steal a phone regardless, but if the phone ever locks the screen, you're now locked out.