驗證簽章

Qubes OS 專案使用`數位簽章 <https://en.wikipedia.org/wiki/Digital_signature>`__ 來保證某些重要資產的真實性和完整性。此頁面說明如何驗證這些簽章。理解並應用這些做法對您的安全性極為重要。

數位簽章可以證明和不能證明的範圍

大多數人——即使是程式設計師——都對數位簽章的基本概念感到困惑。因此,大多數人都應該閱讀本節,即使它乍看之下很 trivial。

數位簽章可以在合理的確定程度上證明**真實性**和**完整性**。**真實性**確保給定檔案確實由簽署它的人建立(即第三方未偽造它)。**完整性**確保檔案的內容未被篡改(即第三方未在傳輸過程中未被察覺地更改其內容)。

數位簽章**不能**證明簽署的檔案不是惡意的。事實上,沒有什麼能阻止某人簽署惡意程式(這種情況在現實中時有發生)。

重點是我們必須決定信任誰(例如 Linus Torvalds、Microsoft 或 Qubes 專案),並假設如果一個受信任方簽署了給定檔案,那麼它不應該是惡意的或有疏忽的錯誤。是否信任任何特定方的決定超出了數位簽章的範圍。這更像是一個社會和政治決定。

一旦我們決定信任某些方,數位簽章就很有用,因為它們使我們能夠僅信任我們選擇的那少數幾方,而不必擔心在他們和我們之間可能發生的所有壞事,例如伺服器被入侵(qubes-os.org 總有一天會被入侵,所以 don’t blindly trust the live version of this site)、託管公司不誠實的 IT 人員、ISP 不誠實的工作人員、Wi-Fi 攻擊等。我們將這種理念稱為 distrusting the infrastructure

透過驗證我們下載的所有聲稱由我們選擇信任的一方撰寫的檔案,我們消除了對上述壞事的擔憂,因為我們可以輕鬆檢測是否有任何檔案被篡改(然後選擇不執行、不安裝或不開啟它們)。

然而,為了使數位簽章有意義,我們必須確保用於簽章驗證的公鑰是真實的。任何人都可以產生一個聲稱屬於「Qubes OS 專案」的加密金鑰,但當然只有我們(真正的 Qubes 開發者)產生的金鑰才是真實的。此頁面的其餘部分說明了如何驗證專案中使用的各種金鑰的真實性,以及如何使用這些金鑰來驗證某些重要資產。

OpenPGP 軟體

我們使用 PGP <https://en.wikipedia.org/wiki/Pretty_Good_Privacy>`__(具體來說是 `OpenPGP 標準)。在開始之前,您需要可以管理 PGP 金鑰和驗證 PGP 簽章的軟體。任何符合 OpenPGP 標準的程式都可以,以下是流行作業系統的一些範例:

Linux: GnuPG <https://gnupg.org/download/index.html>`__(`文件)。開啟終端機並使用 gpg2 命令。如果您尚未安裝 GnuPG,請透過您的發行版套件管理器或從 GnuPG 網站安裝。

Mac: GPG Suite <https://gpgtools.org/>`__(`文件)。開啟終端機來輸入命令。

Windows: Gpg4win <https://gpg4win.org/download.html>`__(`文件)。使用 Windows 命令列(cmd.exe)來輸入命令。

在本頁面中,我們將透過 gpg2 命令使用 GnuPG。如果對您不起作用,請嘗試使用 gpg。如果仍然不行,請查閱您特定程式的文件(請參閱上面的連結)和下面的 疑難排解常見問題

如何匯入和驗證 Qubes Master Signing Key

許多重要的 Qubes OS 專案資產(例如 ISO、RPM、TGZ 和 Git 物件)都由官方團隊成員的金鑰或發布簽署金鑰(RSK)進行數位簽章。每個此類金鑰又由 Qubes Master Signing Key (QMSK) <https://keys.qubes-os.org/keys/qubes-master-signing-key.asc>`__(``0x427F11FD0FAA4B080123F01CDDFA1A3E36879494`)簽署。透過這種方式,QMSK 是 Qubes OS 專案的終極信任根。

開發者簽署金鑰設定為一年後到期,而 QMSK 和 RSK 沒有到期日。QMSK 是在一台專用的、氣隙隔離的「vault」機器上產生並僅保存在該機器上,私密部分(希望)永遠不會離開這台隔離的機器。

提示

在繼續之前,您必須先完成 安裝 OpenPGP 軟體 的先決步驟。

一旦您安裝了合適的 OpenPGP 軟體,有幾種方法可以取得 QMSK。

  • 如果您使用的是 Qubes OS,它在每個 qube 中都可用(除了 dom0):

    $ gpg2 --import /usr/share/qubes/qubes-master-key.asc
    
  • 如果您使用的是 Fedora,您可以在 distribution-gpg-keys 套件中取得:

    $ dnf install distribution-gpg-keys
    $ gpg2 --import /usr/share/distribution-gpg-keys/qubes/*
    
  • 如果您使用的是 Debian,它可能已包含在您的金鑰環中。

  • 您也可以**使用 GPG 取得它**:

    $ gpg2 --fetch-keys https://keys.qubes-os.org/keys/qubes-master-signing-key.asc
    
  • 從公開的 keyserver 取得(首次使用時使用 --keyserver <URI> 指定,並包含 keyserver 選項以包含金鑰簽章),例如:

    $ gpg2 --keyserver-options no-self-sigs-only,no-import-clean --keyserver hkp://keyserver.ubuntu.com --recv-keys 0x427F11FD0FAA4B080123F01CDDFA1A3E36879494
    
  • 或者**以檔案形式下載**,然後匯入該檔案。以下是一些範例下載位置:

    一旦您有了金鑰檔案,匯入它

    $ gpg2 --import /<PATH_TO_FILE>/qubes-master-signing-key.asc
    

一旦您取得了 QMSK,您必須驗證它是真實的而非偽造的。任何人都可以建立一個名為「Qubes Master Signing Key」且短金鑰 ID 為 0x36879494 的 PGP 金鑰,因此您不能僅依賴這些。您也不應該依賴任何單一網站,即使是 HTTPS 也不行。

那麼,您*應該*怎麼做?一種選擇是使用 PGP 信任網絡。此外,一些作業系統包含安全取得 QMSK 的方法。例如,在 Fedora 上,dnf install distribution-gpg-keys 將為您取得 QMSK 以及其他幾個 Qubes 金鑰。在 Debian 上,您的金鑰環可能已包含必要的金鑰。

也許最常見的方法是依賴金鑰的指紋,這是一個由 40 個字母數字字元組成的字串,像這樣:

427F 11FD 0FAA 4B08 0123  F01C DDFA 1A3E 3687 9494

每個 PGP 金鑰都有一個這樣的指紋,它在所有 PGP 金鑰中唯一地識別它。(在命令列上,您可以使用 gpg2 --fingerprint <KEY_ID> 命令檢視金鑰的指紋。)因此,如果您知道真實的 QMSK 指紋,那麼您總是有一種簡單的方法來確認任何聲稱的副本是否真實,只需比較指紋即可。

但是您如何知道哪個指紋是真實的呢?畢竟,這個網站可能被入侵,因此您在這裡看到的指紋可能不是真實的。這就是為什麼我們強烈建議從多個獨立來源以多種不同方式取得指紋,然後比較字母和數字字串以確保它們匹配。

為了說服自己知道真實的 QMSK 指紋,空格和大小寫並不重要。換句話說,所有這些指紋都被認為是相同的:

427F 11FD 0FAA 4B08 0123  F01C DDFA 1A3E 3687 9494
427f 11fd 0faa 4b08 0123  f01c ddfa 1a3e 3687 9494
427F11FD0FAA4B080123F01CDDFA1A3E36879494
427f11fd0faa4b080123f01cddfa1a3e36879494

相反地,重要的是所有字元必須以完全相同的順序出現。即使只有一個字元不同,指紋就不應被認為是相同的。即使兩個指紋擁有所有相同的字元,如果任何字元的順序、序列或位置不同,則指紋不應被認為是相同的。

然而,在*搜尋*、*查詢*或*輸入*金鑰時,空格和大小寫可能會因您使用的軟體或工具而有所不同。您可能需要嘗試不同的變體(例如有空格和無空格)。您有時也可能看到(或需要輸入)帶有 0x 前綴的完整指紋,如下所示:

0x427F11FD0FAA4B080123F01CDDFA1A3E36879494
0x427f11fd0faa4b080123f01cddfa1a3e36879494

0x 前綴有時用於表示其後的字串是十六進位值,某些 PGP 相關工具可能需要此前綴。同樣地,為了說服自己知道真實的 QMSK 指紋,您可以安全地忽略 0x 前綴,因為它不是指紋的一部分。只要 0x 之後的 40 個字元字串完全匹配,指紋就被認為是相同的。0x 前綴只有在您使用的軟體或工具關心它時才重要。

「比對指紋」的一般概念是到現實世界中(無論是數位、實體或兩者兼備)尋找其他聲稱是 QMSK 指紋的 40 個字元字串,然後將它們與您自己聲稱的 QMSK 指紋進行比較,以確保字母數字字元的序列完全相同(同樣,無論空格或大小寫)。如果任何字元不匹配或順序不同,那麼至少其中一個指紋是偽造的。以下是一些幫助您入門的想法:

  • 在各個網站上檢查指紋(例如 郵寄清單討論區社群媒體 社交平台個人網站)。

  • 針對出現指紋的 PDF、照片和影片進行檢查(例如 演講投影片、在 T恤上演講錄影)。

  • 請人們在各種郵寄清單、論壇和聊天室中發布指紋。

  • 從不同來源下載舊版 Qubes ISO 並檢查其中包含的 Qubes Master Signing Key。

  • 透過 Tor 重複上述操作。

  • 透過各種 VPN 和代理伺服器重複上述操作。

  • 在不同網路(工作、學校、網咖等)上重複上述操作。

  • 透過簡訊、電子郵件、通話、視訊聊天、傳統郵件或與您認識的人會面來確認指紋。

  • 從不同的電腦和裝置重複上述操作。

一旦您從足夠多的獨立來源以足夠多的不同方式觀察到足夠多的匹配指紋,並確信您擁有真實的指紋,請將其保存在安全的地方。每次您需要檢查聲稱是 QMSK 的金鑰是否真實時,請將該金鑰的指紋與您信任的副本進行比較,並確認它們匹配。

既然您已匯入真實的 QMSK,請將其信任等級設定為「ultimate」,以便它可以用來自動驗證所有由 QMSK 簽署的金鑰(特別是 RSK)。

$ gpg2 --edit-key 0x427F11FD0FAA4B080123F01CDDFA1A3E36879494
gpg (GnuPG) 1.4.18; Copyright (C) 2014 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

pub  4096R/36879494  created: 2010-04-01  expires: never       usage: SC
                     trust: unknown       validity: unknown
[ unknown] (1). Qubes Master Signing Key

$ gpg> fpr
pub   4096R/36879494 2010-04-01 Qubes Master Signing Key
Primary key fingerprint: 427F 11FD 0FAA 4B08 0123  F01C DDFA 1A3E 3687 9494

$ gpg> trust
pub  4096R/36879494  created: 2010-04-01  expires: never       usage: SC
                     trust: unknown       validity: unknown
[ unknown] (1). Qubes Master Signing Key

Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)

   1 = I don't know or won't say
   2 = I do NOT trust
   3 = I trust marginally
   4 = I trust fully
   5 = I trust ultimately
   m = back to the main menu

Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y

pub  4096R/36879494  created: 2010-04-01  expires: never       usage: SC
                     trust: ultimate      validity: unknown
[ unknown] (1). Qubes Master Signing Key
Please note that the shown key validity is not necessarily correct
unless you restart the program.

$ gpg> q

現在,當您匯入任何發布簽署金鑰和許多 Qubes 團隊成員金鑰時,它們將因為由 QMSK 簽署而已經受到信任。

作為最終的合理性檢查,請確保 QMSK 在您的金鑰環中具有正確的信任等級。

$ gpg2 -k "Qubes Master Signing Key"
pub   rsa4096 2010-04-01 [SC]
      427F11FD0FAA4B080123F01CDDFA1A3E36879494
uid           [ultimate] Qubes Master Signing Key

如果您在這裡沒有看到信任等級為「ultimate」的 QMSK,請返回並仔細遵循本節中的說明,並查閱下面的 疑難排解常見問題

如何匯入和驗證發布簽署金鑰

每個 Qubes OS 發布版本都由一個**發布簽署金鑰 (RSK)** 簽署,而該金鑰又由 Qubes Master Signing Key (QMSK) 簽署。

提示

在繼續之前,您必須先完成以下先決步驟:

  1. 安裝 OpenPGP 軟體。

  2. 匯入和驗證 QMSK。

完成這兩個先決步驟後,下一步是取得正確的 RSK。RSK 的檔名模式為 qubes-release-*-signing-key.asc,其中 * 是 Qubes 的主要或次要版本號,例如 44.3。有幾種方法可以取得您 Qubes 版本的 RSK。

  • 如果您可以存取現有的 Qubes 安裝,發布金鑰可在 **dom0 中**或**官方 Fedora 範本中**(以及基於它們的 qube 中)取得,位於 /etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-*

    這些可以 從 dom0 複製從任何基於 fedora 的 qube 複製到其他 qube 中以供進一步使用。

    如果您希望使用其中一個金鑰,請確保將其匯入您的金鑰環,例如:

    [user@fedora-based-qube] $ gpg2 --import /etc/pki/rpm-gpg/RPM-GPG-KEY-qubes-*
    
  • 使用 GPG 取得它

    [user@any-online-qube] $ gpg2 --keyserver-options no-self-sigs-only,no-import-clean --fetch-keys https://keys.qubes-os.org/keys/qubes-release-X-signing-key.asc
    
  • 以檔案形式下載。您可以在`下載頁面 <https://www.qubes-os.org/downloads/>`__ 上找到您 Qubes 版本的 RSK。您也可以從 Qubes 安全包Qubes keyserver 下載所有目前使用的開發者簽署金鑰、RSK 和 Qubes Master Signing Key。下載 RSK 後,使用 GPG 匯入它

    [user@any-qube] $ gpg2 --keyserver-options no-self-sigs-only,no-import-clean --import ./qubes-release-X-signing-key.asc
    

既然您有了正確的 RSK,您只需要驗證它是由 QMSK 簽署的:

$ gpg2 --check-signatures "Qubes OS Release X Signing Key"
pub   rsa4096 YYYY-MM-DD [SC]
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid           [  full  ] Qubes OS Release X Signing Key
sig!3        XXXXXXXXXXXXXXXX YYYY-MM-DD  Qubes OS Release X Signing Key
sig!         DDFA1A3E36879494 YYYY-MM-DD  Qubes Master Signing Key

gpg: 2 good signatures

這只是一個範例,因此您收到的輸出可能不完全相同(X 將被版本號取代)。重要的是帶有 sig! 前綴的行,顯示 QMSK 已簽署此金鑰。這驗證了 RSK 的真實性。請注意,sig 標籤後的 ! 標誌很重要,因為它表示金鑰簽章是有效的。sig- 前綴將表示簽章錯誤,而 sig% 則表示 gpg 在驗證簽章時遇到錯誤。您不需要獨立驗證 RSK 的真實性,因為您已經驗證了 QMSK 的真實性。

作為最終的合理性檢查,請確保 RSK 在您的金鑰環中具有正確的信任等級:

$ gpg2 -k "Qubes OS Release X Signing Key"
pub   rsa4096 YYYY-MM-DD [SC]
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid           [  full  ] Qubes OS Release X Signing Key

如果您在這裡沒有看到具有「full」或更高信任等級的正確 RSK,請返回並仔細遵循本節中的說明,並查閱下面的 疑難排解常見問題

如何取得和驗證其他簽署金鑰

請參閱 Qubes 安全包 文件。

如何驗證 Qubes ISO 上的分離式 PGP 簽章

每個 Qubes ISO 都附帶一個**分離式 PGP 簽章**檔案,您可以在`下載頁面 <https://www.qubes-os.org/downloads/>`__ 上與 ISO 一起找到。如果您 ISO 的檔名是 Qubes-RX-86_64.iso,則該 ISO 的簽章檔名為 Qubes-RX-86_64.iso.asc,其中 X 是特定的 Qubes 版本。簽章檔名始終與 ISO 檔名相同,後接 .asc

下載 ISO 和其簽章檔案。將它們都放在**同一個目錄**中,然後導航到該目錄。現在,您可以在包含這兩個檔案的目錄中執行此 GPG 命令來驗證 ISO,請確保將 Qubes-RX 替換為正確的版本號(例如 Qubes-R4.3):

$ gpg2 -v --verify Qubes-RX-x86_64.iso.asc Qubes-RX-x86_64.iso
gpg: armor header: Version: GnuPG v1
gpg: Signature made <TIME> using RSA key ID 03FA5082
gpg: using PGP trust model
gpg: Good signature from "Qubes OS Release X Signing Key"
gpg: binary signature, digest algorithm SHA256

這只是一個範例,因此您收到的輸出不會完全相同。重要的是顯示 Good signature from "Qubes OS Release X Signing Key" 的那一行。這確認了 ISO 上的簽章是有效的。

如果您在這裡沒有看到有效的簽章,請返回並仔細遵循本節中的說明,並查閱下面的 疑難排解常見問題

如何重新驗證寫入後的安裝媒體

備註

這是一個可選章節,適用於進階使用者。

為什麼在已經驗證原始 ISO 之後還要重新驗證已寫入的資料? 可以想像,一個足夠老練的對手可能會讓您的初始 ISO 驗證成功(例如以免警覺到您的機器已被入侵),然後在資料寫入安裝媒體時暗中修改資料,導致 Qubes 安裝程式被入侵。這可能會增加攻擊不被檢測到的機率。減輕此風險的一種方法是在將安裝程式寫入無法更改的安裝媒體(例如具有正確實作物理寫入保護開關和不可刷新或經加密簽章(或兩者兼備)的韌體的 USB 隨身碟)後重新驗證,如我們的 安裝安全考量 中所述。

提示

在繼續之前,您必須具備:

  • 一個真實的 RSK

  • :ref:`將 Qubes ISO 寫入您想要的媒體 <user/downloading-installing-upgrading/installation-guide:copying the iso onto the installation medium>`(例如 USB 隨身碟或光碟)

首先,拔下您的 USB 隨身碟並撥動寫入保護開關,使隨身碟上的資料無法再被更改。

然後,您有兩個選項:

  • 如果您有與建立安裝媒體不同的電腦,請考慮使用該電腦,最好是從未見過原始 ISO 的離線電腦。

  • 如果沒有,請至少嘗試使用一個全新的 VM(例如如果是 Qubes 系統則使用新的 qube),最好是離線的,且儲存空間小到無法容納原始 ISO。

其概念是原始系統可能已被入侵,而使用不同的系統進行重新驗證迫使您的假想對手必須再入侵另一個系統才能成功。畢竟,如果您的對手知道您正在尋找的答案——也就是與真實 ISO 匹配——並且可以在同一個重新驗證環境中存取該 ISO,那麼幾乎沒有什麼可以阻止他們直接讀取原始 ISO 並將該結果提供給您(可能同時從 USB 隨身碟讀取資料並將其導入 /dev/null,讓您看到 USB 隨身碟上的燈閃爍,以營造正在從 USB 隨身碟讀取資料的假象)。

現在,我們的目標是執行**與原始 ISO 相同的驗證步驟**,但這次我們將直接從已寫入保護的 USB 隨身碟讀取安裝程式資料,而不是從原始 ISO 檔案。

為了做到這一點,我們必須知道原始 ISO 的準確大小(以位元組為單位)。有兩種方法可以取得此資訊:

$ stat -c %s Qubes-RX-x86_64.iso
8176568320

其中 Qubes-RX-x86_64.iso 是您的 Qubes ISO(X 被版本號取代)。請注意,您實際的位元組數將取決於您使用的 Qubes ISO。這只是一個範例。

您現在可以使用 gpg 直接針對 USB 隨身碟上的資料驗證分離式 PGP 簽章。以下命令從您的 USB 隨身碟讀取精確的位元組數,並將它們透過管道傳入 gpg

$ dd if=/dev/sdX bs=1M count=<SIZE> iflag=count_bytes | gpg -v --verify Qubes-RX-x86_64.iso.asc -
7797+1 records in
7797+1 records out
8176568320 bytes (8.2 GB, 7.6 GiB) copied, 277.332 s, 29.5 MB/s
gpg: Signature made <TIME>
gpg:                using RSA key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
gpg: using pgp trust model
gpg: Good signature from "Qubes OS Release X Signing Key" [full]
gpg: binary signature, digest algorithm SHA256, key algorithm rsa4096

其中 /dev/sdX 是您的 USB 隨身碟,<SIZE> 是原始 ISO 的準確大小(以位元組為單位),Qubes-RX-x86_64.iso.asc 是原始 ISO 的分離式 PGP 簽章檔案。

備註

gpg 驗證命令的通常形式是 gpg --verify <簽章> <簽署資料>。我們的命令使用 shell 重新導向,以便將來自 USB 隨身碟的資料用作 <簽署資料>,這就是為什麼命令末尾需要 - 的原因。

您收到的輸出不會完全相同,重要的是您應該收到一個針對 適當的 RSKGood signature 訊息,而該 RSK 應由 真實 QMSK 的副本簽署。

如何驗證 Git 儲存庫標籤和送交上的簽章

提示

在繼續之前,您必須先完成以下先決步驟:

  1. 安裝 OpenPGP 軟體。

  2. 匯入和驗證 Qubes Master Signing Key。

  3. 從 Qubes 安全包 (qubes-secpack) 匯入和驗證金鑰。 請參閱我們的 PGP 金鑰政策 以了解關於這些金鑰的重要資訊。

每當您使用任何 Qubes 儲存庫時,您應該使用 Git 驗證最新送交上的標籤或最新送交本身的 PGP 簽章。(可能兩者都存在,但只需要一個。)如果頂端沒有可信任的已簽署標籤或送交,則最新可信任已簽署標籤或送交之後的任何送交都不應被信任。如果您遇到包含任何未簽署送交的儲存庫,您不應在其之上添加任何自己的已簽署標籤或送交,除非您個人擔保這些未簽署送交的可信度。相反地,請要求推送未簽署送交的人對它們進行簽署。

GitHub 正確執行了簽章檢查、帳戶身份是真實的、管理員未更換使用者的金鑰、GitHub 的伺服器未被入侵等。由於您無法確定所有這些條件都成立,因此最好自己驗證簽章。(另請參閱:distrusting the infrastructure。)

如何驗證 Git 標籤上的簽章

$ git tag -v <tag name>

$ git verify-tag <tag name>

如何驗證 Git 送交上的簽章

$ git log --show-signature <commit ID>

$ git verify-commit <commit ID>

疑難排解常見問題

為什麼我收到「Can't check signature: public key not found」?

您沒有正確的發佈簽署金鑰

為什麼我收到「BAD signature from 'Qubes OS Release X Signing Key'」?

問題可能是以下一項或多項:

  • 您正在嘗試驗證錯誤的檔案。仔細重新閱讀此頁面。

  • 您使用了錯誤的 GPG 命令。仔細遵循提供的範例,或嘗試使用 gpg 代替 ``gpg2``(反之亦然)。

  • ISO 或 分離式 PGP 簽章檔案 有問題(例如下載不完整或損毀)。請嘗試從其他來源重新下載簽章檔案,然後再次嘗試驗證。如果仍然得到相同的結果,請嘗試從其他來源重新下載 ISO,然後再次嘗試驗證。

為什麼我收到「bash: gpg2: command not found」?

您尚未安裝 gpg2。請使用適合您環境的方法(例如透過套件管理器)安裝它,或嘗試使用 gpg 代替。

為什麼我收到「No such file or directory」?

您的工作目錄不包含所需的檔案。返回並更仔細地遵循說明,確保將所有所需檔案放在同一個目錄中導航到該目錄。

為什麼我收到「can't open signed data 'Qubes-RX-x86_64.iso'」/「no signed data」/「can't hash datafile: No data」?

正確的 ISO 不在您的工作目錄中。

為什麼我收到「can't open 'Qubes-RX-x86_64.iso.asc' / verify signatures failed: file open error」?

正確的 分離式 PGP 簽章檔案 不在您的工作目錄中。

為什麼我收到「no valid OpenPGP data found」?

您沒有正確的 分離式 PGP 簽章檔案,或者您將 gpg2 的引數順序顛倒了。(簽章檔案在前。)

為什麼我收到「WARNING: This key is not certified with a trusted signature! There is no indication that the signature belongs to the owner.」?

有幾種可能性:

為什麼我收到「X signature not checked due to a missing key」?

您的金鑰環中沒有建立這些簽章的金鑰。就驗證 Qubes ISO 而言,只要您擁有 Qubes Master Signing Key 和您 Qubes 版本的發佈簽署金鑰,就不需要它們。

為什麼我在金鑰上看到帶有「[User ID not found]」或來自已撤銷金鑰的額外簽章?

這只是 OpenPGP 運作方式的基本部分。任何人都可以簽署他人的公鑰並將簽署後的金鑰上傳到 keyserver。每個人也可以隨時自由撤銷自己的金鑰(假設他們擁有或可以建立撤銷憑證)。這不影響驗證 Qubes ISO、程式碼或金鑰。

為什麼我收到「verify signatures failed: unexpected data」?

您驗證的對象不是正確的 獨立 PGP 簽章檔案

為什麼我收到「not a detached signature」?

您驗證的對象不是正確的 獨立 PGP 簽章檔案

為什麼我收到「CRC error; […] no signature found […]」?

您驗證的對象不是正確的 獨立 PGP 簽章檔案,或者簽章檔案已被修改。請嘗試重新下載或從其他來源下載。

為什麼我收到「WARNING: 1 listed file could not be read」?

正確的 ISO 不在您的工作目錄中。

我遇到此處未提及的其他問題。

仔細重新閱讀此頁面,以確認您沒有跳過任何步驟。特別是,請確保您擁有 Qubes Master Signing Key、適用於您 Qubes 版本的發布簽署金鑰以及分離式 PGP 簽章檔案,全部都是針對*正確的* Qubes OS 版本。如果您的問題是關於 GPG,請參閱 GnuPG 文件。還有問題嗎?請參閱協助、支援、郵件列表與論壇尋找可以提問的地方!