IMessage
iMessage(アイメッセージ)は、Appleが開発しているインスタントメッセージである。Appleのプラットフォーム(iOS、iPadOS、macOS、watchOS)でのみ機能する。
iMessageの主な機能は、Appleを含む送受信者以外に読まれないエンドツーエンド暗号化されたテキスト、書類、写真、ビデオ、オーディオメッセージ、位置情報、ステッカーの送信などの送受信であり、対応するすべてのプラットフォームで利用できる。iOSおよびiPadOSでは、iMessageの機能を拡張することができるiMessageのApp Storeがある。2011年にiOS 5で登場したiMessageは、2012年にOS X(現macOS)にも搭載された。
iMessageは、2011年6月6日に開催されたAppleのWWDC 2011の基調講演で、スコット・フォーストールによって発表された。iMessageに対応したiOSのメッセージAppのバージョンは、同年10月12日に配信が開始されたiOS 5に搭載された。2012年2月16日、AppleはiMessagesに対応したOS X(現macOS)の「メッセージ」AppをiChatの後継としてOS X Mountain Lionの一部になることを発表した。メッセージAppを搭載したMountain Lionは同年7月25日に提供を開始した。
2012年10月23日、Appleの最高経営責任者(CEO)であるティム・クックは、Apple端末の利用者がiMessageを使って3,000億件のメッセージを送信し、1秒間に平均28,000件のメッセージを送受信していると発表した。2016年2月、Appleのインターネットソフトウェア・サービス上級副社長であるエディ・キューは、1秒間に送信されるiMessageの数が20万件になったことを発表した。
2014年5月、Apple端末からApple以外の端末に乗り換えた場合、iMessageで送信しているメッセージが宛先に届かないという問題で、Appleが提訴された。同年11月、Appleはこの問題に対処するため、iMessageの登録を解除する手順とオンラインツールを提供した。アメリカ合衆国連邦裁判所は、この訴訟をAppleに有利な形で却下した。
2016年3月21日、ジョンズ・ホプキンズ大学の研究者グループは、iMessageの暗号文を手に入れた攻撃者が、同サービスで送信された写真や動画を解読できる可能性があることを実証する報告書を発表した。この研究者らは、Appleがこの脆弱性にパッチを当てた後に研究結果を発表した。
2016年6月13日、AppleはiMessageにAppを追加できることを発表した。会話から離れることなく、iMessageでコンテンツの作成や共有、ステッカーの追加、ゲーム、支払いなどを行うことができる。独自のiMessage Appや、既存のiOS Appの拡張として開発することが可能になっており、コードを書かずに独自のステッカーAppを作成することも可能になっている。Sensor Towerによると、2017年3月現在、iMessage App Storeには約5,000のメッセージ対応Appが掲載されている。
Appleは、2020年6月22日に開催されたWWDC 2020の基調講演において、macOS Big Surを発表した。これまでiOS端末でしか利用できなかったメッセージエフェクトや位置情報の共有などの機能を搭載した、デザインを一新したメッセージAppを搭載した。
iMessageは、テキスト、書類、写真、ビデオ、オーディオメッセージ、グループメッセージなどを、Wi-Fiやモバイルデータ通信で他のiOSまたはmacOSユーザーに送信することができる。「メッセージ」Appで「SMSとして送信」を設定すると、送信者がインターネット接続を持っていない場合、SMSとして送信される。受信者がインターネットに接続していない場合は、接続が回復するまでメッセージをサーバーに保存している。
iMessageは、iOS 5以降を搭載したiPhone、iPad、iPod touch、またはOS X Mountain Lion以降を搭載したMacのメッセージAppから利用できる。これらの端末を所有している場合、1つまたは複数のメールアドレスをiMessageに登録することができる。また、iPhoneの通信事業者が対応している場合、電話番号をiMessageに登録することもできる。携帯電話番号にメッセージを送信する際、メッセージAppは、その携帯電話番号がiMessageに登録されているかを確認し、登録されていない場合は、SMSとして送信される。
メッセージAppでは、送信したメッセージが青い吹き出しで右に整列し、受信したメッセージがグレーの吹き出しで左に整列する。送信側の返信が開始されると、受信側のにグレーの吹き出しにリーダー記号が表示される。iMessagesで送信されたメッセージはすべてエンドツーエンド暗号化され、送信確認を活用して追跡できる。また、既読した時間を表示させる既読機能も有効化できる。
iOS 10では、「吹き出しエフェクト」や「フルスクリーンエフェクト」といった様々なアニメーション効果をつけてメッセージを送る機能を搭載した。送信ボタンを長押しするとエフェクトの種類が表示され、受信者に送信するエフェクトを選択できる。
iOS 14とmacOS 11 Big Surのリリースにより、個々の会話のピン留め、特定のメッセージの返信、メンション機能、グループ会話に画像の設定などの機能を搭載した。また、iOSおよびiPadOSの多くのメッセージAppの機能が、macOSのメッセージAppに移植された。
iMessageのプロトコルは、独自のバイナリ転送プロトコルであるApple Push Notification Service(APN)を多用している。AppleのサーバーとKeep-Aliveを設定しており、接続ごとに特定の端末へのメッセージを送る時に使用される経路を認証する独自のデバイストークンを取得している。接続はiMessageのアクティベーション上での端末がリクエストしたクライアントサイドの証明書を使ったTLSで暗号化される。メッセージはエンドツーエンド暗号化によって保護されているため、送受信者以外はアクセスができない仕様になっている。
Appleの白書によれば、iMessageを有効にした場合、端末上でRSA1280ビット、NIST P-256、EC256ビットの鍵を使用している暗号化の鍵と楕円曲線DSA(ECDSA)256ビットを使用している署名の鍵のペアを生成している。秘密鍵は端末に保存、公開鍵はApple Identity Service(IDS)に送信され、端末の電話番号やメールアドレス、APNアドレスと関連付けられる。また、iMessageは1つのアカウントで複数の端末から使用できるため、新たな端末を追加すると、その端末の暗号化・署名用公開鍵、APNアドレス、および関連する電話番号がディレクトリ・サービスに追加される。その際、既に登録されていた端末には警告メッセージが表示されることになっている。
送信者が受信者の電話番号やメールアドレスを入力すると、Apple Identity Service(IDS)から受信端末の公開鍵とAPNアドレスを取得、または名前を入力すると送信者の連絡先Appから関連する電話番号やメールアドレスを取得した後にIDSから受信端末の公開鍵とAPNアドレスを取得している。受信者の端末ごとにメッセージは暗号化され、公開暗号鍵と署名鍵をIDSから取得している。
送信側の端末は、受信側の端末ごとにランダムに生成された88ビットの値とHMAC-SHA256の鍵が送受信者の公開鍵とプレーンテキストからなる40ビットの値を構成し、連結すると128ビットの鍵となる。これを用いてカウンターモード(CTR)のAESでメッセージを暗号化している。40ビットの値は、受信側が復号されたプレーンテキストの整合性を確認するために使用され、メッセージ単位のAES鍵はRSA-OAEPを用いて受信端末の公開鍵に暗号化される。その後、暗号化されたメッセージと暗号化されたメッセージ鍵の組み合わせをSHA-1でハッシュ化し、送信端末の秘密署名鍵を用いてECDSAで署名する仕組みとなっている。
iOS 13以降およびiPadOS 13.1以降では、RSA暗号の代わりに楕円曲線統合暗号化スキーム(ECIES)暗号を使用することが可能になっている。これにより、受信端末ごとに1つずつ、暗号化されたメッセージテキスト、メッセージ鍵、および送信者のデジタル署名からなるメッセージが生成される。タイムスタンプやAPNのルーティングなどのメタデータは暗号化されず、APNとの通信は、前方秘匿のTLSチャネルを用いて暗号化される。メッセージのテキストが長すぎる場合や、写真などの添付ファイルが含まれている場合、CTRモードのAESを用いてランダムに生成された256ビットの鍵で暗号化され、AppleのクラウドサービスであるiCloudにアップロードされる。添付ファイルのAES鍵、Uniform Resource Identifier(URI)、暗号化されたSHA-1ハッシュが、iMessageの暗号化によって受信側に送信される。グループメッセージの場合、各受信側の端末に上記の過程が繰り返される。
受信側では、各端末がAPNからメッセージのコピーを受信し、必要に応じてiCloudから添付ファイルを受信する仕組みになっている。他のプッシュ通知と同様にメッセージは配信されるとAPNから削除されるが、受信端末がオフライン状態の場合、メッセージは待ち行列に入り、最大30日間保存される。
2012年11月12日、技術・戦略コンサルティング会社のチェタン・シャルマは、「2012年第3四半期の米国モバイルデータ市場の動向(US Mobile Data Market Update Q3 2012)」を発表し、アメリカ合衆国におけるSMS/MMSの利用の減少を指摘し、iMessageなどの代替となる無料メッセージングサービスを利用していることが原因ではないかと述べた。
2014年11月4日、電子フロンティア財団(EFF)は、iMessageを「Secure Messaging Scorecard」に掲載し、7点満点中5点の評価を与えた。
通信が送受信中に暗号化されていること、プロバイダーがアクセスできない鍵で通信が暗号化されていること(エンドツーエンド暗号化)、鍵が盗まれても過去の通信が安全であること(前方秘匿性)、セキュリティ設計が文書化されていること、最近の独立したセキュリティ監査を受けたことなどが評価された。
一方で、送信者が相手の身元を確認できないことや、ソースコードが第三者によるレビューを受けられないことなどが、評価の対象外となった。
2015年9月、暗号技術者およびセキュリティ技術者であるマシュー・グリーンは、iMessageが帯域外検証のための指紋を表示しないため、中間者攻撃が発生していないことを利用者が確認できないと指摘した。この投稿では、iMessageがRSA鍵交換を使用していることも指摘しており、EFFが主張しているのとは逆に、iMessageは前方秘匿性機能を備えていないと指摘している。