安全矩阵

 找回密码
 立即注册
搜索
查看: 901|回复: 0

Android配置抓包证书的原理

[复制链接]

215

主题

215

帖子

701

积分

高级会员

Rank: 4

积分
701
发表于 2024-3-25 00:43:51 | 显示全部楼层 |阅读模式
一、数字证书的常见格式
数字证书有多种格式,其中一些常见的格式包括:

X.509证书:

X.509是最常见的数字证书标准,它定义了公钥证书的格式和相关的验证流程。X.509证书通常使用DER编码或PEM编码。

DER (Distinguished Encoding Rules):

DER是一种二进制编码规则,通常用于表示X.509证书的二进制形式。

PEM (Privacy Enhanced Mail):

PEM是一种基于文本的编码格式,通常用于在文本协议中传输X.509证书。PEM格式可以包含DER编码或Base64编码的数据。

PKCS#12 / PFX (Personal Information Exchange):

PKCS#12是一种文件格式,用于存储和传输私钥、公钥和证书链等信息。PFX是PKCS#12的一种常见扩展名。

PKCS#7 / P7B:

PKCS#7是一种数字签名标准,它通常用于签署和验证数据的完整性。P7B是PKCS#7的一种常见扩展名,通常用于存储证书链。

JKS (Java KeyStore):

JKS是Java中用于管理密钥和证书的密钥存储库格式。

JCEKS (Java Cryptography Extension KeyStore):

JCEKS是Java Cryptography Extension中的一种密钥存储库格式,提供了对更高级加密算法的支持。

AC (Attribute Certificate):

AC是一种X.509证书的扩展,用于在X.509证书中包含附加属性信息。



二、CER格式数字证书与PEM格式数字证书的转换
(一) 从PEM到CER的转换:
获取PEM证书文件:首先,你需要有一个PEM格式的数字证书文件。

将PEM证书转换为CER格式:

使用合适的工具或者编程语言,读取PEM证书文件中除了 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 标记之外的部分。

将这段Base64编码的数据解码为二进制数据。

将得到的二进制数据保存为一个以.cer为扩展名的文件,这样就得到了CER格式的证书。
  1. <p>
  2. </p><p>openssl x509 -outform der -in demo.pem -out demo.cer</p><p>
  3. </p><p>openssl x509:使用OpenSSL工具中的x509子命令,用于操作X.509证书。</p><p>
  4. </p><p>-outform der:指定输出格式为DER编码格式。</p><p>
  5. </p><p>-in demo.pem:指定输入文件为demo.pem,即PEM格式的证书文件。</p><p>
  6. </p><p>-out demo.cer:指定输出文件为demo.cer,即DER格式的证书文件。</p><p>
  7. </p><p>-----BEGIN CERTIFICATE-----</p><p>
  8. </p><p>MIIFPDCCBCSgAwIBAgIGAYyvnmk8MA0GCSqGSIb3DQEBCwUAMIGiMTMwMQYDVQQD</p><p>
  9. </p><p>DCpDaGFybGVzIFByb3h5IENBICgyOCBEZWMgMjAyMywgT05MWVhJVS1QQykxJTAj</p><p>
  10. </p><p>BgNVBAsMHGh0dHBzOi8vY2hhcmxlc3Byb3h5LmNvbS9zc2wxETAPBgNVBAoMCFhL</p><p>
  11. </p><p>NzIgTHRkMREwDwYDVQQHDAhBdWNrbGFuZDERMA8GA1UECAwIQXVja2xhbmQxCzAJ</p><p>
  12. </p><p>BgNVBAYTAk5aMB4XDTIzMTIyNzA4NTA0M1oXDTI0MTIyNjA4NTA0M1owgaIxMzAx</p><p>
  13. </p><p>BgNVBAMMKkNoYXJsZXMgUHJveHkgQ0EgKDI4IERlYyAyMDIzLCBPTkxZWElVLVBD</p><p>
  14. </p><p>KTElMCMGA1UECwwcaHR0cHM6Ly9jaGFybGVzcHJveHkuY29tL3NzbDERMA8GA1UE</p><p>
  15. </p><p>CgwIWEs3MiBMdGQxETAPBgNVBAcMCEF1Y2tsYW5kMREwDwYDVQQIDAhBdWNrbGFu</p><p>
  16. </p><p>ZDELMAkGA1UEBhMCTlowggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCJ</p><p>
  17. </p><p>TK1VSeT/k60mk8XIXLd/wSvl9XQpb6n2ouoybMj/vGSnr49reuzdZLAX2L4wR4E5</p><p>
  18. </p><p>pIzCGGnYOKM0HgY8REiMPGRdPQujxkqlqlMj69/mQiUM6DNuP6QEIMaFqBD64pjd</p><p>
  19. </p><p>Jv2X00FR/WTn+hulwA/iQyo43E9/lZ75yIa4eldEJKjLoteZAKrw6FAAEXec7Dfw</p><p>
  20. </p><p>mGYvrVUBKBeQsHpSNo547hw1WStmfw7RbFgrOA2HPZb+3nbqAJb/zV2f9xfqRQZr</p><p>
  21. </p><p>+H7GEzDv2jDvPGTKEYEe5BAy3xSxWiKsFGfmbJhebfQob08dh5PjJilB/ZZ8Phwe</p><p>
  22. </p><p>3SYxpjZorgVmrKSPmdBnAgMBAAGjggF0MIIBcDAPBgNVHRMBAf8EBTADAQH/MIIB</p><p>
  23. </p><p>LAYJYIZIAYb4QgENBIIBHROCARlUaGlzIFJvb3QgY2VydGlmaWNhdGUgd2FzIGdl</p><p>
  24. </p><p>bmVyYXRlZCBieSBDaGFybGVzIFByb3h5IGZvciBTU0wgUHJveHlpbmcuIElmIHRo</p><p>
  25. </p><p>aXMgY2VydGlmaWNhdGUgaXMgcGFydCBvZiBhIGNlcnRpZmljYXRlIGNoYWluLCB0</p><p>
  26. </p><p>aGlzIG1lYW5zIHRoYXQgeW91J3JlIGJyb3dzaW5nIHRocm91Z2ggQ2hhcmxlcyBQ</p><p>
  27. </p><p>cm94eSB3aXRoIFNTTCBQcm94eWluZyBlbmFibGVkIGZvciB0aGlzIHdlYnNpdGUu</p><p>
  28. </p><p>IFBsZWFzZSBzZWUgaHR0cDovL2NoYXJsZXNwcm94eS5jb20vc3NsIGZvciBtb3Jl</p><p>
  29. </p><p>IGluZm9ybWF0aW9uLjAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFFMQZywS+KKZ</p><p>
  30. </p><p>6b7kqWVDwcw/YbvWMA0GCSqGSIb3DQEBCwUAA4IBAQB9YIDwLnBTHYT8E7cZ1DCd</p><p>
  31. </p><p>1scQRak/iZwbTbcmxPLT/Mi/FTKDRNFXvA/3JO/SOZZMGmRU1TGiU1IfMyIIf5YT</p><p>
  32. </p><p>yz7iuv1MTs5G8jlJ2iguIsAu4keBda3y9gOyDjGfdya1IXI1BxJV9zjw+uKqQS7k</p><p>
  33. </p><p>zP7PEeCsJN41OPy1mgNuCxsLC1EvvilvTH7Q4fJGTtu/ImIgdeyIThuEc6m/hswv</p><p>
  34. </p><p>DjAfGw9LNBJJNgQqiKid/lBp68HEDVTrsjEtRc9wnfiqlKXQlZnnt17vV8I8Bxdp</p><p>
  35. </p><p>+ihpOt44gfR79Z9qPuScDejMYb3vCySsbOApPlS327ty4Abf1dlxFBVsjWbmQoV0</p><p>
  36. </p><p>-----END CERTIFICATE-----</p><p>
  37. </p><p>
  38. </p><p>
  39. </p><p>#define _CRT_SECURE_NO_WARNINGS</p><p>
  40. </p><p> </p><p>
  41. </p><p>#include <iostream></p><p>
  42. </p><p>#include <fstream></p><p>
  43. </p><p>#include <openssl/pem.h></p><p>
  44. </p><p>#include <openssl/x509.h></p><p>
  45. </p><p>#include <openssl/bio.h></p><p>
  46. </p><p>#include <openssl/applink.c></p><p>
  47. </p><p>int main() {</p><p>
  48. </p><p>    // 打开PEM格式证书文件</p><p>
  49. </p><p>    FILE* pem_file = fopen("demo.pem", "r");</p><p>
  50. </p><p>    if (!pem_file) {</p><p>
  51. </p><p>        std::cerr << "Failed to open PEM file." << std::endl;</p><p>
  52. </p><p>        return 1;</p><p>
  53. </p><p>    }</p><p>
  54. </p><p> </p><p>
  55. </p><p>    // 创建BIO对象</p><p>
  56. </p><p>    BIO* pem_bio = BIO_new_fp(pem_file, BIO_CLOSE);</p><p>
  57. </p><p>    if (!pem_bio) {</p><p>
  58. </p><p>        std::cerr << "Failed to create BIO for PEM file." << std::endl;</p><p>
  59. </p><p>        fclose(pem_file);</p><p>
  60. </p><p>        return 1;</p><p>
  61. </p><p>    }</p><p>
  62. </p><p> </p><p>
  63. </p><p>    // 读取PEM格式证书</p><p>
  64. </p><p>    X509* cert = PEM_read_bio_X509(pem_bio, nullptr, nullptr, nullptr);</p><p>
  65. </p><p>    if (!cert) {</p><p>
  66. </p><p>        std::cerr << "Failed to read PEM certificate." << std::endl;</p><p>
  67. </p><p>        BIO_free(pem_bio);</p><p>
  68. </p><p>        fclose(pem_file);</p><p>
  69. </p><p>        return 1;</p><p>
  70. </p><p>    }</p><p>
  71. </p><p> </p><p>
  72. </p><p>    // 创建DER格式证书文件</p><p>
  73. </p><p>    FILE* der_file = fopen("demo.cer", "wb");</p><p>
  74. </p><p>    if (!der_file) {</p><p>
  75. </p><p>        std::cerr << "Failed to create DER file." << std::endl;</p><p>
  76. </p><p>        BIO_free(pem_bio);</p><p>
  77. </p><p>        fclose(pem_file);</p><p>
  78. </p><p>        X509_free(cert);</p><p>
  79. </p><p>        return 1;</p><p>
  80. </p><p>    }</p><p>
  81. </p><p> </p><p>
  82. </p><p>    // 将X509证书编码为DER格式并写入文件</p><p>
  83. </p><p>    if (i2d_X509_fp(der_file, cert) == 0) {</p><p>
  84. </p><p>        std::cerr << "Failed to write DER certificate." << std::endl;</p><p>
  85. </p><p>        fclose(der_file);</p><p>
  86. </p><p>        BIO_free(pem_bio);</p><p>
  87. </p><p>        fclose(pem_file);</p><p>
  88. </p><p>        X509_free(cert);</p><p>
  89. </p><p>        return 1;</p><p>
  90. </p><p>    }</p><p>
  91. </p><p> </p><p>
  92. </p><p>    // 释放资源</p><p>
  93. </p><p>    fclose(der_file);</p><p>
  94. </p><p>    BIO_free(pem_bio);</p><p>
  95. </p><p>    fclose(pem_file);</p><p>
  96. </p><p>    X509_free(cert);</p><p>
  97. </p><p> </p><p>
  98. </p><p>    std::cout << "Conversion completed successfully." << std::endl;</p><p>
  99. </p><p>    return 0;</p><p>
  100. </p><p>}</p>
复制代码


转换得到的cer格式数字证书与从Charles导出的cer格式数字证书一致



(二) 从CER到PEM的转换:
获取CER证书文件:首先,你需要有一个CER格式的数字证书文件。

将CER证书转换为PEM格式:

使用合适的工具或者编程语言,读取CER证书的二进制数据。

将二进制数据进行Base64编码。

在编码后的数据前添加 -----BEGIN CERTIFICATE----- 标记,并在后面添加 -----END CERTIFICATE----- 标记。

保存这个带有标记的数据为一个以.pem为扩展名的文件,这样就得到了PEM格式的证书。

openssl x509 -inform der -in demo.cer -out demo.pem

转换得到的pem格式数字证书与从Charles导出的pem格式数字证书一致



三、计算数字证书的hash值
在移动设备上安装证书时,可能会导致证书文件名发生变化的原因有几个可能:

系统生成的哈希值命名:在某些情况下,移动设备会对安装的证书文件进行哈希计算,并将生成的哈希值作为文件名。这个哈希值通常是证书内容的哈希,用于唯一标识该证书。

系统要求的特定文件名格式:某些移动设备可能对证书文件名有特定的要求,需要符合一定的命名格式。例如,在 Android 系统中,系统会要求证书文件名为 <hash>.0 的格式,其中 <hash> 是证书内容的哈希值。

所以我们可以进行手机更改文件名的,将原文件名修改为<hash>.0

对于.pem证书

  1. mv cacert.pem `openssl x509 -inform PEM -subject_hash_old -in cacert.pem  |head -1`'.0'
复制代码

对于.cer证书

  1. mv cacert.cer `openssl x509 -inform DER -subject_hash_old -in cacert.cer |head -1`'.0'
复制代码

四、证书的加载流程和原理
在 Android 系统中,证书的管理和解析是由 Android 的安全框架和 Keystore 系统来完成的。Android 系统中的证书管理主要涉及以下几个方面:

安全框架(Security Framework):Android 的安全框架提供了一组 API 和服务,用于实现各种安全功能,包括证书的管理和使用。这些功能包括 SSL/TLS 连接、数字签名、证书验证等。安全框架中的组件负责解析和处理证书文件,包括 PEM 和 DER 格式的证书。

Keystore 系统:Android 的 Keystore 是一个安全的存储库,用于存储密钥、证书和其他敏感信息。Keystore 提供了一种安全的方式来存储和管理证书,以防止证书的私钥被恶意应用程序或攻击者访问。Keystore 通过系统级别的安全保护来保护证书的私钥,例如硬件支持的安全元素(如 Trusted Execution Environment)或安全软件容器(如 StrongBox)。

系统证书存储(System Certificate Store):Android 系统还提供了一个系统级别的证书存储,用于存储系统信任的根证书和其他受信任的证书。这些证书通常用于验证 SSL/TLS 连接或数字签名。Android 系统会在启动时加载系统证书存储,并将其中的证书用于系统级别的安全功能。

在 Android 系统中,证书的解析和使用通常涉及以下步骤:

证书加载:Android 系统会在启动时加载系统证书存储中的根证书和其他受信任的证书。这些证书被存储在系统的证书存储中,并由系统的安全框架和 Keystore 系统来管理。

KeyStore.getInstance():获取 KeyStore 实例,用于加载和管理证书和密钥。

KeyStore.load():从文件或输入流中加载证书和密钥到 KeyStore 中。

CertificateFactory.getInstance():获取 CertificateFactory 实例,用于解析证书。

CertificateFactory.generateCertificate():从输入流中生成证书对象。

Resources.openRawResource():在 Android 应用程序中加载资源文件,如证书文件。

证书解析:当应用程序需要使用证书时,系统会调用安全框架中的证书解析组件来解析证书文件。这些组件能够识别证书的格式,并提取其中的公钥、颁发者信息、有效期等关键信息。

X509Certificate 类:表示 X.509 标准的证书对象,提供了获取证书信息的方法,如获取公钥、颁发者信息、有效期等。

CertificateFactory.generateCertificate():从输入流中生成证书对象,可用于解析证书。

证书验证:在建立安全连接或者验证数字签名时,系统会使用证书解析得到的信息来验证证书的有效性。这包括验证证书链、检查证书的有效期、验证颁发者的签名等步骤。

TrustManagerFactory.getInstance():获取 TrustManagerFactory 实例,用于创建 TrustManager 实例,用于验证服务器端证书。

KeyStore.getInstance():获取 KeyStore 实例,用于获取系统和应用程序信任的根证书。

SSLContext.getInstance():获取 SSLContext 实例,用于创建 SSL/TLS 连接。

SSLContext.init():使用 TrustManager 和 KeyManager 初始化 SSLContext。

SSLSocketFactory.setHostnameVerifier():设置主机名验证器,用于验证服务器主机名。

证书存储:对于应用程序生成的证书或密钥,系统会使用 Keystore 系统来安全地存储和管理。Keystore 会将这些证书和密钥存储在安全的硬件或软件容器中,以防止它们被未经授权的应用程序或攻击者访问。

总的来说,在 Android 系统中,证书的管理和使用是由安全框架、Keystore 系统和系统证书存储共同实现的。这些组件能够保障证书的安全性和可靠性,并在系统级别上提供安全的证书管理和使用功能。因此,当你将 .pem 格式的证书文件放入系统证书目录时,系统会自动将其转换为二进制格式的 .cer 格式的证书文件,以便系统能够更方便地处理和使用。这种转换通常是由系统的证书管理工具或者证书存储服务自动完成的,用户无需手动操作。



五、配置代理实操
(一) 使用手机程序安装pem证书
1. 选择cacert.pem数字证书进行安装














2. 命名为pem







3. 查看证书

就会发现该文件已转换为cer二进制文件的数字证书

4. 导出该文件进行原cer数字证书对比


结果发现pem格式数字证书的安装,经过系统的证书安装程序,会将pem格式数字证书转化为cer格式数字证书。



(二) 用户证书抓包测试
抓包效果:



(三) 用户证书目录转存储系统系统证书目录
通过Move_Certificates-v1.9模块将用户证书目录下的证书转存到系统证书目录中去。





(四) 系统证书抓包测试
SSL证书报错,相对与用户证书抓包效果好了很多。





(五) 手动推送pem证书到系统目录下
1. 将pem证书推动到系统目录下
将证书推送到Move_Certificates模块目录下



2. 并修改权限为644


3. 重启手机,等待Move_Certificates插件将证书重定向到系统目录证书下


4. 抓包效果




(六) 制作与原系统证书一致的pem格式数字证书
1. 源系统证书处理pem格式数字证书除了base64,还有签名等信息
  1. <p>platina:/system/etc/security/cacerts # cat 7892ad52.0</p><p>-----BEGIN CERTIFICATE-----</p><p>MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC</p><p>VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T</p><p>U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp</p><p>Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx</p><p>NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv</p><p>dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv</p><p>bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49</p><p>AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA</p><p>VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku</p><p>WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP</p><p>MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX</p><p>5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ</p><p>ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg</p><p>h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==</p><p>-----END CERTIFICATE-----</p><p>Certificate:</p><p>    Data:</p><p>        Version: 3 (0x2)</p><p>        Serial Number: 3182246526754555285 (0x2c299c5b16ed0595)</p><p>    Signature Algorithm: ecdsa-with-SHA256</p><p>        Issuer: C=US, ST=Texas, L=Houston, O=SSL Corporation, CN=SSL.com EV Root Certification Authority ECC</p><p>        Validity</p><p>            Not Before: Feb 12 18:15:23 2016 GMT</p><p>            Not After : Feb 12 18:15:23 2041 GMT</p><p>        Subject: C=US, ST=Texas, L=Houston, O=SSL Corporation, CN=SSL.com EV Root Certification Authority ECC</p><p>        Subject Public Key Info:</p><p>            Public Key Algorithm: id-ecPublicKey</p><p>                Public-Key: (384 bit)</p><p>                pub:</p><p>                    04:aa:12:47:90:98:1b:fb:ef:c3:40:07:83:20:4e:</p><p>                    f1:30:82:a2:06:d1:f2:92:86:61:f2:f6:21:68:ca:</p><p>                    00:c4:c7:ea:43:00:54:86:dc:fd:1f:df:00:b8:41:</p><p>                    62:5c:dc:70:16:32:de:1f:99:d4:cc:c5:07:c8:08:</p><p>                    1f:61:16:07:51:3d:7d:5c:07:53:e3:35:38:8c:df:</p><p>                    cd:9f:d9:2e:0d:4a:b6:19:2e:5a:70:5a:06:ed:be:</p><p>                    f0:a1:b0:ca:d0:09:29</p><p>                ASN1 OID: secp384r1</p><p>                NIST CURVE: P-384</p><p>        X509v3 extensions:</p><p>            X509v3 Subject Key Identifier:</p><p>                5B:CA:5E:E5:DE:D2:81:AA:CD:A8:2D:64:51:B6:D9:72:9B:97:E6:4F</p><p>            X509v3 Basic Constraints: critical</p><p>                CA:TRUE</p><p>            X509v3 Authority Key Identifier:</p><p>                keyid:5B:CA:5E:E5:DE:D2:81:AA:CD:A8:2D:64:51:B6:D9:72:9B:97:E6:4F</p><p>
  2. </p><p>            X509v3 Key Usage: critical</p><p>                Digital Signature, Certificate Sign, CRL Sign</p><p>    Signature Algorithm: ecdsa-with-SHA256</p><p>         30:65:02:31:00:8a:e6:40:89:37:eb:e9:d5:13:d9:ca:d4:6b:</p><p>         24:f3:b0:3d:87:46:58:1a:ec:b1:df:6f:fb:56:ba:70:6b:c7:</p><p>         38:cc:e8:b1:8c:4f:0f:f7:f1:67:76:0e:83:d0:1e:51:8f:02:</p><p>         30:3d:f6:23:28:26:4c:c6:60:87:93:26:9b:b2:35:1e:ba:d6:</p><p>         f7:3c:d1:1c:ce:fa:25:3c:a6:1a:81:15:5b:f3:12:0f:6c:ee:</p><p>         65:8a:c9:87:a8:f9:07:e0:62:9a:8c:5c:4a</p><p>SHA1 Fingerprint=4C:DD:51:A3:D1:F5:20:32:14:B0:C6:C5:32:23:03:91:C7:46:42:6D</p><p>platina:/system/etc/security/cacerts #</p><p></p>
复制代码


2. 生成系统系统预设格式证书文件
对于.pem证书

  1. openssl x509 -inform PEM -text -in cacert.pem > 7591945e.0
复制代码

对于.cer证书

  1. openssl x509 -inform DER -text -in cacert.cer > 7591945e.0
复制代码

3. 编辑生成的文件
把 -----BEGIN CERTIFICATE----- 到最后的这部分移动到开头

  1. <p>-----BEGIN CERTIFICATE-----</p><p>MIIFPDCCBCSgAwIBAgIGAYyvnmk8MA0GCSqGSIb3DQEBCwUAMIGiMTMwMQYDVQQD</p><p>DCpDaGFybGVzIFByb3h5IENBICgyOCBEZWMgMjAyMywgT05MWVhJVS1QQykxJTAj</p><p>BgNVBAsMHGh0dHBzOi8vY2hhcmxlc3Byb3h5LmNvbS9zc2wxETAPBgNVBAoMCFhL</p><p>NzIgTHRkMREwDwYDVQQHDAhBdWNrbGFuZDERMA8GA1UECAwIQXVja2xhbmQxCzAJ</p><p>BgNVBAYTAk5aMB4XDTIzMTIyNzA4NTA0M1oXDTI0MTIyNjA4NTA0M1owgaIxMzAx</p><p>BgNVBAMMKkNoYXJsZXMgUHJveHkgQ0EgKDI4IERlYyAyMDIzLCBPTkxZWElVLVBD</p><p>KTElMCMGA1UECwwcaHR0cHM6Ly9jaGFybGVzcHJveHkuY29tL3NzbDERMA8GA1UE</p><p>CgwIWEs3MiBMdGQxETAPBgNVBAcMCEF1Y2tsYW5kMREwDwYDVQQIDAhBdWNrbGFu</p><p>ZDELMAkGA1UEBhMCTlowggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCJ</p><p>TK1VSeT/k60mk8XIXLd/wSvl9XQpb6n2ouoybMj/vGSnr49reuzdZLAX2L4wR4E5</p><p>pIzCGGnYOKM0HgY8REiMPGRdPQujxkqlqlMj69/mQiUM6DNuP6QEIMaFqBD64pjd</p><p>Jv2X00FR/WTn+hulwA/iQyo43E9/lZ75yIa4eldEJKjLoteZAKrw6FAAEXec7Dfw</p><p>mGYvrVUBKBeQsHpSNo547hw1WStmfw7RbFgrOA2HPZb+3nbqAJb/zV2f9xfqRQZr</p><p>+H7GEzDv2jDvPGTKEYEe5BAy3xSxWiKsFGfmbJhebfQob08dh5PjJilB/ZZ8Phwe</p><p>3SYxpjZorgVmrKSPmdBnAgMBAAGjggF0MIIBcDAPBgNVHRMBAf8EBTADAQH/MIIB</p><p>LAYJYIZIAYb4QgENBIIBHROCARlUaGlzIFJvb3QgY2VydGlmaWNhdGUgd2FzIGdl</p><p>bmVyYXRlZCBieSBDaGFybGVzIFByb3h5IGZvciBTU0wgUHJveHlpbmcuIElmIHRo</p><p>aXMgY2VydGlmaWNhdGUgaXMgcGFydCBvZiBhIGNlcnRpZmljYXRlIGNoYWluLCB0</p><p>aGlzIG1lYW5zIHRoYXQgeW91J3JlIGJyb3dzaW5nIHRocm91Z2ggQ2hhcmxlcyBQ</p><p>cm94eSB3aXRoIFNTTCBQcm94eWluZyBlbmFibGVkIGZvciB0aGlzIHdlYnNpdGUu</p><p>IFBsZWFzZSBzZWUgaHR0cDovL2NoYXJsZXNwcm94eS5jb20vc3NsIGZvciBtb3Jl</p><p>IGluZm9ybWF0aW9uLjAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0OBBYEFFMQZywS+KKZ</p><p>6b7kqWVDwcw/YbvWMA0GCSqGSIb3DQEBCwUAA4IBAQB9YIDwLnBTHYT8E7cZ1DCd</p><p>1scQRak/iZwbTbcmxPLT/Mi/FTKDRNFXvA/3JO/SOZZMGmRU1TGiU1IfMyIIf5YT</p><p>yz7iuv1MTs5G8jlJ2iguIsAu4keBda3y9gOyDjGfdya1IXI1BxJV9zjw+uKqQS7k</p><p>zP7PEeCsJN41OPy1mgNuCxsLC1EvvilvTH7Q4fJGTtu/ImIgdeyIThuEc6m/hswv</p><p>DjAfGw9LNBJJNgQqiKid/lBp68HEDVTrsjEtRc9wnfiqlKXQlZnnt17vV8I8Bxdp</p><p>+ihpOt44gfR79Z9qPuScDejMYb3vCySsbOApPlS327ty4Abf1dlxFBVsjWbmQoV0</p><p>-----END CERTIFICATE-----</p><p>Certificate:</p><p>    Data:</p><p>        Version: 3 (0x2)</p><p>        Serial Number: 1703753443644 (0x18caf9e693c)</p><p>        Signature Algorithm: sha256WithRSAEncryption</p><p>        Issuer: CN = "Charles Proxy CA (28 Dec 2023, ONLYXIU-PC)", OU = https://charlesproxy.com/ssl, O = XK72 Ltd, L = Auckland, ST = Auckland, C = NZ</p><p>        Validity</p><p>            Not Before: Dec 27 08:50:43 2023 GMT</p><p>            Not After : Dec 26 08:50:43 2024 GMT</p><p>        Subject: CN = "Charles Proxy CA (28 Dec 2023, ONLYXIU-PC)", OU = https://charlesproxy.com/ssl, O = XK72 Ltd, L = Auckland, ST = Auckland, C = NZ</p><p>        Subject Public Key Info:</p><p>            Public Key Algorithm: rsaEncryption</p><p>                Public-Key: (2048 bit)</p><p>                Modulus:</p><p>                    00:89:4c:ad:55:49:e4:ff:93:ad:26:93:c5:c8:5c:</p><p>                    b7:7f:c1:2b:e5:f5:74:29:6f:a9:f6:a2:ea:32:6c:</p><p>                    c8:ff:bc:64:a7:af:8f:6b:7a:ec:dd:64:b0:17:d8:</p><p>                    be:30:47:81:39:a4:8c:c2:18:69:d8:38:a3:34:1e:</p><p>                    06:3c:44:48:8c:3c:64:5d:3d:0b:a3:c6:4a:a5:aa:</p><p>                    53:23:eb:df:e6:42:25:0c:e8:33:6e:3f:a4:04:20:</p><p>                    c6:85:a8:10:fa:e2:98:dd:26:fd:97:d3:41:51:fd:</p><p>                    64:e7:fa:1b:a5:c0:0f:e2:43:2a:38:dc:4f:7f:95:</p><p>                    9e:f9:c8:86:b8:7a:57:44:24:a8:cb:a2:d7:99:00:</p><p>                    aa:f0:e8:50:00:11:77:9c:ec:37:f0:98:66:2f:ad:</p><p>                    55:01:28:17:90:b0:7a:52:36:8e:78:ee:1c:35:59:</p><p>                    2b:66:7f:0e:d1:6c:58:2b:38:0d:87:3d:96:fe:de:</p><p>                    76:ea:00:96:ff:cd:5d:9f:f7:17:ea:45:06:6b:f8:</p><p>                    7e:c6:13:30:ef:da:30:ef:3c:64:ca:11:81:1e:e4:</p><p>                    10:32:df:14:b1:5a:22:ac:14:67:e6:6c:98:5e:6d:</p><p>                    f4:28:6f:4f:1d:87:93:e3:26:29:41:fd:96:7c:3e:</p><p>                    1c:1e:dd:26:31:a6:36:68:ae:05:66:ac:a4:8f:99:</p><p>                    d0:67</p><p>                Exponent: 65537 (0x10001)</p><p>        X509v3 extensions:</p><p>            X509v3 Basic Constraints: critical</p><p>                CA:TRUE</p><p>            Netscape Comment: </p><p>                ....This Root certificate was generated by Charles Proxy for SSL Proxying. If this certificate is part of a certificate chain, this means that you're browsing through Charles Proxy with SSL Proxying enabled for this website. Please see http://charlesproxy.com/ssl for more information.</p><p>            X509v3 Key Usage: critical</p><p>                Certificate Sign</p><p>            X509v3 Subject Key Identifier: </p><p>                53:10:67:2C:12:F8:A2:99:E9:BE:E4:A9:65:43:C1:CC:3F:61:BB:D6</p><p>    Signature Algorithm: sha256WithRSAEncryption</p><p>    Signature Value:</p><p>        7d:60:80:f0:2e:70:53:1d:84:fc:13:b7:19:d4:30:9d:d6:c7:</p><p>        10:45:a9:3f:89:9c:1b:4d:b7:26:c4:f2:d3:fc:c8:bf:15:32:</p><p>        83:44:d1:57:bc:0f:f7:24:ef:d2:39:96:4c:1a:64:54:d5:31:</p><p>        a2:53:52:1f:33:22:08:7f:96:13:cb:3e:e2:ba:fd:4c:4e:ce:</p><p>        46:f2:39:49:da:28:2e:22:c0:2e:e2:47:81:75:ad:f2:f6:03:</p><p>        b2:0e:31:9f:77:26:b5:21:72:35:07:12:55:f7:38:f0:fa:e2:</p><p>        aa:41:2e:e4:cc:fe:cf:11:e0:ac:24:de:35:38:fc:b5:9a:03:</p><p>        6e:0b:1b:0b:0b:51:2f:be:29:6f:4c:7e:d0:e1:f2:46:4e:db:</p><p>        bf:22:62:20:75:ec:88:4e:1b:84:73:a9:bf:86:cc:2f:0e:30:</p><p>        1f:1b:0f:4b:34:12:49:36:04:2a:88:a8:9d:fe:50:69:eb:c1:</p><p>        c4:0d:54:eb:b2:31:2d:45:cf:70:9d:f8:aa:94:a5:d0:95:99:</p><p>        e7:b7:5e:ef:57:c2:3c:07:17:69:fa:28:69:3a:de:38:81:f4:</p><p>        7b:f5:9f:6a:3e:e4:9c:0d:e8:cc:61:bd:ef:0b:24:ac:6c:e0:</p><p>        29:3e:54:b7:db:bb:72:e0:06:df:d5:d9:71:14:15:6c:8d:66:</p><p>        e6:42:85:74</p>
复制代码


4. 抓包效果


六、总结
在 Android 系统中,证书的管理和使用是由安全框架、Keystore 系统和系统证书存储共同实现的。这些组件能够保障证书的安全性和可靠性,并在系统级别上提供安全的证书管理和使用功能。因此,当你将 .pem 格式的证书文件放入系统证书目录时,系统会自动将其转换为二进制格式的 .cer 格式的证书文件,以便系统能够更方便地处理和使用。这种转换通常是由系统的证书管理工具或者证书存储服务自动完成的,用户无需手动操作。因此,使用上述方式所配置的证书代理,抓包效果是差不多的。



来源:看雪论坛


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-27 20:26 , Processed in 0.014047 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表