iOS 8 wants: Unified AirDrop

AirDrop, as it is currently implemented on iPhone and iPad in iOS 7 isn't compatible with the service of the same name as it's currently implemented on the Mac in OS X Mavericks. In other words, you can't AirDrop between iOS devices and Macs, and that's both frustrating and confusing. Apple certainly knows and appreciates that. So, with the upcoming iOS 8 and OS X 10.10, it would be great if Apple could unify their AirDrop services, to keep the power of the old Mac version, keep the simplicity and security of the iPhone and iPad version, but make them work together in harmony. The only question is — how?

AirDrop on the Mac

AirDrop debuted on the Mac in 2011 with OS X 10.7 Lion. Built into the Finder, Share menu, and Open/Save dialogs, AirDrop for OS X uses Wi-Fi and Bonjour — Apple's brand of zero-configuration networking — to discover other Macs within range that are also in AirDrop mode. Once another Mac is discovered, and a personal area network (PAN) connection is accepted and established between them, files can be transferred.

Since AirDrop on the Mac is built into the Finder as well as the Share menu, you can not only use it to transfer files but URLs, locations, contacts, and anything else those two systems support.

AirDrop on the iPhone and iPad

AirDrop for the iPhone and iPad came in 2013 with iOS 7. Built into the Share sheet, AirDrop for iOS uses Bluetooth 4.0 Low Energy to discover other iOS devices within range that also have AirDrop enabled. Once that happens, however, things get a little more interesting, thanks to the iOS security-first approach:

When a user enables AirDrop, a 2048-bit RSA identity is stored on the device. Additionally, an AirDrop identity hash is created based on the email addresses and phone numbers associated with the user's Apple ID.

When a user chooses AirDrop as the method for sharing an item, the device emits an AirDrop signal over BTLE. Other devices that are awake, in close proximity, and have AirDrop turned on detect the signal and respond with a shortened version of their owner's identity hash.

AirDrop is set to share with Contacts Only by default. Users can also choose if they want to be able to use AirDrop to share with Everyone or turn off the feature entirely. In Contacts Only mode, the received identity hashes are compared with hashes of people in the initiator's Contacts. If a match is found, the sending device creates a peer-to-peer Wi-Fi network and advertises an AirDrop connection using Bonjour. Using this connection, the receiving devices send their full identity hashes to the initiator. If the full hash still matches Contacts, the recipient's first name and photo (if present in Contacts) are displayed in the AirDrop sharing sheet.

When using AirDrop, the sending user selects who they want to share with. The send- ing device initiates an encrypted (TLS) connection with the receiving device, which exchanges their iCloud identity certificates. The identity in the certificates is verified against each user's Contacts. Then the receiving user is asked to accept the incoming transfer from the identified person or device. If multiple recipients have been selected, this process is repeated for each destination.

In the Everyone mode, the same process is used but if a match in Contacts is not found, the receiving devices are shown in the AirDrop sending sheet with a silhouette and with the device's name, as defined in Settings > General > About > Name.

The Wi-Fi radio is used to communicate directly between devices without using any Internet connection or Wi-Fi Access Point.

Since iOS has no Finder or surfaced filesystem — nor my long-pined-for DocumentPicker — AirDrop on the iPhone and iPad is built only into the Share sheet, and you can only use it to transfer URLs, contacts, locations, photos, voice memos, and other items that system supports.

A tale of two AirDrops

It's my understanding that AirDrop had a long, hard road going from OS X to iOS. The first couple of implementations were rejected by the late Steve Jobs and former head of iOS, Scott Forstall for not being simple and elegant enough experiences. Eventually the engineering team came up with something new and different that met the simplicity and elegance requirements, and suited the geekier disposition of Craig Federighi, and was approved for launch with iOS 7. Unfortunately, to get there, and to be rock-solid secure, it had to lose compatibility with the Mac.

Since everyone at Apple was racing to get iOS 7 done, there was no time to go back and make OS X Mavericks compatible. Delaying a completed AirDrop from iOS 7 to some future version to give the Mac time to catch up also wasn't an option.

So, AirDrop for iOS 7 was announced at WWDC 2013 and as soon as the beta was released word began to spread that it couldn't talk to the Mac.

Ultimately Apple made the right choice on the iOS protocol. It is both very secure and easy to use. Whether they made the right choice on using the same name as the different OS X protocol is another matter.

Apple could have chosen to call iOS wireless sharing something else. That would have avoided the short term confusion of the segment of their customers who already used AirDrop on OS X. Calling the iOS version something different, however, and then renaming it AirDrop once OS X became compatible, would likely have caused some level of confusion for all iOS users in the future.

Whether some past and present confusion is worth it for future harmony is arguable, but it is what it is.

Grand unification

So, you, me, and everyone else — including no doubt Apple —would prefer a world with a unified OS X and iOS AirDrop in it. I'd guess any unified AirDrop would have to respect iOS' security model. Would that mean a similar switch to Bluetooth 4.0 LE discovery? Would it mean simply hiding Finder/file transfer if the detected AirDrop client was iOS rather than OS X?

Those are the kinds of problems Apple is typically really good at solving. Hopefully they have and we'll see it as soon as WWDC 2014, iOS 8, and OS X 10.10.