Môi trường Internet phát triển, kéo theo tội phạm mạngtăng cao, vì thế chúng ta cần phải hiểu rõ về các giao thức mạng http, https, các cáchthức hoạt động của giao thức này trên hệ thống
Trang 2Giảng viên hướng dẫn: GV NGUYỄN MẠNH THẮNG
Hà Nội, 09-2021
Trang 4Giảng viên hướng dẫn: GV NGUYỄN MẠNH THẮNG
Hà Nội, 09-2021
LỜI NÓI ĐẦU
Ngày nay khi công nghệ thông tin phát triển, việc truy cập, trao đổi, chia sẻ dữ liệutrên các trang web là rất cần thiết Có lẽ điều quen thuộc nhất khi truy cập vào một địachỉ web, chúng ta đều thấy bắt đầu với http:// hay https:// HTTP, HTTPS là một trongnhững giao thức truyền tải siêu văn bản nền tảng trên Internet, giữa máy trính củangười dùng và máy chủ server Môi trường Internet phát triển, kéo theo tội phạm mạngtăng cao, vì thế chúng ta cần phải hiểu rõ về các giao thức mạng http, https, các cáchthức hoạt động của giao thức này trên hệ thống mạng để sử dụng giao thức nào trongnhững trường hợp nào và sử dụng những giao thức này như thế nào để truy cậpInternet an toàn hơn
Nhận thấy mức độ cần thiết và tầm quan trọng cũng như xu hướng phát triển trongtương lai, chúng em đã nghiên cứu đề tài: “Tìm hiểu giao thức HTTP và HTTPS” Đềtài trình bày những vấn đề tổng quan cơ bản về giao thức mạng, giới thiệu HTTP,HTTPS với những nội dung như sau:
Chương 1: Tổng quan về giao thức mạngChương 2: Giao thức mạng HTTP và HTTPSChương 3: Phân tích gói tin qua phần mềm WiresharkKết luận và hướng phát triển
Trang 5MỤC LỤC
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i
DANH MỤC HÌNH VẼ ii
DANH MỤC BẢNG BIỂU iv
CHƯƠNG 1 TỔNG QUAN VỀ GIAO THỨC MẠNG 1
1.1 Khái niệm giao thức mạng 1
1.2 Mối đe dọa mạng 1
1.3 Những tính chất an toàn cơ bản của thông tin 2
1.3.1 Tính bí mật (Confidentiality) 2
1.3.2 Tính toàn vẹn (Integrity) 2
1.3.3 Tính khả dụng (Availability) 3
CHƯƠNG 2 GIAO THỨC HTTP VÀ HTTPS 4
2.1 HTTP là gì 4
2.1.1 Khái niệm 4
2.1.2 Sự phát triển cuar HTTP 4
2.1.3 Vai trò của HTTP trong kiến trúc web 5
2.2 Cách thức hoạt động của HTTP 5
2.2.1 Cơ chế hoạt động của HTTP 5
2.2.2 Các thành phần trong gói tin HTTP 6
2.3 HTTPS là gì 8
2.3.1 Khái niệm 8
2.3.2 Tầm quan trọng của HTTPS 8
Trang 62.4.1 SSL/ TLS là gì 10
2.4.2 Cơ chế hoạt động của SSL 12
2.4.3 Sự khác nhau giữa SSL và TLS 15
2.4.4 Điểm yếu và một số lỗ hổng 16
CHƯƠNG 3 PHÂN TÍCH GÓI TIN QUA WIRESHARK 19
3.1 Phần mềm Wireshark 19
3.1.1 Wireshark là gì? 19
3.1.2 Tính năng nổi bật 19
3.1.3 Cách cài đặt và chạy phần mềm Wireshark trên máy ảo 19
3.2 Phân tích gói tin HTTP 20
3.2.1 Thu thập lưu lượng truy cập HTTP 20
3.2.2 Quá trình trao đổi dữ liệu 20
3.3 Phân tích gói tin HTTPS 24
3.3.1 Thu thập lưu lượng truy cập HTTPS 24
3.3.2 Chọn lưu lượng truy cập đích 24
3.3.3 Phân tích lưu lượng kết nối TCP 25
3.3.4 Quá trình bắt tay SSL/TLS 26
KẾT LUẬN 31
TÀI LIỆU THAM KHẢO 32
PHỤ LỤC 33
Trang 8DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
1 HTTP Giao thức truyền tải siêu văn bản
2 HTTPS Giao thức truyền tải siêu văn bản bảo mật
3 SEO Tối ưu hóa công cụ tìm kiếm
4 CA Cơ quan phát hành các chứng chỉ kỹ thuật số
5 RSA Một thuật toán hệ mã hóa công khai
6 DSA Thuật toán chữ ký số
7 PKCS Một chuẩn do phòng thí nghiệm RSA Data Security phát triển
8 IDEA Phương pháp mã khối
9 DES Tiêu chuẩn mã hóa dữ liệu
10 MAC Mã xác thực thông điệp
11 HMAC Mã xác thực thông điệp dựa trên hàm băm
12 URL Trình định vị tài nguyên thống nhất
13 URI Chuỗi ký tự xác định tài nguyên trên web
14 IETF Nhóm đặc trách kỹ thuật Internet
15 W3C Tổ chức tiêu chuẩn quốc tế chính thức cho website
16 RFC Đề nghị duyệt thảo và bình luận
17 TCP Giao thức điều khiển truyền vận
18 IP Giao thức của Internet
19 FTP Giao thức truyền tải tập tin
20 SMTP Giao thức truyền tải thư tín đơn giản
21 REST Chuyển trạng thái trình bày
Trang 9DANH MỤC HÌNH VẼ
Hình 2.1 Sơ đồ hoạt động của HTTP 5
Hình 2.2 Ví dụ gói tin HTTP Request 6
Hình 2.3 Ví dụ gói tin HTTP Response 7
Hình 2.4 Giao tiếp qua HTTP và HTTPS 8
Hình 2.5 SSL trong trình duyệt 11
Hình 2.6 Chứng chỉ SSL 11
Hình 2.7 Mật mã bất đối xứng 12
Hình 2.8 Mật mã đối xứng 13
Hình 2.9 Giao tiếp SSL 13
Hình 2.10 Quá trình bắt tay SSL 14
Hình 2.11 SSL truyền dữ liệu 15
Hình 2.1 Dùng Wireshark chụp gói tin đến website http://actvn.edu.vn/ 20
Hình 2.2 Quá trình bắt tay 3 bước 21
Hình 2.3 Yêu cầu HTTP GET đến máy chủ 21
Hình 2.4 Các trường trong gói HTTP-GET 22
Hình 2.5 Nội dung gói tin POST 23
Hình 2.6 Các trường hợp trong gói HTTP 23
Hình 2.7 Lưu lượng truy cập HTTPS 25
Hình 2.8 Quá trình bắt tay 3 bước HTTPS 25
Hình 2.9 Qúa trình bắt tay SSL/TLS 26
Hình 2.10 Client Hello 26
Hình 2.11 Server Hello 27
Hình 2.12 Chứng chỉ SSL/TLS 28
Hình 2.13 Khóa công khai và chữ ký máy chủ gửi 28
Hình 2.14 Trao đổi khóa với máy khách 29
Trang 10Hình 2.16 Dữ liệu mã hóa 30
Trang 11DANH MỤC BẢNG BI
Y
Bảng 1.1 Sự khác nhau giữa HTTP và HTTPS 9
Trang 12CHƯƠNG 1 TỔNG QUAN VỀ GIAO THỨC MẠNG
1.1 Khái niệm giao thức mạng
Giao thức mạng là tập hợp các quy tắc được thiết lập để xác định cách dữ liệu đượctruyền giữa các thiết bị khác nhau trong cùng một mạng Về cơ bản, nó cho phép cácthiết bị được kết nối giao tiếp với nhau Các giao thức mạng là lý do chúng ta có thể dễdàng giao tiếp với mọi người trên khắp thế giới
Một số giao thức mạng cơ bản:
TCP (Transmission Control Protocol): giao thức này có nhiệm vụ chia nhỏ dữliệu ra thành các gói để truyền dữ liệu đi Thiết lập các kết nối giữa các máytính đảm bảo việc truyền dữ liệu thành công;
IP (Internet Protocol): định tuyến các gói dữ liệu khi chúng được truyền quamạng Internet, đảm bảo dữ liệu được truyền đến nơi nhận;
HTTP (HyperText Transfer Protocol): cho phép trap đổi thông tin, chủ yếu ởdạng siêu văn bản qua Internet;
HTTPS (HyperText Transfer Protocol Secure): giao thức truyền tải siêu văn bảnbảo mật, là phiên bản an toàn của HTTP, tất cả các giao tiếp giữa trình duyệt vàtrang web đều được mã hóa;
FTP (File Transfer Protocol): cho phép trao đổi tập tin qua Internet;
SMTP (Simple Mail Transfer Protocol): cho phép gửi các thông điệp thư điện
tử qua internet;
…
1.2 Mối đe dọa mạng
Các mối đe dọa mạng là những hoạt động gây hại của các tác nhân gây ảnh hưởngđến an toàn bảo mật thông tin của chúng ta hay của các cơ quan tổ chức nói chung Bamối đe dọa mạng:
Mối đe dọa bên trong: nguy cơ đến từ những người dùng có quyền truy cập hợppháp vào tài sản của công ty, sử dụng quyền truy cập đó, dù cố tình hay vô ýgây hại cho doanh nghiệp
Trang 13 Mối đe dọa bên ngoài: nguy cơ đến từ những đối tượng trên Internet, nằm ngoai
cơ quan, doanh nghiệp Bằng cách nào đó họ có thể chiếm quyền điều khiển vàtruy cập trái phép vào máy tính của bạn Nhằm mục đích đánh cắp thông tin đểtống tiền hoặc rao bán thông tin quan trọng
Mối đe dọa kết hợp: là phương pháp tấn công mạng các đặc trưng của hai mối
đe dọa trên
Có đến 60% các vụ tấn công, rò rỉ thông tin là từ các mối đe dọa bên trong Vìnhững đối tượng bên trong có điều kiện hiểu rõ hơn về mặt mạng lưới, hệ thống thôngtin, những vị trí nhạy cảm, từ đó khả năng khai thác có cơ hội cao hơn
1.3 Những tính chất an toàn cơ bản của thông tin
Một hệ thống bảo mật gồm ba đặc trưng cốt yếu đó là tính bí mật của thông tin(Confidentiality), tính toàn vẹn thông tin (Integrity), tính khả dụng của hệ thống(Availability)
1.3.1 Tính bí mật (Confidentiality)
Tính bảo mật của thông tin là tính giới hạn về đối tượng truy xuất đến thông tin,đảm bảo chỉ những đối tượng đã được cấp quyền mới biết được nội dung thông tin.Nguyên nhân phá vỡ tính bảo mật:
Tính toàn vẹn của thông tin đảm bảo sự tồn tại nguyên vẹn của thông tin, loại trừ
sự thay đổi thông tin có chủ đích hoặc hư hỏng, mất mát thông tin do sự cố thiết bịhoặc phần mềm Toàn vẹn về cả nội dung và nguồn gốc
Hoạt động dựa trên hai cơ chế:
- Cơ chế ngăn chặn: có chức năng ngăn chặn các hành vi trái phép làm thay đổi nội dung và nguồn gốc thông tin
Trang 14- Cơ chế phát hiện: chỉ thực hiện chức năng giám sát và thông báo khi có các thay đổi diễn ra trên thông tin bằng cách phân tích các sự kiện diễn ra trên hệ thống.
Nguyên nhân phá vỡ tính toàn vẹn:
- Lỗi đường truyền
- Lỗi phát sinh lưu trữ
- Tấn công sửa đổi, phá hủy
Trang 152.1.2 Sự phát triển của HTTP
HTTP được Tim Berners – Lee tại CERN khởi xướng vào năm 1989 Đứng sau làcác tổ chức lớn (IETF) và World Wide Web Consortium (W3C), và đỉnh cao là việccông bố ra hàng loạt các bản RFC (Request for Comments)
Phiên bản đầu tiên của HTTP là HTTP V0.9 (1991) Năm 1995, David Ragger lãnhđạo nhóm HTTP Working Group (HTTP WG) muốn mở rộng giao thức này đa dạnghơn như: thẻ meta – rich decription, và bảo mật hơn bằng cách thêm các phương thứkhác và các trường header
HTTP/1.1 lần đầu được chuẩn hóa trong RFC 2068 vào năm 1997 Đặc điểm kỹthuật đó đã được RFC 2016 tuân theo vào năm 1999, cũng được thay thế bằng họ RFC
7230 vào năm 2014
HTTP/2 hiệu quả hơn về ngữ nghĩa, xuất bản năm 2015; hiện được hỗ trợ bởi hầunhư tất cả các trình duyệt web và các máy chủ web lớn qua TLS bằng cách sử dụngtiện ích mở rộng Application – Layer Protocol Negotiation (ALPN) Trong đó TSL 1.2hoặc hơn là bắt buộc phải có
HTTP/3 sử dụng UDP thay vì TCP cho giao thúc truyền tải cơ bản Hỗ trợ choHTTP/3 đã được thêm vào Cloudfare và Google Chrome vào tháng 9 năm 2019, có thểđược kích hoạt trong các phiên bản ổn định của Chrome và Firefox
Trang 162.1.3 Vai trò của HTTP trong kiến trúc web
Cho phép các thành phần mạng liên lạc giữa máy khách và máy chủ Các trang weblưu lượng truy cập cao thường được sử dụng các bộ đệm web cung cấp nội dung thaycho các máy chủ thật để cải thiện thời gian phản hồi Các trình duyệt web lưu trữ tàinguyên web đã truy cập trước đó và sử dụng lại chúng khi có thể, để giảm lưu lượngmạng
2.2 Cách thức hoạt động của HTTP
2.2.1 Cơ chế hoạt động của HTTP
Để dễ hình dung, mỗi khi người dùng sử dụng trình duyệt và truy cập vào mộtwebsite, một phiên làm việc HTTP (gọi là Session) sẽ được diễn ra với client là máytính của người dùng và serer là máy chủ của website Mặc định HTTP sẽ được thựchiện thông qua port 80
Hình 2.1 Sơ đồ hoạt động của HTTP
Ví dụ khi người dùng truy cập vào địa chỉ: http://demo.vn/vidu thì quá trình củamột phiên làm việc HTTP diễn ra như sau:
- HTTP client thiết lập một kết nối TCP đến server Nếu thiết lập thành công,client và server sẽ truyền nhận dữ liệu với nhau thông qua kết nối này, kết nốiđược thiết lập còn gọi là socket interface bao gồm các thông tin: địa chỉ IP, loạigiao thức giao vận (chính là TCP), và port (mặc định là 80)
- Sau khi kết nối thành công, client gửi một HTTP request đến server thông quasocket interface vừa được thiết lập Trong gói tin request sẽ chứa đường dẫn
yêu cầu (path name) là /vidu.
Trang 17- Server sẽ nhận và xử lý request từ client thông qua socket, sau đó đóng gói dữliệu tương ứng và gửi một HTTP response về cho client Dữ liệu trả về sẽ làmột file HTML chứa các loại dữ liệu khác nhau như văn bản, hình ảnh,…
- Server đóng kết nối TCP
- Client nhận được dữ liệu phản hồi từ server và đóng kết nối TCP
2.2.2 Các thành phần trong gói tin HTTP
Trong suốt phiên làm việc HTTP như ở trên, có hai loại gói tin chính được trao đổi
là gói tin yêu cầu gửi từ client đến server gọi là “Request message” và gói tin phản hồigửi từ server đến client gọi là “Response message” Trong phần này sẽ tìm hiểu cụ thểcác thành phần có trong hai loại gói tin đó
2.2.2.1 HTTP Request Message
Gồm 3 phần chính là: Request line, Header và Body
Hình 2.2 Ví dụ gói tin HTTP Request
- Request line là dòng đầu tiên của gói HTTP Request, bao gồm 3 trường:phương thức (method), đường dẫn (path – URL hoặc URI cho trường này) vàphiên bản giao thức (HTTP version)
+ Phương thức (method) có thể là: GET, POST, HEAD, PUT và DELETE.Hai phương thức phổ biến nhất là GET và POST, trong ví dụ trên là phươngthức GET thường dùng để yêu cầu tài nguyên cung cấp trong trường URL.+ Đường dẫn (path) dùng để định danh nguồn tài nguyên mà client yêu cầu,
Trang 18+ Phiên bản giao thức (HTTP version): là phiên bản HTTP client đang sửdụng (thường là HTTP/1.0 hoặc HTTP/1.1).
Tiếp theo là các dòng Header, các dòng này là không bắt buộc, viết ở định dạng
“Name:Value” cho phép client gửi thêm các thông tin bổ sung về thông điệpHTTP request và thông tin về chính client Một số header thông dụng như:+ Accept: loại nội dung có thể nhận được từ thông điệp response Ví dụ:text/plain, text/html
+ Accept-Encoding: các kiểu nén được chấp nhận Ví dụ: gzip, deflate, xz,exi…
+ Connection: tùy chọn điều khiển cho kết nối hiện thời Ví dụ: Keep-Alive,Close…
+ Cookie: thông tin HTTP Cookie từ server
Cuối cùng là phần Body, là dữ liệu gửi từ client đến server trong gói tin HTTPrequest Đa số các gói tin gửi theo phương thức GET sẽ có Body trống, cácphương thức như POST hay PUT thường dùng để gửi dữ liệu nên sẽ có baogồm dữ liệu trong trường Body
Trang 19 Dòng Status line gồm 3 trường là phiên bản giao thức (HTTP version), mã trạngthái (Status code) và mô tả trạng thái (Status text):
+ Phiên bản giao thức (HTTP version): phiên bản của giao thức HTTP màserver hỗ trợ, thường là HTTP/1.0 hoặc HTTP/1.1
+ Mã trạng thái (Status code): mô tả trạng thái kết nối dưới dạng số, mỗi trạngthái sẽ được biểu thị bởi một số nguyên Ví dụ: 200, 404, 302,…
+ Mô tả trạng thái (Status text): mô tả trạng thái kết nối dưới dạng văn bản
một cách ngắn gọn, giúp người dùng dễ hiểu hơn so với mã trạng thái Vídu: 200 OK, 404 Not Found, 403 Forbiden,…
Các dòng Header line của gói tin Response có chức năng tương tự như gói tinRequest, giúp server có thể truyền thêm các thông tin bổ sung đến client dưới
dạng các cặp “Name:Value”.
Phần Body là nơi đóng gói dữ liệu để trả về cho client, thông thường trongduyệt web thì dữ liệu trả về sẽ ở dưới dạng một trang HTML để trình duyệt cóthể thông dịch được và hiển thị ra cho người dùng
2.3 HTTPS là gì
2.3.1 Khái niệm
HTTPS (Hypertext Transfer Protocol Secure - Bảo mật giao thức truyền siêu vănbản) là một phiên bản bảo mật của giao thức HTTP sử dụng giao thức TLS (TransportLayer Secure) hay trước đây là SSL (Secure Sockets Layer) để mã hóa và xác thực.HTTPS được sử dụng để giao tiếp an toàn qua mạng máy tính thông qua cổng 443theo mặc định thay vì cổng 80 của HTTP và được sử dụng rộng rãi trên Internet
2.3.2 Tầm quan trọng của HTTPS
Trang 20Hình 2.4 Giao tiếp qua HTTP và HTTPS
Như có thể thấy trong hình trên, HTTP truyền dữ liệu giữa trình duyệt và máy chủweb không được mã hóa, trong khi HTTPS truyền dữ liệu ở định dạng được mã hóa
Do đó, HTTPS ngăn chặn tin tặc đọc và sửa đổi dữ liệu trong quá trình truyền giữatrình duyệt và máy chủ web Ngay cả khi tin tặc quản lý để chặn liên lạc, chúng sẽkhông thể sử dụng nó vì tin nhắn đã được mã hóa
Lợi ích của HTTPS:
- Giao tiếp an toàn (Secure Communication): HTTPS tạo kết nối an toàn bằngcách thiết lập liên kết được mã hóa giữa trình duyệt và máy chủ hoặc bất kỳ hai
hệ thống nào
- Tính toàn vẹn của dữ liệu (Data Integrity): HTTPS cung cấp tính toàn vẹn của
dữ liệu bằng cách mã hóa dữ liệu và do đó, ngay cả khi tin tặc tìm cách bẫy dữliệu, chúng cũng không thể đọc hoặc sửa đổi dữ liệu đó
- Quyền riêng tư và bảo mật (Privacy and Security): HTTPS bảo vệ quyền riêng
tư và bảo mật của người dùng trang web bằng cách ngăn chặn tin tặc lắng nghethụ động thông tin liên lạc giữa trình duyệt và máy chủ
- Hiệu suất nhanh hơn (Faster Performance): HTTPS tăng tốc độ truyền dữ liệu
so với http bằng cách mã hóa và giảm kích thước của dữ liệu
- SEO: sử dụng HTTPS làm tăng thứ hạng SEO SEO là quá trình tăng chấtlượng và lưu lượng truy cập website bằng cách tăng khả năng hiển thị củawebsite cho người dùng trên các máy truy tìm dữ liệu như Google
Trang 21Không yêu cầu xác thực miền Yêu cầu xác thực miền và một số chứng chỉ
còn yêu cầu xác thực tài liệu pháp lý
2.4 Cơ chế hoạt động của HTTPS
HTTPS sử dụng một giao thức mã hóa để mã hóa thông tin liên lạc Giao thứcđược gọi là Bảo mật lớp truyền tải (TLS), mặc dù trước đây nó được gọi là Lớp cổngbảo mật (SSL) Giao thức này bảo mật thông tin liên lạc bằng cách sử dụng cơ sở hạtầng khóa công khai bất đối xứng Loại hệ thống bảo mật này sử dụng hai khóa khácnhau để mã hóa thông tin liên lạc giữa hai bên:
- The private key: khóa này được kiểm soát bởi chủ sở hữu của một trang web và
nó được giữ là riêng tư Khóa này nằm trên máy chủ web và được sử dụng đểgiải mã thông tin được mã hóa bởi khóa công khai
- The public key: khóa này khả dụng cho tất cả những ai muốn tương tác với máychủ theo cách an toàn Thông tin được mã hóa bằng khóa công khai chỉ có thểđược giải mã bằng khóa riêng
Để hiểu rõ hơn về cách hoạt động của HTTPS, ta cần phải hiểu rõ về cách nó sửdụng giao thức SSL /TLS
2.4.1 SSL/ TLS là gì
SSL hay còn gọi là lớp cổng bảo mật, viết tắt của Secure Socket Layer Đây làcông nghệ tiêu chuẩn để giữ kết nối Internet an toàn và bảo vệ bất kỳ dữ liệu nhạy cảmnào đang được gửi giữa hai hệ thống, ngăn chặn tội phạm đọc và sửa đổi bất kỳ thôngtin nào được truyền Về cơ bản, HTTPS là HTTP qua SSL SSL thiết lập một liên kếtđược mã hóa bằng chứng chỉ SSL còn được gọi là chứng chỉ kỹ thuật số
Chứng chỉ SSL đóng vai trò quan trọng trong việc bảo mật thông tin liên lạc giữahai hệ thống Chứng chỉ SSL là một tệp dữ liệu được cấp bởi Tổ chức phát hành chứngchỉ có thẩm quyền (CA) Chứng chỉ SSL chứa khóa công khai của chủ sở hữu và cácchi tiết khác Máy chủ web gửi một khóa công khai đến trình duyệt thông qua chứngchỉ SSL và trình duyệt xác minh nó và xác thực máy chủ web bằng chứng chỉ SSL
Có thể mở chứng chỉ của bất kỳ trang web nào sử dụng HTTPS Ví dụ: nhập urlhttps://www.google.com trong trình duyệt Google Chrome để kiểm tra chứng chỉ SSL
Trang 22của google.com Bất kỳ trang web https nào cũng sẽ có ổ khóa Secure trên thanh địachỉ, như hình dưới đây.