it-swarm-vi.com

PGP khác với S / MIME như thế nào?

S/MIME có phải là một hệ thống trừu tượng hóa cho mã hóa loại MIME chung, trong khi PGP có nhiều hơn cho email không? Tại sao tôi muốn chọn cái này hơn cái kia, hoặc tôi có thể sử dụng cả hai cùng một lúc?

73
Tyler Gillies

Tóm tắt: S/MIME và PGP đều cung cấp "gửi email an toàn" nhưng sử dụng mã hóa, định dạng, công cụ người dùng và mô hình phân phối khóa riêng biệt.


S/MIME xây dựng hơn MIME CMS . MIME là một cách tiêu chuẩn để đưa dữ liệu tùy ý vào email, với một "loại" (một dấu hiệu rõ ràng về ý nghĩa của dữ liệu) và các quy tắc mã hóa và các chi tiết tương tác khác. CMS có nghĩa là "Cú pháp tin nhắn mật mã": nó là định dạng nhị phân để mã hóa và ký dữ liệu. CMS dựa vào chứng chỉ X.509 để phân phối khóa công khai. X.509 được thiết kế để hỗ trợ PKI phân cấp từ trên xuống: một số lượng nhỏ chứng chỉ "cơ quan chứng nhận gốc" (nghĩa là ký) cho nhiều người dùng (hoặc có thể là CA trung gian); chứng chỉ người dùng chứa tên của anh ấy (trong ngữ cảnh email, địa chỉ email của anh ấy) và khóa công khai của anh ấy và được ký bởi CA. Ai đó muốn gửi email đến Bob sẽ sử dụng chứng chỉ của Bob để lấy khóa công khai của anh ấy (cần thiết để mã hóa email, để chỉ Bob mới có thể đọc được); xác minh chữ ký trên chứng chỉ của Bob là một cách để đảm bảo rằng ràng buộc là chính hãng, tức là đây thực sự là khóa công khai của Bob, không phải khóa công khai của người khác.

PGP thực sự là một triển khai của OpenPGP tiêu chuẩn (về mặt lịch sử, OpenPGP được định nghĩa là một cách để chuẩn hóa những gì đã tồn tại PGP phần mềm đã làm, nhưng bây giờ có các triển khai khác, đặc biệt là mã nguồn mở miễn phí GnuPG ). OpenPGP định nghĩa các phương thức mã hóa của riêng nó (có chức năng tương tự như CMS) và các định dạng mã hóa, đặc biệt là một lớp mã hóa có tên là "ASCII Armor" cho phép dữ liệu nhị phân di chuyển vô định trong email (nhưng bạn cũng có thể trộn MIME và OpenPGP ). Để phân phối khóa công khai, OpenPGP dựa vào Web of Trust : bạn có thể xem đó là một PKI phi tập trung trong đó mọi người đều là một CA tiềm năng. Nền tảng bảo mật của WoT là dự phòng: bạn có thể tin tưởng vào khóa công khai vì nó đã được ký bởi many mọi người (ý tưởng là nếu kẻ tấn công "không thể đánh lừa mọi người trong một thời gian dài ").

Về mặt lý thuyết , trong bối cảnh doanh nghiệp, WoT không hoạt động tốt; PKI phân cấp X.509 phù hợp hơn, bởi vì nó có thể được tạo ra để phù hợp với cấu trúc quyết định của các công ty được hình dung, trong khi WoT phụ thuộc vào nhân viên đưa ra quyết định chính sách bảo mật của riêng họ.

Trong thực tế , mặc dù hầu hết các phần mềm gửi email đã triển khai S/MIME (ngay cả Outlook Express đã triển khai S/MIME trong khoảng một thập kỷ), quy trình đăng ký chứng chỉ là phức tạp với các tương tác với các thực thể bên ngoài và yêu cầu một số can thiệp thủ công. Hỗ trợ OpenPGP thường yêu cầu thêm một plugin, nhưng plugin đó đi kèm với tất cả những gì cần thiết để quản lý khóa. Web of Trust không thực sự được sử dụng: mọi người trao đổi khóa công khai của họ và đảm bảo ràng buộc với phương tiện khác (ví dụ: đánh vần "dấu vân tay khóa" - giá trị băm của khóa - qua điện thoại). Sau đó, mọi người keep một bản sao các khóa công khai của những người họ thường trao đổi email với (trong "khóa" PGP), đảm bảo an ninh phù hợp và không gặp rắc rối. Khi tôi cần trao đổi email an toàn với khách hàng, tôi sử dụng PGP theo cách đó.

OpenPGP cũng được sử dụng, dưới dạng định dạng chữ ký, cho các tác vụ không phải email khác, chẳng hạn như các gói phần mềm ký điện tử trong một số bản phân phối Linux (ít nhất là Debian và Ubuntu làm điều đó).

71
Thomas Pornin

Tất cả các IP được thiết kế để tạo điều kiện cho việc truyền dữ liệu an toàn và trơn tru trong mạng. S/MIME và PGP đều là các giao thức được sử dụng để xác thực và bảo mật cho các tin nhắn qua internet. PGP, viết tắt của Pretty Good Privacy, là một chương trình máy tính mã hóa và giải mã dữ liệu cung cấp quyền riêng tư và xác thực mật mã để truyền dữ liệu Internet. PGP được sử dụng rộng rãi để ký, mã hóa và giải mã dữ liệu điện tử để tối đa hóa các vấn đề bảo mật của trao đổi dữ liệu. Giao thức S/MIME đề cập đến Phần mở rộng thư Internet an toàn/đa năng. S/MIME gần đây được bao gồm trong các phiên bản mới nhất của trình duyệt web từ các công ty phần mềm nổi tiếng như Microsoft và Netscape và cũng được nhiều nhà cung cấp trên toàn thế giới chấp nhận. Nó cũng được định hướng như một tiêu chuẩn để mã hóa khóa công khai và ký dữ liệu MIME. S/MIME dựa trên tiêu chuẩn IETF và được xác định phổ biến nhất trong các tài liệu RFC. S/MIME cung cấp xác thực, toàn vẹn thông điệp và không thoái thác các dịch vụ bảo mật dữ liệu và nguồn gốc cho các ứng dụng truyền dữ liệu điện tử.

S/MIME rất giống với PGP và các tiền thân của nó. S/MIME được lấy từ định dạng dữ liệu PKCS # 7 cho các tin nhắn và định dạng X.509v3 cho chứng chỉ. Mã hóa PGP sử dụng kết hợp nối tiếp giữa băm, nén dữ liệu, mật mã khóa đối xứng và mật mã khóa công khai.

Khi sử dụng PGP, một người dùng có khả năng cung cấp trực tiếp khóa chung cho người dùng khác hoặc người dùng thứ hai có thể lấy khóa chung từ người dùng đầu tiên. PGP không bắt buộc chính sách tạo niềm tin và do đó mỗi người dùng được tự do quyết định thời hạn tin cậy trong các khóa nhận được. Với S/MIME, người gửi hoặc người nhận không dựa vào trao đổi khóa trước và chia sẻ một chứng nhận chung mà cả hai có thể dựa vào.

S/MIME được coi là vượt trội so với PGP từ góc độ quản trị vì sức mạnh của nó, hỗ trợ quản lý khóa tập trung thông qua các máy chủ chứng chỉ X.509 và hỗ trợ công nghiệp rộng rãi. PGP phức tạp hơn từ góc độ người dùng cuối, bởi vì nó yêu cầu các trình cắm hoặc tải xuống bổ sung để hoạt động. Giao thức S/MIME cho phép hầu hết các nhà cung cấp gửi và nhận email được mã hóa mà không cần sử dụng phần mềm bổ sung.

S/MIME thuận tiện vì chuyển đổi an toàn tất cả các ứng dụng như bảng tính, đồ họa, thuyết trình, phim, v.v., nhưng PGP được tạo ra để giải quyết các mối quan tâm bảo mật của e-mail hoặc tin nhắn văn bản. S/MIME cũng rất phải chăng về chi phí của nó.

Tóm tắt : Giao thức S/MIME và PGP sử dụng các định dạng khác nhau để trao đổi khóa. PGP phụ thuộc vào mỗi người dùng trao đổi khóa của người dùng S/MIME sử dụng chứng nhận được xác thực phân cấp để trao đổi khóa. PGP được phát triển để giải quyết các vấn đề bảo mật của tin nhắn văn bản thuần túy. Nhưng S/MIME được thiết kế để bảo mật tất cả các loại tệp đính kèm/dữ liệu. Ngày nay, S/MIME được biết là thống trị ngành công nghiệp điện tử an toàn vì nó được tích hợp vào nhiều gói e-mail thương mại. Các sản phẩm S/MIME có sẵn hơn và với giá thấp hơn so với các sản phẩm PGP.

13
nikoo28

Nếu bạn "đọc giữa các dòng" tại các mục wikipedia, bạn có thể đến gần hơn để trả lời. S/MIME :

là một tiêu chuẩn để mã hóa khóa công khai và ký dữ liệu MIME

trong đó MIME là tiêu chuẩn để vận chuyển nhiều hơn văn bản ASCII đơn giản qua hệ thống thư SMTP gốc. Bạn tích hợp S/MIME với các chứng chỉ kỹ thuật số của bạn, đã mua (do đó được đóng dấu và chứng nhận bởi CA) hoặc được sản xuất tại địa phương (do đó tự ký).

Đối với PGP, tôi sẽ mô tả nó như một ứng dụng mã hóa/ký kết bên ngoài có thể tích hợp trong suốt với ứng dụng email của bạn và cung cấp các dịch vụ đó. Mỗi người dùng có được cặp khóa công khai riêng tư của mình và sử dụng khóa này cho tất cả các hoạt động.

Như được chỉ ra bởi @chris, các mô hình ủy thác mà mỗi mô hình hoạt động hơi khác nhau nhưng IMHO điều này không làm cho cái này hoặc cái kia kém an toàn hơn.

Trong thực tế, hai giải pháp có ít nhiều khóa có thể hoán đổi cho nhau. Bạn có thể sử dụng cặp khóa được cấp PGP với S/MIME của ứng dụng thư của bạn và ngược lại (tôi nghĩ). Ai đó làm ơn sửa cho tôi cái cuối cùng này ...

Yếu tố quyết định chính đối với tôi sẽ là chi phí:

[~ # ~] pgp [~ # ~]: giải pháp phần mềm phù hợp với nhu cầu của bạn + chi phí gia hạn phần mềm + chi phí quản trị cho các trao đổi khóa

so với:

S/MIME: chi phí quản lý khi chạy máy chủ chứng chỉ cho certs được sản xuất tại địa phương + chi phí quản lý cho phân phối khóa công khai OR chi phí mua certs từ phí CA + phí gia hạn

Đừng quên rằng hầu hết các ứng dụng email đã hỗ trợ S/MIME "ngoài luồng", giảm chi phí ban đầu trong trường hợp này.

8
George

Một vài năm sau, nhưng tôi tin rằng nó nên quan trọng. Ở châu Âu, chữ ký số phải sử dụng CMS vì các phần mở rộng được xác định (CAdES, XAdES, v.v.).

Do đó, PGP là vô dụng trong lĩnh vực đó và S/MIME là cách duy nhất để đi.

0
Michael Chourdakis

Thêm một số quan điểm từ năm 2018: efail đã xảy ra. Nó bổ sung một số quan điểm thú vị, vì lúc đầu cả OpenPGP và S/MIME đều dễ bị tấn công. Nhưng OpenPGP hầu hết đã được sửa do tất cả các triển khai quan trọng làm cho MDC (kiểm tra phát hiện sửa đổi) là bắt buộc. Vấn đề đối với S/MIME là, không có gì giống như MDC. Do đó, nó vẫn dễ bị tổn thương. Từ những gì tôi hiểu đó là một đối số quan trọng để ủng hộ OpenPGP phi tập trung hơn S/MIME.

0
foss

S/MIME phụ thuộc vào SSL PKI: bạn có chứng chỉ SSL với khóa chung của mình và thực tế là nó được ký bởi cơ quan chứng nhận (CA) "chứng minh" đó thực sự là khóa của bạn. Mặt khác, PGP không có PKI: bạn kiểm tra xem khóa công khai của một người có thực sự thuộc về anh ta hay không khi anh ta nói vậy trong khi hiển thị có hộ chiếu (bên ký khóa) hoặc tin tưởng họ khóa vì nhiều người khác đã thực hiện kiểm tra và ký tên này chìa khóa của anh ấy.

Với những phát triển gần đây về bảo mật CA, tôi muốn nói có một lý do rất lớn để không tin tưởng S/MIME :-) Trong khi mô hình "web tin cậy" của PGP không đơn giản như S/MIME, nó cung cấp một an ninh hơn rất nhiều nếu bạn nỗ lực.

Cả hai hệ thống cuối cùng đều sử dụng mã hóa bất đối xứng, chúng thực sự khác nhau về cách tin tưởng vào khóa công khai được thiết lập.

0
chris