# mosip-mock-services **Repository Path**: Myprogrammerwarpath/mosip-mock-services ## Basic Information - **Project Name**: mosip-mock-services - **Description**: 移植官方mosip项目到gitee,方便查看 - **Primary Language**: Java - **License**: MPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-04-13 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![推送时的Maven包](https://github.com/mosip/mosip-mock-services/actions/workflows/push_trigger.yml/badge.svg?branch=master)](https://github.com/mosip/mosip-mock-services/actions/workflows/push-trigger.yml) # MOSIP模拟服务 该存储库包含MOSIP中使用的各种组件的模拟(mock)。在生产部署中,这些组件必须用实际组件替换。 Mock sdk jpeg提取器 [Mock sdk jpeg提取器](https://github.com/mosip/converters) ## 许可证 此项目是根据Mozilla公共许可证2.0的条款获得许可的。 [Mozilla Public License 2.0](LICENSE). MDS规范 简介和背景 客观的 本规范文件的目的是建立MOSIP解决方案中使用生物识别设备所需的技术和合规标准/协议。 目标受众 这是一份生物识别设备规范文件,旨在帮助生物识别设备制造商、开发商和设计师构建符合MOSIP的设备。假设读者熟悉MOSIP注册和身份验证服务。 MOSIP设备 为MOSIP收集生物特征数据的所有设备都应在本文件的规范范围内运行。 术语表 设备提供商-以其名义生产或进口设备的实体。该实体应有合法权利从该国相应机构获得组织级数字证书。 FTM提供商-制造或保证基础信任模块可信度的实体。这也可以是设备提供商。 设备-能够捕获生物特征信息的硬件。 L1认证设备/L1设备-经认证能够在其受信任区域中执行符合此规范的加密的设备。 L0认证设备/L0设备-经认证为在主机设备驱动程序或MOSIP设备服务上进行加密的设备。 FTM提供商证书-颁发给“基础信托提供商”的数字证书。此证书证明提供商已成功通过所需的基础信任提供商评估。实体应将此证书安全地保存在HSM中。所有单独的FTM信任证书都是使用此证书作为根颁发的。该证书将由各国与MOSIP一起颁发。 设备提供商证书-颁发给“设备提供商”的数字证书。此证书证明供应商已通过L0/L1相应合规性认证。实体应将此证书安全地保存在HSM中。所有单独的信任证书都是使用此证书作为根证书颁发的。该证书由各国与MOSIP共同颁发。 注册-申请基础Id的过程。 KYC-了解你的客户。同意执行配置文件验证和更新的过程。 身份验证-验证身份的过程。 FPS-每秒帧数 管理服务器-由设备提供商运行的服务器,用于管理生物识别设备的生命周期。 设备注册-设备从管理服务器获取证书的过程。 签名-所有签名应符合RFC 7515。 签名中的标头-签名中的标题表示“alg”设置为RS256、x5c设置为base64编码证书的属性。 有效载荷是实际数据的字节数组,始终表示为base64urlended。 signature-base64url编码的签名字节 ISO格式时间戳|ISO 8601,格式为yyyy-mm-ddTHH:mm:ssZ(示例:2020-12-08T09:39:37Z)。此值应以UTC(协调世界时)为单位。 设备规格 MOSIP设备规范为使用MOSIP的设备提供了合规指南。合规性基于设备能力、信任和通信协议。符合MOSIP的设备将遵循本文件中制定的标准。预计这些设备符合本规范,并经过测试和验证。每一个细节都将在后面的章节中概述。 设备功能 MOSIP兼容设备预期执行以下操作, 应该能够收集一个或多个生物特征 应具有对捕获的生物特征图像或模板进行签名的能力。 应该具有保护密钥的能力 应该没有注入生物特征的机制 设备的基本规范 有关生物特征数据规范的详细信息,请查看MOSIP生物特征规范页面。 我们建议各国在选择用于注册和身份验证场景的设备时,考虑设备的人体工程学、可访问性、易用性和通用性。 设备信任 符合MOSIP的设备为注册、KYC和AUTH场景中使用的设备提供了一个可信的环境。基于设备对可信执行的支持来建立信任级别。 L1-信任由具有安全执行环境的安全芯片提供。 L0-信任是在软件级别提供的。不存在与硬件相关的信任。这种类型的法规遵从性用于受控环境。 基础信任模块(FTM) 基础信任模块将使用能够执行所有所需生物特征处理和密钥安全存储的安全微处理器创建。基础设备信任将满足以下要求。 该模块可以安全地生成、存储和处理加密密钥。 使用TRNG生成非对称密钥和对称密钥。 该模块可以保护密钥不被提取。 该模块必须保护密钥免受物理篡改、温度、频率和电压相关的攻击。 该模块可以承受硬件克隆。 该模块可以承受探测攻击 该模块为加密操作提供内存隔离,并防止缓冲区溢出攻击 该模块提供了抵御密码侧信道攻击的能力,如差分功率分析攻击、定时攻击。 CAVP验证了密码算法的实现。 该模块可以执行加密验证的安全引导。 该模块可以运行受信任的应用程序。 从该模块派生的基础设备信任用于实现生物特征捕获的基于信任的计算。基础设备信任模块基于以下内容提供受信任的执行环境: 安全引导 能够在执行前对代码进行加密验证。 能够检查模块/设备的完整性违规情况。 失败时停止。 能够安全升级并执行仅向前升级,以挫败降级攻击。 所有哈希要求都应使用SHA256哈希等效值或更高版本 所有信任根都是在第一次启动时或之前设置的。 只有在通过正确的哈希和签名验证成功引导后,所有升级才会被视为成功。 启动应该在哈希/签名失败时失败,并且永远不会在中间状态下运行。 最多10次失败的尝试应锁定升级过程并对设备进行砖砌。然而,芯片制造商可以决定低于10。 安全的应用程序 能够运行受信任的应用程序。 防止应用程序降级。 支持加密操作的独立内存。 所有信任都是在第一次启动时固定的,不可修改。 证明 FTM应至少具有以下各类认证中的一项,以满足给定的要求。 类别:密码算法实现 CAVP(RSA、AES、SHA256、TRNG(DRBGVS)、ECC) 类别:FTM芯片 (以下证书之一) FIPS 140-2 L3或以上 PCI PTS 5或以上(预认证) PCI-PED 2.0或更高版本(预认证) 以下通用标准(CC)认证之一 https://www.commoncriteriaportal.org/files/ppfiles/pp0035a.pdf https://www.commoncriteriaportal.org/files/ppfiles/pp0084a_pdf.pdf 系统/设备级篡改器(可选) 建议采用系统/设备级篡改响应性(非强制性)。在这种情况下,FTM应该能够在系统/设备级别上展示对篡改的响应能力(必须擦除密钥)。 保护的威胁 FTM应防止以下威胁。 硬件克隆攻击-能够防止可能导致密钥重复的攻击。 硬件篡改攻击 物理篡改-无法进行物理篡改并获取其机密。 与电压和频率相关的攻击-应防止电压泄漏,并应防止低电压。FTM应始终处于正常运行或不可操作的状态。当不满足FTM的输入电压时,FTM不应可操作。 加密块上的温度攻击-低或高FTM预计将运行或达到不可操作状态。没有介于两者之间的状态。 差分功率分析攻击。 探测攻击-FTM应保护其表面区域免受任何与探测相关的攻击。 用于执行加密操作的内存隔离(应保护加密块免受缓冲区溢出类型的攻击)。 加密算法实现的漏洞。 针对安全引导和安全升级的攻击。 TEE/安全处理器操作系统攻击(如适用)。 基础信任模块标识 在获得MOSIP采用者的FTM提供商批准后,FTM提供商将向采用者提交自签名的公共证书。让我们称之为FTM根。采用者将使用此证书为其设备的信任数据库设定种子。FTM根及其密钥对应生成并存储在FIPS 140-2 Level 3或更兼容的设备中,不可能有提取密钥的机制。基础模块在第一次启动时预计会生成一个随机的非对称密钥对,并提供密钥的公共部分以获得有效证书。FTM提供商将进行验证以确保芯片是唯一的,并将颁发者设置为FTM证书链来颁发证书。整个证书颁发将在一个安全的供应设施中进行。可由采用者或其批准的审计师通知进行审计。根据MOSIP采用者定义的MOSIP证书政策文件,颁发给模块的证书将具有定义的有效期。FTM芯片内的此证书和私钥预计将在其永久存储器中。 装置 MOSIP设备最常用于收集生物特征。这些设备应符合所有级别的合规性及其使用规范。MOSIP设备属于MOSIP架构中定义的信任级别3(TL3)的类别。在TL3设备预计将被列入白名单,在硬件上具有完全功能的PKI和密钥的安全存储。 L0-当设备使用没有安全引导或FTM的软件级加密库时,它可以获得L0证书。这些设备将遵循不同的设备标识,并且作为异常流的一部分会提到相同的标识。 L1-当设备建立在具有认证FTM的安全设施中时,它可以获得L1认证。 设备标识 所有连接到MOSIP的设备都必须是可识别的。MOSIP相信加密身份是其信任的基础。 物理ID 显示MOSIP合规性的识别标记以及可读的唯一设备序列号(至少12个字母数字字符)品牌和型号。相同的信息必须通过二维二维二维码或条形码提供。这是为了帮助现场支持和验证。 数字ID MOSIP中的数字设备ID将是一个签名的JSON(RFC 7515),如下所示: { "serialNo": "Serial number", "make": "Make of the device", "model": "Model of the device", "type": "Type of the biometric device", "deviceSubType": "Subtypes of the biometric device", "deviceProvider": "Device provider name", "deviceProviderId": "Device provider id", "dateTime": "Current datetime in ISO format" } 使用“基础信任模块”身份密钥使用JSON Web签名(RFC 7515)进行签名,此数据是设备的基本身份。每个符合MOSIP的设备都需要基础信任模块。 此规则的唯一例外是用于“注册”目的的L0兼容设备。L0设备将使用设备密钥对数字标识进行签名。 一个签名的数字ID如下所示: "digitalId": "base64urlencoded(header).base64urlencoded(payload).base64urlencoded(signature)" 数字id中的标头将具有: "alg": "RS256", "typ": "JWT", "x5c": " MOSIP假设x5c中的第一个证书是由FTM根证书颁发的FTM的芯片公共证书。 未签名的数字ID如下所示: "digitalId": "base64urlencoded(payload)" Payload是Digital ID JSON对象。 对于L0未注册的设备,数字标识将未签名。在所有其他情况下,除了发现呼叫之外,数字ID将由芯片密钥(L1)或设备密钥(L0)签名。 钥匙 设备中使用的密钥列表及其说明。 设备密钥 在设备注册后,每个生物特征设备都将包含一个授权的私钥。该密钥根据MOSIP各自采用者的要求频繁轮换。默认情况下,MOSIP建议设备密钥采用30天的密钥轮换策略。在成功注册期间,设备密钥由FTM内部的设备提供商创建。设备密钥用于对生物特征进行签名。有关签名及其用法的更多详细信息,请参阅此处。该密钥由设备提供商颁发,设备密钥的证书由设备提供商密钥颁发,设备提供商密钥又由MOSIP采用者在批准设备提供商的特定型号后颁发。 FTM密钥 FTM密钥是身份的根。该密钥由FTM提供商在制造/供应阶段创建。这是一把永久性的钥匙,永远不会旋转。此密钥用于对数字标识进行签名。 MOSIP密钥 MOSIP密钥是由MOSIP采用者提供的公钥。此密钥用于加密生物特征。下面列出了加密的详细信息。我们建议每1年轮换一次此密钥。 设备服务-通信接口 本节解释了生物识别设备连接、可访问性、发现能力以及用于构建和与设备通信的协议的必要细节。 该设备应仅实现以下一组API。所有API都独立于物理层和操作系统,不同操作系统的调用不同。虽然本规范中定义了操作系统名称,但类似的技术也可用于未指定的操作系统。期望设备服务确保设备在本地连接到主机。 设备发现 设备发现将用于由应用程序识别系统中符合MOSIP的设备。该协议被设计为一个简单的即插即用,对细节进行了所有必要的抽象。 设备发现请求 { "type": "type of the device" } 设备发现请求的接受值 type-“生物识别设备”、“手指”、“面部”、“虹膜” “生物识别设备”-是一种特殊类型,用于寻找任何生物识别设备。 设备发现响应 [ { "deviceId": "Internal ID", "deviceStatus": "Device status", "certification": "Certification level", "serviceVersion": "Device service version", "deviceSubId": ["Array of supported device sub Ids"], "callbackId": "Base URL to reach the device", "digitalId": "Unsigned Digital ID of the device", "deviceCode": "Same as serialNo in digital ID", "specVersion": ["Array of supported MDS specification version"], "purpose": "Auth or Registration or empty if not registered", "error": { "errorCode": "101", "errorInfo": "Invalid JSON Value Type For Discovery.." } }, ... ] 432/10000 实时翻译 划译 Windows/Linux 所有设备API都将基于HTTP规范。该设备始终绑定到4501-4600之间的任何可用端口。用于绑定的IP地址必须是127.0.0.1,而不是localhost。 需要访问MOSIP设备的应用程序可以通过向支持的端口范围发送HTTP请求来发现它们。我们将在文档的其余部分中将此端口称为device_service_port。 HTTP Request: Copy MOSIPDISC http://127.0.0.1:/device HOST: 127.0.0.1: EXT: HTTP Response: Copy HTTP/1.1 200 OK CACHE-CONTROL:no-store LOCATION:http://127.0.0.1: Content-Length: length in bytes of the body Content-Type: application/json Connection: Closed 安卓 有关android规范的详细信息,请查看章节-android SBI规范。 设备信息 设备信息API将用于识别符合MOSIP的设备及其状态。 设备信息请求 NA 设备信息请求的接受值 NA 设备信息响应 [ { "deviceInfo": { "deviceStatus": "Current status", "deviceId": "Internal ID", "firmware": "Firmware version", "certification": "Certification level", "serviceVersion": "Device service version", "deviceSubId": ["Array of supported device sub Ids"], "callbackId": "Baseurl to reach the device", "digitalId": "Signed digital id as described in the digital id section of this document.", "deviceCode": "Same as serialNo in digital ID", "env": "Target environment", "purpose": "Auth or Registration", "specVersion": ["Array of supported MDS specification version"], }, "error": { "errorCode": "101", "errorInfo": "Invalid JSON Value " } } ... ] 因此API将以以下格式进行响应。 [ { "deviceInfo": "base64urlencode(header).base64urlencode(payload).base64urlencode(signature)" "error": { "errorCode": "100", "errorInfo": "Device not registered. In this case, the device info will be only base64urlencode(payload)" } } ]