FIDO UAF ASM 接口文档
### FIDO UAF框架中ASM API详解 #### 1. 概述 FIDO (Fast IDentity Online) 是一种开放协议,旨在减少对密码的依赖并提供更安全的身份验证方式。UAF (Universal Authentication Framework) 是FIDO联盟推出的一个框架,用于支持多种设备间的无缝身份验证。在这一框架下,ASM (Authenticator Specific Module) 是一个关键组件,它为UAF认证器提供了向上层应用的统一接口,从而使得上层应用能够通过标准的接口来访问和管理不同类型的认证器,如带有SPI、USB或蓝牙等物理接口的硬件设备。 #### 2. ASM请求与应答机制 ##### 2.1 ASM请求 ASM请求采用JSON编码格式,FIDOUAF客户端需先创建一个符合特定格式的对象,然后将其序列化为JSON字符串并发送给ASM。ASM收到请求后会解析该JSON字符串,执行相应的操作并创建一个应答对象,最后将该对象序列化为JSON格式后返回给客户端。 - **请求类型**:请求类型定义如下: - "GetInfo":获取认证器的信息。 - "Register":注册新的认证信息。 - "Authenticate":进行身份验证。 - "Deregister":注销已有的认证信息。 - "GetRegistrations":获取所有注册的认证信息。 - "OpenSettings":打开设置界面。 ##### 2.2 ASM应答状态码 ASM的应答状态码用于指示请求是否成功以及失败的具体原因,以便客户端根据这些信息采取相应的措施。状态码定义如下: - `UAF_ASM_STATUS_OK` (0x00):请求处理成功。 - `UAF_ASM_STATUS_ERROR` (0x01):处理过程中发生未知错误。 - `UAF_ASM_STATUS_ACCESS_DENIED` (0x02):请求被拒绝。 - `UAF_ASM_STATUS_USER_CANCELLED` (0x03):请求被用户显式取消。 - `UAF_ASM_STATUS_CANNOT_RENDER_TRANASCTION_CONTENT` (0x04):请求无法被提交,例如请求格式不能被认证器识别。 - `UAF_ASM_STATUS_KEY_DISAPPERED_PERMANETANTLY` (0x09):认证器中的认证密钥永久性丢失。 - `UAF_ASM_STATUS_AUTHENTICATOR_DISCONNECTED` (0x0b):认证器与ASM连接断开。 - `UAF_ASM_STATUS_USER_NOT_REPONSIVE` (0x0e):用户长时间未进行预期操作,如未按时输入指纹。 - `UAF_ASM_STATUS_INSUFFICIENT_AUTHENTICATOR_RESOURCES` (0x0f):由于认证器资源不足,不能执行指定的操作。 - `UAF_ASM_STATUS_USER_LOCKOUT` (0x10):认证器被锁定且无法自动解锁。 - `UAF_ASM_STATUS_USER_NOT_ENROLLED` (0x11):用户未登记到认证器中。 如果客户端收到未知的状态码,则按照`UAF_ASM_STATUS_ERROR`处理。 ##### 2.3 认证器状态码与ASM状态码映射 当ASM调用认证器时,认证器也会返回其自身的状态码,ASM需要将这些状态码转换成对应的ASM状态码,以便客户端理解和处理。具体的映射关系如下: - **认证器状态码**:`UAF_CMD_STATUS_OK` → **ASM状态码**:`UAF_ASM_STATUS_OK` - **认证器状态码**:`UAF_CMD_STATUS_ERR_UNKNOWN` → **ASM状态码**:`UAF_ASM_STATUS_ERROR` - **认证器状态码**:`UAF_CMD_STATUS_ACCESS_DENIED` → **ASM状态码**:`UAF_ASM_STATUS_ACCESS_DENIED` - **认证器状态码**:`UAF_CMD_STATUS_USER_NOT_ENROLLED` → **ASM状态码**:在注册请求中映射到`UAF_ASM_STATUS_USER_NOT_ENROLLED`;在签名过程中映射到`UAF_ASM_STATUS_ACCESS_DENIED` - **认证器状态码**:`UAF_CMD_STATUS_CANNOT_RENDER_TRANSACTION_CONTENT` → **ASM状态码**:`UAF_ASM_STATUS_CANNOT_RENDER_TRANASCTION_CONTENT` - **认证器状态码**:`UAF_CMD_STATUS_USER_CANCELLED` → **ASM状态码**:`UAF_ASM_STATUS_USER_CANCELLED` - **认证器状态码**:`UAF_CMD_STATUS_CMD_NOT_SUPPORTED` → **ASM状态码**:如果ASM能正确处理该错误,则返回`UAF_ASM_STATUS_OK`,否则返回`UAF_ASM_STATUS_ERROR` 通过这种方式,ASM能够有效地将认证器的状态码转换为标准化的ASM状态码,确保了上层应用能够准确地理解认证器的反馈结果,并据此采取适当的行动。
剩余13页未读,继续阅读
- weizhao1132017-08-14很不错的资源,下载了,谢谢
- 粉丝: 100
- 资源: 33
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助