• HSM:Host Security Module,主机安全模块。完成系统需要的密钥管理,PIN和MAC相关运算的功能。

  • 数据需编码成ASCII码或EBCDIC码。HSM认为所有数据都被编码好了。

  • 支持异步,双同步,SNA,SDLC,TCP/IP,IBM等通讯协议。

  • HSM没有支持流控制,开发人员必须确保HSM的输入缓冲器不会溢出。

  • HSM也将错误代码作为响应消息的一部分返回主机。

  • 以下什么意思?

    • X-ANSI X9.17双倍长度;
    • Y-ANSI X9.17三倍长度;
    • ANSI X9.19
  • 应用程序应该确保加密机的输入缓冲器(2048字节长)不会被溢出。任何一条单独命令(包括STX和ETX等字符在内)的长度都不会超过2048字节(SNA-SDLC环境为1024字节)。

  • HSM产生四种类型的错误:

    • 致命错误
    • 不可恢复错误
    • 可恢复错误
    • 编程错误
  • 应用程序应当监视HSM接口是否超时。

  • 一个典型的系统包含两个或多个以运行状态相连接的HSM。当HSM发生错误时也可以作为备份机使用。

  • HSM本地主密钥(LMKs)从key00计数至key99。有对应功能。

  • 注意:SM4密钥只有方案S,无需变种。

  • HSM提供一系列的函数以实现密钥管理、PIN管理(包括PIN验证)和信息认证码(MAC)运算的功能。HSM必须有一个已定义的打印格式。

  • HSM命令:

    • 完成诊断NC/ND
    • 生成密钥:A0/A1
      • **注意:**查看密钥类型表以找到密钥类型代。
      • 查看密钥方案表以找到加密密钥的有效方案。
    • 随机生成密钥A1/A2。
    • 生成并打印一个成分A2/A3。
      • 生成一个随机的成份,在与HSM相连接的打印机上打印出来并将加密值返回给主机。打印机必须连接到HSM辅助端口。HSM必须有一个已定义的打印格式。
    • 输入一个密钥A6/A7。
      • 查看密钥类型表以找到密钥类型代码。
    • 输出一个密钥A8/A9。查看密钥类型表以找到密钥类型代码。HSM必须处于授权状态。
    • 生成密钥校验值( BU/BV)
    • 将ZPK由ZMK转为LMK加密(FA/FB)。将ZPK由ZMK加密转为LMK加密。用于从另一群体取得ZPK。
    • 将ZPK由LMK转为ZMK加密(GC/GD)。将ZPK由LMK加密转为ZMK加密。用于向另一群体传送ZPK。
    • 生成或导入明文密钥()
    • 加密一个明文的PIN(BA/BB)
    • 解密一个明文的PIN(NG/NH)
  • 需求:添加AES加密功能。

  • PIN格式:HSM要求PIN以十六位的PIN块格式输入。

    • 以一位的0、PIN的长度、PIN和填充字符(十六进制的“F”)组成一个十六位的块。
    • PIN块是以PIN长度、6位的PIN和用户定义的数字填充串组成。
    • PIN块是由客户PIN和十六进制的“F”填充字符组成。
    • 格式04是被PLUS网络所采用的PIN块格式。这种格式是由客户PIN和相关的账号按以