Trước đây rất ít website cài https nên chẳng ai quan tâm https là gì cả. Bản thân tôi cũng thờ ơ với nó mặc dù đã biết từ lâu. Nhưng những năm gần đây vấn đề bảo mật ngày càng được quan tâm, đặc biệt là bảo mật cho website. Vì vậy tôi viết bài này để tổng hợp kiến thức về giao thức bảo mật HTTPS và những lợi ích của nó.
HTTPS là gì?
Định nghĩa của Wikipedia, https là viết tắt của Hypertext Transfer Protocol Secure, một giao thức kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet. HTTPS trước đây thường được dùng cho các trang web yêu cầu tính bảo mật cao như giao dịch thanh toán trực tuyến, đăng nhập, mua bán,… Xem chi tiết tại: https://vi.wikipedia.org/wiki/HTTPS.
Tuy nhiên, định nghĩa của Wikipedia hơi hàn lâm nên có phần khó hiểu với các bạn ngoại đạo. Vì vậy tôi sẽ giải thích theo cách “nông dân”, dễ hiểu hơn như thế này:
HTTP là giao thức nền tảng của internet, giúp chúng ta kết nối đến bất cứ tài nguyên nào thông qua một địa chỉ chính xác gọi là URL (xem thêm: url là gì). Tuy nhiên khi bạn kết nối với một trang web thông qua giao thức HTTP thì dữ liệu gửi/nhận ((bao gồm địa chỉ IP của bạn, các thông tin mà bạn nhập liệu trên website…) chỉ là những đoạn ký tự văn bản bình thường, không hề được mã hóa. Vì thế mà tính bảo mật cực thấp. Hacker sau khi ăn cắp được dữ liệu có thể dễ dàng đọc-hiểu được dữ liệu đó. Những tài khoản đăng nhập các trang web, thông tin thẻ tín dụng, thông tin cá nhân,… dễ dàng bị lộ.
HTTPS ra đời để giải quyết vấn đề bảo mật. Các trang web muốn sử dụng https phải có chứng chỉ số SSL. Khi bạn kết nối vào một máy chủ sử dụng HTTPS, trình duyệt web sẽ ngay lập tức kiểm tra chứng chỉ của trang web đó để xem có đáng tin cậy hay không. Nếu không đủ tin tưởng thì trình duyệt sẽ cảnh báo cho bạn biết. Nếu đủ độ tin tưởng thì trình duyệt mới tải và hiển thị trang web một cách bình thường.
So với giao thức http thì https bảo mật cao hơn rất nhiều vì dữ liệu sẽ được mã hóa. Do đó khi người dùng giao tiếp với một website sử dụng giao thức https sẽ an toàn hơn.
Chứng chỉ số SSL là gì?
SSL là viết tắt của Secure Sockets Layer, một giao thức mạng máy tính nhằm đảm bảo tất cả các dữ liệu trao đổi giữa máy chủ web và trình duyệt mang tính riêng tư, bảo mật và an toàn.
Cha đẻ của SSL là tiến sĩ Taher Elgamal, làm việc tại Netscape Communications. Phiên bản SSL 1.0 ra đời năm 1994 nhưng chỉ được lưu hành nội bộ và sử dụng trên trình duyệt Netscape. Phiên bản 2.0 được công bố tháng 2 năm 1995 nhưng chứa những lỗ hổng an ninh nghiêm trọng. Phiên bản 3.0 được thiết kế lại hoàn toàn mới vào năm 1996.
Tổ chức IETF đã chuẩn hoá SSL và đặt lại tên là TLS (Transport Layer Security) vào tháng 1 năm 1999, tuy nhiên thuật ngữ SSL vẫn được sử dụng phổ biến hơn. Trên thực tế TLS chỉ là một phiên bản mới của SSL với sự khác biệt không đáng kể (phiên bản TLS 1.0 tương đương với phiên bản SSL 3.1). Phiên bản cập nhật của TLS là 1.1 ra đời vào tháng 4 năm 2006 và 1.2 ra đời tháng 8 năm 2008. Từ đó đến nay tiêu chuẩn SSL/TLS ngày càng trở nên phổ biến.
Mozilla đã phát triển phiên bản TLS 1.3 cho trình duyệt của hãng từ tháng 2 năm 2017. Google cũng đã từng thử nghiệm TLS 1.3 nhưng sau đó phải gỡ bỏ vì thấy chưa tương thích. Chính vì vậy phiên bản này hiện nay vẫn chỉ đang hoạt động ở dạng thử nghiệm.
SSL hoạt động như thế nào?
Để truy cập được một trang web sử dụng giao thức HTTPS thì đương nhiên thiết bị của bạn phải cài đặt một trình duyệt web có hỗ trợ SSL. Và tin vui là tất cả các trình duyệt web mới nhất hiện nay đều đã hỗ trợ TLS.
Khi bạn truy cập vào 1 trang web sử dụng https thì:
- Trình duyệt sẽ gửi yêu cầu cho máy chủ web cung cấp thông tin xác nhận danh tính.
- Máy chủ web gửi lại cho trình duyệt chứng chỉ SSL mà nó đã được cấp.
- Trình duyệt kiểm tra thông tin chứng chỉ. Nếu đúng, nó thông báo lại cho máy chủ web là SSL đã được chấp nhận.
- Máy chủ web gửi ngược lại chữ ký số sẽ dùng để mã hóa và giải mã trong suốt quá trình giao tiếp sau đó.
- Mọi thông tin trao đổi giữa trình duyệt và máy chủ sẽ được mã hóa.
Trình duyệt web kiểm tra thông tin chứng chỉ bằng cách nào?
Để đảm bảo tính khách quan và minh bạch thì mỗi chứng chỉ SSL được cấp cho 1 tên miền duy nhất. Và chỉ có những tổ chức uy tín mới được cấp và quản lý các chứng chỉ SSL (tiếng Anh là Certificate Authority, viết tắt là CA). Họ lưu trữ tất cả các chứng chỉ số đã cấp trên một máy chủ công cộng để các trình duyệt web có thể truy cập được. Bởi vậy, khi trình duyệt nhận được chứng chỉ mà website gửi đến, nó có thể đối chiếu với danh sách chứng chỉ đó để biết thông tin có chính xác hay không.
Ngoài ra một số trình duyệt web cũng tích hợp sẵn danh sách các CA uy tín để quá trình xác minh thông tin trở nên nhanh hơn.
Thực tế chúng ta hoàn toàn có thể tự tạo ra 1 chứng chỉ (gọi là self-signed SSL certificate). Nhưng chứng chỉ này không đủ tin tưởng vì thế các trình duyệt không chấp nhận loại chứng chỉ này. Để website có thể hoạt động bình thường trên internet khi sử dụng giao thức https thì bắt buộc chứng chỉ phải được cấp bởi một tổ chức uy tín.
Các nhà cung cấp SSL uy tín
Danh sách dưới đây là một số nhà cung cấp lớn nhất (theo thống kê của w3techs.com) chứ không phải tất cả nhé.
Tháng 10/2017 | Thị phần |
Comodo | 39.30% |
IdenTrust | 30.60% |
Symantec Group | 13.40% |
GoDaddy Group | 7.50% |
GlobalSign | 4.50% |
DigiCert | 2.20% |
Certum | 0.60% |
Entrust | 0.40% |
Secom Trust | 0.30% |
Actalis | 0.20% |
Trustwave | 0.20% |
Let’s Encrypt | 0.20% |
StartCom | 0.10% |
WISeKey Group | 0.10% |
TWCA | <0.1% |
Deutsche Telekom | <0.1% |
Network Solutions | <0.1% |
Các nhà cung cấp trên phần lớn là dịch vụ trả phí, nếu có miễn phí thì cũng chỉ là dùng thử trong 1 khoảng thời gian nhất định. Các bạn muốn dùng miễn phí lâu dài thì tham khảo Let’s Encrypt, Cloud Flare, SSLforFree,…
Các loại SSL
DV SSL Domain Validation | Đây là loại chứng chỉ số cấp cho tên miền. Website của bạn sẽ được hiển thị với 1 biểu tượng ổ khóa màu xanh lá. |
OV SSL Organization Validation | Loại chứng chỉ cấp cho tên miền và hiển thị thêm thông tin về doanh nghiệp đang sở hữu tên miền đó. |
EV SSL Extended Validation | Là loại chứng chỉ cao cấp nhất dành cho các đối tượng là doanh nghiệp hoặc tổ chức có giấy phép hoạt động. Loại chứng chỉ này cho phép hiển thị đầy đủ tên công ty hoặc tổ chức sở hữu tên miền trên thanh địa chỉ của trình duyệt web. |
Wildcard SSL Wildcard SSL Certificate | Là loại chứng chỉ bảo mật có hiệu lực với tất cả các tên miền phụ (subdomain). Wildcard SSL khác với các loại SSL bình thường là có thể chạy cho không giới hạn tên miền phụ với chỉ một chứng chỉ ssl duy nhất. |
UCC/SAN SSL | Là loại chứng chỉ sử dụng được cho nhiều tên miền (tối đa là 40), được thiết kế riêng cho các dịch vụ của Microsoft như Exchange Server hay Office Communications. |
Các trang web sử dụng giao thức https sẽ có URL bắt đầu là https và trên thanh địa chỉ trình duyệt có xuất hiện biểu tượng ổ khóa màu xanh lá cây:
Hình minh họa trên là ảnh chụp từ trình duyệt Chrome. Trình duyệt Cốc Cốc cũng hiện như vậy. Nhưng 1 số trình duyệt khác không hiện chữ Bảo mật mà chỉ hiện khóa xanh, ví dụ như Firefox hoặc Opera:
Với Firefox và Opera, các bạn có thể click vào cái khóa xanh đó để xem thông tin chi tiết về chứng chỉ SSL của trang web. Ví dụ tôi sử dụng của Comodo:
Đối với Chrome và Cốc Cốc, thì bạn phải mở công cụ dành cho nhà phát triển:
Sử dụng phím tắt Ctrl+Shift+I hoặc click chọn biểu tượng dấu 3 dấu chấm ở góc trên cùng bên phải màn hình => More Tools (công cụ khác) => Developer Tools (Công cụ dành cho Nhà phát triển), sau đó click chọn tab Security. Tại đây bạn có thể xem được tổng quan các tính năng bảo mật chỉ bằng 1 nút View Certificate.
Đây là ảnh minh họa chứng chỉ của trang google.com.vn (tab Details, mục Subject):
Ý nghĩa của các chữ cái viết tắt:
- CN = Common Name (tên miền đã xác thực)
- O = Organization (tổ chức sở hữu)
- OU = Organizational Unit (tên đơn vị quản lý)
- L = Locality (khu vực)
- S = State (thành phố)
- C = Country (quốc gia)
Đối với các tên miền chỉ có thông tin của CN và OU là tên miền sử dụng DV SSL. Nếu có thông tin của O,L,S,C thì tên miền đó sử dụng OV SSL. Riêng EV SSL thì hiện đầy đủ tên doanh nghiệp (tổ chức) cùng mã quốc gia ở cuối:
Mã quốc gia: VN là Việt Nam, US là United States (Mỹ), DE là Deutschland (Đức),…
Tất cả các trang web cá nhân chỉ được sử dụng loại chứng chỉ dành cho tên miền (Domain Validated SSL). Nếu muốn sử dụng Organization Validation SSL hoặc Extended Validation SSL thì bắt buộc phải là tổ chức/doanh nghiệp có giấy phép hoạt động hợp pháp.
Loại chứng chỉ SSL nào bảo mật tốt nhất?
Tất cả các loại chứng chỉ đều hỗ trợ mã hóa lên tới 256-bit với độ dài 2048 nên mức độ bảo mật là như nhau. Cho nên nếu website của bạn là cá nhân hoặc trang tin tức thông thường thì chỉ cần Domain Validation SSL là đủ.
Tại sao nên sử dụng https?
Giao thức bảo mật https chính là xu hướng của tương lai. Hiện nay gần như tất cả các website lớn, trang thương mại điện tử, ngân hàng trực tuyến,… đều đã sử dụng https. Rất nhiều trang web (blog) cá nhân cũng đang chuyển sang https cho phù hợp với xu thế.
Những lợi ích của https:
- Như đã nói ở trên, giao thức https sinh ra để thay thế cho http, mục đích là để bảo mật tốt hơn.
- Giúp chứng thực doanh nghiệp bạn là tồn tại, tránh giả mạo website.
- Làm tăng niềm tin, sự an tâm cho khách hàng truy cập website.
- Góp phần cải thiện thứ hạng của trang web trên công cụ tìm kiếm Google.
- Tất cả các nhà cung cấp SSL đều có chính sách bảo hiểm. Tức là họ sẽ bồi thường thiệt hại cho bạn trong trường hợp cấp sai chứng chỉ SSL để xảy ra tổn thất, lừa đảo, lộ thông tin thẻ tín dụng,… của khách hàng khi giao dịch trên website có cài https.
Thực ra cái chính sách bảo hiểm này chỉ là tượng trưng, làm tăng niềm tin cho khách hàng khi giao dịch trên website có cài https. Bởi vì khoản tiền bảo hiểm càng cao thì càng chứng tỏ rằng doanh nghiệp đó được CA xác minh một cẩn thận và nghiêm ngặt. Trên thực tế việc cấp chứng chỉ DV SSL cũng yêu cầu chủ sở hữu phải xác minh quyền sở hữu tên miền. Cho nên khách hàng giao dịch trên website đó cũng phải tự chịu trách nhiệm về thiệt hại (nếu có) trong trường hợp website hoặc tổ chức đó lừa đảo.
Tóm lại, đối với những website mới thì nên sử dụng giao thức https ngay từ đầu. Còn với những website cũ đã có thứ hạng từ khóa thì việc thay đổi sang https sẽ làm từ khóa bị rớt hạng trong thời gian đầu nên bạn phải cân nhắc kỹ.
Ngày cập nhật: 10/10/2017