What You See Is What You Get Element

了解 Oracle Mobile Authenticator 及其应用

作者:Samanvitha Kumar 和 Narayana Khadri

本文介绍 Oracle Mobile Authenticator 的特性以及如何利用它在身份和访问管理产品中提供多因素身份验证 (MFA) 功能。

2017 年 11 月发布


目录
Oracle Mobile Authenticator 概述
多因素身份验证概述
利用 Oracle Mobile Authenticator 实现 MFA
   利用 Oracle Mobile Authenticator 实现 TOTP 身份验证
   利用 Oracle Mobile Authenticator 实现推送通知身份验证
Oracle 身份云服务中的 MFA
   启用 OTP 和推送通知等 MFA 因素
   Oracle 身份云服务中的 Oracle Mobile Authenticator 设置
Oracle Access Management Access Manager 中的 MFA
第三方应用中的 MFA
在 Oracle Mobile Authenticator 中配置帐户
   手动输入共享密钥
   使用配置 URL
   扫描 QR 码
Oracle Mobile Authenticator 应用保护
另请参见
关于作者

Oracle Mobile Authenticator 概述

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 的启动屏幕。

exploring-oma-fig1


图 1:Oracle Mobile Authenticator 启动屏幕

多因素身份验证概述

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

MFA 一个比较常见的应用是使用借记卡(用户拥有的某种东西)和 PIN(用户知道的某种东西)从 ATM 取钱。

exploring-oma-fig2


图 2:MFA 概览

只要启用 MFA,传统的用户名和密码通常就是第一个因素。此外,还可以通过以下一种或多种方法实施额外的安全性:

  • 一次性密码 (OTP):OTP 是一种仅对计算机系统或其他数字设备上的一次登录会话或事务有效且有效时间很短(通常在 30 至 60 秒之间)的密码。用户获取 OTP 后,必须将其键入他们正在尝试访问的应用来验证身份。有时,还可以使用硬件令牌生成这些密码,用户将手动输入。
  • SMS 密码:这涉及通过发送到已注册电话号码的文本消息获取一个临时的唯一密码。必须手动输入该密码才能访问应用。
  • 推送通知:这涉及向移动设备发送一条通知,其中包含关于所启动事务的详细信息。用户只需点击 Approve 即可继续登录过程。
  • 安全问题:用户通常需要回答一组预先登记的问题。提供正确答案后,用户将被重定向到受保护的应用。
  • 绕行码:这些是将在指定时间段(通常是数日)之后过期的唯一性的 OTP。用户可以预先生成并保存绕行码,也可以从应用管理员获取,以便获取访问安全应用的权限。

利用 Oracle Mobile Authenticator 实现 MFA

Oracle Mobile Authenticator 可与 Oracle 身份云服务和 Oracle Access Manager 集成,以使用 MFA 保护其应用。它还可以在独立模式下工作,生成基于时间的一次性密码 (TOTP),以便为遵循 RFC 6238 的应用提供身份验证以控制访问。下面几节将介绍如何在 Oracle 身份云服务和 Oracle Access Manager 环境中利用 Oracle Mobile Authenticator 安全地访问关键应用。

利用 Oracle Mobile Authenticator 实现 TOTP 身份验证

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 值的函数。KC 分别表示共享密钥和计数器值。

TOTP 是此算法基于时间的变体,其中值 T 由时间基准和时间步长派生而来,它代替 HOTP 中的计数器值 C

配置 TOTP 参数

根据 RFC 6238,所使用的默认加密散列方法是 SHA-1,默认密码长度为 6。此外,默认情况下,任何生成的 TOTP 的有效期是 30 秒。一般来说,TOTP 生成器将遵循这些默认值并接受共享密钥,为给定帐户生成 TOTP。然而,对于与 Oracle Mobile Authenticator 协同工作的 Oracle 身份云服务,管理员可以调整 OTP 长度、散列算法和有效期等参数以获得更高的安全性。

请参阅“一次性密码设置”一节,了解如何在 Oracle 身份云服务中配置这些参数。

使用 TOTP 访问应用

当最终用户需要使用 Oracle Mobile Authenticator 进行身份验证时,可以使用 TOTP 作为第二个因素。提供用户名和密码之后,系统将提示用户输入一个 TOTP 值(该值应已在 Oracle Mobile Authenticator 应用中生成),如图 3 所示。

exploring-oma-fig3


图 3:Oracle 身份云服务 TOTP 身份验证屏幕

图 4 和图 5 分别以 Oracle Mobile Authenticator 应用的网格视图和列表视图的形式显示生成的 OTP。访问安全应用时,应将此 OTP 值输入到 Oracle 身份云服务中。

exploring-oma-fig4

图 4:网格视图
exploring-oma-fig5

图 5:列表视图

利用 Oracle Mobile Authenticator 实现推送通知身份验证

要访问 Oracle 身份云服务或 Oracle Access Manager 中的受保护资源,用户必须先输入登录凭证。验证凭证之后,将有一条消息提示用户接受发送到注册设备的推送通知,如图 6 所示。

exploring-oma-fig6


图 6:Oracle 身份云服务推送通知身份验证屏幕

推送通知将发送到已安装 Oracle Mobile Authenticator 并拥有已配置的用户帐户的注册设备。当通知出现在设备上时(图 7),用户可以点击 AllowDeny 来允许或阻止登录。单击 Allow 将授予对安全应用的访问权限。

图 8 显示了包含登录会话细节的屏幕:正在访问的资源、登录时间、浏览器和访问的 IP 地址。

exploring-oma-fig7

图 7:设备上显示的推送通知
exploring-oma-fig8

图 8:登录请求详细信息

Oracle 身份云服务中的 MFA

Oracle 身份云服务是下一代全面的安全和身份平台,它是云原生的,旨在成为企业安全结构中不可或缺的一部分,为现代应用提供现代身份服务。

Oracle 身份云服务为内部部署或云端的应用和移动设备提供身份管理、一次性登录 (SSO) 功能、MFA 和身份治理。员工和业务合作伙伴可以随时随地在任何设备上以安全方式访问应用。

exploring-oma-fig9


图 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 版,设置选项略有不同。

启用 OTP 和推送通知等 MFA 因素

遵循以下过程并参考图 10 在 Oracle 身份云服务中启用适用于 MFA 的 Oracle Mobile Authenticator 支持:

  1. 登录 Oracle Identity Cloud Service Admin Console,然后单击 Security 选项卡。
  2. 对于 Select the users that you want to enable MFA for,选择 All UsersAdministrators 为特定的一组用户启用 MFA。
  3. 对于 MFA enrollment for the user is,分别选择 RequiredOptional 使 MFA 成为 Oracle 身份云服务用户的强制或可选选项。
  4. 对于 Select the factors that you want to enable,选择需要启用的因素类型。

    例如,选择 Mobile App OTPMobile App Notification 可启用 OTP 和推送通知。注意,为使这两个因素起作用,最终用户需要在其移动设备上安装 Oracle Mobile Authenticator 应用。

  5. 选择这两个因素之后,单击 Configure(在 Mobile App OTP 旁边)指定其他 Oracle Mobile Authenticator 应用设置,如 OTP 设置、合规性策略和 Oracle Mobile Authenticator 应用保护。这些将在下一节“Oracle 身份云服务中的 Oracle Mobile Authenticator 设置”中详细说明。

    exploring-oma-fig10


    图 10:Oracle 身份云服务中的 MFA 设置屏幕

Oracle 身份云服务中的 Oracle Mobile Authenticator 设置

下面几节介绍在 Oracle 身份云服务中使用 Oracle Mobile Authenticator 时可以配置的各种类型的设置。

一次性密码设置

如前面各节中所述,生成 TOTP 需要与时间同步信息一起由服务器共享的共享密钥。管理员可以更改几个其他默认因素,如 OTP 长度、散列算法、生成的 OTP 的有效时间间隔,如下所述并如图 11 所示。

  • Passcode Length:此设置定义由 Oracle Mobile Authenticator 应用生成的密码应有多少位数字。
  • Hashing Algorithm:此设置指定 Oracle Mobile Authenticator 应用用于生成密码的算法。
  • New OTP Generation:此设置指定 Oracle Mobile Authenticator 应用生成新的 OTP 之前间隔的秒数。
  • Secret Key Refreshed:此设置指定 Oracle Mobile Authenticator 应用通过联系 Oracle 身份云服务服务器刷新共享密钥之前等待的天数。
exploring-oma-fig11


图 11:Oracle 身份云服务中的 TOTP 设置屏幕

Oracle Mobile Authenticator 应用保护策略设置

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

  • App Protection:此设置可用于实施期望的 Oracle Mobile Authenticator 应用保护策略。可以要求 Oracle Mobile Authenticator 应用用户设置应用 PIN 或指纹生物特征身份验证来解锁应用。当管理员选择其中任一个值时,可以强制 Oracle Mobile Authenticator 应用用户使用 PIN 或指纹验证身份

    - 针对每个推送通知请求
    - 针对每次 Oracle Mobile Authenticator 应用启动
    - 每次 Oracle Mobile Authenticator 应用来到前台
  • Minimum PIN Length:此设置指定 PIN 的最小字符数。
  • Maximum consecutive failed attempts before the app is locked:此设置指定用户可以提供错误 PIN 或指纹的最大次数,之后 Oracle Mobile Authenticator 将锁定。
  • Lockout duration:此设置指定在无效 Oracle Mobile Authenticator 登录尝试之后 Oracle Mobile Authenticator 应用锁定的持续时间(单位为秒)。
  • Lockout escalation pattern:此设置指定锁定用户禁止其使用 Oracle Mobile Authenticator 应用时系统遵循的升级模式。允许值包括:ConstantLinearExponential
exploring-oma-fig12


图 12:Oracle 身份云服务中的 App Protection Policy 屏幕

Oracle Mobile Authenticator 合规性策略设置

合规性策略设置(参见图 13)指定可以在其上安装 Oracle Mobile Authenticator 应用的操作系统及具体版本。

  • Require up-to-date patches from Oracle:此设置用于确保 Oracle Mobile Authenticator 应用用户下载和使用应用商店中的新 Oracle Mobile Authenticator 应用,确保较高的安全性。
  • Minimum OS version check:此设置用于阻止用户在使用过时操作系统的设备上使用 Oracle Mobile Authenticator 应用。
  • Rooted devices check (iOS and Android only):此设置可用于阻止用户在越狱或 root 状态未知的设备上使用 Oracle Mobile Authenticator 应用。
  • Device screen lock check:此设置可用于阻止用户在未启用屏幕锁定或者屏幕锁定状态未知的设备上使用 Oracle Mobile Authenticator 应用。
exploring-oma-fig13


图 13:Oracle 身份云服务中的 Compliance Policy 设置屏幕

Oracle Access Management Access Manager 中的 MFA

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 提供的 OTP
  • Oracle Mobile Authenticator 提供的访问请求通知
  • 通过 SMS 实现的 OTP
  • 通过电子邮件实现的 OTP

对于前两种选项,自适应身份验证服务要求使用 Oracle Mobile Authenticator 应用。有关设置的详细信息,请参阅“配置 Oracle Mobile Authenticator”。TOTP 和推送因素的使用类似于 Oracle 身份云服务用例,如前面有关 TOTP推送通知小节所述。

第三方应用中的 MFA

因为 Oracle Mobile Authenticator 遵循 RFC 6238,由 TOTP 保护的任何应用均可在 Oracle Mobile Authenticator 中配置,并可以通过在独立模式下输入 Oracle Mobile Authenticator 生成的密码来访问。例如,如果用户需要设置适用于 Google、Facebook 或任何其他 Web 帐户的 MFA,可以使用 Oracle Mobile Authenticator 生成 OTP,如图 14 所示。

exploring-oma-fig14


图 14:在 Oracle Mobile Authenticator 中添加第三方帐户

在 Oracle Mobile Authenticator 中配置帐户

要在 Oracle Mobile Authenticator 中配置帐户,需要提供一些有关帐户的基本详细信息。

  • Account Name:唯一可识别的帐户名
  • Company Name:该帐户所属的公司,如 Oracle、Facebook、Dropbox 等
  • Shared Secret:一个强加密的随机数字,在 Oracle Mobile Authenticator 和服务器之间共享

以下几节介绍 Oracle Mobile Authenticator 支持的三种用于添加帐户的机制。

手动输入共享密钥

  1. 在设备上打开 Oracle Mobile Authenticator 应用并点击 Add Account
  2. 点击 Enter key manually
  3. 选择帐户类型,输入您的帐户名。
  4. 输入服务器应用提供的密钥(共享密钥),点击 Save
  5. (可选)如果需要,您还可以更改图标,如图 15 所示。

设置完成后,密码生成器屏幕将显示为新添加的帐户生成的 OTP,如图 16 所示。

exploring-oma-fig15

图 15:手动配置帐户
exploring-oma-fig16

图 16:新添加帐户的 OTP

使用配置 URL

有些服务器应用还提供了使用配置 URL 配置 Oracle Mobile Authenticator 帐户的选项。配置 URL 包含某些参数(如主机名、帐户、公司名和共享密钥),且 URL 通常通过电子邮件发送,或显示在用于访问服务器应用的浏览器上。在安装 Oracle Mobile Authenticator 的设备上单击 URL 时,设备操作系统将要求在 Oracle Mobile Authenticator 应用中打开链接的权限。授予权限之后,即进行帐户配置。设置完成后,密码生成器屏幕将显示为新添加的帐户生成的 OTP。

扫描 QR 码

在大多数应用中,使用 QR 码是首选方法,因为对最终用户而言,这是轻松快捷的选项。

  1. 在设备上打开 Oracle Mobile Authenticator 应用并点击 Add Account
  2. 使用您设备的摄像头扫描应用显示的 QR 码,如图 17 所示。
  3. QR 码将包含配置帐户所必需的信息。

设置完成后,密码生成器屏幕将显示为新添加的帐户生成的 OTP。

exploring-oma-fig17


图 17:扫描 QR 码添加帐户

Oracle Mobile Authenticator 应用保护

Oracle Mobile Authenticator 为最终用户提供了一种启用应用保护以实现更高安全性的工具。

  • 启动 Oracle Mobile Authenticator 应用后,单击左上角的菜单图标。
  • 点击 App Protection 并启用 PINTouch ID 的切换按钮,如图 18 所示。请注意,如果用户需要启用 Touch ID 选项,系统将提示设置 PIN。

在将数据保存到设备存储之前使用 PIN 进行加密。这样,即使在黑客获取设备数据访问权限时,也可以提供安全性。一旦启用应用保护,系统将在用户访问 Oracle Mobile Authenticator 时提示用户提供 PIN 或 Touch ID,如图 19 所示。

exploring-oma-fig18

图 18:App Protection 屏幕
exploring-oma-fig19

图 19:验证 Touch ID 以打开 Oracle Mobile Authenticator

另请参见

关于作者

Samanvitha Kumar 是 Oracle 身份云服务开发团队技术人员中的主要成员。她在电子商务、身份管理和中间件领域有逾十二年的产品开发经验。她热衷于技术写作,在其擅长领域发表了多篇文章,此外,她还参加了各种技术会议。

Narayana Khadri 拥有 IIT 硕士学位,Delhi 是 Oracle Mobile Authenticator 应用开发团队的成员。他有两年的 iOS 应用开发经验,并热衷于机器学习、大数据和微服务等新兴技术。