Bước tới nội dung

Pretty Good Privacy

Bách khoa toàn thư mở Wikipedia

[1]Mật mã hóa PGP® (Pretty Good Privacy®- Riêng tư tốt đẹp) 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).

Ứng dụng của PGP

[sửa | sửa mã nguồn]

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ả hai 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.

Hoạt động của PGP

[sửa | sửa mã nguồn]

PGP sử dụng kết hợp mật mã hóa khóa công khaithuật toán khóa đối xứng cộng thêm 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 hàng (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ả hai 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 văn bản đó rồi tạo ra chữ ký số với khóa bí mật của người gửi và gửi cả văn bản và chữ ký số đến người nhận. 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ị băm 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 tra 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ươ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 cặp khóa công khai và khóa 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.

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ợ thêm 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.

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ỳ đó.[cần dẫn nguồn]

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.

PGP thời kỳ đầu

[sửa | sửa mã nguồn]

Phil Zimmermann tạo ra phiên bản PGP đầu tiên vào năm 1991. Vào thời điểm này, ông ta đã là một nhà hoạt động chống năng lượng hạt nhân và mục đích tạo PGP là để phục vụ những người có mục tiêu tương tự có thể sử dụng các hệ thống bảng thông báo điện tử (bulletin board) và lưu trữ tệp một cách an toàn. Đối với mục tiêu sử dụng phi thương mại, PGP hoàn toàn miễn phí và toàn bộ mã nguồn được bao gồm trong tất cả sản phẩm. PGP dễ dàng thâm nhập vào Usenet và từ đó vào Internet.

Cái tên "Pretty Good Privacy" (tạm dịch: Bí mật tương đối tốt) được đặt theo tên của một cửa hiệu tạp hóa ở thành phố giả tưởng Lake Wobegon trong chương trình trên radio của tác giả Garrison Keillor. Trong chương trình, tên của hiệu tạp hóa là "Ralph's Pretty Good Grocery".

Ngay từ khi mới xuất hiện, PGP đã vướng vào chính sách hạn chế xuất khẩu phần mềm mật mã của chính phủ Hoa Kỳ.

Sự phổ biến của PGP thời kỳ đầu

[sửa | sửa mã nguồn]

Ngay sau khi xuất hiện, PGP đã thu hút được khá nhiều người sử dụng trên Internet. Những người sử dụng và ủng hộ bao gồm những người bất đồng quan điểm tại những nước chuyên chế, những người bảo vệ quyền tự do cá nhân và những người ủng hộ tự do thông tin (cypherpunk).

Không lâu sau khi ra đời, PGP đã được sử dụng bên ngoài Hoa Kỳ và vào tháng 2 năm 1993, Zimmermann trở thành mục tiêu của một cuộc điều tra của chính phủ Hoa Kỳ về việc xuất khẩu "vũ khí" không có giấy phép. Tại thời điểm đó, các hệ thống mật mã với khóa lớn hơn 40 bít được xếp hạng cùng với vũ khí trong khi PGP chưa bao giờ sử dụng khóa có độ dài nhỏ hơn 128 bít. Mức hình phạt cho tội nói trên khá nặng nhưng cuộc điều tra đã đột ngột dừng lại mà không có một lời kết tội nào.

Chính sách hạn chế xuất khẩu mật mã vẫn còn hiệu lực nhưng đã được nới lỏng rất nhiều kể từ thập kỷ 1990. Từ năm 2000 trở đi thì việc tuân thủ các chính sách này không còn là điều khó khăn nữa. PGP không còn được xếp là vũ khí không được phép xuất khẩu và được phép xuất khẩu tới bất kỳ nơi nào nếu không bị cấm tại nơi đó.

Bằng sáng chế

[sửa | sửa mã nguồn]

Các phiên bản PGP đầu tiên còn gặp phải vấn đề về bằng sáng chế. Phiên bản đầu tiên sử dụng một thuật toán mã hóa khóa đối xứng do chính Zimmermann thiết kế (có tên là Bass-O-Matic). Ngay sau đó, ông ta thấy được thuật toán này không đảm bảo an ninh và thay thế bằng IDEA. Cả hai thuật toán RSAIDEA đều đã được cấp bằng sáng chế và đòi hỏi có bản quyền để sử dụng. Đã có những tranh cãi khá gay gắt về việc Zimmermann sử dụng RSA và IDEA trong phần mềm của mình. Zimmermann tuyên bố rằng RSA Data Security (nay là RSA Security) đã cho phép (bằng lời nói) đối với việc sử dụng cho các mục đích phi thương mại nhưng RSA không thừa nhận việc này. Cuộc điều tra đã bắt đầu từ đơn kiện của RSADSI tới hải quan Hoa Kỳ về việc sử dụng thuật toán RSA trong PGP.

Vấn đề còn trở nên phức tạp hơn do tình trạng về bản quyền khác nhau ở các quốc gia. RSA chỉ được cấp bằng sáng chế tại Hoa Kỳ; những người nắm bản quyền IDEA tỏ ra rộng rãi hơn so với RSA. Thêm vào đó, bản quyền của thuật toán RSA được kiểm soát một phần bởi MIT thông qua RSADSI (RSA Data Security, Inc. Lưu trữ 2009-01-06 tại Wayback Machine). MIT không phải đối PGP nhưng gặp khó khăn do thái độ thù địch của RSADSI đối với các sử dụng phi thương mại của RSA.

Tranh chấp về bản quyền RSA được giải quyết bằng việc phát triển PGP theo hai nhánh:

  • Phiên bản sử dụng trong Hoa Kỳ: sử dụng thư viện RSAREF (shareware của RSA).
  • Phiên bản quốc tế: PGP-i, sử dụng mã RSA nguyên gốc của Zimmermann. Điều này cũng giúp tránh những khó khăn với quy chế hạn chế xuất khẩu phần mềm mật mã. PGP-i được duy trì và phân phối bởi Ståle SchumacherNa Uy.

Phiên bản dành cho Hoa Kỳ được phân phối bởi nhiều nhà cung cấp, trong đó bao gồm cả MIT trên Internet, BBS, và các cá nhân và nhóm người dùng. Ít nhất là trên website của MIT, để nhận được PGP thì địa chỉ email phải thuộc về Hoa Kỳ hoặc Canada. Bên ngoài Hoa Kỳ, người sử dụng download từ trang web của Schumacher: pgpi.org.

Các phát triển sau này

[sửa | sửa mã nguồn]

Ngay trong thời gian tranh chấp, đội ngũ phát triển của Zimmermann tiếp tục đưa ra phiên bản PGP 3. Phiên bản này có nhiều cải thiện về an ninh, trong đó cấu trúc mới của chứng thực đã được sửa vài lỗi nhỏ của phiên bản 2.x cũng như cho phép các khóa khác nhau cho quá trình mã hóa và ký xác nhận. Bên cạnh đó, xuất phát từ bài học về bản quyền và xuất khẩu, PGP 3 đã loại bỏ hoàn toàn bản quyền. PGP 3 sử dụng thuật toán mật mã khóa đối xứng CAST-128 (còn gọi là CAST5) và thuật toán mật mã hóa khóa bất đối xứng DSAElGamal. Các thuật toán này đều không bị ràng buộc bởi bản quyền.

PGP thương mại

[sửa | sửa mã nguồn]

Như đã nêu ở phần trước, ngay từ khi xuất hiện, PGP đã gặp phải rắc rối trong vấn đề xuất khẩu ra ngoài Hoa Kỳ. Sau khi cuộc điều tra của chính phủ kết thúc vào năm 1996, Zimmermann và các cộng sự của mình khởi sự một công ty để phát triển các phiên bản mới của PGP. Công ty này được sáp nhập với công ty Viacrypt (công ty đã mua bản quyền thương mại của PGP cũng như có bản quyền sử dụng RSA từ RSADSI) và đổi tên thành tập đoàn PGP. Công ty mới thành lập này bắt đầu phát triển các phiên bản PGP mới dựa trên PGP 3. Khác với PGP 2 là phần mềm dựa trên dòng lệnh (command line), PGP được thiết kế từ đầu là một thư viện hàm cho phép người dùng có thể làm việc trên dòng lệnh cũng như thông qua môi trường đồ họa (GUI). Thỏa thuận ban đầu giữa Viacrypt và Zimmermann là Viacrypt tạo ra các phiên bản chẵn còn Zimmermann các phiên bản lẻ. Trên cơ sở đó, Viacrypt tạo ra phiên bản PGP 4 dựa trên PGP 2. Để tránh nhầm lẫn về việc PGP 3 là phiên bản tiền thân của PGP 4 thì PGP 3 được đổi tên là PGP 5 và được tung ra vào tháng 5 năm 1997.

Ngay tại PGP Inc., vẫn có mối lo ngại về vấn đề bản quyền. RSADSI đưa ra phản đối về bản quyền sử dụng RSA đối với công ty mới thành lập. PGP Inc sử dụng một tiêu chuẩn nội bộ gọi là "Unencumbered PGP": không sử dụng bất kỳ một thuật toán nào bị ràng buộc bởi bản quyền.

OpenPGP và các phần mềm dựa trên PGP

[sửa | sửa mã nguồn]

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; thêm 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.

Sáp nhập với Network Associates

[sửa | sửa mã nguồn]

Vào tháng 12 năm 1997, PGP Inc. được Network Associates, Inc. (NAI) mua lại. Zimmermann và đội ngũ phát triển PGP trở thành nhân viên của NAI. NAI tiếp tục việc đi tiên phong trong việc xuất khẩu với chính sách xuất bản phần mềm (công ty đầu tiên có chính sách xuất khẩu bằng việc công bố mã nguồn). Dưới sự bảo hộ của NAI, đội ngũ PGP đã bổ sung các tính năng như mã hóa ổ đĩa, tường lửa, phát hiện xâm nhập và IPsec VPN vào họ các sản phẩm PGP. Năm 2000, sau khi chính sách xuất khẩu phần mềm được thay đổi và không còn đòi hỏi việc công bố mã nguồn, NAI ngừng xuất bản mã nguồn của mình bất chấp sự phản đối của đội ngũ phát triển PGP. Việc này đã gây ra sự kinh ngạc cho người sử dụng PGP trên toàn thế giới.

Đầu năm 2001, Zimmermann bỏ việc tại NAI. Sau đó, ông ta giữ vai trò lãnh đạo về mật mã cho Hush Communications, một nhà cung cấp dịch vụ thư điện tử dựa trên OpenPGP. Ông ta cũng làm việc với Verisdis và một số công ty khác.

Tháng 10, 2001, NAI tuyên bố bán các tài sản liên quan tới PGP và ngừng công việc phát triển PGP. Phần duy nhất được giữ lại là PGP E-Business Server (nguyên gốc là PGP Commandline). Tháng 2 năm 2002, NAI ngừng mọi hỗ trợ cho PGP trừ phần được giữ lại nói trên. NAI (giờ đây là McAfee) tiếp tục bán và hỗ trợ sản phẩm này dưới tên là McAfee E-Business Server.

Tình trạng hiện tại

[sửa | sửa mã nguồn]

Tháng 8 năm 2002, một số thành viên cũ của đội ngũ phát triển PGP thành lập Tập đoàn PGP (PGP Corporation) và mua lại các tài sản liên quan tới PGP từ NAI. PGP Corp tiếp tục hỗ trợ những người sử dụng PGP và tôn trọng các hợp đồng hỗ trợ còn hiệu lực. Zimmermann trở thành cố vấn đặc biệt và nhà tư vấn cho PGP Corp đồng thời vẫn tiếp tục các mối quan hệ tại Hush Communications và Veridis cũng như điều hành công ty tư vấn riêng của mình.

NAI vẫn giữ bản quyền phiên bản dòng lệnh của PGP và tiếp tục bán ra dưới tên là "McAfee E-Business Server." Cho tới trước tháng 1 năm 2004, theo thỏa thuận đã ký với NAI, PGP Corp không được quyền cung cấp phiên bản dòng lệnh của PGP. Tới giữa năm 2004, PGP Corp bắt đầu cung cấp sản phẩm này.

Với sự hợp tác của Zimmermann, Veridis phát triển và bán một phiên bản dòng lệnh tương thích với OpenPGP có tên là Filecrypt. Filecrypt và GnuPG được cung cấp đầy đủ mã nguồn cũng như cung cấp các phiên bản trước đó trên nhiều nền tảng khác nhau.

Sau khi mua lại tài sản liên quan tới PGP từ NAI (2002), PGP Corp cung cấp hỗ trợ kỹ thuật về PGP trên toàn thế giới.

Lịch sử các phiên bản của PGP Corp như sau:

  • 2002
    • PGP 7.2 cho Mac OS 9.
    • PGP Personal và PGP Freeware.
    • PGP 8.0 cho Macintosh và Windows.
    • PGP Corporation công bố mã nguồn.
  • 2003
    • PGP Desktop 8.0.1DE cho Windows tiếng Đức.
    • PGP Desktop 8.0.2.
    • PGP Desktop 8.0.3 cho Macintosh và Windows.
    • Công bố và đóng gói PGP Universal INFO Lưu trữ 2006-06-13 tại Wayback Machine, một dòng sản phẩm mới.
    • PGP Universal 1.1 (30 tháng 12).
  • 2004
    • PGP Universal 1.2.
    • PGP Desktop 8.1.
    • PGP Command Line 8.5.
    • 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.
    • PGP Software Development Kit (SDK) nhận được FIPS 140-2 Level 1 từ NIST.
  • 2005
    • PGP Universal 2.0 và PGP Desktop 9.0 cũng như dịch vụ PGP Global Directory.
    • "Tiger" cho Mac OS X 10.4.
    • 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.
    • PGP Whole Disk Encryption được chính thức phát hành như một sản phẩm độc lập
    • 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.
    • PGP 9.0.2 với phần cập nhật cho bản địa hóa tiếng Nhật.

Sự tương thích giữa các phiên bản PGP

[sửa | sửa mã nguồn]

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... Các lập trình viên của các chương trình này cũng có mối quan hệ nhất định với nhau. Họ coi những bất tương thích là các lỗi phần mềm và sửa mỗi khi phát hiện ra.

Vấn đề tương thích của PGP 2.x

[sửa | sửa mã nguồn]

Khả năng tương thích của các phiên bản PGP gần đây với PGP 2.x có phần phức tạp hơn. PGP 2 đã sử dụng các thuật toán có bản quyền dưới nhiều điều khoản khác nhau. Bản quyền của RSA đã hết hiệu lực từ năm 2000 nhưng bản quyền của IDEA chỉ hết hiệu lực vào 2010-2011. Một số phiên bản PGP gần đây cung cấp khả năng tương thích với PGP 2,x (các phiên bản của PGP Corp và Hushmail) nhưng các phiên bản của các nhà cung cấp khác thì không tương thích. Đáng kể nhất là GnuPG không đảm bảo tính năng này (IDEA). Để có thể làm việc với PGP 2.x thì phải có môđun bổ sung (plugin) cho GnuPG. Tuy nhiên người dùng phải tự xây dựng môđun này. Để sử dụng IDEA cho các mục đích thương mại thì người dùng cần phải có giấy phép trong khi họ có thể sử dụng miễn phí cho các mục đích khác.

Vào thời điểm năm 2004, cách tốt nhất để tránh các vấn đề không tương thích với PGP 2.x là không sử dụng chúng và sử dụng các phiên bản tuân theo chuẩn OpenPGP. Một số vấn đề nhỏ về an ninh của PGP 2.x đã được phát hiện và một số đã được sửa. Tuy nhiên một số trong các giao thức cơ bản dùng trong PGP 2.x có những điểm yếu có thể bị tấn công và chúng vẫn chưa được sửa. Các lỗi này không xuất hiện trong tiêu chuẩn OpenPGP cũng như các bản thực hiện tiêu chuẩn. Mặc dù các bản PGP 2.x đã vá lỗi không có vấn đề nghiêm trọng nào nhưng nhóm làm việc của IETF vẫn không tán thành việc tương thích với OpenPGP. Ståle Schumacher Ytteborg vẫn duy trì trang web pgpi.org trong đó cung cấp hầu hết các phiên bản PGP kể từ 2.x.

Do nguyên nhân lịch sử, giữa các phiên bản PGP 2.x tồn tại vấn đề không tương thích một cách chủ ý (do bản quyền RSA). Một phần trong những nỗ lực giải quyết điều này là yêu cầu của phiên bản 2.6 phải tương thích với các phiên bản 2.x trước nó. Điều này được thực hiện bằng cách nâng cấp cấu trúc dữ liệu bên trong và sử dụng bản thực hiện RSAREF của RSA. Mã nguồn của PGP thực hiện thuật toán RSA có thể được sử dụng hợp pháp bên ngoài Hoa Kỳ (chẳng hạn PGP 2.6.3i). Bộ mã này có tốc độ thực hiện thuật toán nhanh gấp đôi so với mã của RSAREF.

Trong thời điểm đó, tại Hoa Kỳ, đội ngũ phát triển PGP đã viết PGP 3 (sau này đổi tên thành PGP 5, xem phần trên) và tiêu chuẩn OpenPGP đã được chấp nhận. Các khó khăn về bản quyền đã buộc họ phải loại bỏ RSAnhưng vào năm 2000 (khi bản quyền hết hạn) thì PGP và OpenPGP tiếp tục hỗ trợ thuật toán này. Và từ đó không tồn tại các phiên bản cho Hoa Kỳ và quốc tế riêng biệt nữa.

Tóm lại, trong thời điểm hiện nay, người sử dụng nên dùng các phiên bản mới tuân theo OpenPGP. Sự hợp tác giữa các nhà phát triển đã giải quyết phần lớn các vấn đề không tương thích giữa chúng.

So sánh các đặc tính

[sửa | sửa mã nguồn]

So sánh với RFC 1991 (PGP 2.x), OpenPGP đưa ra nhiều tính năng mới. Nó hỗ trợ khả năng tương thích ngược có nghĩa các phiên bản thực hiện OpenPGP có thể đọc và sử dụng các khóa, chứng thực của các phiên bản trước đó. Tuy nhiên vấn đề này bị phức tạp hóa do các nguyên nhân đã nêu ở trên.

PGP 2.x không có khả năng tương thích xuôi vì nó không thể sử dụng các văn bản hay khóa tuân theo OpenPGP.

Trong bảng sau, các thuật toán bắt buộc được đánh dấu bằng dấu *.

Đặc tính PGP 2.x (RFC 1991) OpenPGP (RFC 2440)
Định dạng khóa Khóa V3 Khóa V4
Thuật toán khóa bất đối xứng *RSA (mã hóa & chữ ký) RSA (mã hóa & chữ ký)
*DSA (chữ ký)
*Elgamal (mã hóa)
Thuật toán khóa đối xứng *IDEA IDEA
*Triple-DES
CAST5
Blowfish
AES 128, 192, 256
Twofish
Hàm băm mật mã *MD5 MD5
*SHA-1
RIPEMD-160
SHA-256
SHA-384
SHA-512
Thuật toán nén ZIP ZIP
gzip
bzip2

Các tính năng bổ sung của khóa V4 so với V3 của OpenPGP:

  • Khóa công khai có thể có các khóa con bên cạnh khóa chính, cho phép sử dụng các khóa khác nhau cho mã hóa và chữ ký
  • Hỗ trợ nhiều thuật toán khác nhau để đảm bảo khả năng tương thích:
    • Một số thuật toán là bắt buộc
    • Khóa công khai của người nhận có thể xác định thứ tự ưu tiên của các thuật toán
  • Mô hình mạng lưới tín nhiệm được mở rộng với khả năng hỗ trợ tính năng chữ ký được tin tưởng (chữ ký này không những được tin mà còn được quyền xác nhận những chữ ký khác), cho phép thực hiện một dạng của nhà cung cấp chứng thực số.
  • Một chứng thực số có thể quy định một khóa khác có khả năng thu hồi nó.
  • Một số lỗi an ninh nhỏ trong mô tả ID và định dạng được sửa.

(V3 và V4 chỉ đến hệ thống phiên bản sử dụng bên trong định dạng dữ liệu chứ không phải phiên bản phần mềm PGP)

Các phần mềm thực hiện

[sửa | sửa mã nguồn]

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ a b “United States v. Scarfo, Criminal No. 00-404 (D.N.J.)”. ngày 28 tháng 2 năm 2002. Truy cập ngày 8 tháng 9 năm 2006.

Liên kết ngoài

[sửa | sửa mã nguồn]