Smartphones are not safe

This message will probably give you think.

Have you ever considered how easy it is to hack your smartphone? Very easy. Cellebrite can easily access your data in AFU state, and sometimes even in BFU, as in the case of the Serbian activist. Oh, you think Isolated security chip protects your data? This damn chip only stores the keys, but if you trick it into thinking you’ve entered the correct password, it will give them away. Your files are NOT encrypted with your password, which only you know.

Entering the correct password is just a message to the chip to give up ITS own keys, and these are the keys responsible for encryption. If you trick it into giving up the keys, you can get all data.

If phones had double encryption: the first layer is your password, and only the second is the chip key, then a phone in BFU would be completely invulnerable if you have a strong password, since it wouldn’t be stored anywhere, unlike the chip key, and it wouldn’t be accessible. But manufacturers did differently.

You don’t control the encryption. Your password merely signals the chip to release its own keys. The encryption layer is sole. Special agencies will inevitably be able to hack the phone. Even the most secure isolated chip will eventually be compromised by Cellebrite. Sure, you can defending against attacks. But, blocking the USB stack, as GrapheneOS does, is a workaround. The system encryption itself needs to be redesigned, and DirectBootAware mode (introduced by Google), which allows application components to run and variables to be stored outside of encrypted storage, needs to be eliminated. File Based encryption (introduced by Google) also needs to be removed and Full Disk Encryption needs to be restored, as with FileBased Encryption, some system services can be loaded before first unlock. Separating profiles and encrypting them with separate keys is certainly a good idea, but it also expands the attack vector. When system services are running in one profile or on the lock screen, they can be infected, and the next time a password is entered, the data for everyone else can be compromised.

I remember on my old phone, when using Full Disk Encryption and the system encryption feature, the entire system required a password to decrypt after a reboot, and even the lock screen contained nothing but a password entry field. No wallpaper, no time, everything was encrypted. Yes, of course, the old encryption as PROTOCOL was weaker than modern ones, but FullDisk Encryption as encryption TYPE itself was better than File Based Encryption.

For me, the ideal scheme is when encryption is one that uses not only the chip key but also the user’s password, which is stored nowhere except in RAM while the user is using the phone. That’s double encryption. And the RAM keys, whether the chip key or the password, should be erased after each screen off, not just after a reboot. And of course, after each screen off, the entire phone, even system services, remains encrypted (Full Disk Encryption), leaving fewer attack vectors.

You might say that File Based Encryption is supposedly more secure. That’s a lie. No, it’s not more secure. It’s only more secure for separating profiles, not against Cellebrite attacks. Quite the contrary, the threat level has become significantly higher. This is a compromise on security for the sake of convenience. Or perhaps Google is simply collaborating with special agencies. Just like phone manufacturers. For example, how can you explain why they don’t encrypt data using your password? Why your password this is not key, but the key is stored where it can be accessed? The only thing outsiders can’t access is what’s stored in your head.

Even if a password is used to create a key, that may be on modern devices, if that key is ultimately stored somewhere permanently, it is a threat. The password must be a separate layer of encryption and temporarily be stored only in RAM.

In Russian (вариант текста на русском):

Думали ли вы когда-нибудь как легко взломать ваш смартфон? Очень легко. Cellebrite может легко достать ваши данные в состоянии AFU, а иногда даже в BFU, как в случае с сербским активистом. О, вы думаете выделенный чип шифрования спасает ситуацию? Этот гребаный чип только хранит ключи, но если заставить его думать, что вы ввели верный пароль, то он их выдаст. Ваши файлы не шифруются по вашему паролю который знаете только вы.

Верно введённый пароль это лишь послание чипу выдать ЕГО ключи, и именно они отвечают за шифрование. Если заставить его выдать ключи, то можно получить все данные. Если бы на телефонах было бы двойное шифрование: первый слой по вашему паролю, а уже второй по ключу чипа, то тогда телефон в BFU был бы полностью неуязвим если у вас сложный пароль, ведь он нигде бы не хранился в отличие от ключа чипа и его нельзя было бы достать. Но производители сделали иначе. Вы не отвечаете за шифрование. Ваш пароль лишь знак чипу выдать его собственные ключи. Слой шифрования только 1. Спецслужбы обязательно смогут взломать телефон. Даже самый защищённый выделенный чип рано или поздно ложится под Cellebrite. Можно конечно защищаться от атак. Блокировать USB стек, как делают GrapheneOS, но это костыль. Надо переделывать само шифрование системы, а также избавиться от DirectBootAware режима, введённого Google, который позволяет работать компонентам приложений и хранить переменные вне зашифрованного хранилища. Также нужно избавиться от FileBased encryption, введённого Google и вернуться к Fuill Disk Encryption, так как при File Based Encryption некоторые системные службы могут быть загружены до разблокировки экрана, разделение профилей и шифрование их по отдельным ключам это конечно хорошо, но это же расширяет вектор атак, когда в одном из профилей или на экране блокировки работают системные службы, их можно заразить и при следующем вводе пароля просто скомпрометировать данные для всех остальных. Помню на моем старом телефоне при использовании Full Disk Encryption и функции шифрование системы, абсолютно вся система после перезагрузки требовала пароль для расшифровки и даже экран блокировки не содержал ничего кроме поля ввода пароля. Ни абоев, ни времени, все было зашифрованно. Да, конечно старое щифрование как протокол было слабее чем современное, но сам тип Full Disk Encryption был лучше чем File Based Encryption.

По мне идеальная схема это когда шифрование не только по ключу из чипа, но и по паролю пользователя, который нигде не хранится, кроме RAM на то время пока пользователь пользуется телефоном. Тоесть двойное шифрование. А из RAM ключи, будь то ключи из чипа, будь то пароль, должны стираться после каждого выключения экрана, а не только после перезагрузки. Ну и разумеется после каждого выключения экрана абсолютно весь телефон, даже системные службы остаются зашифрованными (Full Disk Encryption), так чтобы оставить меньше векторов для атаки.

Вы можете сказать что File Based Encryption это якобы надёжнее. Это обман. Нет, не надёжнее. Надёжнее только для разделения профилей, но не против атак. Скорее наоборот, уровень угроз стал значительно выше. Это уступка безопасности ради удобства. А возможно Google просто сотрудничает со спецслужбами. Как и производители телефонов. Вот например как объяснить, что они не шифруют данные по вашему паролю? Почему ваш пароль это не ключ, а ключ хранится там где его можно достать? Нельзя достать только то, что хранится в вашей голове.

Даже если для создания ключа используется пароль, что возможно на современных устройствах, если этот ключ в конечном итоге хранится где-то постоянно, это представляет угрозу. Пароль должен представлять собой отдельный уровень шифрования и временно храниться только в оперативной памяти.

Your text is full of false statements about modern smartphones security, but this doesn’t matter. Know why?

2 Likes

Your comic shows the importance of a feature like Duress Password, implemented in GrapheneOS. Which statements are false?

Firstly, if someone is confident in the security of their phone, they’re less likely to give up their password.

Secondly, if they know you can use Duress Password, they’ll simply take your phone and try using cryptography instead of pressure, and that’s where the game begins.

“In February 2024, Serbian independent investigative journalist Slaviša Milanov was arrested and detained by police under the pretext of performing a test for driving under the influence of alcohol. While in detention, Slaviša was questioned by plain-clothes officers about his journalism work. Slaviša’s Android phone was TURNED OFF when he surrendered it to police and at no point was he asked for nor did he provide the passcode.

After his release, Slaviša noticed that his phone, which he had left at the police station reception during his interrogation, appeared to have been tampered with, and his phone data was turned off.

He requested Amnesty International’s Security Lab to conduct a forensic analysis of his phone – a Xiaomi Redmi Note 10S. The analysis revealed that Cellebrite’s UFED product was used to secretly unlock Slaviša’s phone during his detention.“

TURNED OFF!!!

BFU, but data was extracted without using password.

This means the encryption keys were stored on the chip, and no password was used to encryption. They were able to hack the chip and simply obtain its keys.

So where am I wrong in my conclusions?

Source of news: Serbian authorities using spyware to hack activists and journalists

1 Like

Android never had real full disk encryption. What it mistakenly called FDE was encryption of data partition only. System partition was never encrypted. This is why smart phones are less secure than PCs.

Also, on most Android devices, security chips or hardware modules do not contain master key, like in IOS, but rather signing certificates only. Your password is used to encrypt the master key.

Edit: Duress password feature you mentioned is totally irrelevant to the situation described, i.e., the phone is Off and taken away from user.

If you’re interested in security chips design principles I can recommend reading this overview from NXP: https://www.nxp.com/docs/en/white-paper/Security-Subsystems-WP.pdf

Source of news

Cool story. But no details and the source in biased.

I don’t deny the power of security services, but without particular evidence and technical details this all sounds like a yet another conspiracy theory.

1 Like

The boot partition on a PC (you mean LUKS by FDE, right?) also isn’t encrypted because otherwise the system won’t be able to boot.

Why should system partition be encrypted? It contains no private data.

There is such a thing as Password Based Encryption (PBE), but this is almost never used in modern smartphones. On old ones where there was a function “encrypt the phone” and the encryption lasted for some long time, it really depended on the password. Now the encryption key is tied to the silicon of the chip. Encryption depends only on it. And the password is just a lockpick to this safe, to force the chip give out encryption key. If someone force the chip to extract this key without a password, they can decrypt the data regardless of the complexity of the password. Which is what the special services do. Why do you think on old Android the function to encrypt the phone took a long time, and then the phone also rebooted? And now, when you change the password on the phone, this happens without any waiting and delays. The data is not re-encrypted. Because the encryption key is almost independent of your password. And if the special services get access to the silicon, then they get the key. Outsiders can extract a key from everything, except for your head. When the main encryption depended on your password, the protection was real. That is why, when using the function to encrypt a phone on old Android after rebooting, even the lock screen wallpaper did not load, it seemed to tell you that until you enter the password, you will not even get some clue.

Why do you think on old Android the function to encrypt the phone took a long time, and then the phone also rebooted? And now, when you change the password on the phone, this happens without any waiting and delays. The data is not re-encrypted.

It only took long time, if you had a lot of data in storage. Also, changing password in FDE would not re-encrypt your data either. It doesn’t even do that in Lux on Linux.

  1. Boot partition in Linux could be encrypted too.
  2. Having uncrypted System, System_ext, Product and Vendor partitions (in phones) makes them vulnerable to various exploits and/or forensic examination.

Well, I mean the “encrypt phone” feature on ald phones, not just FDE. Basically, the current encryption of data using a key dependent only on the chip’s silicon rather than the user’s password is bad and needs to be changed. That’s exactly what I meant.

What I am saying is that old Android phones never had anything other than FDE for data partition only. I agree that putting master key in hardware chips or modules (like IOS does) is less secure, but Android doesn’t do that. Hardware has only signing certificates, which creates an additional security layer. Even if you get those signing certificates, you’d still need to break or bypass software encryption. In addition, having hardware certificates prevents accessing data outside of the device. On old Android phones, you could image the phone and then bruteforce encryption on a PC, which is impossible with hardware based encryption.

can you find it in this list (scroll to Android): Cellebrite Premium July 2024 documentation - GrapheneOS Discussion Forum ? No? Odd right?

Probably because the most popular models are listed there.

Oh, by the way, look at this picture of Samsung on Android 6 and 7-14 It proves a lot. Android 6 still used FDE, while 7 uses FBE. This proves my point that full disk encryption, especially with the “phone encryption” feature, is more secure than file-based encryption. :cross_mark::cross_mark: - cellebrite can’t extract files, and brute-force password.

1 Like

the green ones are “bad”

if Xiaomi would have had a red X be sure they’ll be mentioning it, also see Table 1, it will be “non-Samsung MTK” anyway… with a green mark, aka “easy-peazy” :person_shrugging:

Yes, i see, Xiaomi are not safe. In previous message I said about Samsung.

You are wrong again. ‘Not supported’ doesn’t necessarily mean ‘can’t extract’, it could mean nobody uses Android 6, hence, not supported.

According to a Russian spokesman (quite recently), no smart phone is immune to data extraction).

Anyway, this discussion is useless: Nobody is going back to FDE. Smart phones are communication devices. They must be able to communicate, while data remains encrypted. This was not possible with FDE.

It would be wrong to conclude from this single detail that smart phones are less secure than PCs.

Because in most aspects of security, including AFU physical protection, but especially in protection against malware, smartphone’s are far ahead of PCs.

On Android all my apps are sandboxed, but on Linux many apps are either only available as packages that don’t have any sandboxing or only work with very aggressive permissions like filesystem=home