IPsec/IKEv2 库

IPsec/IKEv2 库模块提供了一种机制来协商互通无线 LAN (IWLAN) 和 VPN 等新的和现有 Android 功能的安全参数(密钥、算法和隧道配置)。此模块是可更新的,这意味着它可在 Android 常规发布周期外的时间接收功能更新。

IPsec/IKEv2 库模块具有以下优势。

  • 支持 IMS、IWLAN 和现代化的 VPN。IP 多媒体子系统 (IMS) 和 IWLAN 需要 IKEv2 来安全可靠地完成密钥交换。在 Android 11 中,IPsec/IKEv2 库模块的 IKEv2 协商库是平台的默认 IKEv2 客户端实现,支持初始建立、定期重新生成密钥、失效对端检测和移交。此外,该模块还支持弃用和替换基于 racoon 的 IKEv1 VPN 库,该库用作 Android 10 及更低版本中的默认内置 VPN 客户端。

  • 生态系统一致性。将 IPsec/IKEv2 协商库用作平台的默认库可以促进整个生态系统的一致性、降低对闭源实现的依赖性,并提高可维护性和可更新性。应具备客户端专用实现,让其在 Android IPsec API 的基础上运行,这样可释放 Linux IPsec 支持的能力,而无需 IKEv2 守护程序所需的提升权限。IKEv2 库采用 Java 语言编写而成,可避免在 C 或 C++ 实现中发现的安全问题。

  • 快速解决安全性和互操作性问题。IPsec/IKEv2 是安全关键型代码,支持 VPN 来保护用户数据。许多客户端和服务器实现 IKEv2 协议的方式略有不同,从而导致 IKEv2 库与其他 IKEv2 服务器之间存在潜在的互操作性问题。借助模块可更新性,Android 团队能够快速应对安全漏洞并快速修复互操作性错误,同时尽可能减少生态系统合作伙伴的工作量。

模块边界

IPsec/IKEv2 库模块位于 packages/modules/IPsec 中。

模块格式

IPsec/IKEv2 库模块 (com.android.ipsec) 采用 APEX 格式,适用于搭载 Android 11 或更高版本的设备。

自定义

IPsec/IKEv2 库模块不支持自定义。

测试

Android 兼容性测试套件 (CTS) 通过对每个模块版本运行一套全面的 CTS 测试来验证 IPsec/IKEv2 库模块的功能。此外,您也可以使用 atest FrameworksIkeTests 命令运行 IPsec/IKEv2 库模块单元测试。