IMessage
iMessage is an instant messaging service developed by Apple Inc. and launched in 2011. iMessage functions exclusively on Apple platforms: macOS, iOS, iPadOS, and watchOS.

Core features of iMessage, available on all supported platforms, include sending text messages, images, videos, and documents; getting delivery and read statuses (read receipts); and end-to-end encryption so only the sender and recipient - no one else, including Apple itself - can read the messages. The service also allows sending location data and stickers. On iOS and iPadOS, third-party developers can extend iMessage capabilities with custom extensions, an example being quick sharing of recently played songs.

Launched on iOS in 2011, iMessage arrived on macOS (then called OS X) in 2012. In 2020, Apple announced an entirely redesigned version of the macOS Messages app which adds some of the features previously unavailable on the Mac, including location sharing and message effects.

History
iMessage was announced by Scott Forstall at the WWDC 2011 keynote on June 6, 2011. A version of the Messages app for iOS with support for iMessage was included in the iOS 5 update on October 12, 2011. On February 16, 2012, Apple announced that a new Messages app replacing iChat would be part of OS X Mountain Lion. Mountain Lion was released on July 25, 2012.

On October 23, 2012, Apple CEO, Tim Cook announced that Apple device users have sent 300 billion messages using iMessage and that Apple delivers an average of 28,000 messages per second. In February 2016, Eddy Cue announced that the number of iMessages sent per second had grown to 200,000.

In May 2014, a lawsuit was filed against Apple over an issue that, if a user switches from an Apple device to a non-Apple device, messages being delivered to them through iMessage would not reach their destination.  In November 2014 Apple addressed this problem by providing instructions and an online tool to deregister iMessage. A federal court dismissed the suit in Apple's favor.

On March 21, 2016, a group of researchers from Johns Hopkins University published a report in which they demonstrated that an attacker in possession of iMessage ciphertexts could potentially decrypt photos and videos that had been sent via the service. The researchers published their findings after the vulnerability had been patched by Apple.

On June 13, 2016, Apple announced the addition of Apps to iMessage service, accessible via the Messages apps. Apps can create and share content, add stickers, make payments, and more within iMessage conversations without having to switch to standalone apps. One could develop standalone iMessage apps or an extension to existing iOS apps. Publishers can also create standalone stickers apps without writing any code. According to Sensor Tower, as of March 2017 the iMessage App Store features nearly 5,000 Message-enabled apps.

At the WWDC 2020 keynote on June 22, 2020, Apple previewed the next version of its macOS operating system, planned for release in late 2020. Big Sur ships with a redesigned version of Messages with features previously available only on iOS devices, such as message effects, memojis, stickers and location sharing.

Features

iMessage allows users to send texts, documents, photos, videos, contact information, and group messages over the Internet to other iOS or macOS users. iMessage is an alternative to the SMS and MMS messaging for most users with devices running iOS 5 or later. The "Send as SMS" setting under Messages will cause the message to be sent via SMS if the sender does not have an active Internet connection. If the receiver has no Internet connection, the message should be stored on a server until a connection is restored.

iMessage is accessible through the Messages app on an iPhone, iPad or iPod touch running iOS 5 or later, or on a Mac running OS X Mountain Lion or later. Owners of these devices can register one or more email addresses with Apple. Additionally, iPhone owners can register their phone numbers with Apple, provided their carrier is supported. When a message is sent to a mobile number, Messages will check with Apple if the mobile number is set up for iMessage. If it is not, the message will seamlessly transition from iMessage to SMS.

In Messages, the user's sent communication is aligned to the right, with replies from other people on the left. A user can see if the other iMessage user is typing a message. A pale gray ellipsis appears in the text bubble of the other user when a reply is started. It is also possible to start a conversation on one iOS device and continue it on another. On iPhones, green buttons and text bubbles indicate SMS-based communication; on all iOS devices, blue buttons and text bubbles indicate iMessage communication.

All iMessages are encrypted and can be tracked using delivery receipts. If the recipient enables Read Receipts, the sender will be able to see when the recipient has read the message. iMessage also allows users to set up chats with more than two people—a "group chat".

With the launch of iOS 10, users can send messages accompanied by a range of "bubble" or "screen" effects. By holding down the send button with force, the range of effects is surfaced for users to select an effect to be sent to the receiver.

With the launches of iOS 14 and macOS 11 Big Sur, users gain a myriad of features such as the ability to pin individual conversations, mention other users, set an image for group conversations, and send inline replies. Additionally, more of the features from the Messages app on iOS and iPadOS were ported over to their macOS counterpart.

Technology
The iMessage protocol is based on the Apple Push Notification service (APNs)—a proprietary, binary protocol. It sets up a Keep-Alive connection with the Apple servers. Every connection has its own unique code, which acts as an identifier for the route that should be used to send a message to a specific device. The connection is encrypted with TLS using a client-side certificate, that is requested by the device on the activation of iMessage.

Platforms 
iMessage is only available on the Apple operating systems, such as iOS, iPadOS, macOS, and watchOS. Unlike some other messaging apps, it does not have compatibility for Android or Microsoft Windows, and does not have any web access/interface. This means iMessage must be accessed using the app on a device using an Apple operating system.

Unofficial platforms 

iMessage is only officially supported on Apple devices, but many apps exist that forward iMessages to devices that don't run Apple's operating system. The iMessage forwarding apps achieve this by creating an iMessage server on an iOS or macOS device that forwards the messages to a client on any other device, including Android, Windows, and Linux machines. The apps that use an iOS device as a server require the device to be jailbroken.

On November 23, 2012, Beast Soft released the first version of their Remote Messages jailbreak tweak for iOS 5. Remote Messages created an iMessage and SMS server on the iOS device that could be accessed by any other internet enabled device through a web app. Remote Messages had the ability to send any attachments from the client device, as well as sending photos from the iOS server device through the web app. Beast Soft would continue to update Remote Messages through October 2015, supporting all iOS versions from iOS 5 through iOS 9.

On May 3, 2016, an independent open-source project named "PieMessage" was announced by app developer Eric Chee,  consisting of code for OS X that communicates with iMessage and connects to an Android client, allowing the Android client to send and receive messages.

On October 16, 2017, following inactivity from Beast Soft as well as a monetary bounty requesting an iMessage tweak compatible with iOS 10, SparkDev released AirMessage. AirMessage was similar to Remote Messages in that the client was accessed through a web app, however it was more limited in features and did not support sending attachments like Remote Messages previously had. AirMessage also did not add support for any of the new iMessage features of iOS 10, such as tapback reactions or screen effects. AirMessage was updated through June 2020, ending with support for iOS 10 through iOS 13.

On December 10, 2017, 16-year-old developer Roman Scott released weMessage, the first publicly available Android app that forwarded iMessages from a macOS server device to an Android client. Scott released two substantial updates to weMessage, the first of which added iMessage screen effects and bug fixes and the second of which added SMS and MMS support, as well as fixes for contact syncing and server management. On November 11th, 2018, citing his inability to spend more time on the project, Scott open-sourced weMessage.

On February 22, 2019 independent developer Cole Feuer released the AirMessage app for Android. Feuer's AirMessage coincidentally shares a name with SparkDev's iOS tweak, but AirMessage for Android is not in any way related to the AirMessage jailbreak tweak. AirMessage for Android includes code for a server running on OS X Yosemite and higher, and an Android client that runs on Android 6 and higher that can send and receive iMessages. Like weMessage, AirMessage has support for displaying, but not sending, screen effects, and AirMessage also has the ability to display tapback messages and send tapback notifications. In January 2020, Feuer released an update that added SMS and MMS capabilities, as well as web link previews, a photo gallery viewer, and the ability to send a location message.

On August 15, 2020, Ian Welker released SMServer as a free and open-source iOS jailbreak tweak for iOS 13 that uses a web app client. Welker maintains an API on his GitHub page with extensive documentation on how to use the IMCore and ChatKit libraries. SMServer was the first app to support iOS 14 and macOS Big Sur features of iMessage, such as group chat photos and displaying pinned conversations. It was also the first app to support remote sending of tapback messages and subject line text.

On August 21, 2020, Eric Rabil released a video showcasing his upcoming server and web app, MyMessage. MyMessage was the first app to showcase support for sending tapback messages and receiving digital touch and handwritten messages, which Rabil claimed to have achieved by writing code that directly communicated with the iMessage service rather than using AppleScript and reading the database. MyMessage is the only app to run its server on both macOS and iOS, but as of February 2021, only the server component of MyMessage has been released, with the web app frontend still receiving stability development.

From August 2020 through October 2020, a free and open-source project called BlueBubbles was publicly released. BlueBubbles was built to address some of the difficulties and limitations of AirMessage for Android, such as the fact that AirMessage was closed source, required port forwarding, and had no native apps for operating systems such as Windows or Linux. BlueBubbles requires a server running MacOS High Sierra or higher, and like AirMessage, it has some limitations on MacOS Big Sur. In November and December 2020, BlueBubbles added the ability to send and receive typing indicators from the Android app, as well as the ability to send read receipts and tapback messages. (both on Android)

On January 29, 2021, Aziz Hasanain released a free and open-source jailbreak tweak called WebMessage for iOS 12 through iOS 14. Hasanain used Welker's documentation of the IMCore and ChatKit libraries to assist his development of WebMessage, which is the first jailbreak tweak to use a downloaded app as the client instead of a web app.

Reception

On November 12, 2012, Chetan Sharma, a technology and strategy consulting firm, published the US Mobile Data Market Update Q3 2012, noting the decline of text messaging in the United States, and suggested the decline may be attributed to Americans using alternative free messaging services such as iMessage.

In 2017, Google announced they would compete with iMessage with their own messaging service, Android Messaging.

Security and privacy 
On November 4, 2014, the Electronic Frontier Foundation (EFF) listed iMessage on its "Secure Messaging Scorecard", giving it a score of 5 out of 7 points. It received points for having communications encrypted in transit, having communications encrypted with keys the provider doesn't have access to (end-to-end encryption), having past communications secure if the keys are stolen (forward secrecy), having their security designs well-documented, and having a recent independent security audit. It missed points because users can not verify contacts' identities and because the source code is not open to independent review. In September 2015, Matthew Green noted that, because iMessage does not display key fingerprints for out-of-band verification, users are unable to verify that a man-in-the-middle attack has not occurred. The post also noted that iMessage uses RSA key exchange. This means that, as opposed to what EFF's scorecard claims, iMessage does not feature forward secrecy.

On August 7, 2019, researchers from Project Zero presented 6 “interaction-less” exploits in iMessage that could be used to take over control of a user's device. These six exploits have been fixed in iOS 12.4, released on July 22, 2019, however there are still some undisclosed exploits which will be patched in a future update.

Project Pegasus revelations in July 2021 found the software used iMessage exploits.

See also

FaceTime, Apple's videotelephony service which also uses APNs

Signal (software), an end-to-end encrypted messenger with forward secrecy, available for the same platforms on which iMessage runs
Threema
WhatsApp
Facebook Messenger
WeChat
Line
Skype
Snapchat

References

Further reading

 

Instant messaging protocols