IPsec/IKEv2 库

IPsec/IKEv2 库模块提供了一种机制,用于为新的和现有的 Android 功能(例如,无线局域网互通 (IWLAN) 和 VPN)协商安全参数(密钥、算法、隧道配置)。此模块是可更新的,这意味着它可以接收 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 库模块单元测试。