浅析宝博棋牌手机版 指纹识别功能场景与设计

dahuamao 行业资讯 2023-01-11 21:25 43

指纹识别,自打iPhone5s出来后就普遍在使用的功能,大家可能都已经习以为常,但是当我真正要上这个功能的时候,反而遇到了一堆问题,里面隐藏的逻辑最终用了两个版本才完善。



首先说明下这个需求的背景,公司内部宝博棋牌手机版 增加了查看薪资的功能,但是考虑到隐私安全,就添加了隐私密码和指纹密码的功能。



初期的需求如下:



隐私密码为6-10位大小写字母、数字、特殊符号的任意组合,不要求如何组合;



隐私密码不可与宝博棋牌手机版 登录密码相同;(后来由于无接口提供,取消了校验)

509e7d42191b6c4fa3152398bbdde3fa.jpeg


设置指纹密码前必须设置隐私密码;



开启指纹密码先输入隐私密码,再验证指纹;



关闭指纹密码不需要验证;



上面罗列的只是几个要点,需求肯定不是这么简单几句话写完的,但是上述逻辑无法覆盖以下场景:



场景一:

员工宝博棋牌最新版 没有录入指纹的时候怎么处理宝博棋牌手机版



因此需求中增加了:



6.开启指纹先校验宝博棋牌最新版 是否已经设置了指纹;



至此就完成了指纹密码的正向流程,是不是感觉可以交给研发了宝博棋牌手机版 然而不经意听到交互在旁边说到一句:宝博棋牌最新版 借给别人……



这里备注下,我们公司宝博棋牌手机版 有宝博棋牌最新版 绑定的功能,发现账号登录设备变更后会要求输入宝博棋牌最新版 验证码换绑设备。



所以就出现了下面的场景:



场景二:

员工X有A宝博棋牌最新版 ,员工Y有B宝博棋牌最新版 ;



X在A宝博棋牌最新版 完成了账号登录和指纹密码开启,这时Y借用A宝博棋牌最新版 登录了自己账号,那么Y的账号指纹密码状态是什么宝博棋牌手机版



之所以会出现这样问题,是因为指纹是否开启的信息是留存在宝博棋牌最新版 本地的,因此刚刚X在A宝博棋牌最新版 开启指纹后,Y再用A宝博棋牌最新版 登录,会沿用上个账号的指纹开启状态,这显然是不合理的,因此需求中增加了:



7.指纹是否开启的信息,留存本地时需要关联工号保存;



总算交付研发了,我也投到下个需求中去了,然而第二天交互和我说,她和研发商量了下,把开启指纹密码时的校验隐私密码去除了,我问为什么,她说因为用户的宝博棋牌最新版 ,他要在自己宝博棋牌最新版 开启指纹,既然已经验证指纹正确了,说明他就是宝博棋牌最新版 主人,那为什么还要验证隐私密码宝博棋牌手机版 于是我和她描述了下面的场景:



场景三:

员工X有A宝博棋牌最新版 ,员工Y有B宝博棋牌最新版 ;



X用了A宝博棋牌最新版 登录账号,随后换用B宝博棋牌最新版 登录账号,但是后来忘记退出,且没有在自己设备回登;



那么Y拿回B宝博棋牌最新版 后,如果没有隐私密码校验,将可以直接可以开启指纹密码,查看隐私信息;



这时交互表示无奈,并和研发说了撤销刚刚的修改。其实如果不用隐私密码二次校验,还会存在个漏洞:



场景四:

员工X有A宝博棋牌最新版 ,员工Y有B宝博棋牌最新版 ;



X和Y是同事,经常借宝博棋牌最新版 ,X因此知道B宝博棋牌最新版 的锁屏密码,那么X就可能干出下面的事;



借到B宝博棋牌最新版 ,由于有锁屏密码,因此可以添加自己的指纹,然后直接开启客户端的指纹密码,查看隐私信息;



由于这时候已经提测,所以第一期上线就没有将隐私密码二次校验加回去,毕竟是内部宝博棋牌手机版 ,发布比较方便,然而逻辑的推演又出来了:



场景五:

员工X有A宝博棋牌最新版 ,员工Y有B宝博棋牌最新版 ;



X和Y是同事,经常借宝博棋牌最新版 ,X因此知道B宝博棋牌最新版 的锁屏密码,那么X又干了一件事;



Y已经在B宝博棋牌最新版 开启了指纹密码,X借到B宝博棋牌最新版 后,通过锁屏密码在B宝博棋牌最新版 中添加了自己的指纹,于是又能嘿嘿嘿……



这种逻辑是在转测后想起来的,就计划放在下期完善,当天晚上测试也提说有这么个漏洞,我说已经放到二期了,所以说靠谱的测试还是很重要的,那么这种情况怎么解决宝博棋牌手机版



这里分开讨论,iOS端的应用一般是检测指纹管理是否变更,包括指纹的增删,一旦指纹管理有变更,当用户打开应用时,即使开启了指纹解锁,也需要先输入隐私密码;安卓可能是开放程度比较好,像“掌上生活”宝博棋牌手机版 是直接校验当时开启指纹解锁的指纹ID,也就是说你用中指打开应用的指纹解锁,是无法用食指解锁的,这样安全性很高,但是成本有点高;



为此我们也就加上需求:



8.当用户使用应用内的指纹密码时,若检测到宝博棋牌最新版 指纹管理变更,则直接要求输入隐私密码,校验正确后直接进入功能页,且二次使用不受影响;P.S. 安卓端还需要开会时沟通下是不是也能检测到指纹管理变更



正当我被自己的逻辑折服时,研发又来打脸了,哎哟,好疼……



场景六:

员工X有A宝博棋牌最新版 ,员工Y有B宝博棋牌最新版 ;



X在A、B宝博棋牌最新版 都登录过自己账号,且都开启了指纹密码;



某天Y借了X的账号在B宝博棋牌最新版 登录,抑或是同事关系导致Y知道X的登录密码;



于是乎Y在B宝博棋牌最新版 上登录了X的账号,由于之前X的账号在B宝博棋牌最新版 开启过指纹密码,那么这一次Y可以直接用指纹在B宝博棋牌最新版 解锁X的隐私信息;



敷完药膏,脸总算不疼了,于是就和研发讨论如何保证同一账号的指纹开启只能保留在一台设备上,是的,我们又加需求了:



9.当用户登录应用时,若宝博棋牌手机版 端请求短信验证码,则本地清空该账号的指纹开启信息;



这是由于一旦应用向服务端校验登录信息且正确时,服务端会校验该账号上次登录设备是否一致,若不一致则要求应用端请求短信验证码,因此一旦应用端请求验证码,就说明账号登录设备有变,也就能保证指纹开启信息只会留存一台设备了。



码完收工,好久不接触这种安全性功能设计,思维逻辑愈发有些线性考虑,与诸君共勉。


相关推荐
关闭

用微信“扫一扫”

ybqwzz.com sodhj.com app998.com kuwkk.com 0755bna.com alw168.com chxwh.com yyqiji.com syzcbjbj.com