Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is a form of speculation which increases performance in the common case where the call is accepted.


I always wondered why FaceTime Audio has almost zero call establishment time on iOS, as opposed to WhatsApp or FB Messenger where you need to wait half a second before the audio feed kicks in after answering. Guess this is the reason!


That has not been my experience with facetime audio. For me it’s 3-10s wait after tapping the accept-call button before audio is connected.


This sound horrifying. If I use a hacked/modified FaceTime client, does this mean I'll be able to hear and see the other end before they pick up, even after the fix?


Facetime calls are end to end encrypted so I doubt a modified client would work.


How would E2E encryption stop a modified client? E2E protects against MITM. But we're not talking about MITM.


It could send the data but only on call accept give a session key


That would still expose the pre-accept audio on accept.


I wouldn't call it E2E encryption if only one party in the world has the key. E2E generally means both sides have the encryption key. But lolc points out the real problem with that scheme.


I think it is fair to say all applications must be written to assume the source code is opensource / can be modified / recompiled. A recompiled app should, in theory, only sacrifice the security of the person who did it, not the remote.


If FaceTime is implemented the way the parent comment mentions (which it very well may not) I don't see why you could make a client that performs a proper key exchange to set up an end-to-end call and simply pretend grab the video instead of hiding it behind the "dailing" screen?


"The initial FaceTime connection is made through Apple server infrastructure that relays data packets between the users’ registered devices. Using APNs notifications and Session Traversal Utilities for NAT (STUN) messages over the relayed connection, the devices verify their identity certificates and establish a shared secret for each session. The shared secret is used to derive session keys for media channels streamed via the Secure Real-time Transport Protocol (SRTP). SRTP packets are encrypted using AES-256 in Counter Mode and HMAC-SHA1. Subsequent to the initial connection and security setup, FaceTime uses STUN and Internet Connectivity Establishment (ICE) to establish a peer-to-peer connection between devices, if possible."

Source: https://www.apple.com/business/docs/iOS_Security_Guide.pdf


I'm not doubting whether FaceTime is end-to-end encrypted, I'm not sure whether FaceTime sends data before the call is accepted for speculation reasons.


Yeah, if you have a hacked iMessage client you probably could retire from bug bounties. At any rate the bug in question would pale in comparison to a rogue iMessage client.


Modified clients are definitely possible - review the recent Project Zero research into webRTC vulnerabilities, which included a look at FaceTime and discovered several exploitable bugs

https://googleprojectzero.blogspot.com/2018/12/adventures-in...


Similar to how Nextels cellular "push to talk" fake walkie talkies worked.


> Similar to how Nextels cellular "push to talk" fake walkie talkies worked.

Not really. The reason the PTT was virtually instant connect has nothing to do with optimization tricks, but rather is a purpose built design of the network tech it was using.

Nextel PTT didn't go over a normal cellular network, it went over something called iDEN[0]. iDEN provides a trunked radio service[1] which has a similarish feature to a conventional two-way radio. Sprint acquired Nextel and as iDEN wasn't as relevant anymore with the advances in cellular networks (despite those who actually used the PTT functionality), in 2013 Sprint shutdown the network to use it for additional LTE bandwidth in the 800mhz band[2].

[0] https://en.wikipedia.org/wiki/IDEN

[1] https://en.wikipedia.org/wiki/Trunked_radio_system

[2] https://en.wikipedia.org/wiki/Nextel_Communications


No, PTT would send audio from the caller without the receiver accepting anything, but it wouldn't send anything from the receiver without action on the receiver end.

It was obnoxious at times, but very different than the kind of privacy invasion that the receiver's sending data without active involvement is.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: