



















Preview text:
lOMoAR cPSD| 58933639
Giao thức HTTP và HTTPS
I. Giao thức HTTP (Hypertext Transfer Protocol) A. Định nghĩa: 1) HTTP:
• HTTP là giao thức truyền tải siêu văn bản, chủ yếu được sử dụng để truyền tải dữ liệu
trên web. Nó là một giao thức ở tầng ứng dụng, hoạt động dựa trên mô hình client-
server, nơi mà client (ví dụ như trình duyệt web) gửi yêu cầu (request) đến server và
server trả lời lại với phản hồi (response).
• Là một giao thức yêu cầu-phản hồi ( Request – Respond ), HTTP cung cấp cách để
người dùng tương tác với các tài nguyên web như tệp HTML bằng cách truyền tải các
thông điệp hypertext giữa các client và server. Các client HTTP thường sử dụng kết
nối Transmission Control Protocol (TCP) để giao tiếp với server. lOMoAR cPSD| 58933639
• Mặc dù HTTP là một giao thức không trạng thái (stateless), tức là mỗi yêu cầu được
xử lý độc lập mà không liên quan đến các yêu cầu trước đó, nhưng nó có thể được kết
hợp với các công nghệ khác như cookies, sessions để duy trì trạng thái giữa các yêu cầu. 2) HTTP Request:
• HTTP Request là cách các nền tảng truyền thông Internet như trình duyệt web yêu cầu
thông tin cần thiết để tải trang web.
• Mỗi yêu cầu HTTP được thực hiện trên Internet đều mang theo một loạt dữ liệu được mã
hóa mang các loại thông tin khác nhau. Một yêu cầu HTTP thông thường bao gồm:
- Dòng yêu cầu (Request Line): Bao gồm phương thức HTTP, đường dẫn URL và phiên bản
HTTP. (HTTP version type, a URL, an HTTP method)
- Header của yêu cầu (Request Headers): Cung cấp thông tin bổ sung như loại dữ
liệu, định dạng mong muốn, và thông tin về client. (HTTP request headers)
- Body của yêu cầu (Request Body): Chứa dữ liệu cần gửi lên server, thường được
sử dụng trong các phương thức như POST hoặc PUT. (HTTP request body) a) HTTP Method:
HTTP method (phương thức HTTP) là các hành động được sử dụng bởi giao thức HTTP
để chỉ định loại yêu cầu mà client gửi đến server. Tất cả các server HTTP đều sử dụng
phương thức GET và HEAD, nhưng không phải tất cả đều hỗ trợ các phương thức yêu
cầu còn lại. Mỗi HTTP method đại diện cho một thao tác cụ thể mà client yêu cầu
server thực hiện. Dưới đây là các phương thức HTTP phổ biến:
- GET yêu cầu một tài nguyên một cách cụ thể, đầy đủ.
- HEAD yêu cầu một tài nguyên cụ thể nhưng không bao gồm nội dung body.
- POST thêm nội dung, thông điệp hoặc dữ liệu vào một trang mới dưới một tài nguyên web hiện có.
- PUT trực tiếp sửa đổi một tài nguyên web hiện có hoặc tạo một URI mới nếu cần.
- DELETE xóa bỏ một tài nguyên cụ thể.
- TRACE cho người dùng thấy bất kỳ thay đổi hoặc bổ sung nào được thực hiện đối với tài nguyên web.
- OPTIONS cho người dùng biết những phương thức HTTP nào có sẵn cho một URL cụ thể.
- CONNECT chuyển đổi kết nối yêu cầu thành một kênh TCP/IP trong suốt. -
PATCH sửa đổi một phần của tài nguyên web.
b) HTTP request headers:
Các header HTTP chứa thông tin văn bản được lưu trữ dưới dạng các cặp key-value và
chúng được bao gồm trong mọi yêu cầu HTTP (và cả phản hồi, sẽ được nói đến sau). lOMoAR cPSD| 58933639
Các header này truyền đạt thông tin cốt lõi, chẳng hạn như trình duyệt mà client đang
sử dụng và dữ liệu đang được yêu cầu.
Ví dụ về các header yêu cầu HTTP từ tab mạng của Google Chrome: c) HTTP request body:
Phần body của một yêu cầu là phần chứa "nội dung" của thông tin mà yêu cầu đang
chuyển tải. Body của một yêu cầu HTTP chứa bất kỳ thông tin nào đang được gửi lên
web server, chẳng hạn như tên đăng nhập và mật khẩu, hoặc bất kỳ dữ liệu nào khác
được nhập vào trong một biểu mẫu. 3) HTTP Response:
HTTP response là phản hồi mà các client web (thường là trình duyệt) nhận được từ một
server Internet để trả lời cho một yêu cầu HTTP. Những phản hồi này cung cấp thông
tin quan trọng dựa trên những gì đã được yêu cầu trong yêu cầu HTTP.
Một HTTP response thông thường bao gồm:
o Mã trạng thái HTTP (HTTP
status code) o Các header của HTTP response o Phần body
của HTTP response (nếu có) a) HTTP status code:
Mã trạng thái HTTP là các mã số 3 chữ số thường được sử dụng để chỉ ra liệu một yêu
cầu HTTP có được hoàn thành thành công hay không. Các mã trạng thái được chia thành 5 nhóm sau: o 1xx Thông tin (Informational) o 2xx Thành
công (Success) o 3xx Chuyển hướng (Redirection) o 4xx
Lỗi từ phía client (Client Error) o 5xx Lỗi từ phía server (Server Error) lOMoAR cPSD| 58933639
Chữ "xx" chỉ các số khác nhau từ 00 đến 99.
Mã trạng thái bắt đầu với số ‘2’ cho biết một yêu cầu đã thành công. Ví dụ, sau khi client
yêu cầu một trang web, phản hồi thường thấy nhất có mã trạng thái là ‘200 OK’, cho biết
rằng yêu cầu đã được hoàn thành đúng cách.
Nếu phản hồi bắt đầu bằng số ‘4’ hoặc ‘5’, điều đó có nghĩa là có lỗi xảy ra và trang web
sẽ không được hiển thị. Mã trạng thái bắt đầu bằng ‘4’ cho biết lỗi từ phía client (rất phổ
biến khi gặp mã trạng thái ‘404 NOT FOUND’ khi gõ sai URL). Mã trạng thái bắt đầu
bằng ‘5’ nghĩa là có điều gì đó đã xảy ra sai từ phía server. Mã trạng thái cũng có thể bắt
đầu bằng ‘1’ hoặc ‘3’, tương ứng chỉ phản hồi thông tin và chuyển hướng.
b) HTTP response headers:
Tương tự như một yêu cầu HTTP, một phản hồi HTTP đi kèm với các header truyền
đạt thông tin quan trọng như ngôn ngữ và định dạng của dữ liệu được gửi trong phần
body của phản hồi. c) HTTP response body:
Các phản hồi HTTP thành công cho các yêu cầu ‘GET’ thường có một phần body chứa
thông tin đã được yêu cầu. Trong hầu hết các yêu cầu web, đây là dữ liệu HTML mà trình
duyệt web sẽ dịch thành một trang web.
B. Hoạt động của HTTP :
• HTTP là một giao thức lớp ứng dụng, hoạt động theo mô hình yêu cầu - phản hồi giữa
máy khách (client) và máy chủ (server). Các tài nguyên được trao đổi giữa các thiết bị
client và server qua Internet. Các thiết bị client gửi yêu cầu (requests) đến server để
nhận tài nguyên cần thiết nhằm tải một trang web. Sau đó server sẽ gửi lại phản hồi
(responses) để đáp ứng các yêu cầu đó. Các yêu cầu và phản hồi chia sẻ các tài liệu lOMoAR cPSD| 58933639
con như dữ liệu về hình ảnh, văn bản, bố cục văn bản, v.v. – những thứ này được trình
duyệt web của client ghép lại để hiển thị toàn bộ tệp trang web.
• Ngoài các tệp trang web mà nó có thể phục vụ, một web server còn chứa một HTTP
daemon, một chương trình chờ các yêu cầu HTTP và xử lý chúng khi chúng đến. Trình
duyệt web là một client HTTP, gửi yêu cầu đến server. Khi người dùng trình duyệt
nhập yêu cầu tệp bằng cách "mở" tệp web bằng cách nhập URL hoặc nhấp vào một
liên kết hypertext, trình duyệt sẽ tạo một yêu cầu HTTP và gửi nó đến địa chỉ Giao
thức Internet (IP address) được chỉ định bởi URL. HTTP daemon trong server đích
nhận yêu cầu và gửi lại tệp hoặc các tệp liên quan đến yêu cầu đó.
• Giả sử người dùng muốn truy cập vào XNXX.com. Người dùng nhập địa chỉ web và
máy tính gửi một yêu cầu "GET" đến server lưu trữ địa chỉ đó. Yêu cầu GET này được
gửi bằng HTTP và thông báo cho server của XNXX biết rằng người dùng đang tìm
kiếm mã HTML (Hypertext Markup Language) dùng để cấu trúc và tạo hình giao diện
cho trang đăng nhập. Văn bản của trang đăng nhập đó được bao gồm trong phản hồi
HTML, nhưng các phần khác của trang – đặc biệt là hình ảnh và video – được yêu cầu
thông qua các yêu cầu và phản hồi HTTP riêng biệt. Số lượng yêu cầu càng nhiều – ví
dụ, khi gọi một trang có nhiều hình ảnh – thì thời gian server phản hồi các yêu cầu đó
và hệ thống của người dùng tải trang sẽ càng lâu.
• Khi các cặp yêu cầu/phản hồi này được gửi, chúng sử dụng TCP/IP để giảm và vận
chuyển thông tin trong các gói nhỏ chứa các dãy nhị phân của các số 1 và 0. Các gói
này được gửi vật lý qua các dây điện, cáp quang và mạng không dây.
• Các yêu cầu và phản hồi mà server và client sử dụng để chia sẻ dữ liệu với nhau bao
gồm mã ASCII. Các yêu cầu chỉ ra thông tin mà client đang tìm kiếm từ server; phản
hồi chứa mã mà trình duyệt client sẽ dịch thành một trang web. lOMoAR cPSD| 58933639
C. Ưu nhược điểm của HTTP Ưu điểm của HTTP :
- Đơn giản và dễ triển khai : HTTP rất dễ hiểu và được hỗ trợ rộng rãi trên hầu hết các nền tảng.
- Không yêu cầu duy trì kết nối lâu dài : Do không có trạng thái, nên không cần duy trì kết
nối lâu dàigiữa client và server.
Nhược điểm của HTTP :
- Bảo mật thấp : Dữ liệu truyền qua HTTP không được mã hóa, dễ bị tấn công dạng trung gian (Man-in-the-Middle).
- Không bảo mật tính toàn vẹn dữ liệu : Dữ liệu có thể bị thay đổi mà không có cảnh báo.
II. Giao thức HTTP (Hypertext Transfer Protocol)
- Mô tả : HTTPS là phiên bản bảo mật của HTTP, sử dụng SSL/TLS (Secure Socket
Layer/Transport Layer Security) để mã hóa dữ liệu truyền tải giữa client và server, giúp bảo
vệ tính riêng tư và toàn vẹn dữ liệu.
- Hoạt động của HTTPS :
- Thiết lập kết nối an toàn : Khi một kết nối HTTPS được yêu cầu, server và client sẽ thực
hiện quá trình bắt tay SSL/TLS để tạo ra một kênh mã hóa an toàn. Quá trình này bao gồm
việc trao đổi và xác thực chứng chỉ số (certificate). lOMoAR cPSD| 58933639
- Truyền tải dữ liệu : Sau khi kết nối an toàn được thiết lập, dữ liệu giữa client và server sẽ
được mã hóa trước khi truyền tải.
- Mã hóa và giải mã : Dữ liệu gửi từ client được mã hóa bởi khóa công khai của server và
chỉ có server (với khóa riêng tư) mới có thể giải mã. Ngược lại, dữ liệu phản hồi từ server
cũng được mã hóa và chỉ có client mới có thể giải mã. - Ưu điểm của HTTPS :
- Bảo mật cao : HTTPS mã hóa toàn bộ dữ liệu truyền tải, giúp ngăn chặn việc truy cập trái
phép và bảo vệ tính toàn vẹn dữ liệu.
- Xác thực server : HTTPS sử dụng chứng chỉ số để xác thực server, giúp người dùng biết
chắc chắn rằng họ đang giao tiếp với đúng server.
- Nhược điểm của HTTPS :
- Chi phí và phức tạp hơn HTTP : Việc thiết lập HTTPS đòi hỏi phải có chứng chỉ số
SSL/TLS và cấuhình phức tạp hơn.
- Hiệu suất : Việc mã hóa và giải mã dữ liệu có thể làm giảm hiệu suất so với HTTP, mặc dù
ảnh hưởng này hiện nay là rất nhỏ.
III. Sử dụng công cụ bắt gói tin để minh họa
A. Giới thiệu công cụ bắt gói tin WireShark
• Wireshark là một công cụ phân tích giao thức mạng mạnh mẽ và miễn phí, dùng để
bắt và phân tích dữ liệu truyền trên mạng trong thời gian thực. Nó hỗ trợ hàng trăm
giao thức mạng như TCP/IP, HTTP, HTTPS, và nhiều giao thức khác, giúp người dùng
kiểm tra, khắc phục sự cố, giám sát bảo mật, và nghiên cứu mạng máy tính.
• Wireshark cung cấp giao diện đồ họa trực quan, cho phép tôi lọc và xem chi tiết từng gói tin
(packet) như địa chỉ IP, cổng, và nội dung dữ liệu. Tuy nhiên, để phân tích dữ liệu đã
mã hóa (như HTTPS), tôi cần có khóa giải mã. Wireshark là công cụ quan trọng cho
các chuyên gia mạng, bảo mật, và giáo dục về mạng máy tính. • Ưu điểm:
+ Dễ sử dụng ( Giao diện ,... ) + Phần tích nhiều giao
thức + Các gói tin dễ dàng
sử dụng GUI Nhược điểm :
+ Không thích hợp để phần tích mạng không chuyên nghiệp
+ Người dùng cần phải có kiến thức phân tích giao thức mạng lOMoAR cPSD| 58933639 + Khá xa lạ đối với người dùng Hướng dẫn cài đặt WireShark:
Link phần mềm WireShark: https://www.wireshark.org/download.html
Link hướng dẫn cài đặt: https://www.youtube.com/watch?v=igmVPJ6p-Mw&t=9s
B. Giới thiệu về giao thức HTTPS
Phương thức HTTPS (HyperText Transfer Protocol Secure) là một phiên bản bảo mật của
giao thức HTTP (HyperText Transfer Protocol), được sử dụng để truyền tải dữ liệu giữa trình
duyệt và máy chủ web. HTTPS kết hợp HTTP với các giao thức bảo mật như SSL (Secure
Sockets Layer) hoặc TLS (Transport Layer Security) để đảm bảo rằng dữ liệu truyền tải giữa
hai bên là an toàn, không bị nghe trộm, thay đổi hoặc giả mạo.
I. Lịch sử phát triển của HTTPS
- HTTP (1989): Ra đời cùng với World Wide Web, HTTP là giao thức chuẩn cho việc trao
đổi tài liệuHTML và dữ liệu giữa máy khách và máy chủ.
- SSL (1994): Được phát triển bởi Netscape, SSL 2.0 được phát hành vào năm 1995 nhưng
có nhiều lỗhổng bảo mật. SSL 3.0 ra đời vào năm 1996 với nhiều cải tiến.
- TLS (1999): TLS 1.0 được ra mắt như một phiên bản nâng cấp và bảo mật hơn của SSL.
Các phiênbản sau như TLS 1.1, 1.2, và 1.3 (2018) đã tăng cường bảo mật và hiệu suất. lOMoAR cPSD| 58933639
- HTTPS: Kết hợp HTTP và SSL/TLS, HTTPS trở thành tiêu chuẩn cho giao tiếp an toàn trên
web.Hiện nay, HTTPS là yêu cầu bắt buộc đối với các trang web thu thập thông tin cá nhân
hoặc thực hiện các giao dịch tài chính.
II.Cấu trúc của 1 https:
Cấu trúc đầy đủ của HTTPS bao gồm nhiều thành phần, được sắp xếp theo trình tự và có vai
trò quan trọng trong việc đảm bảo an toàn cho việc truyền dữ liệu giữa client (trình duyệt) và
server. Dưới đây là cấu trúc cơ bản của HTTPS:
a.URL (Uniform Resource Locator)
- Bắt đầu bằng `https://` để chỉ ra rằng kết nối sẽ sử dụng HTTPS.b . Handshake Phase (Giai đoạn bắt tay)
Đây là giai đoạn khởi tạo kết nối an toàn giữa client và server. Giai đoạn này bao gồm các bước sau: - Client Hello:
- Client gửi thông điệp này đến server để bắt đầu quá trình kết nối. Thông điệp chứa các thông
tin nhưphiên bản của TLS/SSL mà client hỗ trợ, danh sách các cipher suites, và các tham số khác. - Server Hello:
- Server phản hồi với thông điệp `Server Hello`, trong đó xác định phiên bản TLS/SSL, cipher
suite sẽđược sử dụng, và gửi kèm chứng chỉ số (certificate). - Server Certificate:
- Server gửi chứng chỉ số (SSL/TLS certificate) để chứng minh danh tính. Chứng chỉ này
chứa khóacông khai của server. - Client Key Exchange:
- Client sử dụng khóa công khai từ chứng chỉ của server để mã hóa và gửi một "pre-master
secret". Đâylà giá trị bí mật dùng để tạo khóa session cho phiên mã hóa đối xứng. - Finished:
- Cả client và server sử dụng "pre-master secret" để tính toán khóa session. Sau đó, mỗi bên
gửi mộtthông điệp `Finished` để xác nhận rằng quá trình bắt tay đã thành công. c. Session Encryption (Mã hóa phiên) lOMoAR cPSD| 58933639
- Sau khi handshake thành công, dữ liệu trao đổi giữa client và server sẽ được mã hóa bằng
khóasession đã thiết lập. Phương thức mã hóa thường là AES hoặc một phương thức khác,
tùy vào cipher suite được chọn.
d. Application Data (Dữ liệu ứng dụng)
- Dữ liệu thực tế giữa client và server được truyền tải thông qua các gói tin được mã hóa. Ở
bước này, dữ liệu từ phía client có thể là yêu cầu HTTP như GET, POST,... và server phản
hồi với dữ liệu tương ứng.
e. Session Termination (Kết thúc phiên)
- Khi quá trình giao tiếp hoàn thành, client và server sẽ thực hiện quá trình kết thúc phiên
bằng cách gửi thông điệp `Close Notify`. Điều này đảm bảo rằng phiên đã kết thúc một cách an toàn.
Cấu trúc này giúp HTTPS cung cấp một kết nối bảo mật, ngăn chặn các hành vi nghe lén
(eavesdropping), tấn công man-in-the-middle, và các hình thức tấn công khác.
III.Cách mà https hoạt động:
HTTPS (Hypertext Transfer Protocol Secure) là một phiên bản an toàn của HTTP, trong đó
dữ liệu truyền qua mạng được mã hóa bằng SSL/TLS để bảo vệ tính bảo mật và toàn vẹn của
thông tin. Dưới đây là mô tả chi tiết và đầy đủ về cách hoạt động của HTTPS:
1. Khởi tạo kết nối HTTPS
a. Gõ URL trên trình duyệt -
Khi người dùng gõ một URL bắt đầu bằng `https://` vào trình duyệt, trình duyệt sẽ
hiểu rằng cần thiếtlập một kết nối bảo mật với máy chủ. b. DNS Resolution -
Trình duyệt trước tiên sẽ liên hệ với hệ thống DNS để chuyển đổi tên miền (domain
name) thành địachỉ IP của máy chủ.
2. Quá trình bắt tay SSL/TLS (SSL/TLS Handshake) a. Client Hello lOMoAR cPSD| 58933639
- Trình duyệt (client) gửi một thông điệp `Client Hello` đến máy chủ. Thông điệp này chứa:
- Phiên bản của SSL/TLS mà client hỗ trợ.
- Danh sách các cipher suites (bộ mã hóa) mà client có thể sử dụng.
- Một số thông tin khác, chẳng hạn như các tham số mã hóa hoặc dữ liệu cần thiết cho quá trình mãhóa. b. Server Hello
- Máy chủ (server) phản hồi bằng thông điệp `Server Hello`, trong đó xác định:
- Phiên bản của SSL/TLS sẽ được sử dụng.
- Cipher suite sẽ được sử dụng cho phiên làm việc.
- Một số tham số khác cần thiết cho việc mã hóa.c. Server Certificate (Chứng chỉ máy chủ)
- Máy chủ gửi chứng chỉ SSL/TLS của mình đến client. Chứng chỉ này chứa khóa công khai
của máychủ và được cấp bởi một tổ chức chứng thực số (CA - Certificate Authority) đáng
tin cậy. d. Client Key Exchange
- Client xác thực chứng chỉ của server để đảm bảo tính hợp pháp. Sau đó, client sẽ tạo một
"pre-mastersecret" (bí mật trước khi sinh) và mã hóa nó bằng khóa công khai của server.
Giá trị này sẽ được gửi tới server và chỉ server có thể giải mã bằng khóa riêng tư của mình.
e. Session Key Generation (Tạo khóa phiên)
- Cả client và server sử dụng "pre-master secret" để tính toán ra khóa phiên (session key).
Khóa phiênnày sẽ được sử dụng cho việc mã hóa tất cả dữ liệu trong phiên làm việc. f. Finished Messages
- Client và server lần lượt gửi thông điệp `Finished` cho nhau, đã được mã hóa bằng khóa
phiên, để xácnhận rằng quá trình bắt tay (handshake) đã hoàn tất và phiên làm việc đã sẵn sàng.
3. Truyền dữ liệu được mã hóa -
Sau khi kết thúc quá trình bắt tay, cả hai bên bắt đầu truyền dữ liệu qua lại. Tất cả dữ
liệu này đềuđược mã hóa bằng khóa phiên để đảm bảo tính bảo mật và toàn vẹn của thông tin. lOMoAR cPSD| 58933639 -
Ví dụ, khi client gửi yêu cầu HTTP (chẳng hạn GET hoặc POST), dữ liệu sẽ được mã
hóa và gửi đếnserver. Server sau đó giải mã, xử lý yêu cầu và gửi phản hồi được mã hóa trở lại client.
4. Xác thực và toàn vẹn dữ liệu
- Mỗi gói dữ liệu được truyền qua kết nối HTTPS đều đi kèm với một mã xác thực thông điệp
(MAC Message Authentication Code) để đảm bảo rằng dữ liệu không bị thay đổi trong quá
trình truyền. Nếu có sự can thiệp nào xảy ra, MAC sẽ không khớp, và kết nối sẽ bị hủy.
5. Kết thúc phiên HTTPS -
Khi một trong hai bên (client hoặc server) quyết định kết thúc kết nối, họ sẽ gửi một thông điệp`Close Notify`. -
Kết nối sau đó sẽ được đóng, và các khóa phiên sẽ bị hủy bỏ để đảm bảo rằng chúng
không thể bị sửdụng lại trong tương lai.
6. Các cơ chế bảo mật bổ sung -
HSTS (HTTP Strict Transport Security): Đây là cơ chế mà máy chủ có thể yêu cầu
trình duyệt chỉ sửdụng HTTPS cho các kết nối tương lai, ngay cả khi người dùng nhập
`http://`. Điều này giúp bảo vệ chống lại các cuộc tấn công downgrade, trong đó kẻ tấn công
cố gắng buộc client sử dụng HTTP thay vì HTTPS. -
Certificate Pinning: Client lưu trữ các chứng chỉ được chấp nhận từ server. Nếu server
sau đó cungcấp một chứng chỉ khác, client sẽ cảnh báo người dùng, giúp bảo vệ chống lại
các cuộc tấn công giả mạo chứng chỉ. Tóm lại
HTTPS bảo vệ dữ liệu bằng cách mã hóa toàn bộ phiên làm việc giữa client và server, đảm
bảo rằng dữ liệu không thể bị đánh cắp hoặc chỉnh sửa bởi kẻ tấn công trung gian (man-in-
the-middle). Cơ chế SSL/TLS handshake đảm bảo rằng client và server đều xác thực lẫn nhau
và có thể thiết lập một kết nối bảo mật trước khi truyền dữ liệu.
IV.Lợi ích của việc sử dụng https:
HTTPS mang lại nhiều lợi ích quan trọng, đặc biệt trong bối cảnh bảo mật trực tuyến và trải
nghiệm người dùng. Dưới đây là những lợi ích đầy đủ nhất mà HTTPS mang lại: 1. Bảo mật dữ liệu lOMoAR cPSD| 58933639 -
Mã hóa (Encryption): Dữ liệu được truyền giữa client (trình duyệt) và server qua
HTTPS đều đượcmã hóa bằng SSL/TLS, giúp ngăn chặn các bên thứ ba (như hacker) đọc
được thông tin. Điều này đặc biệt quan trọng khi truyền các thông tin nhạy cảm như mật
khẩu, thông tin thẻ tín dụng, và dữ liệu cá nhân. -
Xác thực (Authentication): HTTPS đảm bảo rằng người dùng đang giao tiếp với đúng
server mà họmuốn kết nối, chứ không phải với một kẻ giả mạo. Điều này được thực hiện
thông qua chứng chỉ số được cấp bởi các tổ chức chứng thực (CA). -
Toàn vẹn dữ liệu (Data Integrity): Dữ liệu truyền qua HTTPS được bảo vệ khỏi các
cuộc tấn công giảmạo, đảm bảo rằng nó không bị thay đổi hoặc sửa đổi trong quá trình truyền.
2. Tăng niềm tin và bảo vệ người dùng -
Niềm tin từ người dùng: Biểu tượng ổ khóa hiển thị trên thanh địa chỉ của trình duyệt
khi sử dụngHTTPS giúp người dùng nhận biết rằng họ đang truy cập một trang web an toàn,
từ đó tăng sự tin tưởng. -
Bảo vệ chống lại các cuộc tấn công man-in-the-middle: HTTPS ngăn chặn các cuộc
tấn công kiểuman-in-the-middle (MITM), trong đó kẻ tấn công cố gắng can thiệp vào luồng
dữ liệu giữa client và server.
3. Cải thiện xếp hạng trên công cụ tìm kiếm
- SEO (Search Engine Optimization): Google và các công cụ tìm kiếm khác ưu tiên các trang
web sử dụng HTTPS trong kết quả tìm kiếm. Điều này có nghĩa là trang web của bạn có thể
được xếp hạng cao hơn nếu sử dụng HTTPS, từ đó thu hút nhiều lượt truy cập hơn.
4. Bảo vệ quyền riêng tư -
Ẩn URL và nội dung: HTTPS mã hóa không chỉ nội dung trang mà còn cả URL (với
một số ngoại lệnhất định như tên miền). Điều này giúp bảo vệ thông tin mà người dùng đang
truy cập khỏi bị xem lén bởi các bên thứ ba. -
Giảm khả năng bị theo dõi: Sử dụng HTTPS làm giảm khả năng các bên thứ ba theo
dõi các hoạtđộng trực tuyến của người dùng, giúp bảo vệ quyền riêng tư.
5. Bảo vệ khỏi các cuộc tấn công cụ thể lOMoAR cPSD| 58933639 -
Ngăn chặn các cuộc tấn công dựa trên trang web (Cross-site): HTTPS giúp bảo vệ
chống lại một sốcuộc tấn công dựa trên trang web như Cross-Site Scripting (XSS) và Cross-
Site Request Forgery (CSRF) bằng cách mã hóa dữ liệu phiên làm việc. -
Ngăn chặn việc giả mạo nội dung: HTTPS ngăn chặn việc chèn nội dung độc hại vào
trang web củabạn bởi các bên trung gian. Điều này bảo vệ người dùng khỏi việc tải xuống
các nội dung bị giả mạo hoặc độc hại.
6. Bảo đảm tuân thủ quy định -
Tuân thủ các tiêu chuẩn bảo mật: Nhiều ngành công nghiệp và khu vực pháp lý yêu
cầu các tổ chứcsử dụng HTTPS để bảo vệ dữ liệu của khách hàng. Ví dụ, GDPR ở Châu Âu
yêu cầu các biện pháp bảo mật thích hợp, trong đó HTTPS là một phần quan trọng. -
PCI-DSS Compliance: Nếu trang web của bạn xử lý thông tin thẻ tín dụng, việc sử
dụng HTTPS làbắt buộc để tuân thủ các tiêu chuẩn bảo mật dữ liệu của ngành thanh toán thẻ (PCI-DSS).
7. Tăng khả năng tương thích và khả năng tương tác -
Tương thích với HTTP/2: HTTPS là yêu cầu bắt buộc để sử dụng HTTP/2, một phiên
bản nâng caocủa HTTP giúp cải thiện tốc độ tải trang và hiệu suất web. -
Tích hợp dễ dàng với các dịch vụ web khác: HTTPS là tiêu chuẩn cho các API và dịch
vụ web hiệnđại, giúp đảm bảo khả năng tương thích và an toàn khi tích hợp với các dịch vụ khác.
8. Cải thiện trải nghiệm người dùng
- Tốc độ và hiệu suất: Dù HTTPS có thể có một chút chi phí hiệu suất, nhưng với việc sử
dụng HTTP/2, HTTPS thậm chí còn có thể cải thiện tốc độ tải trang. Ngoài ra, việc người
dùng cảm thấy an toàn hơn khi sử dụng trang web của bạn cũng góp phần cải thiện trải nghiệm tổng thể.
9. Phòng chống lừa đảo (Phishing) lOMoAR cPSD| 58933639
- Xác thực danh tính trang web: HTTPS giúp giảm thiểu các trang web lừa đảo bằng cách yêu
cầu chứng chỉ số. Các trang web không có chứng chỉ hợp lệ sẽ không hiển thị biểu tượng ổ
khóa, từ đó cảnh báo người dùng về nguy cơ lừa đảo.
Tóm lại, HTTPS không chỉ bảo vệ dữ liệu mà còn mang lại nhiều lợi ích cho cả người dùng
và quản trị viên web, từ bảo mật, tuân thủ pháp luật đến cải then trải nghiệm và xếp hạng tìm kiếm.
V. Nhược điểm và thách thức của HTTPS
Mặc dù HTTPS mang lại nhiều lợi ích về bảo mật và bảo vệ quyền riêng tư, nhưng nó cũng
có những nhược điểm và thách thức mà các tổ chức và cá nhân cần cân nhắc khi triển khai.
Dưới đây là những nhược điểm và thách thức đầy đủ của HTTPS:
1. Chi phí triển khai và bảo trì -
Chứng chỉ SSL/TLS: Để sử dụng HTTPS, các tổ chức cần phải mua chứng chỉ
SSL/TLS từ một tổchức chứng thực số (CA). Mặc dù có những tùy chọn miễn phí như Let's
Encrypt, nhưng phần lớn các doanh nghiệp vẫn phải trả phí để có các chứng chỉ nâng cao hơn. -
Chi phí bảo trì: Chứng chỉ SSL/TLS có thời hạn sử dụng và cần phải được gia hạn
thường xuyên.Việc quản lý và gia hạn các chứng chỉ này có thể tốn kém và yêu cầu sự quản lý cẩn thận. 2. Tăng tải cho máy chủ -
Mã hóa và giải mã: Việc mã hóa và giải mã dữ liệu trong quá trình truyền dẫn tạo ra
thêm tải cho máychủ và client. Điều này có thể làm chậm tốc độ xử lý của máy chủ, đặc biệt
là khi xử lý số lượng lớn yêu cầu. -
Handshake SSL/TLS: Quá trình bắt tay SSL/TLS đòi hỏi các bước trao đổi khóa và
tạo mã hóa, điềunày tăng thời gian kết nối ban đầu và tiêu tốn tài nguyên máy chủ.
3. Vấn đề về hiệu suất -
Tăng thời gian tải trang: Trong một số trường hợp, việc thiết lập kết nối HTTPS có thể
làm tăng thờigian tải trang, đặc biệt đối với các trang web có lượng truy cập cao hoặc nội dung phức tạp. lOMoAR cPSD| 58933639 -
Không tối ưu cho các thiết bị yếu: Trên các thiết bị có cấu hình thấp hoặc kết nối mạng
chậm, việc sửdụng HTTPS có thể làm giảm hiệu suất do tải CPU tăng lên. 4. Quản lý phức tạp -
Cấu hình phức tạp: Việc cấu hình đúng SSL/TLS là một quá trình phức tạp và đòi hỏi
kiến thứcchuyên sâu về bảo mật mạng. Các lỗi cấu hình có thể dẫn đến các lỗ hổng bảo mật
như sử dụng các cipher suites yếu hoặc phiên bản TLS không an toàn. -
Quản lý chứng chỉ: Khi quản lý một hệ thống lớn với nhiều chứng chỉ SSL/TLS, việc
theo dõi và giahạn tất cả chứng chỉ có thể trở thành một thách thức. Việc quên gia hạn có thể
dẫn đến việc chứng chỉ hết hạn, làm gián đoạn dịch vụ. 5. Vấn đề tương thích -
Không tương thích với các trình duyệt cũ: Một số phiên bản cũ của trình duyệt không
hỗ trợ các phiênbản mới của TLS hoặc các cipher suites hiện đại, dẫn đến việc người dùng
không thể truy cập vào trang web sử dụng HTTPS. -
Không tương thích với các thiết bị cũ: Các thiết bị cũ, đặc biệt là các thiết bị di động
đời cũ hoặc cáchệ thống nhúng, có thể không hỗ trợ đầy đủ các tiêu chuẩn HTTPS mới nhất.
6. Các vấn đề về bảo mật -
Mối đe dọa từ CA không đáng tin cậy: Hệ thống chứng chỉ SSL/TLS phụ thuộc vào
các tổ chứcchứng thực số (CA). Nếu một CA bị xâm nhập hoặc hoạt động không đúng, chứng
chỉ giả có thể được phát hành, gây ra các mối đe dọa bảo mật nghiêm trọng. -
Phụ thuộc vào chứng chỉ: Nếu một chứng chỉ SSL/TLS bị xâm phạm hoặc hết hạn,
toàn bộ trang websẽ không thể truy cập được qua HTTPS, điều này có thể gây ra sự gián đoạn dịch vụ nghiêm trọng.
7. Vấn đề về kiểm duyệt và giám sát -
Khó khăn trong giám sát: HTTPS mã hóa toàn bộ dữ liệu truyền tải, điều này làm cho
việc giám sátvà phân tích lưu lượng mạng trở nên khó khăn hơn. Điều này có thể là một thách
thức đối với các tổ chức muốn thực hiện kiểm duyệt hoặc kiểm tra nội dung để phát hiện các hoạt động độc hại. lOMoAR cPSD| 58933639 -
Khó khăn trong lọc nội dung: Các tổ chức có thể gặp khó khăn trong việc thực hiện
các chính sách lọcnội dung trên các mạng nội bộ, vì lưu lượng HTTPS được mã hóa và không
thể kiểm tra nội dung mà không có sự can thiệp sâu vào lưu lượng.
8. Cải tiến không đồng đều
- Không phải tất cả các trang web đều hỗ trợ HTTPS: Mặc dù HTTPS đang trở nên phổ biến,
vẫn có nhiều trang web, đặc biệt là những trang nhỏ hoặc cá nhân, chưa chuyển sang sử dụng
HTTPS. Điều này có thể gây ra sự không đồng nhất trong trải nghiệm người dùng.
9. Tác động tiêu cực đến quảng cáo và theo dõi -
Ảnh hưởng đến quảng cáo: Việc sử dụng HTTPS có thể làm giảm khả năng theo dõi
người dùng trêncác trang web, điều này có thể ảnh hưởng đến các chiến dịch quảng cáo trực
tuyến và giảm hiệu quả của việc nhắm mục tiêu quảng cáo. -
Khó khăn trong phân tích dữ liệu: Một số công cụ phân tích hoặc theo dõi hoạt động
người dùng trêntrang web có thể bị ảnh hưởng bởi việc mã hóa HTTPS, dẫn đến việc thiếu
dữ liệu hoặc dữ liệu không chính xác.
10. HSTS và sự cố kỹ thuật
- Khó khăn trong việc vô hiệu hóa HTTPS: Nếu một trang web sử dụng HTTP Strict Transport
Security (HSTS), trình duyệt sẽ buộc trang web luôn sử dụng HTTPS. Điều này có thể gây
ra sự cố nếu chứng chỉ SSL/TLS hết hạn hoặc gặp lỗi kỹ thuật, vì không thể dễ dàng chuyển
trở lại HTTP để xử lý sự cố.
11. Chi phí cao trong môi trường IoT
- Tài nguyên hạn chế: Trong môi trường IoT (Internet of Things), các thiết bị thường có tài
nguyên hạn chế. Việc triển khai HTTPS trong những trường hợp này có thể tiêu tốn nhiều tài
nguyên, làm giảm hiệu suất hoạt động của thiết bị. Tóm tắt:
Mặc dù HTTPS là một yếu tố quan trọng trong bảo mật web, việc triển khai và duy trì nó đi
kèm với một số nhược điểm và thách thức. Những vấn đề về chi phí, hiệu suất, tương thích,
và quản lý phức tạp có thể đòi hỏi các tổ chức cần cân nhắc kỹ lưỡng và chuẩn bị đầy đủ khi
chuyển sang sử dụng HTTPS. lOMoAR cPSD| 58933639
VI. Quá trình triển khai HTTPS •
Mua chứng chỉ SSL/TLS: Chọn một nhà cung cấp chứng chỉ và mua chứng chỉ phù
hợp với nhu cầu của bạn (ví dụ: chứng chỉ đơn, chứng chỉ cho nhiều tên miền, chứng chỉ wildcard). •
Cài đặt chứng chỉ trên máy chủ: Thực hiện các bước cài đặt chứng chỉ trên máy chủ
web của bạn, sau đó cấu hình máy chủ để sử dụng HTTPS. •
Cập nhật trang web: Đảm bảo rằng tất cả các liên kết và tài nguyên trên trang web của
bạn sử dụng HTTPS thay vì HTTP. •
Kiểm tra và xác minh: Sau khi triển khai, kiểm tra để đảm bảo rằng tất cả các phần
của trang web đang hoạt động đúng và không có lỗi liên quan đến HTTPS.
VII. Các cuộc tấn công liên quan đến HTTPS
Mặc dù HTTPS được thiết kế để bảo mật truyền tải dữ liệu giữa client và server, nhưng nó
không hoàn toàn miễn nhiễm với các cuộc tấn công. Dưới đây là một số cuộc tấn công liên quan đến HTTPS:
1. Cuộc tấn công Man-in-the-Middle (MITM) -
Mô tả: Trong các cuộc tấn công MITM, kẻ tấn công chèn mình giữa client và server
để can thiệp vàoluồng dữ liệu. Mặc dù HTTPS sử dụng mã hóa để bảo vệ dữ liệu, nhưng nếu
kẻ tấn công có thể làm giả chứng chỉ SSL hoặc chiếm quyền kiểm soát một chứng chỉ hợp lệ,
họ có thể giải mã và đọc dữ liệu. -
Cách phòng tránh: Sử dụng các cơ chế như HSTS để buộc trình duyệt luôn sử dụng
HTTPS và chặncác kết nối không an toàn. Đảm bảo rằng các chứng chỉ SSL/TLS được quản
lý đúng cách và không bị giả mạo.
2. Cuộc tấn công SSL Stripping -
Mô tả: SSL Stripping là một dạng tấn công MITM trong đó kẻ tấn công chuyển hướng
các yêu cầuHTTPS thành HTTP không bảo mật. Điều này khiến dữ liệu của người dùng
không được mã hóa và dễ bị đánh cắp. -
Cách phòng tránh: Kích hoạt HSTS trên máy chủ để buộc trình duyệt luôn sử dụng
HTTPS. Điều nàyngăn chặn kẻ tấn công hạ cấp kết nối từ HTTPS xuống HTTP.
3. Cuộc tấn công giả mạo chứng chỉ (Certificate Forgery) lOMoAR cPSD| 58933639 -
Mô tả: Kẻ tấn công có thể cố gắng tạo ra một chứng chỉ SSL giả mạo để đánh lừa
người dùng tin rằnghọ đang kết nối với một trang web hợp pháp. Nếu người dùng không nhận
ra, họ có thể vô tình gửi dữ liệu nhạy cảm đến một server giả mạo. -
Cách phòng tránh: Sử dụng chứng chỉ từ các CA uy tín, đồng thời kiểm tra kỹ lưỡng
chứng chỉ SSLtrước khi thiết lập kết nối.
4. Cuộc tấn công từ CA bị xâm nhập (Compromised Certificate Authority) -
Mô tả: Nếu một tổ chức chứng thực số (CA) bị xâm nhập, kẻ tấn công có thể phát hành
các chứng chỉhợp lệ cho các trang web giả mạo. Điều này khiến người dùng tin rằng họ đang
truy cập vào trang web hợp pháp, trong khi thực tế là trang web đã bị giả mạo. -
Cách phòng tránh: Sử dụng các kỹ thuật như Certificate Pinning để đảm bảo rằng chỉ
các chứng chỉcụ thể từ các CA được chấp nhận. Đồng thời, theo dõi các thông báo bảo mật
từ các CA và nhanh chóng phản ứng khi có vụ xâm nhập.
5. Cuộc tấn công bằng cách tái sử dụng phiên (Session Hijacking) -
Mô tả: Nếu cookie phiên hoặc mã thông báo (token) phiên bị đánh cắp, kẻ tấn công có
thể chiếmquyền điều khiển phiên người dùng và thực hiện các hành động trái phép trên trang web. -
Cách phòng tránh: Sử dụng các tùy chọn bảo mật cookie như `Secure`, `HttpOnly`, và
`SameSite` đểgiảm thiểu nguy cơ cookie bị đánh cắp. Đảm bảo rằng tất cả dữ liệu phiên đều
được mã hóa và không bị rò rỉ.
6. Cuộc tấn công Heartbleed -
Mô tả: Heartbleed là một lỗ hổng trong OpenSSL cho phép kẻ tấn công đọc bộ nhớ
của máy chủ vàlấy cắp dữ liệu như khóa riêng tư, mật khẩu, và thông tin phiên. -
Cách phòng tránh: Luôn cập nhật các phần mềm bảo mật, bao gồm OpenSSL, để vá
các lỗ hổng đãbiết. Sau khi phát hiện lỗ hổng, thay đổi ngay lập tức các chứng chỉ SSL và mật khẩu liên quan.
7. Cuộc tấn công POODLE (Padding Oracle On Downgraded Legacy Encryption) -
Mô tả: POODLE là một cuộc tấn công nhắm vào giao thức SSL 3.0, cho phép kẻ tấn
công giải mã dữliệu mã hóa. lOMoAR cPSD| 58933639 -
Cách phòng tránh: Tắt SSL 3.0 trên máy chủ và chỉ cho phép sử dụng các phiên bản
TLS mới hơn(TLS 1.2 hoặc 1.3). Điều này ngăn chặn các cuộc tấn công bằng cách lợi dụng
giao thức cũ và không an toàn.
8. Cuộc tấn công BEAST (Browser Exploit Against SSL/TLS) -
Mô tả: BEAST là một cuộc tấn công nhắm vào các phiên bản cũ của TLS (1.0), cho
phép kẻ tấn cônggiải mã dữ liệu được mã hóa bằng cách tận dụng các điểm yếu trong cách xử lý khối dữ liệu. -
Cách phòng tránh: Sử dụng phiên bản TLS 1.2 hoặc mới hơn, và áp dụng các biện
pháp giảm thiểunhư thay đổi cách tạo nonce và cách sử dụng các cipher suites an toàn.
9. Cuộc tấn công CRIME (Compression Ratio Info-leak Made Easy) -
Mô tả: CRIME là một cuộc tấn công nhắm vào các giao thức nén dữ liệu (như SPDY
và TLS) trongkhi mã hóa, cho phép kẻ tấn công trích xuất thông tin nhạy cảm từ dữ liệu mã hóa. -
Cách phòng tránh: Tắt tính năng nén dữ liệu trong TLS (TLS compression) và sử dụng
các phươngpháp bảo mật khác như mã hóa ở cấp ứng dụng.
10. Cuộc tấn công BREACH (Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext) -
Mô tả: BREACH là một biến thể của CRIME, nhưng nhắm vào HTTP compression.
Cuộc tấn côngnày có thể giải mã dữ liệu mã hóa bằng cách phân tích sự thay đổi kích thước
của phản hồi HTTP được nén. -
Cách phòng tránh: Sử dụng các biện pháp giảm thiểu như tắt HTTP compression hoặc
thay đổi cáchmã hóa dữ liệu (ví dụ: thêm padding) để làm cho cuộc tấn công trở nên khó khăn hơn. 11. Cuộc tấn công Logjam -
Mô tả: Logjam là một lỗ hổng trong giao thức TLS cho phép kẻ tấn công hạ cấp kết
nối TLS xuốngcác cipher suites yếu, đặc biệt là Diffie-Hellman 512-bit, khiến kết nối dễ bị giải mã.