Rate this post

Ngày càng có nhiều trang web được bảo mật bằng https. https sử dụng công nghệ SSL / TSL để bảo mật thông tin liên lạc giữa hai hệ thống.

Những hướng dẫn này sẽ giúp bạn hiểu https từng bước. Hướng dẫn được chia thành nhiều chương, trong đó mỗi chương có một số chủ đề liên quan đi kèm với các giải thích dễ hiểu và ví dụ thực tế.

Các hướng dẫn này được thiết kế cho người mới bắt đầu và các chuyên gia muốn tìm hiểu các nguyên tắc cơ bản về https và cách sử dụng https với một trang web.

Các bài viết liên quan:

Https là gì?

HTTPS là từ viết tắt của từ Hyper Text Transfer Protocol Secure. Nó là một giao thức để đảm bảo thông tin liên lạc giữa hai hệ thống, ví dụ: trình duyệt và server web.

Như bạn có thể thấy trong hình trên, http truyền dữ liệu giữa trình duyệt và server web ở định dạng siêu văn bản, trong khi https truyền dữ liệu ở định dạng được mã hóa. Do đó, https ngăn chặn tin tặc đọc và sửa đổi dữ liệu trong quá trình truyền giữa trình duyệt và server web. Ngay cả khi tin tặc quản lý để chặn liên lạc, họ sẽ không thể sử dụng nó vì tin nhắn đã được mã hóa.

HTTPS (HTTP qua SSL) đề cập đến sự kết hợp của HTTP và SSL để thực hiện giao tiếp an toàn giữa trình duyệt Web và máy chủ Web. Khả năng HTTPS được tích hợp trong tất cả các trình duyệt Web hiện đại. Việc sử dụng nó phụ thuộc vào máy chủ Web hỗ trợ giao tiếp HTTPS. Ví dụ: công cụ tìm kiếm không hỗ trợ HTTPS.

Sự khác biệt chính mà người dùng trình duyệt Web nhìn thấy là URL đó (đơn nguồnđịa chỉ định vị) bắt đầu bằng https: // thay vì http: //. Kết nối HTTP bình thường sử dụng cổng 80. Nếu HTTPS được chỉ định, cổng 443 sẽ được sử dụng, cổng này sẽ gọi SSL.

Khi HTTPS được sử dụng, các phần tử sau của giao tiếp được mã hóa:

  • URL của yêu cầu tài liệu
  • Nội dung của tài liệu
  • Nội dung của biểu mẫu trình duyệt (do người dùng trình duyệt điền)
  • Cookie được gửi từ trình duyệt đến máy chủ và từ máy chủ tới trình duyệt
  • Nội dung của tiêu đề HTTP

HTTPS được ghi lại trong RFC 2818, HTTP Over TLS. Không có thay đổi cơ bản nào trong việc sử dụng HTTP qua SSL hoặc TLS và cả hai cách triển khai đều được gọi là HTTPS.

HTTPS đã thiết lập một liên kết được mã hóa giữa trình duyệt và server web bằng cách sử dụng các giao thức Secure Socket Layer (SSL) hoặc Transport Layer Security (TLS) protocols. TLS là phiên bản mới của SSL.

Secure Socket Layer (SSL)

SSL là công nghệ tiêu chuẩn bảo mật nhằm thiết lập liên kết bảo mật giữa hai hệ thống. Đây có thể là trình duyệt đến server, server đến server hoặc máy khách tới server. Về cơ bản, SSL đảm bảo rằng việc truyền dữ liệu giữa hai hệ thống vẫn được mã hóa và riêng tư.

Về cơ bản, https là http qua SSL. SSL thiết lập kết nối bảo mật được mã hóa sử dụng SSL Certificate hay được gọi là chứng chỉ kỹ thuật số.

Http so với https

Truyền dữ liệu ở định dạng siêu văn bản (văn bản có cấu trúc)Truyền dữ liệu ở định dạng được mã hóa
Sử dụng cổng 80 Sử dụng cổng 443 
Không an toànĐược bảo mật bằng công nghệ SSL
Bắt đầu bằng http: // Bắt đầu bằng https: //

Ưu điểm của https

Giao tiếp an toàn: https tạo kết nối an toàn bằng cách thiết lập liên kết được mã hóa giữa trình duyệt và server hoặc hai hệ thống bất kỳ.

Tính toàn vẹn của dữ liệu: https cung cấp tính toàn vẹn của dữ liệu bằng cách mã hóa dữ liệu và do đó, ngay cả khi tin tặc tìm cách bẫy dữ liệu, chúng cũng không thể đọc hoặc sửa đổi dữ liệu đó.

Quyền riêng tư và Bảo mật: https bảo vệ quyền riêng tư và bảo mật của người dùng trang web bằng cách ngăn chặn tin tặc lắng nghe thụ động giao tiếp giữa trình duyệt và server.

Hiệu suất nhanh hơn: https tăng tốc độ truyền dữ liệu so với http bằng cách mã hóa và giảm kích thước của dữ liệu.

SEO: Sử dụng https làm tăng thứ hạng SEO. Trong Google Chrome, Google hiển thị nhãn Không an toàn trong trình duyệt nếu dữ liệu của người dùng được thu thập qua http.

Tương lai: https đại diện cho tương lai của web bằng cách làm cho internet an toàn cho người dùng và chủ sở hữu trang web.

SSL hoạt động như thế nào?

Như bạn đã học trong chương trước, https sử dụng giao thức SSL để bảo mật thông tin liên lạc bằng cách truyền dữ liệu được mã hóa. Trước khi đi sâu hơn, hãy tìm hiểu cách hoạt động của SSL.

Về cơ bản SSL hoạt động với các khái niệm sau:

  1. Asymmetric Cryptography
  2. Symmetric Cryptography

Asymmetric Cryptography

Asymmetric Cryptography (còn được gọi là Mã hóa không đối xứng hoặc Mật mã khóa công khai) sử dụng một cặp khóa liên quan đến toán học để mã hóa và giải mã dữ liệu. Trong một cặp khóa, một khóa được chia sẻ với bất kỳ ai quan tâm đến giao tiếp. Đây được gọi là Khóa công khai. Khóa còn lại trong cặp khóa được giữ bí mật và được gọi là Khóa riêng.

Ở đây, các khóa đề cập đến một giá trị toán học và được tạo ra bằng cách sử dụng một thuật toán toán học để mã hóa hoặc giải mã dữ liệu.

Trong Asymmetric Cryptography, dữ liệu có thể được ký bằng khóa riêng tư, chỉ có thể được giải mã bằng khóa công khai liên quan trong một cặp.

SSL sử dụng Asymmetric Cryptography để bắt đầu giao tiếp được gọi là SSL Handshake. Các thuật toán mã hóa khóa bất đối xứng được sử dụng phổ biến nhất bao gồm EIGamal, RSA, DSA, kỹ thuật đường cong Elliptic và PKCS.

Symmetric Cryptography

Trong Symmetric Cryptography, chỉ có một khóa mã hóa và giải mã dữ liệu. Cả người gửi và người nhận đều phải có khóa này mà chỉ họ mới biết.

SSL sử dụng Symmetric Cryptography bằng cách sử dụng khóa phiên sau khi quá trình bắt tay ban đầu được thực hiện. Các thuật toán đối xứng được sử dụng rộng rãi nhất là AES-128, AES-192 và AES-256.

Truyền dữ liệu qua SSL

Giao thức SSL sử dụng Asymmetric Cryptography và đối xứng để truyền dữ liệu một cách an toàn. Hình sau minh họa các bước của giao tiếp SSL:

Như bạn có thể thấy trong hình trên, giao tiếp SSL giữa trình duyệt và server web (hoặc bất kỳ hai hệ thống nào khác) chủ yếu được chia thành hai bước: SSL Handshake và truyền dữ liệu thực tế.

SSL Handshake

Giao tiếp qua SSL luôn bắt đầu bằng SSL Handshake. SSL Handshake là một Asymmetric Cryptography cho phép trình duyệt xác minh server web, lấy khóa công khai và thiết lập kết nối an toàn trước khi bắt đầu truyền dữ liệu thực tế.

Hình sau minh họa các bước liên quan đến quá trình SSL Handshake:

Hãy hiểu các bước trên:

  1. Client gửi thông báo “xin chào khách hàng”. Điều này bao gồm số phiên bản SSL của máy khách, cài đặt mật mã, dữ liệu theo phiên cụ thể và thông tin khác mà server cần giao tiếp với máy khách bằng SSL.
  2. Server phản hồi bằng một thông báo “server xin chào”. Điều này bao gồm số phiên bản SSL của server, cài đặt mật mã, dữ liệu theo phiên cụ thể, SSL Certificate có khóa công khai và thông tin khác mà máy khách cần để giao tiếp với server qua SSL.
  3. Máy khách xác minh SSL Certificate của server từ CA (Tổ chức phát hành chứng chỉ) và xác thực server. Nếu xác thực không thành công, thì máy khách từ chối kết nối SSL và ném một ngoại lệ. Nếu xác thực thành công, hãy chuyển sang bước 4.
  4. Client tạo một khóa phiên, mã hóa nó bằng Public key của server và gửi đến server. Nếu server đã yêu cầu Authority máy khách.
  5. server giải mã khóa phiên bằng khóa riêng của nó và gửi xác nhận đến máy khách được mã hóa bằng khóa phiên.

Do đó, khi kết thúc quá trình SSL Handshake, cả máy khách và server đều có khóa phiên hợp lệ mà họ sẽ sử dụng để mã hóa hoặc giải mã dữ liệu thực tế. Khóa công khai và khóa cá nhân sẽ không được sử dụng nữa sau đó.

Chuyển dữ liệu thực tế

Máy khách và server hiện sử dụng khóa phiên dùng chung để mã hóa và giải mã dữ liệu thực tế và chuyển dữ liệu đó. Điều này được thực hiện bằng cách sử dụng cùng một khóa phiên ở cả hai đầu và do đó, nó là một Symmetric Cryptography. Việc truyền dữ liệu SSL thực tế sử dụng Symmetric Cryptography vì nó dễ dàng và tốn ít hơn so với Asymmetric Cryptography.

Do đó, về cơ bản SSL hoạt động bằng cách sử dụng Asymmetric Cryptography và Symmetric Cryptography. Có một số cơ sở hạ tầng liên quan đến việc đạt được giao tiếp SSL trong cuộc sống thực, được gọi là Cơ sở hạ tầng khóa công khai.

Xem thêm SSL ( secure socket layer) là gì

Connection Initiation 

Đối với HTTPS, tác nhân đóng vai trò là máy khách HTTP cũng hoạt động như máy khách TLS. Máy khách khởi tạo kết nối với máy chủ trên cổng thích hợp và sau đó gửi TLS ClientHello để bắt đầu bắt tay TLS. Khi quá trình bắt tay TLS hoàn tất, máy khách sau đó có thể bắt đầu yêu cầu HTTP đầu tiên. Tất cả dữ liệu HTTP sẽ được gửi dưới dạng dữ liệu ứng dụng TLS. Hành vi HTTP bình thường, bao gồm cả các kết nối được giữ lại, phải được tuân theo.

Chúng ta cần hiểu rõ rằng có ba cấp độ nhận thức về kết nối trong HTTPS. Ở cấp độ HTTP, máy khách HTTP yêu cầu kết nối với máy chủ HTTP bằng cách gửi yêu cầu kết nối đến lớp thấp nhất tiếp theo. Thông thường, lớp thấp nhất tiếp theo là TCP, nhưng nó cũng có thể là TLS / SSL. Ở cấp độ TLS, một phiên được thiết lập giữa máy khách TLS và máy chủ TLS. Phiên này có thể hỗ trợ một hoặc nhiều kết nối bất kỳ lúc nào. Như chúng ta đã thấy, một yêu cầu TLS để thiết lập một kết nối bắt đầu bằng việc thiết lập kết nối TCP giữa thực thể TCP ở phía máy khách và thực thể TCP ở phía máy chủ.

Connection Closure 

Máy khách hoặc máy chủ HTTP có thể cho biết việc đóng kết nối bằng cách đưa dòng sau vào bản ghi HTTP: Connection: close. Điều này cho thấy rằng kết nối sẽ bị đóng sau khi bản ghi này được gửi.

Việc đóng kết nối HTTPS yêu cầu TLS đóng kết nối với thực thể TLS ngang hàng ở phía từ xa, điều này sẽ liên quan đến việc đóng kết nối TCP cơ bản. Ở cấp TLS, cách thích hợp để đóng kết nối là mỗi bên sử dụng giao thức cảnh báo TLS để gửi cảnh báo close_notify. Việc triển khai TLS phải bắt đầu trao đổi các cảnh báo đóng trước khi đóng kết nối. Việc triển khai TLS, sau khi gửi một cảnh báo đóng, có thể đóng kết nối mà không đợi đồng đẳng gửi cảnh báo đóng, tạo ra một “đóng không hoàn thành”. Lưu ý rằng một triển khai thực hiện điều này có thể chọn sử dụng lại phiên. Điều này chỉ nên được thực hiện khi ứng dụng biết (thường là thông qua việc phát hiện các ranh giới thông điệp HTTP) rằng nó đã nhận được tất cả dữ liệu thông báo mà nó quan tâm.

Máy khách HTTP cũng phải có khả năng đối phó với tình huống trong đó cơ bản Kết nối TCP bị ngắt mà không có cảnh báo close_notify trước và không có chỉ báo Connection: close. Tình huống như vậy có thể là do lập trình

lỗi trên máy chủ hoặc lỗi giao tiếp khiến kết nối TCP bị ngắt. Tuy nhiên, việc TCP đóng cửa không báo trước có thể là bằng chứng của một cuộc tấn công nào đó. Vì vậy, ứng dụng khách HTTPS sẽ đưa ra một số loại cảnh báo bảo mật khi điều này xảy ra.

Thành phần quan trọng https

Cơ sở hạ tầng khóa công khai (PKI) là một tập hợp các vai trò, chính sách và thủ tục cần thiết để tạo, quản lý, phân phối, sử dụng, lưu trữ và thu hồi chứng chỉ số và quản lý mã hóa khóa công khai.

PKI bao gồm các yếu tố sau:

Cơ quan cấp chứng chỉ: Cơ quan xác thực danh tính của các cá nhân, máy tính và các thực thể khác.

Cơ quan đăng ký: CA cấp dưới phát hành chứng chỉ thay mặt cho CA gốc cho các mục đích sử dụng cụ thể.

SSL Certificate: Tệp dữ liệu bao gồm khóa công khai và các thông tin khác.

Hệ thống quản lý chứng chỉ: Hệ thống lưu trữ, xác nhận và thu hồi chứng chỉ.

SSL Certificate là gì?

SSL Certificate (còn được gọi là chứng chỉ số) đóng một vai trò quan trọng trong việc bảo mật thông tin liên lạc giữa hai hệ thống.

SSL Certificate là một tệp dữ liệu được cấp bởi Tổ chức phát hành chứng chỉ có thẩm quyền (CA). Như bạn đã học trong chương trước, SSL sử dụng mật mã không đối xứng để thiết lập một liên kết được mã hóa giữa hai hệ thống bằng cách sử dụng một cặp khóa (khóa công khai và khóa riêng tư). SSL Certificate chứa khóa công khai của chủ sở hữu và các chi tiết khác. Máy chủ web gửi một khóa công khai đến trình duyệt thông qua SSL Certificate và trình duyệt xác minh nó và xác thực máy chủ web bằng SSL Certificate.

Bạn có thể mở chứng chỉ của bất kỳ trang web https nào. Ví dụ: nhập url https://www.google.com trong trình duyệt Google Chrome để kiểm tra SSL Certificate của google.com. Bất kỳ trang web https nào cũng sẽ có ổ khóa Bảo mật trên thanh địa chỉ, như hình dưới đây.

Nhấp vào biểu tượng ổ khóa và nhấp vào Chứng chỉ, như hình dưới đây.

Thao tác này sẽ mở chứng chỉ như hình dưới đây.

Như bạn có thể thấy, trong tab Chung, chứng chỉ hiển thị Ngày cấp cho, Cấp bởi và Hợp lệ từ và đến ngày. Tab Chi tiết bao gồm các thông tin khác. Tab Đường dẫn chứng chỉ bao gồm thông tin về tất cả các chứng chỉ trung gian và chứng chỉ CA gốc.

X.509 là một tiêu chuẩn xác định định dạng của chứng chỉ kỹ thuật số. SSL sử dụng định dạng X.509. Nói cách khác, SSL Certificate thực sự là chứng chỉ X.509.

X.509 sử dụng một ngôn ngữ chính thức được gọi là Ký hiệu Cú pháp Tóm tắt Một (ASN.1) để thể hiện cấu trúc dữ liệu của chứng chỉ.

Định dạng X.509

SSL Certificate ở định dạng X.509 bao gồm các thông tin sau:

  • Phiên bản: Số phiên bản của định dạng dữ liệu chứng chỉ theo X.509.
  • Số sê-ri: Định danh duy nhất của chứng chỉ do CA chỉ định
  • Khóa công khai: Khóa công khai của chủ sở hữu
  • Chủ đề: Tên, địa chỉ, quốc gia và tên miền của chủ sở hữu
  • Người cấp: Tên của CA đã cấp chứng chỉ
  • Hợp lệ-Từ: Ngày chứng chỉ có hiệu lực từ
  • Valid-To: Ngày hết hạn
  • Thuật toán chữ ký: Thuật toán được sử dụng để tạo chữ ký
  • Thumbprint: Hàm băm của chứng chỉ
  • Thuật toán Thumbprint: Thuật toán được sử dụng để tạo một hàm băm của chứng chỉ

Xem thêm Schema là gì?

Các loại SSL Certificate

Ngày nay, có nhiều loại SSL Certificate trong bảo mật. Các cấp độ mã hóa vẫn giống nhau đối với tất cả các loại chứng chỉ nhưng các cấp độ xác thực và giao diện khác nhau.

Các loại SSL Certificate dựa trên mức độ xác thực

Các trang web sử dụng SSL Certificate để thiết lập mức độ tin cậy với khách truy cập và khách hàng của họ. Các doanh nghiệp khác nhau yêu cầu thiết lập các mức độ tin cậy khác nhau. Ví dụ: các trang web thu thập thông tin quan trọng của người dùng cần phải chuyển nó một cách an toàn. Các tổ chức tài chính cần thiết lập tính xác thực của miền cũng như bảo mật dữ liệu. Vì vậy, CA cần xác thực thông tin của chủ sở hữu trang web dựa trên sự tin cậy mà họ muốn thiết lập.

Domain Validated Certificates

Domain Validated Certificates yêu cầu xác thực ở mức thấp nhất vì mục đích chính của chứng chỉ DV là thực hiện giao tiếp an toàn giữa máy chủ web của miền và trình duyệt. CA chỉ xác minh rằng chủ sở hữu có quyền kiểm soát miền.

Organization Validated Certificates

Organization Validated Certificates yêu cầu xác thực cấp độ trung bình trong đó CA kiểm tra quyền của tổ chức để sử dụng miền và cả thông tin của tổ chức. Chứng chỉ OV nâng cao mức độ tin cậy của tổ chức và miền của tổ chức.

Extended Validated Certificates

Extended Validated Certificates yêu cầu xác thực cấp cao trong đó CA tiến hành kiểm tra lý lịch nghiêm ngặt đối với tổ chức theo hướng dẫn. Điều này bao gồm xác minh sự tồn tại hợp pháp, vật chất và hoạt động của thực thể.

Single Domain Certificate

Single Domain Certificate đảm bảo một tên miền hoàn toàn đủ điều kiện. Ví dụ: Single Domain Certificate cho www.example.com sẽ không bảo mật thông tin liên lạc cho mail.example.com.

Wildcard SSL Certificate

Wildcard SSL Certificate đảm bảo số lượng miền phụ không giới hạn cho một miền. Ví dụ:Wildcard SSL Certificate đại diện cho example.com cũng sẽ bảo mật mail.example.com, blog.example.com, v.v.

Unified SSL Certificate /Multi-Domain SSL Certificate/SAN Certificate

SSL Certificate hợp nhất bảo vệ tối đa 100 miền sử dụng cùng một chứng chỉ với sự trợ giúp của phần mở rộng SAN. Nó được thiết kế đặc biệt để bảo mật môi trường Microsoft Exchange và Office Communication.

Khi bạn chọn loại SSL Certificate nào

nếu bạn yêu cầu, bạn cần phải mua nó từ CA có uy tín. Tìm hiểu về cách nhận SSL Certificate trong chương tiếp theo.

Xem thêm Mã hóa mật mã: các khái niệm cơ bản

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now