# User Authentication Kit简介 User Authentication Kitï¼ˆç”¨æˆ·è®¤è¯æœåŠ¡ï¼‰æä¾›äº†åŸºäºŽç”¨æˆ·åœ¨è®¾å¤‡æœ¬åœ°æ³¨å†Œçš„é”å±å£ä»¤ã€äººè„¸å’ŒæŒ‡çº¹æ¥è®¤è¯ç”¨æˆ·èº«ä»½çš„能力。 æä¾›äº†ç³»ç»Ÿçº§ç”¨æˆ·èº«ä»½è®¤è¯åŠŸèƒ½ï¼Œå¹¶æä¾›äº†å¤šè®¾å¤‡ç»Ÿä¸€çš„ã€é›†å¤šç§è®¤è¯æ–¹å¼ï¼ˆäººè„¸ã€æŒ‡çº¹ã€å£ä»¤ï¼‰äºŽä¸€ä½“çš„ç³»ç»Ÿçº§ç”¨æˆ·èº«ä»½è®¤è¯æŽ§ä»¶ã€‚ 用户å‘应用/系统æœåŠ¡è¯·æ±‚è®¿é—®æŸäº›ä¸ªäººæ•°æ®æˆ–执行æŸäº›æ•感æ“作时,应用/系统æœåŠ¡å°†è°ƒç”¨ç³»ç»Ÿç”¨æˆ·èº«ä»½è®¤è¯æŽ§ä»¶å¯¹ç”¨æˆ·èº«ä»½è¿›è¡Œè®¤è¯ï¼Œè®¤è¯é€šè¿‡åŽï¼Œæ‰å“åº”ç”¨æˆ·å¯¹äºŽæ•°æ®æˆ–æ•æ„Ÿæ“作的执行请求。 用户身份认è¯å¯ç”¨äºŽå„ç§é‰´æƒåœºæ™¯ï¼Œå¦‚应用内账å·ç™»å½•ã€æ”¯ä»˜è®¤è¯ç‰ã€‚ <!--RP1-->  <!--RP1End--> ## 亮点/ç‰¹å¾ - **å½’ä¸€åŒ–è®¤è¯æŽ¥å£** å±è”½ä¸åŒè®¤è¯å› å的差异,调用é”å±å£ä»¤ã€äººè„¸ã€æŒ‡çº¹è®¤è¯çš„æŽ¥å£å½’一。 åŒä¸€å¥—æŽ¥å£æä¾›äººè„¸ã€æŒ‡çº¹ã€é”å±å¯†ç 的组åˆè®¤è¯æ–¹å¼ã€‚ åŒä¸€å¥—æŽ¥å£æä¾›äººè„¸è®¤è¯ã€æŒ‡çº¹è®¤è¯å’Œä¸šåŠ¡è‡ªå®šä¹‰è®¤è¯çš„组åˆã€‚ - **æ”¯æŒæ„ŸçŸ¥è®¤è¯å¯ä¿¡ç‰çº§å·®å¼‚** 支æŒè°ƒç”¨è€…指定期望的认è¯å¯ä¿¡ç‰çº§ï¼Œé¿å…将低安认è¯èƒ½åŠ›åº”ç”¨åœ¨é«˜é£Žé™©æ“作的用户鉴æƒåœºæ™¯ï¼Œä¾‹å¦‚将防伪能力ä¸å¤Ÿçš„2D人脸认è¯ç”¨äºŽæ”¯ä»˜åœºæ™¯ã€‚ - **支æŒä¸šåŠ¡è‡ªå®šä¹‰è®¤è¯æ–¹å¼** 支æŒå¸¦å¯¼èˆªé”®çš„认è¯ç•Œé¢ï¼Œç”¨æˆ·ç‚¹å‡»å¯¼èˆªé”®å¯åˆ‡æ¢ä¸šåŠ¡è‡ªå®šä¹‰è®¤è¯ç•Œé¢ã€‚ - **支æŒçŸæ—¶é—´å†…å¤ç”¨ä»»æ„应用的认è¯ç»“æžœ** 支æŒé€‰æ‹©å¤ç”¨é”å±è®¤è¯ç»“果或是任æ„应用的身份认è¯ç»“果,åªè¦åœ¨è®¤è¯åŽè°ƒç”¨è€…指定的时间范围内(最长5min),å¯ä¸ç”¨é‡å¤è®¤è¯ç”¨æˆ·ç›´æŽ¥è¿”回认è¯é€šè¿‡ç»“果。 支æŒè®¤è¯æ–¹å¼æ— 关的å¤ç”¨æ¨¡å¼ï¼Œé‡‡ç”¨è¯¥å¤ç”¨æ¨¡å¼ï¼Œæ— 论最近一次认è¯ç»“æžœä½¿ç”¨çš„æ˜¯ä»€ä¹ˆç±»åž‹çš„è®¤è¯æ–¹å¼ï¼Œåªè¦åœ¨è®¤è¯åŽè°ƒç”¨è€…指定的时间范围内(最长5min),å¯ä¸ç”¨é‡å¤è®¤è¯ç”¨æˆ·ç›´æŽ¥è¿”回认è¯é€šè¿‡ç»“果。 支æŒè®¤è¯æ–¹å¼åŒ¹é…çš„å¤ç”¨æ¨¡å¼ï¼Œé‡‡ç”¨è¯¥å¤ç”¨æ¨¡å¼ï¼Œä¸ä»…需è¦å¤„于调用者指定的认è¯åŽæ—¶é—´èŒƒå›´å†…(最长5min),还需è¦è®¤è¯ä½¿ç”¨çš„è®¤è¯æ–¹å¼ä¸Žè°ƒç”¨è€…指定的一致,æ‰èƒ½å¤ç”¨è§£é”认è¯ç»“果,返回认è¯é€šè¿‡ã€‚ - **æä¾›ç³»ç»Ÿçº§ç”¨æˆ·èº«ä»½è®¤è¯ç•Œé¢** 支æŒè°ƒç”¨è€…自定义认è¯ç•Œé¢çš„æ ‡é¢˜å’Œå¯¼èˆªé”®æ–‡å—。 èº«ä»½è®¤è¯æŽ§ä»¶ä¼šæ ¹æ®è®¾å¤‡å±å¹•状æ€è‡ªé€‚åº”è°ƒæ•´çª—å£æ˜¾ç¤ºæ¨¡å¼ã€‚ - **æ”¯æŒæ„ŸçŸ¥æ³¨å†Œå‡æ®çš„å˜åŒ–** ä¸šåŠ¡å¼€é€šæ—¶ï¼Œä»Žè®¤è¯æˆåŠŸç»“æžœä¸èŽ·å–ç”¨æˆ·å‡æ®çš„状æ€ï¼Œæˆ–è€…ç›´æŽ¥æŸ¥è¯¢ç”¨æˆ·å‡æ®çš„状æ€ï¼Œå°†æ³¨å†Œçš„凿®çжæ€å˜å‚¨èµ·æ¥ã€‚å½“è°ƒç”¨è€…éœ€è¦æ„ŸçŸ¥ç”¨æˆ·å‡æ®å˜åŒ–时,需è¦ä»Žå½“å‰è®¤è¯æˆåŠŸç»“æžœèŽ·å–凿®çš„状æ€ï¼Œæˆ–者查询当å‰å‡æ®çš„状æ€ï¼Œé€šè¿‡å¯¹æ¯”å·®å¼‚æ„ŸçŸ¥å‡æ®çжæ€çš„å˜åŒ–。 ## è¿ä½œæœºåˆ¶ ç»Ÿä¸€ç”¨æˆ·è®¤è¯æ¡†æž¶æž¶æž„如下图所示。  ç”¨æˆ·è®¤è¯æ¡†æž¶ä¸»è¦åŒ…括四个部分: 1. 统一用户认è¯API:æä¾›å½’一化的系统用户身份认è¯èƒ½åŠ›è°ƒç”¨æŽ¥å£ã€‚å±è”½è®¤è¯å·®å¼‚,便于开å‘者调用系统能力认è¯ç”¨æˆ·èº«ä»½ã€‚ 2. ç»Ÿä¸€ç”¨æˆ·è®¤è¯æ¡†æž¶ï¼šåŒ…括框架层的SA和驱动,负责调度系统上的å„ç§èº«ä»½è®¤è¯èƒ½åŠ›å’Œç”¨æˆ·è®¤è¯æŽ§ä»¶ï¼Œæ¥å®Œæˆä¸šåŠ¡é€šè¿‡ç»Ÿä¸€ç”¨æˆ·è®¤è¯APIå‘起的用户认è¯è¯·æ±‚。 3. ç»Ÿä¸€ç”¨æˆ·è®¤è¯æŽ§ä»¶ï¼šå®žçŽ°äº†å„ç§è®¤è¯æ–¹å¼çš„用户身份认è¯äº¤äº’界é¢ï¼Œç¡®ä¿ä¸€è‡´çš„用户身份认è¯ä½“éªŒï¼Œä¾›ç»Ÿä¸€èº«ä»½è®¤è¯æ¡†æž¶è°ƒç”¨ã€‚ 4. å„ç§è®¤è¯èƒ½åŠ›ï¼šåŒ…æ‹¬å£ä»¤è®¤è¯ã€äººè„¸è®¤è¯å’ŒæŒ‡çº¹è®¤è¯ï¼Œåˆ†åˆ«å®žçŽ°äº†åŸºäºŽé”å±å£ä»¤ã€äººè„¸å’ŒæŒ‡çº¹è®¤è¯ç”¨æˆ·èº«ä»½çš„èƒ½åŠ›ï¼Œä¾›ç»Ÿä¸€ç”¨æˆ·è®¤è¯æ¡†æž¶è°ƒåº¦ã€‚ 用户身份认è¯é€šè¿‡åŽï¼Œç»Ÿä¸€ç”¨æˆ·è®¤è¯æ¡†æž¶ä¼šåœ¨è®¾å¤‡å¯ä¿¡æ‰§è¡ŒçŽ¯å¢ƒä¸ç¾å‘用户身份认è¯é€šè¿‡è¯æ˜Žï¼Œç®€ç§°AuthToken。 从图的左侧,å¯ä»¥çœ‹åˆ°åº”用使用用户身份认è¯åŠŸèƒ½å®Œæˆç”¨æˆ·é‰´æƒçš„过程:当应用需è¦è°ƒç”¨é€šç”¨å¯†é’¥åº“æœåŠ¡ä¸éœ€ç”¨æˆ·æŽˆæƒæ‰èƒ½è®¿é—®çš„密钥时,应用å¯ä»¥å°†èŽ·å–到的AuthTokenéšå¯†é’¥è°ƒç”¨è¯·æ±‚ä¸€åŒæä¾›ç»™[通用密钥库æœåŠ¡](../UniversalKeystoreKit/huks-overview.md),作为密钥二次访问控制的用户鉴æƒè¯æ˜Žã€‚通用密钥库æœåŠ¡åœ¨å¯ä¿¡æ‰§è¡ŒçŽ¯å¢ƒä¸æ ¡éªŒäº†AuthTokençš„åˆæ³•性和有效性åŽï¼Œä¾¿ä¼šå“应业务请求,执行对应的密钥æ“作。 ### AuthTokenæ•°æ®ç»“æž„ **明文段** | åç§° | 内容 | 类型 | 说明 | | -------- | -------- | -------- | -------- | | version | tokenç‰ˆæœ¬å· | uint32_t | 当å‰ä¸º2.0。 | | challenge | 认è¯éšæœºæŒ‘æˆ˜ | uint8_t[32] | éœ€è¦æ ¡éªŒè®¤è¯ç»“果的业务方生æˆçš„ä¸€æ¬¡æ€§éšæœºæŒ‘战。 | | time | 认è¯é€šè¿‡æ—¶æˆ³ | uint64_t | 认è¯é€šè¿‡æ—¶æˆ³ã€‚ | | authTrustLevel | 认è¯å¯ä¿¡ç‰çº§ | uint32_t | è§[认è¯å¯ä¿¡ç‰çº§åˆ’分原则](#认è¯å¯ä¿¡ç‰çº§åˆ’分原则)。 | | authType | 认è¯ç±»åž‹ | uint32_t | 认è¯é€šè¿‡é‡‡ç”¨çš„认è¯ç±»åž‹ï¼ŒåŒ…æ‹¬äººè„¸ã€æŒ‡çº¹ã€å£ä»¤ï¼ˆç‰¹æŒ‡é”å±å¯†ç 认è¯ï¼‰ã€‚ | | authMode | æ“作类型 | uint32_t | æ“作类型:识别/认è¯ã€‚ | | securityLevel | tokenç¾å‘环境安全ç‰çº§ | uint32_t | tokenç¾å‘环境安全ç‰çº§ã€‚ | **密文段** | åç§° | 内容 | 类型 | 说明 | | -------- | -------- | -------- | -------- | | userId | 用户ID | int32_t | 系统在创建用户时给用户分é…çš„ID。 | | secureUid | 安全用户ID | uint64_t | 用户注册系统å£ä»¤æ—¶ä¸ºç”¨æˆ·éšæœºåˆ†é…çš„IDï¼Œåœ¨ç”¨æˆ·åˆ é™¤å£ä»¤æ—¶åˆ é™¤ï¼Œå˜æ›´å£ä»¤æ—¶è¯¥IDä¸å˜ã€‚ | | enrolledId | 凿®æ³¨å†ŒID | uint64_t | 用户æ¯å½•å…¥ä¸€ä¸ªå‡æ®ï¼Œè¯¥ç”¨æˆ·çš„è¯¥ç±»åž‹å‡æ®çš„enrolledId便会更æ¢ä¸€ä¸ªéšæœºå€¼ï¼Œåˆ é™¤å‡æ®æ—¶è¯¥IDä¸å˜ã€‚ | | credentialId | 匹é…ä¸Šçš„å‡æ®ID | uint64_t | éšæœºåˆ†é…ç»™ç”¨æˆ·æ³¨å†Œçš„äººè„¸ã€æŒ‡çº¹ç‰å‡æ®çš„ID。 | **æ ‡ç¾æ®µ** | åç§° | 内容 | 类型 | 说明 | | -------- | -------- | -------- | -------- | | tag | 密文段的TAG | uint8_t[16] | å¯†æ–‡å—æ®µé‡‡ç”¨AES-GCMåŠ å¯†ç”Ÿæˆçš„TAG。 | | iv | å¯†æ–‡æ®µåŠ å¯†ä½¿ç”¨çš„IV | uint8_t[12] | å¯†æ–‡å—æ®µé‡‡ç”¨AES-GCMåŠ å¯†é‡‡ç”¨çš„éšæœºIV。 | | sign | tokençš„å®Œæ•´æ€§ä¿æŠ¤ç¾å | uint8_t[32] | 用于整个AuthTokençš„å®Œæ•´æ€§ä¿æŠ¤ã€‚ | ### 认è¯å¯ä¿¡ç‰çº§åˆ’分原则 ç³»ç»Ÿé‡‡ç”¨ä¸‰ç§æŒ‡æ ‡æ¥è¡¡é‡è®¤è¯å¯ä¿¡ç‰çº§ï¼ˆAuthTrustLevel),具体认è¯å¯ä¿¡ç‰çº§å¦‚下表所示。 - FRR(False Rejection Rateï¼‰ï¼šå°†åˆæ³•用户当åšéžæ³•用户拒ç»çš„æ¦‚率。 - FAR(False Acceptance Rateï¼‰ï¼šå°†éžæ³•用户当åšåˆæ³•用户接å—的概率,åˆç§°ä¸ºè¯¯é—¯çŽ‡ã€‚ - SAR(Spoof Acceptance Rate):接å—ä¸€ä¸ªåŸºäºŽåˆæ³•生物特å¾å¤åˆ¶çš„ã€éžæ´»ä½“çš„æ ·æœ¬æ¦‚çŽ‡ã€‚ FAR越低,FRR越高,认è¯çš„å®‰å…¨æ€§è¶Šé«˜ï¼Œä½†ä½¿ç”¨ä¾¿æ·æ€§è¶Šå·®ã€‚ | 认è¯å¯ä¿¡ç‰çº§ | 认è¯èƒ½åŠ›æŒ‡æ ‡ | 说明&举例 | 典型应用场景 | | -------- | -------- | -------- | -------- | | ATL4 | FRR=10%时,FAR≤0.0001%,SAR≤3% | 能高精度地识别用户个体,有很强的活体检测能力,如采用了安全键盘的6ä½åŠä»¥ä¸ŠPINç 认è¯å’Œæœ‰ç‰¹æ®Šå®‰å…¨å¢žå¼ºçš„æŒ‡çº¹ä¸Ž3D人脸认è¯ã€‚ | å°é¢æ”¯ä»˜ | | ATL3 | FRR=10%时,FAR≤0.002%,SAR≤7% | 能精确识别用户个体,有较强的活体检测能力,如有特殊安全增强的2D人脸认è¯ã€‚ | è®¾å¤‡è§£é” | | ATL2 | FRR=10%时,FAR≤0.002%,7%<SAR≤20% | 能精确识别用户个体,有一定的活体检测能力,如使用普通相机采集图åƒçš„2D人脸认è¯ã€‚ | ç»´æŒè®¾å¤‡è§£é”çŠ¶æ€ | | ATL1 | FRR=10%时,FAR≤1%,7%<SAR≤20% | 能识别用户个体,有一定的活体检测能力,如声纹认è¯ã€‚ | 业务风控ã€ç²¾å‡†æŽ¨èã€ä¸ªæ€§åŒ–æœåŠ¡ | ## 约æŸä¸Žé™åˆ¶ 三方应用调用系统本地身份认è¯èƒ½åŠ›ï¼Œå¿…é¡»ä½¿ç”¨ç³»ç»Ÿè‡ªå¸¦çš„èº«ä»½è®¤è¯æŽ§ä»¶ã€‚