[MQ 9.2.4 2021 年 11 月]

IBM MQ 程式碼簽章

IBM® MQ 9.2.4,可下載的 .zip.tar.gz 檔案已簽署。 也會簽署可安裝的 .rpm.deb 檔案。 可能的話,簽章會內嵌在檔案中。 對於不容許此動作的檔案格式,會提供個別的 .sig 檔案,其中包含用來簽署 IBM MQ 二進位檔的簽章及公開金鑰。

可以從額外下載套件下載 IBM MQ 公用憑證、總和檢查、 pgp 金鑰及 .sig 檔案,網址為 https://ibm.biz/mq92signatures

*.zip 檔

.zip 檔案表單中的 IBM MQ 交付項目包含內嵌的數位簽章,可使用最近的 Java Development Kit (JDK) 來驗證,如下列範例所示:
jarsigner -certs -verify 9.2.4.0-IBM-MQC-Redist-Java.zip
	jar verified.
附註: 透過使用 verbose 選項執行,可以找到更多詳細資料 (包括簽章者)。

*.tar.gz 檔案

*.tar.gz 檔案表單中的 IBM MQ 交付項目由 IBM MQ 簽署,其數位簽章在額外可下載的套件中提供。 若要驗證檔案的簽章,請使用 openssl ,如下列 9.2.4.0-IBM-MQC-Redist-LinuxX64.tar.gz範例所示:
openssl dgst -sha256 -verify ibm_mq_public.pem -signature 9.2.4.0-IBM-MQC-Redist-LinuxX64.tar.gz.sig 9.2.4.0-IBM-MQC-Redist-LinuxX64.tar.gz
Verified OK 

*.rpm

IBM提供的 RPM 是以數位簽章來簽署,如果沒有授權,系統將無法辨識簽署金鑰。 從額外可下載套件取得 IBM MQ 公用簽署 gpg 金鑰,並將它安裝至 rpm。 這只需要每個系統執行一次。
rpm --import ibm_mq_public.pgp
然後可以驗證任何 IBM MQ RPM 的有效性,例如:
# rpm -Kv MQSeriesRuntime-9.2.4-0.x86_64.rpm
MQSeriesRuntime-9.2.4-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.2.4-0.x86_64.rpm: 標頭 V3 RSA/SHA256 簽章,金鑰 ID 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.2.4.0_amd64.deb
    debsig: Verified package from 'IBM MQ signing key' (IBM MQ signing key)
    
附註: 雖然可以在安裝期間配置 dpkg 以驗證簽章,但不建議這樣做,因為它會導致 dpkg 拒絕未簽署 Debian 檔案的安裝。