分享

系统中如何做到实名认证

 吴雨虹2kzpi83a 2020-07-19

  

身份识别认证的是用户在应用系统中的身份,如果要验证用户在现实生活中的真实身份,就需要使用实名认证了。根据国家法规要求和伴随着移动互联网的飞速发展,实名认证已经成了很多(移动)互联网应用的标配。由于涉及到公民身份信息,实名认证都需要连接到一个第三方的实名身份数据源。常用的实名认证方式有以下几种:

1.现场审核

这是最传统的审核方式,用户需要在应用系统的业务办理场所现场提交相关身份证明材料,办理场所的工作人员审核用户真实身份。如传统的银行业务、政府行政服务、CA数字证书服务等,都采用这种线下审核方式。而我们现在谈到的实名认证,一般是指下面的线上方式。

2.身份证四要素

身份证四要素是指姓名、身份证号,以及身份证有效期开始时间和截至时间。这种方式下系统与公安的人口数据库相连接,验证上述四元素信息是否真实有效。

采用此种实名认证方式时,应用系统将调用接口将上述认证要素提交给第三方的实名认证服务器,实名认证服务器再调用公安部门相关身份信息数据库接口进行验证,最终返回验证结果。系统架构如下图。

认证流程如下图:

流程说明:

1)        用户在终端发起认证请求。

2)        在终端输入姓名、身份证号码以及身份证有效期起止时间,并提交到应用系统服务器。

3)        应用系统服务器转发上述身份证要素到实名认证服务器。

4)        实名认证服务器处理应用系统提交的请求,并使终端跳转到人脸识别页面。

5)        开始进行人脸识别,返回识别结果。

6)        实名认证服务器提交身份证要素与人脸图像到公安信息系统。

7)        公安信息系统针对要素与人脸图像值进行数据对比。

8)        对比完成,逐级返回对比或验证结果。

上述流程中的关键就是人脸识别,因为身份证的要素信息都是可以被别人拿到的,因此需要通过人脸识别确认当前认证用户与身份证信息是否一致。此外,还需要使用活体检测的方式确保是有真实的人在检测,而不是通过事先准备的图片或视频去识别。常用的活体检测方式有做出规定的表情、读出数字等。现在做人脸识别也不是什么难事了,自己开发的话可以用OpenCV等第三方库,不想开发就调用网上的服务接口。另外,人脸识别的默认场景都是在移动端进行。

3.运营商三要素

这里的运营商是指三大电信业务运营商。手机实名制已经推行多年,运营商手里已经有足够多的公民身份信息,因此可以利用其数据信息进行认证。采用运营商三要素认证时,用户需提供姓名、手机号码、身份证号码进行验证,应用系统将调用接口,将上述认证要素提交给实名认证服务器,实名认证服务器再调用运营商相关信息系统接口进行验证,最终返回验证结果。系统架构如下图。

认证流程如下图:

1)        用户提交姓名、手机号码和身份证号码到应用系统服务器。

2)        应用系统转发上述要素到实名认证服务器。

3)        实名认证服务器处理应用系统提交的请求。

4)        实名认证服务器提交认证要素到运营商信息系统。

5)        运营商信息系统针对要素进行数据对比。

6)        对比完成,逐级返回对比或验证结果。

在上述过程中,实名认证服务器一般会通过短信验证方式确认当前用户是所提交手机号码的使用者。

4.银行卡四元素

和运营商一样,银行也有我们每个人的身份信息。采用银行卡四要素认证时,用户需提姓名、手机号码、身份证号及银行卡号进行验证。验证过程与前两个认证类似,应用系统调用接口,将上述认证要素提交给实名认证服务器,实名认证服务器再调用银联相关信息系统接口进行验证,最终返回验证结果。系统架构如下图。

流程如下图:

1)        用户在终端输入姓名、手机号码、身份证号及银行卡号,并提交到应用系统服务器。

2)        应用系统转发上述要素到实名认证服务器。

3)        实名认证服务器处理应用系统提交的请求。

4)        实名认证服务器提交认证要素到银联信息系统。

5)        银联信息系统针对要素进行数据对比。

6)        对比完成,逐级返回对比或验证结果。

同样,实名认证服务器会通过短信验证方式确认当前用户是所提交手机号码的使用者。

5.企业实名认证

上面介绍的是针对个人的实名认证。针对企事业单位等机构的实名认证一般采用对公转账的方式。即用户提供企业名称、企业代码、法定代表人姓名、身份证号码、对公银行账号信息,认证机构完成信息校验后,系统会向企业对公账号打入一笔金额(一般在1元以下),企业收到款项后将收到款项的金额再提交验证,如金额正确则完成实名认证。系统架构如下图。

应用流程如下:

流程说明:

1)        用户在终端输入企业名称、企业统一社会信用代码、法定代表人姓名、法定代表人身份证号码、对公银行账号信息,并提交到电应用系统服务器。

2)        应用系统服务器转发上述要素到实名认证服务器。

3)        实名认证服务器处理应用系统提交的请求。

4)        实名认证服务器提交认证要素到银联信息系统。

5)        银联信息系统针对要素进行数据对比。

6)        银联信息系统返回对比结果到实名认证服务器。

7)        实名认证服务器验证对比结果是否正确。如果正确,进行下一步,否则跳到第12步。

8)        实名认证服务器向企业对公银行账号打款,金额数随机并不超过1元人民币。并可以通过电话、邮件等方式通知用户。

9)        用户在终端输入收到的打款金额数,提交给应用系统。

10)     应用系统转发金额数到实名认证服务器。

11)     实名认证服务器验证金额数是否正确。

12)     逐级返回验证结果。

    上述实名认证方式已经相当成熟,网上有很多第三方服务接口,去各大厂商的云服务平台搜索就会找到一大堆。接口基本都是以HTTP服务提供,调用起来也不难。费用的话个人实名认证中最贵的是身份证四元素认证,费用以每次0.5元到0.6元之间居多,有些大厂的费用可能会到每次0.8-1.0元,运营商三要素及银行卡四元素费用会便宜一半左右。目前上述费基本都花在调用第三方实名数据源的对比验证服务上了。这也就是为什么身份证认证最贵的原因了,因为公安的数据最完整、最权威,使用门槛也最高。别看单次认证费用才几毛钱,但在互联网海量数据的背景下,这个实名认证费用会是一笔巨大开支。所以应用应该设计出合理的实名认证使用方式,一般的做法是用户注册和进行达到一定安全级别要求的操作时才进行实名认证。另外要注意,实名认证失败也是要收取费用的,因此要设计防止恶意认证行为的机制

通过上述实名认证的介绍,希望能对你开发自己的互联网\移动互联网应用有所帮助。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多