Android操作系统证书固定

Android操作系统证书固定,android,ssl-certificate,pinning,Android,Ssl Certificate,Pinning,我将从一个非常非常简短的介绍开始,介绍Android的操作系统证书固定。从Android system/OS级别的SSL/TLS证书固定版本4.2开始引入(有关更多信息,请参见此URL)。使用此机制的固定证书列表位于:“/data/misc/keychain/pins”,默认情况下包含大约40个谷歌服务条目,如mail.Google.com、youtube.com等。我非常希望通过将其添加到此列表中来固定我自己的证书。但是,修改此列表需要Android权限(Android.permission.

我将从一个非常非常简短的介绍开始,介绍Android的操作系统证书固定。从Android system/OS级别的SSL/TLS证书固定版本4.2开始引入(有关更多信息,请参见此URL)。使用此机制的固定证书列表位于:“/data/misc/keychain/pins”,默认情况下包含大约40个谷歌服务条目,如mail.Google.com、youtube.com等。我非常希望通过将其添加到此列表中来固定我自己的证书。但是,修改此列表需要Android权限(
Android.permission.WRITE\u SECURE\u SETTINGS
),该权限仅对系统应用程序可用


有没有人知道谷歌是否有适当的程序提交一个添加到此列表的请求(即/data/misc/keychain/pins)?

如果你只需要做SSLHandshake,为什么要编辑列表?你想实现什么。如果希望应用程序锁定在特定证书上,则无需将证书添加到操作系统。您可以在应用程序的HTTP组件中处理该问题。对于该应用程序,我被迫使用WebView。不幸的是,在WebView中,您无法控制HTTP连接。如果用户单击WebView上的链接/按钮,我希望确保连接是安全的,而不是被拦截/修改的。本地代码在这里帮不了我。