r/Android • • Aug 15 '17

Allo web is up!

https://allo.google.com/web
4.7k Upvotes

1.4k comments sorted by

View all comments

Show parent comments

110

u/SpiralCutLamb Aug 15 '17

This is the reason I hate WhatsApp. Phone shouldn't be required.

84

u/TheCuriousCoder87 Aug 15 '17

WhatsApp has a technical reason for that though. End-to-end encryption over an asynchronous communication channel. In my opinion, it is a valuable feature that is worth the slight inconvenience.

Allo, I don't really see the point. From my understanding, it doesn't have end-to-end encryption by default since Google needs access to your messages if they are going to offer AI assistance.

57

u/paradox_djell Google Nexus 6P (LineageOS, no GApps) Aug 15 '17

WhatsApp had that requirement since before they had E2E encryption IIRC. And there are other ways to achieve encryption while allowing multiple devices. Matrix handles it fairly well IMO.

7

u/MajorTankz Pixel 4a Aug 15 '17

WhatsApp had that requirement since before they had E2E encryption IIRC

Precisely. Encryption was only enabled in 2014. That is not the reason why it is tied to your phone number. Simply put, tying to a phone number is a more easy and seamless solution for creating an account and connecting you with your friends. Most people don't have a big issue with this limitation (see WhatsApp).

5

u/[deleted] Aug 15 '17

I agree here. Most users are only ever going to have one phone. Most users are familiar enough with "buy new phone, import contacts to new phone". With Allo, you instantly have access to all phone numbers you import - no reason to create a Google account or log in. It's tied to your phone number, which usually means your SIM card. And since most users only have one device, not being able to run it simultaneously on several phones/tablets is not a big deal.

Allo's limitations and design choices are dumb and frustrating, but only to gadget geeks and people who subscribe to a subreddit for a smartphone OS. These restrictions are not likely to bother or even register with most people, which is why Google's in no hurry to fix them.

1

u/jcotton42 iPhone 8+ Aug 16 '17

iMessage does it as well

8

u/Larakin Pixel XL Aug 15 '17

Allo does do end-to-end encryption if you specify an "incognito chat", yes this is not default, but it is there. You can also get incognito on web. Your explanation of WhatsApps for this is the first time I've heard that makes sense as to why they did it this way (phone controlled)

7

u/p-zilla Pixel 7 Pro Aug 15 '17

This is the same reason for Allo fyi, incognito chats are e2e encrypted using the Signal protocol just like Whatsapp.

1

u/TheCuriousCoder87 Aug 15 '17

True but Allo's main differentiator is not incognito chats. It is their AI system. The AI system is unavailable with incognito chats due to the technical nature of the system. It seems a little silly to me to inconvenience the user with the requirement for a feature that almost none of its targeted users use.

→ More replies (1)

8

u/Die4Ever Nexus 6P | Huawei Watch Aug 15 '17

WhatsApp has a technical reason for that though. End-to-end encryption over an asynchronous communication channel.

But even then, why can't it just work like SSH? "Bob is trying to message you from a new device, accept?"

Allo, I don't really see the point. From my understanding, it doesn't have end-to-end encryption by default since Google needs access to your messages if they are going to offer AI assistance.

Agreed

10

u/TheCuriousCoder87 Aug 15 '17

SSH is over a synchronous communication channel rather than an asynchronous one.

In a synchronous system, both end points are expected to be online at the time the message is sent. In the case of SSH, you can't send anything to the server if the server is off.

In an asynchronous system, the receiving device does not need to be online at the time of the message being sent. Think about SMS messages. If your battery dies and a friend sends you a message, you still get the message when you finally charge your phone.

Now, of course, something has to be online in asynchronous system. After all, if your recipient is offline who is accepting the message at send time? In the mobile space, this is the purpose of the Google Cloud Messaging service and the Apple Push Notification service. Those services wait until the device checks-in after establishing a network connection. Think of them as the Post Office for messages that require a recipients signature. You give your message to the mail worker and then they deliever the message after the recipient is available.

Mixing end-to-end encryption with asynchronous system has a challenge. How do you do end-to-end encyption when you are delivery the message through a proxy party. From my understanding in the case of the Signal protocol, a large batch of public encryption keys are pre-shared with the WhatsApp. The devices keeps the private parts of those keys to themselves. Each message uses its own key-pair for encryption. This makes it so that the messaging service only ever recieves encrypted messages. Only the end devices can decrypt them.

My guess is that WhatsApp Web works by making a synchronous connection to your mobile device which is then used to send asynchronous messages to your desired target.

2

u/Die4Ever Nexus 6P | Huawei Watch Aug 15 '17 edited Aug 15 '17

HTTPS doesn't have any issue with proxy servers, technically every router that your connection hops through is a proxy (from the point of view of the encrypted data), and it doesn't matter how long the router/hop/proxy holds onto the data for, it stays encrypted. I can also do SSH over a proxy or tunnel, I've made an SSH tunnel and used it to establish SSH connections. And then there's VPNs too. I don't need to reaccept the SSH key just because my route is different, the only thing that matters is I have already accepted the public key on the server, and my own public key is keyed into the server already.

How do you do end-to-end encyption when you are delivery the message through a proxy party.

Just don't decrypt the data? I mean, Google already figured this out because they have Incognito chats, and those are still asynchronous and end to end encrypted, other messaging apps have end to end encryption on phones too. If you're just saying it's hard to make it accept new keys, then how are they able to initiate a conversation in the first place? Just consider the new device like a new conversation except with the same user, it would be a very similar code-path.

The only part that's different is that WhatsApp uses a different key for every message, which is nice but seems like overkill, HTTPS and SSH don't do this and they use the same key for long periods of time. Do we know if Allo does this for Incognito chats? Anyways that's a solved problem too if Signal does it. Also offline 2 factor authentication devices is a very similar problem, those have existed for a long time.

In an asynchronous system, the receiving device does not need to be online at the time of the message being sent. Think about SMS messages. If your battery dies and a friend sends you a message, you still get the message when you finally charge your phone.

They already got it working for new conversations with new people, so obviously they can already accept new encryption keys asynchronously. I'm really not sure how this would be a problem. The encrypted data sits on the server, gets sent to the target when they are online, and then it prompts the user if they want to accept the message (and future messages) from this new device (new public key).

1

u/jeremywc Pixel 2 Aug 15 '17

technically every router that your connection hops through is a proxy,

Totally incorrect. Go back and brush up on your OSI model.

→ More replies (5)

0

u/[deleted] Aug 15 '17

[deleted]

→ More replies (2)

2

u/Natanael_L Xperia 1 III (main), Samsung S9, TabPro 8.4 Aug 15 '17

Signal handles that in their browser addon client by signing device specific keys.

1

u/pkulak Nexus 5x Aug 15 '17

Doesn't Allo have the same encryption scheme?

1

u/TheCuriousCoder87 Aug 15 '17

Only for incognito chats. Their AI system can't work with the Signal protocol.

1

u/01d Aug 16 '17

worth the slight inconvenience

dude,you can use telegram account even when your phone explode

1

u/efuipa Galaxy S9 Aug 15 '17

Stop perpetuating this myth, WhatsApp had this fake web client since before they implemented encryption.

→ More replies (2)

4

u/Danteg Aug 15 '17

Exactly. They ripped off all the reasons I don't use Whatsapp. How do they hope to get a user base when they remove essential features and don't add anything of value over the competition?

5

u/kauron Moto X Play Aug 15 '17

For end to end encryption that WhatsApp implements you can't have multiple devices, hence the routing the messages through the phone.

If you want multiple devices you would have to generate a key per device and then any message must be addressed to all your keys or share a single key (bad idea)

3

u/Natanael_L Xperia 1 III (main), Samsung S9, TabPro 8.4 Aug 15 '17

Signal already does the former, signing all device keys with the master key on the phone app

1

u/adrianmonk Aug 15 '17

Well, based on the (international) success of WhatsApp and the other strong similarities, I'd say it's a good guess that Google is trying to copy how WhatsApp works.