基于异或混淆与用户特异进制映射的密码密文生成方法

摘要: 本发明涉及信息安全,尤其涉及一种基于异或混淆与用户特异进制映射的密码密文生成方法。背景技术:1、在各类信息系统的身份认证过程中,用户通常通过用户标识符和原始密码...
基于异或混淆与用户特异进制映射的密码密文生成方法

本发明涉及信息安全,尤其涉及一种基于异或混淆与用户特异进制映射的密码密文生成方法。

背景技术:

1、在各类信息系统的身份认证过程中,用户通常通过用户标识符和原始密码完成注册、密码重置或登录认证。为避免密码明文直接存储,系统一般会将密码转换为不可逆的密码密文后写入用户数据库,并在后续认证时重新生成密文进行比对。

2、现有技术中,常见方式包括对原始密码直接执行单向散列运算,或者将用户名与密码进行拼接、加盐、异或等组合处理后再散列。部分方案还会通过标准十六进制、base64、固定编码表或全局统一映射表对散列结果进行编码,以改变密码密文的外部表现形态。

3、但是,直接对原始密码执行单向散列,在不同用户设置相同原始密码时可能形成相同或高度相近的密文输出;将用户标识符与原始密码直接拼接或仅进行简单组合后再散列,仍可能使二者之间的组合关系被分析;采用标准编码或全局统一编码规则改变密文外部形式时,不同用户密文通常仍遵循相同的输出处理路径,一旦用户数据库、编码规则或相关配置被非法获取,可能导致密文被集中比对、批量分析,甚至使针对部分用户形成的攻击结果在其他用户之间复用。由此,现有密码密文生成方式存在密文输出可关联性较高、密文外部形式区分度不足、跨用户批量分析风险较大,以及密文存储与后续认证重现之间难以兼顾安全性的技术问题。

4、公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

技术实现思路

1、本发明的目的在于提供一种基于异或混淆与用户特异进制映射的密码密文生成方法,用以解决现有密码密文生成方式中相同原始密码容易形成相同或可关联密文输出、用户标识符与原始密码之间的组合关系容易被分析、密文输出形式依赖标准编码或全局统一映射规则、持久化映射规则泄露后容易引发批量分析风险以及映射规则难以随用户身份相关材料确定的问题。

2、本发明的技术方案为:一种基于异或混淆与用户特异进制映射的密码密文生成方法,所述方法应用于包含认证服务器、独立盐值来源和用户数据库的身份认证系统中,所述方法包括:获取用户标识符和原始密码,并由所述认证服务器分别对所述用户标识符和所述原始密码进行单向散列,生成第一散列值和第二散列值;由所述认证服务器从所述第一散列值中获取最高有效位部分,以及区别于所述最高有效位部分的预设位段区间内的映射种子输入字节段,从所述第二散列值中获取最低有效位部分,将所述最高有效位部分和所述最低有效位部分进行按位异或运算,得到异或组合结果;由所述独立盐值来源提供独立于所述用户数据库的全局固定盐值,基于所述全局固定盐值和所述异或组合结果进行二次单向散列,生成中间散列值;由所述认证服务器基于所述映射种子输入字节段和所述全局固定盐值生成用户特异映射种子,并依据所述用户特异映射种子对区别于标准散列输出形态的预设字符集进行确定性伪随机置换,生成非标准进制临时映射规则;依据所述非标准进制临时映射规则将中间散列值转换为最终密码密文,根据身份认证请求类型,将所述最终密码密文输出至对应的密文处理流程,并在密文处理流程完成后将非标准进制临时映射规则作为本次处理期间的临时内存对象予以丢弃。

3、可选地,所述获取用户标识符和原始密码,包括:对接收到的身份认证请求进行格式校验,在满足预设格式校验条件时,从所述身份认证请求中提取出所述用户标识符和所述原始密码;所述身份认证请求的类型至少包括新用户注册请求、密码重置请求或登录认证请求。

4、可选地,所述由所述认证服务器从所述第一散列值中获取最高有效位部分,以及区别于所述最高有效位部分的预设位段区间内的映射种子输入字节段,包括:将所述第一散列值中预设高位宽度的连续字节划定为第一隔离区,并将所述第一隔离区对应的字节内容作为所述最高有效位部分;在所述第一散列值中选取与所述第一隔离区对应的字节区间不重叠的预设字节区间,作为第二隔离区,并将所述第二隔离区对应的字节内容作为所述映射种子输入字节段;确认所述第一隔离区对应的字节区间与所述第二隔离区对应的字节区间不存在交集;在确认不存在交集时,将所述最高有效位部分作为用于异或组合的内容混淆数据,并将所述映射种子输入字节段作为用于映射规则派生的形式混淆数据。

5、可选地,所述独立盐值来源包括硬件安全模块,所述全局固定盐值存储于所述硬件安全模块的受保护存储区域;所述基于所述全局固定盐值和所述异或组合结果进行二次单向散列,生成中间散列值中,包括:将所述异或组合结果发送至所述硬件安全模块;由所述硬件安全模块基于所述全局固定盐值与所述异或组合结果执行二次单向散列,生成所述中间散列值;将所述中间散列值返回至所述认证服务器。

6、可选地,所述由所述认证服务器基于所述映射种子输入字节段和所述全局固定盐值生成用户特异映射种子,包括:将所述全局固定盐值或由所述全局固定盐值派生出的参数作为密钥;将所述映射种子输入字节段作为加密消息主体;调用具有消息认证能力的散列消息认证码算法进行计算,输出仅存在于本次身份认证会话生命周期中的所述用户特异映射种子。

7、可选地,所述依据所述用户特异映射种子对区别于标准散列输出形态的预设字符集进行确定性伪随机置换,生成非标准进制临时映射规则,包括:以所述用户特异映射种子作为确定性伪随机数发生器的伪随机源;在分配的易失性内存空间内,采用确定性伪随机置换算法,依靠所述确定性伪随机数发生器生成的伪随机索引值,对由基础字母和扩展字符集合混合构成的所述预设字符集执行元素随机互换操作;输出乱序的临时字符映射表,作为所述非标准进制临时映射规则。

8、可选地,当所述身份认证请求的类型为新用户注册请求或密码重置请求时,所述对应的密文处理流程包括写入或更新至唯一密文字段,将最终密码密文写入或更新至唯一密文字段,包括:通过持久化关系型数据库引擎将所述最终密码密文作为普通字符串写入或更新至唯一密文字段,且不新增任何用于存储所述非标准进制临时映射规则的附带表结构。

9、可选地,当所述身份认证请求的类型为登录认证请求时,所述对应的密文处理流程包括调取既有密文并进行认证比对,将最终密码密文用于与既有密码密文进行认证比对,包括:从所述用户数据库中调取与所述用户标识符对应的既有密码密文;将本次生成的所述最终密码密文与所述既有密码密文按照恒定时间比较方式进行比对;根据比对结果输出表征登录认证是否通过的认证结果。

10、可选地,所述在密文处理流程完成后将非标准进制临时映射规则作为本次处理期间的临时内存对象予以丢弃,包括:当捕获到所述最终密码密文在所述用户数据库中写入成功或比对完成的回调信号时,定位存放所述非标准进制临时映射规则的易失性内存片段;释放或删除所述非标准进制临时映射规则对应的临时内存对象;阻止所述非标准进制临时映射规则写入非易失性持久化存储介质。

11、可选地,所述方法还包括基于异常状态触发的回退与熔断处理:当检测到包括格式校验失败、第一隔离区与第二隔离区存在交集或独立盐值来源调用超时中的任一情况时,拒绝启动密文生成流水线或终止当前认证链路;向请求发起方返回统一失败响应,且禁止触发针对所述全局固定盐值的无盐降级比对模式,以及禁止生成用于替代所述非标准进制临时映射规则的持久化码表文件。

12、有益效果:

13、本发明通过分别对用户标识符和原始密码生成第一散列值和第二散列值,并从第一散列值中选取不重叠的位段,使其中一部分位段参与异或组合,另一部分位段参与映射种子派生,从而降低用户标识符与原始密码直接拼接或简单组合带来的关联分析风险;通过将映射种子输入字节段与独立于用户数据库的全局固定盐值结合生成用户专属映射种子,并据此临时生成映射规则,使最终密码密文的形式转换规则随用户身份相关材料确定;通过在写入、更新或认证比对完成后释放或删除临时映射规则,使用户数据库仅保存最终密码密文而不保存映射规则,从而降低持久化映射表泄露引发的批量分析风险,并提高攻击结果在不同用户之间直接复用的难度。