Como os certs são validados contra a loja de confiança padrão? -- security campo com certificates campo com https camp android Relacionado O problema

How are certs validated against default trust store?


1
vote

problema

português

Através de alguma leitura, tenho uma compreensão bastante áspera sobre como o HTTPS funciona com aplicativos Android, especialmente como as validações de certificado são feitas. Alguns dos recursos que referi para ganhar esse entendimento seria:

Validando certs no Android

SSL em apps Android

Validando SSL - Android

De acordo com meu entendimento, eu poderia dizer que os aplicativos podem validar contra:

    .
  1. A loja de confiança padrão que o Android fornece - que tem uma lista de todos os certificados CA que são por padrão confiáveis ​​pelo sistema operacional e, portanto, pelo navegador e pelo próprio aplicativo. Esta é a mesma lista de CAS que também pode ser visto nas configurações - & gt; Segurança - & gt; Credenciais confiáveis ​​(em JB +) ou sistema / etc / segurança / cacerts.bks (no android & lt; jb)

ou

  1. os desenvolvedores podem optar por definir seus próprios keystores personalizados e fazer um SSLSocketFactory com eles para confiar em sua loja de confiança personalizada.

Minha pergunta gira em torno do primeiro caso descrito acima. Na maioria dos lugares que eu poderia ler sobre isso, descobri que mencionou que para validar os certificados contra a loja de confiança padrão, o desenvolvedor realmente não precisa fazer nada explicitamente. Basta apertar o ponto final HTTPS e jogar com o objeto HttpsurlConnection retornado.

.

A validação do certificado em si é internamente (por padrão) assumida pelo sistema operacional Android.

Agora eu gostaria de saber como exatamente é o acima (destacado) feito? Qual é o método API / Interno / qualquer outra coisa que o Android realmente chama para fazer essa validação de certificado? Onde posso encontrar esta informação ? Uma abordagem que posso pensar é passar pela fonte do Android em si, mas não tenho idéia de que parte do código isso (e mais seria um monte de esforços).

Por favor conselho.

english

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.

        

Lista de respostas


Perguntas relacionadas

0  Existe um problema conhecido com https e o navegador Android?  ( Is there a known issue with https and the android browser ) 
Eu tenho uma galáxia S2 em execução 2.3.3, tudo atualizado e não enraizado. Em vários sites, acho que o login é impossível devido a solicitações enviadas em h...

18  certificado auto-assinado instalar sucesso, mas o Android atua como se o CERT não estiver lá  ( Self signed certificate install claims success but android acts as if cert isn ) 
Estou tentando instalar o certificado autoassinado para o meu servidor da Web no Android 4.3. Eu tenho o arquivo .crt na raiz do cartão SD (que é realmente em...

3  Como ignorar erros de certificados no Google Chrome Android?  ( How to bypass certificate errors in google chrome android ) 
Aparentemente O Chrome Desktop tem um sinalizador chamado ABCDEFGHIJKLMNABCDEFGHIJKLMN0 que permite ignorar todos os avisos de certificação. Existe um equiv...

3  Descriptografar o tráfego HTTPS do Android Apps via Fiddler?  ( Decrypting https traffic from android apps via fiddler ) 
Eu estou realmente tentando depurar todo o tráfego entrando e saindo no meu telefone. Eu estou usando violinista no meu PC, e proxydroid no meu telefone para ...

1  A página não pode ser carregada no S4 usando http, mas ele faz em https  ( Page cant be loaded in s4 using http but it does in https ) 
Estou tendo problemas especiais carregando um site no meu Galaxy S4, o cromo e o navegador padrão. No meu caso, quando tento acessar um arquivo do site usando...

2  Onde obter o Binário OpenSSL para Android?  ( Where to get openssl binary for android ) 
Eu tenho um Nexus 10 (desbloqueado e amp; enraizado) e eu queria obter o binário openssl lá para que eu possa verificar os certificados HTTPS: $ openssl s_...

1  Não é possível instalar um arquivo APK modificado  ( Unable to install a modified apk file ) 
Eu quero monitorar o tráfego HTTPS de um aplicativo Android baixado do Google Play. Este aplicativo só pode ser executado no Android N e acima. Então eu u...

7  Como o Android liga o WiFi Root CAS? Eles devem ser uma preocupação de segurança?  ( How does android handle wifi root cas should they be a security concern ) 
Minha universidade exige que eu instale uma CA raiz personalizada para se conectar à sua rede WiFi. Quando eu instalei no meu telefone, deixe-me especificar "...

4  Suporte para Android para TLS  ( Android support for tls ) 
Eu descobri que o TLS1.1 e o TLS1.2 é suportado a partir do nível de API 16 e por padrão por padrão da API Nível 20. Isso corresponde ao Android 4.1 (suportad...

1  Como os certs são validados contra a loja de confiança padrão?  ( How are certs validated against default trust store ) 
Através de alguma leitura, tenho uma compreensão bastante áspera sobre como o HTTPS funciona com aplicativos Android, especialmente como as validações de cert...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.