安卓应用安全指南 5.4.2 通过 HTTPS 的通信 规则书

简介: 5.4.2 通过 HTTPS 的通信 规则书 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0使用 HTTP/S 通信时,遵循以下规则:5.4.2.1 必须通过 HTTPS 通信发送/接收敏感信息(必需)在 HTTP 事务中,发送和接收的信息可能被嗅探或篡改,并且连接的服务器可能被伪装。

5.4.2 通过 HTTPS 的通信 规则书

原书:Android Application Secure Design/Secure Coding Guidebook

译者:飞龙

协议:CC BY-NC-SA 4.0

使用 HTTP/S 通信时,遵循以下规则:

5.4.2.1 必须通过 HTTPS 通信发送/接收敏感信息(必需)

在 HTTP 事务中,发送和接收的信息可能被嗅探或篡改,并且连接的服务器可能被伪装。 敏感信息必须通过 HTTPS 通信发送/接收。

5.4.2.2 必须小心和安全地处理通过 HTTP 接收到的数据(必需)

HTTP 通信中收到的数据可能由攻击者利用应用的漏洞产生。 因此,你必须假定应用收到任何值和格式的数据,然后小心实现数据处理来处理收到的数据,以免造成任何漏洞。此外,你不应该盲目信任来自 HTTPS 服务器的数据。 由于 HTTPS 服务器可能由攻击者制作,或者收到的数据可能在 HTTPS 服务器的其他位置制作。 请参阅“3.2 小心和安全地处理输入数据”。

5.4.2.3 SSLException必须适当处理,例如通知用户(必需)

在 HTTPS 通信中,当服务器证书无效或通信处于中间人攻击下时,SSLException会作为验证错误产生。 所以你必须为SSLException实现适当的异常处理。 通知用户通信失败,记录故障等,可被认为是异常处理的典型实现。 另一方面,在某些情况下可能不需要特别通知用户。 因为如何处理SSLException取决于应用规范和特性,你需要首先考虑彻底后再确定它。

如上所述,当SSLException产生时,应用可能受到中间人的攻击,所以它不能实现为,试图通过例如 HTTP 的非安全协议再次发送/接收敏感信息。

5.4.2.4 不要创建自定义的TrustManager(必需)

仅仅更改用于验证服务器证书的KeyStore,就足以通过 HTTPS ,与例如自签名证书的私有证书进行通信。 但是,正如在“5.4.3.3 禁用证书验证的危险代码”中所解释的那样,在因特网上有很多危险的TrustManager实现,与用于这种目的的示例代码一样。 通过引用这些示例代码而实现的应用可能有此漏洞。

当你需要通过 HTTPS 与私有证书进行通信时,请参阅“5.4.1.3 通过 HTTPS 与私有证书进行通信”中的安全示例代码。

当然,自定义的TrustManager可以安全地实现,但需要足够的加密处理和加密通信知识,以免执行存在漏洞的代码。 所以这个规则应为(必需)。

相关文章
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
1188 4
|
6月前
|
运维 安全 网络安全
443端口:HTTPS通信的安全基石
作为互联网安全的基石,443端口通过加密与认证机制,保护了数十亿用户的隐私与数据完整性。无论是开发者、运维人员还是普通用户,理解其原理与作用都至关重要。在享受便利的同时,也需时刻关注安全实践,防范潜在风险。
1750 12
|
9月前
|
算法 安全 Java
即时通讯安全篇(一):正确地理解和使用Android端加密算法
本文主要讨论针对Android这样的移动端应用开发时,如何正确的理解目前常用的加密算法,为诸如即时通讯应用的实战开发,如何在合适的场景下选择适合的算法,提供一些参考。
287 0
|
12月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
353 11
|
11月前
|
存储 安全 Android开发
探索Android系统的最新安全特性
在数字时代,智能手机已成为我们生活中不可或缺的一部分。随着技术的不断进步,手机操作系统的安全性也越来越受到重视。本文将深入探讨Android系统最新的安全特性,包括其设计理念、实施方式以及对用户的影响。通过分析这些安全措施如何保护用户免受恶意软件和网络攻击的威胁,我们希望为读者提供对Android安全性的全面了解。
|
存储 缓存 安全
https访问提示不安全,证书密钥验证上如何解决
【10月更文挑战第4天】访问提示不安全,证书密钥验证上如何解决
1584 2
|
安全 网络协议 网络安全
在实现HTTPS时,有哪些常见的安全协议
在实现HTTPS时,有哪些常见的安全协议
686 1
|
Java Android开发 数据安全/隐私保护
Android中多进程通信有几种方式?需要注意哪些问题?
本文介绍了Android中的多进程通信(IPC),探讨了IPC的重要性及其实现方式,如Intent、Binder、AIDL等,并通过一个使用Binder机制的示例详细说明了其实现过程。
888 4
|
安全 网络安全 Android开发
深度解析:利用Universal Links与Android App Links实现无缝网页至应用跳转的安全考量
【10月更文挑战第2天】在移动互联网时代,用户经常需要从网页无缝跳转到移动应用中。这种跳转不仅需要提供流畅的用户体验,还要确保安全性。本文将深入探讨如何利用Universal Links(仅限于iOS)和Android App Links技术实现这一目标,并分析其安全性。
1732 0
|
Java Android开发 Spring
Android Spingboot 实现SSE通信案例
【7月更文挑战第14天】以下是使用Android和Spring Boot实现SSE(Server-Sent Events)通信的案例摘要: 在`MainActivity`中: - 初始化界面元素并设置按钮点击事件。 - `startSseRequest`方法创建`WebClient`对象,设置请求头,发送请求,并处理响应和错误。 请确保将`your-server-url`替换为实际的服务器地址。
563 14
下一篇
oss云网关配置