我们正在设计一个Web界面,用户可以使用 USB软件狗登录到应用程序。
(抽象的)加密狗用于识别,验证和授权用户(必要时可以补充基于表单的登录名)。加密狗中的机密还用于对登录用户在应用程序中管理的数据进行对称加密/解密。对于不同的用户角色,存在多个加密狗。
加密狗将用于登录不同的应用程序,而无需相互身份管理。另外,关于加密狗的加密功能,需要某种类型的密钥旋转(kek / dek模型)。我们可以使用HSM设备来生成,存储和分发不同类型的密钥。
我们计划将Java EE / React堆栈用于Web应用程序。我将如何开始使用USB软件狗身份验证和加密?关于Web应用程序领域有哪些好的指南/资源?