Privacy Protection in Distributed Fingerprint-based Authentication

arXiv - CS - Cryptography and SecurityPub Date : 2019-11-01, DOI: arxiv-1911.00248

摘要:

由于使用独特的个人特征(如指纹、掌纹、虹膜)的方便,生物特征认证越来越受欢迎。特别是指纹由于指纹扫描仪的可用性和低成本而被广泛使用。为了避免身份盗窃或冒充,指纹数据通常存储在本地,例如,在一个受信任的硬件模块中,在一个用于用户注册和身份验证的设备中。然而,本地存储限制了实现分布式应用程序的能力,在分布式应用程序中,用户只需注册一次指纹,然后使用它访问多个物理位置和移动应用程序。

在本文中,我们提出了一种分布式认证系统,该系统以保护隐私的方式将指纹数据存储在服务器或云基础设施中。可以连接多台设备,进行用户注册或验证。为了保护敏感数据的隐私和完整性,我们采用了一种称为模糊保险库的加密结构。我们强调了实现基于模糊金库的身份验证的挑战,为此我们提出并比较了替代解决方案。

我们对我们的生物识别密码系统进行了安全分析,作为概念证明,我们使用连接到指纹扫描仪和Microsoft Azure云环境的资源受限设备(Raspberry Pis)构建了访问控制的认证系统。此外,我们对指纹匹配算法与著名的FVC2006数据库进行了评估,并表明它可以达到与广泛使用的不为隐私而设计的匹配技术相当的精度,同时保持有效的身份验证时间为几秒钟。

关键词:隐私,生物识别,指纹认证, fuzzy vault

 1、引言

动机:在这个互联互通的世界里,数字身份对用户应用程序至关重要。数字身份盗窃或冒充攻击会损害被攻击者的隐私,并导致严重后果,如财务损失或违法行为。这种风险产生了对可靠身份验证技术的需求。生物特征认证提供了高可靠性的好处t,因为与智能卡或文本密码不同,生物特征不会丢失或遗忘,而且生物特征伪造或盗窃非常困难。

因此,指纹身份验证经常被使用,例如在智能手机中,智能手机在可信执行环境(TEE)中本地存储和管理指纹数据,例如分别用于Android和Apple设备的Trusty TEE[23]和Secure Enclave[2]。安全本地存储的实践可以防止敏感数据泄露给外部攻击者,但是它也阻碍了(有效的)分布式生物识别身份验证的发展。我们在本工作中研究的分布式身份验证用例是一个基于指纹的访问控制系统,该系统用于一家国际公司的多个建筑物,在其入口处配备了指纹扫描仪。扫描仪允许员工通过身份验证进入相应的大楼。分布式认证系统无需在每个站点分别登记指纹,只需一次性注册,之后可以访问多个位置。为此,员工只需要刷ngers,而不用担心忘记密码、丢失智能卡或依赖智能手机等额外设备。

尽管它的可用性和便利性,分布式身份验证仍然没有被广泛接受,因为在线存储在不受信任的环境中,生物识别信息被盗的风险很高[22]。在指纹数据泄漏的情况下,不仅身份可能在多个位置/应用程序之间被滥用,而且同一根手指永远不能用于身份验证。撤销指纹数据非常具有挑战性,因为每个人通常拥有10个不同的指纹。我们的工作旨在开发一个分布式的基于指纹的认证系统,以保护用户的敏感数据。

为了保护生物特征数据,大多数现有的工作将生物特征识别与密码技术集成在一起,遵循两种方法之一:可取消生物特征识别或生物特征密码系统[27]。可取消的生物识别包括将生物识别转换为转换域的技术,在转换域中还会进行用户验证的比较。转换生物特征的反转必须是不可行的,即攻击者不能从转换域中检索原始生物特征。相比之下,生物特征密码系统将数字密钥绑定到生物特征上,或者直接从给定的生物特征生成数字密钥,分别产生密钥绑定或密钥生成方案。

一个已建立的密钥绑定生物识别密码系统是模糊保险库[13]。模糊金库是一种安全的数据结构,它将密钥与生物特征(在我们的例子中是指纹)绑定在一起。这把钥匙只能通过与它绑定的指纹足够相似的指纹捕获来提取,因此只有所有者才能解锁模糊金库并检索指纹数据。模糊保险库通过对随机噪声较大的被绑定指纹进行保护,提供了强有力的安全保障。提取指纹非常困难在没有捕获同一根手指的情况下,与可取消的生物识别方法[13]相比,这大大降低了身份盗窃的风险。此外,模糊vault的原型实现在指纹识别[20]的准确性方面显示出良好的效果。由于其强大的安全性和准确性,我们将我们的认证系统建立在模糊保险库的基础上,并首次在真实的分布式环境中进行了部署。

贡献:本文提出了一种安全、实用的分布式生物识别认证系统。生物识别系统的质量通常通过假匹配率(FMR)和假不匹配率(FNMR)来评估,也称为匹配精度[17]。为了安全性,我们的目标是最小化解决方案的FMR。为了可用性,我们的目标是最小化FNMR以及成功身份验证所需的时间。我们为实现这些目标所作的主要贡献如下:

  • 我们提出了一种分布式生物识别密码系统,其中用户指纹数据存储在云中,多个连接的设备可以注册和认证用户,而无需维护本地指纹副本。我们的解决方案基于一种众所周知的技术,具有经过验证的安全属性,即模糊保险库[13]。

  • 我们强调某些原语的实现挑战,提出替代解决方案,并分析它们在安全性和可用性方面的权衡。基于我们的分析,我们建议使用(i) Galois域中的多项式操作,以允许在模糊金库解码阶段进行精确插值,(ii)指纹模板对齐的几何哈希,与其他对齐方法相比,它提高了安全性和准确性,而不依赖于公共助手数据,(iii)根据每个单独用例的需求自定义模糊金库匹配阈值配置。

  • 我们分析了分布式生物识别密码系统的安全性,并估计了漏洞概率。•我们开发了与嵌入式设备(树莓派)和微软Azure云连接的商用指纹扫描仪的概念验证实现。

  • 我们根据著名的FVC2006指纹数据库对我们的系统进行了广泛的评估,并证明了其在现实场景中的适用性。该系统提供了与广泛使用的指纹识别方法相当的准确性,这些方法不是为隐私而设计的,在普通计算机上的认证时间不到3秒。它还在安全性和/或准确性方面改进了现有的生物识别密码系统。

注意,本文是[11]的扩展版本。

大纲。在本文的剩余部分,第2节介绍了相关工作。第3节介绍了我们的系统和威胁模型假设。第4节概述了模糊拱顶结构、我们遇到的实现挑战以及所选择的解决方案及其各自的权衡。第5节详细介绍了在一家跨国公司中用于访问控制的分布式基于指纹的认证应用程序的实现。第6节介绍了安全性分析,第7节介绍了我们的密码系统的实证评估。第8节对全文进行了总结。

2、相关工作

指纹识别。由于生物特征认证的使用越来越多,指纹识别是一个研究得很好的研究课题。指纹识别算法从指纹图像中提取一个数学表示,称为模板,并使用它来验证两个指纹之间的匹配。匹配需要比较指纹图案的几个特征,比如手指皮肤的山谷和山脊。大多数识别算法专注于细节特征,这些特征是定义为山脊末端(山谷分裂的地方)或山脊分叉(山脊分裂的地方)的点,而其他技术包括基于相关性或基于山脊特征的匹配[17]。常用的基于细节的匹配技术包括NIST生物特征图像软件(NBIS) [14], Verifinger[21]和Minutia圆柱代码(MCC)[6]。这些算法只匹配指纹模板,不保证模板的安全性。

指纹模板保护。在文献中,模板保护的两种基本方法是可取消生物识别技术和生物识别密码系统[17,27]。在可取消生物识别技术中,特征转换技术(包括不可可逆转换和盐腌)将未受保护的注册模板转换为具有相应转换功能的受保护的注册模板。在验证期间,探针或验证模板也以相同的方式进行转换,并在转换后的空间中执行比较。Ferrara et al.[10]使用非可逆变换实现了基于MCC[6]的受保护的Minutia圆柱代码(P-MCC)。相比之下,生物识别密码系统要么从指纹生成加密密钥(密钥生成),要么使用指纹保护密钥(密钥绑定)。密钥生成技术的一个突出例子是模糊提取器[9],其中从噪声指纹数据生成加密密钥。至于密钥绑定生物识别密码系统,模糊保险库[13]是最知名的技术之一。我们将在第4.1节详细介绍它的实现。

我们选择在模糊保险库上构建我们的生物识别密码系统,因为与其他模板保护方法[20]相比,其经过验证的安全性保证[13]和较高的匹配精度。此外,由于我们的生物识别密码系统的目标是分布式应用程序,模糊金库是有优势的,因为指纹图像或模板可以在本地创建模糊金库后直接删除,从而减少了攻击者的面(原始模板不存储在任何本地设备中)。尽管有关于模糊金库的大量文献,但据我们所知,这种密码系统还没有在工业应用中使用,也没有在现实环境中进行评估。现有的基于指纹的基于模糊vault的应用程序,如Uludag等人的[32]、Nandakumar等人的[20]或Theodorakis[30],都是在MATLAB中实现的,并使用公共指纹数据库进行评估。Li等人[16]用c++实现了一种无对齐模糊拱顶方法。我们的实现是第一次在分布式环境中使用模糊保险库,并在实际指纹设备的真实环境中对其进行评估。与以前的实现的主要区别在于我们的指纹对齐方法,详见第4.2节。

指纹比对。对于大多数指纹识别系统,包括基于模糊拱顶的指纹识别系统,匹配前的指纹模板对齐是一个巨大的挑战。Jeers等人[12]测试了三种已知的对齐方法,其中有五个最近邻,Voronoi近邻和基于模糊拱顶的三角形结构。Uludag等人[31]使用了一种基于方向场的方法,它依赖于公共助手数据。Li等[15]引入了对极结构,这种结构便于对齐,但需要改变函数来防止信息泄露。Chung等人[7]在模糊拱顶设置中应用了几何哈希,这比其他方法计算成本更高,但使用指纹模板的全局特征,不需要公共辅助数据。在我们的生物识别密码系统中,我们使用了Chung et al.[7]的几何哈希方法,因为它与其他对齐方法相比具有良好的性能。此外,该方法不需要任何辅助数据,增强了系统的安全性。

3、系统和威胁模型

3.1、系统模型

图1描述了我们的分布式指纹认证系统模型。它的特点是配备了指纹传感器(FPS)的任意数量的本地计算机。这些计算机通过云中的一个或多个远程服务器连接到Internet。系统支持如下操作:

图1:系统和威胁模型。绿色(红色)的组件被认为是受信任的(非受信任的)。

(1)采集指纹原始图像

(2)从原始图像创建模板和安全数据结构

(3)存储指纹安全数据结构

(4)对探针指纹进行指纹匹配

前三个操作是将指纹登记到系统所必需的,该操作只发生一次。在FPS(1)捕获指纹图像后,在连接的计算机上对原始图像进行处理,例如,二值化,以启用特征提取(2)。模板是指纹特征的数学表示(在我们的系统中,称为minutiae),因此包含敏感数据。为了保护模板,我们将其转换为安全的数据结构(在我们的系统中,模糊金库)并将其存储在数据库中(3)。第四项操作使用存储的数据结构进行用户验证。这需要从新捕获的(探针)指纹中提取模板,并将其与声称的用户的注册模板进行比较。匹配算法根据相似度阈值计算相似度分数,判断匹配与否。该操作可执行多次。

我们的系统允许在任何一台本地计算机上注册和验证指纹。例如,用户可以在图1中标记为2)的计算机上注册指纹,然后在另一个位置进行身份验证,例如标记为4)的本地计算机。指纹数据库(在我们的系统中,是模糊金库的集合)存储在云中。

3.2、威胁模型

在我们的系统中,攻击者要么有意提取有价值的资产,要么想通过欺骗生物识别系统获得未经授权的访问。如果攻击者能够确定模糊金库中的真实细节,或者如果她能够在没有适当生物识别的情况下成功地对模糊金库进行身份验证,我们就认为攻击者成功了。在第一种情况下,攻击者可以执行利用提取的生物识别信息进行身份盗窃。在第二种情况下,攻击者可以获得未经授权的访问,并使用特定的模糊金库执行身份盗窃。

图1用绿色表示系统的受信任部分,用红色表示非受信任部分。请注意,我们不考虑对生物识别系统物理部分的攻击。例如,用模具欺骗指纹传感器就超出了这项工作的范围。我们也不调查物理设备上的侧通道攻击。我们假设FPS直接连接到可信的处理器,并且我们的应用程序运行在安全的执行环境中。最后,向系统中注入虚假的个人资料以实现成功的身份验证是超出范围的,因为我们的工作重点是保护真实用户的生物识别信息和隐私。

本地计算机上处理器之外的组件都不可信,到服务器和服务器本身的连接也不可信。攻击者可以窃听、修改消息或输入消息来对通道进行攻击。我们假设服务器是诚实但好奇的,即当被要求提供特定的指纹数据结构时,服务器会发送正确的数据。拒绝服务攻击不被考虑。在这种攻击的情况下,最坏的情况是授权用户将无法进行身份验证,但生物特征数据隐私不会受到损害。

我们假设攻击者无法篡改算法的内部结构,因为算法只在本地计算机的安全执行环境中运行。然而,攻击者可以知道算法中使用的参数,除了所选择的秘密。此外,我们假设攻击者可以向我们的算法提供他/她自己的指纹模板,而不必直接欺骗FPS。这使得使用指纹模板的暴力攻击可以尝试解锁模糊金库。我们认为这种情况比强迫攻击者只使用FPS与整个系统交互更现实。

4 、生物识别密码系统

为了实现我们的分布式生物识别密码系统,我们首先开发了一个指纹认证算法,该算法使用一个安全的结构,即模糊金库,来保护敏感数据。第4.1节给出了模糊保险库[13]的概述。4.2节详细介绍了指纹认证算法的具体实现,第4.3节提出了实现某些加密原语的替代解决方案。

4.1、模糊拱顶概念(Fuzzy Vault

模糊金库原理是由Juels等人首先提出的,是一种使用一组元素a“锁定”密钥K的密码结构,密钥K只能被一组元素B“解锁”,这组元素B与集合a非常相似。因为解锁标准是集合的相似性,元素的顺序无关。为了使真正的点(来自集合A)不受可能的攻击者的攻击,将一些箔条点添加到模糊vault中。这些虚假点是随机生成的,攻击者无法将其与真实点区分开来。当尝试检索秘密时,目标是在集合B的帮助下确定集合A中的尽可能多的点(考虑到它们的相似性)。

这种方法适用于像指纹认证这样的生物识别应用,因为指纹的各种捕获总是因为扭曲或不对齐而不同。在这种情况下,集合A和B可以分别从使用探针和图库细节的两个指纹捕获构建。探针指纹用于生成一个模糊金库(在每个身份验证请求时),库指纹(在注册时存储)用于验证和解锁模糊金库并验证用户。我们的目标是使用探测器的细节来尽可能多地检测地下室中真正的画廊细节。

在编码阶段,使用集合A,密钥K嵌入到多项式p中,通常作为其系数。图2中给出了一个简单的秘密k的例子。集合a中的元素被视为不同的坐标值,并映射到p上,如红色所示。箔条点的选择使得它们的映射不在多项式p上。

图2:模糊金库:编码阶段。

在解码阶段,使用集合B,发现几个点位于多项式p上(来自集合A)。这些点在图3中用绿色表示。如果在A中找到n + 1个元素,则可以通过多项式插值得到秘密K,其中n是p的多项式次。如果检索到正确的秘密,则用户身份验证成功,因为探针指纹解锁了模糊金库。

图3:模糊金库:解码阶段。

基于minutiae的指纹认证采用了模糊金库的概念[20,32]。最初的工作[13]建议错误修正代码来弥合之间的差异Uludag et al.[32]确定了将错误校正应用于生物识别的困难,因为这种代码的错误校正能力超出了很大的变化。他们提出了一种基于循环冗余校验和拉格朗日插值的算法,可以解码许多候选秘密,从而导致更多的插值尝试。Nandakumar et al.[20]通过考虑指纹的非线性失真,以及除了细节位置之外的方向,进一步改进了算法。[32]算法在文献中得到了广泛的应用。我们在此基础上进行了构建和改进,特别是w.r.t.指纹对齐和安全性,如下节所述。

4.2、指纹认证

为了将模糊库概念应用于指纹认证,需要实现库编码和解码。在保险库编码阶段,保险库是用给定用户的指纹库模板和秘钥的细节构造的。之后可以使用模糊库对给定用户进行身份验证。保险库解码使用先前生成的模糊保险库和来自用户探测模板的细节来尝试检索密钥。在密钥检索之后,将执行完整性检查,例如循环冗余检查(CRC),以确定是否找到了正确的密钥。在这种情况下,不需要将密钥存储在任何地方来检查是否有匹配的密钥。

我们对vault编码和解码的实现遵循与之前工作相似的原则[20,32],分别如图4和图5所示。与[20,32]相比,我们对某些步骤提出了不同的解决方案,以增强算法的安全性或准确性。在下面,我们将具体描述每个步骤,并提出我们的替代解决方案。

图4:保险库编码过程概述。

图5:金库解码过程概述。

4.2.1保险库编码

保险库编码的过程(图4的步骤)在我们的密码系统中实现如下。

  1. 指纹库图像。将用户的指纹图像作为输入输入到登记算法。

  1. 细节提取。细节是从给定的指纹图像中提取出来的。这些点被定义为山脊终点或山脊分叉点它们有三个属性:x和y坐标和一个角θ,它代表一个脊结束的方向程度或一个分岔的中间角度。我们将从真实指纹图像中提取出来的细枝末节称为真正的细枝末节,以区别于chaff points或chaff minutiae。

  1. 细节的选择。由于假设模糊拱顶中的点数为常数,因此并不是所有提取的细节都用于生成模糊拱顶,通常只使用对比度、流量曲线和曲率[14]等质量较好的细节。在我们的实现中,我们根据这些质量度量对所有提取的细节进行排序,并根据为#选定的细节选择的参数选择最佳的细节。此外,我们指定了一个参数点距离,这是根据x和y坐标的两个细部之间的最小欧几里得距离,以便可以为金库选择它们。这降低了使用单个探测细节进行多个匹配的可能性。

  1. 箔条点生成。为了从可能的攻击者那里掩盖真实的细节,随机的箔条细节或箔条点被生成。在我们的实现中,我们创建的chaff点是真正细节的10倍,这在暴力攻击的复杂性和性能之间产生了合理的平衡[20]。为了创建一个箔条点,我们在指纹图像维度和θ∈[0,360]内随机选择x和y坐标。我们应用与Minutiae Selection中相同的最小点距离阈值约束,只接受表示至少是前一步Minutiae Selection中选择的最小真实细节的一半的箔条点,以避免创建攻击者很容易识别为非真实的点。

  1. 细节编码。对于保险库编码,我们使用从真实指纹模板中提取的真实细节和随机生成的箔条点。为了为模糊库创建元组和多项式映射,需要以相同的方式对这两种细节类型进行编码。在我们的实现中,我们将每个细节的三个属性编码为大小为32的位串(每个x,y坐标为11位,θ为10位)。我们选择这种配置,以适应典型的指纹图像大小,并允许轻松转换为无符号整数的细节表示。所有真正的细枝末节和箔条点的无符号整数稍后用于多项式投影并形成拱顶。

  1. 秘密的一代。在我们的算法中,秘密K是随机生成的整数,用于CRC编码。秘密尺寸需要满足两个约束条件。首先,它的位长需要能被8整除,以便顺利转换为字节。其次,秘密的长度加上它的CRC编码的长度需要被n + 1整除,其中n是多项式次,这样秘密就可以平等地分成多项式系数。在我们的实现中,我们确定一个合适的秘密长度sl,它满足这两个约束,并为秘密生成一个0到2 sl−1之间的随机整数。

  1. CRC编码。需要对所选秘密进行CRC编码,以便在保险库解码的CRC错误检测期间进行完整性检查。我们选择32位CRC而不是[20,32]中使用的16位CRC,以实现更低的碰撞概率,从而获得更好的可靠性。

  1. 多项式编码。这一步与细节编码非常相似。密钥及其CRC编码都转换为位字符串,然后将CRC编码附加到生成的密钥。然后,将整个比特串分成n + 1部分,得到秘密多项式p的特定系数表示。然后将比特串部分解释为无符号整数,得到多项式投影所需的特定系数。

  1. 多项式投影。模糊拱顶的结构是一组(X,Y)元组,其中(X,Y)指定坐标系中的一个点。保险库元组的第一个元素X包含一个真正的细节或chaff point,我们也称之为保险库细节。第二个元素Y的生成方式不同于这两个细节类型。每个真正的细节表示X被映射到秘密多项式p上,结果值被保存为元组的第二个元素,即Y = p(X)。多项式映射是在伽罗瓦场中进行的,因此可以在拱顶解码中实现精确的多项式插值。然后将箔条点随机映射到多项式投影的可能结果空间中的一个数,使它们不位于多项式上。这个映射产生元组的第二个元素Y,其中Y, p(X)。

  1. Vault Scrambling。模糊拱顶是通过变换所有拱顶元组来完成的,这样具有真正细节的元组就不能与包含箔条点的元组区分出来。

4.2.2保险箱解码

vault解码的过程如图5所示,实现如下。

1)指纹探针图像和模糊金库。指纹图像和(声称的)用户的现有模糊vault被作为验证算法的输入。

2)细节提取。以与金库编码相同的方式从探针指纹图像中提取细节。

3)细节选择。选择质量最好的细节的方法与保险库编码相同。

4) Vault Minutiae解码。为了匹配的目的,保险库元组的第一个元素保险库细节需要从它们作为无符号整数的表示解码为实际的细节。解码过程与保险库编码中的细节编码步骤相反。无符号整数被解释为长度为32位的位串,从中可以检索x, y, θ属性的值。

5)对齐和匹配。当匹配两个指纹捕获时,平移和旋转差异等变化很常见,因为指纹传感器以完全相同的方式记录两个捕获是极不可能的。这个问题影响了探测细节与保险库中真实细节的匹配,为了解决这个问题,以前的模糊保险库实现依赖于预对齐的指纹图像[32]或辅助数据[20,31]。在我们的实现中,我们使用几何哈希方法[33]。几何哈希是一种源于计算机视觉的技术,用于将几何特征与特征数据库进行匹配。Chung等人[7]将这种方法应用于模糊拱顶,以减少类内变化,特别是同一手指的不同捕获之间的差异。我们选择几何哈希作为我们的对齐方法,因为它只使用模糊拱顶中的点。因此,不需要像其他全局对齐方案(例如,基于方向字段的方案[31])那样的补充公共helper数据,它可能泄漏关于真正细节的信息。此外,与局部对齐方法(如五个最近邻居或Voronoi邻居[12])相比,几何哈希可以获得更高的匹配精度[7]。

我们在没有实际哈希表的情况下实现了几何哈希的基本方法。我们创建一个列表的列表,我们称之为几何表。顶部列表和子列表都具有相同的长度,等于保险库细节的数量。几何表的每个子列表或元素都与一个特定的保险库细节(保险库元组的第一个元素)相关联,作为基础,并包含根据所选基础转换的所有其他保险库细节。基细节被移动到坐标系的原点(0,0),该坐标系表示其轴上的x和y细节坐标。然后旋转基本细节,使其方向水平指向右侧。同样的平移和旋转,然后应用于所有其他vault细节。每个保险库细节被选择为一次基础,我们将所有其他保险库细节与它在几何表中的元素对齐。我们仍然保留原始的保险库元组,现在由转换后的保险库细节所引用。我们对从探针指纹中提取的细节重复相同的过程,并创建一个几何表,其中我们选择每个探针细节作为一次基底,并相应地转换所有其他细节。

我们用这两个几何表进行匹配。我们的算法将所有探测细节作为一个基础进行一次迭代,并尝试在模糊拱顶的几何表中找到一个类似的基础。目的其中的一个变换就是找到两个被选为基的细节它们实际上是手指上的相同细节。在这种情况下,所有其他细节都应该很好地对齐,并可以与小阈值匹配。在图6中,我们用两个细节来说明转换,这两个细节是相同的,但是来自两个不同的捕获,一个来自保险库中的画廊模板,另一个来自探测模板。所选的两个基础细节分别用红色和蓝色虚线表示。

图6:应用于指纹细节的几何哈希。

在固定探针几何表中的一个元素后,在拱顶几何表中寻找与探针几何表中的一个元素的基向相似的合适元素。在基底θ阈值内找到两个合适的基底后,探头中每个对应的变换细节与拱顶几何表中所选基底的所有变换拱顶细节进行匹配。这意味着细节只在经过转换的空间中根据其指定的基础进行比较。

为了匹配两个细节,我们使用三个主要阈值,即x, y, θ。如果两个minutiae满足所有阈值,即属性中的所有差异都低于各自的阈值,则认为这两个minutiae是匹配的,并将相应的vault元组放入候选集中。此集合包含用于下一步多项式插值的保险库元组。

在评估了来自两个所选基的所有细节后,如果候选集中vault元组的数量大于n + 1,则尝试多项式插值,其中n是多项式次。否则,选择另一个相似的基础来重复细节匹配。如果所有的探测细节都被选择为基础,并且没有匹配被注册,那么在这一步就可以报告解锁金库的失败。

6)多项式插值。多项式插值开始时,如果候选集的大小大于n + 1在一个运行结束时,两个给定的底数。如果找到的候选数较少,则不能对秘密多项式进行插值。如果候选元组中有足够的vault元组,则需要计算大小为n + 1的所有子集,因为并非所有候选元组都包含真正的库细节。对于每个子集,在伽罗瓦场GF(2 32)中使用n + 1个金库元组进行拉格朗日插值,这些元组被解释为(X,Y)数据点,其中X和Y分别是金库元组的第一个和第二个元素。得到的插值多项式被传递到下一步。如果CRC错误检测报告了一个错误,该算法继续插值的其他子集如果没有子集给出匹配,则候选集合最终继续与其他基匹配保险库细节。

7) CRC错误检测。插值多项式表示模糊保险库的原始秘密及其CRC编码的拼接。因此,我们可以使用CRC作为完整性检查,并应用与vault编码的步骤CRC编码相反的方案。多项式的系数被编码为位串。最后32位表示实际秘密的CRC编码,从位串中截取。然后,对密钥(即比特串的其余部分)应用CRC编码。如果结果的CRC编码等于从多项式表示中切割的32位,那么很有可能检索到正确的秘密,我们的算法报告成功解锁金库,因此匹配。

8)正确的秘密。如果没有检测到错误,则已经检索到正确的秘密,并且成功验证了用户。

4.3实施方案和权衡

4.3.1、伽罗瓦场的精确计算

在保险库解码阶段,精确的多项式插值是完整性检查成功的必要条件。为此,所有真正细节的多项式投影以及多项式插值都必须在伽罗瓦场中计算。如果在没有伽罗瓦场的情况下进行插值,例如,通过最小二乘拟合,插值结果将不准确,因此,完整性检查无法成功。在我们的实现中,我们使用伽罗瓦字段GF(2 32),这样所有可能的细节表示(32位无符号整数)都可以在没有量化的情况下被唯一表示。为了将32位无符号整数转换为GF(2 32),我们首先将无符号整数转换为位字符串表示。由于伽罗瓦场可以看作是一组多项式,我们将位串解释为多项式的系数。对于32位,我们为gf(2 32)得到了恰好2 32个元素。在我们的算法中迭代地找到一个不可约多项式,从而对特定的伽罗瓦场计算出相同的不可约多项式。操作inGF(2 32)避免了以前工作[20,32]中存在的量化需求,代价是计算复杂性增加。

4.3.2、几何哈希对齐

使用几何散列相对于其他对齐解决方案的安全性优势已经在前面得到了证明。不过,安全性的提高和实现的相对简单性可能以运行时性能为代价,因为需要匹配许多基础和细节。通过引入参数θ basis阈值,只考虑vault中与从探针模板接收到的minutiae方向相似的细节作为基础,我们可以大大降低匹配的可能性,从而降低匹配的运行时间。使用这样的阈值是一个合理的假设,因为通常ngerprint捕获不会dier超过10到20度。在我们的实验(第7节)中,我们观察到,与使用10度的θ基阈值相比,不使用θ基阈值的总运行时间高出三倍多。

4.3.3、细项匹配阈值

细节匹配阈值点距离、x、y和θ阈值的指定cation对我们算法的准确性有重要影响。最优参数在很大程度上取决于输入指纹数据库以及特定的用例及其可用性和安全性需求。我们在第7节中广泛分析了不同参数对FVC2006 DB 2A[5]的影响。

选择阈值的一个敏感点是,一个探针细节可能匹配保险库中的多个画廊细节。这是可能的,如果两个画廊的细节彼此靠近,而探测的细节也很接近,当在由两个合适的基地定义的转换空间中匹配时。即使箔条点被偶然匹配也没有关系,因为它们不会提供获取秘密的信息。在最坏的情况下,攻击者需要更少的探测细节来匹配多个正确的细节。

我们可以通过只允许一个探测时间匹配一个金库时间来避免这种情况。但是,如果探针和图库指纹模板只有很少的可匹配的细节,并且一些探针细节匹配有箔条点,那么我们就会有一个不正确的匹配和较低的精度。因为在我们的算法中,匹配细节的顺序是随机的,我们甚至可以得到不一致的结果,这取决于一个箔条点或一个真正的细节是否与探测细节匹配。如果选择相应的阈值,添加参数点距离可以防止出现这种情况。这意味着所有的保险库细节都需要被至少一个点的距离隔开,这个距离需要大于细节匹配阈值。

然而,在实际操作中,这种方法也不起作用,因为点距离越高,就越难找到箔条点,因为新生成的箔条点需要保持与之前所有vault细节的点距离。如果我们减少细节匹配阈值,我们的算法的准确性会大大下降,因为匹配变得过于保守,很少有匹配可以报告。在我们的实现中,我们接受这样的风险,即攻击者可能通过将多个正确的细节与单个探测细节匹配来获得小优势。我们的算法将所有保险库元组添加到候选集,该候选集的保险库细节在希望进行身份验证的用户的至少一个探测细节的细节匹配阈值之内。

4.3.4、候选子集的生成

为了提取多项式系数和秘密,需要从整个候选细节集(通常要大得多)中找到大小为n+1的子集。我们在系统中实现了三种不同的方法来生成候选子集,每种方法都有自己的优点和缺点:

•迭代选择:通过迭代选择,子集按顺序创建。这意味着一次只能换出一个元素。如果选择的第一个子集包含很少的真正的细节,则需要大量的迭代才能最终交换出无用的细节元组。我们的实验表明,与其他两种方法相比,生成子集的平均时间要慢得多,几乎是10倍。然而,由于考虑了所有可能的子集,该方法保证了确定性结果。

•随机生成:在随机生成中,创建所有可能的子集,并在洗牌后迭代。这通常避免了迭代选择中描述的情况,并导致更小的平均时间。当遍历所有可能的子集时,该方法还保证了确定性结果。然而,这该方法有一个很大的缺点,即必须预先生成所有子集。如果候选细节集非常大,例如超过35个元素,并且所选择的多项式次大于12,则在具有8 GB RAM的普通计算机上可能会出现内存溢出。此外,预先生成子集需要固定的时间,与何时找到匹配无关。

•随机选择:在随机选择中,子集是随机选择的。在每次迭代中,算法从候选集中随机选择一个子集。迭代的次数设置为与候选集中可能的子集组合的总数相同。这通常会导致较短的平均执行时间,并且不会引起内存问题。在我们的实验中,随机选择方法比随机生成技术快10 - 25%。但是,这种方法的缺点是不确定的,因为不是所有可能的子集都需要被选择。

在我们的实现中,我们建议随机选择候选子集的生成。从经验来看,产生模糊结果的概率非常小,随机选择可以产生最快的运行时间。

4.3.5、CRC与SHA

大多数基于模糊拱顶的算法使用CRC作为完整性检查[20,32]。我们认为SHA是一个潜在的更好的选择,因为可以预期更少的碰撞。例如,SHA-256映射为256位,而CRC-32仅映射为32位,即使用SHA-256进行完整性检查更可靠。然而,在使用具有较大摘要的哈希函数时,安全性是需要权衡的。在我们当前的算法中,我们在伽罗瓦字段GF(2 32)中操作,并将每个32位无符号整数映射到字段中的一个元素。这意味着秘密多项式中的每个系数只能是32位,因此我们可以将它们每个转换为一个特定的GF(2 32)元素。例如,如果我们选择SHA-256作为我们的完整性检查,我们已经需要8个系数来编码SHA-256摘要。因此,至少需要一个8的多项式次才能有9个可用系数。如果多项式阶数为8,秘密就只有32位。当然,选择一个非常小的秘密也会带来潜在的攻击者试图直接暴力破解秘密的风险。如果攻击者发现了32位的秘密,就可以计算SHA-256摘要,从而计算秘密多项式。因此,攻击者只需要检查金库对,看看哪些对映射到多项式上,以提取真正的细节。

5、分布式访问控制

我们的分布式访问控制应用程序证明了在现实环境中基于指纹的模糊vault认证的适用性。我们提出了一个使用商用指纹传感器和云环境的原型设置。

5.1、安装和服务

我们使用以下硬件、库和服务来构建我们的分布式系统:

•Adafruit指纹传感器[1]:我们使用Adafruit光学传感器来捕获用户的指纹图像。我们不使用传感器内置的匹配算法。

•树莓派[26]:树莓派作为我们的本地计算机,在本地运行我们的算法,包括vault编码和解码(章节4.2)。

•Pyfingerprint[4]:我们使用Pyfingerprint库将Adafruit指纹传感器与Raspberry pi连接起来。

•Azure Cosmos DB [18]: Azure Cosmos DB作为我们的数据库和云存储。

•PyMongo[19]:要访问Azure Cosmos DB,我们使用PyMongo和Cosmos DB提供的MongoDB API。

硬件、库和服务之间的数据流在图7中用箭头表示。在我们的原型系统中,我们使用了两个树莓派;一个用于登记,另一个用于验证指纹。两台本地计算机具有相同的功能,并且可以根据第3.1节的系统模型互换地登记和验证指纹。

图7:用于登记和验证指纹的分布式访问控制应用程序。

5.2、应用特点

我们的应用程序有两个特性,即将指纹注册到Microsoft Azure的数据库中,并验证指纹是否已注册。例如,一个可能的用例是多个建筑物的访问控制。在这种情况下,用户可以在任何建筑物登记一次指纹,之后就可以进入所有相关建筑物。当然,注册过程必须限制为真实环境中的授权人员。

5.2.1注册指纹

要登记指纹,系统会提示用户输入一个ID号,该ID号稍后用于验证指纹。在发出身份证号码后,用户可以将手指放在Adafruit指纹传感器上登记指纹。将图像下载到连接的树莓派上,然后提取细节。如果提取的minutiae数量小于#selected minutiae的固定参数,则会提示用户重新扫描手指。通常情况下,阈值设置在25到50之间,而手指通常有50到80个细节。因此,通常只有在手指扫描不正确的情况下才需要重新扫描。

如果捕获到足够细节的指纹图像,则根据vault编码创建模糊vault。之前定义的ID号附加到模糊库,整个结构使用Python字典序列化为JSON对象,并通过PyMongo发送到Azure Cosmos DB。JSON对象包含一个内部对象ID,即用户提供的ID号和(X,Y)金库元组的数组。数据库确认仓库接收后,删除本地仓库,同时删除指纹图像和模板。这就成功地完成了指纹登记。

注:除模糊vault外,整个几何表可以存储在Azure Cosmos DB中,以避免接收vault解码后在本地计算机上计算几何表。这种方法在Azure Cosmos DB中是不可行的,因为文档大小限制为2 MB(几何表实际上大于3 MB),但如果不适用这种限制,则可以考虑使用这种方法。

5.2.2验证指纹

要验证指纹,首先会提示用户输入ID号,以便从数据库中检索相应的模糊金库。从Cosmos DB中获取JSON格式的模糊金库,并对金库进行反序列化解码。用户被要求将手指放在Adafruit指纹传感器上,以便根据参数#selected minutiae捕获具有足够细节的探针指纹。

在扫描到合适的指纹图像后,使用模糊vault运行vault解码。如果保险库被成功解码,这意味着秘密的CRC匹配,则报告匹配。否则,系统将上报认证失败。然后从本地计算机中删除探针指纹模板和对应的图像。

注意:在整篇论文中,我们考虑的是用户验证而不是识别(n对1匹配),因为使用大型指纹数据库进行识别会带来严重的安全风险,因此应该避免[22]。相反,我们使用一个ID号和ngerprint验证,它只匹配一个金库和一个探针ngerprint。ID号用作PIN,不一定是唯一的。只要对于特定的ID没有太多相同的条目,ngerprint identi阳离子可以用于相同的ID号。在这种情况下,将尝试对分配给相同ID的所有模糊金库进行匹配,并且只需要匹配一个。如果限制身份证号码是唯一的,指纹验证是有保证的,可以达到更好的安全性。

6、安全分析

安全性和隐私保障很大程度上取决于资产(如指纹模板)的使用和存储位置。根据我们的威胁模型(第3.2节),在我们的分布式系统中,指纹登记和验证运行在安全执行环境中的本地计算机上,存储金库的云服务器诚实但奇怪。安全执行环境之外的计算机存储和云存储是不可信的。

通过在本地创建模糊库,我们不需要将敏感的指纹图像传输到服务器。映像可以在创建保险库后立即删除,用于验证的探针指纹也可以删除。然而,由于模糊保险库是以未加密的形式存储和传输的,攻击者可能会窃取模糊保险库并试图解锁。在本节中,我们将描述一种离线暴力攻击,该攻击遍历所有可能的保险库对子集,并尝试插值秘密多项式。如果发现一个子集正确地插入秘密,攻击者可以生成一个指纹模板,其中包含相应子集中的金库对的第一个元素,以解锁中的模糊金库在线算法。第6.1节对攻击进行理论分析,第6.2节对攻击进行经验分析。

请注意,或者,攻击者可以尝试生成类似的细节来匹配真正的金库对,从而找到足够的真正的细节来进行插值。这种方法对攻击者来说更难实现,为了简洁起见,省略了对其的分析。

6.1、理论分析

对于一个多项式次数为n的秘密多项式p(x),需要一个大小为n+1的vault对子集来进行插值。在这种情况下,所有n + 1个拱顶对元素都需要包含真正的图库细节,前提是使用CRC的完整性检查工作正确,并且chaff点不位于秘密多项式上。

我们假设在模糊保险库中总共有v = g + c对保险库,其中g是真正的画廊细节的数量,c是保险库创建时定义的糠点的数量。这给了攻击者= (n+1)个总大小为n+1的保险库对子集。在这些集合中,gs= (n)子集完全包含了真正的画廊细节,可以用来正确地插入秘密多项式。这使得cs = vs - gs箔条对子集可以包含真正的金库对,但至少包含一个箔条金库对。如果大小为n + 1的候选子集中只有一个元素是箔条拱顶对,则秘密多项式的插值由于箔条拱顶对不在秘密多项式上而失败。

攻击者不知道哪些库对包含真正的图库细节,因此他/她只能随机选择一个子集接着另一个子集进行插值。对于1≤i≤cs,设Ci是一个随机变量,如果在选择任何真正的子集之前选择了第i个箔条子集,则返回1,否则返回0。攻击者需要寻找合适的子集来正确插值秘密的期望尝试次数可以计算如下:

第一个项(1)表示所选择的终止的第一个真正子集。是第i个箔条子集在任何真实子集之前被选中的概率,其中gs + 1表示真实子集和第i个箔条子集的总数。我们对每个箔条对子集重复这个计算。为了计算一个可能的攻击者通过随机子集插值来解锁一个模糊金库的期望时间,我们将选择一个真实子集的期望时间与每个子集l(n)的平均拉格朗日插值时间相乘:

注意,平均插补时间随多项式次n线性增加。在下面,我们总结了参数g、c和n对攻击者需要解锁秘密的预期时间的影响。为了更好地显示安全影响,我们表示了期望值扩展二项式系数E(gs,cs):

表1:安全性分析参数。

•通过增加真正的细节g的数量,期望值E(gs,cs)只随着分母的增长而减小,因此安全性降低。

•通过增加箔条点c的数量,E(gs,cs)也增加,因为提名人中的v = g +c增加。因此,攻击者平均需要更多的尝试来解锁金库。

•通过改变多项式阶n,分母和分母的二项式系数也会改变。v的关系式如Eq. 4所示,但同样适用于g。在我们的算法中,v比n大一个数量级,这意味着当n增加时,增加。G没有v大,但至少是n + 1的两倍,所以同样的关系适用。

因此,Eq. 3中的两个二项式系数都随着n的增加而增加。然而,(v−n−1)!比项(g−n−1)收缩得快!As v = g + c >c >0. 这意味着,以n为分母的分数比以g为分母的分数增长得更快,即期望值总体上是增加的。随着E(gs,cs)随着n的增加而增加,攻击者需要更多的尝试来找到一个合适的子集来插值正确的秘密,从而增强了安全性。

6.2、实证分析

我们通过使用参数g、c和n的典型值以及单个插值的实际平均时间l(n)来估计攻击者使用上述策略解锁模糊金库的尝试次数和时间。l(n)是我们使用普通服务器实例实现第5节时测量的。我们在表1中给出了两个参数配置。虽然这两种认证看起来几乎相同,但在位安全方面的差异是显著的。

对于配置1,公式1给出了攻击者正确插入秘密的大约1.86·109次预期尝试次数。这大致相当于一个30位的安全级别为1.86·109≈2 30。如表1所示,将多项式阶数增加到12,我们得到了一个完全不同的结果。我们保持平均子集插值时间不变,因为在实践中,多项式度8和12之间的时间差异可以忽略不计。对于配置2,预期的尝试次数增加到大约6·1013,这大致对应于46位安全级别。

请注意,现在通常认为46位安全级别不安全。增强安全级别的一种可能是使用多个手指来创建多个模糊金库,为了进行身份验证,所有这些金库都需要匹配。另一种可能是增加箔条点的数量或多项式次,这将对运行时性能和精度产生影响。根据每个特定的用例,需要在安全性和可用性之间找到适当的平衡。

7、评估

本节将对我们的生物识别密码系统实现进行评估。第7.1节描述了实验设置。在第7.2节中,我们使用公共指纹数据库评估模糊金库算法,并将其与广泛使用的指纹识别算法进行比较。在第7.3节中,我们分析了参数选择对安全性和可用性的影响,在第7.4节中,我们给出了特定于分布式访问控制应用程序的结果。

7.1、实验设置

7.1.1数据集和协议

我们使用来自光学传感器的图像对2006年指纹验证大赛(FVC2006)数据库2A[5]运行第4.2节的身份验证算法。这些图像与Adafruit光学指纹传感器获得的图像相似,在所有FVC2006数据库中具有最高的图像分辨率。数据库2A由来自140个手指的指纹图像组成,每个指纹图像有12个捕获,总共有1 ' 680张图像。对于7.4节的实验,我们没有使用指纹数据库,因为该系统是由人们在Adafruit FPS上注册和验证他们的指纹进行测试的。FVC2006数据库2A和Adafruit FPS的规格如表2所示。

表2:FVC2006 DB 2A和Adafruit FPS规格。

对于我们使用FVC2006的实验,我们考虑了三个不同的协议。all vs all协议分析数据库2A中所有可能的匹配。文献中经常使用FVC协议和1vs1协议对FVC数据库进行评估。例如,Ferrara et al.[10]使用两种协议对FVC2006 2A评估了他们的P-MCC方法。由于所有协议的结果都显示出非常相似的趋势,为了简洁起见,我们只给出FVC协议的结果。

在FVC协议中,为了评估FNMR,将每个指纹捕获与同一手指的其余捕获进行比较。FMR是通过将每个指纹的第一个模板与所有其他手指的第一个模板进行比较来确定的。不执行对称比较。如果t1与t2比较,t2与t1不匹配。结果在FVC2006 2A中,FNMR的总匹配数为9 ' 240,FMR的总匹配数为9 ' 730。

7.1.2软硬件配置

为了评估我们的模糊vault算法的准确性(即FMR和FNMR)和运行时性能,我们使用Intel i5-3470四核处理器的服务器实例,时钟为3.4 GHz,并在FVC2006数据库2A上运行。我们的算法运行在Docker容器[8]中,使用PyPy[24],这是一个用于Python的即时编译器。为了对算法进行评估,采用NBIS[14]的MINDTCT对指纹图像进行预处理,进行细节提取和质量评估,并提供细节模板作为算法的输入。其他库依赖项包括用于CRC编码的Python binascii库[25]和来自Sympy[29]的用于计算多项式映射和在Galois字段中执行拉格朗日插值的galoistols。为了便于将来评估,我们实现的源代码可以从[3]下载。

对于分布式应用,我们的算法运行在带有ARM Cortex A53 CPU的树莓派3上,运行频率为1.2 GHz。两个树莓派分别连接着Adafruit指纹传感器和Azure Cosmos DB。MINDTCT [14], binascii[25]和Galoistools[29]像以前一样集成在应用程序中。

7.2、认证算法评估

对于我们使用FVC协议的实验,我们考虑了表3中列出的各种参数配置。考虑的参数是多项式度n,真正的细节g和chaff点c,点距离pd,细节匹配阈值xthr es, ythr es, θthr es和θ基阈值θ-basisthr es。我们只列出感兴趣的构型。某些阈值在显示的配置中是相同的,并且由于其良好的性能而被选择。验证算法的w.r.t.准确率和运行时性能实验结果如表4所示。图8说明了各种配置的实现精度。

表3:FVC协议实验配置。

表4:FVC协议:准确性和运行时性能。

图8:FVC协议:准确性。

如图8所示,我们的算法可以进行调整,以实现非常不同的FMR/FNMR比率。它总是取决于用例来决定安全性和可用性之间的理想平衡。例如,在我们所有的实验中,配置3的FNMR最低,大约为3%,然而,在大多数用例中,它的FMR为4.22%,这是不可接受的安全性。配置2提供了一种替代方案,其FNMR相对较低,为3.89%,但FMR较低,为0.74%,这仍然被认为是高的,因此仅可用于安全性较低的用例。配置4具有最小的FNMR,没有单一的假阳性(FMR=0),这使得它适合于高安全性的应用程序,其中用户愿意在可用性方面接受一些妥协。构型6表明,通过更保守的参数,这里通过选择一个更高次的多项式,FNMR急剧增加。我们假设配置1和5对于大多数实际应用程序都达到了合理的平衡。这两个通过NBIS[14]的指纹匹配算法NBIS BOZORTH3,我们得到的FNMR与文献中常用的NBIS[14]指纹匹配算法NBIS BOZORTH3的FNMR非常接近。各自的身份验证运行时也是可以接受的(最多2.3秒)。

此外,我们将我们的算法与Ferrara et al.[10]的P-MCC64算法进行了比较。与FVC2006 2A相比,他们的实现实现了不到1%的FNMR和0%的FMR。当FMR≤0.1%时,P-MCC64可实现FNMR小于0.5%。但是请注意,我们的算法提供了更高的安全性保证,因为在反向模板中随机选择的细节是真实的概率接近P-MCC64[10]的25%(比较我们在第6.2节中的参考结果)。

我们还将我们的算法与基于Sutcu等人的发现的模糊提取器原型进行了比较。他们的方法围绕特征向量提取来获得难以用长方体反演的细节信息。我们使用FVC协议和第7.1.2节中相同的服务器实例实现并运行了针对FVC2006 2A数据库的模糊提取器的基本实现,但是使用了Python3而不是PyPy3,因为这导致了更好的运行时性能。我们的结果显示FMR为7.16%,FNMR为80.63%,平均总运行时间约为7秒。与这个简单的原型相比,我们的算法以更低的运行时间获得了更高的精度。

与以前的模糊保险库实现[16,20,30,32]进行直接比较是不可行的,因为它们的算法是针对非公开可用的指纹数据库或旧的FVC数据库进行评估的。我们在FVC2006上的结果表明,与他们报道的结果相比,准确性相同或更高。回想一下,安全性也有望更好,因为我们的方法不依赖于辅助数据进行指纹比对。

7.3、参数影响评价

由表4可知,不同参数的FMR、FNMR精度和验证时间差异显著配置。在这里,我们评估了所有参数对准确性和运行时的影响(关于对安全性的影响,请参见章节6.1)。我们通过固定所有参数来运行实验,但我们分析的影响除外。表5总结了我们的实验结果。下面将分析每个参数的影响,以帮助系统开发人员为其应用程序选择适当的参数。

表5:参数增加对精度/运行时的影响

多项式次数n:更高的多项式次数增加候选集中细节的最小数量。这意味着需要匹配更多真实的细节,使得匹配更加保守,FMR更低,但FNMR更高。在我们的实验中,较高的n只会略微增加总运行时间:虽然插值时间增加了,但插值次数减少了,因为合适候选集的阈值也增加了。

#genuine minutiae g:更高数量的真正细节意味着在金库编码阶段有更多选择的细节,在金库中发现更多真正的细节。因此,两个指纹捕获之间的匹配概率增加,从而导致更高的FMR和更低的FNMR。对于更高的g,总运行时间也会增加,因为发现了更多的候选,因此需要更多的插值尝试。

#cha points c:: chaff points的个数不影响算法的准确性。然而,运行时随着c的增加而增加,因为在使用更大的几何表进行拱顶解码时必须进行更多的遍历。

Points distance pd:如果选择的最小点位距离合理小,则既不影响运行时性能,也不影响精度。在这个上下文中,合理的小指的是类似的值作为细节匹配阈值。然而,如果pd设置得太高,运行时性能就会急剧下降,因为除了所有其他vault细节之外,需要花费大量时间来找到符合至少pd要求的随机chaff点。只有当pd高到没有足够高质量的真正画廊细节可以选择时,精度才会受到相当大的影响。

Minutiae matching thresholds xthr es,ythr es, θthr es: 这些阈值越低,算法越保守,FMR越低,但FNMR越高。当增加阈值时,可以观察到相反的效果。阈值的增加也会增加运行时,因为匹配的细节更多,迭代需要更长的时间。

θ basis thresholdθ-basisthr es:我们评估了在10和20度之间改变θ基阈值的影响。由于数据库中没有指纹捕获的实际差异超过15度,因此在[0,15]范围内改变O基阈值时,增加O基阈值会导致FNMR下降,FMR略有增加。然而,随着o基值的增加,运行时略有增加,因为解码需要更长的时间,因为匹配基细节的可能性更多,因此迭代也更多。如果我们移除θ基阈值,将其设置为360度,使所有的基都匹配,运行时将显著增加。在我们的实验中,我们观察到总运行时间比θ-basisthres为10度时高出三倍以上。

7.4、分布式应用评估

在本节中,我们将重点讨论分布式身份验证应用程序的运行时性能评估。我们不考虑准确性,因为使用FVC2006数据库2A进行的评估更广泛,并且在前面的章节中已经得出了具有代表性的结论。此外,Adafruit FPS提供的指纹图像分辨率和质量低于数据库2A中的,从而对准确性产生负面影响。

为了在分布式环境中测试我们的算法,我们进行了登记和验证指纹的实验。我们登记了10个手指,每个手指5个捕捉,这导致了50次模糊vault编码调用。每个调用都生成一个单独的模糊保险库。如果某个指纹图像的细节太少,应用程序就会提示用户重新扫描指纹。这些重新扫描没有记录在实验中。

为了验证指纹,我们用两种配置进行了两种不同的实验。在第一个中,我们对50个模糊金库中的每一个进行一次验证,捕获属于生成模糊金库的同一根手指。这涵盖了真实用户试图进行身份验证的用例。在第二个配置中,我们也对每个模糊金库进行一次验证,但是使用不同的手指来创建模糊金库。这对应于试图进行身份验证的冒名顶替者。我们还评估这个场景,以显示在不匹配的情况下的运行时差异。我们在分布式应用程序上的实验结果如图9所示。

图9:分布式应用程序运行时。

我们的实验表明,FPS捕获运行时间,即应用程序从NBIS[14]下载指纹图像并运行MINDTCT所需的时间,占整个运行时间的最大部分。鉴于MINDTCT的平均速度非常快,我们得出结论,FPS捕获运行时间受到Adafruit FPS硬件的限制,它不允许更快地传输到树莓派。此外,编码和解码运行时与我们在前几节中在服务器上运行身份验证算法时的结果相比要高得多。这是意料之中的,因为树莓派的资源有限。真实用户和冒名顶替者配置之间的解码运行时的差异是合理的,因为通常在冒名顶替者配置中需要更多的迭代。当运行真正的用户配置时,算法只运行到找到匹配为止,平均时间为14秒。

8、结论

在这项工作中,我们设计并构建了一个基于模糊金库的概念验证生物识别密码系统,该系统可用于分布式认证,具有较强的安全性和隐私保障。我们介绍了现实世界的实现挑战,并提出了解决方案及其各自的权衡。实验结果和商用硬件样机实现表明,该密码系统在实际应用中是可行的,在不影响精度和运行时性能的前提下,比目前广泛使用的指纹识别算法更安全。同时,由于指纹比对独立于辅助数据,在安全性方面对现有密码系统进行了改进。因此,我们认为它是一种安全、可用的分布式身份验证的现实解决方案。在未来的工作中,我们打算在各种硬件平台和用例上评估我们的访问控制应用程序,并根据他们的需求进行定制,以评估其在工业环境中的性能(包括通信成本),基于广泛的用户研究。

猜你喜欢

转载自blog.csdn.net/weixin_62646577/article/details/128756478