Appleはかつて、開発者向けのWWDC基調講演でセキュリティとプライバシーに重点を置くことはほとんどありませんでした。しかし、ここ数年、Appleは攻撃者や覗き見からユーザーを守るための新しいオプションを一貫して強調してきました。しかしながら、複数のOSと対応する開発者ツールの豊富な進歩をわずか2時間で網羅したため、月曜日の基調講演ではセキュリティに関する詳細は乏しいものでした。
それでも、Appleのプラットフォームに少しでも(いや、かなり)精通していれば、MacとiOSのセキュリティの将来が少しは明確になるでしょう。そして、次世代製品においては「拡張」こそが(セキュリティの)鍵となることは明らかです。
iOS 8: Touch IDとサンドボックスをこじ開ける
iPhone 5sにTouch ID指紋認証リーダーが搭載されたことで、ユーザーはパスワードをほとんど入力せずに、強力なパスワードを設定できるようになりました。Appleによると、Touch ID搭載以前にパスコードを有効にしていたiPhoneユーザーは半数未満でした。iPhone 5sでは、実に83%ものユーザーがこの重要な安全ベルトを使用しています。
Touch IDは興味深いアーキテクチャを採用しています。現在、iPhoneを初めて起動したとき、または再起動した後にパスワードを入力すると、そのパスワードはA7プロセッサの特別なSecure Enclave領域に保存されます。その後、指紋でロックを解除し、このパスワードをオペレーティングシステムの他の部分に公開します。パスワードが不要になるわけではありませんが、パスワードの使用がほぼ簡単になります。
Touch ID をサードパーティ製アプリに拡張すると、ユーザーはより多くの設定で強力なパスワードを使用できるようになります。
iOS 8では、Appleはこのモデルをサードパーティ製アプリケーションの認証情報にも拡張します。認証情報をiOSキーチェーンに保存するアプリは、Touch IDを使ってユーザーを認証できるようになります。これは、銀行や小売店がパスワードの代わりにパスワードを認証に使用できると誤解される可能性が高いでしょう。しかし、Touch IDは、デバイスに登録された指紋でパスワードを解除するまで、アプリケーションがキーチェーンにパスワードをロックして保管することを可能にします。
違いは微妙です。パスワードは必要ですが、毎回入力する必要がなくなるというだけです。また、APIによってアプリ開発者は、Touch IDが使用できるタイミングや、パスワードの再入力が必要となるタイミングについて、一定の制限を設定できるようになるのではないかと考えています。これにより、ユーザビリティが向上し、アプリケーションのセキュリティも向上します。Touch ID対応アプリは、ユーザーに毎回パスワードの入力を求めるのではなく、実質的に毎回指紋認証を求めることになります。
これにより、現在使用時に毎回パスワードが必要なアプリ(銀行アプリなど)のセキュリティが向上するわけではありませんが、ユーザーがパスワードを常に入力する必要がなくなるとわかれば、より適切なパスワードを有効にする可能性は高まります。現在パスワードをキャッシュしている他のアプリにとっては、指紋が非常に便利なため、ユーザーを毎回認証することに抵抗がなくなるため、非常に大きなメリットとなる可能性があります。
また、多くの親がデバイスから子供の指紋を削除するきっかけになるかもしれない。
どこへの拡張ですか?
もう1つの主要なセキュリティ強化の詳細はやや不明瞭です。Appleは、拡張機能と呼ばれるものを通じてiOSアプリ間の直接通信を開放します。Appleは長年、アプリサンドボックスのセキュリティと整合性を維持するために、アプリ間通信を制限してきました。これは一部の開発者を苛立たせていますが、サンドボックスは、1つのアプリが侵害されてデバイスの他の領域に侵入するリスクを制限する強力なセキュリティツールです。
基調講演で明らかになった限られた情報に基づくと、iOS 8開発者はアプリを外部通信に開放できるようになるようです。この拡張機能は、サンドボックスの端にある小さな受容体のようなもので、メッセージを受信して処理を行います。拡張機能はiOSに登録され、iOSはアプリ間の通信を仲介します。
拡張機能は、通信を無制限に開放するのではなく、サンドボックスのルールに従うようです。デバイス上でネットワーク通信などの新しい操作を行うリクエストは、引き続きユーザーの承認が必要です(iOSで現在カメラやマイクにアクセスするためのプロンプトなど)。問題は、その境界線がどこになるかです。一つの選択肢としては、異なるアプリケーション間の初回リクエストごとに承認を求めることが挙げられます。基調講演のデモを見る限り、そこまで細かくはならないと思われますが、ベータテスト中にこの点も大きく進化すると予想しています。
明らかなのは、iOSがアプリケーション拡張機能間の仲介役を務めているということです。アプリ同士が直接通信したり(潜在的に)攻撃したりすることがないため、その過程でかなりのセキュリティが確保されると考えられます。iOSのプライバシーコントロールを維持するということは、(Androidで発生したように)新しいキーボードの代替品が、すべてのキー入力を黒マスクをかぶった攻撃者に渡すこともないことを意味します。
iOS 8には、他にも多くのセキュリティ上の疑問が浮上しますが、それらについて私が十分な情報に基づいた判断をする根拠は全くありません。iOSやサードパーティのクラウドサービスとのファイル共有ストレージ、Continuityのセキュリティモデル、拡張データ保護などの新しいエンタープライズ機能の詳細、そしていつもの目立たない機能強化など、すべて未定です。
ヨセミテで急登
AppleはOS X 10.10のセキュリティ変更についてあまり言及していません。これは主に、完全なデスクトップOSとiOSの根本的な違いによるものです。アプリは既にサンドボックス化されていても相互に通信でき、より深いレベルでOSにフックできます。セキュリティ強化の大部分はOS X内部にあると私は考えています。
Apple の新しいプログラミング言語である Swift はセキュリティの向上に役立つ可能性があるが、そのアプリが広くオープンなインターネットに接続されるまでは分からない。
長期的な影響を持つ進歩の一つは、Swiftプログラミング言語の導入です。私自身、パートタイムのプログラマー(というか、ちょっと手を出している程度)として、意図せず攻撃者への扉を開いてしまう可能性のある小さなエラーをすべて排除した安全な言語を構築するという難しさを決して軽視していません。Appleは、Swiftはバッファオーバーフローをはじめとする多くの言語を悩ませているセキュリティ上の問題を解消していると述べています。これは困難な課題であり、他の現代言語では同様の取り組みが成功を収めている一方で、多くの失敗も見てきました。
Swift のセキュリティ モデルがどの程度機能するかは、インターネット上での公開討論によってのみわかるが、Objective-C よりも改善されている可能性が高く、時間の経過とともに、OS X と iOS の両方でアプリのセキュリティ強化に役立つ可能性がある。
Safariは、ブラウザ全体をプライベートモードにすることなくプライベートブラウジングウィンドウを開くことができるため、よりプライバシー保護の利便性が向上しています。これはGoogle Chromeのシークレットモードと同じで、Safariの現在のオン/オフ切り替えモードよりもはるかに使いやすいものです。プライバシー制限がどれほど厳格に適用されるのかも興味深い点です。厄介なウェブ広告主は、ほとんどのプライバシー制御を巧妙に回避しています。
余談ですが、プライバシーに配慮したDuckDuckGo検索エンジンがアドレスバーから直接使えるようになるのは嬉しいですね。プライバシーを重視する人にとっては嬉しい機能ですね。
AppleはOS Xのセキュリティとプライバシーについてこれ以上言及していませんが、Mac OSの他のバージョンでは、これまで公表されていなかった様々なセキュリティとプライバシーの制御機能が追加されています。数ヶ月かけて探し出せば、もっと多くの機能が見つかるはずです。
iOS 8とYosemiteは、セキュリティとプライバシーに関する新たな機能の追加というよりも、アプリエコシステムのより奥深くまでそれらを開放し、拡張することに重点を置いているようです。Appleがオペレーティングシステム自体だけでなく、開発者向けのセキュリティを強化しれば強化するほど、私たちのデバイスはインターネットのダークサイドに対抗できるようになるでしょう。