Kỷ niệm 10 năm Let’s Encrypt, điểm khởi đầu với mục tiêu phổ cập SSL/TLS
(letsencrypt.org)- Trong bối cảnh thông tin cá nhân và doanh nghiệp được trao đổi trên Internet ngày càng thường xuyên hơn, Let’s Encrypt xuất hiện như một tổ chức chứng thực nhằm hạ thấp rào cản phổ cập TLS bằng chứng chỉ máy chủ miễn phí
- Trình duyệt và máy chủ vốn đã hỗ trợ TLS, nhưng với các quản trị viên, việc cấp, cài đặt và gia hạn chứng chỉ vẫn là công việc phức tạp và tốn kém
- Mozilla, Cisco, Akamai, EFF, IdenTrust và các nhà nghiên cứu tại University of Michigan đã hợp tác thông qua ISRG để thúc đẩy cung cấp hạ tầng vào quý 2 năm 2015
- Các nguyên tắc vận hành gồm miễn phí, tự động hóa, bảo mật, minh bạch, mở và hợp tác, bao gồm cả công khai hồ sơ cấp phát và thu hồi cùng giao thức tiêu chuẩn mở
- Trọng tâm không phải là bảo mật do một tổ chức cụ thể kiểm soát, mà là xây dựng bảo mật Internet phổ quát và cởi mở mà toàn bộ cộng đồng đều có thể sử dụng
Rào cản chứng chỉ máy chủ từng cản trở việc phổ cập TLS
- Thông tin cá nhân và doanh nghiệp ngày càng thường xuyên được trao đổi qua Internet, nhưng người dùng không phải lúc nào cũng dễ biết khi nào việc truyền tải đó đang diễn ra
- TLS là công nghệ kế nhiệm SSL, và đã được hỗ trợ sẵn bởi trình duyệt trên mọi thiết bị cũng như các máy chủ trong trung tâm dữ liệu
- Trọng tâm của giao tiếp được bảo vệ bằng TLS là chứng chỉ khóa công khai chứng minh rằng người dùng thực sự đang giao tiếp với đúng máy chủ mà họ định kết nối
- Với nhiều quản trị viên máy chủ, ngay cả chứng chỉ máy chủ cơ bản vẫn là một gánh nặng
- Quy trình đăng ký có thể gây rối rắm
- Thường tốn chi phí
- Việc cài đặt đúng cách khá phức tạp
- Gia hạn cũng phiền phức
Let’s Encrypt đề xuất một tổ chức chứng thực miễn phí và tự động hóa
- Let’s Encrypt là một tổ chức chứng thực miễn phí mới dựa trên tinh thần hợp tác và cởi mở
- Chủ sở hữu tên miền có thể nhận chứng chỉ máy chủ cơ bản đã được xác thực cho tên miền của mình bằng quy trình một cú nhấp chuột
- Mozilla Corporation, Cisco Systems, Akamai Technologies, Electronic Frontier Foundation, IdenTrust và các nhà nghiên cứu tại University of Michigan đã hợp tác thông qua Internet Security Research Group (ISRG)
- ISRG là một tổ chức lợi ích công cộng tại California và cũng hoan nghênh sự tham gia của các tổ chức khác có cùng mục tiêu
- Các nguyên tắc vận hành như sau
- Miễn phí: Chủ sở hữu tên miền có thể nhận miễn phí chứng chỉ đã được xác thực cho tên miền đó
- Tự động hóa: Việc đăng ký chứng chỉ diễn ra trong quá trình cài đặt hoặc cấu hình ban đầu của máy chủ, và việc gia hạn được thực hiện tự động ở chế độ nền
- Bảo mật: Đóng vai trò là nền tảng để triển khai các kỹ thuật bảo mật mới nhất và các thông lệ tốt nhất
- Minh bạch: Công khai hồ sơ cấp phát và thu hồi chứng chỉ để bất kỳ ai cũng có thể kiểm tra
- Mở: Giao thức cấp phát và gia hạn tự động được xây dựng thành tiêu chuẩn mở, và cung cấp càng nhiều phần mềm mã nguồn mở càng tốt
- Hợp tác: Vận hành như một nỗ lực chung mang lại lợi ích cho toàn bộ cộng đồng, tương tự như các giao thức Internet
- Có thể xem thông tin về ISRG và các đối tác tại trang About
1 bình luận
Các ý kiến trên Hacker News
Chắc chắn là một trong những dịch vụ tốt nhất, đã chấm dứt việc kinh doanh chứng chỉ và giúp Internet an toàn hơn
Đã có thời kết nối HTTPS là thứ chỉ dùng cho các dự án “nghiêm túc”, vì chi phí chứng chỉ đắt hơn tên miền rất nhiều. Kiểu như trước hết cứ bắt đầu không có chứng chỉ, nếu mọi việc suôn sẻ thì bỏ khoảng 100 đô la ra mua chứng chỉ
Khi phát hiện, suy nghĩ đầu tiên của tôi không phải là “lỡ bị Let’s Encrypt chặn thì sao”, mà là “xin lỗi vì cấu hình lười biếng của mình đã tạo tải không cần thiết cho Let’s Encrypt”. Let’s Encrypt ít nhất là điều tuyệt vời nhất đã xảy ra với web trong 10 năm qua
Trước đó tôi hoàn toàn không dùng SSL cho các dịch vụ của mình, vì hiệu quả so với chi phí không hợp lý. Kể từ đó thì không có chuyện không dùng nữa
Nếu cần chứng chỉ wildcard bao phủ nhiều subdomain cho dự án cá nhân thì chi phí bỗng trở nên rất đắt, nên thật tốt khi vấn đề này đã được giải quyết hoàn toàn
Theo tiêu chuẩn của chúng tôi, kỷ niệm 10 năm sẽ là vào năm 2025, nhưng chúng tôi rất cảm kích những lời ấm áp ở đây
Hôm nay là khoảng 10 năm kể từ ngày công bố công khai rằng sẽ ra mắt Let’s Encrypt, còn năm sau mới là 10 năm kể từ khi Let’s Encrypt thực sự cấp chứng chỉ đầu tiên: https://letsencrypt.org/2015/09/14/our-first-cert/
Vào tháng 12 năm 2015, tức khoảng 9 năm trước tính đến hôm nay, mọi người đã có thể sử dụng mà không cần lời mời: https://letsencrypt.org/2015/12/03/entering-public-beta/
Khi đó tôi chỉ có tiền mua tên miền chứ không có tiền trả SSL, nhưng trang web lại cần SSL. Nhờ SSL miễn phí của Let’s Encrypt, dự án đã thành công
Cảm giác như mới hôm qua còn phải trả tiền cho chứng chỉ, tệ hơn nữa là có lúc còn vận hành mà chẳng có chứng chỉ nào
Thật khó tin là đã 10 năm rồi
Tôi có suy nghĩ hơi trái chiều về Let’s Encrypt
Việc có thể nhận chứng chỉ TLS miễn phí mà không phải dựa vào những nhà cung cấp đáng ngờ như StartSSL là điều tốt. Nhờ đó, bất kỳ website nào cũng có thể dễ dàng chuyển sang HTTPS, và việc dữ liệu nhạy cảm như thông tin đăng nhập được truyền qua kết nối không mã hóa về cơ bản đã biến mất
Mặt khác, tôi cho rằng nó đã củng cố cấu trúc vốn hỏng về căn bản của mô hình tin cậy chứng chỉ TLS, nơi bất kỳ cơ quan chứng thực nào cũng có thể cấp chứng chỉ cho tên miền của tôi mà không cần tôi tham gia. Có nhiều biện pháp giảm thiểu như bản ghi CAA hay Certificate Transparency, nhưng chúng không phải là giải pháp 100%. Nếu không có Let’s Encrypt, có lẽ đã có động lực lớn hơn để triển khai các cơ chế tin cậy tốt hơn như DNSSEC+DANE, vốn giới hạn việc cấp chứng chỉ vào những chủ thể thực sự có thẩm quyền xác định quyền sở hữu tên miền
Tôi cũng lo ngại về việc cố ý thiếu tương thích ngược trong quá trình chuyển các site sang TLS. Đây không chỉ là chuyện bật hay tắt TLS một lần, mà là vấn đề các giao thức và bộ mã hóa liên tục bị loại bỏ. Điều đó hợp lý với những thứ cần an toàn như ngân hàng hay email, nhưng tôi không nghĩ nó nhất thiết cần thiết đến mức áp dụng cho cả việc xem thông tin tĩnh và không quan trọng như công thức nấu ăn. Tôi cho rằng vấn đề nhà mạng chèn quảng cáo hoặc những thứ kỳ quặc nên được giải quyết bằng quy định thì tốt hơn
Nếu chứng chỉ vẫn tiếp tục ở trạng thái đầy đau đớn, có thể một thứ gì đó tốt hơn TLS đã xuất hiện, nhưng có vẻ không phải vậy. Vì vấn đề cốt lõi vẫn rất khó
Điều đáng biết ơn nhất là giao thức ACME
Còn nhớ trước Let’s Encrypt, người ta gia hạn chứng chỉ như thế nào không? Khóa riêng tư từng được gửi qua lại bằng email dưới dạng tệp ZIP đính kèm. Nó gần giống một màn kịch bảo mật, và theo tôi biết thì đó là thông lệ phổ biến ở nhiều tổ chức phát hành chứng chỉ. Cảm ơn Let’s Encrypt
Trong quá trình tạo CSR, chúng tôi tạo khóa mới trên máy chủ và chạy ngay trên chính máy chủ để khóa không rời khỏi kho lưu trữ nội bộ của máy chủ. CSR được gửi cho GlobalSign, rồi vì quy trình của doanh nghiệp lớn nên phải qua một bên thứ ba, vài ngày sau mới nhận được chứng chỉ và áp dụng lên máy chủ
Tôi muốn dùng ACME và để khóa trong ramdisk bộ nhớ hay thứ tương tự, nhưng nhược điểm khi làm ở một công ty kém linh hoạt hơn cả tàu chở dầu là như vậy
Trước đó tôi chỉ tham gia chút ít vào vài chứng chỉ TLS, nhưng ít nhất những nơi tôi từng gặp đều bắt buộc dùng CSR. Tuy vậy, trong thực tế có thể những thông lệ kinh khủng như vậy phổ biến hơn tôi từng biết
Load balancer trong môi trường đám mây thường không dễ tích hợp với các nhà cung cấp ACME bên ngoài như letsencrypt, còn nhà cung cấp nội bộ thì yêu cầu chuyển tên miền sang phía họ nên không phải lúc nào cũng khả thi. Thậm chí không phải nhà cung cấp đám mây nào cũng có tính năng này, và đa số có vẻ xem ACME như một tính năng được gắn thêm về sau
Có thể hack tạm ở mức nào đó bằng cách ghép script với terraform, cron job, v.v., nhưng sẽ rất bừa bộn. Chế độ lỗi là khi gia hạn chứng chỉ thất bại thì site dừng hoạt động, và nhờ việc vòng đời chứng chỉ đã rất ngắn, chuyện đó xảy ra thường xuyên. Tôi đã thực sự trải qua rồi
Vì vậy vài ngày trước tôi đã trả thuế chứng chỉ wildcard. Tôi trả vài trăm đô để khỏi phải vắt óc né nó; cảm giác không dễ chịu, nhưng bỏ ra vài ngày chỉ để tiết kiệm khoản chi thực chất chưa tới 2 giờ công của tôi thì không đáng. Phát hành CSR, nhận chứng chỉ, rồi sao chép sang các load balancer liên quan là việc 20 phút
Giá mà thế giới chứng chỉ trên desktop cũng có thứ như vậy
Microsoft hiện đã chuyển sang chế độ hoàn toàn điên rồ với các yêu cầu của họ, còn các nơi bán chứng chỉ cho họ thì kiếm được nhiều tiền hơn trước mà không cần động một ngón tay
Buồn cười là toàn bộ lớp bảo mật, thẩm định và xác minh bất tận đó vẫn dựa trên một tấm ảnh hộ chiếu gửi qua email
Peter Eckersley (1978–2022) đã được truy tặng vào Internet Hall of Fame nhờ công việc sáng lập Let’s Encrypt
Nhờ Peter cùng nhiều cộng sự và đồng nghiệp của ông, Internet đã trở thành một nơi tốt hơn
Tôi chưa từng nghe tên bất kỳ ai trong danh sách này. Dù điều đó có nghĩa là gì đi nữa
Trong danh sách đầy đủ https://www.internethalloffame.org/inductees/all/ thì có lẽ tôi nhận ra khoảng bảy người. Dù vậy vẫn là tỷ lệ một chữ số
Đúng lúc đó tôi nhận được email từ một cơ quan chính phủ Hà Lan là khách hàng tiềm năng, yêu cầu đừng dùng Letsencrypt
Họ nói họ thích phía trả tiền cho chứng chỉ hơn, nhưng tôi không biết vì sao. Có vẻ họ không tin tưởng lắm
Nhiều người không biết rằng chứng chỉ HTTPS không nhất thiết ngăn được một số kiểu tấn công nhất định như chèn DNS
Có thể xem ví dụ chiến dịch tấn công DNSPionage lấy được chứng chỉ hợp lệ để dùng trong tấn công tại <https://www.youtube.com/watch?v=exy5JwAU8qk>
Nói ngắn gọn, việc cấp chứng chỉ HTTPS đã được tự động hóa và phụ thuộc vào bảo mật DNS; điều này đạt được bằng DNSSEC nhưng hầu hết không triển khai
Vấn đề là mục CAA cũng không giúp được gì ở đây. Vì nếu có thể giả mạo bản ghi A thì cũng có thể giả mạo bản ghi CAA. Tôi không đủ hiểu DNS để chắc chắn DNSSEC có giúp được trong trường hợp này hay không
Một kiểu tấn công khác là chiếm quyền IP. Trong trường hợp này, những thứ như xác thực HTTP, vốn là cách ACME thông thường, có thể vượt qua được, nhưng không thể vượt qua bản ghi CAA. Ngay cả khi sở hữu địa chỉ IP mà bản ghi A hoặc AAAA của tôi trỏ tới, nếu CAA của tôi không liệt kê letsencrypt là nhà phát hành được chấp thuận thì không thể xin cấp chứng chỉ từ letsencrypt
Let’s Encrypt là một thành tựu khổng lồ và giờ đã trở thành hạ tầng thiết yếu
Việc đặt nó trên nền tảng một giao thức mở để không trở thành điểm lỗi đơn là một lựa chọn thông minh, giúp ý tưởng đó có thể tiếp tục tồn tại ngay cả khi một tổ chức nào đó biến mất
Hy vọng sẽ còn nhiều dịp kỷ niệm như thế này trong tương lai