So sánh giữa Let's Encrypt, Tổ chức phát hành chứng chỉ thương mại và cá nhân và chứng chỉ SSL tự ký
Việc thúc đẩy ngày càng nhiều lưu lượng truy cập web được bảo mật bằng mã hóa SSL nghĩa là ngày càng nhiều dịch vụ và trường hợp sử dụng cần một giải pháp để có được các certificate thích hợp. Cho dù đó là trang web công cộng, lưu lượng truy cập mạng nội bộ hay server dàn cho ứng dụng web của bạn, bạn cần certificate để bảo vệ dữ liệu của bạn và đáp ứng các kỳ vọng bảo mật hiện đại của user .Các lợi ích chính của kết nối SSL xoay quanh quyền riêng tư và tính toàn vẹn của dữ liệu . Các kết nối là riêng tư vì mã hóa ngăn chặn việc nghe trộm. Tính toàn vẹn của dữ liệu được đảm bảo bằng cách xác minh bằng mật mã rằng bạn đang kết nối với đúng server (chứ không phải server mạo danh) và bằng cách xác minh các thư riêng lẻ không bị giả mạo khi chuyển tiếp.
Có một số cách khác nhau để bạn có thể nhận được certificate SSL và tùy thuộc vào ngân sách, đối tượng và một số yếu tố khác, bạn có thể chọn giữa tổ chức phát hành certificate thương mại, tổ chức phát hành certificate tự động và miễn phí mới, certificate tự ký và riêng cơ quan cấp certificate riêng. Hãy cùng xem qua so sánh các tùy chọn này và thảo luận khi nào tốt nhất nên sử dụng từng tùy chọn.
Bảng chú giải
Trước khi bắt đầu, ta sẽ xác định một số thuật ngữ phổ biến được sử dụng khi thảo luận về bảo mật SSL:
Bảo mật lớp truyền tải (TLS)
Bảo mật lớp truyền tải là một giao thức bảo mật mới thay thế cho lớp cổng bảo mật (SSL). Mặc dù có nhiều khả năng một kết nối được mã hóa hiện đại đang sử dụng TLS, nhưng tên SSL đã bị mắc kẹt trong ngôn ngữ phổ biến và là những gì ta sẽ sử dụng ở đây.
Chứng chỉ
Trong bài viết này, ta sẽ chỉ đề cập đến chứng chỉ server SSL. Chứng chỉ server được trình bày bởi một web server khi nào một kết nối SSL mới được yêu cầu. Chúng chứa tên của server lưu trữ mà certificate được cấp (phải trùng với server mà bạn đang cố gắng kết nối) và được Tổ chức phát hành certificate ký để cài đặt sự tin cậy.
Tổ chức phát hành certificate (CA)
Cơ quan cấp certificate xác minh thông tin chi tiết về certificate request SSL của chủ sở hữu domain , sau đó - nếu mọi thứ đã kiểm tra - cấp và ký certificate server . Các trình duyệt và hệ điều hành duy trì một danh sách các tổ chức phát hành certificate tin cậy . Nếu certificate server được ký bởi một trong những CA tin cậy này, certificate đó cũng sẽ được tin cậy.
Xác thực domain (DV)
Chứng chỉ đã được xác thực domain sẽ được cấp cho ai đó đã chứng minh được họ kiểm soát domain được yêu cầu cho certificate . Bằng chứng này thường có dạng phân phát mã thông báo duy nhất từ web server hoặc bản ghi DNS của bạn, mà CA sẽ kiểm tra trước khi cấp certificate .
Xác thực tổ chức (OV)
Một tổ chức đã xác nhận certificate nghĩa là cơ quan cấp certificate cũng đã xác minh tên và địa chỉ công ty trong database công cộng. Thông tin này được đưa vào certificate và thường chỉ được hiển thị khi user nhấp vào biểu tượng ổ khóa màu xanh lục để điều tra thêm.
Xác thực mở rộng (EV)
Xác thực mở rộng kỹ hơn xác thực domain hoặc tổ chức. Chứng chỉ EV được cấp sau khi kiểm tra không chỉ quyền sở hữu domain mà còn xác minh sự tồn tại và vị trí của pháp nhân certificate request và pháp nhân đó kiểm soát domain đang được xác minh.
Không giống như certificate DV và OV, EV không thể được cấp dưới dạng certificate ký tự đại diện.
Chứng chỉ EV cũng được đối xử đặc biệt trong trình duyệt web. Trong khi các trình duyệt thường biểu thị certificate DV có biểu tượng ổ khóa màu xanh lá cây, thì certificate EV cũng hiển thị một thanh màu xanh lục lớn hơn có chứa tên của tổ chức mà nó được cấp. Điều này nhằm giảm các cuộc tấn công lừa đảo, mặc dù một số nghiên cứu cho thấy rằng user có xu hướng không nhận thấy khi thanh màu xanh lục này bị thiếu.
Chứng chỉ ký tự đại diện
Thay vì được cấp cho một domain cụ thể đủ điều kiện (ví dụ: app.example.com ), certificate ký tự đại diện có hiệu lực cho toàn bộ phạm vi domain phụ. Vì vậy, certificate được cấp cho * .example.com sẽ bao gồm bất kỳ domain phụ nào của example.com, chẳng hạn như app.example.com và database.example.com . Ký tự dấu hoa thị là ký tự đại diện và có thể được thay thế bằng bất kỳ tên server hợp lệ nào.
Danh sách thu hồi certificate (CRL)
Chứng chỉ SSL có thể bao gồm thông tin về cách truy cập danh sách thu hồi certificate . Khách hàng sẽ download và kiểm tra danh sách này đảm bảo rằng certificate chưa bị thu hồi. CRL phần lớn đã được thay thế bằng các bộ trả lời OCSP.
Giao thức trạng thái certificate trực tuyến (OCSP)
Giao thức OCSP là sự thay thế cho CRL, với lợi ích là thời gian thực hơn và yêu cầu ít băng thông hơn. Hoạt động chung tương tự như vậy: client phải truy vấn trình phản hồi OCSP để kiểm tra xem certificate đã bị thu hồi hay chưa.
Tổ chức phát hành certificate thương mại
Cơ quan cấp certificate thương mại cho phép bạn mua certificate DV, OV và EV. Một số cung cấp certificate Miền được xác thực miễn phí với một số hạn chế nhất định (ví dụ: không có ký tự đại diện).
- Quy trình: Quy trình thủ công để cài đặt và gia hạn ban đầu
- Chi phí: khoảng $ 10– $ 1000
- Xác thực: DV, OV và EV
- Tin cậy: Tin cậy theo mặc định trong hầu hết các trình duyệt và hệ điều hành
- Chứng chỉ ký tự đại diện: Có
- Chứng chỉ IP chỉ: Một số sẽ cấp certificate cho các địa chỉ IP công cộng
- Thời gian hết hạn: 1-3 năm
Hầu hết các cơ quan cấp certificate thương mại được tin cậy theo mặc định trong hầu hết các trình duyệt. Quá trình gia hạn thường là thủ công, vì vậy bạn phải lưu ý ngày hết hạn của certificate và tự nhắc mình gia hạn đúng hạn.
CA thương mại theo truyền thống là lựa chọn thực sự duy nhất để lấy certificate được hầu hết các trình duyệt lớn tin cậy. Điều này đã thay đổi với các tổ chức phát hành certificate tự động mới như Let's Encrypt. Tuy nhiên, các CA thương mại là cách duy nhất để có certificate EV và là cách duy nhất để có certificate ký tự đại diện được hầu hết các trình duyệt tự động tin cậy. Chúng cũng là một lựa chọn tốt nếu bạn cần certificate cho một thiết bị không thể chạy ứng dụng Let's Encrypt tự động (do không tương thích phần mềm hoặc có thể là một thiết bị nhúng công suất thấp).
Cơ quan cấp certificate thương mại thường cung cấp tùy chọn các hợp đồng hỗ trợ bổ sung, đảm bảo và chứng nhận, điều này rất quan trọng đối với một số công ty và ngành.
Hãy mã hóa
Let's Encrypt cung cấp một cơ chế tự động để yêu cầu và gia hạn các certificate đã được xác thực domain miễn phí. Họ đã tạo ra một giao thức tiêu chuẩn - ACME - để tương tác với dịch vụ để truy xuất và gia hạn certificate tự động. Ứng dụng khách ACME chính thức được gọi là Certbot , mặc dù có nhiều ứng dụng client thay thế khác.
- Quy trình: Cài đặt và gia hạn ban đầu được tự động hóa. Chỉ cài đặt Apache và Nginx được tự động hóa với ứng dụng client chính thức, nhưng các certificate có thể được download và sử dụng độc lập với bất kỳ phần mềm server cụ thể nào.
- Chi phí: Miễn phí
- Xác thực: chỉ DV
- Mặc định: Được tin cậy theo mặc định trong hầu hết các trình duyệt và hệ điều hành
- Chứng nhận ký tự đại diện: Không ( Dự kiến vào tháng 1 năm 2018 )
- Chứng chỉ IP: Không
- Thời gian hết hạn: 90 ngày
Chứng chỉ Let's Encrypt chỉ tồn tại trong thời gian ngắn để khuyến khích gia hạn tự động và giảm thời gian bất kỳ certificate nào bị xâm phạm có thể bị kẻ tấn công lạm dụng.
Nếu bạn có một server có thể truy cập công cộng và có domain hợp lệ trỏ đến nó, Let's Encrypt có thể là một lựa chọn tốt. Server của Let's Encrypt cần liên hệ với web server của bạn hoặc tìm nạp bản ghi DNS công khai để xác minh bạn kiểm soát domain , vì vậy việc sử dụng nó cho server riêng nằm sau firewall trên mạng local của bạn có thể phức tạp hơn một chút. Tuy nhiên, vẫn có thể sử dụng thử thách ủy quyền dựa trên DNS của Let's Encrypt.
Let's Encrypt sẽ không cung cấp certificate cho một địa chỉ IP trống.
Nếu bạn cần certificate EV hoặc certificate ký tự đại diện, Let's Encrypt không phải là một tùy chọn. Lưu ý Let's Encrypt có thể tạo certificate với tối đa 100 tên server trên đó, vì vậy có thể bạn không thực sự cần ký tự đại diện cho trường hợp sử dụng của bạn , bạn có thể chỉ cần certificate bao gồm tất cả các domain phụ hiện có của bạn .
Tuy nhiên, do giới hạn tốc độ trên API Let's Encrypt, nếu bạn có nhiều domain phụ hoặc domain phụ động có thể được tạo nhanh chóng, Let's Encrypt có thể không phù hợp.
Chứng chỉ tự ký
Có thể sử dụng certificate SSL đã được ký bằng private key của chính nó, bỏ qua hoàn toàn sự cần thiết của tổ chức phát hành certificate . Đây được gọi là certificate tự ký và được đề xuất khá phổ biến khi cài đặt ứng dụng web để thử nghiệm hoặc để sử dụng bởi một số lượng hạn chế user hiểu biết về công nghệ.
- Quy trình: Tạo certificate thủ công, không có cơ chế gia hạn
- Chi phí: Miễn phí
- Xác thực: DV và OV
- Tin cậy: Không có theo mặc định. Mỗi certificate phải được đánh dấu theo cách thủ công là tin cậy , vì không có CA chung nào liên quan
- Chứng chỉ ký tự đại diện: Có
- Chứng chỉ IP: Có, bất kỳ IP nào
- Thời gian hết hạn: Bất kỳ
Các certificate tự ký có thể được thực hiện bằng lệnh openssl
đi kèm với thư viện OpenSSL. Bạn có thể tìm thấy các lệnh chính xác cần thiết và thêm thông tin cơ bản về OpenSSL, trong hướng dẫn của ta OpenSSL Essentials: Làm việc với Chứng chỉ SSL, Khóa riêng tư và CSR .
Vì certificate tự ký không được ký bởi bất kỳ CA tin cậy nào, bạn cần đánh dấu certificate đó là tin cậy theo cách thủ công, một quy trình khác nhau trong mỗi trình duyệt và hệ điều hành. Sau đó, certificate sẽ hoạt động giống như bất kỳ certificate bình thường nào do CA ký.
Chứng chỉ tự ký rất phù hợp để sử dụng một lần khi bạn chỉ cần quản lý thủ công sự tin cậy trên một vài ứng dụng client và đừng bận tâm đến thực tế là không thể thu hồi hoặc gia hạn nó mà không cần thêm nỗ lực thủ công. Điều này thường đủ tốt cho mục đích phát triển và thử nghiệm hoặc cho các ứng dụng web tự lưu trữ mà chỉ một số người sẽ sử dụng.
Tổ chức phát hành certificate riêng
Bạn có thể tạo cơ quan cấp certificate riêng của bạn và sử dụng nó để ký certificate . User của bạn cần phải cài đặt thủ công và tin cậy CA riêng của bạn trước khi bất kỳ certificate nào của CA đó được tin cậy.
- Quy trình: Tạo và gia hạn certificate thủ công, cộng với cài đặt thủ công của chính CA
- Chi phí: Miễn phí
- Xác thực: DV và OV
- Tin cậy: Không có theo mặc định. Bạn phải phân phối thủ công certificate CA riêng của bạn cho khách hàng để cài đặt sự tin cậy
- Chứng chỉ ký tự đại diện: Có
- Chứng chỉ IP: Có, bất kỳ IP nào
- Thời gian hết hạn: Bất kỳ
Cũng như certificate tự ký, bạn có thể tạo CA riêng bằng cách sử dụng các công cụ dòng lệnh đi kèm với thư viện OpenSSL, nhưng một số giao diện thay thế đã được phát triển để làm cho quá trình này dễ dàng hơn.tinyCA là một giao diện đồ họa cho quá trình này và caman là một chương trình dòng lệnh. Cả hai đều giúp tạo CA và sau đó cấp, gia hạn và thu hồi certificate dễ dàng hơn.
CA riêng là một lựa chọn tốt nếu bạn có nhiều certificate để tạo và có thể phân phối và cài đặt CA cho user của bạn theo cách thủ công. Điều này có thể giới hạn bạn sử dụng nội bộ trong một tổ chức hoặc một group nhỏ user hiểu biết về kỹ thuật có thể cài đặt CA đúng cách. Các bộ phận CNTT lớn hơn thường có các phương tiện để triển khai CA cho user của họ một cách tự động, làm cho giải pháp này hấp dẫn hơn đối với họ.
Không giống như certificate tự ký, trong đó mỗi certificate phải được đánh dấu là tin cậy theo cách thủ công, bạn chỉ phải cài đặt CA riêng một lần. Tất cả các certificate được cấp từ CA đó sau đó sẽ kế thừa sự tin cậy đó.
Một nhược điểm là có một chút chi phí để chạy CA và cần một số người biết cách cài đặt và duy trì một cách an toàn.
Nếu việc thu hồi thích hợp là quan trọng đối với việc sử dụng của bạn, bạn cũng cần phải duy trì một server HTTP cho danh sách thu hồi certificate hoặc một trình phản hồi OCSP.
Kết luận
Ta đã xem xét một số tùy chọn khác nhau để lấy hoặc tạo certificate SSL. Cho dù cách nào phù hợp nhất với tình huống của bạn, thì việc thêm bảo vệ SSL vào sẽ tốt cho việc bảo vệ dữ liệu, quyền riêng tư và bảo mật của dịch vụ và user của bạn.
Nếu bạn muốn tìm hiểu sâu hơn về SSL và các tùy chọn mà ta đã thảo luận, các liên kết sau có thể hữu ích:
- Tài liệu OpenSSL mô tả chi tiết thư viện và các lệnh của nó
- Diễn đàn CA / Trình duyệt là nơi tổ chức phát hành certificate và nhà cung cấp trình duyệt đưa ra các yêu cầu và phương pháp hay nhất về cách hoạt động của CA. Điều này bao gồm các luật như certificate có giá trị trong bao lâu và liệu chúng có nên được cấp cho các domain không công khai hay không
- Let's Encrypt CA có thêm thông tin về giao thức ACME
Các tin liên quan