一時間半に及ぶ長いもので、字幕つけるかどうかわかりませんが、とりあえず重要な点のみの要約です。
かなりの部分は、AOSP(Android OpenSource Project)のセキュリティバグ修正等の貢献、Googleの動きについて話してますが、そこは省略してます。
Pixelのみサポートの理由
Pixelは、ハードウェア的なキングであると、Googleはみなしており、唯一の競争相手はiPhoneのみです。いくつかの点では勝っています。我々がPixelを使う理由は、Android全体を見回して突出しているからです。
そして、代替OSに対するファームウェアレベルの適切なサポートを持ちます。つまり、Google以外の独自のOSの起動を許しながら、スマフォの提供するすべてのセキュリティ機能を維持します。つまり、検証ブートです。
また、ファームウェアレベルのMACアドレスランダム化を持ち、Wifiプライバシー機能もです。
訳注:MACアドレスのランダム化
デフォルトは、per-connection randomized MAC。
いったん切断して再接続すると、MACアドレスが変更されている。
さらに、Titan Mチップがあります。これはハードウェア的な強固なセキュリティ機能です。たとえ、カバーを開けてTitan Mチップを物理的にはずしても、中身を取り出せません。可能性としては、モバイルで入手できるベストのセキュリティ構成要素です。
そしてまた、Insider Attack Resistance機能があります。悪意の従業員や、Googleが裁判所命令を受けたとしても不可能です。
検証ブートが重要な理由
検証ブートはいかなるAndroid OSでもベースラインです。Pixelはこの機能を(他の)OSに対して維持するんです。攻撃者が物理的にあなたのスマフォを入手してOSを変更するかもしれない、という人もいますが、確かにそれもあります。これは脅威の一つに過ぎません。
もう一つの大きな脅威としては、永続性です。例えば、あなたのスマフォに秘密のマルウェアを(OSに)インストールするとします。これを再起動を超えて永続させるのは難しいのです。OSはリードオンリーで、完全にブートローダーに検証されるからです。
あるいは、攻撃者がOSを以前の脆弱性のあるバージョンに戻し、その脆弱性を使って攻撃しようとしても、ブートローダーはそれを許さないのです。
そして、ブートローダをアンロックあるいはロックすると、データは消えてしまいます。
プロファイル機能の拡張
GrapheneOSは、元々のAndroidセキュリティ機能を拡張しています。
Androidには複数プロファイル機能が長らくありましたが、これを拡張しており、すべてのプロファイルについて、「セッション終了」ボタンがあります。この意味としては、ボタンを押せば、そのプロファイルが完全にRAMから削除されるということです(プロファイル自体が消されるのではなく)。それぞれのプロファイルはそれ自身のウィーバースロットを持ち、この意味としては、それ自体の暗号化キーを持つということです。各プロファイルのそれぞれのパスコードを持てます。
そして、通常のAndroidでは4つまでのプロファイル(間違いであれば言ってください)ですが、これを16にしてます。非常にフレキシブルです。誰もが使うわけではないでしょうけれども。
ですから、一つのプロファイルには、Play Serviceに依存するアプリのみを閉じ込めたり、もう一つにプロファイルは(重要な)ID専用としたり、もう一つは現実的なSNS用とし、もう一つはネット上でのエイリアス(別の名前、匿名)としたりですね。これは、スマフォ上で行うことを「区分化」するために有用かと思います。
Wifiタイムアウト
例えば、私はWifiタイムアウト機能をONにしてます。例えば、スタバのWifiに接続し、立ち去った後で何分かすると、自動的にWifiをOFFにします。これにより、Attack Surface Reducationができ、Wifiによるリモートコード実行の危険を劇的に減らせます。(訳注:実際にどういう仕組みなのか不明)
これはほとんどの人が考慮するようなものでは無いですが。
自動リブートタイマー
例えば、画面アンロック無しで4時間経過したとします。その間スマフォを使わなかったのです。その後で自動リブートします。この意味としては、リブートの後ではメモリ上のすべてのデータは消えるわけです。つまり、リブートの後では、すべてのデータはTitan Mによって保護されたものになるわけです。
訳注:設定>セキュリティ
例えばあなたが抗議者で、警察があなたのスマフォを取り上げたとします。抗議中にはスマフォを使いませんでしたから、時間切れになり、自動で再起動します。
Network Permission
GrapheneOSのネット権限をOFFにすると、アプリのネットアクセスを完全に遮断します。アプリベースのファイアウォールと言えます。全く漏洩はありません。漏洩しえないのです。
ただし、これは、アプリ同士のコニュニケーションを禁止するものではありません。もし、アプリ同士がそれに合意している場合ですね。例えば、Google Play Storeがすべてのアプリとのやりとりをするよう許可した場合、アプリはそこから通知を受けられるといったものです。
Google Play Storeについて
GrapheneOSは、Sandboxed Google Play Store機能を持ちます。この意味としては、完全なGoogle Playアプリをインストールでき、起動させることができることです。そのAPIのほとんどすべてが機能します。(しかし)それは、何の特権も得られず、通常のサンドボックス内で動くのです。他のアプリと同じ立場です。そして、ユーザは、それに対するすべての権限をコントロールできます。
これを実現した方法としては、GrapheneOSの中にSHIM(?)を入れたことです。この意味としては、例えば、電車の経路を変えることです。ですから、A駅からB駅に行くのではなく。。。Bが何らかの特権的統合だとしますが、そうではなく、いったんC駅に行ってからB駅に行かせるんです。あるいは、B駅に行かせるのではなく、D駅に行かせます。
そして、普通のアプリに特権的APIを使わせるのではなく、それを置き換えるか、あるいはダミーのデータを戻してやります。
例えば、ストックOS上のPlayサービスはスマフォのシリアル番号が得られますが、我々のしたこととしては、「このスマフォにシリアル番号は無い」と返答することです。ですから、シリアル番号を得られません。そういった単純なことです。
あるいは、ストックOS上のPlayサービスはIMEI(スマフォの固有番号)を得られますが、GrapheneOSでは、それはできません。システムとの深い統合はなく、特別な権限もないのです。単に通常のアプリサンドボックス内で動くだけです。
ですから、その権限はユーザが完全にコントロールできますし、IMEIを取得することも、システム深くを覗くこともできません。
インタビュアー:私はクレジットカードでPixelを買い、連中は私のIMEIを知ってるわけですが、それで私がGrapheneOSを動かした場合、連中は結びつけることができるでしょうか?
不可能です。GrapheneOSの動作中に、連中はIMEIを得ることはできませんから。Android 10以降は、全アプリがIMEIを取得できないようになってます。Sandboxed Google Playにより、Playサービスは通常のアプリであり、何の特別なアクセスもできないからです。
インタビュアー:すると、私の名前に結びつく、何のIDも得られないのですね?Googleだろうが、他のアプリだろうが、GrapheneOS上では。
そうです。
インタビュアー:私のスマフォは匿名とみなして良いわけですね?
ある意味はそうです。
携帯キャリアの危険性
ただし、携帯キャリアはスマフォのIMEIやIMSI(SIM固有番号)を取得できます。ですから、例えば、抗議デモへの参加の際には機内モードにすることです。そうすれば、あなたの参加はわかりません。
インタビュアー:(その際は)Wifiオンリーのデバイスとして使えますよね。
そうです。
インタビュアー:つまり、ここでは携帯キャリアのみが大きな脅威、大きな穴と言えるわけですね?
そうです。私の考えるところでは、携帯ネットワークは常に非安全です。これは、携帯ネットワークの本来的な性質だと思います。何かしらのクレイジーな開発が行われない限り、私の人生では(安全になるのを)見ることができないでしょう。
人々は本来的に携帯ネットワークの非安全性を受け入れねばならないんです。そして予見できる未来としては、常に非安全ということです。TCPであろうが、携帯ネットワークであろうが、常に信頼してはならないんです。
インタビュアー:機内モードが私にとってベストですね。
セキュリティアップデートの切れたデバイスをどうすべきか?
ユーザには心に留めてほしいのですが、数年間セキュリティアップデートの無いWindows XPパソコンは使わないことです。
しかし、スマフォについては、それほど重要ではないというのが、人々の合意になってますが、まさに同じことなんです。いったんメーカーがサポートをやめたら、セキュリティのフルサポートは無いんです。ファームウェアのセキュリティアップデートはメーカーに依存するかありません。
時間が経つにつれて、より多くの脆弱性が公になってくるんです。これを人々はわかってません。