iOS
本文档针对已接入线上增强级采集SDK、需升级到安全版本的客户提供升级指导。
安全增强级采集SDK是目前线上增强级采集SDK的安全加固版本,针对ROM注入、相机劫持、视频流替换等攻击方式进行安全升级,符合国家网信办安全标准,安全升级点如下:
- 代码保护: 保护人脸识别过程中,图像数据不被Hook替换
- 图像保护: 对图像本身增加多重加密及签名验证
- 网络保护:增强⻛险网络环境检测能力,避免中间人攻击
- 逻辑保护:避免人脸识别业务流程逻辑被攻击
- ⻛险环境扫描:提升Root检测、重打包、云手机、生物探针等设备⻛险检测能力
升级方式请参考以下步骤
1、将 IDLFaceSDK.framework 从索引中删除,如下图所示,选择moveToTrash;
2、将安全增强级SDK的 FaceSSDKLib 头文件文件夹和libFaceSSDKLib.a 拖入刚才的BDFaceSDK文件夹索引中,如下图所示:
3、添加依赖库 libz.tbd 和 libc++.tbd ,如下图所示:
4、在工程中全局搜索#import "IDLFaceSDK"或#import<<IDLFaceSDK,并将引入字符串全部替换为#import "SSFaceSDK.h",如下图所示:
5、将所有 IDLFace 开头的类,替换为 SSFace 开头
安全增强级SDK将所有的类名称做了修改,原类名以IDLFace开头,安全增强级为做区分改为以SSFace开头,如原类名 [IDLFaceDetectionManager sharedInstance] 替换为 [SSFaceDetectionManager sharedInstance]
部分接口没有了,注释掉即可,如:
[[IDLFaceDetectionManager sharedInstance] startInitial];
[[IDLFaceDetectionManager sharedInstance] reset];
6、重要差异总结
(1) idl-key.face-ios 文件不一致了,需要重新改文件;
(2) 回调差异:原SDK中,
- (void)faceProcesss:(UIImage *)image
为识别离线采集识别完成的回调函数,包括了识别中途的各种姿态错误的回调和最终采集是否成功的回调,但是新的SDK中,该方法的逻辑分成了两个回调
一个是活体检测状态的回调函数
- (void)livenessActionDidFinishWithCode:(LivenessRemindCode)code;
一个是人脸流程回调函数
- (void)faceSessionCompletionWithStatus:(BDFaceCompletionStatus)status result:(NSDictionary *)result;
因为差异比较大,这里只对容易出错的 BDFaceCompletionStatus 的状态问题作出解释:
BDFaceCompletionStatusSuccess = 1,
BDFaceCompletionStatusNoRisk = 2,
BDFaceCompletionStatusImagesSuccess = 3,
上面三个,都是采集流程正常的回调,BDFaceCompletionStatusNoRisk 表示设备没有风险;BDFaceCompletionStatusSuccess 代表着整个流程的走通,表示人脸离线检测和最终人证核验流程的结束;BDFaceCompletionStatusImagesSuccess代表了动作采集流程完成,但最终的人证核验检测还没有跑完。
(3) 在调用如下函数进行人脸识别之前,需先调用 initCollect 方法进行安全增强级SDK的初始化。
[[SSFaceSDKManager sharedInstance] livenesswithList:livenessArray order:order numberOfLiveness:numberOfLiveness];
(4)clientId和clientSecret分别对应的未升级版本中的face_api_key 和face_secret_key,仅更改名称
其余问题可参考 安全加固采集SDK接入文档