ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 1
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Lời Mở ðầu
ðây là ñề tài kết thúc môn ACNS (Athena Certified Network Security), nhằm củng
cố kiến thức và tạo ñiều kiện nghiên cứu sâu hơn về môn học này. Hơn nữa qua ñó còn
giúp học viên rèn luyện kỹ năng trình bài và viết báo cáo, thể hiện ñược khả năng của mình
.
ðề tài này ñược hoàn thành là nhờ có sự hướng dẫn tận tình, chu ñáo của thầy Võ
ðỗ Thắng. Chúng em xin chân thành cám ơn thầy ñã chỉ bảo giúp chúng em hoàn thành
tốt ñề tài nghiên cứu này .
Trong quá trình thực hiện ñề tài không tránh khỏi sai xót ( thiếu kinh nghiệm thực
tế, chưa ñưa ra giải pháp hợp lý ), mong thầy và các bạn hổ trợ thêm, ñể ñề tài mang tính
thực tiễn và hoàn thiện hơn .
TLTK:
Giáo trình – Athena .
Tài liệu sưu tầm từ internet .
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 2
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
LỜI NHẬN XÉT
₪ ‡ ₪
………………………………………………………………………………………………… …
……………………………………………………………………………………………… ……
…………………………………………………………………………………………… ………
………………………………………………………………………………………… …………
……………………………………………………………………………………… ……………
…………………………………………………………………………………… ………………
………………………………………………………………………………… …………………
……………………………………………………………………………… ……………………
…………………………………………………………………………… ………………………
………………………………………………………………………… …………………………
……………………………………………………………………… ……………………………
………………………………………………………………………………………………… …
……………………………………………………………………………………………… ……
…………………………………………………………………………………………… ………
………………………………………………………………………………………… …………
……………………………………………………………………………………… ……………
………………………………………………………………………………………………… …
……………………………………………………………………………………………… ……
…………………………………………………………………………………………… ………
………………………………………………………………………………………… …………
……………………………………………………………………………………… ……………
………………………………………………………………………………………………… …
……………………………………………………………………………………………… ……
…………………………………………………………………………………………… ………
………………………………………………………………………………………… …………
……………………………………………………………………………………… ……………
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 3
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Mục lục
₪ ‡ ₪
§. Lời mở ñầu 1
§. Lời nhận xét 2
Phần 1:
Nghiên cứu các cơ chế mã hóa e-mail 4
Phần 2:
Nghiên cứu phần mềm mã hóa e-mail PGP 21
Phần 3:
Demo thực tế mã hóa e-mail bằng PGP 28
Phần 4: Các cơ chế bảo mật và phòng chống cho e-mail 40
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 4
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Phần 1:
Nghiên cứu các cơ chế mã hóa e-mail
I. Cơ chế Mã hóa – Encryption
Mã hóa khóa công cộng là một dạng mã hóa cho phép người sử dụng trao ñổi các thông
tin mật mà không cần phải trao ñổi các khóa chung bí mật trước ñó. ðiều này ñược thực hiện
bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công cộng (hay khóa
công khai) và khóa cá nhân (hay khóa bí mật).
Thuật mã hóa khóa bất ñối xứng thường ñược dùng ñồng nghĩa với mã hóa khóa công cộng mặc
dù hai khái niệm không hoàn toàn tương ñương. Có những thuật toán mã khóa bất ñối xứng
không có tính chất khóa công cộng và bí mật như ñề cập ở trên mà cả hai khóa (cho mã hóa và
giải mã) ñều cần phải giữ bí mật.
Trong mã hóa khóa công cộng, khóa cá nhân phải ñược giữ bí mật trong khi khóa công cộng
ñược phổ biến công khai. Trong 2 khóa, một ñể mã hóa và khóa còn lại ñể giải mã. ðiều quan
trọng ñối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công cộng.
Hệ thống mã hóa khóa công cộng có thể sử dụng với các mục ñích:
Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã ñược.
Tạo chữ ký số: cho phép kiểm tra một văn bản có phải ñã ñược tạo với một khóa bí mật nào ñó
hay không.
Thỏa thuận khóa: cho phép thiết lập khóa ñể trao ñổi thông tin mật giữa 2 bên.
Thông thường, các kỹ thuật mã hóa khóa công cộng ñòi hỏi khối lượng tính toán nhiều
hơn các kỹ thuật mã hóa khóa ñối xứng nhưng những lợi ñiểm mà chúng mang lại khiến cho
chúng ñược áp dụng trong nhiều ứng dụng.
Mã hóa dữ liệu ngăn chặn được các việc sau :
· Nghe trộm và xem lén dữ liệu.
· Chỉnh sữa và đánh cắp lén dữ liệu.
· Giả mạo thông tin.
· Data non-repudiation.
· Sự gián đoạn các dịch vụ mạng.
Khi nhận được gói tin, người nhận sẽ giải mã dữ liệu lại dạng cơ bản ban đầu. Cho dù dữ liệu
có bị chặn trong suốt quá trình trao đổi dữ liệu.
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 5
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Người gởi và người nhận, phụ thuộc vào quá trình mã hóa,dưới hình thức là một hệ thống mã
hóa. Hệ thống mã hoá (Cryptosystems) có 2 loại sau :
· ðối xứng (Symmetric)
· Bất đối xứng (Asymmetric)
Một hệ thống mã hóa được phân loại dựa vào con số của khoá mà nó dùng. Một khoá có thể
là một con số, một từ, hoặc một cụm từ được dùng vào mục đích mã hóa và giải mã dữ liệu.
II. Các quy tắc cơ bản về mã hóa: Cryptography Fundamentals
Chúng ta ñã nhận dạng ra một số mục tiêu chính của security như tính bí mật
(confidentiality), tính tích hợp (integrity), và tính sẵn hem (availability)
Mã hóa-Encrytion là một trong những công cụ bảo mật ña năng và chúng ta có thể sử
dụng nó ñể ñạt mục tiêu ñề ra. Trong phần này chúng ta xác ñịnh các thành phần cơ bản của mã
hóa, các khái niệm và các công cụ. Có thể xem mã hóa là một vũ khí cực mạnh và phức tạp trong
cuộc chiến bảo vệ an toàn cho máy tính. Có nhiều hệ thống mật mã và cách thiết lập khác nhau,
tuy nhiên có sự tương ñồng giữa các hệ thống mã hóa, ñiều mà các security frofressionals nên
nắm vững.
1. Encryption
Encryption, mã hóa là các kỹ thuật bảo mật làm biến ñối (converts) dữ liệu từ hình thức
ñơn giản, rõ hem (plain or cleartext form) sang hình thức dữ liệu biến thành mật mã (coded or
ciphertext form). Chỉ có những ai có ñược thông tin giải mã cần thiết mới ñược decode và ñọc
nội dung dữ liệu. Encryption có thể là một chiều, có nghĩa là mã hóa ñược thiết kế ñể ẩn cleartext
ñi và không bao giờ có thể giải mã ñược. Hoặc có thể 2 chiều chuổi ký tự ñược mã hóa
ciphertext có thể chuyển trở lại thành cleartext và có thể ñọc ñược.
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 6
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
2. Encryption và các mục tiêu bảo mật:
Encryption ñược dùng như một kỹ thuật nhằm nâng vấn ñề security lên một cấp ñộ quan
trọng. Encryption hỗ trợ sự cẩn mật bởi nó bảo vệ dữ liệu chống các truy cập bất hợp pháp. Nó
hỗ trợ tính tích hợp bởi vì rất khó ñể làm xáo trộn hay thay ñổi dữ liệu ñã mã hóa mà không bị
phát hiện. Nó hỗ trợ việc không thể thoái thác trách nhiệm, không thể chối từ (non-repudiation),
bởi vì chỉ có các ñối tượng mã hóa mới có thể tiến hành giải mã dữ liệu. Thêm vào ñó một vài
hình thức mã hóa ñược áp dụng trong những xác thực nhằm bảo vệ tối ña password khi giao dịch
Những ñiểm yếu
Tồn tại khả năng một người nào ñó có thể tìm ra ñược khóa bí mật. Không giống với hệ thống
mã hóa một lần (one-time pad) hoặc tương ñương, chưa có thuật toán mã hóa khóa bất ñối xứng
nào ñược chứng minh là an toàn trước các tấn công dựa trên bản chất toán học của thuật toán.
Khả năng một mối quan hệ nào ñó giữa 2 khóa hay ñiểm yếu của thuật toán dẫn tới cho phép giải
mã không cần tới khóa hay chỉ cần khóa mã hóa vẫn chưa ñược loại trừ. An toàn của các thuật
toán này ñều dựa trên các ước lượng về khối lượng tính toán ñể giải các bài toán gắn với chúng.
Các ước lượng này lại luôn thay ñổi tùy thuộc khả năng của máy tính và các phát hiện toán học
mới.
Mặc dù vậy, ñộ an toàn của các thuật toán mã hóa khóa công cộng cũng tương ñối ñảm bảo. Nếu
thời gian ñể phá một mã (bằng phương pháp duyệt toàn bộ) ñược ước lượng là 1000 năm thì
thuật toán này hoàn toàn có thể dùng ñể mã hóa các thông tin về thẻ tín dụng – Rõ ràng là thời
gian phá mã lớn hơn nhiều lần thời gian tồn tại của thẻ (vài năm).
Nhiều ñiểm yếu của một số thuật toán mã hóa khóa bất ñối xứng ñã ñược tìm ra trong quá khứ.
Thuật toán ñóng gói hem là một ví dụ. Nó chỉ ñược xem là không an toàn khi một dạng tấn
công không lường trước bị phát hiện. Gần ñây, một số dạng tấn công ñã ñơn giản hóa việc tìm
khóa giải mã dựa trên việc ño ñạc chính xác thời gian mà một hệ thống phần cứng thực hiện mã
hóa. Vì vậy, việc sử dụng mã hóa khóa bất ñối xứng không thể ñảm bảo an toàn tuyệt ñối. ðây là
một lĩnh vực ñang ñược tích cực nghiên cứu ñể tìm ra những dạng tấn công mới.
Một ñiểm yếu tiềm hem trong việc sử dụng khóa bất ñối xứng là khả năng bị tấn công dạng kẻ
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 7
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
tấn công ñứng giữa (man in the middle attack): kẻ tấn công lợi dụng việc phân phối khóa
công cộng ñể thay ñổi khóa công cộng. hemn ñã giả mạo ñược khóa công cộng, kẻ tấn
công ñứng ở giữa 2 bên ñể nhận các gói tin, giải mã rồi lại mã hóa với khóa ñúng và gửi ñến nơi
nhận ñể tránh bị phát hiện. Dạng tấn công kiểu này có thể phòng ngừa bằng các phương pháp
trao ñổi khóa an toàn nhằm ñảm bảo nhận thực người gửi và toàn vẹn thông tin. Một ñiều cần lưu
ý là khi các chính phủ quan tâm ñến dạng tấn công này: họ có thể thuyết phục (hay bắt buộc)
nhà cung cấp chứng thực số xác nhận một khóa giả mạo và có thể ñọc các thông tin mã hóa.
Một số ví dụ
Một số thuật toán mã hóa khóa công cộng ñược ñánh giá cao:
Diffie-Hellman
DSS (Tiêu chuẩn chữ ký số)
ElGamal
Các kỹ thuật Mã hóa ñường cong Elíp
Các kỹ thuật Thỏa thuật khóa chứng thực bằng mật khẩu
Hệ thống mật mã Paillier
Thuật toán mã hóa RSA (PKCS)
Một số thuật toán không ñược ñánh giá cao:
Merkle-Hellman (sử dùng bài toán cái balô)
Một số ví dụ về giao thức sử dụng mã hóa khóa công cộng:
GPG thực hiện giao thức OpenPGP
IKE
Pretty Good Privacy
SSH
Secure Socket Layer tiêu chuẩn IETF — TLS
SILC
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 8
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
III. Các thuật toán Mã Hóa
Một thuật toán mã hóa là một quy rắc (rule), một hệ thống (system) hoặc một cơ chế
(mechanism) ñược sử dụng ñể mã hóa data. Các thuật toán có thể là những sự thay thế mang tính
máy móc khá ñơn giản, nhưng trong mã hóa thông tin ñiện tử, nhìn chung sử dụng các hàm toán
học cực kỳ phức tạp. Thuật toán càng mạnh, càng phức tạp thì càng khó giải mã.
Một ví dụ ñơn giản về áp dụng thuật toán vào mã hóa: Một lá thư với các ký tự anphabe, sau khi
sử dụng thuật toán mã hóa ñã trở thành các ký tự khác và bạn dường như không thể hiểu nội
dung này (giải mã).
1. Khóa-Keys:
Một khóa mã hóa là 1 mẫu (phần) thông tin ñặc biệt ñược kết hợp với một thuật toán ñể
thi hành mã hóa và giải mã. Mỗi khóa khác nhau có thể “chế tạo” ra các văn bản mã hóa khác
nhau, và nếu bạn không chọn ñúng khóa thì không tài nào mở ñược dữ liệu ñã mã hóa trên, cho
dù biết ñược mã hóa văn bản trên thì dùng thuật toán gì. Sử dụng khóa càng phức tạp thì mã hóa
càng mạnh.
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 9
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Ví dụ về một mã hóa ñơn giản:
Dùng khóa sau ñể mã hóa bức thư sau, khóa như sau: “thay thế mỗi ký tự xuất hiện trong bức thư
bằng ký tự thứ 3 ñứng sau nó. “ Cùng thuật toán dạng trên nhưng lần này sử dụng một khóa khác
như sau: “thay thế mỗi ký tự xuất hiện trong bức thư bằng ký tự ñứng trước nó 2 ký tự”. Như vậy
kết quả của 2 bức thư cùng nội dung sau khi sử dụng 2 keys khác nhau sẽ là khác nhau….
2. Mã hóa hàm băm – Hashing Encryption
Hãy hình dung cũ hành ñã ñược băm nhuyễn ra có thể tái tạo lại cũ hành như ban ñầu,
hay chú bò ñã tiêu hóa một nhúm cỏ khô, lieu có thể tái tạo lại nhúm cỏ khô này, vậy hãy xem
mã hóa hàm băm là gì…
Là cách thức mã hóa một chiều tiến hành biến ñổi văn bản nhận dạng (cleartext) trở thành hình
thái mà không bao giờ có thể giải mã. Kết quả của tiến trình hashing còn gọi là một hash (xử lý
băm), giá trị hash (hash value) hay thông ñiệp ñã ñược tiêu hóa (message digest) và tất nhiên
không thể tái tạo lại dạng ban ñầu. Trong xử lý hàm băm sữ liệu ban ñầu có thể khác nhau về ñộ
dài, thế nhưng ñộ dài của xử lý hash lại là cố ñịnh. Hashing ñược xử dụng trong một số mô hình
xác thực password. Một giá trị hash có thể ñược gắn với một thông ñiệp ñiện tử (electronic
message) nhằm hỗ trợ tính tích hợp của dữ liệu hoặc xác ñịnh trách nhiệm không thể chối từ
(non-repudiation).
Một ví dụ về dùng hashing trong CHAP (CHAP là phương thức xác nhận truy cập quay số từ xa
Remote Access Service, RAS client truy cập vào RAS server)
Hashing ñược sử dụng ñể mã hóa password trong xác thực CHAP. RAS client sẽ gửi một hash
password (password băm) tới RAS server. RAS server chứa hashe password client ñã tạo trước
ñó. Nếu hashe trùng khớp, password ñược chấp thuận và client sẽ ñược server xác thực. Việc gửi
một hash thay vì gửi chính password có nghĩa là password ñó không cần truyền qua mạng trong
suốt quy trình server xác thực clients.
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 10
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Các thuật toán mã hóa Hashing:
Một vài thuật toán mã hóa ñược dùng cho mã hóa hashing.
Thuật toán hashing Mô tả
Message Digest 5 (MD5) Thuật toán MD5 tạo thành một dạng thông
ñiệp ñược mã hóa với 128 bit, ñược tạo ra bởi
Ronald Revest và hiện là công nghệ mã hóa
mang tính phổ biến rộng rãi – public
Secure Hash Algorithm (SHA) version 1, 256,
384 và 512 bit
SHA dựa trên mô hình MD5 nhưng mạnh hơn
gấp 2 lần
SHA-1 tạo giá trị hash với 160 bit
Trong khi ñó SHA 256, SHA 384 và SHA 512
tạo giá trị hash tương ứng với 256 bit, 384 bit,
512 bit
3. Mã hóa ñối xứng-Symmetric Encryption
Mã hóa ñối xứng hay mã hóa chia sẽ khóa (shared key encryption) là mô hình mã hóa 2
chiều có nghĩa là tiến trình mã hóa và giải mã ñều dùng chung một khóa. Khóa này phải ñược
chuyển giao bí mật giữa 2 ñối tượng tham gia giao tiếp. Khóa này có thể ñược cấu hình trong
software hoặc ñược mã hóa trong hardware. Mã hóa ñối xứng thực hiện nhanh nhưng có thể gặp
rủi ro nếu khóa bị ñánh cắp.
Symmetric cryptosystems dựa trên một khóa đơn, đó là một chuỗi ngắn với chiều dài không
thay đổi. Do đó, phương pháp mã hóa này được xem như là single-key encryption. Khoá
thường là khóa riêng (hoặc bảo mật) và được dùng ñể mã hóa cũng như giải mã.
Ghi chú : Trong một số tài liệu, symmetric cryptosystem cũng được xem như khóa
scryptosystems riêng hoặc bí mật và kỹ thuật này cũng được xem như khóa mật mã riêng
hoặc khóa mật mã bí mật.
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 11
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Trước khi hai bên trao đổi dữ liệu, khóa phải được chia sẽ dùng chung cho cả 2 bên. Người gửi
sẽ mã hóa thông tin bằng khóa riêng và gửi thông tin đến người nhận. Trong quá trình nhận
thông tin, người nhận sử dụng cùng một khóa để giải mã thông điệp.
Phụ thuộc vào chiều dài của khóa, có rất nhiều thuật giải mã hóa đối xứng đã được phát triển
cho đến nay. Sau đây là một số thuật giải thường được sử dụng:
· Tiêu chuẩn mã hóa dữ liệu (Data Encryption Standard (DES)). Nguyên bản DES đề ra
giải pháp cho một khóa có chiều dài lên đến 128 bit. Tuy nhiên, kích thước của khóa đã giảm
xuống còn 56 bit bởi chính phủ Hoa Kỳ trong việc nổ lực tìm ra thuật giải nhanh hơn. Việc
giảm chiều dài khóa xuống, phụ thuộc vào tốc độ xử lý của bộ vi xử lý. Trong phương pháp
tấn công Brute Force, các khóa sẽ phát sinh ngẩu nhiên và được gửi đến đoạn văn bản
nguyên mẩu cho tới khi xác định được từ khóa chính xác. Với những khóa có kích thước nhỏ,
sẽ dễ dàng để phát sinh ra chính xác từ khóa và phá vở hệ thống mật mã.
Chú ý : Tên chính thức của DES là Federal Information Processing Standard (FISP) (Tiêu
chuẩn xứ lý thông tin liên bang (Hoa kỳ).
· Bội ba tiêu chuẩn mã hóa dữ liệu (Triple Data Encryption Standard (3DES)). Cũng
giống như DES, 3DES cũng sử dụng khóa 56 bit. Tuy nhiên, nó an toàn hơn nhiều do dùng 3
khóa khác nhau ñể mã hóa dử liệu. Bộ xử lý thực hiện các bước sau : khóa đầu tiên dùng để
mã hóa dữ liệu. Sau đó, khóa thứ hai sẽ dùng để giải mã dữ liệu vừa được mã hóa. Cuối cùng,
khóa thứ ba sẽ mã hóa lần thứ hai. Toàn bộ quá trình xử lý của 3DES tạo thành một thuật giải
có độ an toàn cao. Nhưng bởi vì đây là một thuật giải phức tạp nên thời gian thực hiện sẽ lâu
hơn, gấp 3 lần so với phương pháp DES.
· Ron’s Code 4 (RC4). ðược phát triển bởi Ron Rivest, thuật giải này sử dụng những từ khóa
với chiều dài có thể biến đổi lên đến 256 bytes. Bởi vì chiều dài của khóa, RC4 được phân loại
là một cơ chế mã hóa mạnh. Nó cũng tương đối khá nhanh. RC4 tạo một dòng bytes ngẩu
nhiên và XORs chúng với văn bản nguyên mẩu. Bởi vì các bytes được phát sinh ngẩu nhiên,
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 12
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
RC4 đòi hỏi một khóa mới cho mổi lần gởi thông tin ra ngoài.
Hệ thống mã hóa đồng bộ đưa ra 2 vấn đề chính. Đầu tiên, bởi vì một khóa vừa được dùng để
mã hóa vừa dùng để giả mã, nếu nó bắt đầu trở thành kẻ xâm nhập, thì tất cả những thông tin
sữ dụng khóa này sẽ bị huỷ. Vì thế, khóa nên thường xuyên thay đổi theo định kỳ.
Một vấn đề khác là khi hệ thống mã hóa đồng bộ xữ lý một lượng thông tin lớn, việc quản lý
các khóa sẽ trở thành một công việc vô cùng khó khăn. Kết hợp với việc thiết lặp các cặp
khóa, phân phối, và thay ñổi theo định kỳ đều đòi hỏi thời gian và tiền bạc.
Hệ hống mã hóa đối xứng đã giải quyết vấn đề đó bằng việc đưa ra hệ thống mã hóa bất đối
xứng. Đồng thời, họ cũng tăng tính năng bảo mật trong suốt quá trình chuyển vận. Chúng ta
sẽ được tham khảo hem về hệ thống mã hóa bất đối xứng ở phần sau.
4. Mã hóa bất ñối xứng-Asymmetric Encryption
Mã hóa bất ñối xứng hay mã hóa công khai (public key encryption) là mô hình mã hóa 2
chiều sử dụng một cặp là khóa riêng (private key) và khóa công khai (public keys). Thông
thường một thông ñiệp ñược mã hóa với private key và chắc chắn key này là key của người gửi
thông ñiệp (message sender). Nó sẽ ñược giải mã với public key, bất cứ người nhận nào cũng có
thể truy cập nếu họ có key này. Chỉ có public key trong cùng một cặp khóa mới có thể giải mã
dữ lieu ñã mã hóa với private key tương ứng. Private key thì không ñược chia sẽ với bất kỳ ai do
ñó nó mang tính bảo mật.
Thay vì sử dụng một khóa đơn trong hệ thống mã hóa đối xứng, hệ thống mã hóa bất đối
xứng sử dụng một cặp khóa có quan hệ toán học. Một khóa là riêng tư, chỉ được chính chủ
nhân. Khóa thứ hai thì được phổ biến, công cộng và phân phối tự do. Khóa công cộng thì
được dùng để mã hóa và ngược lại khóa riêng thì được dùng để giải thông tin.
Trong VPN, 2 hệ thống mã hóa bất đối xứng được dùng phổ biến là thuật toán Diffie-Hellman
(DH) và thuật toán Rivest Shamir Adleman (RSA).
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 13
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
. Thuật toán Diffie-Hellman
Trong thuật toán DH, mổi thực thể giao tiếp nhận được một cặp khóa, một được phân phối tới
những thực thể thông tin khác và một được giữ lại riêng. Thuật toán DH làm việc theo những
vấn đề chính sau :
1. Người gửi nhận khóa công cộng của người nhận, do khóa này là khóa công cộng nên đều
được mọi người biết.
2. Người gửi thực hiện một thao tác gộp khóa riêng và khóa công công của người nhận, kết
quả cho ra một khóa chung bảo mật (shared secret key).
3. Thông điệp sẽ được mã hóa bằng khóa vừa nhận được.
4. Sau đó thông điệp mã hóa sẽ được gửi đến người nhận.
5. Trong qua trình nhận thông điệp mã hóa, bên nhận sẽ phát sinh một khóa chung mật khác
cũng bằng thao tác tương tự gộp chính khóa riêng của mình với khóa chung của bên gửi.
Giả định cơ bản của thuật toán này là nếu bất kỳ một ai bắt được thông điệp mã hóa, người đó
cũng không thể nào giải mã được bởi vì anh hoặc cô ta không xử lý khóa riêng của bên nhận
được (khóa riêng của anh hoặc cô ta). Dữ liệu được trao đổi dựa trên thuật toán Diffie-
Hellman được mô tả ở hình:
Mặc dù thuật toán DH có một độ an toàn cao hơn so với hệ thống mã hóa đối xứng, nhưng
cũng gặp một số vấn đề khó khăn. Phải đảm bảo chắc chắn rằng khóa công cộng phải được
trao đổi trước khi quá trình trao đổi dữ liệu thực sự được xác định. Cho ví dụ : nếu 2 bên trao
đổi khóa công cộng cho nhau qua môi trường không an toàn, như Internet, điều đó có thể
làm cho khóa công cộng có thể bị bắt giữ trước bởi một người xâm phạm nào đó, sau đó
người này sẽ gửi khóa công cộng của mình cho cả hai bên đầu cuối đang thực hiện trao đổi .
Trong trường hợp này, người xâm nhập sẽ dễ dàng mắc vào nghe lén thông tin của hai bên
đầu cuối bởi vì cả hai bên ñầu cuối đều trao đổi dữ liệu thông qua khóa công cộng của người
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 14
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
xâm phạm. Đây là một dạng xâm nhập được biết như một kiểu tấn công Man-in-the-Middle.
Thuật toán Rivest Shamir Adleman (RSA), sẽ được tham khảo tiếp theo sau sẽ giải quyết hiệu
quả phương pháp tấn công Man-in-the-Middle mà đã nảy ra trong thuật toán DH. Thuật toán
RSA nổi lên như là một cơ chế mã hóa bất đối xứng khá mạnh.
Thuật toán Rivest Shamir Adleman (RSA)
Thuật toán RSA triển khai quá trình xác nhận bằng cách sử dụng chữ ký điện tử theo các bước
sau :
1. Khóa công cộng của người gửi được yêu cầu và được dùng cho người nhận và sau đó được
chuyễn hướng về phía trước (forward).
2. Người gửi sử dụng hàm băm để làm giảm kích thước mẩu tin gốc. Thông điệp tổng hợp thì
được hiểu như là một thông điệp phân loại (message digest (MD)).
3. Người gửi mã hóa thông điệp phân loại bằng khóa riêng của nó được rút ra từ sự phát sinh
chữ ký điện tử độc nhất.
4. Thông điệp và chữ ký điện tử được kết hợp và chuyễn hướng đến người nhận.
5. Trong lúc nhận thông điệp mã hóa, người nhận phục hồi lại thông điệp phân loại bằng cách
sử dụng cùng một hàm băm như người gửi.
6. Người nhận sau đó giải mã chữ ký điện tử bằng cách sử dụng khóa công cộng của người gửi.
7. Người nhận sau đó sẽ so sánh thông ñiệp phân loại vừa được phục hồi (bước 5) và thông
điệp phân loại nhận được từ chữ ký điện tử (bước 6). Nếu cả hai đồng nhất, tức là dữ liệu
không bị chặn đứng, giả mạo hoặc chỉnh sửa trong suốt quá trình trao đổi. Ngược lại, dữ liệu
sẽ không được chấp nhận, bị từ chối.
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 15
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
RSA bảo đảm an toàn và bảo mật trong chuyến đi của dữ liệu bởi vì người nhận kiểm tra sự
đúng đắn của dữ liệu qua 3 lần (bước 5, 6 và 7). RSA cũng làm đơn giản hóa công việc quản lý
khóa. Trong cách mã hóa đối xứng, n2 khóa được yêu cầu nếu trong quá trình trao đổi có n
thực thể. Bằng cách so sánh, cách mã hóa bất đối xứng chỉ đòi hỏi 2*n khóa.
5. Các cách thức viết mật mã
Có 2 loại viết mật mã chính: Mật mã theo luồng (stream cipher) và Mật mã theo khối (block
cipher)
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 16
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Các thuật toán mã hóa ñối xứng
Một vài thuật toán ñược sử dụng cho mã hóa ñối xứng
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 17
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Mã assci phục vụ cho mã hóa
ASCII
Hex
Symbol
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
TAB
LF
VT
FF
CR
SO
SI
ASCII
Hex
Symbol
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
ASCII
Hex
Symbol
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
(space)
!
“
#
$
%
&
‘
(
)
*
+
,
-
.
/
ASCII
Hex
Symbol
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 18
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
ASCII
Hex
Symbol
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
ASCII
Hex
Symbol
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
ASCII
Hex
Symbol
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
ASCII
Hex
Symbol
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
Chuẩn mã hóa 64base
Base64Encoding mã hóa chuỗi dữ liệu nhị phân sang mã ASCII ñể gửi ñi ( SMTP client ). Tại
Pop client , sẽ có bộ giải mã Base64Decoding thực hiện việc chuyển ngược lại .
Ta xét một ví dụ ñơn giản sau:
Base64 encoding lấy 3 bytes, mỗi byte ñó chứa 8 bits, và biểu diễn chúng như 4 kí tự trong bảng
mã ASCII. Bản chất quá trình này gồm 2 bước :
Bước 1 : chuyển 3 bytes thành 4 phần 6 bít . Mỗi kí tự trong bảng mã ASCII chứa 7 bit. Base64
chỉ sử dụng duy nhất 6 bit ( tương ứng với : 2^6 = 64 kí tự ) ñể chắc rằng dữ liệu ñược mã hóa là
printable và có thể ñọc ñược . Những kí tự ñặc biệt trong bảng mã ASCII không ñuowcj sử dụng
. Base64 bao gồm 64 kí tự là 10 số (0-9) , 26 chữ cái thường (a-z) , 26 chữ cái hoa (A-Z) và 2
dấu ‘+’,’/’.
Ví dụ : 3 byte 155, 162, 233 tương ứng với luồng bit : 100110111010001011101001 chúng sẽ
ñược mã hóa tương ứng thành 4 phần 6 bit là : 38, 58 , 11 và 41.
Bước 2 : ñối chiếu bảng mã ASCII chuyển ñi các kí tự tương ứng
Quá trình thực hiện như sau :
Bước 1 :
• 155 -> 10011011
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 19
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
• 162 -> 10100010
• 233 -> 11101001
• 100110 -> 38
• 111010 -> 58
• 001011 -> 11
• 101001 -> 41
Bước 2 :
• 38 -> m
• 58 -> 6
• 11 -> L
• 41 -> p
vậy thay vì gửi ñi ‘100110111010001011101001’ ta chỉ cần gửi ñi ‘m6Lp’
Base64 Encoding Table
6. Chữ ký số-Digital signatures
Một chữ ký số là một giá trị hash ñược mã hóa gắn vào thông ñiệp nhằm xác ñịnh người
gửi là ai (sender). Digital Signatures nhằm ñảm bảo tính tích hợp trọn vẹn của thông ñiệp khi gửi
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 20
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
(integrity). Nếu vì lý do nào ñó khiến signatures bị thay ñổi trong quá trình truyền giá trị hash
của người nhận (receiver) không trùng khớp giá trị hash ban ñầu tính tích hợp không còn, không
ñảm bảo sự an toàn. Signatures còn hổ trợ non-repudiation bởi vì giá trị hash ñược mã hóa chỉ
duy nhất và xuất phát từ người gửi.
Digital Signatures và mã hóa bất ñối xứng
Các thuật toán mã hóa bất ñối xứng, có thể kết hợp với thuật toán hash ñể tạo ra các
Digital Signatures. Trong tình huống này người gửi sẽ tạo ra phiên bản hashed của thông ñiệp
gửi ñi. Sau ñó mã hóa hash này với Private key của anh ta. Hash sau khi ñược mã hóa sẽ ñược
gắn vào message như một Digital Signatures. Như vậy người gửi (sender) sẽ cung cấp Digital
Signatures và người nhận (receiver) nhận thông ñiệp ñã “xác nhận số” ấy phải sử dụng public
key tương ứng ñể open. Khi người nhận dùng public key ñể giải mã signatures sẽ phát hiện ñược
phiên bản của hash. ðiều này sẽ xác minh chính xác người gửi, vì nếu public key và private key
không gặp nhau, người nhận sẽ không bao giờ giải mã ñược signatures.
Người nhận sau ñó tạo một phiên bản hash của tài liệu với public key và so sánh 2 giá trị của
hash này. Nếu chúng gặp nhau ñiều ñó chứng tỏ dữ liệu không bị thay ñổi. Quy trình này hơi
ngược với quy trình mã hóa dữ liệu dùng public key có nghĩa là người gửi sẽ dùng public key ñể
mã hóa dữ liệu và người nhận sẽ dùng private key ñể giải mã.
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 21
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Phần 2: Nghiên cứu phần mềm mã hóa e-mail PGP
Mật mã hóa PGP® (Pretty Good Privacy®) là một phần mềm máy tính dùng ñể mật mã hóa
dữ liệu và xác thực. Phiên bản PGP ñầu tiên do Phil Zimmermann ñược công bố vào năm 1991.
Kể từ ñó, phần mềm này ñã có nhiều cải tiến và hiện nay tập ñoàn PGP cung cấp nhiều phần
mềm dựa trên nền tảng này. Với mục tiêu ban ñầu là phục vụ cho mã hóa thư ñiện tử, PGP hiện
nay ñã trở thành một giải pháp mã hóa cho các công ty lớn, chính phủ cũng như các cá nhân. Các
phần mềm dựa trên PGP ñược dùng ñể mã hóa và bảo vệ thông tin lưu trữ trên máy tính xách
tay, máy tính ñể bàn, máy chủ và trong quá trình trao ñổi thông qua email, IM hoặc chuyển file.
Giao thức hoạt ñộng của hệ thống này có ảnh hưởng lớn và trở thành một trong hai tiêu chuẩn
mã hóa (tiêu chuẩn còn lại là S/MIME).
I. Ứng dụng của PGP
Mục tiêu ban ñầu của PGP nhằm vào mật mã hóa nội dung các thông ñiệp thư ñiện tử và các tệp
ñính kèm cho người dùng phổ thông. Bắt ñầu từ 2002, các sản phẩm PGP ñã ñược ña dạng hóa
thành một tập hợp ứng dụng mật mã và có thể ñược ñặt dưới sự quản trị của một máy chủ. Các
ứng dụng PGP giờ ñây bao gồm: thư ñiện tử, chữ ký số, mật mã hóa ổ ñĩa cứng máy tính xách
tay, bảo mật tệp và thư mục, bảo mật các phiên trao ñổi IM, mật mã hóa luồng chuyển tệp, bảo
vệ các tệp và thư mục lưu trữ trên máy chủ mạng.
Phiên bản PGP Desktop 9.x dành cho máy ñể bàn bao gồm các tính năng: thư ñiện tử, chữ ký số,
bảo mật IM, mật mã hóa ổ ñĩa cứng máy tính xách tay, bảo mật tệp và thư mục, tệp nén tự giải
mã, xóa file an toàn. Các tính năng riêng biệt ñược cấp phép theo các cách khác nhau tùy theo
yêu cầu.
Phiên bản PGP Universal 2.x dành cho máy chủ cho phép triển khai ứng dụng tập trung, thiết lập
chính sách an ninh và lập báo cáo. Phần mềm này ñược dùng ñể mật mã hóa thư ñiện tử một
cách tự ñộng tại cổng ra vào (gateway) và quản lý các phần mềm máy khách PGP Desktop 9.x.
Nó làm việc với máy chủ khóa công khai PGP (gọi là PGP Global Directory) ñể tìm kiếm khóa
của người nhận và có khả năng gửi thư ñiện tử an toàn ngay cả khi không tìm thấy khóa của
người nhận bằng cách sử dụng phiên làm việc HTTPS.
Với ứng dụng PGP Desktop 9.0 ñược quản lý bởi PGP Universal Server 2.0, tất cả các ứng dụng
mật mã hóa PGP ñược dựa trên nền kiến trúc proxy mới. Các phần mềm này giúp loại bỏ việc sử
dụng các plug-in của thư ñiện tử và tránh cho người dùng việc sử dụng các ứng dụng khác. Tất
cả các hoạt ñộng của máy chủ cũng như máy khách ñều tự ñộng tuân theo một chính sách an
ninh. PGP Universal server còn tự ñộng hóa các quá trình tạo, quản lý và kết thúc các khóa chia
sẻ giữa các ứng dụng PGP.
Các phiên bản mới của PGP cho phép sử dụng cả 2 tiêu chuẩn: OpenPGP và S/MIME, cho phép
trao ñổi với bất kỳ ứng dụng nào tuân theo tiêu chuẩn của NIST.
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 22
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
II. Hoạt ñộng của PGP
PGP sử dụng kết hợp mật mã hóa khóa công khai và thuật toán khóa ñối xứng cộng hem với hệ
thống xác lập mối quan hệ giữa khóa công khai và chỉ danh người dùng (ID). Phiên bản ñầu tiên
của hệ thống này thường ñược biết dưới tên mạng lưới tín nhiệm dựa trên các mối quan hệ ngang
hem (khác với hệ thống X.509 với cấu trúc cây dựa vào các nhà cung cấp chứng thực số). Các
phiên bản PGP về sau dựa trên các kiến trúc tương tự như hạ tầng khóa công khai.
PGP sử dụng thuật toán mật mã hóa khóa bất ñối xứng. Trong các hệ thống này, người sử dụng
ñầu tiên phải có một cặp khóa: khóa công khai và khóa bí mật. Người gửi sử dụng khóa công
khai của người nhận ñể mã hóa một khóa chung (còn gọi là khóa phiên) dùng trong các thuật
toán mật mã hóa khóa ñối xứng. Khóa phiên này chính là khóa ñể mật mã hóa các thông tin ñược
gửi qua lại trong phiên giao dịch. Rất nhiều khóa công khai của những người sử dụng PGP ñược
lưu trữ trên các máy chủ khóa PGP trên khắp thế giới (các máy chủ mirror lẫn nhau).
Người nhận trong hệ thống PGP sử dụng khóa phiên ñể giải mã các gói tin. Khóa phiên này cũng
ñược gửi kèm với thông ñiệp nhưng ñược mật mã hóa bằng hệ thống mật mã bất ñối xứng và có
thể tự giải mã với khóa bí mật của người nhận. Hệ thống phải sử dụng cả 2 dạng thuật toán ñể
tận dụng ưu thế của cả hai: thuật toán bất ñối xứng ñơn giản việc phân phối khóa còn thuật toán
ñối xứng có ưu thế về tốc ñộ (nhanh hơn cỡ 1000 lần).
Một chiến lược tương tự cũng ñược dùng (mặc ñịnh) ñể phát hiện xem thông ñiệp có bị thay ñổi
hoặc giả mạo người gửi. ðể thực hiện 2 mục tiêu trên người gửi phải ký văn bản với thuật toán
RSA hoặc DSA. ðầu tiên, PGP tính giá trị hàm băm của thông ñiệp rồi tạo ra chữ ký số với khóa
bí mật của người gửi. Khi nhận ñược văn bản, người nhận tính lại giá trị băm của văn bản ñó
ñồng thời giải mã chữ ký số bằng khóa công khai của người gửi. Nếu 2 giá trị này giống nhau thì
có thể khẳng ñịnh (với xác suất rất cao) là văn bản chưa bị thay ñổi kể từ khi gửi và người gửi
ñúng là người sở hữu khóa bí mật tương ứng.
Trong quá trình mã hóa cũng như kiểm tra chữ ký, một ñiều vô cùng quan trọng là khóa công
khai ñược sử dụng thực sự thuộc về người ñược cho là sở hữu nó. Nếu chỉ ñơn giản là download
một khóa công khai từ ñâu ñó sẽ không thể ñảm bảo ñược ñiều này. PGP thực hiện việc phân
phối khóa thông qua chứng thực số ñược tạo nên bởi những kỹ thuật mật mã sáo cho việc sửa ñổi
(không hợp pháp) có thể dễ dàng bị phát hiện. Tuy nhiên chỉ ñiều này thôi thì chưa ñủ vì nó chỉ
ngăn chặn ñược việc sửa ñổi sau khi chứng thực ñã ñược tạo ra. Người dùng còn cần phải ñược
trang bị khả năng kiểm kha xem khóa công khai có thực sự thuộc về người ñược cho là sở hữu
hay không. Từ phiên bản ñầu tiên, PGP ñã có một cơ chế hỗ trợ ñiều này gọi là mạng lưới tín
nhiệm. Mỗi khóa công khai (rộng hơn là các thông tin gắn với một khóa hay một người) ñều có
thể ñược một bên thứ 3 xác nhận (theo cách ñiện tử).
Trong các ñặc tả gần ñây của OpenPGP, các chữ ký tin cậy có thể ñược sử dụng ñể tạo ra các nhà
cung cấp chứng thực số (CA). Một chữ ký tin cậy có thể chứng tỏ rằng môt khóa thực sự thuộc
về một người sử dụng và người ñó ñáng tin cậy ñể ký xác nhận một khóa của mức thấp hơn. Một
chữ ký có mức 0 tương ñương với chữ ký trong mô hình mạng lưới tín nhiệm. Chữ ký ở mức 1
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 23
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
tương ñương với chữ ký của một CA vì nó có khả năng xác nhận cho một số lượng không hạn
chế chữ ký ở mức 0. Chữ ký ở mức 2 tương tự như chữ ký trong danh sách các CA mặc ñịnh
trong Internet Explorer; nó cho phép người chủ tạo ra các CA khác.
PGP cũng ñược thiết kế với khả năng hủy bỏ/thu hồi các chứng thực có khả năng ñã bị vô hiệu
hóa. Về một khía cạnh nào ñó, ñiều này tương ñương với danh sách chứng thực bị thu hồi của
mô hình hạ tầng khóa công khai. Các phiên bản PGP gần ñây cũng hỗ trợ tính năng hạn sử dụng
của chứng thực.
Vấn ñề xác ñịnh mối quan hệ giữa khóa công khai và người sở hữu không phải là vấn ñề riêng
của PGP. Tất cả các hệ thống sử dụng khóa công khai/bí mật ñều phải ñối phó với vấn ñề này và
cho ñến nay chưa có một giải pháp hoàn thiện nào ñược tìm ra. Mô hình ban ñầu của PGP trao
cho quyền quyết ñịnh cuối cùng người sử dụng còn các mô hình PKI thì quy ñịnh tất cả các
chứng thực phải ñược xác nhận (có thể không trực tiếp) bởi một nhà cung cấp chứng thực trung
tâm.
III. An ninh
Khi ñược sử dụng ñúng cách, PGP ñược xem là có ñộ an toàn rất cao. Hiện nay chưa có phương
pháp nào ñược biết tới có khả năng phá vỡ ñược PGP ở tất cả các phiên bản. Năm 1996, nhà mật
mã học Bruce Schneier ñánh giá các phiên bản ñầu tiên của PGP là “thứ gần nhất với mật mã
hóa của quân ñội mà mọi người có ñược” (Applied Cryptography, xuất bản lần 2, trang 587).
Trái với những hệ thống an ninh/giao thức như SSL chỉ nhằm bảo vệ thông tin trên ñường
truyền, PGP có thể bảo vệ cả dữ liệu cho mục ñích lưu trữ lâu dài (hệ thống file).
Cũng giống như các hệ thống mật mã và phần mềm khác, an ninh của PGP có thể bị vô hiệu
trong trường hợp sử dụng sai hoặc thông qua các dạng tấn công gián tiếp. Trong một trường hợp,
FBI ñã ñược tòa án cho phép cài ñặt bí mật phần mềm ghi nhận bàn phím (keystroke logging) ñể
thu thập mật khẩu PGP của người bị tình nghi. Sau ñó, toàn bộ các tệp/email của người ñó bị vô
hiệu và là chứng cứ ñể kết án.
[1]
Ngoài những vấn ñề trên, về khía cạnh mật mã học, an ninh của PGP phụ thuộc vào các giả ñịnh
về thuật toán mà nó sử dụng trong ñiều kiện về thiết bị và kỹ thuật ñương thời. Chẳng hạn, phiên
bản PGP ñầu tiên sử dụng thuật toán RSA ñể mã hóa khóa phiên; an ninh của thuật toán này lại
phụ thuộc vào bản chất hàm một chiều của bài toán phân tích ra thừa số nguyên tố. Nếu có kỹ
thuật mới giải bài toán này ñược phát hiện thì an ninh của thuật toán, cũng như PGP sẽ bị phá vỡ.
Tương tự như vậy, thuật toán khóa ñối xứng trong PGP là IDEA cũng có thể gặp phải những vấn
ñề về an ninh trong tương lai. Những phiên bản PGP gần ñây hỗ trợ hem những thuật toán
khác nữa; vì thế mức ñộ an toàn trước tấn công về mặt mật mã học cũng thay ñổi.
Do các tổ chức nghiên cứu lớn về mật mã học (như NSA, GCHQ…) không công bố những phát
hiện mới của mình nên có thể tồn những phương pháp giải mã những thông ñiệp PGP mà không
cần biết ñến khóa bí mật ñược sử dụng. ðiều này cũng ñúng với bất kỳ hệ thống mật mã nào
khác không chỉ là PGP.
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 24
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Hiện nay PGP cho sử dụng một số thuật toán khác nhau ñể thực hiện việc mã hóa. Vì thế các
thông ñiệp mã hóa với PGP hiện tại không nhất thiết có những ñiểm yếu giống như PGP phiên
bản ñầu. Tuy nhiên cũng có một số tin ñồn về sự không an toàn của PGP phiên bản ñầu tiên (sử
dụng các thuật toán RSA và IDEA). Phil Zimmerman, tác giả của PGP, ñã từng bị chính phủ
Hoa Kỳ ñiều tra trong vòng 3 năm về việc vi phạm những quy chế trong xuất khẩu phần mềm
mật mã. Quá trình ñiều tra ñã ñược kết thúc một cách ñột ngột. Zimmerman cũng từng tuyên bố
rằng sở dĩ chính phủ Hoa Kỳ kết thúc ñiều tra là vì họ ñã tìm ra cách phá vỡ PGP trong thời kỳ
ñó.
Từ những lập luận ở trên, có thể khẳng ñịnh tương ñối chắc chắn rằng tại thời ñiểm hiện tại chỉ
những cơ quan thuộc về chính phủ mới có ñủ những nguồn lực cần thiết ñể có thể phá vỡ những
thông ñiệp PGP. ðối với tấn công phân tích mật mã từ phía cá nhân thì PGP vẫn tương ñối an
toàn.
IV. OpenPGP và các phần mềm dựa trên PGP
Do tầm ảnh hưởng lớn của PGP trên phạm vi thế giới (ñược xem là hệ thống mật mã chất lượng
cao ñược sử dụng nhiều nhất), rất nhiều nhà phát triển muốn các phần mềm của họ làm việc
ñược với PGP 5. ðội ngũ phát triển PGP ñã thuyết phục Zimmermann và ñội ngũ lãnh ñạo của
PGP Inc. rằng một tiêu chuẩn mở cho PGP là ñiều cực kỳ quan trọng ñối với công ty cũng như
cộng ñồng sử dụng mật mã. Ngay từ năm 1997 ñã có một hệ thống tuân thủ theo các tiêu chuẩn
của PGP của một công ty Bỉ tên là Veridis (lúc ñó có tên là Highware) với bản quyền PGP 2
nhận ñược từ Zimmermann.
Vì vậy vào tháng 7 năm 1997, PGP Inc. ñề xuất với IETF về một tiêu chuẩn mở có tên là
OpenPGP. PGP Inc. cho phép IETF quyền sử dụng tên OpenPGP cho tiêu chuẩn cũng như các
chương trình tuân theo tiêu chuẩn mới này. IETF chấp thuận ñề xuất và thành lập nhóm làm việc
về OpenPGP.
Hiện nay, OpenPGP là một tiêu chuẩn Internet và ñược quy ñịnh tại RFC 2440 (tháng 7 năm
1998). OpenPGP vẫn ñang trong giai ñoạn phát triển và quy ñịnh tiếp theo của RFC 2440 ñang
ñược nhóm làm việc tiếp tục hoàn thiện (vào thời ñiểm tháng 1 năm 2006).
Quỹ phát triển phần mềm tự do (Free Software Foundation) cũng phát triển một chương trình
tuân theo OpenPGP có tên là GNU Privacy Guard (GnuPG). GnuPG ñược phân phối miễn phí
cùng với mã nguồn theo giấy phép GPL. Ưu ñiểm của việc sử dụng GnuPG so với PGP (tuy
GnuPG chưa có giao diện GUI cho Windows) là nó luôn ñược cung cấp miễn phí theo giấy phép
GPL. ðiều này ñặc biệt quan trọng nếu người sử dụng muốn giải mã những tài liệu mã hóa tại
thời ñiểm hiện nay trong một tương lai xa. ðiều tương tự không ñúng với PGP vì không có gì
ñảm bảo PGP sẽ ñược cung cấp miễn phí trong tương lai. Trên thực tế, ñối với PGP 9 thì phí bản
quyền ñã tăng ít nhất cho những người sử dụng PGP Personal; hem vào ñó, lịch sử phức tạp
của bản quyền PGP cũng gây ra nhiều lo lắng.
Ngoài ra, nhiều nhà cung cấp khác cũng phát triển các phần mềm dựa trên OpenPGP.
Các phiên bản PGP xuất hiện sau khi có tiêu chuẩn vẫn tuân theo hoặc hỗ trợ OpenPGP.
ðề tài ACNS Lớp ANM 31
GVHD: Võ Đỗ Thắng Page 25
Trung tâm ñào tạo quản trị & an ninh mạng ATHENA www.athena.edu.vn
Lịch sử các phiên bản của PGP Corp như sau:
•
2002
o
PGP 7.2 cho Mac OS 9.
o
PGP Personal và PGP Freeware.
o
PGP 8.0 cho Macintosh và Windows.
o
PGP Corporation công bố mã nguồn.
•
2003
o
PGP Desktop 8.0.1DE cho Windows tiếng ðức.
o
PGP Desktop 8.0.2.
o
PGP Desktop 8.0.3 cho Macintosh và Windows.
o
Công bố và ñóng gói PGP Universal INFO, một dòng sản phẩm mới.
o
PGP Universal 1.1 (30 tháng 12).
•
2004
o
PGP Universal 1.2.
o
PGP Desktop 8.1.
o
PGP Command Line 8.5.
o
PGP Corporation và Symantec ñưa ra giải pháp an ninh thư ñiện tử tích hợp PGP
Universal cho doanh nghiệp.
o
PGP Software Development Kit (SDK) nhận ñược FIPS 140-2 Level 1 từ NIST.
•
2005
o
PGP Universal 2.0 và PGP Desktop 9.0 cũng như dịch vụ PGP Global Directory.
o
“Tiger” cho Mac OS X 10.4 .
o
Nâng cấp PGP 9.0.1 Freeware thành bản ñầy ñủ tính năng dưới dạng phần mềm
dùng thử 30 ngày.
o
PGP Whole Disk Encryption ñược chính thức phát hành như một sản phẩm ñộc
lập
o
PGP 9.0.2 với phần cập nhật cho bản chuyển mã quốc tế và bản ñịa hóa tiếng
ðức.
o
PGP 9.0.2 với phần cập nhật cho bản ñịa hóa tiếng Nhật.
V. Sự tương thích giữa các phiên bản PGP
Các vấn ñề về bản quyền và chính sách xuất khẩu ñã gây ra một số vấn ñề tương thích giữa các
phiên bản PGP. Tuy nhiên từ khi OpenPGP ñược chấp thuận và từ khi Tập ñoàn PGP ñược thành
lập (2002) thì tình trạng nói trên dã ñược cải thiện ñáng kể.
OpenPGP quy ñịnh các cơ chế thương lượng giữa các chương trình PGP ở các phía của ñường
truyền cũng như thuật toán mã hóa ñược sử dụng và các tính năng bổ sung khác từ phiên bản
PGP 2.x. Tất cả các chương trình tuân theo PGP ñều bắt buộc phải thực hiện những quy ñịnh
này. Vì vậy, không tồn tại những vấn ñề tương thích lớn giữa các phiên bản PGP, bất kể nó ñược
lập trình từ ñâu: PGP Corp, McAfee, Gnu/FSF (ie, GPG), Hushmail, Veridis, Articsoft, Forum…