110.3 Bài 2
Chứng chỉ: |
LPIC-1 |
---|---|
Phiên bản: |
5.0 |
Chủ đề: |
110 Bảo mật |
Mục tiêu: |
110.3 Bảo mật Dữ liệu bằng Mã hóa |
Bài: |
2 trên 2 |
Giới thiệu
Ở bài học trước, chúng ta đã học cách sử dụng OpenSSH để mã hóa các phiên đăng nhập từ xa cũng như mọi hoạt động trao đổi thông tin diễn ra tiếp sau đó. Có thể có một số trường hợp mà chúng ta sẽ phải mã hóa tệp hoặc email để chúng đến tay người nhận một cách an toàn và tránh khỏi những con mắt tò mò. Chúng ta cũng có thể cần phải ký chữ ký điện tử vào các tệp hoặc tin nhắn đó để ngăn việc chúng bị giả mạo.
Một công cụ tuyệt vời dành cho những trường hợp sử dụng này là GNU Privacy Guard (hay còn gọi là GnuPG, hoặc đơn giản là GPG). Đây là một triển khai mã nguồn mở và miễn phí của riêng Pretty Good Privacy (PGP). GPG sử dụng tiêu chuẩn OpenPGP như được xác định trong RFC 4880 bởi Nhóm công tác OpenPGP của Lực lượng Kỹ thuật Internet đặc nhiệm (IETF). Trong bài học này, chúng ta sẽ xem xét những kiến thức cơ bản về GNU Privacy Guard.
Thực hiện cấu hình, sử dụng và thu hồi GnuPG cơ bản
Cũng giống như SSH, cơ chế cơ bản của GPG là mật mã bất đối xứng hoặc mật mã khóa công khai. Người dùng sẽ tạo một cặp khóa được tạo thành từ một khóa riêng tư và một khóa công khai. Các khóa này có liên quan về mặt toán học sao cho những gì được mã hóa bởi khoá này chỉ có thể được giải mã bởi khoá kia. Để giao tiếp diễn ra thành công, người dùng phải gửi khóa công khai của họ cho người nhận được xác định.
Cấu hình và cách sử dụng GnuPG
Lệnh để làm việc với GPG là gpg
. Chúng ta có thể truyền cho nó một số tùy chọn để thực hiện các tác vụ khác nhau. Hãy cùng bắt đầu bằng cách tạo một cặp khóa với tư cách là người dùng carol
. Để làm được điều này, chúng ta sẽ sử dụng lệnh gpg --gen-key
:
carol@debian:~$ gpg --gen-key gpg (GnuPG) 2.2.12; Copyright (C) 2018 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. gpg: directory '/home/carol/.gnupg' created gpg: keybox '/home/carol/.gnupg/pubring.kbx' created Note: Use "gpg --full-generate-key" for a full featured key generation dialog. GnuPG needs to construct a user ID to identify your key. Real name: (...)
Sau khi thông báo cho người dùng — bên cạnh một số hoạt động khác — rằng thư mục cấu hình ~/.gnupg
và khóa công khai ~/.gnugpg/pubring.kbx
đã được tạo, gpg
sẽ tiếp tục yêu cầu người dùng cung cấp tên thực và địa chỉ email:
(...) Real name: carol Email address: carol@debian You selected this USER-ID: "carol <carol@debian>" Change (N)ame, (E)mail, or (O)kay/(Q)uit?
Nếu đồng ý với kết quả USER-ID
và nhấn O, chúng ta sẽ được yêu cầu nhập một cụm mật khẩu (khuyến nghị rằng cụm mật khẩu đó phải ở một mức độ phức tạp nhất định):
┌──────────────────────────────────────────────────────┐ │ Please enter the passphrase to │ │ protect your new key │ │ │ │ Passphrase: │ (...)
Một số thông báo cuối cùng sẽ được hiển thị cho người dùng về việc tạo các tệp khác cũng như chính các khóa, sau đó chúng ta sẽ hoàn tất quá trình tạo khóa:
(...) We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: /home/carol/.gnupg/trustdb.gpg: trustdb created gpg: key 19BBEFD16813034E marked as ultimately trusted gpg: directory '/home/carol/.gnupg/openpgp-revocs.d' created gpg: revocation certificate stored as '/home/carol/.gnupg/openpgp-revocs.d/D18FA0021F644CDAF57FD0F919BBEFD16813034E.rev' public and secret key created and signed. pub rsa3072 2020-07-03 [SC] [expires: 2022-07-03] D18FA0021F644CDAF57FD0F919BBEFD16813034E uid carol <carol@debian> sub rsa3072 2020-07-03 [E] [expires: 2022-07-03]
Bây giờ, chúng ta có thể xem bên trong thư mục ~/.gnupg
(thư mục cấu hình của GPG) có gì:
carol@debian:~/.gnupg$ ls -l total 16 drwx------ 2 carol carol 4096 Jul 3 23:34 openpgp-revocs.d drwx------ 2 carol carol 4096 Jul 3 23:34 private-keys-v1.d -rw-r--r-- 1 carol carol 1962 Jul 3 23:34 pubring.kbx -rw------- 1 carol carol 1240 Jul 3 23:34 trustdb.gpg
Hãy cùng giải thích về mục đích của từng tệp:
opengp-revocs.d
-
Chứng chỉ thu hồi đã được tạo cùng với cặp khóa sẽ được lưu giữ ở đây. Các quyền trên thư mục này khá là hạn chế vì bất kỳ ai có quyền truy cập vào chứng chỉ đều có thể thu hồi khóa (thông tin thêm về việc thu hồi khóa sẽ có trong tiểu mục tiếp theo).
private-keys-v1.d
-
Đây là thư mục lưu giữ các khóa riêng tư của người dùng, vì thế mà các quyền trên nó rất hạn chế.
pubring.kbx
-
Đây là khóa công khai của người dùng. Nó lưu trữ khóa công khai của riêng người dùng cũng như bất kỳ một khóa công khai nào khác được nhập.
trustdb.gpg
-
Cơ sở dữ liệu tin cậy. Điều này liên quan đến khái niệm Mạng lưới tin cậy (nằm ngoài phạm vi của bài học này).
Note
|
Sự xuất hiện của GnuPG 2.1 đã mang đến một số thay đổi đáng kể như sự biến mất của các tệp |
Khi cặp khóa đã được tạo, chúng ta có thể xem khóa công khai của mình bằng gpg --list-keys
— lệnh này sẽ hiển thị nội dung khóa công khai của chúng ta:
carol@debian:~/.gnupg$ gpg --list-keys /home/carol/.gnupg/pubring.kbx ------------------------------ pub rsa3072 2020-07-03 [SC] [expires: 2022-07-03] D18FA0021F644CDAF57FD0F919BBEFD16813034E uid [ultimate] carol <carol@debian> sub rsa3072 2020-07-03 [E] [expires: 2022-07-03]
Chuỗi thập lục phân D18FA0021F644CDAF57FD0F919BBEFD16813034E
chính là vân tay khóa công khai của chúng ta.
Note
|
Ngoài |
Phân phối và thu hồi Khóa
Khi đã có khóa công khai, ta nên lưu (hay là xuất) nó vào một tệp để làm cho khoá trở nên khả dụng đối với những người nhận trong tương lai. Sau đó, họ sẽ có thể sử dụng tệp này để mã hóa các tệp hoặc tin nhắn dành cho chúng ta (vì chúng ta là người duy nhất sở hữu khóa riêng tư nên cũng sẽ là người duy nhất có thể giải mã và đọc chúng). Tương tự như vậy, người nhận của chúng ta cũng sẽ sử dụng nó để giải mã và xác minh các tin nhắn/tệp được mã hóa hoặc ký tên của chúng ta. Lệnh được sử dụng là gpg --export
, theo sau là USER-ID
và chuyển hướng đến tên tệp đầu ra được chọn:
carol@debian:~/.gnupg$ gpg --export carol > carol.pub.key carol@debian:~/.gnupg$ ls carol.pub.key openpgp-revocs.d private-keys-v1.d pubring.kbx trustdb.gpg
Note
|
Việc truyền tùy chọn |
Như đã lưu ý ở trên, bây giờ chúng ta sẽ phải gửi tệp khóa công khai của mình (carol.pub.key
) tới người nhận mà ta muốn trao đổi thông tin. Ví dụ: hãy gửi tệp khóa công khai tới ina
trên máy chủ từ xa halof
bằng cách sử dụng scp
(secure copy):
carol@debian:~/.gnupg$ scp carol.pub.key ina@halof:/home/ina/ Enter passphrase for key '/home/carol/.ssh/id_ecdsa': carol.pub.key 100% 1740 775.8KB/s 00:00 carol@debian:~/.gnupg$
ina
hiện đã có được quyền sở hữu carol.pub.key
. Cô ấy sẽ sử dụng nó để mã hóa một tệp và gửi nó tới carol
trong phần tiếp theo.
Note
|
Một cách phân phối khóa công khai khác là thông qua việc sử dụng máy chủ khoá (key servers): chúng ta sẽ tải khóa công khai của mình lên máy chủ bằng lệnh |
Hãy cùng kết thúc phần này bằng cách thảo luận về việc thu hồi khóa. Việc thu hồi khóa nên được sử dụng khi khóa riêng tư của chúng ta bị xâm phạm hoặc hết hạn. Bước đầu tiên là tạo chứng chỉ thu hồi bằng cách truyền cho gpg
tùy chọn --gen-revoke
, theo sau là USER-ID
. Ta có thể đặt trước --gen-revoke
tùy chọn --output
, theo sau là đặc tả tên tệp đích để lưu chứng chỉ kết quả vào một tệp (thay vì in nó trên màn hình cửa sổ dòng lệnh). Các thông báo đầu ra trong suốt quá trình thu hồi sẽ khá dễ hiểu:
sonya@debian:~/.gnupg$ gpg --output revocation_file.asc --gen-revoke sonya sec rsa3072/0989EB7E7F9F2066 2020-07-03 sonya <sonya@debian> Create a revocation certificate for this key? (y/N) y Please select the reason for the revocation: 0 = No reason specified 1 = Key has been compromised 2 = Key is superseded 3 = Key is no longer used Q = Cancel (Probably you want to select 1 here) Your decision? 1 Enter an optional description; end it with an empty line: > My laptop was stolen. > Reason for revocation: Key has been compromised My laptop was stolen. Is this okay? (y/N) y ASCII armored output forced. Revocation certificate created. Please move it to a medium which you can hide away; if Mallory gets access to this certificate he can use it to make your key unusable. It is smart to print this certificate and store it away, just in case your media become unreadable. But have some caution: The print system of your machine might store the data and make it available to others!
Chứng chỉ thu hồi đã được lưu vào tệp revocation_file.asc
(asc
cho định dạng ASCII):
sonya@debian:~/.gnupg$ ls openpgp-revocs.d private-keys-v1.d pubring.kbx revocation_file.asc trustdb.gpg sonya@debian:~/.gnupg$ cat revocation_file.asc -----BEGIN PGP PUBLIC KEY BLOCK----- Comment: This is a revocation certificate iQHDBCABCgAtFiEEiIVjfDnnpieFi0wvnlcN6yLCeHEFAl8ASx4PHQJzdG9sZW4g bGFwdG9wAAoJEJ5XDesiwnhxT9YMAKkjQiMpo9Uyiy9hyvukPPSrLcmtAGLk4pKS pLZfzA5kxa+HPQwBglAEvfNRR6VMxqXUgUGYC/IAyQQM62oNAcY2PCPrxyJNgVF7 8l4mMZKvW++5ikjZwyg6WWV0+w6oroeo9qruJFjcu752p4T+9gsHVa2r+KRqcPQe aZ65sAvsBJlcsUDZqfWUXg2kQp9mNPCdQuqvDaKRgNCHA1zbzNFzXWVd2X5RgFo5 nY+tUP8ZQA9DTQPBLPcggICmfLopMPZYB2bft5geb2mMi2oNpf9CNPdQkdccimNV aRjqdUP9C89PwTafBQkQiONlsR/dWTFcqprG5KOWQPA7xjeMV8wretdEgsyTxqHp v1iRzwjshiJCKBXXvz7wSmQrJ4OfiMDHeS4ipR0AYdO8QCzmOzmcFQKikGSHGMy1 z/YRlttd6NZIKjf1TD0nTrFnRvPdsZOlKYSArbfqNrHRBQkgirOD4JPI1tYKTffq iOeZFx25K+fj2+0AJjvrbe4HDo5m+Q== =umI8 -----END PGP PUBLIC KEY BLOCK-----
Để thu hồi khóa riêng tư một cách hiệu quả, ta cần hợp nhất chứng chỉ với khóa. Việc này có thể được thực hiện bằng cách nhập tệp chứng chỉ thu hồi vào vòng khóa (keyring):
sonya@debian:~/.gnupg$ gpg --import revocation_file.asc gpg: key 9E570DEB22C27871: "sonya <sonya@debian>" revocation certificate imported gpg: Total number processed: 1 gpg: new key revocations: 1 gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: next trustdb check due at 2022-07-04
Nếu liệt kê các khóa ngay bây giờ, chúng ta sẽ được thông báo về khóa đã bị thu hồi của mình:
sonya@debian:~/.gnupg$ gpg --list-keys /home/sonya/.gnupg/pubring.kbx pub rsa3072 2020-07-04 [SC] [revoked: 2020-07-04] 8885637C39E7A627858B4C2F9E570DEB22C27871 uid [ revoked] sonya <sonya@debian>
Cuối cùng — nhưng không kém phần quan trọng — hãy đảm bảo tính khả dụng cho khoá được thu hồi đối với tất cả các bên có khoá công khai liên kết với nó (bao gồm cả máy chủ khóa).
Sử dụng GPG để mã hóa, giải mã, ký và xác minh tệp
Trong phần trước, carol
đã gửi khóa công khai của mình cho ina
. Bây giờ, chúng ta sẽ sử dụng nó để thảo luận về cách GPG có thể mã hóa, giải mã, ký và xác minh tệp.
Mã hóa và giải mã Tệp
Đầu tiên, ina
sẽ phải nhập khóa công khai của carol
(carol.pub.key
) vào vòng khóa của mình để có thể bắt đầu làm việc với nó:
ina@halof:~> gpg --import carol.pub.key gpg: /home/ina/.gnupg/trustdb.gpg: trustdb created gpg: key 19BBEFD16813034E: public key "carol <carol@debian>" imported gpg: Total number processed: 1 gpg: imported: 1 ina@halof:~> gpg --list-keys /home/ina/.gnupg/pubring.kbx ---------------------------- pub rsa3072 2020-07-03 [SC] [expires: 2022-07-03] D18FA0021F644CDAF57FD0F919BBEFD16813034E uid [ unknown] carol <carol@debian> sub rsa3072 2020-07-03 [E] [expires: 2022-07-03]
Tiếp theo, chúng ta sẽ tạo một tệp bằng cách viết một đoạn văn bản vào đó và sau đó mã hóa nó bằng gpg
(vì đã không ký khóa của carol
nên chúng ta sẽ được hỏi xem liệu ta có muốn sử dụng khóa đó hay không):
ina@halof:~> echo "This is the message ..." > unencrypted-message ina@halof:~> gpg --output encrypted-message --recipient carol --armor --encrypt unencrypted-message gpg: 0227347CC92A5CB1: There is no assurance this key belongs to the named user sub rsa3072/0227347CC92A5CB1 2020-07-03 carol <carol@debian> Primary key fingerprint: D18F A002 1F64 4CDA F57F D0F9 19BB EFD1 6813 034E Subkey fingerprint: 9D89 1BF9 39A4 C130 E44B 1135 0227 347C C92A 5CB1 It is NOT certain that the key belongs to the person named in the user ID. If you really know what you are doing, you may answer the next question with yes. Use this key anyway? (y/N) y
Hãy cùng chia nhỏ lệnh gpg
:
--output encrypted-message
-
Đặc tả tên tệp cho phiên bản được mã hóa của tệp gốc (trong ví dụ là
encrypted-message
). --recipient carol
-
Thông số
USER-ID
của người nhận (trong ví dụ làcarol
). Nếu không được cung cấp, GnuPG sẽ tự yêu cầu (trừ khi người nhận mặc định -default-recipient
- được chỉ định). --armor
-
Tùy chọn này tạo ra đầu ra dưới dạng văn bản mã ASCII có thể được sao chép vào email.
--encrypt unencrypted-message
-
Đặc tả tên tệp của tệp gốc cần mã hóa.
Bây giờ, chúng ta có thể gửi thông điệp được mã hóa (encrypted-message
) tới carol
trên debian
bằng cách sử dụng scp
:
ina@halof:~> scp encrypted-message carol@debian:/home/carol/ carol@debian's password: encrypted-message 100% 736 1.8MB/s 00:00
Nếu bây giờ ta đăng nhập bằng carol
và thử đọc thông báo được mã hóa, chúng ta sẽ xác nhận được rằng nó thực sự đã được mã hóa và — do đó — không thể đọc được:
carol@debian:~$ cat encrypted-message -----BEGIN PGP MESSAGE----- hQGMAwInNHzJKlyxAQv/brJ8Ubs/xya35sbv6kdRKm1C7ONLxL3OueWA4mCs0Y/P GBna6ZEUCrMEgl/rCyByj3Yq74kuiTmzxAIRUDdvHfj0TtrOWjVAqIn/fPSfMkjk dTxKo1i55tLJ+sj17dGMZDcNBinBTP4U1atuN71A5w7vH+XpcesRcFQLKiSOmYTt F7SN3/5x5J6io4ISn+b0KbJgiJNNx+Ne/ub4Uzk4NlK7tmBklyC1VRualtxcG7R9 1klBPYSld6fTdDwT1Y4MofpyILAiGMZvUR1RXauEKf7OIzwC5gWU+UQPSgeCdKQu X7QL0ZIBS0Ug2XKrO1k93lmDjf8PWsRIml6n/hNelaOBA3HMP0b6Ozv1gFeEsFvC IxhUYPb+rfuNFTMEB7xIO94AAmWB9N4qknMxdDqNE8WhA728Plw6y8L2ngsplY15 MR4lIFDpljA/CcVh4BXVe9j0TdFWDUkrFMfaIfcPQwKLXEYJp19XYIaaEazkOs5D W4pENN0YOcX0KWyAYX6r0l8BF0rq/HMenQwqAVXMG3s8ATuUOeqjBbR1x1qCvRQP CR/3V73aQwc2j5ioQmhWYpqxiro0yKX2Ar/E6rZyJtJYrq+CUk8O3JoBaudknNFj pwuRwF1amwnSZ/MZ/9kMKQ== =g1jw -----END PGP MESSAGE-----
Tuy nhiên, vì đang sở hữu khóa riêng tư nên chúng ta có thể dễ dàng giải mã tin nhắn bằng cách truyền cho gpg
tùy chọn --decrypt
, theo sau là đường dẫn đến tệp được mã hóa (cụm mật khẩu của khóa riêng tư sẽ được yêu cầu):
carol@debian:~$ gpg --decrypt encrypted-message gpg: encrypted with 3072-bit RSA key, ID 0227347CC92A5CB1, created 2020-07-03 "carol <carol@debian>" This is the message ...
Chúng ta cũng có thể chỉ định tùy chọn --output
để lưu tin nhắn vào một tệp mới không được mã hóa:
carol@debian:~$ gpg --output unencrypted-message --decrypt encrypted-message gpg: encrypted with 3072-bit RSA key, ID 0227347CC92A5CB1, created 2020-07-03 "carol <carol@debian>" carol@debian:~$ cat unencrypted-message This is the message ...
Ký và xác minh Tệp
Ngoài việc mã hóa, GPG còn có thể được sử dụng để ký các tệp. Chúng ta sẽ cần tới tùy chọn --sign
ở đây. Hãy bắt đầu bằng cách tạo một tin nhắn mới (message
) và ký nó bằng tùy chọn --sign
(cụm mật khẩu khóa riêng tư sẽ được yêu cầu):
carol@debian:~$ echo "This is the message to sign ..." > message carol@debian:~$ gpg --output message.sig --sign message (...)
Phân tích lệnh gpg
:
--output message
-
Đặc tả tên tệp của phiên bản tệp gốc được ký (trong ví dụ của chúng ta là
message.sig
). --sign message
-
Đường dẫn đến tệp gốc.
Note
|
Bằng cách sử dụng |
Tiếp theo, chúng ta sẽ chuyển tệp sang cho ina
trên halof
bằng cách sử dụng scp message.sig ina@halof:/home/ina
. Trở lại ina
trên halof
, bây giờ chúng ta đã có thể xác minh nó bằng cách sử dụng tùy chọn --verify
:
ina@halof:~> gpg --verify message.sig gpg: Signature made Sat 04 jul 2020 14:34:41 CEST gpg: using RSA key D18FA0021F644CDAF57FD0F919BBEFD16813034E gpg: Good signature from "carol <carol@debian>" [unknown] (...)
Nếu cũng muốn đọc tệp, ta sẽ phải giải mã nó thành một tệp mới (trong trường hợp của chúng ta là message
) bằng cách sử dụng tùy chọn --output
:
ina@halof:~> gpg --output message --decrypt message.sig gpg: Signature made Sat 04 jul 2020 14:34:41 CEST gpg: using RSA key D18FA0021F644CDAF57FD0F919BBEFD16813034E gpg: Good signature from "carol <carol@debian>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: D18F A002 1F64 4CDA F57F D0F9 19BB EFD1 6813 034E ina@halof:~> cat message This is the message to sign ...
GPG-Agent
Chúng ta sẽ kết thúc bài học này bằng cách đề cập ngắn gọn đến gpg-agent
. gpg-agent
là một trình nền quản lý các khóa riêng tư cho GPG (nó được khởi động theo yêu cầu của gpg
). Để xem tóm tắt các tùy chọn hữu ích nhất, hãy chạy gpg-agent --help
hoặc gpg-agent -h
:
carol@debian:~$ gpg-agent --help gpg-agent (GnuPG) 2.2.4 libgcrypt 1.8.1 Copyright (C) 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Syntax: gpg-agent [options] [command [args]] Secret key management for GnuPG Options: --daemon run in daemon mode (background) --server run in server mode (foreground) --supervised run in supervised mode -v, --verbose verbose -q, --quiet be somewhat more quiet -s, --sh sh-style command output -c, --csh csh-style command output (...)
Note
|
Để biết thêm thông tin, hãy tham khảo trang hướng dẫn |
Bài tập Hướng dẫn
-
Hãy hoàn thành bảng bằng cách cung cấp tên tệp chính xác:
Mô tả Tên tệp Cơ sở dữ liệu tin cậy
Thư mục chứng chỉ thu hồi
Thư mục khóa riêng tư
Vòng khóa công khai
-
Hãy trả lời các câu hỏi sau:
-
GnuPG sử dụng loại mật mã nào?
-
Hai thành phần chính của mật mã khóa công khai là gì?
-
KEY-ID
của dấu vân tay khóa công khai07A6 5898 2D3A F3DD 43E3 DA95 1F3F 3147 FA7F 54C7
là gì? -
Phương pháp nào được sử dụng để phân phối khóa công khai ở cấp độ toàn cục?
-
-
Hãy thực hiện các bước sau theo đúng thứ tự liên quan đến việc thu hồi khóa riêng tư:
-
Cung cấp khóa bị thu hồi cho đối tác của bạn.
-
Tạo chứng chỉ thu hồi.
-
Nhập chứng chỉ thu hồi vào vòng khóa của bạn.
Thứ tự đúng sẽ là:
Bước 1:
Bước 2:
Bước 3:
-
-
Về mã hóa tệp, tùy chọn
--armor
có ngụ ý gì trong lệnhgpg --output Encrypted-message --recipient carol --armor --encrypt unencrypted-message
?
Bài tập Mở rộng
-
Hầu hết các tùy chọn
gpg
đều có cả phiên bản dài và phiên bản ngắn. Hãy hoàn thành bảng sau với phiên bản ngắn tương ứng:Phiên bản dài Phiên bản ngắn --armor
--output
--recipient
--decrypt
--encrypt
--sign
-
Hãy trả lời các câu hỏi sau liên quan đến xuất khoá:
-
Bạn sẽ sử dụng lệnh nào để xuất tất cả các khóa công khai của mình sang một tệp có tên
all.key
? -
Bạn sẽ sử dụng lệnh nào để xuất tất cả khóa riêng tư của mình sang một tệp có tên
all_private.key
?
-
-
Tùy chọn
gpg
nào sẽ cho phép ta thực hiện hầu hết các tác vụ liên quan đến quản lý khóa bằng cách hiển thị một menu? -
Tùy chọn
gpg
nào sẽ cho phép bạn tạo một chữ ký văn bản thuần tuý?
Tóm tắt
Bài học này đã đề cập đến GNU Privacy Guard - một lựa chọn tuyệt vời để mã hóa/giải mã và ký số/xác minh các tệp. Chúng ta đã học về:
-
cách tạo một cặp khóa.
-
cách liệt kê các khoá trong vòng khóa của bạn.
-
nội dung của thư mục
~/.gnupg
. -
USER-ID
vàKEY-ID
là gì. -
cách phân phối khóa công khai cho đối tác.
-
cách phân phối khóa công khai trên phạm vi toàn cục thông qua máy chủ khóa.
-
cách thu hồi khóa riêng tư.
-
cách mã hóa và giải mã tệp.
-
cách ký và xác minh tệp.
-
kiến thức cơ bản về GPG-Agent.
Các lệnh sau đã được thảo luận trong bài học này:
gpg
-
Công cụ mã hóa và ký số OpenPGP.
Đáp án Bài tập Hướng dẫn
-
Hãy hoàn thành bảng bằng cách cung cấp tên tệp chính xác:
Mô tả Tên tệp Cơ sở dữ liệu tin cậy
trustdb.gpg
Thư mục chứng chỉ thu hồi
opengp-revocs.d
Thư mục khóa riêng tư
private-keys-v1.d
Vòng khóa công khai
pubring.kbx
-
Hãy trả lời các câu hỏi sau:
-
GnuPG sử dụng loại mật mã nào?
Mật mã khóa công khai hoặc mật mã bất đối xứng.
-
Hai thành phần chính của mật mã khóa công khai là gì?
Khóa công khai và khóa riêng tư.
-
KEY-ID
của dấu tay khóa công khai07A6 5898 2D3A F3DD 43E3 DA95 1F3F 3147 FA7F 54C7
là gì?FA7F 54C7
-
Phương pháp nào được sử dụng để phân phối khóa công khai ở cấp độ toàn cục?
Máy chủ khoá.
-
-
Hãy thực hiện các bước sau theo đúng thứ tự liên quan đến việc thu hồi khóa riêng tư:
-
Cung cấp khóa bị thu hồi cho đối tác của bạn.
-
Tạo chứng chỉ thu hồi.
-
Nhập chứng chỉ thu hồi vào vòng khóa của bạn.
Thứ tự đúng sẽ là:
Bước 1:
Tạo chứng chỉ thu hồi
Bước 2:
Nhập chứng chỉ thu hồi vào vòng khóa của bạn.
Bước 3:
Cung cấp khóa bị thu hồi cho đối tác của bạn.
-
-
Về mã hóa tệp, tùy chọn
--armor
có ngụ ý gì trong lệnhgpg --output Encrypted-message --recipient carol --armor --encrypt unencrypted-message
?Nó tạo ra đầu ra được kết xuất dưới dạng văn bản mã ASCII cho phép bạn sao chép tệp được mã hóa hiện có vào email.
Đáp án Bài tập Mở rộng
-
Hầu hết các tùy chọn
gpg
đều có cả phiên bản dài và phiên bản ngắn. Hãy hoàn thành bảng sau với phiên bản ngắn tương ứng:Phiên bản dài Phiên bản ngắn --armor
-a
--output
-o
--recipient
-r
--decrypt
-d
--encrypt
-e
--sign
-s
-
Hãy trả lời các câu hỏi sau liên quan đến xuất khoá:
-
Bạn sẽ sử dụng lệnh nào để xuất tất cả các khóa công khai của mình sang một tệp có tên
all.key
?gpg --export --output all.key
hoặcgpg --export -o all.key
-
Bạn sẽ sử dụng lệnh nào để xuất tất cả khóa riêng tư của mình sang một tệp có tên
all_private.key
?gpg --export-secret-keys --output all_private.key
hoặcgpg --export-secret-keys -o all_private.key
(--export-secret-keys
có thể được thay thế bằng--export-secret-subkeys
với một kết quả hơi khác — hãy kiểm traman pgp
để biết thêm thông tin).
-
-
Tùy chọn
gpg
nào sẽ cho phép ta thực hiện hầu hết các tác vụ liên quan đến quản lý khóa bằng cách hiển thị một menu?--edit-key
-
Tùy chọn
gpg
nào sẽ cho phép bạn tạo một chữ ký văn bản thuần tuý?--clearsign