Làm cách nào để tạo Tin nhắn đã ký OpenPGP với GPG?


2

Trong RFC 4880 , có phần 11.3 chỉ định các định dạng khác nhau mà khối Tin nhắn OpenPGP có thể có:

11.3.  OpenPGP Messages

   An OpenPGP message is a packet or sequence of packets that
   corresponds to the following grammatical rules (comma represents
   sequential composition, and vertical bar separates alternatives):

   OpenPGP Message :- Encrypted Message | Signed Message |
                      Compressed Message | Literal Message.

   Compressed Message :- Compressed Data Packet.

   Literal Message :- Literal Data Packet.

   ESK :- Public-Key Encrypted Session Key Packet |
          Symmetric-Key Encrypted Session Key Packet.

   ESK Sequence :- ESK | ESK Sequence, ESK.

   Encrypted Data :- Symmetrically Encrypted Data Packet |
         Symmetrically Encrypted Integrity Protected Data Packet

   Encrypted Message :- Encrypted Data | ESK Sequence, Encrypted Data.

   One-Pass Signed Message :- One-Pass Signature Packet,
               OpenPGP Message, Corresponding Signature Packet.

   Signed Message :- Signature Packet, OpenPGP Message |
               One-Pass Signed Message.

   In addition, decrypting a Symmetrically Encrypted Data packet or a
   Symmetrically Encrypted Integrity Protected Data packet as well as
   decompressing a Compressed Data packet must yield a valid OpenPGP
   Message.

Có cách nào đó, thông qua các đối số dòng lệnh, để tạo Signed MessageGPG bằng cách sử dụng không? Lưu ý rằng một Signed Messagekhông kiểu hiển thị trên XKCD . Đó là một Cleartext Signature, được mô tả trong phần 7 của RFC. Một bộ giáp Signed Messagesẽ có tiêu đề -----BEGIN PGP MESSAGE-----.

Cách gần nhất tôi có thể nhận được là bằng cách sử dụng gpg -s, nó tạo ra gói dữ liệu nén đóng gói Gói chữ ký một lần, Gói dữ liệu bằng chữ, Gói chữ ký. Tuy nhiên, tôi không tin rằng nó nên được nén, vì vậy có vẻ như GPG đang nén khi không nên hoặc GPG xuất ra các tin nhắn được nén.

Câu trả lời:


2

Theo mặc định, GnuPG nén các tin nhắn (ít nhất là văn bản thuần túy). Nếu bạn không muốn nó nén tin nhắn, hãy đặt mức nén thành 0 bằng tùy chọn --compress-level 0. Từ man gpg:

--compress-level n

[...] A value of 0 for n disables compression.

Sử dụng -scùng với mức nén 0 sẽ tạo ra tin nhắn đã ký không nén, thực sự là tin nhắn được ký một lần.

Nén một tin nhắn là hành vi dự kiến. RFC 4880, chương 2.3 nêu rõ:

Nén

Triển khai OpenPGP NÊN nén tin nhắn sau khi áp dụng chữ ký nhưng trước khi mã hóa. [...]

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.