lOMoARcPSD| 58933639
TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
O CÁO
BÀI TẬP LỚN AN TN BẢO MẬT THÔNG TIN
Đề tài : Tìm hiểu về giao thức HTTP và HTTPS
Hà Nội, Tháng 09 Năm 2024
Sinh viên:
Nguyễn Huy Huấn
Ninh Duy Thành
0292967
0170667
0217467
67
PM
3
Lớp:
lOMoARcPSD| 58933639
Mục Lục
I. Giao thức HTTP (Hypertext Transfer Protocol): ......................................................................... 4
1. HTTP: ........................................................................................................................................ 4
2. HTTP Request: ......................................................................................................................... 5
3. HTTP Response: ....................................................................................................................... 6
4. Hoạt động của HTTP : ............................................................................................................. 7
5. Ưu nhược điểm của HTTP ....................................................................................................... 8
II. Giao thức HTTPS (Hypertext Transfer Protocol Security) ..................................................... 10
1) Lịch sử phát triển của HTTPS .............................................................................................. 10
2) Cấu trúc của 1 https: .............................................................................................................. 11
3) Cách mà https hoạt động: ...................................................................................................... 12
4. Truyền dữ liệu được mã hóa .................................................................................................. 13
5. Xác thực và toàn vẹn dữ liệu ................................................................................................. 13
6. Kết thúc phiên HTTPS ........................................................................................................... 13
7. Các cơ chế bảo mật bổ sung ................................................................................................... 14
8. Lợi ích của việc sử dụng https: .............................................................................................. 14
9. Nhược điểm và thách thức của HTTPS.......................................................17 .................... 16
10. Quá trình triển khai HTTPS ............................................................................................... 19
11. Các cuộc tấn công liên quan đến HTTPS ........................................................................... 19
III. Việc minh họa và sử dụng công cụ bắt gói tin HTTP & HTTPS ........................................... 22
1. Giới thiệu công cụ bắt gói tin “WireShark”: ....................................................................... 22
2. Bắt và phân tích gói tin HTTP: ............................................................................................. 22
3. Bắt và phân tích gói tin HTTPS: ........................................................................................... 32
4. Sự khác biệt giữa HTTP và HTTPS: .................................................................................... 37
5. Sự khác biệt khi áp dụng các trường từ HTTP sang HTTPS: ........................................... 38
lOMoARcPSD| 58933639
Mục tiêu của báo cáo
Làm rõ mục tiêu của báo cáo cũng như hiểu rõ hơn về giao thức HTTP
(Hypertext Transfer Protocol) & HTTPS ( Hypertext Transfer Protocol Secure)
.Cụ thể :
1. Nghiên cứu cấu trúc hoạt động của HTTP: Từ cách thức yêu cầu phản
hồi giữa client server, các phương thức HTTP, đến ưu nhược điểm của giao thức
này, nhằm hiểu rõ hơn về cách dữ liệu được truyền tải trên web.
2. Phân tích HTTPS sự khác biệt với HTTP: Tập trung vào cách HTTPS cải
thiện bảo mật bằng hóa xác thực, cùng với quá trình hoạt động chi tiết của
HTTPS từ quá trình "bắt tay" SSL/TLS đến mã hóa dữ liệu.
3. Thực hành bắt phân tích gói tin: Sử dụng công cụ WireShark để minh họa
hoạt động thực tế của các gói tin HTTPHTTPS, qua đó thấy được sự khác biệt về
bảo mật giữa hai giao thức.
lOMoARcPSD| 58933639
I. Giao thức HTTP (Hypertext Transfer Protocol):
1. HTTP:
HTTP giao thức truyền tải siêu văn bản, chyếu được sử dụng để truyền tải dữ
liệu trên web. Nó một giao thức tầng ứng dụng, hoạt động dựa trên hình
client-server, nơi 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
Mặc HTTP một giao thức không trạng thái (stateless), tức 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.
lOMoARcPSD| 58933639
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, 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) các hành động được sử dụng bởi giao thức
HTTP để chỉ định loại yêu cầu 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 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 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 keyvalue 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).
Các header này truyền đạt thông tin cốt lõi, chẳng hạn như trình duyệt 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:
lOMoARcPSD| 58933639
c) HTTP request body:
Phần body của một yêu cầu phần chứa "nội dung" của thông tin 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ậpmậ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 phản hồi các client web (thường 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 hoàn thành thành công hay không. Các 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)
Chữ "xx" chỉ các số khác nhau từ 00 đến 99.
trạng thái bắt đầu với số ‘2’ cho biết một yêu cầu đã thành công. 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 đó nghĩa lỗi xảy ra trang
web sẽ không được hiển thị. 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 điều đó đã xảy ra sai từ phía server. 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.
lOMoARcPSD| 58933639
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ữ đị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 dữ liệu HTML
trình duyệt web sẽ dịch thành một trang web.
4. Hoạt động của HTTP :
HTTP một giao thức lớp ứng dụng, hoạt động theo mô nh yêu cầu - phản hồi
giữa máy khách (client) 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 phản hồi
chia sẻ các tài liệu 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 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 xử 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 đó.
lOMoARcPSD| 58933639
Giả sử người dùng muốn truy cập vào Google.com. Người dùng nhập địa chỉ web
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 thông báo cho server của Google biết rằng người dùng
đang tìm kiếm HTML (Hypertext Markup Language) dùng để cấu trúc 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
video được yêu cầu thông qua các yêu cầu phản hồi HTTP riêng biệt. Số
lượng yêu cầu càng nhiều dụ, khi gọi một trang 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 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 phản hồi server và client sử dụng để chia sẻ dữ liệu với nhau
bao gồm ASCII. Các yêu cầu chỉ ra thông tin 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.
5. Ưu nhược điểm của HTTP
Ưu điểm của HTTP :
- Đơn giản 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ácnền tảng.
- Không yêu cầu duy trì kết nối lâu dài : Do không trạng thái, n không cần duy
trìkết nối lâu dài giữ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).
lOMoARcPSD| 58933639
- Không bảo mật tính toàn vẹn dữ liệu : Dữ liệu có thể bị thay đổi không có cảnh
báo.
- Hiệu suất : Việc mã a và giải dữ liệu 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ỏ.
lOMoARcPSD| 58933639
II. Giao thức HTTPS (Hypertext Transfer Protocol Security)
- Phương thức HTTPS (HyperText Transfer Protocol Secure) 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 máy chweb. 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.
1) Lịch sử phát triển của HTTPS
- HTTP (1989): Ra đời cùng với World Wide Web, HTTP giao thức chuẩn cho
việctrao đổi tài liệu HTML 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 bảo mật hơn
củaSSL. Các phiên bản sau như TLS 1.1, 1.2, 1.3 (2018) đã tăng cường bảo mật
hiệu suất.
- HTTPS: Kết hợp HTTP SSL/TLS, HTTPS trở thành tiêu chuẩn cho giao tiếp
antoàn trên web. Hiện nay, HTTPS 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.
lOMoARcPSD| 58933639
2) 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 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ácthông tin như phiên bản của TLS/SSL 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óa công khai của server.
- Client Key Exchange:
- Client sử dụng khóa ng khai từ chứng chỉ của server để mã hóa và gửi một "premaster
secret". Đây là giá trị bí mật dùng để tạo khóa session cho phiên mã hóa đối xứng.
- Finished:
- Cả client server sử dụng "pre-master secret" để tính toán khóa session. Sau đó,
mỗibên gửi một thô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)
- Sau khi handshake thành công, dữ liệu trao đổi giữa client server sẽ được hóa
bằng khóa session đã thiết lập. Phương thức 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 thể yêu cầu HTTP như GET, POST,... và server
phản hồi với dữ liệu tương ứng.
lOMoARcPSD| 58933639
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.
3) Cách mà https hoạt động:
HTTPS (Hypertext Transfer Protocol Secure) một phiên bản an toàn của HTTP, trong
đó dữ liệu truyền qua mạng được 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:
3.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ết lậ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 địa chỉ IP của máy chủ.
3.2. Quá trình bắt tay SSL/TLS (SSL/TLS Handshake)
a. Client Hello
- Trình duyệt (client) gửi một thông điệp `Client Hello` đến máy chủ. Thông điệp
nàychứ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 choquá
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.
lOMoARcPSD| 58933639
- 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áy chủ đượ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-master secret" (bí mật trước khi sinh) a bằng khóa công khai của
server. Giá trị này sẽ được gửi tới server chỉ server thể giải 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ên nà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ác nhận rằng quá trình bắt tay (handshake) đã hoàn tất phiên làm việc đã
sẵn sàng.
4. 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 hóa bằng khóa phiên để đảm bảo tính bảo mật toàn vẹn của
thông tin.
- 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 đến server. Server sau đó giải mã, xử lý yêu cầu gửi phản hồi được
hóa trở lại client.
5. 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 sự can thiệp nào xảy ra, MAC sẽ không khớp, kết nối
sẽ bị hủy.
6. 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ộtthông điệp `Close Notify`.
lOMoARcPSD| 58933639
- Kết nối sau đó sẽ được đóng, các khóa phiên sẽ bị hủy bỏ để đảm bảo rằng
chúngkhông thể bị sử dụng lại trong tương lai.
7. Các cơ chế bảo mật bổ sung
- HSTS (HTTP Strict Transport Security): Đây cơ chế máy chủ thể yêu
cầutrì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
serversau đó cung cấ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 hóa toàn bộ phiên làm việc giữa client 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.
8. 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
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:
8.1. Bảo mật dữ liệu
- hóa (Encryption): Dữ liệu được truyền giữa client (trình duyệt) server
quaHTTPS đều được hóa bằng SSL/TLS, giúp ngăn chặn các bên thứ ba (nhacker)
đọ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 ng đang giao tiếp với
đúngserver mà hmuố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áccuộc tấn công giả mạo, đảm bảo rằng không bị thay đổi hoặc sửa đổi trong quá
trình truyền.
8.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ệtkhi sử dụng HTTPS 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.
lOMoARcPSD| 58933639
- 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ộctấn công kiểu man-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.
8.3. Cải thiện xếp hạng trên công cụ tìm kiếm
- SEO (Search Engine Optimization): Google 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 nghĩa 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 ợt truy cập
hơn.
8.4. Bảo vệ quyền riêng tư
- Ẩn URL nội dung: HTTPS hóa không chỉ nội dung trang còn cả URL
(vớimộ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 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
theodõ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ư.
8.5. Bảo vệ khỏi các cuộc tấn công cụ thể
- 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)
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àotrang web của bạ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.
8.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 khu vực pháp
yêucầu các tổ chức sử dụng HTTPS để bảo vệ dữ liệu của khách hàng. 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 một phần quan
trọng.
- PCI-DSS Compliance: Nếu trang web của bạn xử thông tin thẻ tín dụng, việc
sửdụng HTTPS 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).
lOMoARcPSD| 58933639
8.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 yêu cầu bắt buộc để sử dụng HTTP/2, một
phiênbản nâng cao củ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ịchvụ 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.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 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ể.
8.9. Phòng chống lừa đảo (Phishing)
- 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 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.
9. Nhược điểm và thách thức của HTTPS
Mặc HTTPS mang lại nhiều lợi ích về bảo mật bảo vệ quyền riêng , nhưng
cũng những nhược điểm thách thức mà các tổ chứ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:
9.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 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 chứng chỉ
nâng cao hơn.
- Chi phí bảo trì: Chứng chỉ SSL/TLS thời hạn sử dụng cần phải được gia
hạnthường xuyên. Việc quản 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.
lOMoARcPSD| 58933639
9.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
rathêm tải cho máy chủ client. Điều này có thể làm chậm tốc độ xử 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ều này tăng thời gian kết nối ban đầu và tiêu tốn tài nguyên máy chủ.
9.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
thểlàm tăng thời gian tải trang, đặc biệt đối với các trang web lượng truy cập cao
hoặc nội dung phức tạp.
- 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ạngchậ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.
9.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ỏikiến thức chuyên sâu về bảo mật mạng. c lỗi cấu hình 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 chứng chỉ: Khi quản một hệ thống lớn với nhiều chứng chỉ SSL/TLS,
việctheo dõi gia hạn tất cả chứng chỉ 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ụ.
9.5. Vấn đề tương thích
- Không ơng thích với các trình duyệt cũ: Một số phiên bản của trình duyệt
khônghỗ trợ các phiên bả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 ơng thích với các thiết bị cũ: Các thiết bị cũ, đặc biệt c thiết bị di
độngđời cũ hoặc các hệ thống nhúng, có thể không hỗ trợ đầy đủ các tiêu chuẩn HTTPS
mới nhất.
9.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àocác tổ chức chứ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.
lOMoARcPSD| 58933639
- 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 web sẽ 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.
9.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
choviệc giám sát phân tích lưu lượng mạng trở nên khó khăn hơn. Điều này thể
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.
- Khó khăn trong lọc nội dung: Các tổ chức thể gặp khó khăn trong việc thực
hiệncác chính sách lọc nội dung trên các mạng nội bộ, vì lưu lượng HTTPS được mã 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.
9.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 HTTPS đang trở nên phổ
biến, vẫn nhiều trang web, đặc biệt những trang nhỏ hoặc cá nhân, chưa chuyển sang
sử dụng HTTPS. Điều này thể gây ra sự không đồng nhất trong trải nghiệm người
dùng.
9.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 thể làm giảm khả năng theo
dõingười dùng trên các trang web, điều này 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ố ng cụ phân tích hoặc theo dõi hoạt
độngngười dùng trên trang web thể bị ảnh ởng bởi việc hóa HTTPS, dẫn đến
việc thiếu dữ liệu hoặc dữ liệu không chính xác.
9.10. HSTS và sự cố kỹ thuật
- Khó khăn trong việc 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 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, không
thể dễ dàng chuyển trở lại HTTP để xử lý sự cố.
9.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 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:
lOMoARcPSD| 58933639
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 thách thức. Những vấn đề về chi phí, hiệu suất, tương
thích, và quản phức tạp thể đòi hỏi các tchức cần cân nhắc kỹ lưỡng chun bị
đầy đủ khi chuyển sang sử dụng HTTPS.
10. Quá trình triển khai HTTPS
Mua chứng chỉ SSL/TLS: Chọn một nhà cung cấp chứng chỉ 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.
11. Các cuộc tấn công liên quan đến HTTPS
Mặc HTTPS được thiết kế để bảo mật truyền tải dữ liệu giữa client 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:
11.1. Cuộc tấn công Man-in-the-Middle (MITM)
- tả: Trong các cuộc tấn công MITM, kẻ tấn công chèn mình giữa client server
đểcan thiệp vào luồ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 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 chế như HSTS để buộc trình duyệt luôn sử
dụngHTTPS chặn cá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.
11.2. Cuộc tấn công SSL Stripping
- tả: SSL Stripping một dạng tấn ng MITM trong đó kẻ tấn công chuyển
hướngcác yêu cầu HTTPS 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: ch hoạt HSTS trên máy chủ để buộc trình duyệt luôn sử
dụngHTTPS. Điều này ngăn chặn kẻ tấn công hạ cấp kết nối từ HTTPS xuống HTTP.
lOMoARcPSD| 58933639
11.3. Cuộc tấn công giả mạo chứng chỉ (Certificate Forgery)
- tả: Kẻ tấn công thể cố gắng tạo ra một chứng chỉ SSL giả mạo để đánh
lừangười dùng tin rằng họ đ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ưỡngchứng chỉ SSL trước khi thiết lập kết nối.
11.4. Cuộc tấn công từ CA bị xâm nhập (Compromised Certificate Authority)
- tả: Nếu một tổ chức chứng thực số (CA) bị xâm nhập, kẻ tấn công thể
pháthành các chứng chỉ hợp lệ cho các trang web giả mạo. Điều 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ế 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.
11.5. Cuộc tấn công bằng cách tái sử dụng phiên (Session Hijacking)
- tả: Nếu cookie phiên hoặc thông báo (token) phiên bị đánh cắp, kẻ tấn công
cóthể chiếm quyền điều khiển phiên người dùng 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 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ỉ.
11.6. Cuộc tấn công Heartbleed
- tả: Heartbleed 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 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.
11.7. Cuộc tấn công POODLE (Padding Oracle On Downgraded Legacy
Encryption)
- Mô tả: POODLE một cuộc tấn công nhắm vào giao thức SSL 3.0, cho phép kẻ
tấncông giải mã dữ liệu mã hóa.

Preview text:

lOMoAR cPSD| 58933639
TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO
BÀI TẬP LỚN AN TOÀN BẢO MẬT THÔNG TIN
Đề tài : Tìm hiểu về giao thức HTTP và HTTPS
Sinh viên: Phạm Đức Việt 0292967 Nguyễn Huy Huấn 0170667 Ninh Duy Thành 0217467 Lớp:
67 PM 3
Hà Nội, Tháng 09 Năm 2024 lOMoAR cPSD| 58933639 Mục Lục
I. Giao thức HTTP (Hypertext Transfer Protocol): ......................................................................... 4
1. HTTP: ........................................................................................................................................ 4
2. HTTP Request: ......................................................................................................................... 5
3. HTTP Response: ....................................................................................................................... 6
4. Hoạt động của HTTP : ............................................................................................................. 7
5. Ưu nhược điểm của HTTP ....................................................................................................... 8
II. Giao thức HTTPS (Hypertext Transfer Protocol Security) ..................................................... 10
1) Lịch sử phát triển của HTTPS .............................................................................................. 10
2) Cấu trúc của 1 https: .............................................................................................................. 11
3) Cách mà https hoạt động: ...................................................................................................... 12
4. Truyền dữ liệu được mã hóa .................................................................................................. 13
5. Xác thực và toàn vẹn dữ liệu ................................................................................................. 13
6. Kết thúc phiên HTTPS ........................................................................................................... 13
7. Các cơ chế bảo mật bổ sung ................................................................................................... 14
8. Lợi ích của việc sử dụng https: .............................................................................................. 14
9. Nhược điểm và thách thức của HTTPS.......................................................17 .................... 16
10. Quá trình triển khai HTTPS ............................................................................................... 19
11. Các cuộc tấn công liên quan đến HTTPS ........................................................................... 19
III. Việc minh họa và sử dụng công cụ bắt gói tin HTTP & HTTPS ........................................... 22
1. Giới thiệu công cụ bắt gói tin “WireShark”: ....................................................................... 22
2. Bắt và phân tích gói tin HTTP: ............................................................................................. 22
3. Bắt và phân tích gói tin HTTPS: ........................................................................................... 32
4. Sự khác biệt giữa HTTP và HTTPS: .................................................................................... 37
5. Sự khác biệt khi áp dụng các trường từ HTTP sang HTTPS: ........................................... 38 lOMoAR cPSD| 58933639
Mục tiêu của báo cáo
Làm rõ mục tiêu của báo cáo cũng như hiểu rõ hơn về giao thức HTTP
(Hypertext Transfer Protocol) & HTTPS ( Hypertext Transfer Protocol Secure) .Cụ thể : 1.
Nghiên cứu cấu trúc và hoạt động của HTTP: Từ cách thức yêu cầu và phản
hồi giữa client và server, các phương thức HTTP, đến ưu và nhược điểm của giao thức
này, nhằm hiểu rõ hơn về cách dữ liệu được truyền tải trên web.
2.
Phân tích HTTPS và sự khác biệt với HTTP: Tập trung vào cách HTTPS cải
thiện bảo mật bằng mã hóa và xác thực, cùng với quá trình hoạt động chi tiết của
HTTPS từ quá trình "bắt tay" SSL/TLS đến mã hóa dữ liệu.
3.
Thực hành bắt và phân tích gói tin: Sử dụng công cụ WireShark để minh họa
hoạt động thực tế của các gói tin HTTP và HTTPS, qua đó thấy được sự khác biệt về
bảo mật giữa hai giao thức.
lOMoAR cPSD| 58933639 I.
Giao thức HTTP (Hypertext Transfer Protocol): 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
• 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. lOMoAR cPSD| 58933639 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 keyvalue 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).
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: lOMoAR cPSD| 58933639 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)
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. lOMoAR cPSD| 58933639
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.
4. 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 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 đó. lOMoAR cPSD| 58933639
• Giả sử người dùng muốn truy cập vào Google.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 Google 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.
5. Ư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ácnề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ài giữ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). lOMoAR cPSD| 58933639 -
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. -
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ỏ. lOMoAR cPSD| 58933639 II.
Giao thức HTTPS (Hypertext Transfer Protocol Security)
- 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.
1) 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ệctrao đổi tài liệu HTML 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ủaSSL. Các phiên bả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. -
HTTPS: Kết hợp HTTP và SSL/TLS, HTTPS trở thành tiêu chuẩn cho giao tiếp
antoà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. lOMoAR cPSD| 58933639
2) 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ácthô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óa cô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 "premaster
secret". Đây là 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ỗibên gửi một thô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)
- 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óa session đã 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. lOMoAR cPSD| 58933639
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.
3) 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:
3.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ết lậ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 địa chỉ IP của máy chủ.
3.2. Quá trình bắt tay SSL/TLS (SSL/TLS Handshake) a. Client Hello
- Trình duyệt (client) gửi một thông điệp `Client Hello` đến máy chủ. Thông điệp nàychứ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 choquá 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. lOMoAR cPSD| 58933639
- 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áy chủ 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-master secret" (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ên nà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ác nhậ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.
4. 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. -
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 đến server. 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.
5. 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.
6. 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ộtthông điệp `Close Notify`. lOMoAR cPSD| 58933639 -
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úngkhông thể bị sử dụng lại trong tương lai.
7. 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ầutrì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
serversau đó cung cấ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.
8. 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:
8.1. Bảo mật dữ liệu -
Mã hóa (Encryption): Dữ liệu được truyền giữa client (trình duyệt) và server
quaHTTPS đều được mã 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
đúngserver 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áccuộ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.
8.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ệtkhi sử dụng HTTPS 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. lOMoAR cPSD| 58933639 -
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ộctấn công kiểu man-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.
8.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.
8.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ớimộ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
theodõ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ư.
8.5. Bảo vệ khỏi các cuộc tấn công cụ thể -
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àotrang web của bạ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.
8.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êucầu các tổ chức sử 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). lOMoAR cPSD| 58933639
8.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ênbản nâng cao củ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ịchvụ 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.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ể.
8.9. Phòng chống lừa đảo (Phishing)
- 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.
9. 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:
9.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ạnthườ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. lOMoAR cPSD| 58933639
9.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
rathêm tải cho máy chủ 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ều này tăng thời gian kết nối ban đầu và tiêu tốn tài nguyên máy chủ.
9.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ời gian 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. -
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ạngchậ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.
9.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ỏikiến thức chuyê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ệctheo dõi và gia hạ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ụ.
9.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ônghỗ trợ các phiên bả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ác hệ thống nhúng, có thể không hỗ trợ đầy đủ các tiêu chuẩn HTTPS mới nhất.
9.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àocác tổ chức chứ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. lOMoAR cPSD| 58933639 -
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 web sẽ 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.
9.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
choviệc giám sát và 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. -
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ệncác chính sách lọc nộ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.
9.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.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õingười dùng trên cá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
độngngười dùng trên trang 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.
9.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ố.
9.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: lOMoAR cPSD| 58933639
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.
10. 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.
11. 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:
11.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ào luồ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ụngHTTPS và chặn cá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.
11.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ướngcác yêu cầu HTTPS 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ụngHTTPS. Điều này ngăn chặn kẻ tấn công hạ cấp kết nối từ HTTPS xuống HTTP. lOMoAR cPSD| 58933639
11.3. Cuộc tấn công giả mạo chứng chỉ (Certificate Forgery) -
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ừangười dùng tin rằng họ đ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ưỡngchứng chỉ SSL trước khi thiết lập kết nối.
11.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áthà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.
11.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ếm quyề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ỉ.
11.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.
11.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ấncông giải mã dữ liệu mã hóa.