To hack an Android phone, just type in a really long password
money.cnn.com
money.cnn.com
With this security architecture, no bug in the password "gatekeeper UI" can lead to you being able to read the protected information if the device gets locked successfully.
Android has a similar architecture with the 'keystore' service (for keys rather than files though). Crashing SystemUI will 'unlock' the phone, but none of the keys in the keystore will be usable. Unfortunately, no apps use the keystore in practice because it's unusably badly designed. You're vanishingly unlikely to notice if you're using a phone with a locked keystore.
That's the point: what you can access is not encrypted, but lots of stuff are on iOS9: photos, mail, etc. I'd say the difference in what you can access is staggering.
How can this be, if they are encrypted while the phone is locked?
Contacts need to be accessed to display a caller's name when the phone is ringing.
Since it's possible to take a photo with the phone locked, the whole photo database may be accessible.
The idea of having a security architecture with different classes of data still remains, so a third party app can quite easily leverage this, for instance. Unfortunately there doesn't seem to be a comprehensive list of protection classes that each app uses for its files.
Is there any reason this can't be fixed by just copying iOS in this regard ??? I guess the question I'm asking is, this bug is entirely fixable right ???
Not trying to diminish the seriousness of it. It sounds pretty horrible. Just saying that if Android's architecture will allow you to do something like iOS does, but it's simply unimplemented currently, that's one thing. It would be quite another thing if Android's architecture would NOT allow you to do something like iOS does. As I said... I'm not a security expert... but it SOUNDS like you can implement a fix that would mirror the protections provided in iOS ???
Is that true ???
Right now it seems the low hanging fruit for Android would be to encrypt devices _at all_ (by default). Different classes of encryption is a luxury.
iOS encrypts, even if you don't set a passphrase or something and their security white paper does mention having dedicated hardware to make it seamless.
Of course. The problem android has had in the past, though, is that actually getting security updates to users could be incredibly convoluted - with every vendor and network having their own, slightly tweaked (and heavily branded) versions of android.
We still haven't heard anything about it being re-enabled in Android M again (or ever). Also, I remember reading about Android <4.4 (optional) storage crypto being seriously broken as well.
It's unfortunate because many people probably still believe they are getting default storage encryption. Heck, all the new stories on encryption and the FBI still (falsely) mention how Android is encrypting the storage by default. It reminds of media sites saying Skype is P2P and secure against eavesdropping years after Microsoft announced it changed its infrastructure to a centralized wiretap-friendly model, just like everyone else.
The gap between iOS and Android in terms of security (and privacy, too) seems to only be increasing every year. If they keep this up I may finally switch to an iPhone after years of being an Android-only user.
https://medium.com/@FredericJacobs/apple-ios-9-security-priv...
And that's even without mentioning the horrible update problem that Android has. I've just learned to live with that by installing custom ROMs after my phone stops being supported a year into its life-cycle, which is obviously not ideal in terms of security nor is it something I should have to do to get better security.
Security is hard. Really profoundly hard, not just superficially hard.
And despite the fact that nominally I'd expect to get upvotes for stating what you'd think would be the groupthink consensus, my observation is that in the field, even engineers explicitly tasked with security still often think it's really easy and they're really good at it, so there's no great need for them to budget lots of time for it. This turns out poorly. I do not toss this around lightly because it's become cliche to just fling it around without much care, but there's a lot of real, no-foolin' Dunning-Kruger effect operative in this area.
(Your test for Dunning-Kruger on this matter is: If you're told you need to secure something and you're going to be personally responsible for its security, do you A: Say "Oh, that's easy, I'll 'just'..." followed by pretty much any series of words, or B: get the cold flop sweats, regardless of how easy it may superficially seem?)
Indeed. There is an army of naked celebrities dancing around the internet today because of an "iOS" hole that didn't even involve the device OS at all.
Picking on specific features to announce "Apple is more secure" is very much missing the point.
That said, yeah: I'm not a big fan of Android's security architecture either, though it has been improving rapidly.
This is an important factor, and maybe the fatal flaw in android's carrier relationships. Google is always very fast to push a fix out, but the carriers always drag their feet in getting the fix to the actual devices.
Having a better security architecture works (to stretch the metaphor) like immunization: past a certain adoption level you reach a "herd immunity" state where the marginal benefit to an attacker of a specific flaw drops rapidly to zero even though there are still "old" devices out there in the market in small numbers.
Basically, the market refresh cycle is still at something like 18 months, so even given that OEMs are slow new Android releases are reaching the public in large numbers fairly promptly.
It would be beneficial if carriers could come up with updates faster however. I've seen Verizon drag its feet on more than one occasion, especially with phones that are a generation or two behind.
Are you referring to the year-ago iCloud “hacks” or is there a really surprising twist to the whole XCode Ghost thing that I haven’t heard about? :)
Given the scale and complexity I would say Google's done an acceptable job at Android security, but I do think they need to be even more serious about it. And it's not like iOS (remember lock screen bugs) or Mac OS X (remember password less logins succeeding?) haven't had their fair share of issues.
Well... but Android is a year long (8 years since the first beta) effort backed by Google (55k employees) and companies like Samsung (490k employees). They might spare a few people coming up with a scheme for data encryption that works?
And really, I don't claim it's easy, and I don't claim that I personally could come up with something even halfway resembling Apple's solution. But Android seems, unfortunately, to not even be trying.
Android users seems to care more about benchmarks them security. The fact that Google removed the encryption by default was after all the bitching that people made after some releases showed that Nexus 6 was faster without encryption. However, there is no proof that this had any significant impact on performance, and I think Google put this restriction after a careful study that encryption by default, even on pure software implementation, did not impact usability on devices. OEMs do like benchmarks and likes to be lazy ("no encryption by default means I don't need to create a module implementing encryption that my hardware already supports! less money to spend, more profit!") because this makes people buy more phones, so they probably pressured Google to remove default encryption because encryption "makes performance looks worse" (on paper, not in real life).
If I was part of the midia, I would do a blind test running Nexus 6 with both encryption enabled and disabled. This would show if the performance impact was significant. But the majority of midia prefers the easier way using benchmarks, so we had all these Android users crying rivers that they lost performance. Serious, wtf.
I'm not sure if hardware acceleration is enabled in Nexus 6, but the hardware is certainly capable of acceleration. I now have an encrypted Nexus 6 and the performance is fine. My previous Nexus 4 was also encrypted and after encryption the performance hit was noticeable when booting up, but after boot it performs fine.
30 seconds to switch an app that's stale sounds like there's something really wrong either with your device or with the Cyanogenmod version you've got installed, judging by those specs at least.
Even without AES-NI, this processor is doing more than 100MB/s of encryption. Mobile storage is a lot worse than this (like less than 50MB/s in sustained sequential writes), and you have to remember this would be the worst case (since the majority of writes for common users is small files instead of big files).
Just to put in perspective: my Moto X can write around ~20MB/s when transferring files by USB 2.0. And it can still write the same ~20MB/s with encryption on.
Considering the industry Android is in is essentially only iOS and Android, that makes them the worst in the industry...
Or you only encrypt your phone and leaves your notebook unecrypted? This would be silly.
Android needs an 18-24 "gap" period of re-engineering everything they rushed, but at that point you might as well just write a new OS. I suspect there is a secret 2nd version of Android that isn't virtual machine based, doesn't use Java, but has whatever backwards compatibility needed to work with the existing applications. If things get too hot from Oracle, then that will be the next version of Android. Switching to ART seems to suggest that Google has some portability chops here. Incremental updates like they're doing now is the path of least resistance, but considering how much more polished iOS is, I really doubt Android will ever be on that level. Its always going to be a little quick and dirty and I think if you buy an Android product you have to accept that.
I switched to the Nexus products from my 3GS. I knew Android was a step down in a lot of ways, but I wanted the hardware flexibility it offered. Now that I can get a big Apple phone with a swype keyboard AND it works with Android smartwatches, it seems the Android value proposition keeps getting weaker and weaker.
Add to that forgetting a month in a calendar and an Alarm that rings for one second and stops
Almost justifies the extra price for the iPhone
What can you expect from a company that names its version releases after chocolates, candy and ice cream? That's literally the level of maturity with which they view their own product. So no wonder security is an afterthought.
For example, jwz's XScreenSaver separates the graphical process (more complex and bug-prone) from the daemon. If you manage to crash the password input screen (or the screensaver itself), the daemon will just restart it.
The password input screen uses only low-level X11 calls (and not a higher-level GUI toolkit) in an attempt to reduce the library dependency list and therefore the possibility of crasher bugs. But if you do indeed manage to find a crash bug in libX11 (or a dep) that you can trigger from xscreensaver's password entry box, that will indeed unlock the screen.
Now, the xscreensaver configuration panel is written using GTK, which is indeed a separate process, and a crash in the config panel won't affect the screen locker.
Still, Android doesn't run X, and since they control the whole OS, it shouldn't be too hard to avoid having input "pass through" the lock screen.
But I'm genuinely curious, maybe someone here on HN knows: Which of the other mobile phone systems (Windows Phone; Firefox OS; Ubuntu for Mobile; Tizen; Blackberry; ...) have a halfway decent security architecture, similar to iOS?
The whole point of Symbian OS S60 3rd Edition (aka Symbian OS 9.1) release was to introduce DRM support and a security model based on certificates for API sets.
Many, included myself, were disappointed that they didn't took the opportunity of such breaking change in the programming model, to throw the Symbian C++ dialect out of the window.
[+]: technically, it generates a new AES key, encrypts the message under it, encrypts that key under a key derived from ECDH over Curve25519 with the system public key (whose private key is encrypted and inaccessible while locked) and saves the encrypted file and the wrapped key somewhere to be decrypted when it gets unlocked and gets rid of the AES key.
This also only really works for software specifically designed for this mode.
EDIT: it can actually be mostly secure if the client public key is sent before locking and then the encryption is done by the server: the attacker would only learn the number and timing of new messages and their size (assuming an ad-hoc protocol and very carefully implemented software).
It's also sort of possible to do it with generic software by simply dumping HTTPS TCP traffic to disk and decoding it once the system is unlocked (although it allows a MITM to fill up your disk unless the ciphersuite allows authentication with a key that doesn't allow decryption).
Arguably this is a bug in HP's printer driver. But the fact Microsoft exposed printing to begin with was misguided.
I will say, even then, Microsoft intended for businesses and schools to utilise Windows NT 4.0 for this type of scenario. Unfortunately for them 9x become too popular for its own good, so people were buying machines with it and then having it log into AD (which was never really secure scenario, NT is designed for this, 9x wasn't).
When it came to the design of their gearbox, the work was outsourced (as much of it is in F1 unless you are Ferrari).
The primary gearbox designer did most of the work, however reverse gear proved to be a problem, but rather than fix the problem, it was left to the junior designer who couldn't solve it either, who also left it pretty much unfunctional. This was based on the concept that:
a) Reverse is rarely (if ever needed) (sidenote: disqualified if used in the pits during a race)
b) The "pit dodger" team was unlikely to last the entire race anyway, so the gearbox didn't need to standup to a full race duration anyway. The effort put in to designing the components (i.e. precision) can be reduced to match the expectation of success and failure rate of other third party components. Design and production time can be saved and extra profit made.
Thus lies the lesson of the emergency call feature, or any other feature that designers feel don't really require that much attention because they are rarely used. These features are often handed to junior developers and engineers, because of the fact that people have a tendency to deem lesser-used features as unimportant.
Which is fine of course until you have an emergency and you desparately need to make that emergency call because your, or someone else's life, depends on it. Or you need to reverse out of the way of a damn F1 car coming towards you at 150mph down a straight and you are sitting in the middle of the track. WTF, reverse doesn't engage....oh shiiiiiiit....
TLDR: Features that are very infrequently used are not always the features of least importance.
All cars must be able to be driven in reverse by the driver at any time during the Event.
BTW, for anyone interested, the current technical FIA F1 2015 technical specifications are here: http://www.fia.com/sites/default/files/regulation/file/2015%...However, AFAIK, not being able to make regular calls without using a password isn't part of certification testing.
Off topic, but why would using reverse in the pits disqualify a driver / team?
The original vulnerability is here, for those preferring to skip CNN and go straight to it: http://sites.utexas.edu/iso/2015/09/15/android-5-lockscreen-...
Security is not an absolute, and there is no such thing as "really/totally/completely secure". The different locking methods allow you to strike a balance between security and convenience that's appropriate for you. All of these are useless against a determined attacker, for a given level of 'determined'.
Edit: Unfortunately I can't find the specific study I was looking for, so I'll have to add my own [citation needed]
I wonder if the actual fix is to have the "watchdog" ping the Keyguard's process for a heartbeat like it does so with other services within the system_server... That way, any flaw / crash in Keyguard and you essentially loose access to the OS too (until it come backs up from the reboot, and starts from a clean slate).
(Of course, you need to have special privileges to mark your process as critical.)
Also -- and this has been useful to me on a laptop -- init will configure the watchdog as a last-resort to kill the system when shutting down.
Of course, it's possible to excise such processes via patching or with a debugger.
So never then.
If you want an iOS like experience with Android you have to buy a Nexus phone of which the Nexus 6 sucked balls due to its size.
I wish Google hadn't killed the Play Edition phones. I would love a choice of phones running stock Android, maybe with a few extra, optional, apps from the OEM similar to what Motorola does. A Galaxy S6 running stock Android with a guarantee of update within 2 weeks of it hitting a Nexus would be my perfect phone.
I wonder, if Apple delegated OS update publishing onto third parties, if you'd keep your position. The Jobs distortion field extends beyond the grave, it seems.
Amount of hardware is same as in any laptop. Is Android missing some driver framework or what?
If you're a driver developer, there are essentially three options: (1) submit the driver to the kernel tree, in which case (if it gets accepted) the developer making the API change will update your module, (2) keep pulling the kernel tree locally and update the module yourself and (3) simply stick with a kernel version.
Here's the official explanation: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...
http://www.androidcentral.com/list-devices-stagefright-patch...
The vendors and carriers are getting pretty good about this, and the bulk of popular devices get patches surprisingly quickly.
Making exploitation much easier was how around the same time Cocoa widgets got emacs-style bindings like ctrl-k, ctrl-y, ctrl-a. Through combining these shortcuts an attacker could quickly and exponentially increase the input string length.
I never saw it documented online but I remember applying this same trick to logonwindow and OS X dropping into the so-called 'secret >console mode' -- full screen terminal, Linux-style.
Background: https://www.securemac.com/macosx-screensaver-security.php
This bug just happens to have been brought up in a security context, but if other text edit fields elsewhere in the OS and apps will cause crashes too when fed long strings, that's not just a security issue.
Writing lock screens is hard!
1. Only affects stock Android 2. Only works with password protection (PIN, pattern = OK) 3. Already patched
The author clearly didn't do his research, simply assuming that the vulnerability affects all Android devices:
> But there's no telling when it'll reach Android devices made by Samsung, LG and others. Blame the Android's fractured updating system, which is slowed down by phone manufacturers and cellphone network carriers.
How many phones are still vulnerable to StageFright?
So in this case "patched" is pretty meaningful.
Of course, deactivating copy&paste would not be a valid solution for this, but the paste feature also could potentially leak user data to unauthorized persons. The copy feature could by accident reveal the password at places where they do not belong.
When they activate paste, I guess copy is active to ... (but I don't own such a phone)
I do not have an Android phone or a password manager, but I still do not get the point here. The device is locked, so how do I access the password manager?
When you said "they" I thought you were talking about password fields as a whole, not this single field.
And even then, any OS could be run in a VM, so why not accept paste, it won't hurt anyone.
Even attackers that can read your RAM perfectly can be thwarted by encrypting things and unloading the keys from memory.
In practice, If you can detect intrusion and the device has a secure boot system, wipe the device and issue it new keys, re-encrypt all data to the new keys with some backup cold-stored keys.
The lock screen only accepts a password of 16 digits long.
So.... Only some devices effected?
EDIT:
On further research its fixed on 5.1.1.
Kind of a stupid fix? Just limiting the size on the input password field?
Also I notice that you can no longer copy paste from the emergency call screen.
The year is 2015. The basic security of basic devices remains more fucked than ever.
Maybe it's because I use the finger print reader and password is for emergency. On my phone this hack seems virtually impossible after 10 minutes of trying really hard to get it to work.