Privacy Protection in Distributed Fingerprint-based Authentication

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

Summary:

Biometric authentication is gaining popularity due to the ease of using unique personal characteristics (e.g., fingerprints, palm prints, irises). Fingerprints in particular are widely used due to the availability and low cost of fingerprint scanners. To avoid identity theft or impersonation, fingerprint data is usually stored locally, for example, in a trusted hardware module, in a device for user registration and authentication. However, local storage limits the ability to implement distributed applications where a user registers a fingerprint once and then uses it to access multiple physical locations and mobile applications.

In this paper, we propose a distributed authentication system that stores fingerprint data in a server or cloud infrastructure in a privacy-preserving manner. Multiple devices can be connected for user registration or verification. To protect the privacy and integrity of sensitive data, we employ an encryption structure known as an obfuscated vault. We highlight the challenges of implementing fuzzy vault-based authentication, for which we propose and compare alternative solutions.

We performed a security analysis of our biometric cryptographic system, and as a proof of concept we built an access-controlled authentication system using a resource-constrained device (Raspberry Pis) connected to a fingerprint scanner and a Microsoft Azure cloud environment. Furthermore, we evaluate the fingerprint matching algorithm against the well-known FVC2006 database and show that it can achieve comparable accuracy to widely used matching techniques not designed for privacy, while maintaining an effective authentication time of a few seconds.

Keywords: privacy, biometrics, fingerprint authentication, fuzzy vault

 1 Introduction

Motivation: In this connected world, digital identity is critical to user applications. Digital identity theft or impersonation attacks can compromise the privacy of the victim and lead to serious consequences such as financial loss or illegal behavior. This risk creates a need for reliable authentication technology. Biometric authentication offers the benefit of high reliability because, unlike smart cards or text passwords, biometrics cannot be lost or forgotten, and biometric forgery or theft is extremely difficult.

Hence, fingerprint authentication is often used, e.g. in smartphones, which store and manage fingerprint data locally in Trusted Execution Environments (TEEs), such as Trusty TEE [23] and Secure Enclave for Android and Apple devices, respectively. [2]. The practice of secure local storage prevents sensitive data from leaking to external attackers, but it also hinders the development of (effective) distributed biometric authentication. The distributed authentication use case we investigate in this work is a fingerprint-based access control system used in several buildings of an international company equipped with fingerprint scanners at their entrances. Scanners allow employees to be authenticated into the appropriate building. The distributed authentication system does not need to enroll fingerprints separately at each site, only one-time registration is required, and then multiple locations can be accessed. To do this, employees only need to swipe their ngers, and don't have to worry about forgetting passwords, losing smart cards, or relying on additional devices like smartphones.

Despite its availability and convenience, distributed authentication is still not widely accepted due to the high risk of theft of biometric information stored online in an untrusted environment [22]. In the case of a fingerprint data leak, not only can the identity be misused across multiple locations/apps, but the same finger can never be used for authentication. Revoking fingerprint data is very challenging because each person typically has 10 different fingerprints. Our work aims to develop a distributed fingerprint-based authentication system to protect users' sensitive data.

To protect biometric data, most existing works integrate biometrics with cryptography, following one of two approaches: revocable biometrics or biometric cryptosystems [27]. Reversible biometrics include technology that converts biometrics into a conversion domain where a comparison of user authentication also takes place. Inversion of the transformed biometric must be infeasible, i.e. an attacker cannot retrieve the original biometric from the transformed field. In contrast, biometric cryptosystems bind a digital key to a biometric feature, or generate a digital key directly from a given biometric, resulting in a key binding or key generation scheme, respectively.

An established key-binding biometric cryptosystem is the fuzzy vault [13]. A fuzz vault is a secure data structure that binds a key to a biometric (in our case, a fingerprint). This key can only be extracted by the capture of a fingerprint similar enough to the one it is bound to, so only the owner can unlock the obfuscated vault and retrieve the fingerprint data. Fuzzy Vault provides a strong security guarantee by protecting bound fingerprints with high random noise. It is very difficult to extract a fingerprint without capturing the same finger, which greatly reduces the risk of identity theft compared to revocable biometric methods [13]. Furthermore, the prototype implementation of Fuzzy Vault shows good results in terms of the accuracy of fingerprinting [20]. Due to its strong security and accuracy, we base our authentication system on Fuzzy Vault and deploy it in a real distributed environment for the first time.

Contribution: This paper proposes a secure and practical distributed biometric authentication system. The quality of a biometric system is usually evaluated by the false match rate (FMR) and false non-match rate (FNMR), also known as matching accuracy [17]. For safety, we aim to minimize the FMR of the solution. For usability, we aim to minimize FNMR as well as the time required for successful authentication. Our main contributions towards these goals are as follows:

  • We propose a distributed biometric cryptosystem where user fingerprint data is stored in the cloud and multiple connected devices can enroll and authenticate users without maintaining local fingerprint copies. Our solution is based on a well-known technique with proven security properties, the fuzzy vault [13].

  • We highlight the implementation challenges of certain primitives, propose alternative solutions, and analyze their trade-offs in terms of safety and usability. Based on our analysis, we propose the use of (i) polynomial operations in the Galois field to allow precise interpolation during the fuzzy vault decoding stage, and (ii) geometric hashing for fingerprint template alignment, which improves security and accuracy without relying on public helper data, (iii) custom fuzzy vault matching threshold configurations according to the needs of each individual use case.

  • We analyze the security of a distributed biometric cryptosystem and estimate the vulnerability probability. • We developed a proof-of-concept implementation of a commercial fingerprint scanner connected to an embedded device (Raspberry Pi) and Microsoft Azure cloud.

  • We evaluate our system extensively against the well-known FVC2006 fingerprint database and demonstrate its applicability in real-world scenarios. The system provided accuracy comparable to widely used fingerprinting methods that were not designed for privacy, with an authentication time of less than 3 seconds on an average computer. It also improves upon existing biometric cryptosystems in terms of security and/or accuracy.

Note that this paper is an extended version of [11].

outline. In the remainder of this paper, Section 2 presents related work. Section 3 presents our system and threat model assumptions. Section 4 provides an overview of the fuzzy vault structure, the implementation challenges we encountered, and the chosen solutions with their respective trade-offs. Section 5 details the implementation of a distributed fingerprint-based authentication application for access control in a multinational corporation. Section 6 presents the security analysis and Section 7 presents an empirical evaluation of our cryptosystem. Section 8 concludes the full text.

2. Related work

Fingerprint recognition. Due to the increasing use of biometric authentication, fingerprinting is a well-studied research topic. Fingerprint recognition algorithms extract a mathematical representation, called a template, from a fingerprint image and use it to verify a match between two fingerprints. Matching requires comparing several features of the fingerprint pattern, such as the valleys and ridges of the finger skin. Most recognition algorithms focus on minutiae features, which are points defined as ridge ends (where valleys split) or ridge bifurcations (where ridges split), while other techniques include correlation-based or ridge-based matching [17 ]. Commonly used minutiae-based matching techniques include NIST Biometric Image Software (NBIS) [14], Verifinger [21] and Minutia Cylindrical Code (MCC) [6]. These algorithms only match fingerprint templates and do not guarantee the security of templates.

Fingerprint template protection. In the literature, two basic approaches to template protection are revocable biometrics and biometric cryptosystems [17,27]. In revocable biometrics, feature conversion techniques (including irreversible conversion and salting) convert unprotected registration templates into protected registration templates with corresponding conversion functions. During verification, probes or verification templates are also transformed in the same way, and comparisons are performed in the transformed space. Ferrara et al. [10] implemented a protected Minutia cylinder code (P-MCC) based on MCC [6] using non-reversible transformations. In contrast, biometric cryptosystems either generate encryption keys from fingerprints (key generation) or use fingerprints to protect keys (key binding). A prominent example of a key generation technique is the fuzzy extractor [9], where an encryption key is generated from noisy fingerprint data. As for key-binding biometric cryptosystems, fuzzy vaults [13] are one of the most well-known techniques. We will detail its implementation in Section 4.1.

We choose to build our biometric cryptosystem on Fuzzy Vault because of its proven security guarantee [13] and high matching accuracy compared to other template protection methods [20]. Furthermore, since our biometric cryptosystem targets distributed applications, fuzzy vaults are advantageous because fingerprint images or templates can be directly deleted after local creation of fuzzy vaults, thereby reducing the attacker's surface (original templates are not stored on any local device). Despite the extensive literature on fuzzy vaults, to our knowledge, such cryptographic systems have not been used in industrial applications nor evaluated in real-world settings. Existing fingerprint-based fuzzy vault-based applications such as Uludag et al. [32], Nandakumar et al. [20] or Theodorakis [30] are implemented in MATLAB and evaluated using public fingerprint databases . Li et al. [16] implemented an alignment-free fuzzy vault method in C++. Our implementation is the first to use fuzzy vaults in a distributed setting and evaluate them in a real-world environment with actual fingerprint devices. The main difference from previous implementations is our fingerprint alignment method, detailed in Section 4.2.

Fingerprint comparison. For most fingerprint recognition systems, including those based on fuzzy vaults, the alignment of fingerprint templates before matching is a great challenge. Jeers et al. [12] tested three known alignment methods with five nearest neighbors, Voronoi nearest neighbors and fuzzy vault-based triangular structures. Uludag et al. [31] used an orientation field based approach that relies on public helper data. [15] introduced the epipolar structure, which is convenient for alignment, but needs to change the function to prevent information leakage. Chung et al. [7] applied geometric hashing in the fuzzy vault setting, which is more computationally expensive than other methods, but uses global features of fingerprint templates and does not require common auxiliary data. In our biometric cryptosystem, we use the geometric hashing method of Chung et al. [7] because of its good performance compared to other alignment methods. In addition, the method does not require any auxiliary data, which enhances the security of the system.

3. System and threat model

3.1. System model

Figure 1 depicts our distributed fingerprint authentication system model. It features any number of local computers equipped with a fingerprint sensor (FPS). These computers are connected to the Internet through one or more remote servers in the cloud. The system supports the following operations:

Figure 1: System and threat model. Components in green (red) are considered trusted (untrusted).

(1) Collect the original image of the fingerprint

(2) Create templates and secure data structures from raw images

(3) Store fingerprint security data structure

(4) Perform fingerprint matching on the probe fingerprint

The first three operations are required to enroll the fingerprint into the system, which happens only once. After the fingerprint image is captured at the FPS (1), the raw image is processed, e.g., binarized, on a connected computer to enable feature extraction (2). Templates are mathematical representations of fingerprint features (in our system, called minutiae), and thus contain sensitive data. To protect the template, we transform it into a secure data structure (in our system, the fuzz vault) and store it in a database (3). The fourth operation uses the stored data structure for user authentication. This entails extracting a template from a newly captured (probe) fingerprint and comparing it to the purported user's enrollment template. The matching algorithm calculates the similarity score according to the similarity threshold to judge whether it matches or not. This operation can be performed multiple times.

我们的系统允许在任何一台本地计算机上注册和验证指纹。例如,用户可以在图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、结论

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

Guess you like

Origin blog.csdn.net/weixin_62646577/article/details/128756478