是否有人使用 Vasco Digipass Mobile SDK OTP 生成器或将其集成到 iOS 设备的自定义移动应用程序中?
我目前正在对解决方案(端到端)进行全面的安全评估,并且想知道其他人是否已经在这方面进行了工作。
我对新设备的激活过程、加密实现、移动设备上本地数据的存储、身份验证机制、OTP 的生成以及其他攻击面感兴趣。
是否有人使用 Vasco Digipass Mobile SDK OTP 生成器或将其集成到 iOS 设备的自定义移动应用程序中?
我目前正在对解决方案(端到端)进行全面的安全评估,并且想知道其他人是否已经在这方面进行了工作。
我对新设备的激活过程、加密实现、移动设备上本地数据的存储、身份验证机制、OTP 的生成以及其他攻击面感兴趣。
我不特别了解“Vasco Digipass Mobile SDK OTP 生成器”,但我过去曾评估过软件 OTP 生成器,这些都是我会关注的。
应用程序是否受 PIN 码保护? 如果它受 PIN 保护,那么当您输入错误的 PIN 时会发生什么?它是否仍会生成 OTP 或是否报告错误消息。这个问题的相关性:OTP 生成器使用与身份验证服务器共享的密钥。现在密钥必须存储在设备的某个位置,因此如果设备丢失,它很容易受到攻击。因此,最好使用 PIN 保护应用程序。现在下一个问题是 PIN 存储在哪里?如果 PIN 存储在设备上,则保护再次变得毫无意义。因为就像密钥一样,如果设备丢失,PIN 也容易受到攻击。那么有什么选择呢?第一种选择是使用 PIN 来加密密钥,而不是将 PIN 存储在设备上。但是,这仍然不是一个好方法,因为,一旦设备丢失,它可以被暴力破解。那么有什么更好的选择。OTP 生成使用 PIN 和密钥作为 OTP 生成算法的输入。在这种情况下,如果您输入了错误的 PIN,那么 OTP 仍然是生成器,因为应用程序不知道 PIN 是正确还是错误。但是,如果您输入错误的 PIN,则生成的 OTP 将是错误的。因为服务器将使用正确的 PIN 生成 OTP,因此它与应用程序生成的不匹配。即 PIN 被隐式验证而不是显式验证。那么,您如何知道您的应用程序是在本地存储 PIN 码还是使用 PIN 码加密密钥,那么当您输入错误的 PIN 码时,应用程序通常会给出错误消息。然而,如果 PIN 未存储在本地,则应用程序不会
OTP 生成器使用什么算法? 它是使用基于时间的算法还是基于事件(计数器)的算法。硬件 OTP 生成器通常使用基于时间的算法,但许多基于软件的 OTP 生成应用程序使用基于事件的,因为假设移动设备上的时间可能关闭 - 可能与服务器时间不同步。这有什么关系?基于事件的 OTP 永不过期。或者实际上它们仅在使用它们或使用更新的 OTP 时才过期。如果您现在使用您的 OTP 生成器应用程序生成 OTP,您可以记下 OTP 并在任意天数后使用它,只要您之间没有进行任何其他身份验证。即,如果您生成 2 个 otps 并记下它们,那么如果您使用第二个 OTP 进行身份验证,它将起作用,但第一个会自动过期。由于基于事件(计数器)的 OTP 不会过期,因此它们比基于时间的 OTP 更容易受到离线攻击。是否有缓解措施。还有另一种基于事件的 OTP 算法,称为 OCRA(基于挑战响应)。在这里,服务器抛出一个挑战,必须在生成 OTP 之前将其输入到应用程序中。恕我直言,对于移动设备(您可能无法使用基于时间的 OTPS),使用挑战响应机制的基于事件的设备可能比基于事件的普通设备更好。但是对于非专业用户来说,这可能有点令人困惑。对于移动设备(您可能无法使用基于时间的 OTPS),使用挑战响应机制的基于事件的设备可能比基于事件的普通设备更好。但是对于非专业用户来说,这可能有点令人困惑。对于移动设备(您可能无法使用基于时间的 OTPS),使用挑战响应机制的基于事件的设备可能比基于事件的普通设备更好。但是对于非专业用户来说,这可能有点令人困惑。
激活是如何进行的? 共享密钥是通过 SMS 或类似方式发送的吗?这可能使它有点不安全。一些 OTP 生成器通过协商激活 - 即客户端和服务器使用某些标准(如 DSKPP)协商共享密钥。这些可能比通过 SMS 发送密钥的更安全。