2017-08-25 8 views
0

最近の同僚とのディスカッションでは、Verising、Comodoなどの既知のCAからのCA署名付きTLS証明書のデフォルトのAndroidのシステム検証を行うという意味を分析しました。 OSが侵害されている可能性があり(マルウェアやハッキングに根ざしている可能性があります)、CA証明書ライブラリ全体が変更され、実際のCAによって署名されていない証明書が検証されます。AndroidのアプリケーションでHTTPSのCA署名の確認を行う

可能な提案された解決策は、アプリケーション自体に証明書検証を実装することです(アプリケーション開発者が彼が使用する証明書を知っていると考えると理論的にはもっと狭いでしょう)。アプリに検証をさせますこれにより、システムのCA証明書に依存することなく、実際の検証が可能になります。

私はまだこれを不正に実装することに心配していますが、アプリに検証をさせるのはどのくらい賢いですか?

答えて

1

システムが侵害された場合、侵害されたシステムと同等以下の権限で実行されているアプリケーションは、その日を保存できません。基本的には、自分自身でTLS検証を実装するだけでなく、完全なTLSスタックを実装する必要があるだけでなく、システム上で暗号化ライブラリが変更され、攻撃者にプレーンテキストを取得するためのバックドアが提供される可能性があります。さらに、アプリケーションがハイジャックされておらず、プレーンテキスト情報が暗号化処理の外、つまり暗号化前と復号化後に盗まれていることを確認する必要があります。しかし、攻撃者がシステムを完全に侵害した場合、これを止めることはできません。

かなり複雑なTLSスタックを独自に実装しているので、新しいバグを導入する可能性が高いため、アプリケーションが侵害されたシステムだけでなく他のシステムにも不安定になる可能性があります。

+0

ええ、私もこれに向かって結論を終えました。私が検討したもう一つの選択肢は、Androids SSLSocketFactoryを使用し、そこに既知のCAルート証明書を追加することです(証明書をアプリケーションのバイナリに埋め込む)。 – Larcho

関連する問題