通过网络协议确保安全  Appquality  AndroidDevelopers

简单的握手仅能证明服务器知道证书的私钥。为了解决此问题,请让客户端信任多个证书。如果指定服务器的证书未出现在客户端可信证书集中,则该服务器不可信。

但是,服务器可能会使用密钥轮替将证书的公钥更换为新的公钥。当服务器配置发生更改后,就需要更新客户端应用。如果服务器属于第三方网络服务(例如网络浏览器或电子邮件应用),则更难确定何时更新客户端应用。

可信CA通常列在主机平台上。Android8.0(API级别26)包含100多个CA,这些CA在每个版本中都会更新,并且在不同设备之间保持一致。

客户端应用需要一种机制来验证服务器,因为CA为许多服务器提供证书。CA证书使用特定名称(如gmail.com)或使用通配符(如*.google.com)来标识服务器。

openssls_client-connectWEBSITE-URL:443|\opensslx509-noout-subject-issuerHTTPS示例假设您有一个由知名CA颁发证书的网络服务器,那么,您可以使用如下代码发起安全的请求:

请尽可能使用这些API。以下部分介绍了一些常见问题,需要采用不同的解决方案。

下面几部分将讨论如何解决这些问题,同时确保与服务器的连接安全无虞。

为了降低入侵风险,CA将根CA保持离线状态。但是,Android等操作系统通常仅直接信任根CA,这会在服务器证书(由中间CA签名)与证书验证程序(识别根CA)之间留下一个小的信任缺口。

为了消除此信任缺口,服务器在TLS握手期间会发送一系列证书,从服务器CA经由任何中间CA发送到可信根CA。

$openssls_client-connectmail.google.com:443---Certificatechain0s:/C=US/ST=California/L=MountainView/O=GoogleLLC/CN=mail.google.comi:/C=ZA/O=ThawteConsulting(Pty)Ltd./CN=ThawteSGCCA1s:/C=ZA/O=ThawteConsulting(Pty)Ltd./CN=ThawteSGCCAi:/C=US/O=VeriSign,Inc./OU=Class3PublicPrimaryCertificationAuthority---这表明服务器会为mail.google.com发送一个由ThawteSGCCA(中间CA)颁发的证书,为ThawteSGCCA发送另一个由VerisignCA(Android信任的主要CA)颁发的证书。

但是,服务器可能未配置为包含必要的中间CA。例如,下面的服务器会引发Android浏览器错误和Android应用异常:

有些网站会特意针对提供资源的辅助网络服务器执行此操作。为了节省带宽,它们会使用具有完整证书链的服务器提供主要的HTML页面,而用没有CA的服务器提供图片、CSS和JavaScript等资源。这些服务器偶尔会提供您正尝试从Android应用访问的某种网络服务,但遗憾的是,它们无法获得应用信任。

如需解决此问题,请将服务器配置为在服务器链中加入中间CA。大多数CA都可以提供有关如何为常用网络服务器执行此操作的说明。

为了降低此风险,Android提供了将某些证书甚至整个CA列入拒绝名单的功能。尽管此名单过去已内置到操作系统中,但从Android4.2开始,可以远程更新此名单,便于处理将来的泄露问题。

本文重点介绍了如何使用TLS来确保与服务器之间的通信安全。TLS也支持客户端证书的概念,客户端证书允许服务器验证客户端的身份。虽然这超出了本文的范围,但其中涉及的技术与指定自定义TrustManager类似。

在已知的TLS/SSL漏洞和错误配置方面,可以通过Nogotofail轻松确认您的应用是否安全。它是一款自动执行的工具,功能强大并且可扩展,用于测试通过它传送网络流量的任意设备的网络安全问题。

Nogotofail可用于三个主要用例:

Nogotofail适用于Android、iOS、Linux、Windows、ChromeOS和macOS操作系统。事实上,任何用于连接互联网的设备都可以使用Nogotofail。Android和Linux上提供了一个用于配置设置和获取通知的客户端,以及一个本身可作为路由器、VPN服务器或代理部署的攻击引擎。

当TLS服务器在TLS握手中发送证书请求消息时,某些浏览器(如GoogleChrome)允许用户选择证书。从Android10开始,KeyChain对象会在调用KeyChain.choosePrivateKeyAlias()时信任颁发机构和密钥规范参数,以向用户显示证书选择提示。需要注意的是,此提示不包含不符合服务器规范的选项。

如果没有可用的用户可选证书(当没有与服务器规范匹配的证书或设备没有安装任何证书时,便会出现这种情况),则完全不会出现证书选择提示。

此外,在Android10或更高版本上,无需具备设备屏幕锁定功能,就能将密钥或CA证书导入KeyChain对象中。

在Android10及更高版本中,系统默认会为所有TLS连接启用TLS1.3。以下是有关TLS1.3实现的一些重要的详细信息:

在Android10中,使用SHA-1哈希算法的证书在TLS连接中不受信任。自2016年以来,根CA未再颁发过此类证书,因为它们不再受Chrome或其他主流浏览器的信任。

如果某网站使用的是SHA-1证书,则任何尝试连接该网站的操作都将失败。

THE END
1.坚如磐石的安全堡垒在数字化的商业世界中,电子合同已经成为了企业运营和交易的关键组成部分。而在众多电子合同服务中,一合通电子合同以其卓越的安全性脱颖而出,为用户搭建起了一座坚不可摧的安全堡垒。 一、一合通电子合同的功能 (一)合同在线签署 随时随地签署 一合通电子合同打破了时间和空间的限制。无论你身处何地,只要有网络...https://blog.csdn.net/yeecoss/article/details/143855171
2.安全协议和不安全协议在现代信息社会中,网络安全已成为人们日常生活和工作中的重要问题。对于信息通信的安全问题,处理得当的安全协议和不安全协议都起到了十分重要的作用。本文将从安全协议和不安全协议的定义、特点、应用以及未来发展等方面进行详细分析。 一、定义 安全协议(Security Protocol)是一种被设计用来保障通信安全的特殊协议,其目的...http://kaoshi.educity.cn/rk/gbhdaeaji9.html
3.简单的安全协议书(精选11篇)在当下社会,越来越多地方需要用到协议书,签订签订协议书可以使事务的结果更加完美化。想写协议书却不知道该请教谁?下面是小编为大家整理的简单的安全协议书,仅供参考,希望能够帮助到大家。 简单的安全协议书 1 甲方:(实训单位) 乙方:(学校) 丙方:(学生) ...https://www.ruiwen.com/xieyishu/5347630.html
4.安全协议书范本(通用17篇)随着社会一步步向前发展,用到协议的地方越来越多,签订协议是提高经济效益的手段。想写协议却不知道该请教谁?以下是小编帮大家整理的安全协议书范本,欢迎阅读与收藏。 安全协议书 1 甲方:___,___岁,地址:___,身份证号:___ 乙方:___,___岁,地址:___,...https://www.yjbys.com/hetongfa/hetongfanben/1630758.html
5.建筑工程承包安全协议中关于责任的划分是怎样的?在承包建筑工程中往往会遇到不同的分包、转包等情况,而于这些情况相关联的则是合同中关于安全责任、义务承担等划分。那么如何在建筑工程承包安全协议中明确责任主体,律图将给大家介绍一下相关的知识。 建筑工程承包安全协议中关于责任的划分是怎样的 一、单独责任的规定 ...https://www.64365.com/zs/724024.aspx
6.马克水印相机隐私政策TLS:TLS(Transport Layer Security)又称传输层安全性协议,及其前身SSL(Secure Socket Layer,又称为安全套接层,是在传输通信协议(TCP/IP)上实现的一种安全协议。SSL支持各种类型的网络,同时提供三种基本的安全服务,均通过使用公开密钥和对称密钥技术以达到信息保密的效果。)是一种安全协议,目的是为互联网通信提供安全...https://marki.5253.com/et/topic?pageId=5eb93857bdd0e9b4cf5e1e94&locale=zh
7.安全保障协议书5篇为落实“安全第一,预防为主”的安全方针,全面贯彻《安全法》,切实防止重大事故发生,实现我公司“消除事故隐患,减少一般事故,杜绝重大事故,确保安全生产”的`安全生产总目标,甲方代表下属等店(具体门店以附件四《供应商销售扣点与保底协议》为准)与租赁单位签订消防安全协议书。 https://www.cnfla.com/xieyishu/2848296.html
8.安全责任协议书(精选17篇)在当下社会,越来越多人会去使用协议,签订协议可以约束双方履行责任。那么你真正懂得怎么写好协议吗?以下是小编收集整理的安全责任协议书,仅供参考,大家一起来看看吧。 安全责任协议书 篇1 甲方: 乙方: 为了加强项目施工安全管理,坚持安全第一、预防为主的方针,确实做到安全生产,人人有责,特签定本协议书。 https://www.wenshubang.com/xieyishu/2007606.html
9.安全责任的协议书(精选20篇)在快速变化和不断变革的今天,大家逐渐认识到协议书的重要性,签订签订协议书可以使事务的结果更加完美化。协议书到底怎么写才合适呢?下面是小编精心整理的安全责任的协议书,欢迎大家借鉴与参考,希望对大家有所帮助。 安全责任的协议书 1 甲方:___ 乙方:__https://mip.jy135.com/xieyishu/1094841.html
10.安全生产协议书(通用21篇)为了认真执行国家“安全第一,预防为主”的安全生产方针、政策法令、法规和有关规定,明确各自的安全生产责任,确保三分公司选场技改工程现场施工和安装安全作业。依据《中华人民共和国安全生产法》第四十条:“两个以上生产经营单位在同一作业区域内进行生产经营活动,可能危及对方生产安全的,应当签订安全生产管理协议,明确各...https://www.fwsir.com/fanwen/html/fanwen_20230331080704_2621335.html
11.华为防火墙IPSec网络安全协议51CTO博客IPSec(Internet Protocol Security)是IETF(Internet Engineering Task Force)制定的一组开放的网络安全协议。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合 IPSec通过验证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两个安全协议实现IP报文的安全保护 ...https://blog.51cto.com/u_15630500/5290568
12.傲世堂上述内容一经正式发布,即为本协议不可分割的组成部分,您同样应当遵守。您对前述任何业务规则、单独协议的接受,即视为您对本协议全部的接受。 二、帐号与密码安全 2.1、您在使用傲世堂游戏的服务时可能需要注册一个帐号。关于您使用帐号的具体规则,请遵守《用户注册协议》和单独协议。 2.2、傲世堂游戏特别提醒您应...https://www.aoshitang.com/EULA.jsp