[MQ 9.3.0 2022 年 6 月]

IBM MQ 代码特征符

IBM® MQ 9.3.0开始,将对可下载的 .zip.tar.gz 文件进行签名。 还会对可安装的 .rpm.deb 文件进行签名。 在可能的情况下,会将特征符嵌入到文件中。 对于不允许此操作的文件格式,将提供单独的 .sig 文件,其中包含用于验证签名和公用密钥的签名和公用密钥。

可以从 https://ibm.biz/mq93signatures上的额外下载包下载 IBM MQ 公用证书,校验和, pgp 密钥和 .sig 文件。

*.zip 文件

.zip 文件表单中的 IBM MQ 可交付内容包含可使用最新 Java Development Kit (JDK) 进行验证的嵌入式数字签名,如以下示例中所示:
jarsigner -certs -verify 9.3.0.0-IBM-MQC-Redist-Java.zip
	jar verified.
注: 可以通过使用详细选项运行来找到更多详细信息 (包括签署者)。

*.tar.gz 文件

*.tar.gz 文件表单中的 IBM MQ 可交付件由 IBM MQ 签署,其数字签名在额外的可下载包中提供。 要验证文件的特征符,请使用 openssl ,如以下 9.3.0.0-IBM-MQC-Redist-LinuxX64.tar.gz示例中所示:
openssl dgst -sha256 -verify ibm_mq_public.pem -signature 9.3.0.0-IBM-MQC-Redist-LinuxX64.tar.gz.sig 9.3.0.0-IBM-MQC-Redist-LinuxX64.tar.gz
Verified OK 

* .rpm

[MQ 9.3.3 2023 年 6 月][MQ 9.3.0.5 2023 年 4 月]注: RPM 签名版本已更改为 v4 (对于 Long Term SupportIBM MQ 9.3.0 Fix Pack 5 ,对于 Continuous DeliveryIBM MQ 9.3.3 )。 在此过程中, IBM 用于对软件包进行签名的专用密钥已更改,因此如果要在这些级别或更高级别验证 RPM 软件包,那么需要导入较新的 IBM MQ 公用签名 gpg 密钥。 如果要保留验证旧 IBM MQ 9.3.x 软件包上的特征符的能力,那么还需要旧密钥。
IBM提供的 RPM 使用数字签名进行签名,如果没有授权,系统将无法识别签名密钥。 从额外的可下载软件包中获取 IBM MQ 公用签名 gpg 密钥,并将其安装到 rpm 中。 每个系统只需要执行一次此操作。
rpm --import ibm_mq_public.pgp
然后,可以验证任何 IBM MQ RPM 的有效性,例如:
# rpm -Kv MQSeriesRuntime-9.3.0-0.x86_64.rpm
MQSeriesRuntime-9.3.0-0.x86_64.rpm:
    Header V3 RSA/SHA256 Signature, key ID 0209b828: OK
    Header SHA1 digest: OK
    V3 RSA/SHA256 Signature, key ID 0209b828: OK
    MD5 digest: OK
注: 如果跳过此步骤,那么在 RPM 安装期间可能会发出无害警告以指示存在签名,但系统无法识别签名密钥,例如:
警告: MQSeriesRuntime-9.3.0-0.x86_64.rpm: 头 V3 RSA/SHA256 签名,密钥标识 0209b828: NOKEY

* .deb

IBM 提供的 debian 类型包使用嵌入式数字签名进行签名。 要验证软件包,您将需要来自其他软件包的 IBM MQ 公用签名 gpg 密钥以及已安装的 "debsigs" 操作系统软件包。
  1. 导入 gpg 键并标识其 gpg 键值:
    # gpg --import ibm_mq_public.pgp
    gpg: keybox '/root/.gnupg/pubring.kbx' created
    gpg: /root/.gnupg/trustdb.gpg: trustdb created
    gpg: key D2D53B4E0209B828: public key "IBM MQ signing key <psirt@us.ibm.com>" imported
    gpg: Total number processed: 1
    gpg:               imported: 1
    

    由此,密钥值将为 D2D53B4E0209B828 ,证书别名将为 "IBM MQ signing key <psirt@us.ibm.com>"。 以下指示信息使用这些值-将它们替换为从导入中计算的值。

  2. 将证书别名导出到系统密钥环中:
    mkdir /usr/share/debsig/keyrings/D2D53B4E0209B828/
    cd /usr/share/debsig/keyrings/D2D53B4E0209B828/
    gpg --output IBMMQ.bin --export "IBM MQ signing key <psirt@us.ibm.com>"
    
  3. 设置系统以对该密钥启用签名策略:
    mkdir /etc/debsig/policies/D2D53B4E0209B828/
    cd /etc/debsig/policies/D2D53B4E0209B828/
    
    在此目录中创建具有以下内容的名为 IBM-MQ.pol 的文件。 请注意,只有 "id" 字段需要更改为步骤 1 中的键值。
    <?xml version="1.0"?>
    <!DOCTYPE Policy SYSTEM "https://www.debian.org/debsig/1.0/policy.dtd">
    <Policy xmlns="https://www.debian.org/debsig/1.0/">
      <Origin Name="IBM MQ signing key" id="D2D53B4E0209B828" Description="IBM MQ signing key"/>
      <Selection>
        <Required Type="origin" File="IBMMQ.bin" id="D2D53B4E0209B828"/>
      </Selection>
      <Verification MinOptional="0">
        <Required Type="origin" File="IBMMQ.bin" id="D2D53B4E0209B828"/>
      </Verification>
    </Policy>
    
  4. 使用 debsig-verify 实用程序分别验证软件包:
    # debsig-verify ibmmq-runtime_9.3.0.0_amd64.deb
    debsig: Verified package from 'IBM MQ signing key' (IBM MQ signing key)
    
注: 虽然可以配置 dpkg 以在安装期间验证签名,但建议不要这样做,因为这将导致 dpkg 拒绝安装未签名的 Debian 文件。