[翻译]ANSI X9.24-1-2009

news2024/10/7 8:08:06

目录

1 目的

2 范围

2.1 应用

3 参考文献

4 术语和定义

4.1 acceptor 接收器

4.2 acquirer 收单

4.3 algorithm 算法

4.4 archived key 存档密钥

4.5 authentication 认证/鉴别/身份验证

4.6 authentication algorithm 认证算法

4.7 authentication element 认证要素

4.8 base derivation key 基础派生密钥(主密钥)

4.9 card acceptor 卡片接收器

4.10 card issuer 发卡机构

4.11 check value 校验值

4.12 ciphertext 密文

4.13 cleartext 明文

4.14 communicating pair 通信对

4.15 compromise 泄露

4.16 cryptographic key 密钥

4.17 cryptographic key synchronization 密钥同步

4.18 Data Encryption Algorithm 数据加密算法(DEA)

4.19 decryption 解密

4.20 derivation key 派生密钥

4.21 double-length key 双长度密钥

4.22 dual control 双重控制

4.23 DUKPT(Derived Unique Key per Transaction)

4.24 encryption 加密

4.25 exclusive-or 异或

4.26 institution 机构

4.27 interchange 互操作

4.28 issuer 发行人

4.29 key 密钥

4.30 key component 密钥组件

4.31 key encrypting key 密钥的加密密钥

4.32 keying material 密钥材料

4.33 key separation 密钥分离

4.34 key set 密钥集

4.35 key set identifier 密钥集标识符

4.36 master key 主钥匙

4.37 message 消息

4.38 message authentication code (MAC) 消息认证码

4.39 node 节点

4.40 non-reversible transformation 不可逆变换

4.41 Originator 发起人

4.42 parity 对等

4.43 privacy 隐私

4.44 pseudo random 伪随机值

4.45 random 随机

4.46 recipient 收件人

4.47 replay 重放

4.48 sender 发件人

4.49 single length key 单长度密钥

4.50 SMID(Security Management Information Data)

4.51 split knowledge 分割知识

4.52 symmetric key 对称密钥

4.53 switch 转换

4.54 tampering 篡改

4.55 TDEA(Triple Data Encryption Algorithm)

4.56 terminal 终端

4.57 transaction 交易

4.58 transaction key 交易密钥

4.59 Triple Data Encryption Algorithm 三重数据加密算法

4.60 triple-length key 三重长度密钥

4.61 TRSM(Tamper Resistant Security Module)

4.62 UKPT(Unique Key Per Transaction)

4.63 variant of a key 密钥的变体

4.64 verification 验证

4.65 XOR 异或

5 标准组织

6 环境

6.1 总则

6.2 持卡人和发卡人

6.3 读卡器

6.4 收单机构

7 密钥管理要求

7.1 概述

7.2 用于密钥管理的防篡改安全模块(TRSM)

7.3 安全环境

7.4 密钥生成

7.5 对称密钥分发

7.5.1 手动分配

7.5.2 密钥初始化工具

7.5.3 密钥加载装置

7.6 密钥利用率

7.7 密钥更换

7.8 密钥销毁和归档

7.9 密钥加密/解密

8 密钥管理规范

8.1 总则

8.2 密钥管理方法

8.2.1 需要防泄漏控制的密钥管理方法

8.2.1.1 固定交易密钥

8.2.1.2 主密钥/交易密钥

8.2.2 需要泄漏检测控制的密钥管理方法

8.3 密钥识别技术

8.3.1 密钥识别

8.3.2 按名称识别密钥

8.4 安全管理信息数据(SMlD)元素

8.5 方法:固定交易密钥

8.6 方法:主密钥/交易密钥

8.7 方法:DUKPT(每笔交易派生唯一密钥)

8.7.1 SMID

8.7.2 附加密钥管理要求

8.7.2.1 初始化

8.7.2.2 加密密钥同步

8.7.3 其他注意事项

9 附件:标准下载


美国国家金融服务标准

ANSI X9.24-1:2009

零售金融服务 对称密钥管理 第1部分:使用对称技术

批准日期:2009年10月13日

美国国家标准协会

1 目的

        该密钥管理标准与美国国家标准三重数据加密算法(TDEA)(见参考文献2)结合使用,用于管理对称密钥,这些密钥可用于保护金融服务环境中的消息和其他敏感信息。基于TDEA的任何过程的安全性和可靠性直接取决于对称加密密钥的保护

        本标准规定了密钥操作的安全管理和应用程序级互操作性的要求和条件。这些密钥可用于验证消息(见参考文献5)、加密个人识别号(PlN)(见参考资料4)、加密其他数据和加密其他密钥。

2 范围

        本标准的这一部分涵盖了用于金融服务(如销售点(POS)交易(借记和贷记)、自动取款机(ATM)交易、终端和金融机构之间的消息,以及收单机构、交换机和发卡机构之间的交换消息)的密钥的手动和自动管理。本标准的这一部分专门涉及使用对称技术的对称密钥管理。本标准的这一部分规定了密钥管理的最低要求。所涉及的是密钥管理生命周期的所有组成部分,包括密钥的生成、分发、使用、存储、归档、更换和销毁。一个机构的密钥管理过程,无论是在计算机还是终端中实施,都不能以比本文所述的安全性、保护性或控制性更低的方式实施或控制。如果两个节点实现了兼容版本,则意味着它们有:

  • 相同的安全密钥管理方法
  • 为特定方法批准的相同安全密钥识别技术,以及
  • 相同的密钥分离方法

        根据本标准的这一部分,将在应用程序级别进行互操作。节点互操作性可能还需要有其他要求。本标准的这一部分不包括消息格式、通信协议、传输速度或设备接口等。

2.1 应用

        本标准的这一部分适用于实施技术以保护用于消息和其他敏感数据的身份验证和加密的加密密钥的机构。具体而言,这适用于实施参考文献4和/或5的金融服务行业机构。

        强制性标准技术和流程用“应”字表示。指导方针用“应该”一词表示。

3 参考文献

        本标准的这一部分应与以下出版物一起使用

  1. ANS INCITS 92-1981 (R2003), Information Technology - Data Encryption Algorithm (DEA)
  2. NIST SP800-67, Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher
  3. ANS X9.65-2004, Triple Data Encryption Algorithm (TDEA) ImplementationThe following publications are applicable and may be referenced in this part of this standard
  4. ANS X9.8-1-2003, Personal ldentification Number (PlN) Management and Security
  5. ISO 16609, Banking-Requirements for Message Authentication using SymmetricTechniques
  6. IS0 7812-1985 ,ldentification cards-Numbering system and registration procedure forissuer identifiers
  7. IS0 8583-1993, Bankcard Originated Messages-Interchange Message Specifications -Content for Financial Transactions
  8. IS0 9797-1, Information technology-Security techniques-Message AuthenticationCodes (MACs)-Part 1:Mechanisms using a block cipher

        所列版本是本文件发布时的最新版本,但这些文件会定期更新和重申。使用本标准的这一部分时,应参考当前版本。

4 术语和定义

4.1 acceptor 接收器

        与“卡片接收器”相同

4.2 acquirer 收单

        从卡接受者处获取与交易相关的财务数据并将该数据发起到交换系统中的机构(或其代理人)

4.3 algorithm 算法

        明确规定的计算数学过程:一组规则,如果遵循这些规则,将给出规定的结果

4.4 archived key 存档密钥

        以安全方式保存的非活动密钥,用于非操作目的,例如未来恢复的法律要求

4.5 authentication 认证/鉴别/身份验证

        确定消息自离开其来源点以来未被更改的行为。发起者的身份被隐式验证

4.6 authentication algorithm 认证算法

        一种加密过程的应用,其中输出文本取决于所有前面的输入文本

4.7 authentication element 认证要素

        一组连续的比特或字符,通过认证算法进行处理来保护

4.8 base derivation key 基础派生密钥(主密钥)

        每笔交易派生唯一密钥(DUKPT)关联的派生密钥

4.9 card acceptor 卡片接收器

        接受卡并向收单机构出示交易数据的一方

4.10 card issuer 发卡机构

        向持卡人发放卡的机构或其代理人

4.11 check value 校验值

        一个计算值,是通过不可逆算法计算数据值的结果

4.12 ciphertext 密文

        加密形式的数据

4.13 cleartext 明文

        原始未加密形式的数据

4.14 communicating pair 通信对

        发送和接收交易的两个实体(通常是机构)。这包括通信实体拥有或承包的代理处理站点

4.15 compromise 泄露

        在密码学中,指违反保密性和/或安全性。违反系统安全,可能发生未经授权的敏感信息披露

4.16 cryptographic key 密钥

        确定密码函数操作的参数,例如:

  • 明文到密文的转换
  • 密钥的同步生成
  • 数字签名或验签

4.17 cryptographic key synchronization 密钥同步

        以加密方式处理事务的两个节点,确定相同密钥的能力。

4.18 Data Encryption Algorithm 数据加密算法(DEA)

        ANSl采用的密码算法(见参考文献1)

4.19 decryption 解密

        将密文(不可读)转换为明文(可读)的过程

4.20 derivation key 派生密钥

        用于计算另一个密钥的密钥。通常,在交易接收(如收单机构)TRSM中使用单个派生密钥来派生或解密大量发起(如终端)TRSM使用的交易密钥。

4.21 double-length key 双长度密钥

        一个长度为128位的TDEA密钥(见参考文献2“密钥选项2”和参考文献3“TDEA2密钥实现”)

4.22 dual control 双重控制

        利用两个或多个单独的实体(通常是人)协同操作以保护敏感功能或信息的过程。这两个实体对涉及易受攻击交易的材料的实物保护负有同等责任。它应确保没有任何实体能够访问或使用这些材料(例如,加密密钥)。对于手动密钥生成、传输、加载、存储和检索,双重控制需要实体之间密钥的分割知识。另请参见“split knowledge 知识分割”。

4.23 DUKPT(Derived Unique Key per Transaction)

        一种密钥管理方法,为每笔交易使用唯一密钥,并防止泄露发起交易TRSM使用的任何过去的密钥。唯一交易密钥是从基础派生密钥中推导出来的,只使用作为每笔交易一部分传输的非机密数据。

4.24 encryption 加密

        为了安全或隐私的目的,将明文(可读)转换为密文(不可读)的过程

4.25 exclusive-or 异或

        一种数学运算,符号“XOR”,定义为:

0 XOR 0 = 0      
0 XOR 1 = 1      
1 XOR 0 = 1     
1 XOR 1 = 0

        相当于无进位的二进制加法(模2加法)

4.26 institution 机构

        负责促进客户发起的交易或资金转移以扩大信贷,或保管、贷款、交换或发行货币的机构

4.27 interchange 互操作

        金融机构之间相互接受和交换信息

4.28 issuer 发行人

        持有由主账号(PAN)标识的账户的机构

4.29 key 密钥

        与“加密密钥”相同

4.30 key component 密钥组件

        具有密码密钥格式的至少两个参数中的一个,该密码密钥与一个或多个类似参数以模2形式互斥/相加,以形成密码密钥。组件的长度与生成的密钥相等

4.31 key encrypting key 密钥的加密密钥

        专用于加密和解密密钥的密钥

4.32 keying material 密钥材料

        建立和维护密码关系所需的数据(如密钥和初始化向量)

4.33 key separation 密钥分离

        确保密钥仅用于其预期目的的过程

4.34 key set 密钥集

        一组密钥,所有密钥都由一个通用的加密过程确定,并由该过程的非加密输入区分,这样一个密钥的知识就不会泄露组中的任何其他密钥

4.35 key set identifier 密钥集标识符

        唯一标识密钥集的非秘密值

4.36 master key 主钥匙

        在密钥加密密钥和交易密钥的层次结构中,最高级别的密钥加密密钥称为主密钥

4.37 message 消息

        包含一个或多个交易或相关信息的通信

4.38 message authentication code (MAC) 消息认证码

        一个加密值,是使用特定密钥通过消息认证算法传递金融消息的结果

4.39 node 节点

        网络中任何对数据进行某种形式处理的点,如终端、采集器或交换机

4.40 non-reversible transformation 不可逆变换

        明文加密,使密文无法解密回原始明文状态

4.41 Originator 发起人

        负责并授权发起信息的个人、机构或其他实体

4.42 parity 对等

        一组“0”和“1”位中,“1”位数的度量;奇数或偶数

4.43 privacy 隐私

        数据的机密性,需要保护以防止未经授权的披露

4.44 pseudo random 伪随机值

        尽管由算法生成,但在统计上是随机的,基本上是不可预测的

4.45 random 随机

        集合中的一个值,从总可能性中选择的概率相等,因此不可预测

4.46 recipient 收件人

        负责并被授权接收信息的个人、机构或其他实体

4.47 replay 重放

        发送先前发送的消息作为欺诈手段的过程

4.48 sender 发件人

        发送消息的个人、机构或其他实体

4.49 single length key 单长度密钥

        密码密钥,长度为56位加8个奇偶校验位

4.50 SMID(Security Management Information Data)

        安全管理信息用于管理和控制密码操作的数据元素

4.51 split knowledge 分割知识

        一种情况,在这种情况下,两个或多个当事方分别秘密地拥有信息(例如密钥组件),而这些信息单独地不传达对由此产生的组合信息(例如密码密钥)的任何知识

4.52 symmetric key 对称密钥

        在对称密码算法(例如TDEA)中使用的密码密钥。用于加密的对称密钥,也用于解密

4.53 switch 转换

        可以将数据从一个节点路由到其他节点的节点

4.54 tampering 篡改

        渗透或修改内部操作和/或插入主动或被动窃听机制,以确定或记录秘密数据

4.55 TDEA(Triple Data Encryption Algorithm)

        请参阅“三重数据加密算法”

4.56 terminal 终端

        启动交易的设备/系统

4.57 transaction 交易

        处理一系列消息以执行预定义的功能

4.58 transaction key 交易密钥

        用于加密处理事务的密钥。如果多个密钥用于不同的加密功能,则每个密钥都可以是事务密钥的变体。事务密钥有时被称为数据密钥、通信密钥、会话密钥或工作密钥

4.59 Triple Data Encryption Algorithm 三重数据加密算法

        参考文献2中指定的算法

4.60 triple-length key 三重长度密钥

        长度为192位的TDEA密钥(见参考文献2“密钥选项1'和参考文献3'TDEA3密钥实现)

4.61 TRSM(Tamper Resistant Security Module)

        防篡改安全模块(见第7.2节)

4.62 UKPT(Unique Key Per Transaction)

        每笔交易的唯一密钥

4.63 variant of a key 密钥的变体

        由使用原始密钥的过程(不需要保密)形成的新密钥,使得新密钥的一个或多个非奇偶校验位不同于原始密钥的相应位

4.64 verification 验证

        关联和/或检查唯一特征的过程

4.65 XOR 异或

        与“4.25 exclusive-or“相同

5 标准组织

        本标准本部分的其余部分分为三节。

        第6节描述了密钥管理技术运行的环境

        第7节确定了适用于密钥管理的要求

        第8节规定了密钥管理方法、密钥识别技术以及每种特定方法的附加要求

6 环境

6.1 总则

        为了深入了解密钥管理要求,本节提供了所涉及的每个实体的一般描述。事务处理系统由这些实体中的一个或多个操作的子系统组成。此类系统中的识别方法对整体安全要求有相当大的影响。虽然本标准的这一部分主要针对使用磁卡作为身份识别过程一部分的交易处理系统(如ATM系统、POS网络),但并不排除其他应用,如家庭银行、智能卡和批发企业银行。

6.2 持卡人和发卡人

        发卡机构保证在持卡人经过适当的身份验证和授权后,向收单机构支付向持卡人提供的交易或服务的费用,前提是满足所有要求的条件。该卡用于识别持卡人和发卡机构。此外,该卡可能携带其他信息,如有效期(如到期日期)和安全相关信息(如PlN偏移)。

        持卡人和发卡机构可以就交易过程中使用的秘密个人识别号(PlN)(见参考文献4)达成一致。交易处理系统有义务在将交易从持卡人传输到发卡机构时保持PlN的保密性。请注意,发卡机构可能会将验证PIN的责任委托给代理人。

6.3 读卡器

        读卡器读取卡片以访问持卡人的账户,或作为商品或服务的支付方式。在POS系统中,这可能是零售商、服务公司、金融机构等:在ATM系统中,读卡器可能与收单机构是同一方。读卡器可能会将交易信息转发给收单机构,而不是读取该卡作为直接的付款证明。读卡器将接受收单机构的交易授权作为交易担保。与收单机构交换的交易信息的安全性很重要。安全特征可能包括消息认证(见参考文献5)、PlN的保密性(见参考资料4)等。

6.4 收单机构

        收单机构向接受方提供交易处理。对于某些交易,收单机构可能会授权作为发行方代理人的交易。在其他情况下(例如,交易价值超过某个阈值),交易信息会被发送给发行人或其代理人进行授权。

        对于收单功能,收单机构需要提供节点到节点系统中PIN的安全处理、交易交换的消息认证等设施。对于合并的收单和授权功能,收单机构需要安全设施来满足其所代表的发行方的要求。

7 密钥管理要求

7.1 概述

  1. 加密密钥只能以以下一种或多种形式存在:
    1. 在下文第7.2节规定的防篡改安全模块(TRSM)中。
    2. 如果在TRSM之外,则作为TDEA使用密钥的加密密钥在TRSM内部创建。
    3. 如果未加密且在TRSM之外,密钥应仅以以下形式之一存在:
      1. 作为第7.5节中定义的两个或多个秘钥组件,采用双重控制和分割知识,或
      2. 在满足7.5要求的环境中,在双重控制下从密钥加载设备(KLD)传输到直接连接的TRSM。
  2. 驻留在交易发起终端中的任何密钥应仅存在于该设备以及有权从该设备接收和/或向该设备发送加密数据或身份验证数据的设施中。
  3. 实体之间共享密钥的泄露不应泄露与其他实体共享的密钥。
  4. 应防止或检测未经授权输入密钥或恢复替换密钥的行为。
  5. 加密密钥应受到保护,防止泄露和滥用
  6. 应防止或检测对密钥的未经授权的修改、替换或重放。
  7. 加密密钥可以是三倍长度,但至少应是双倍长度的密钥(见参考2密钥选项1和2)。
  8. 对于所有TDEA操作模式,三个加密密钥(K1、K2、K3)定义了一个TDEA密钥包(见参考2密钥选项1和2)。注意使用双倍长度的密钥时,K1=K3。密钥包和单个密钥应:
    1. 保密;
    2. 由随机或伪随机生成,
    3. 具有完整性,自从授权来源的生成、传输或存储以来,密钥包中的每个密钥都没有在未经授权的情况下被更改;
    4. 按照特定模式、指定的适当顺序使用,
    5. 被视为一个固定数量,在保持其他两个密钥不变的情况下,不能操纵单个密钥;和
    6. 不能出于任何目的拆分。
  9. 记录创建、接收、访问、分发、存储或销毁加密密钥的所有实例,包括用于支持这些活动的任何硬件
  10. 密钥加密密钥的加密强度应与正在加密的密钥相同或更高。
  11. 加密密钥应存在于与系统操作一致的最少数量的位置。

7.2 用于密钥管理的防篡改安全模块(TRSM)

        用于密钥管理的防篡改安全模块(TRSM)是一种具有物理特性的设备,使得篡改变得困难且不太可能。TRSM应具有禁止确定任何秘密数据的物理特性,包括任何过去、现在或未来的密钥。TRSM应具有物理和功能(逻辑)特性,这些特性结合在一起,可以排除确定设备之前用于加密或解密秘密数据的任何密钥。

        为防止确定设备之前用于加密或解密秘密数据的任何密钥,TRSM应使用以下一种或两种方法,并结合适当的安全程序:

  • 物理障碍
  • 每笔交易的唯一密钥

        所有TRSM应具有防篡改的功能。篡改包括在不将安全参数归零的情况下进行渗透,未经授权修改TRSM的内部操作,或插入窃听机制或非侵入性窃听方法来确定、记录或修改秘密数据。此类特征应包括以下一项或多项:

  • TRSM包括检测篡改企图并自动擦除设备中包含的所有明文密钥材料的方法。无论TRSM的电源状态如何,篡改检测都应处于活动状态。
  • TRSM由物理屏障构成,使篡改改变得不可行。
  • TRSM对篡改具有足够的抵抗力,使篡改需要更长的时间,这样,在设备(再次)用于加密操作之前,TRSM从其授权位置消失或随后返回该位置的可能性很高。
  • TRSM的构造方式是,使篡改会对设备造成可见的损坏,在设备返回其授权位置后,但在(再次)用于加密操作之前,很可能会被注意到。但是,当TRSM仅使用此功能时,它只能与每笔交易的唯一密钥管理结合使用。
  • TRSM的构造方式使得修改存储在TRSM中的密钥中的单个或一组比特是不可行的。(修改密钥的唯一方法是完整地替换它。)

        此外,所有TRSM应防止泄露用于加密或解密秘密数据的任何密钥,包括其他密钥。保留任何此类密钥的TRSM都需要“泄漏预防”。此类TRSM应通过使用物理屏障来设计为防篡改的,这样可以忽略篡改的可能性,从而成功披露此类密钥。不保留任何此类钥匙的TRSM只需要“泄漏检测”,并且减少防篡改设计。保留在此类TRSM中的密钥的泄漏不会披露之前加密的数据,但有必要在怀疑TRSM被泄露的情况下防止将来使用任何此类密钥。由于泄漏可能披露的任何密钥尚未使用,因此只需要确保此密钥从未使用过(除非偶然)。一般来说,检测到泄露(然后防止泄露的TRSM及其密钥的后续使用)比防止泄露更容易

        TRSM应提供防泄漏措施,并采用物理屏障,除非满足以下两个要求:

  • TRSM采用每笔交易的唯一密钥技术,其特征是,在交易完成时,TRSM中的任何信息都不会披露(即使知道TRSM外部可用或已经可用的其他相关数据)设备在交易过程中或交易过程中用于加密或解密秘密数据的任何密钥
  • 如果TRSM被泄露并且其密钥被确定,则这些密钥不能加载到另一个相同的(例如被盗的)TRSM中。(例如,如果TRSM内部的密钥加载过程涉及不可逆的转换,则可以实现这一目标)。

        TRSM可以由一个或多个物理上分离的TRSM组合在一起,只要所有TRSM和连接它们的传输介质都满足上述要求,它仍然被视为一个单一的TRSM。

        将初始密钥放入TRSM的过程应建立高度的保密性,即密钥被转移到合法的TRSM中,并且没有被修改以允许未来未经授权披露密钥材料和/或受此类密钥材料保护的数据。此外,将初始密钥加载到TRSM的过程应确保该密钥的可靠性。在初始密钥分发过程中,任何人都不可能确定任何最终密钥的全部或部分。但是,密钥可以作为两个或多个密钥组件加载,如第7.5节所述。

        在非主动使用时,TRSM(尤其是终端的TRSM)应存储在一个环境中,以尽量减少未经授权的修改(如插入主动或被动窃听机制)的可能性。当TRSM包含密钥时,应将其存储在受控环境中,在该环境中,TRSM被盗、以未经授权的方式修改,然后在未被检测到的情况下返回存储的风险最小。当TRSM被移除进行维修或永久停止使用时(不包括丢失或被盗的设备,见第7.7节),应按照第7.8节从TRSM中删除所有密钥。

        参与密钥管理的每个节点都应包含一个TRSM。

7.3 安全环境

        安全环境在物理、程序和逻辑上受到保护,以防止环境中存在的任何密钥材料泄露。在所有密钥材料被移除和/或销毁之前,安全环境应保持安全。

7.4 密钥生成

        密钥和密钥组件应通过使用随机或伪随机过程生成,因此从密钥集中的其他密钥来确定某些特定秘钥的变成不可能。密钥的变体只能用于密钥分离,不能用于密钥生成。密钥组件应生成一个校验值。当TRSM生成从TRSM传输的密钥时,应生成加密校验值。

        当为密钥或密钥组件生成校验值时,应通过加密过程(例如,使用参考2的TECB模式)生成校验值,以便密钥或密钥部件的所有部分都参与生成校验值。对密钥的各个部分单独生成校验值是一个重大的安全风险。

7.5 对称密钥分发

7.5.1 手动分配

        应通过以下方式之一手动分发初始加密密钥。更多实施细节见附件C

        第一种方法是在两个或多个密钥组成部分的双重控制下,利用分割知识。这些密钥组件中的每一个都应与加密密钥的长度相同。应要求负责每个密钥组件的每个实体(通常是个人或团体)对委托给他们的密钥组件保密。每个密钥部件应符合以下要求:

  1. 如果密钥组件不是人类可理解的形式(例如,在存储模块、智能卡、磁条卡中),在密钥组件被输入TRSM之前的最短实际时间内,它仅由一个实体实际拥有;和
  2. 如果密钥组件是人类可理解的形式(例如,在PIN-mailer类型的文档中打印),则只有一个人在一个时间点才能看到,并且只有在该人私下将密钥组件输入TRSM所需的时间内才能看到:以及
  3. 当任何一个实体被或曾经被类似地委托使用同一密钥的任何其他组件时,该密钥组件永远不会由该实体实际拥有
  4. 密钥组件在安全环境中直接输入TRSM。

        通过使用XOR自动组合所有输入的密钥组件,生成的加密密钥应仅存在于TRSM中。

        加载了相同密钥组件的任何其他TRSM应使用相同的过程组合所有输入的密钥组件。为了便于检测密钥分发中的错误,应验证密钥组件和密钥的校验值。(见附件C。)

        手动分发加密密钥的第二种方式涉及将明文密钥从密钥加载设备(KLD)传输到直接连接的TRSM。这应由两个或多个受信任的个人在双重控制下执行。在这种情况下,钥匙处于双重控制之下,因为TRSM处于双重控制之下。一个例子是使用密钥加载设备。这与之前密钥处于双重控制下的情况不同,因为密钥组件处于双重控制之下。

        几种密钥管理方法可能需要实施额外的设施、功能或设备,作为整个安全过程的一部分。下文概述了此类安全设施及其要求。

7.5.2 密钥初始化工具

        密钥初始化设施(KlF)是一种安全设施,包含TRSM,并向交易终端TRSM和/或收单机构的TRSM提供初始密钥

        如果终端的TRSM是便携式的,并且可以运输到KlF,则KlF可以直接将初始密钥加载到终端的TRSM(例如PlN输入设备)中,如果终端的TRSM不可携带,则初始终端密钥及其标识符应通过密钥加载设备(KLD)从KlF传输到终端。无论哪种情况,传输都应该通过电子或其他自动方式进行

        KlF和传输过程应在安全环境中实施,并应在双重控制下运行。KlF可能由收单机构运营,并且可能与收单机构用于交易处理中涉及的加密操作的设施相同。有关其他实施细节,请参阅附件C。

7.5.3 密钥加载装置

        密钥装载装置(KLD)应包含或是TRSM。当终端或终端组件无法运输到KlF时,KLD用于将密钥从KlF传输到一个或多个终端的TRSM。

        KLD被物理传输到KlF,在那里,一个或多个密钥(以及相关的密钥标识符,如果需要)被传输到KLD。然后,KLD被实际传输到一个或更多个终端TRSM。

        KLD的设计应确保只有授权人员才能使用并使其能够将密钥输出到另一个TRSM。此类人员应确保其输出不受监控。

        KLD应由受信任的人持续监督,否则应以安全的方式(例如,在保险箱中)存放,以便未经授权的人无法访问。KLD应按照第7.1节第h项的规定进行保护。更多实施细节见附件C。

7.6 密钥利用率

        通信双方使用的任何密钥都应是唯一的(非偶然)。钥匙只能用于一个目的。但是,密钥的变体可能用于与原始密钥不同的目的。应提供控制措施,防止密钥误用。密钥的变体只能存在于拥有或拥有原始密钥的设备中。

        交易发起终端中的任何密钥应仅存在于该设备以及有权从该设备接收和/或向该设备发送加密数据或身份验证元素的设施中。同一密钥可用于加密数据或创建身份验证元素,但不能同时用于两者。此密钥可以在这些节点之间的一个或两个方向上使用。

        如果交易发起终端与多个收单机构交易,则交易发起终端TRSM应为每个收单机构提供完全不同且唯一的密钥或密钥集。这些不同的密钥或密钥集应完全独立,它们不可以是彼此的变体。应实施TRSM,以确保误用设备不会导致密钥暴露。例如,不可能通过告诉加密单元,加密密钥是加密数据来命令TRSM解密密钥并将其暴露出来。为此,TRSM应提供一种方法,确保根据加密功能和密钥分离。

        TRSM的设计、实施和控制应防止或检测其误用,通过详尽的试验和错误来确定TRSM保护的数据。

7.7 密钥更换

  1. 应在认为可行的时间内用新密钥替换加密密钥,以免通过穷举攻击确定当前密钥。
  2. 当已知或怀疑存在泄漏时,应更换密钥。
  3. 替换受损密钥不应与受损密钥有任何关系。

7.8 密钥销毁和归档

        除存档目的外,当密钥被泄露、怀疑被泄露或中断时,应销毁所有形式的此类密钥。

        纸质密钥材料应通过横切粉碎、燃烧或制浆销毁。所有残留物应减少到5毫米或更小的碎片。当材料堆积时,残留物应减少到白灰。应销毁存储在其他介质上的密钥材料,使其无法通过物理或电子方式恢复。

        钥匙的销毁应在完全负责的情况下完成,并保留适当的记录以供审计追踪。

        归档密钥应按照第7.1节的要求进行存储

7.9 密钥加密/解密

        虽然本标准中没有描述,但任何密钥加密/解密方法都应按照第7.1节进行操作。

8 密钥管理规范

8.1 总则

        终端密钥管理带来了独特的问题,因为可能有大量的ATM和POS终端,并且需要一个卡接收器来安装、移动和更换这些终端,而不受不当的物流限制。更重要的问题包括::

  • 将密钥加载到终端中,
  • 在获取器处确定在特定时间点任何给定终端中有什么密钥,
  • 明确地识别密钥和密钥管理方法。

        本节规定:

  • 密钥管理方法,
  • 密钥识别技术,以及
  • 传输安全或密钥管理信息所需的数据元素。

        虽然本标准的这一部分规定了终端和第一个节点之间的密钥关系,但这些技术中的任何一种都可以用于任何其他节点。

8.2 密钥管理方法

        本标准的这一部分认可了应单独或组合使用的密钥管理方法。这些方法分为两大类,每一类都可能适用于特定类型的TRSM。

  1. 需要防泄漏控制的密钥管理方法
    1. 固定交易密钥
    2. 主密钥/交易密钥
  2. 需要泄漏检测控制的密钥管理方法:
    1. 每笔交易派生唯一密钥(DUKPT)

        每种方法的要求在后面的章节中都有详细说明,但总结如下。

8.2.1 需要防泄漏控制的密钥管理方法

        此类别包含两种密钥管理方法,需要完全依赖物理屏障和安全程序的TRSM。另见第7.2节。这两种方法都使用多个交易的密钥。这两种方法都适用于任何节点(包括终端)上的任何TRSM之间。

8.2.1.1 固定交易密钥

        这种密钥管理方法使用密钥进行交易处理,这些密钥使用一些物理过程进行分发,例如设备键盘、磁卡、密钥加载设备。只要知道或怀疑存在泄漏,就会用相同的方法替换密钥。第8.5节详细描述了这种方法。

8.2.1.2 主密钥/交易密钥

        此方法使用密钥加密密钥和交易密钥的层次结构。最高级别的密钥加密密钥称为主密钥。主密钥是使用一些物理过程分配的,例如设备键盘、磁卡、密钥加载设备。只要知道或怀疑存在泄露,主密钥就会用相同的方法替换。

        交易密钥是在密钥加密密钥下加密分发和替换的。在两层层次结构中,主密钥用于直接加密交易密钥。或者,可以使用多级密钥加密密钥。每个密钥加密密钥都在下一个更高级别的密钥加密密钥下进行分发和替换加密。

        该方法在第8.6节中进行了描述。

8.2.2 需要泄漏检测控制的密钥管理方法

        第二类包含一种方法,用于确定和生成一个交易的唯一密钥。。这种方法允许使用不完全依赖物理屏障和安全程序的TRSM。该方法适用于许多依赖DUKPT排除过去密钥确定的交易发起TRSM与相对较少的接收TRSM通信的应用程序,这些接收TRSM依赖物理屏障排除过去密钥的确定。此方法适用于POS PIN输入设备,其中许多此类PIN输入设备与同一收单机构一起操作。该方法适用于终端的TRSM和加密处理交易的第一接收节点处的TRSM之间。

        DUKPT依赖于使用仅存在于加密处理该交易的第一个接收节点的TRSM中的“基础派生”密钥。终端TRSM使用的唯一交易密钥是从基础派生密钥中推导出来的,该密钥仅使用作为每个交易一部分传输的非秘密数据。

        该方法在第8.7节中进行了描述

8.3 密钥识别技术

        在交易时,终端TRSM和第一接收节点的TRSM都对交易需求信息进行加密处理,以确定相关联的交易密钥。

        在某些情况下,仅凭正常的交易数据就足以让节点识别密钥。在其他情况下,密钥管理信息作为交易消息的一部分发送,因此可以识别或导出交易密钥。可以组合选定的交易数据元素,以唯一标识交易处理中使用的密钥。选择的元素可能取决于终端的能力、节点的能力、密钥管理方法和使用的密钥识别技术。

        应使用以下技术之一来确定交易密钥。

8.3.1 密钥识别

        交易消息中不包含仅用于标识交易密钥的其他特定信息,而是可以使用交易中通常存在的信息。例如,交易消息中的终端标识号用作交易密钥数据库的参考,以标识密钥。

8.3.2 按名称识别密钥

        交易消息中包含了命名交易密钥的其他具体信息。此密钥名称可用于引用或导出交易密钥。例如,为了从数据库中获取交易密钥,消息中包含了一个参考密钥名称(独立于终端标识号)。再举一个例子,交易消息中包含一个密钥名,如果使用正确的派生密钥进行加密处理,则会产生交易密钥。

8.4 安全管理信息数据(SMlD)元素

        为了实现密钥管理,传输密钥管理信息可能需要数据元素。具体来说,需要一个数据元素来提供框架,以指定方法和密钥标识。

        安全管理信息数据元素(SMID)可用于传达安全工作密钥管理信息,以用于当前交易消息或未来交易消息。

        1) 当前交易消息

        SMlD通常用于标识当前交易密钥。例如,SMlD可用于销售点环境,在该环境中,数千个终端与同一收单机构进行接口连接。在这种情况下,SMlD从终端传输到收单机构,并使收单机构能够确定终端在相关消息中用于加密/认证的密钥。

        SMID以唯一标识与相关交易消息一起使用的密钥。当每个交易消息发起者只有一个接收者,并且该接收者预计不会改变时,SMlD的字段可以通过交易发起者和交易接收者之间重新定义的协议来指定。当它们是或可能是多个交易接收方,或者当交易接收方可能发生变化(例如金融机构合并)时,建议以标准化的方式对SMID进行编码。如果一个交易消息源将来可能会与其他接收方接口,尤其如此,以确保接收方从其他发起人那里收到的交易中的SMlD编码之间没有歧义或一致性。

        在某些实施方式中,可以省略SMID。在这些情况下,密钥管理方法默认为由实体预先确定的方法,并且密钥是隐含标识的。例如,卡接收器可以操作不传输SMlD的终端,前提是卡接收器已经知道终端中安装了哪种方法,并且可以隐式地确定当前的交易密钥。使用此类默认值(即隐式指定)可能会限制未来适应其他密钥管理方法的实现或存在的灵活性。

        2) 未来交易消息

        SMlD可替代地用于传达未来重传消息的安全或密钥管理信息。例如,当在终端和收单机构之间使用时,SMlD可以在识别当前密钥时从终端发送到收单机构,在传达有关未来密钥的信息时从收单机构发送到终端。另一个例子是在使用主密钥/交易密钥方法的两个节点之间传输安全或密钥管理信息。一些密钥管理方法从不使用SMlD来传输有关未来密钥的信息。

        SMlD的一个特殊功能允许在一条消息中传输多个SMlD。此功能还允许为上述两个目的之一或两者提供信息。

        以下小节从结构、表示、字段属性、编码和密钥命名约定等方面描述了SMlD。在本标准这一部分的后面部分,每种密钥管理方法都指定了其数据子字段以及如何使用它们。

        尽管不同密钥管理方法的每个实现都可能指定SMlD的结构和用于传递密钥信息的方式,但SMlD在出现时应符合以下规范。当SMlD出现在符合参考7的消息中时,SMlD应符合本节中的规范。

        参考7 SMlD字段位置:

        SMlD在参考文献7中定义如下:

Bit 52                 b-8         PIN data (binary fixed length 8 bytes) 
Bit 53 LLVAR         b...48        Security Control Information (binary variable length max 48 bytes) 
Bit 64                 b-8         MAC (binary fixed length 8 bytes) 
Bit 96 LLLVAR         b...999      Key Management Data (binary variable length max 999 bytes) 
Bit 128                b-8         MAC (same as Bit 64) 

        位图的第53位指定了当与第52位一起用于11xx授权和包含PlN的12xx金融交易时,SMlD的存在。

        当任何交易被MACed时,位图的第53位指定了与第128位(或64位)结合使用时SMlD的存在。因此,如果1200金融消息包括PlN(位52)并且是MAC的(位128),则位53包括PlN密钥和MAC密钥的SMiD。

        位图的第96位指定了用于18xx网络密钥管理事务时SMlD的存在。用于密钥交换的1804网络管理请求消息包含用于未来交易(例如,1200条金融消息的新PIN密钥)的SMlD(由位96表示),如果1804是MAC(由位128表示),则1804包含用于当前交易(即MAC)的另一个SMlD。

        SMlD示例见附件B。

8.5 方法:固定交易密钥

        在此方法中,物理加载的密钥应用于交易处理,直到物理加载新密钥为止。

8.6 方法:主密钥/交易密钥

        此方法使用密钥的层次结构。在这个层次结构的最低级别是用于交易处理的交易密钥;这些也称为数据密钥。交易密钥在密钥加密密钥下进行分发和替换。每个密钥加密密钥都在下一个更高级别的密钥加密密钥下加密。最高级别的密钥加密密钥是主密钥,应物理加载。

        为了利用这种方法,应该实现有关密钥管理各个方面的基本机制,包括加密服务消息(CSM)。(有关CSM的信息,请参见附件D。)

8.7 方法:DUKPT(每笔交易派生唯一密钥)

        通过这种方法,发起TRSM的每笔交易都为每笔交易使用一个唯一的密钥,但从不包含任何信息,这些信息将允许确定该TRSM之前使用的任何密钥,也不包含任何其他发起TRSM交易已经或将要使用的任何密钥。接收方TRSM应通过以下方式确定发起TRSM任何交易使用的当前交易密钥:

  1. 交易SMlD中包含的非秘密信息,以及
  2. 基础派生密钥。此基础派生密钥:
    1. 应位于完全依赖物理屏障的TRSM中
    2. 驻留在一个或多个接收(例如收单机构)TRSM中
    3. 不驻留在任何发起(例如终端)的TRSM中
    4. 用于使用密钥名称生成源TRSM的唯一双倍长度初始密钥
    5. 可用于为许多发起TRSMS生成唯一的双倍长度初始密钥
    6. 应为双倍长度或三倍长度的密钥。

        该方法应在接收TRSM上运行,如图1所示。

图1 接收端TRSM的DUKPT

        SMID应由一个密钥名(Key Name)组成,该密钥名应使用密钥集标识符。密钥名称由三个子字段组成。最左侧的子字段是密钥集标识符(Key Set ID),用于选择适合发起交易的TRSM的基础派生密钥。第二个子字段是TRSM标识符(TRSM ID),使用所选的基础派生密钥对密钥集标识符和TRSM标识符的连接进行加密。结果是加载到原始TRSM中的初始密钥(尽管可能在几年前从该TRSM中删除);第三个子字段是交易计数器(Transaction Counter)。发起交易的TRSM应增加每笔交易的交易计数器。当其交易计数器溢出到零时,发起TRSM应停止运行。接收方TRSM应验证SMD中发起方的TRSM交易计数器已增加。

        初始密钥和交易计数器是不可逆转换过程的输入,该过程产生用于当前交易的交易密钥。在该方法的示例实现中(见附件A),即使交易计数器可以有超过一百万个不同的值,转换过程也不需要超过10个TDEA周期。

        请注意,最初加载的密钥是基础派生密钥、密钥集标识符和TRSM标识符的函数。因此,如果没有两个具有相同密钥集标识符的源TRSM具有相同的TRSM标识符,则不会向两个源TRSM提供相同的初始密钥。

        发起TRSM应生成并使用当前交易密钥,以便接收方TRSM可以使用图1所示的过程确定该密钥。发起TRSM还应在当前交易完成后立即擦除当前交易密钥的所有记录

        图2显示了此方法如何在发起TRSM上运行的示例。

 图2 发起端TRSM的DUKPT

        此TRSM存储了许多未来的密钥。在新事务开始时,交易计数器(Transaction Counter)递增,然后用于选择这些未来密钥作为当前交易密钥。所选密钥将从未来密钥存储中擦除。请注意,密钥名称在SMlD中与当前交易一起传输

        在交易完成时,通过根据交易计数器对当前交易密钥进行不可逆转换,生成一定数量的未来密钥(有时没有,有时甚至更多)。然后,这些新生成的未来密钥被存储到由交易计数器确定的未来密钥存储中的这些位置。然后擦除当前交易密钥。因此,TRSM不会保留有关用于任何先前交易的任何密钥的信息。

        在图1和图2中,不可逆转变过程“A”和“B”是不同的,但相互关联。未来的密钥在发起TRSM处以手动方式生成、存储和选择,以便接收TRSM能够确定当前的交易密钥。

        附录A详细说明了该技术的实施。

8.7.1 SMID

        对于这种方法,交易密钥的标识(见第8.4节)如下:

CONTROL Optional     Value is hex A5 or B5. 
KEY NAME             B 5...16 Mandatory 
                     The value used to derive the current Transaction Key. The KEY NAME 
                     SHALL incorporate a KEY SET IDENTIFIER. 

8.7.2 附加密钥管理要求

8.7.2.1 初始化

        初始密钥和相关密钥名称都应加载到发起TRSM中。发起TRSM应确保交易计数器设置为零。用于导出此初始密钥的基础派生密钥应可供接收TRSM使用,然后接收TRSM才能对来自发起TRSM的数据进行加密处理。应确保没有两个用相同密钥集标识符初始化的发起TRSM用相同的TRSM标识符初始化。

8.7.2.2 加密密钥同步

        该方法本质上是自同步的。

        不需要特殊恢复,因为同步不会丢失。

8.7.3 其他注意事项

  1. 其他系统、通信或操作故障可能会影响密码密钥同步。
  2. 这种方法不需要收单机构维护任何密钥管理相关数据的数据库,除了相对较少的基础派生密钥,这些密钥可以最好地存储在该收单机构的TRSM中。
  3. 因为在这种方法中,交易会识别自己的交易密钥,所以很容易受到欺诈威胁:对手会破坏一个交易发起的TRSM,然后在许多发起的TRSM中复制密钥标识符,在这种情况下是密钥名称(形成此TRSM传输的SMlD)和密钥本身。在这种情况中,可以通过两种方式应对这种威胁:(1)加载新密钥时,发起TRSM会自动将其交易计数器设置为零。由于泄漏的TRSM具有非零交易计数器(计数器在密钥加载后立即递增),因此无法使欺诈性加载的TRSM模拟受损的TRSM。(2)使用记录的密钥名称执行审核过程,可能是离线,以确定两个或多个交易发起的TRSM是否与同一密钥集标识符和TRSM标识符相关联。此审计过程检测到使用了伪造的TRSM,该TRSM加载了来自受损TRSM的数据。
  4. 这种方法允许在将交易发起的TRSM分发到其操作位置之前,加载初始密钥和初始密钥名称。如果TRSM是与POS终端一起使用的PIN输入设备,这意味着PIN输入设备可以在已加载密钥的情况下交付给商家的非安全设施。这可以防止对手用具有正确操作特性和泄露“漏洞”的秘密数据的假冒设备替换合法的TRSM。假设如果打开TRSM,密钥会自动擦除,这也可以防止在合法的TRSM中放置泄露“错误”的秘密数据。伪造的TRSM不能包含有效密钥,因此来自该TRSM的交易将被拒绝。
  5. 此方法允许已加载密钥的TRSM随后与交易发起终端关联,而无需与收单机构进行任何协调。如果TRSM是POS PlN输入设备,商家可以随时在任何终端上安装任何PIN输入设备,并可以随时用备用设备替换故障的PlN输入装置,所有这些都不需要与收单机构进行手动协调。
  6. 这种方法可以与“子密钥”方法一起使用,该方法使一组TRSM(例如商家的POS PIN输入设备)能够从一个收单机构更改到另一个收单行,而不需要将第一个收单机可能用于许多其他商家的基础衍生密钥转移给第二个收单程序。

9 附件:标准下载

     ANSI X9.24-1-2009

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2193796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UE5数字人制作平台使用及3D模型生成

第10章 数字人制作平台使用及3D模型生成 在数字娱乐、虚拟现实(VR)、增强现实(AR)等领域,高质量的3D模型是数字内容创作的核心。本章将引导你了解如何使用UE5(Unreal Engine 5)虚幻引擎这一强大…

Transformer 模型和 BERT 模型:概述

语言模型发展历程Language modeling history 多年来,语言建模一直在不断发展。过去十年的最新突破,包括使用神经网络来表示文本,比如2013年的Word2vec和N元语法,2014年开发的序列到序列模型,如RNN和LSTM帮助提高机器学…

舵机驱动详解(模拟/数字 STM32)

目录 一、介绍 二、模块原理 1.舵机驱动原理 2.引脚描述 三、程序设计 main.c文件 servo.h文件 servo.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 舵机(Servo)是在程序的控制下,在一定范围内连续改变输出轴角度并保持的电机系统。即舵机只支持…

九、3 串口发送+printf函数移植+打印汉字

1、接线图 TX与RX交叉连接,TXD接STM32的PA10,RXD接STM32的PA9 VCC与3.3V用跳线帽连接 2、函数介绍 3、代码部分 (1)发送字节的函数(Byte) 可直接发送十六进制数 如0x41,也可直接发送字符 如A …

通信工程学习:什么是AIOT智能物联网

AIOT:智能物联网 AIOT智能物联网,即Artificial Intelligence of Things(人工智能物联网),是人工智能(AI)与物联网(IoT)技术的深度融合。这一技术通过物联网产生、收集来自…

import torch报错问题:OSError: [WinError 126] 找不到指定的模块。

今天在python中导入import torch时&#xff0c;发生了报错。 import torch File "D:\python\Lib\site-packages\torch\__init__.py", line 148, in <module>raise err OSError: [WinError 126] 找不到指定的模块。 Error loading "D:\python\Lib\site-pac…

一、Python(介绍、环境搭建)

一、介绍 Python 是一种高级编程语言&#xff0c;具有简洁易读的语法、丰富的库和强大的功能。Python是解释型语言&#xff0c;运行代码必须依赖安装好的解释器。Python目前存在两个版本&#xff1a;Python2、Python3&#xff08;主流使用&#xff09; 二、环境搭建 1.安装P…

Midjourney零基础学习

Midjourney学习笔记TOP01 什么是AI艺术 AI艺术指的是使用AI技术创作的艺术作品&#xff0c;包括AI诗歌、AI音乐、AI绘画等多种艺术表现形式&#xff1b;AI艺术可以被视为计算机程序与人类合作创作作品&#xff1b;除了Midjourney&#xff0c;比较流行的AI图像生成工具还有Stab…

停车位识别数据集 图片数量12416张YOLO,xml和txt标签都有; 2类类别:space-empty,space-occupied;

YOLO停车位识别 图片数量12416张&#xff0c;xml和txt标签都有&#xff1b; 2类类别&#xff1a;space-empty&#xff0c;space-occupied&#xff1b; 用于yolo&#xff0c;Python&#xff0c;目标检测&#xff0c;机器学习&#xff0c;人工智能&#xff0c;深度学习&#xff0…

HDLBits中文版,标准参考答案 |3.1.1 Basic Gates | 基本门电路

关注 望森FPGA 查看更多FPGA资讯 这是望森的第 8 期分享 作者 | 望森 来源 | 望森FPGA 目录 1 Wire | 连线 2 GND | 地线 3 NOR | 或非门 4 Another gate | 另外的门电路 5 Two gates | 两个门电路 6 More logic gates | 更多逻辑门电路 7 7420 chip | 7420 芯片 8 …

Crypto虐狗记---”你“和小鱼(外传)

前言&#xff1a;剧情十(我没看见还有一个。。。。) 提示&#xff1a; 下载&#xff1a; 参数有了&#xff0c;直接搞就行。。。 参考&#xff1a; *crypto*练2--攻防世界--easy_ECC - kubopiy - 博客园 (cnblogs.com) 大佬的脚本&#xff1a; 攻防世界 easy_ECC - diakla -…

SpringBoot:让开发更加简单

文章目录 前言什么是 SpringBoot快速启动一个 SpringBoot 项目开发一个登录功能小结 前言 有一天&#xff0c;你脑海中闪现了一个想法&#xff1a;“学了 Java 好像还没怎么使用&#xff0c;今天要不用 Java 开发一个自己的网站&#xff1f;” 你想着不禁激动起来&#xff0c;…

python爬虫案例——处理验证码登录网站(12)

文章目录 前言1、任务目标2、网页分析3、代码编写前言 我们在爬取某些网站数据时,可能会遇到必须登陆才能获取网页内容的情况,而大部分网站登录都需要输入验证码才能登录成功,所以接下来我将会通过实际案例来讲解如何实现验证码登录网站 1、任务目标 目标站点:中文古诗网(…

Codeforces Round 977

这场比赛是晚上vp的&#xff0c;太逆天了自己&#xff0c;给我自己都菜笑了&#xff0c;第二题当时差了一个那个循序渐进的点没想到&#xff0c;关键细节都想到了&#xff0c;当时以为是错的就没写&#xff0c;第二题没做出来确实好久没遇到过了&#xff0c;裂开 话不多说&…

SpringBoot基础(四):bean的多种加载方式

SpringBoot基础系列文章 SpringBoot基础(一)&#xff1a;快速入门 SpringBoot基础(二)&#xff1a;配置文件详解 SpringBoot基础(三)&#xff1a;Logback日志 SpringBoot基础(四)&#xff1a;bean的多种加载方式 目录 一、xml配置文件二、注解定义bean1、使用AnnotationCon…

MySQL之复合查询与内外连接

目录 一、多表查询 二、自连接 三、子查询 四、合并查询 五、表的内连接和外连接 1、内连接 2、外连接 前面我们讲解的mysql表的查询都是对一张表进行查询&#xff0c;即数据的查询都是在某一时刻对一个表进行操作的。而在实际开发中&#xff0c;我们往往还需要对多个表…

05:(寄存器开发)定时器一

定时器 1、系统定时器SysTick1.1、SysTick中断的使用1.2、使用SysTick制作延迟函数 2、基本定时器2.1、基本定时器中断的使用2.2、使用基本定时器制作延时函数 1、系统定时器SysTick 1.1、SysTick中断的使用 ①SysTcik系统滴答定时器和片上外设定时器不同&#xff0c;它在CPU…

【c语言——指针详解(3)】

文章目录 一、字符指针变量二、数组指针变量1、 数组指针变量是什么&#xff1f;2、 数组指针变量怎么初始化 三、⼆维数组传参的本质四、函数指针变量1、函数指针变量的创建2、函数指针变量的使⽤3、两段有趣的代码1&#xff09;typedef 关键字2&#xff09;typedef和define的…

<<迷雾>> 第8章 学生时代的走马灯(3)--走马灯 示例电路

几个首尾相连的触发器使用同一个控制端&#xff0c;能同时触发 info::操作说明 鼠标单击开关切换开合状态 注: 其中 CP 为按钮开关, 每点击一次, Q 的输出前进一级 注: 第一个触发器的输出端 Q 需要先置入高电平. 如果重置了电路, 可外接电源先使第一个 Q 置入高电平. 另: 因为…

开源跨平台三维模型轻量化软件osgGISPlugins-2、如何编译

上一篇&#xff1a;开源跨平台三维模型轻量化软件osgGISPlugins-1、简介 1、编译前的准备&#xff1a;安装、配置vcpkg包管理器 1&#xff09;安装及国内镜像替换教程(Windows和Linux环境都有):vcpkg国内镜像源替换 2&#xff09;下载第三方依赖库(Readme文档中所给出的百度网…