Tải bản đầy đủ (.docx) (72 trang)

Chuong 15 - Bao mat thu dien tu docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (918.25 KB, 72 trang )

2010

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN

CHƯƠNG 15
BẢO MẬT THƯ ĐIỆN TỬ
SVTH:
1. HUỲNH THỊ NGỌC DUNG
07110024
2. HỒ NGUYÊN HÃN
07110038
3. NGUYỄN NHẬT HOÀNG
07110050
4. LÝ VÂN LONG
07110068
5. VĂN CÔNG NGUYÊN
07110082
6. NGUYỄN THỊ THANH THÚY
07110130
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
Chương 15:
BẢO MẬT THƯ ĐIỆN TỬ
15.1 Pretty Good Privacy (PGP):
PGP là một hiện tượng đáng chú ý. Đây là nỗ lực cá nhân rất lớn của Phil
Zimmermann, PGP cung cấp dịch vụ bảo mật và xác thực được sử dụng trong thư điện
tử và các ứng dụng lưu trữ tập tin. Về cơ bản, Zimmermann đã làm được những điều
sau đây:
1. Chọn ra các thuật toán mã hóa thích hợp nhất được xem như những thành
phần cơ bản.
2. Tích hợp các thuật toán này thành một chương trình có nhiều công dụng, nó


không phụ thuộc vào hệ điều hành và bộ xử lý và nó dựa trên một tập nhỏ các
lệnh dễ sử dụng.
3. Cấu tạo các gói và tài liệu của nó, bao gồm cả mã nguồn, có sẵn miễn phí qua
Internet, các bản tin, và mạng lưới thương mại như AOL (America On Line).
4. Tham gia vào một hợp đồng với một công ty (Viacrypt, bây giờ là Network
Associates) cung cấp một phiên bản thương mại tương thích đầy đủ và giá cả
hợp lý của PGP.
PGP đã phát triển mạnh mẽ và hiện đang được dùng rộng rãi. Một số lý do có thể
được trích dẫn cho sự tăng trưởng này:
1. Các phiên bản được ứng dụng miễn phí trên toàn thế giới, nó chạy trên nhiều
nền hệ thống, bao gồm Windows, UNIX, Macintosh, và nhiều hơn nữa. Ngoài
ra, phiên bản thương mại đáp ứng cho những người dùng muốn một sản phẩm
mà đi kèm sự hỗ trợ của nhà cung cấp.
2. Nó dựa trên các thuật toán mà vẫn còn tồn tại rộng rãi, đảm bảo bản quyền và
được xem là cực kỳ an toàn. Cụ thể là, nó bao gồm RSA, DSS, và Diffie-
Hellman cho việc mã hóa với khoá công khai; CAST-128, IDEA, và 3DES
cho việc mã hóa đối xứng, và SHA-1 cho các mã băm.
3. Nó có nhiều ứng dụng rộng rãi, từ các công ty có nhu cầu bắc buộc lựa chọn
một chương trình tiêu chuẩn hóa để mã hóa tập tin và thông điêp, đến các cá
nhân có nhu cầu giao tiếp an toàn với những người khác trên toàn thế giới qua
Internet và các mạng khác.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
2
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
4. PGP không được phát triển cũng không bị kiểm soát bởi bất kỳ tổ chức chính
phủ hoặc tổ chức tiêu chuẩn nào. Do đó, PGP càng thêm hấp dẫn hơn.
5. PGP hiện nay đang thuộc đường lối các tiêu chuẩn Internet (RFC 3156). Tuy
nhiên, PGP vẫn còn tồn tại một tình trạng hơi lạc lối.
Chúng ta bắt đầu với một cái nhìn tổng thể về hoạt động của PGP. Tiếp theo,
chúng ta sẽ nghiên cứu xem các khóa mật mã được tạo ra và lưu trữ như thế nào. Sau

đó, chúng ta giải quyết vấn đề về quản lý khoá công khai (public-key).
Ký hiệu :
Hầu hết các ký hiệu được sử dụng trong chương này đã được sử dụng trước đây,
nhưng có một vài thuật ngữ mới. Tốt nhất chúng ta nên tổng hợp ngay từ lúc này. Các
ký hiệu được sử dụng là:
K
s
= khóa phiên (session-key) được sử dụng trong thuật toán mã hóa khóa đối
xứng
PR
a
= khóa riêng (private-key) của người dùng A, được sử dụng trong thuật toán
mã hoá khoá công khai.
PU
a
= khóa công khai(public-key) của người dùng A, được sử dụng trong thuật
toán mã hoá khoá công khai.
EP = quá trình mã hóa bằng khóa công khai (public-key).
DP = quá trình giải mã bằng khóa công khai (public-key).
EC = mã hóa đối xứng.
DC = giải mã đối xứng.
H = hàm băm.
| | = nối.
Z = Nén bằng cách sử dụng thuật toán ZIP.
R64 = Chuyển đổi sang định dạng ASCII cơ số 64.
Các tài liệu PGP thường sử dụng thuật ngữ secret-key để chỉ việc một khoá kết
hợp với một khóa công khai (public-key) thuộc lược đồ mã hoá bằng khoá công khai.
Như đã đề cập trước đó, sự áp dụng secret-key này dễ gây sử dụng nhầm lẫn đối với
việc mã hóa đối xứng. Vì lý do đó, chúng ta sẽ sử dụng private-key để thay thế.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN

3
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
Mô tả hoạt động :
Ngược lại với việc quản lý các khoá, quá trình hoạt động của PGP bao gồm 5
dịch vụ: Chứng thực, bảo mật, nén, tương thích e-mail, và phân đoạn (Bảng 15.1).
Bảng 15.1. Tóm tắt các dịch vụ PGP
Chức năng Giải thuật Mô tả sử dụng
Chữ ký số DSS/SHA hoặc
RSA/SHA
Một mã băm của thông điệp được tạo ra bằng
cách sử dụng SHA-1. Tóm tắt thông điệp
(message digest) này được mã hóa bằng DSS
hoặc RSA với khóa riêng của người gửi
(private-key) cùng với thông điệp đó.
Mã hóa thông
điệp
CAST hoặc IDEA
hay Three-key Triple
DES với Diffie-
Hellman hoặc RSA
Một thông điệp được mã hóa bằng CAST-128
hoặc IDEA hoặc 3DES với khóa phiên một
lần (one session-key) được tạo ra bởi người
gởi. Các khóa phiên được mã hóa bằng
Diffie-Hellman hoặc RSA với khóa công khai
(public-key) của người nhận được gởi cùng
thông điệp đó.
Nén ZIP
Một thông điệp có thể được nén bằng giải
thuật ZIP để lưu trữ hoặc truyền dẫn.

Tương thích
E-mail
Chuyển đổi cơ số 64 Thông điệp sử dụng thuật toán này để chuyển
đổi thành một chuỗi ASCII cơ số 64 để ứng
dụng mail được minh bạch.
Phân đoạn Để đáp ứng giới hạn kích thước tối đa của
thông điệp, PGP thực hiện phân đoạn và ghép
lại.
Chứng thực :
Hình 15.1a minh hoạ PGP cung cấp dịch vụ chữ ký điện tử. Đây là lược đồ chữ
ký số (digital signature scheme) được thảo luận ở chương 13 và minh hoạ trong hình
11.5c. Trình tự như sau:
1. Người gửi tạo một thông điệp.
2. Dùng SHA-1 để tạo mã băm 160 bit cho thông điệp.
3. Mã băm được mã hoá cùng với khoá riêng của người gửi bằng thuật toán
RSA, sau đó ghép kết quả vào thông điệp.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
4
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
4. Người nhận giải mã và phục hồi mã băm bằng RSA và khoá công khai của
người gửi.
5. Người nhận tạo một mã băm mới cho thông điệp và so sánh nó với mã băm đã
giải mã. Nếu giống nhau thì thông điệp được xác thực.
Hình 15.1 Chức năng mã hoá PGP
`
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
5
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
SHA-1 kết hợp với RSA đã tạo ra một lược đồ chữ ký số hiệu quả. Bởi vì với sức
mạnh của giải thuật RSA, người nhận chắc chắn rằng chỉ có người sở hữa khoá riêng

phù hợp mới có thể tạo ra chữ ký. Với SHA-1, người nhận tin rằng không có ai khác
có thể tạo một thông điệp mới phù hợp với mã băm và chữ ký của thông điệp ban đầu.
Để thay thế, có thể dùng DSS/SHA-1 để tạo chữ ký.
Mặc dù chữ ký thường được tìm thấy kèm theo thông điệp hoặc tập tin, nhưng
không phải luôn luôn như vậy: Chữ ký tách rời được hỗ trợ. Chữ ký tách rời có thể
được lưu trữ và truyền đi tách biệt với thông điệp mà nó đánh dấu. Như vậy sẽ hữu
dụng trong một số trường hợp. Người dùng có thể muốn duy trì một bảng chữ ký riêng
của tất cả các tin nhắn được gửi hoặc nhận được. Một chữ ký tách rời của một chương
trình thực thi có thể phát hiện virus lây nhiễm. Cuối cùng, chữ ký tách rời được sử
dụng khi có nhiều hơn một nhóm phải ký một tài liệu, ví dụ hợp đồng pháp lý. Chữ ký
của mỗi người độc lập, do đó chỉ được áp dụng vào tài liệu. Nếu không, với người thứ
hai khi ký cả tài liệu và chữ ký đầu tiên, chữ ký sẽ phải được lồng nhau, và cứ như thế.
Bảo mật:
Bảo mật là dịch vụ cơ bản khác của PGP, được cung cấp bằng mã hoá những
thông điệp được truyền đi hoặc được lưu trữ thành những tập tin. Trong cả 2 trường
hợp, giải thuật mã hoá đối xứng CAST-128 có thể đuợc dùng. Ngoài ra, IDEA hoặc
3DES cũng được dùng thay thế. Chế độ mật mã phản hồi 64 (CFB) bit được sử dụng.
Như thường lệ, chúng ta phải xem xét vấn đề phân phối khoá. Trong PGP, mỗi
khoá đồng bộ chỉ được sử dụng một lần. Đó là một khoá mới tạo ra bằng một số ngẫu
nhiên 128 bit cho mỗi thông điệp. Như vậy, mặc dù điều này được nhắc đến trong các
tài liệu như là một khóa phiên, nhưng thực tế nó là khoá sử dụng một lần. Bởi vì nó
được sử dụng một lần, các khóa phiên được gắn cùng thông điệp và truyền đi cùng với
nó. Để bảo vệ khóa, nó được mã hóa với khóa công khai của người nhận. Hình 15.1b
minh họa trình tự, và có thể được mô tả như sau:
1. Nguời gởi tạo một thông điệp và một số 128bit ngẫu nhiên để dùng làm khoá
phiên chỉ cho thông điệp này .
2. Thông điệp được mã hoá bằng giải thuật CAST-128 (hoặc IDEA hoặc 3DES)
cùng với khoá phiên.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
6

[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
3. Khoá phiên được mã hoá bằng RSA và khoá công khai của người nhận, và nó
được đính kèm vào thông điệp.
4. Người nhận giải mã và phục hồi khoá phiên bằng RSA và khoá riêng của nó .
5. Thông điệp được giải mã bằng khoá phiên .
Ngoài việc dùng RSA để mã hoá khoá, PGP đưa ra một lựa chọn khác là giải
thuật Diffie-Hellman. Như đã giải thích ở chương 10, Diffie-Hellman là giả thuật trao
đổi khoá. Thực ra, PGP sử dụng một biến thể của Diffie-Hellman là ElGamal để mã
hoá/giải mã.
Vài sự theo dõi đuợc thực hiện. Đầu tiên, để rút ngắn thời gian mã hoá, sự kết
hợp của mã hoá đối xứng và khoá công khai được ưu tiên sử dụng hơn là dùng RSA
hoặc ElGamal để mã hoá thông điệp trực tiếp: về bản chất thì CAST-128 và giải thuật
đối xứng khác nhanh hơn hơn RSA và ElGamal. Thứ hai, sử dụng giải thuật khoá công
khai sẽ giải quyết vấn đề phân phối khoá phiên, bởi vì chỉ nguời nhận mới có thể phục
hồi khoá phiên đính kèm với thông điệp. Chú ý rằng chúng ta không cần giao thức trao
đổi khoá phiên như đã thảo luận ở chương 10, vì chúng ta không bắt đầu một phiên
liên tục. Thay vào đó, mỗi tin nhắn là một sự kiện độc lập một lần với khóa riêng của
nó. Hơn nữa, do tính chất lưu trữ và chuyển tiếp của thư điện tử, việc sử dụng
handshaking để đảm bảo cả hai phía có cùng một khoá phiên là không thực tế. Cuối
cùng, việc sử dụng những khoá đối xứng một lần cũng cố thêm phương pháp mã hoá
đối xứng hiệu quả. Chỉ một số ít văn bản gốc được mã hoá với mỗi khoá, và không có
sự liên hệ giữa các khoá. Như vậy, để giải thuật khoá công khai được an toàn thì toàn
bộ lược đồ phải an toàn. Để kết thúc, PGP cung cấp cho nguời dùng lựa chọn phạm
phi khoá từ 768 đến 3072 bit (khoá DSS cho chữ ký giới hạn còn 1024 bit).
Bảo mật và xác thực :
Như hình 15.1c, cả hai dịch vụ được sử dụng cho cùng một thông điệp. Đầu tiên,
chữ ký được tạo ra cho thông điệp gốc và được đính kèm với thông điệp. Sau đó,
thông điệp gốc cùng với chữ ký được mã hoá bằng CAST-128(hoặc IDEA hoặc
3DES), và khoá phiên được mã hoá bằng RSA (hoặc ElGamal). Trình tự này thích hợp
hơn với điều ngược lại: mã hóa các thông điệp và sau đó tạo ra một chữ ký cho thông

điệp được mã hóa. Việc lưu trữ chữ ký với văn bản gốc của thông điệp sẽ tiện lợi hơn.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
7
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
Hơn nữa, để cho bên thứ ba xác thực, nếu chữ ký được thực hiện trước, bên thứ ba
không cần quan tâm đến khoá công khai khi xác thực chữ ký.
Tóm lại, khi cả hai dịch vụ được sử dụng, nguời gửi ký thông điệp bằng khoá
riêng, sau đó mã hoá thông điệp bằng khoá phiên, và sau đó mã hoá khoá phiên bằng
khoá công khai của người nhận.
Nén :
Mặc định, PGP nén thông điệp sau khi đã cung cấp chữ ký và trước khi mã hoá.
Như vậy sẽ có tiết kiệm cho việc lưu trữ cũng như chuyển tiếp email.
Các vị trí của thuật toán nén, được chỉ định bởi Z cho việc nén và Z-1 để giải nén
trong hình 15.1, là rất quan trọng:
1. Chữ ký được tạo trước khi nén vì 2 lý do :
a. Ưu tiên ký một thông điệp chưa nén để có thể lưu trữ thông điệp chưa
nén này cùng với chữ ký cho tiện việc xác minh sau này. Nếu ký một văn
bản đã được nén, thì phải lưu phiên bản nén để sau này xác minh và phải
giải nén thông điệp khi cần xác minh.
b. Thậm chí khi sẵn sàng giải nén để xác thực, giải thuật nén của PGP tồn
tại một khó khăn là giải thuật không nhất quán. Những thực thi khác
nhau của thuật toán cho ra những cân bằng khác nhau của tốc độ chạy so
với tỉ lệ nén, kết quả là cho những dạng nén khác nhau. Tuy nhiên,
những giải thuật nén khác nhau này tương thích nhau vì bất cứ phiên bản
nào của thuật toán cũng có thể giải nén chính xác đầu ra của phiên bản
khác. Áp dụng hàm băm và chữ ký sau khi nén sẽ hạn chế những thực thi
PGP lên cùng phiên bản của giải thuật nén.
2. Sau khi nén sẽ thực hiện mã hoá thông điệp để tăng cường tính bảo mật. Bởi
vì, thông điệp nén ít bị dư thừa dữ liệu hơn thông điệp gốc, việc giải mã cũng
khó khăn hơn.

Giải thuật nén ở đây là ZIP, được mô tả ở Phụ Lục 15A.
Tương thích email:
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
8
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
Khi sử dụng PGP, phần được gửi đi chắc chắn sẽ được mã hoá. Nếu chỉ sử dụng
dịch vụ chữ ký, thì thông điệp tóm tắt sẽ được mã hoá (cùng với khoá riêng của nguời
gửi). Nếu sử dụng dịch vụ bảo mật, thông điệp và khoá (nếu có) sẽ được mã hoá (bằng
khoá đối xứng một lần). Như vậy, một phần hoặc toàn bộ khối kết quả sẽ bao gồm một
chuỗi 8 bit bất kì. Tuy nhiên, nhiều hệ thống thư điện tử chỉ cho phép sử dụng những
khối bao gồm kí tự ASCII. Để cho phù hợp, PGP cung cấp dịch vụ chuyển đổi chuỗi
nhị phân 8bit thành chuỗi ký tự ASCII.
Giải thuật chuyển đổi cơ số 64 sẽ làm việc này. Mỗi nhóm ba octet dữ liệu nhị
phân được ánh xạ thành bốn ký tự ASCII. Định dạng cũng được gắn một CRC để phát
hiện lỗi trong quá trình truyền. Xem Phụ Lục 15B đễ biết thêm chi tiết.
Thuật toán cơ số 64 sẽ làm thông điệp mở rộng thêm 33%. Nhưng may mắn là
phần khoá phiên và chữ ký của thông điệp tương đối nhỏ gọn, và văn bản gốc của
thông điệp đã được nén. Thực ra, nên nén nhiều hơn để bù đắp cho việc mở rông cơ số
64. Thí dụ, [HELD96] báo cáo khi sử dụng ZIP thì tỉ lệ nén trung bình khoảng 2.0.
Nếu chung ta bỏ qua chữ ký và các thành phần khoá tương đối nhỏ, thì hiệu quả tổng
hợp của việc nén và mở rộng một tập tin có độ dài X là 1.33 x 0.5 x X = 0.665 x X.
Như vậy, việc nén thực hiện khoảng 1/3 file.
Một điểm đáng chú ý của thuật toán cơ số 64 là nó chuyển đổi chuỗi đầu vào bất
kể nội dung là gì thành định dạng cơ số 64, ngay cả khi input đã là văn bản ASCII.
Như vậy, nếu thông điệp đã được ký nhưng chưa được mã hoá và toàn bộ khối thực
hiện chuyển cơ số, một người cung cấp cấp độ bảo mật ngẫu nhiên nào đó sẽ không
thể đọc được output. Do tính chất tùy chọn này, PGP có thể cấu hình chỉ để chuyển đổi
phần chữ ký sang định dạng cơ số 64 của thông điệp gốc đã được ký. Như vậy người
nhận có thể đọc được thông điệp mà không cần dùng PGP. PGP vẫn được dùng để xác
nhận chữ ký.

Hình 15.2 cho biết mối quan hệ giữa các dịch vụ đã đề cập. Khi truyền tin, nếu
cần thì chữ ký sẽ được tạo ra bằng mã băm của văn bản gốc chưa nén. Sau đó, văn bản
gốc cộng với chữ ký (nếu có) sẽ được nén. Tiếp theo, nếu có dịch vụ bảo mật thì văn
bản gốc đã nén (hoặc văn bản gốc và chữ ký đã nén) được mã hoá và đính kèm với
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
9
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
khoá mã hoá đồng bộ public. Cuối cùng, toàn bộ khối này sẽ được convert sang định
dạng cơ số 64.
Hình 15.2. Truyền và nhận thông điệp PGP.
Khi nhận, khối vào sẽ được chuyển từ định dạng cơ số 64 sang mã nhị phân. Tiếp
đó, nếu thông điệp được mã hoá, người nhận phục hồi khoá phiên và giãi mã thông
điệp. Khối kết quả sau đó được giải nén. Nếu thông điệp đã được ký, người nhận phục
hồi mã băm nhận được và so sanh nó với mã băm vừa tính ra.
Phân và ghép (Segmentation and Reassembly)
Dịch vụ Email thường giới hạn độ dài tối đa của thông điệp. Ví dụ, nhiều dịch vụ
trên Internet giới hạn độ dài tối đa là 50000 khối 8bit (octet). Bất cứ thông điệp nào dài
hơn được chia ra thành các khối nhỏ hơn để truyền đi riêng lẻ.
Để làm được như vậy, PGP tự động chia một thông điệp lớn thành những đoạn
nhỏ vừa đủ để truyền qua email. Việc phân đoạn được thực hiện sau khi đã làm xong
các quy trình khác bao gồm chuyển đổi cơ số 64. Như vậy, thành phần khoá phiên và
chữ ký chỉ xuất hiện một lần duy nhất ở đầu mỗi phân đoạn. Khi quá trình nhận kết
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
10
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
thúc, PGP phải cắt phần đầu mỗi email và thực hiện công đoạn ghép để cho ra toàn bộ
khối ban đầu trước khi thực hiện những bước được minh hoạ ở hình 15.2b
Khoá mật mã và vòng khoá (Cryptographic Keys and Key Rings)
PGP sử dụng bốn loại khoá: one-time session symmetric keys, khoá công khai,
khoá riêng, và passphrase-based symmetric keys. Những khoá này có 3 yêu cầu chi tiết

sau:
1. Điều kiện để tạo ra khoá phiên chưa biết rõ là cần thiết.
2. Chúng ta cho phép người dùng có nhiều cặp khoá công khai/riêng. Một lý do
là người dùng có thể muốn đổi cặp khoá của họ theo thời gian. Khi đó, bất cứ
thông điệp nào trong pipeline sẽ được khởi tạo với một khoá đã hết hạn. Hơn
nữa, người nhận sẽ chỉ biết khoá công khai cũ cho đến khi được cập nhật
chúng. Một nhu cầu đễ thay đổi khoá theo thời gian nữa là người dùng muốn
nhiều cặp khoá tại một thời điểm để tương tác với những nhóm người viết thư
khác hoặc chỉ đơn giản là tăng cường tính bảo mật bằng cách giới hạn lượng
tài liệu cần mã hoá với một khoá bất kì .Kết quả là không có sự tương ứng một
một giữa người dùng và khoá công khai của họ. Như vậy, một vài điều kiện để
xác định khoá cụ thể là cần thiết.
3. Mỗi thực thể PGP phải có một tập tin lưu những cặp khoá công khai/riêng của
nó cũng như tập tin lưu khoá công khai của người viết thư.
Chúng ta sẽ lần lượt xem xét các quy định này
Tạo khoá phiên
Mỗi khoá phiên kết hợp với một thông điệp đơn và chỉ được sử dụng cho mục
đích mã hoá và giải mã thông điệp đó. Nhớ là mã hoá/giải mã thông điệp được thực
hiện bằng giải thuật mã hoá đối xứng. CAST-128 và IDEA sử dụng khoá 128bit; 3DES
sử dụng khóa 168bit. Chúng ta sẽ tiếp tục thảo luận CAST-128.
Số 128bit ngẫu nhiên được tạo ra bằng CAST-128 chính nó. Input của bộ tạo số
ngẫu nhiên bao gồm một khoá 128bit và hai khối 64bit được xem như văn bản gốc để
mã hoá. Sử dụng cipher feedback mode, bộ mã hoá CAST-128 đưa ra hai khối mã
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
11
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
64bit, và nhập chúng lại để tao ra khoá phiên 128bit. Giải thuật được sử dụng dựa trên
giải thuật đã được mô tả trong ANSI X12.17.
Plaintext được đưa vào bộ tạo số ngẫu nhiên, bao gồm 2 khối 64bit được lấy từ
một luồng số ngẫu nhiên 128bit. Những số này dựa trên ký tự nhập từ bàn phím của

người dùng. Cả thời điểm gõ và ký tự được gõ đều được dùng để tạo luồng ngẫu
nhiên. Như vậy, nếu người dùng gõ phím ngẫu nhiên với tốc độ bình thường, sẽ tạo ra
một input ngẫu nhiên chấp nhận được. Input ngẫu nhiên này kết hợp với khoá phiên
trước tạo ra từ CAST-128 để hình thành input cho bộ tạo khoá. Kết quả là sẽ tạo ra một
chuỗi khoá phiên không thể nào đoán trước được.
Phụ lục 15C thảo luận chi tiết bộ tạo khoá ngẫu nhiên
Định danh khoá (Key Identifiers)
Như đã đề cập, kèm theo thông điệp mã hoá là dạng mã hoá của khoá phiên được
dùng để mã hoá thông điệp. Khoá phiên được mã hoá cùng với khoá công khai của
người nhận. Do đó, chỉ có người nhận mới có thể phục hồi khoá phiên. Và bởi vậy
người nhận cũng có thể phục hồi toàn bộ thông điệp. Nếu mỗi người dùng dùng một
cặp khoá công khai/bí mật, thì người nhận sẽ tự động biết khoá nào dùng để mã hoá
khoá phiên: khoá bí mật duy nhất của người nhận. Tuy nhiên, chúng ta đã đề cập rằng
bất cứ người dùng nào cũng có thể có nhiều cặp khoá công khai/bí mật.
Như vậy, làm sao để người nhận biết khoá công khai nào được dùng để mã hoá
khoá phiên? Giải pháp đơn giản là truyền khoá công khai cùng với thông điệp. Người
nhận sau đó có thể xác định cái nào thực sự là khoá công khai đang cần. Nhưng như
vậy là lãng phí dung lượng không cần thiết. Một khoá công khai RSA có thể dài đến
hàng trăm số. Giải pháp khác là kết hợp một việc định danh cho mỗi khoá công khai
mà mỗi định danh này duy nhất tối thiểu trong một người dùng. Đó là ID người dùng
và ID khoá kết hợp lại sẽ đủ khả năng để định danh một khoá. Sau đó, ID khoá có độ
dài rất ngắn sẽ cần truyền đi. Tuy nhiên, với giải pháp này cần xử lý vấn đề: những ID
khoá phải được xác định và lưu trữ để cả người gửi và người nhận có thể ánh xạ từ ID
khoá thành khoá công khai. Điều này có vẻ phiền phức không cần thiết.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
12
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
PGP chọn giải pháp là gán một ID khóa vào mỗi khoá công khai mà xác suất nó
duy nhất trong một ID người dùng là rất cao. ID khóa đi kèm với khoá công khai bao
gồm ít nhất 64 bit. Như vậy, ID của một PU

a
công khai là (PU
a
mod 264). Với độ dài
này thì xác suất trùng ID là rất nhỏ.
ID khóa cũng yêu cầu chữ ký số PGP. Vì người gởi có thể chỉ dùng một trong số
những khóa bí mật để mã hóa bảng tóm tắt thông điệp, nên người nhận phải xác định
được khóa công khai nào được sử dụng để giải mã. Do đó, thành phần chữ kí số của
một thông điệp bao gồm ID khóa 64-bit mà khóa công khai yêu cầu. Khi nhận thông
điệp, người nhận sẽ xác nhận ID khóa của khóa công khai mà người gởi cung cấp và
sau đó là xác nhận chữ kí.
Dưới đây là khái niệm của ID khóa, Hình 15.3 sẽ trình bày rõ thêm thông qua
bảng định dạng của một thông điệp khi được truyền. Một thông điệp gồm 3 thành
phần: nội dung thông điệp, chữ kí (tùy chọn), và thành phần khóa phiên (tùy chọn).
Hình 15.3: Định dạng tổng quát của thông điệp sử dụng PGP. (Từ A đến B)
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
13
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]

BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
14
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
Thành phần thông điệp bao gồm dữ kiện thực được lưu trữ hoặc truyền, cũng
như một tên tập tin và một “timestamp” dùng để xác định thời gian tạo ra.
Thành phần chữ kí bao gồm:
• Timestamp: Thời gian tạo ra chữ kí.
• Message disgest: Bảng tóm tắt SHA-1 160-bit được mã hóa cùng với
khóa chữ ký bí mật của người gởi. Bảng tóm tắt này được tính toán
thông qua timestamp của chữ kí được được nối với phần dữ liệu của
thành phần thông điệp. Timestamp của chữ kí trong bảng tóm tắt đảm

bảo sẽ không bị ảnh hưởng bởi các loại tấn công. Việc loại bỏ filename
và timestamp của thành phần thông điệp đảm bảo rằng chữ kí tách rời
hoàn toàn giống như chữ kí dính liền được đặt ở đầu mỗi thông điệp.
Chữ kí tách rời được tính toán dựa vào một thành phần riêng lẽ của tập
tin mà không có các trường header của thành phần thông điệp.
• Leading two octets of message digest: Để giúp người nhận xác định
khóa công khai chính xác nào được dùng để giải mã bảng tóm tắt thông
điệp (Message disgest), bằng cách so sánh bảng sao chép nguồn của hai
octects đầu tiên với hai octects đầu tiên của bảng được giải mã. Những
octects này được dùng như trình tự kiểm tra 16-bit của thông điệp.
• Key ID of sender's public key: ID của khóa công khai phải được dùng
để mã hóa bảng tóm tắt thông điệp, do đó ID của khóa bí mật thì được
dùng để mã hóa bảng tóm tắt thông điệp.
Thành phần thông điệp và thành phần chữ kí tùy chọn được nén lại dùng ZIP và
có thể được mã hóa dùng khóa phiên.
Một thành phần khóa phiên bao gồm khóa phiên và ID của khóa công khai của
người nhận mà người gởi dùng để mã hóa khóa phiên.
Toàn bộ khối này thường được mã hóa dùng cơ số 64.
Nhóm khóa (Key Rings)
Chúng ta đã được biết những ID khóa đóng vai trò quan trọng trong quá trình
hoạt động của PGP và hai ID khóa trong bất kì thông điệp PGP nào cũng cung cấp
dịch vụ bảo mật và xác thực. Những khóa này cần được lưu trữ và tổ chức một cách hệ
thống để chúng hữu dụng với các phần còn lại. Lược đồ dùng trong PGP nhằm để
cung cấp một cặp cấu trúc dữ liệu tại mỗi node, một dùng để lưu trữ khóa công khai
hoặc bí mật, và một dùng để lưu trữ khóa công khai của các người dùng khác. Những
cấu trúc dữ liệu này được chuyển riêng đến từng nhóm khóa bí mật và nhóm khóa
công khai.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
15
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]

Hình 15.4 trình bày một cấu trúc tổng quát của nhóm khóa bí mật. Chúng ta có
thể xem mỗi nhóm như một bảng, mỗi dòng miêu tả một cặp khóa công khai/bí mật
của một người dùng. Mỗi dòng chứa những mục sau:
• Timestamp: Thời gian cặp khóa tạo ra.
• Key ID: 64 bit ít quan trọng nhất của khóa công khai thuộc mục này.
• Public key: Phần khóa công khai của cặp này.
• Private key: Phần khóa bí mật của cặp này; trường này được mã hóa.
• User ID: Nói một cách điển hình, trường này sẽ là địa chỉ e-mail của
người dùng ( ). Tuy nhiên, người dùng có thể chọn lựa
kết hợp với một tên khác trong mỗi cặp (abc, comet…) hoặc dùng lại User
ID một lần nữa.
Hình 15.4. Cấu trúc tổng quát của nhóm khóa công khai/bí mật
Nhóm khóa bí mật có thể dùng ID người dùng hoặc ID khóa làm chỉ mục; sau
đây chúng ta sẽ tìm hiểu sự cần thiết của cả 2 cách chỉ mục này.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
16
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
Mặc dù nhóm khóa bí mật chỉ nhằm lưu trữ trên máy của người tạo ra và làm chủ
cặp khóa này, và chỉ có người này truy cập được, nhưng giá trị của khóa bí mật vẫn có
thể được bảo mật. Do đó, khóa bí mật không thể tự lưu trữ vào nhóm khóa. Nói đúng
hơn, khóa này sẽ được mã hóa dùng CAST-128 (hoặc IDEA hoặc 3DES). Thủ tục như
sau:
1. Người dùng chọn mật khẩu để mã hóa khóa bí mật.
2. Khi hệ thống tạo ra cặp khóa công khai/ bí mật sử dụng RSA, người dùng
sẽ được hỏi để cung cấp mật khẩu. Khi sử dụng SHA-1, một mã băm 160-
bit sẽ được tạo từ mật khẩu, và mật khẩu sẽ được hủy bỏ.
3. Hệ thống mã hóa khóa bí mật sử dụng CAST-128 với 128 bit của mã băm
được coi là 1 khóa. Sau đó mã băm được hủy bỏ, và khóa bí mật được sau
khi được mã hóa sẽ lưu trữ trong nhóm khóa bí mật.
Sau đó, khi người dùng truy cập vào nhóm khóa bí mật để nhận khóa bí mật,

người đó phải cung cấp mật khẩu. PGP sẽ mã hóa khóa bí mật, tạo ra mảng băm cho
mật khẩu, và giải mã khóa bí mật bị mã hóa dùng CAST-128 và mã băm.
Đây là một quá trình chắc chắn và hiệu quả. Bởi vì bất kì hệ thống nào cũng hoạt
động dựa vào password, nên sự bảo mật của hệ thống dựa vào sự bảo mật của
password. Để tránh lộ mật khẩu, người dùng cần sử dụng một mật khẩu không dễ đoán
và đồng thời phải dễ nhớ.
Hình 15.4 đồng thời cũng trình bày cách tạo cấu trúc một khóa công khai. Cấu
trúc dữ liệu này dùng để lưu trữ khóa công khai của những người sử dụng được biết
đến người dùng này. Bây giờ, chúng ta sẽ lượt bỏ một vài trường trong bảng trên và
phân tích một số trường sau đây:
• Timestamp: Thời gian mục này được tạo ra.
• Key ID: 64 bit ít quan trọng nhất của khóa công khai thuộc mục này.
• Public key: Khóa công khai của mục này.
• User ID: Nhận diện chủ của khóa. Có thể có nhiều ID người dùng cho
một khóa công khai.
ID người dùng và ID khóa có thể được dùng để làm chỉ mục cho nhóm khóa
công khai. Chúng ta sẽ xem xét sự cần thiết của mỗi loại chỉ mục ngay sau đây.
Chúng ta đang tìm hiểu những nhóm khóa này được sử dụng trong việc truyền và
nhận thông điệp như thế nào. Để đơn giản hơn, chúng ta sẽ bỏ qua phần nén và chuyển
đổi dùng radix-64. Trước tiên hãy xem xét sự truyền thông điệp (Hình 15.5) và giả sử
rằng thông điệp đều đã được đánh dấu và mã hóa. Quá trình gởi một thực thể PGP
được trình bày trong các bước sau:
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
17
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
1. Đánh dấu thông điệp:
a. PGP nhận khóa bí mật của người gởi từ nhóm khóa bí mật dùng
your_userid làm chỉ mục. Nếu điều khiển không cung cấp
your_userid, khóa bí mật đầu tiên trong nhóm sẽ được nhận.
b. PGP yêu cầu người dùng mật khẩu để phục hồi khóa bí mật chưa

được mã hóa.
c. Thành phần chữ kí của thông điệp được khởi tạo.
2. Mã hóa thông điệp
a. PGP tạo khóa phiên và mã hóa thông điệp.
b. PGP nhận khóa công khai của người nhận từ nhóm khóa công khai
và dùng her_userid làm chỉ mục.
c. Thành phần khóa phiên của thông điệp được khởi tạo.
Hình 15.5. Quá trình tạo thông điệp PGP (Từ A đến B; không nén hoặc chuyển
đổi radix 64)
Quá trình nhận thực thể PGP được trình bày ở các bước sau (Hình15.6):
1. Giải mã thông điệp
a. PGP nhận khóa bí mật của người nhận từ nhóm khóa bí mật, dùng
ID khóa trong thành phần khóa phiên của thông điệp làm chỉ mục.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
18
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
b. PGP yêu cầu người dùng mật khẩu để phục hồi khóa bí mật chưa
được mã hóa.
c. PGP phục hồi khóa phiên và giải mã thông điệp.
2. Xác thực thông điệp
a. PGP nhận khóa công khai của người gởi từ nhóm khóa công khai,
dùng ID khóa trong thành phần khóa chữ kí của thông điệp làm chỉ
mục.
b. PGP phục hồi lại bảng tóm tắt thông điệp được truyền.
c. PGP tính toán bảng tóm tắt thông điệp cho thông điệp nhận được và
xác thực bằng cách so sánh nó với bảng tóm tắt thông điệp nhận
được.
Hình 15.6. Quá trình nhận thông điệp PGP (Từ A đến B; không nén và chuyển
đổi radix 64)
Quản lý khóa công khai

Như đã thảo luận ở các phần trước, PGP vừa có tính linh động, hiệu quả, có các
chức năng đồng bộ và có những định dạng để cung cấp một dịch vụ bảo mật và xác
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
19
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
thực hiệu quả. Để hoàn thành một hệ thống, lĩnh vực cuối cùng cần chú ý đến là bộ
phận quản lý khóa công khai. Tài liệu về PGP nhìn nhận tầm quan trọng về lĩnh vực
này như sau:
“Toàn bộ công việc bảo vệ những khóa công khai khỏi sự giả mạo là một
công việc khó khăn nhất trong các ứng dụng về khóa công khai trên thực tế. Đây
là một “điểm yếu” trong việc mã hóa khóa công khai, và rất nhiều những vấn đề
phức tạp về phần mềm là cũng một khó khăn trong việc giải quyết rắc rối này.”
PGP xây dựng một công trình để giải quyết vấn đề này, một vài sự chọn lựa đề ra
có thể được sử dụng. Vì PGP ứng dụng cho nhiều môi trường sử dụng, nên không có
một lược đồ quản lý khóa công khai nào được cài đặt, chúng ta sẽ thảo luận một ví dụ
về S/MIME trong phần sau của chương này.
Cách giải quyết vấn đề quản lý khóa công khai
Bản chất của vấn đề này là: Người dùng A phải xây dựng nên nhóm khóa công
khai gồm các khóa công khai của các người dùng có liên quan khi sử dụng PGP. Giả
sử rằng nhóm khóa của A chứa một khóa công khai được cho là của B, nhưng thực ra
người dùng C mới là chủ. Điều này có thể xảy ra nếu A lấy một khóa từ hệ thống bảng
báo cáo (BBS) mà do B đưa lên nhưng lại do C thỏa hiệp. Kết quả là có hai sự đe dọa
tồn tại. Trước tiên, C có thể gởi thông điệp cho A và giả mạo chữ kí của B, do đó A sẽ
bị nhầm thông điệp đó là của B. Thứ hai, bất kì thông điệp nào được mã hóa từ A và B
thì C cũng có thể đọc được.
Một trong số các cách giải quyết có thể giảm tối thiểu sự mạo hiểm này là nhóm
khóa công khai của người dùng chứa những khóa công khai không chính xác. Giả sử A
muốn dành được một khóa công khai đáng tin cậy cho B. Các cách giải quyết có thể
được áp dụng như sau:
1. Nhận khóa từ B một cách tự nhiên. B có thể lưu trữ khóa công khai (PU

b
)
trên đĩa mềm và giao cho A. Sau đó, A có thể nạp khóa vào hệ thống từ đĩa
mềm. Đây là phương pháp rất bảo mật nhưng vẫn còn một vài giới hạn
trên thực tế.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
20
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
2. Xác minh khóa bằng điện thoại. Nếu A có thể nhận ra B qua điện thoại, A
có thể gọi B và yêu cầu B đọc khóa cho A ở định dạng radix-64. Có một
phương pháp thực tiễn hơn, B có thể gởi khóa qua e-mail cho A. A có thể
yêu cầu PGP tạo ra một bảng tóm tắt dạng 160-bit SHA-1 của khóa và
trình bày dưới dạng Hexa, việc này có thể được coi như là việc lấy dấu
vân tay của khóa. Sau đó, A có thể gọi B để yêu cầu đọc dấu vân tay thông
qua điện thoại. Nếu 2 dấu vân tay trùng nhau thì khóa đã được xác thực.
3. Lấy được khóa công khai của B từ một cá nhân có thể tin tưởng D. Vì
mục đích này nên khi bắt đầu, D phải tạo một chứng chỉ có dấu. Chứng
chỉ gồm có khóa công khai của B, thời gian tạo khóa, và thời gian hợp lệ
của khóa. D tạo ra bảng tóm tắt dạng SHA-1 cho chứng chỉ đó, mã hóa
cùng với khóa bí mật của người này, và gắn chữ kí vào chứng chỉ. Bởi vì
chỉ có mình D có thể tạo chữ kí, nên không ai có thể tạo một khóa công
khai sai và giả mạo rằng đã được D chứng nhận. Giấy chứng chỉ được
đóng dấu có thể được D gởi trực tiếp đến A hoặc B, hoặc có thể được dán
lên bảng thông báo.
4. Lấy được khóa công khai của B từ một chuyên gia đáng tin cậy. Một lần
nữa, một chứng chỉ về khóa công khai được chuyên gia này đóng dấu. A
có thể đến gặp chuyên gia này, cung cấp tên tài khoản và nhận một giấy
chứng chỉ đã được đóng dấu.
Trong trường hợp 3 và 4, A đáng lẽ phải sao chép khóa công khai của người giới
thiệu và phải tin rằng nó hợp lệ. Cuối cùng, A sẽ quyết định việc phân mức độ tin cậy

cho người nào sẽ là người giới thiệu.
Quyền ủy thác
Mặc dù PGP không bao gồm bất kì đặc điểm kĩ thuật nào để củng cố sự xác thực
chứng chỉ hoặc sự ủy thác, nó chỉ cung cấp một phương tiện hỗ trợ về việc sử dụng sự
ủy thác, kết hợp sự ủy thác với khóa công khai, và khai thác thông tin ủy thác.
Sau đây là cấu trúc cơ bản. Như đã nói ở các phần trước, mỗi mục trong nhóm
khóa công khai là một chứng chỉ của khóa công khai. Liên kết với mỗi mục là một
trường khóa hợp pháp (key legitimacy field) cho biết mức độ mà PGP sẽ ủy thác đây
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
21
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
là khóa công khai của người dùng; ở cấp độ cao hơn của sự ủy thác, mạnh hơn là sự
ràng buộc ID người dùng với khóa. Trường này được tính toán bởi PGP. Hơn nữa, liên
kết với các mục là số không hoặc nhiều chữ kí hơn mà chủ nhóm khóa sưu tập được để
kí chứng chỉ này. Lần lượt, mỗi chữ kí liên kết với một trường chữ kí ủy thác
(signature trust field) cho biết mức độ mà người sử dụng PGP tin cậy người kí để
chứng nhận những khóa công khai. Trường khóa hợp lý được dẫn xuất từ bộ sưu tập
các trường chữ kí ủy thác trong một mục. Cuối cùng, mỗi mục sẽ định nghĩa một khóa
công khai kết hợp với một người sở hữu riêng biệt, và một trường người sở hữu ủy
thác (owner trust field) được bao gồm cho biết mức độ mà khóa công khai này được
ủy thác để kí chứng nhận khóa công khai khác; mức độ ủy thác này do người dùng quy
định. Ta có thể xem trường chữ kí tin cậy như những bảng sao chép được lưu trữ của
trường người sở hữu ủy thác từ một mục khác.
Trong ba trường được nhắc ở trên mỗi trường đều chứa một cấu trúc được nhắc
đến như là một byte cờ ủy thác. Nội dung của cờ ủy thác ứng với mỗi trường hợp sử
dụng được trình bày ở Bảng 15.2. Giả sử rằng chúng ta đang giải quyết nhóm khóa
công khai của người dùng A. Chúng ta có thể mô tả quá trình hoạt động của việc xử lý
ủy thác như sau:
1. Khi A thêm một khóa công khai mới vào nhóm khóa công khai, PGP phải
gán một giá trị cho cờ ủy thác mà liên kết với chủ sở hữu khóa công khai.

Nếu người chủ là A, và vì vậy khóa công khai này cũng xuất hiện trong
nhóm khóa bí mật, sau đó một giá trị ủy thác cuối cùng cũng tự động được
gán cho trường ủy thác. Nếu không, PGP sẽ yêu cầu A cho biết mức độ
đánh giá về sự ủy thác của khóa này do chủ sở hữu đã quy định, và A phải
nhập vào mức độ mong muốn. Người dùng có thể chỉ rõ người chủ này
không rõ, không được ủy thác, được ủy thác một ít, hoặc hoàn toàn được
ủy thác.
2. Khi một khóa công khai được nhập vào, một hay nhiều chữ kí có thể được
gán vào nó. Nhiều chữ kí hơn có thể được thêm vào sau đó. Khi một chữ
kí được thêm vào một mục, PGP sẽ xem xét nhóm khóa công khai để xem
tác giả của chữ kí này có nằm trong số những người chủ của những khóa
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
22
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
công khai đã được biết không. Nếu có, giá trị OWNERTRUST cho người
chủ này sẽ được gán vào trường SIGTRUST cho chữ kí này. Nếu không
thì sẽ gán giá trị user unknown.
3. Giá trị của trường khóa hợp pháp được tính toán trên cơ sở trường chữ kí
ủy thác trình bày ở mục này. Nếu có ít nhất một chữ kí có giá trị chữ kí ủy
thác là cuối cùng, thì sau đó giá trị khóa hợp pháp sẽ được gán là hoàn
thành. Cách khác, PGP tính toán tổng trọng lượng các giá trị ủy thác.
Những chữ kí có trọng lượng 1/X luôn được ủy thác, và chữ kí có trọng
lượng 1/Y thì thường được ủy thác ở nơi mà X và Y là người dùng –
những tham số có thể định hình. Khi tổng trọng lượng của tổ hợp các
người giới thiệu của khóa/ID người dùng gần tới 1, thì sự liên kết được coi
là được ủy thác, và giá trị khóa hợp pháp được gán là hoàn thành. Do đó,
trong bảng liệt kê sự ủy thác cuối cùng, ít nhất thì những chữ kí X mà luôn
được ủy thác hoặc những chữ kí Y mà thường được ủy thác hoặc một vài
tổ hợp khác đều cần thiết.
Bảng 15.2. Nội dung của byte cờ tin cậy

(a) Sự ủy thác chỉ định
chủ sở hữu Khóa công
khai.
(xuất hiện sau gói khóa;
người dùng tự định
nghĩa)
(b) Sự ủy thác chỉ định
cặp Khóa công khai/ID
người dùng.
(xuất hiện sau gói ID
người dùng; được PGP
tính toán)
(c) Sự ủy thác chỉ định
chữ kí.
(xuất hiện sau gói chữ
kí; dự trữ bảng sao chép
được của
OWNERTRUST cho
người kí kết này)
Trường OWNERTRUST
sự ủy thác không
được xác định
không biết người
dùng
thường không được
ủy thác để kí các
khóa khác
thường được ủy thác
để kí các khóa khác
Trường KEYLEGIT

sự ủy thác không biết
hoặc không được xác
định
quyền sở hữu khóa
không ủy thác
ủy thác một ít trong
quyền sở hữu khóa
ủy thác hoàn toàn
trong quyền sở hữu
Trường SIGTRUST
sự ủy thác được xác
định
người dùng vô danh
thường không được
ủy thác để kí các
khóa khác
thường được ủy thác
để kí các khóa khác
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
23
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
luôn được ủy thác
để kí các khóa khác
khóa này được trình
bày trong nhóm
khóa bí mật cuối
cùng (sự ủy thác
cuối cùng)
bit BUCKSTOP
đặt lại nếu khóa này

đã xuất hiện trong
nhóm khóa bí mật
khóa
bit WAWNONLY
đặt lại nếu người
dùng chỉ được cảnh
báo khi một khóa
hoàn toàn không hợp
lệ được dùng để mã
hóa
luôn được ủy thác
để kí các khóa khác
khóa này được trình
bày trong nhóm
khóa bí mật (sự ủy
thác cuối cùng)
bit CONTIG
đặt lại nếu chữ kí
hướng đến đường
dẫn kề của chứng
chỉ được ủy thác trở
lại chủ sở hữu nhóm
khóa được ủy thác
cuối cùng
Như định kì, PGP xử lý nhóm khóa công khai để nhận được tính nhất quán.
Nhưng bản chất, đây là một quá trình xử lý ở đầu và cuối. Ở mỗi trường
OWNERTRUST, PGP quét cả nhóm để lấy tất cả những chữ kí được viết bởi chủ sở
hữu đó và cập nhật trường SIGTRUST để đáp ứng trường OWNERTRUST. Xử lý này
bắt đầu với những khóa mà có sự ủy thác cuối cùng. Sau đó tất cả trường KEYLEGIT
được tính toán dựa trên cơ sở của những chữ kí kèm theo.

Hình 15.7 cung cấp một ví dụ về cách mà sự ủy thác chữ kí và tính hợp pháp liên
quan với nhau. Trong hình là cấu trúc một nhóm khóa công khai. Người dùng yêu cầu
một số từ khóa công khai, một số lấy trực tiếp từ chủ sở hữu của chúng và một số từ
người thứ ba, ví dụ một máy chủ khóa.
Hình 15.7. Ví dụ về mô hình ủy thác PGP
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
24
[CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ]
Khóa có nhãn “You” được xem như mục của nhóm khóa công khai tương ứng
với người dùng này. Khóa này hợp pháp và giá trị OWNERTRUST là sự ủy thác cuối
cùng. Mỗi node khác trong nhóm khóa có một giá trị OWNERTRUST không khác
định trừ khi người dùng gán giá trị khác. Trong ví dụ này, người dùng đã chỉ rõ rằng
luôn luôn ủy thác những người dùng theo sau để kí những khóa khác: D, E, F, L.
Người dùng này ủy thác người dùng A và B một cách không hoàn toàn để kí những
khóa khác.
Những node trong Hình 15.7 biểu thị mức độ sự ủy thác được chỉ định bởi người
dùng. Cấu trúc cây chỉ rằng mỗi khóa được kí bởi mỗi người dùng khác. Nếu một khóa
được kí bởi một người dùng mà khóa của họ cũng nằm trong nhóm khóa này, mũi tên
sẽ chỉ từ khóa được kí đến bên kí kết. Nếu một khóa được kí bởi một người dùng mà
khóa của họ không nằm trong nhóm khóa này, mũi tên sẽ chỉ từ khóa đến dấu hỏi,
nhằm nói rằng người dùng không xác định được bên kí kết.
BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN
25

×