文章
身份和安全性
作者:Samanvitha Kumar 和 Narayana Khadri
本文介绍 Oracle Mobile Authenticator 的特性以及如何利用它在身份和访问管理产品中提供多因素身份验证 (MFA) 功能。
2017 年 11 月发布
Oracle Mobile Authenticator 是 Oracle 的一个应用,作为 Oracle Access Management Suite 的一部分于 2014 年首次发布。鉴于数字安全是一个组织无法忽视的领域,在授予对敏感数据的访问权限之前使用双因素认证对用户进行身份验证极其重要。
Oracle Mobile Authenticator 让您能够使用移动电话或平板电脑作为身份验证因素来安全地验证身份。Oracle Mobile Authenticator 生成一次性密码 (OTP) 用于登录,并且可以接收推送通知用于登录,只需点击即可批准。除了用户名和密码之外还同时使用此身份验证,它可以增加额外的一层安全性,这对当今的在线应用至关重要。
Oracle Mobile Authenticator 适用于所有三种移动平台,支持 iOS 7.1+、Android 4.1+ 和 Windows 8.1+ 操作系统版本。
图 1 显示了 Oracle Mobile Authenticator 的启动屏幕。

图 1:Oracle Mobile Authenticator 启动屏幕
Wikipedia 将多因素身份验证 (MFA) 解释为“一种计算机访问控制方法,用户只有在成功向认证机制提交多项不同证据后才被授予访问权限 — 这些证据通常包括以下各类中的至少两类:知识(他们知道的某种东西,如密码)、拥有物(他们拥有的某种东西,如电话或可信任设备),以及内在属性(他们本身的某种属性,如生物特征信息)。”
MFA 一个比较常见的应用是使用借记卡(用户拥有的某种东西)和 PIN(用户知道的某种东西)从 ATM 取钱。

图 2:MFA 概览
只要启用 MFA,传统的用户名和密码通常就是第一个因素。此外,还可以通过以下一种或多种方法实施额外的安全性:
Oracle Mobile Authenticator 可与 Oracle 身份云服务和 Oracle Access Manager 集成,以使用 MFA 保护其应用。它还可以在独立模式下工作,生成基于时间的一次性密码 (TOTP),以便为遵循 RFC 6238 的应用提供身份验证以控制访问。下面几节将介绍如何在 Oracle 身份云服务和 Oracle Access Manager 环境中利用 Oracle Mobile Authenticator 安全地访问关键应用。
TOTP 算法是一种根据共享密钥和当前时间计算一次性密码的算法。如 RFC 6238 中所定义,TOTP 是 OTP 算法的扩展,即基于散列消息身份验证码 (HMAC) 的一次性密码 (HOTP) 算法,用以支持基于时间的移动因素。
如 RFC 4226 中所定义,HOTP 算法基于 HMAC-SHA-1 算法并应用于在 HMAC 计算中代表消息的递增计数器值。
基本上,HMAC-SHA-1 计算的输出将被截短以获取用户友好的值:
HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))
其中,Truncate 表示能够将 HMAC-SHA-1 值转换成 HOTP 值的函数。K 和 C 分别表示共享密钥和计数器值。
TOTP 是此算法基于时间的变体,其中值 T 由时间基准和时间步长派生而来,它代替 HOTP 中的计数器值 C。
根据 RFC 6238,所使用的默认加密散列方法是 SHA-1,默认密码长度为 6。此外,默认情况下,任何生成的 TOTP 的有效期是 30 秒。一般来说,TOTP 生成器将遵循这些默认值并接受共享密钥,为给定帐户生成 TOTP。然而,对于与 Oracle Mobile Authenticator 协同工作的 Oracle 身份云服务,管理员可以调整 OTP 长度、散列算法和有效期等参数以获得更高的安全性。
请参阅“一次性密码设置”一节,了解如何在 Oracle 身份云服务中配置这些参数。
当最终用户需要使用 Oracle Mobile Authenticator 进行身份验证时,可以使用 TOTP 作为第二个因素。提供用户名和密码之后,系统将提示用户输入一个 TOTP 值(该值应已在 Oracle Mobile Authenticator 应用中生成),如图 3 所示。

图 3:Oracle 身份云服务 TOTP 身份验证屏幕
图 4 和图 5 分别以 Oracle Mobile Authenticator 应用的网格视图和列表视图的形式显示生成的 OTP。访问安全应用时,应将此 OTP 值输入到 Oracle 身份云服务中。
![]() 图 4:网格视图 | ![]() 图 5:列表视图 |
要访问 Oracle 身份云服务或 Oracle Access Manager 中的受保护资源,用户必须先输入登录凭证。验证凭证之后,将有一条消息提示用户接受发送到注册设备的推送通知,如图 6 所示。

图 6:Oracle 身份云服务推送通知身份验证屏幕
推送通知将发送到已安装 Oracle Mobile Authenticator 并拥有已配置的用户帐户的注册设备。当通知出现在设备上时(图 7),用户可以点击 Allow 或 Deny 来允许或阻止登录。单击 Allow 将授予对安全应用的访问权限。
图 8 显示了包含登录会话细节的屏幕:正在访问的资源、登录时间、浏览器和访问的 IP 地址。
![]() 图 7:设备上显示的推送通知 | ![]() 图 8:登录请求详细信息 |
Oracle 身份云服务是下一代全面的安全和身份平台,它是云原生的,旨在成为企业安全结构中不可或缺的一部分,为现代应用提供现代身份服务。
Oracle 身份云服务为内部部署或云端的应用和移动设备提供身份管理、一次性登录 (SSO) 功能、MFA 和身份治理。员工和业务合作伙伴可以随时随地在任何设备上以安全方式访问应用。

图 9:Oracle 身份云服务的功能
在 Oracle 身份云服务中启用 MFA 时,首先会提示登录应用的用户输入用户名和密码,这是第一个因素 — 他们知道的东西。然后会要求他们使用另一种类型的验证,如 TOTP、文本消息 (SMS)、推送通知、绕行码或回答安全问题。这两个因素协同工作,增加了一层额外的安全性来验证用户身份并完成登录过程。
然后就是 Oracle Mobile Authenticator 应用发挥作用,为 Oracle 身份云服务中的推送通知和 TOTP 提供支持。
为了在 Oracle 身份云服务中启用对适用于 MFA 的 Oracle Mobile Authenticator 的支持,需要在 Oracle 身份云服务中配置某些设置,如下所述。以下所示屏幕截图来自 Oracle 身份云服务 17.4.2 版。请注意,对于 Oracle 身份云服务 17.4.6 版,设置选项略有不同。
遵循以下过程并参考图 10 在 Oracle 身份云服务中启用适用于 MFA 的 Oracle Mobile Authenticator 支持:
例如,选择 Mobile App OTP 和 Mobile App Notification 可启用 OTP 和推送通知。注意,为使这两个因素起作用,最终用户需要在其移动设备上安装 Oracle Mobile Authenticator 应用。

图 10:Oracle 身份云服务中的 MFA 设置屏幕
下面几节介绍在 Oracle 身份云服务中使用 Oracle Mobile Authenticator 时可以配置的各种类型的设置。
如前面各节中所述,生成 TOTP 需要与时间同步信息一起由服务器共享的共享密钥。管理员可以更改几个其他默认因素,如 OTP 长度、散列算法、生成的 OTP 的有效时间间隔,如下所述并如图 11 所示。

图 11:Oracle 身份云服务中的 TOTP 设置屏幕
如图 12 所示,Oracle 身份云服务管理员可以根据安全要求设置应用保护和设备级策略。

图 12:Oracle 身份云服务中的 App Protection Policy 屏幕
合规性策略设置(参见图 13)指定可以在其上安装 Oracle Mobile Authenticator 应用的操作系统及具体版本。

图 13:Oracle 身份云服务中的 Compliance Policy 设置屏幕
Oracle Access Management 是基于 Java Platform, Enterprise Edition 的企业级安全应用。它包括全面的服务,提供 Web 周边安全功能和基于 Web 的一次性登录 (SSO)、身份上下文、身份验证和授权、策略管理等。
Oracle Access Management 包括 Oracle Access Management Access Manager (Access Manager),它提供 SSO 解决方案。SSO 允许用户和组在身份验证后访问多个应用,无需多次登录请求。
与 Oracle 身份云服务类似,Access Manager 为除了标准的用户名和密码类型的身份验证之外还需要额外安全性的敏感应用提供了 MFA。为了提供 MFA,它利用了自适应身份验证服务。
自适应身份验证服务提供了第二种因素身份验证。第二种因素可以是 OTP 或访问请求(或推送)通知。自适应身份验证服务提供以下 MFA 选项:
对于前两种选项,自适应身份验证服务要求使用 Oracle Mobile Authenticator 应用。有关设置的详细信息,请参阅“配置 Oracle Mobile Authenticator”。TOTP 和推送因素的使用类似于 Oracle 身份云服务用例,如前面有关 TOTP 和推送通知小节所述。
因为 Oracle Mobile Authenticator 遵循 RFC 6238,由 TOTP 保护的任何应用均可在 Oracle Mobile Authenticator 中配置,并可以通过在独立模式下输入 Oracle Mobile Authenticator 生成的密码来访问。例如,如果用户需要设置适用于 Google、Facebook 或任何其他 Web 帐户的 MFA,可以使用 Oracle Mobile Authenticator 生成 OTP,如图 14 所示。

图 14:在 Oracle Mobile Authenticator 中添加第三方帐户
要在 Oracle Mobile Authenticator 中配置帐户,需要提供一些有关帐户的基本详细信息。
以下几节介绍 Oracle Mobile Authenticator 支持的三种用于添加帐户的机制。
设置完成后,密码生成器屏幕将显示为新添加的帐户生成的 OTP,如图 16 所示。
![]() 图 15:手动配置帐户 | ![]() 图 16:新添加帐户的 OTP |
有些服务器应用还提供了使用配置 URL 配置 Oracle Mobile Authenticator 帐户的选项。配置 URL 包含某些参数(如主机名、帐户、公司名和共享密钥),且 URL 通常通过电子邮件发送,或显示在用于访问服务器应用的浏览器上。在安装 Oracle Mobile Authenticator 的设备上单击 URL 时,设备操作系统将要求在 Oracle Mobile Authenticator 应用中打开链接的权限。授予权限之后,即进行帐户配置。设置完成后,密码生成器屏幕将显示为新添加的帐户生成的 OTP。
在大多数应用中,使用 QR 码是首选方法,因为对最终用户而言,这是轻松快捷的选项。
设置完成后,密码生成器屏幕将显示为新添加的帐户生成的 OTP。

图 17:扫描 QR 码添加帐户
Oracle Mobile Authenticator 为最终用户提供了一种启用应用保护以实现更高安全性的工具。
在将数据保存到设备存储之前使用 PIN 进行加密。这样,即使在黑客获取设备数据访问权限时,也可以提供安全性。一旦启用应用保护,系统将在用户访问 Oracle Mobile Authenticator 时提示用户提供 PIN 或 Touch ID,如图 19 所示。
![]() 图 18:App Protection 屏幕 | ![]() 图 19:验证 Touch ID 以打开 Oracle Mobile Authenticator |
Samanvitha Kumar 是 Oracle 身份云服务开发团队技术人员中的主要成员。她在电子商务、身份管理和中间件领域有逾十二年的产品开发经验。她热衷于技术写作,在其擅长领域发表了多篇文章,此外,她还参加了各种技术会议。
Narayana Khadri 拥有 IIT 硕士学位,Delhi 是 Oracle Mobile Authenticator 应用开发团队的成员。他有两年的 iOS 应用开发经验,并热衷于机器学习、大数据和微服务等新兴技术。