我想要做的是通过智能手机网络摄像头通过自拍在我的移动应用中验证用户身份。
因此,我使用Face API制作了一个小型网络应用程序,用于测试微软的天蓝色认知服务。我拍2张照片。我得到两张图片faceIds with Face - Detect,然后我将faceIds与Face进行比较 - 验证,如果他们是同一个人,API会以真值和置信号回复,否则为false。
就安全性而言,如果我拍一张照片的图片,让我说我拍了自拍照,然后我用手机拍照手机拍照,它确实检测到一张脸,然后它是我的脸,然后我用网络摄像头拍了自己的照片,所以,当我使用Face - Verify时,它返回true。
因此,如果我想将其用作身份验证,则存在巨大的安全风险。我想知道是否有办法防止这种情况发生。
答案 0 :(得分:2)
我们希望转发工程师的回复:
该服务无法区分高质量照片或实时图像。因此,我们不建议将服务作为单一形式的身份验证。但是,有些客户尝试捕获多个帧以验证它不是静止图像。
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以要求用户执行一些随机动作,例如左眼闭着或微笑,或类似的动作。然后您将在第二次人脸检测中得到这个。
答案 3 :(得分:0)
另一个硬性解决方案是您可以将文本识别服务与它一起使用。 例如。在应用程序中生成一个随机数,并要求用户在摄像头前添加此数字。 (也许用户可以使用纸或纸板在屏幕上显示随机数)。 因此,在服务器端,您还需要从图片中读取数字以进行验证