証明書はデフォルトのTrust Storeに対して検証されていますか? -- security フィールド と certificates フィールド と https フィールド android 関連 問題

How are certs validated against default trust store?


1
vote

問題

日本語

いくつかの読みを通して、私はHTTPSがAndroidアプリでどのように機能するか、特に証明書の検証がどのようにしてどのように機能するかについて、かなり大まかな理解しています。この理解を得たために言及されたリソースのいくつかは次のとおりです。

Android

の証明書の検証

href="http://developer.android.com/training/articles/security-ssl.html" rel="nofollow"> AndroidアプリのSSL

SSLの検証 - Android

私の理解に従って、私はAppsが検証できると大まかに次のように言うことができます:

  1. Androidが提供するデフォルトの信頼ストア - これは、デフォルトで、それ故、ブラウザとアプリ自体によってデフォルトであるすべてのCA証明書のリストを持っています。これは設定でも見られるCASの同じリストです。セキュリティ - >信頼できる資格情報(JB +)またはシステム/ etc / security / cacerts.bks(Android< JB)
  2. または

    1. 開発者は自分のカスタムキーストアを定義し、それらのカスタムトラストストアを信頼するためにSSLSocketFactoryを作成することを選択できます。
    2. 私の質問は上記の最初のケースを中心に回転します。私がそれについて読むことができる場所のほとんどで、私はそれがデフォルトの信頼ストアに対する証明書を検証するために、開発者は明示的に何かをする必要はないと述べたことを発見しました。 HTTPSエンドポイントをヒットして、HttpSurlConnectionオブジェクトが返された状態で再生します。

      証明書検証自体は内部的に(デフォルト)Android OSによる世話をしました。

      今、私は上記(強調表示されている)がどのように完了したかを知りたいですか? API / Internal Methode / Androidが実際にこの証明書検証を実行するように呼び出すという他のものは何ですか?この情報はどこにありますか?私が考えることができる1つのアプローチは、Androidのソース自体を通過することですが、コードの一部がそれをしているのは手がかりを持っていません(そしてそれは多くの努力になるでしょう)。

      アドバイスしてください。

英語

Through some reading, I have a fairly rough understanding about how https works with Android apps, especially how are certificate validations done. Some of the resources that I referred to for gaining this understanding would be :

Validating certs in Android

SSL in Android apps

Validating SSL - Android

As per my understanding, I could roughly say that apps can validate against :

  1. The default Trust Store that Android provides - which has a list of all the CA certificates that are by default trusted by the OS and hence by the browser and the app itself. This is the same list of CAs that can also be seen in Settings -> Security -> Trusted credentials (in JB+) or system/etc/security/cacerts.bks (in Android < JB)

OR

  1. Developers can choose to define their own custom keystores and make an SSLSocketFactory with them to trust their custom trust store.

My question revolves around the first case described above. In most of the places that I could read about it, I discovered it mentioned that for validating the certificates against the default Trust Store, the developer does not really need to do anything explicitly. Just hit the https end point and play on with the HttpsUrlConnection object returned.

The certificate validation itself is internally (by default) taken care of by Android OS.

Now I would like to know how exactly is the above (highlighted) done ? What is the API/internal method/anything else that Android actually calls to do this certificate validation ? Where can I find this information ? One approach I can think of is to go through the Android source itself, but I have no clue which part of the code does it (and plus it would be a lot of efforts).

Please advice.

        

回答リスト


関連する質問

21  ユーザー証明書をインストールする方法  ( How do i install a user certificate ) 
私はユーザー証明書に署名する独自のルート証明書を持っています。 ルートCAによって署名されているユーザー証明書を使用しているサイトを持っています。 このサイトをiOSとWindowsで作業することができましたが、Android(4.2.2)から働くことはできま...

0  複数のCA CERTを含むPEMファイルをインポートします  ( Import pem file containing multiple ca certs ) 
Samsung S4を使用して、Android 5.0.1を根付かない。 最近、Android 5.0.1のChromeブラウザがHTTPSが安全ではない少なくとも2つのWebサイトを見つけました。これは、電話機にRoot CA CERがインストールされてい...

18  自己署名証明書のインストールクレーム成功は、Androidが必要でないかのように機能する  ( Self signed certificate install claims success but android acts as if cert isn ) 
私は私のWebサーバー用の自己署名証明書をAndroid 4.3にインストールしようとしています。 SDカードのルートに.CRTファイルがあります(これは実際にはスロットにSDカードがないのでエミュレートされます)。 証明書をインストールするには、設定 - &...

0  SSL証明書を受け入れることができません(k9mail)  ( Unable to accept ssl certificate k9mail ) 
4.2デバイス(Stock ROMとCRAPが削除されたRouted Sony Xperia Mini Pro)にK9Mailを設定しており、IMAP SSL証明書が有効ではありません。 これは自己署名証明書の両方で、そしてコモド署名証明書を備えた別のIMA...

0  このページからのトラフィックを監視できなかった理由  ( Why i couldnt monitor traffic from this page ) 
キャプチャログを開いたとき、最初にHTTPのみを使用してそれを訪問しようとしたときには、そのセキュリティ警告を受けると、そのセキュリティ警告を受けると、そのページから何も起こりません。 私はルートデバッグ証明書を使用してインストールされていますが httpca...

4  TLSのAndroidサポート  ( Android support for tls ) 
TLS1.1およびTLS1.2はAPIレベル16からAPIレベル20からサポートされていることを発見しました。これはAndroid 4.1(サポート)とAndroid 4.4W(WEARABLE)またはAndroid 5.0(ON)に対応しています。デフォル...

0  Androidで使用する証明書を変換する方法  ( How to convert certificate to be used in android ) 
私は次のコードを使用して公開鍵ペア(CAが真)を生成しました: <事前> <コード> openssl x509 -inform PEM -outform DER -in ... -out ... 2 今、私はAndroidで作業している証明書を取得する必...

0  Pandigital Nock - 証明書ストアを置き換える/更新する方法  ( Pandigital novel how to replace update certificate store ) 
Diginotar Fiascoの後、GuardianプロジェクトはCacertmanアプリケーションをユーザーが根ざしたデバイスで自分の証明書ストアを変更できるようにするCacertmanアプリケーションを出します。 Android 2.0では機能しませ...

1  HTTPSプロキシを設定します  ( Setting up an https proxy ) 
Proxifierを使用するPC上のHTTPSプロキシに接続するには、Androidスマートフォンでも同様に接続するために何をすればいいですか? 私のAndroid版は4.3、ゼリー・ビーンズです。 ...

5  クライアント証明書を覚え/キャッシュする方法  ( How to remember cache a client certificate ) 
認証方式の一部としてクライアント証明書とHTTPS接続を必要とするWebアプリケーションをサポートしています。ほとんどのブラウザ(デスクトップクライアント、iOS Safariなど)でクライアント証明書の入力を求められ、有効なものを選択した場合、ブラウザは将来...

1  証明書はデフォルトのTrust Storeに対して検証されていますか?  ( How are certs validated against default trust store ) 
いくつかの読みを通して、私はHTTPSがAndroidアプリでどのように機能するか、特に証明書の検証がどのようにしてどのように機能するかについて、かなり大まかな理解しています。この理解を得たために言及されたリソースのいくつかは次のとおりです。 Androi...

0  TrustStoreへの証明書をインストールした後、HTTPSサイトは私のAndroidにロードされなくなりました  ( Https sites no longer load on my android after installing cert to truststore ) 
私は根ざしたAndroid 4.3 Jellybeanを持っています。私は何かをテストし、Charlesプロキシのために証明書をインストールしようとしていたので、私はいくつかのSSLトラフィックを盗聴することができました。私はチャールズの証明書を/システム/ ...

21  デフォルトでは、信頼できるルートCAがAndroidに含まれていますか?  ( What trusted root cas are included in android by default ) 
OSまたはデフォルトのブラウザに含まれる信頼できるルートCAをリストした中心的なAndroidリソースの一部はない( に関する関連質問、それでは、デフォルトで私の電話に含まれているものを見つけることができますか? 侵害されたルート証明書の数と、最後の数年間に...

7  AndroidはWiFiルートCASをどのように処理しますか?彼らはセキュリティ上の関心事であるべきですか?  ( How does android handle wifi root cas should they be a security concern ) 
私の大学では、WiFiネットワークに接続するためのカスタムルートCAをインストールする必要があります。私の携帯電話にインストールすると、「WiFi」または「VPNとApps」を指定できます。私はWiFiを選び、正常に接続できました。 しかし、私はこの証明書のセ...

1  変更されたAPKファイルをインストールできません  ( Unable to install a modified apk file ) 
Google PlayからダウンロードしたAndroidアプリのHTTPSトラフィックを監視したい。 このアプリは、Android N以降でのみ実行できます。 だから私はCharles Proxyを使い、このドキュメント APKファイルを変更します。 これが...

1  SSL / TLS暗号からRC4を削除します  ( Remove rc4 from ssl tls ciphers ) 
Androidシステム全体でSSL / TLS暗号からRC4を削除する方法もあり、ブラウザだけでなくそれらもそれらを使用しないのではないのですか? ありがとう ...

1  S4でHTTPを使用してページをロードすることはできませんが、HTTPSで行くことはできません。  ( Page cant be loaded in s4 using http but it does in https ) 
私のギャラクシーS4、ChromeとデフォルトのブラウザのどちらかのWebサイトをロードする特別な問題があります。私の場合では、HTTPを使用してWebサイトファイルにアクセスしようとすると、HTTPSを使用してアクセスしながらエラー500をスローします。期待...

0  信頼できる証明書へのシェルアクセスを可能にすることは可能ですか  ( Is it possible to have shell access to trusted certificates ) 
私はJNIを介してPythonを起動するAndroidアプリケーションを持っています。 Pythonの中に私は私が作るWebクレッツを持っています、いくつかは安全である必要があります。ユーザーCA証明書にアクセスできるようにAPKを設定できますが、Python...

0  HTTPSとAndroidブラウザの既知の問題はありますか?  ( Is there a known issue with https and the android browser ) 
私は2.3.3を実行しているGalaxy S2を持っています、全く最新のものであり、根付かない。いくつかのサイトでは、HTTPSで送信されていない要求が応答を返さないため、ログインが不可能であることがわかります。 問題を徹底的にテストしていませんが、私にとっ...

2  Android用にOpenSSLバイナリを取得する場所はどこですか?  ( Where to get openssl binary for android ) 
私はNexus 10を持っています(ロック解除された&amp;根)、私はOpenSSLバイナリをそこに入手したいので、HTTPS証明書: <コード> $ openssl s_client -connect <IPADDRESS> しかし、私が何をしても...

2  電子メールアプリのユーザーCAを正しくインポートするにはどうすればよいですか。  ( How do i import a user ca for the email app properly ) 
自分のセットアップでは、パーソナルCAを使用しています。「Gert Van Dijk CA」。 CA証明書をAndroidキーストアにインポートすることで、これをHTTPSとVPNに正常に使用しています。電子メールアプリがこれを認識するのに問題がある問題があり...

3  Fiddlerを介したAndroidアプリからのHTTPSトラフィックを復号化しますか?  ( Decrypting https traffic from android apps via fiddler ) 
私は実際に私の携帯電話に出入りするすべてのトラフィックをデバッグしようとしています。私は私のPC上にFiddlerを使用しています、そして私の電話でプロキシDroidを使ってこれを行います。 HTTPトラフィックはうまく機能します。私はそれを完全に復号化するこ...

0  誰もがこのAndroidエミュレータの呼び出しが何であるかを知っていますか?  ( Does anyone know what this android emulator call is ) 
MITMプロキシを使用したAndroidエミュレータのネットワークトラフィックを見ていました。私は大量のトラフィックがGoogleのサーバーに通知しました。誰かがこの要求を持つものや見つける良い方法を知っていますか? この投稿に追加するには大きすぎるため、フ...

3  Google Chrome Androidで証明書エラーを回避する方法  ( How to bypass certificate errors in google chrome android ) 
明らかにデスクトップChromeには、すべての証明書の警告を回避することができます 9988776654330 というフラグがあります。 Android Chromeの同等のものはありますか? <コード> 99887766544331 でチェックインしましたが...

1  CM9の誰かにメッセージ/話をするのに安全な方法は何ですか?  ( Whats a secure way to message talk to someone in cm9 ) 
私はCM9を毎晩使用しています(20120712すなわち今日)。 盗聴の可能性なしに、毎晩のCM9を持っていない(確かないが1ヶ月以内のものではない)。 これを行うにはどのアプリ/ Webアプリケーションを使用できますか?理想的には、私は話すことができるがメッ...

関連する質問

21  ユーザー証明書をインストールする方法 
0  複数のCA CERTを含むPEMファイルをインポートします 
18  自己署名証明書のインストールクレーム成功は、Androidが必要でないかのように機能する 
0  SSL証明書を受け入れることができません(k9mail) 
0  このページからのトラフィックを監視できなかった理由 
4  TLSのAndroidサポート 
0  Androidで使用する証明書を変換する方法 
0  Pandigital Nock - 証明書ストアを置き換える/更新する方法 
1  HTTPSプロキシを設定します 
5  クライアント証明書を覚え/キャッシュする方法 
1  証明書はデフォルトのTrust Storeに対して検証されていますか? 
0  TrustStoreへの証明書をインストールした後、HTTPSサイトは私のAndroidにロードされなくなりました 
21  デフォルトでは、信頼できるルートCAがAndroidに含まれていますか? 
7  AndroidはWiFiルートCASをどのように処理しますか?彼らはセキュリティ上の関心事であるべきですか? 
1  変更されたAPKファイルをインストールできません 
1  SSL / TLS暗号からRC4を削除します 
1  S4でHTTPを使用してページをロードすることはできませんが、HTTPSで行くことはできません。 
0  信頼できる証明書へのシェルアクセスを可能にすることは可能ですか 
0  HTTPSとAndroidブラウザの既知の問題はありますか? 
2  Android用にOpenSSLバイナリを取得する場所はどこですか? 
2  電子メールアプリのユーザーCAを正しくインポートするにはどうすればよいですか。 
3  Fiddlerを介したAndroidアプリからのHTTPSトラフィックを復号化しますか? 
0  誰もがこのAndroidエミュレータの呼び出しが何であるかを知っていますか? 
3  Google Chrome Androidで証明書エラーを回避する方法 
1  CM9の誰かにメッセージ/話をするのに安全な方法は何ですか?