<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Packet-Analysis on Roduygo | Blog</title><link>/tags/packet-analysis/</link><description>Recent content in Packet-Analysis on Roduygo | Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 21 May 2026 22:51:00 +0700</lastBuildDate><atom:link href="/tags/packet-analysis/index.xml" rel="self" type="application/rss+xml"/><item><title>Giải phẫu TLS Handshake &amp; Cipher Suites trên Wireshark</title><link>/post/tls-handshake-cipher-suites/</link><pubDate>Thu, 21 May 2026 22:51:00 +0700</pubDate><guid>/post/tls-handshake-cipher-suites/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã hiểu được tầm quan trọng của Tầng 6 (Presentation) và sự sụp đổ của SSL 3.0. Hôm nay, chúng ta sẽ đặt giao thức TLS lên &amp;ldquo;bàn mổ&amp;rdquo; Wireshark để soi kỹ từng bước trong quá trình đàm phán bảo mật. Hãy cùng giải phẫu các gói tin &lt;code&gt;Client Hello&lt;/code&gt;, &lt;code&gt;Server Hello&lt;/code&gt; và bóc tách ý nghĩa của bộ công cụ mật mã hiện đại như ECDHE hay CHACHA20_POLY1305.&lt;/p&gt;
&lt;h2 id="1-bức-tranh-toàn-cảnh-tls-handshake"&gt;1. Bức tranh toàn cảnh TLS Handshake
&lt;/h2&gt;&lt;p&gt;Trước khi mã hóa bất kỳ dữ liệu thực tế nào (Application Data), máy khách và máy chủ phải thiết lập các quy tắc chung thông qua quá trình &lt;strong&gt;bắt tay TLS&lt;/strong&gt; (TLS Handshake). Quá trình này chỉ được bắt đầu sau khi hai thiết bị đã thiết lập xong kết nối vật lý qua TCP 3-Way Handshake ở Tầng 4.&lt;/p&gt;
&lt;p&gt;Các bước cơ bản của quy trình diễn ra như sau:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Client Hello:&lt;/strong&gt; Máy khách (như trình duyệt của bạn) gửi lời chào, kèm theo danh sách các bộ công cụ mật mã (Cipher Suites) mà máy của bạn có thể hỗ trợ.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Server Hello:&lt;/strong&gt; Máy chủ nhận lời chào, so sánh và chọn ra một bộ công cụ duy nhất tốt nhất để hai bên cùng sử dụng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Certificate &amp;amp; Key Exchange:&lt;/strong&gt; Máy chủ gửi chứng chỉ (Certificate) để chứng minh danh tính, sau đó hai bên tiến hành trao đổi Khóa phiên (Session Key).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Finished:&lt;/strong&gt; &amp;ldquo;Đường hầm&amp;rdquo; mã hóa chính thức hoàn tất. Từ thời điểm này, mọi dữ liệu HTTP mới bắt đầu được truyền đi dưới dạng ẩn danh (Encrypted Application Data).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="tls-handshake" class="gallery-image" data-flex-basis="432px" data-flex-grow="180" height="340" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/tls-handshake-cipher-suites/kk.png" width="613"&gt;&lt;/p&gt;
&lt;h2 id="2-đọc-hiểu-client-hello-trên-wireshark"&gt;2. Đọc hiểu Client Hello trên Wireshark
&lt;/h2&gt;&lt;p&gt;Chúng ta sẽ sử dụng bộ lọc &lt;code&gt;tls.handshake.type == 1&lt;/code&gt; trên Wireshark để xem máy khách mang những gì đến &amp;ldquo;buổi đàm phán&amp;rdquo; ban đầu.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Bộ lọc Wireshark để tìm gói tin Client Hello
# IP máy khách: 192.168.1.14 | IP máy chủ đích: 72.34.249.208

Handshake Protocol: Client Hello
 Handshake Type: Client Hello (1)
 Length: 1910
 Version: TLS 1.2 (0x0303)
 Random: a0c794e5688f06092ca15a0a7c7452952d79b8af66b763645a55c5d0689b60dd
 Session ID Length: 32
 Session ID: 5f9fe71acbee191437c11861cf72ad48870cb6bb38d3fd5e0bbe731b6e52a7c7
 Cipher Suites Length: 32
 Cipher Suites (16 suites)
 Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
 Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
 [...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Trong gói tin này, trường thông tin mang tính sống còn nhất là &lt;strong&gt;Cipher Suites (16 suites)&lt;/strong&gt;. Trình duyệt của bạn đang gửi một danh sách gồm 16 thuật toán mật mã khác nhau và truyền đạt thông điệp: &amp;ldquo;Đây là tất cả những vũ khí bảo mật mà tôi có, Server hãy chọn ra một cái nhé!&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="3-giải-phẫu-cipher-suite-thuật-toán-chacha20_poly1305"&gt;3. Giải phẫu Cipher Suite (Thuật toán CHACHA20_POLY1305)
&lt;/h2&gt;&lt;p&gt;Ngay sau &lt;code&gt;Client Hello&lt;/code&gt;, Server sẽ đáp lại bằng gói &lt;code&gt;Server Hello&lt;/code&gt; (bộ lọc &lt;code&gt;tls.handshake.type == 2&lt;/code&gt;) và chốt lại một &amp;ldquo;bộ công cụ mật mã&amp;rdquo; duy nhất. Giả sử Server đã chọn &lt;code&gt;TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Dưới góc độ một SOC Analyst, bạn bắt buộc phải biết cách &amp;ldquo;dịch&amp;rdquo; chuỗi mã này từ trái sang phải:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;TLS&lt;/code&gt;:&lt;/strong&gt; Tên giao thức nền tảng đang sử dụng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ECDHE&lt;/code&gt; (Elliptic Curve Diffie-Hellman Ephemeral):&lt;/strong&gt; Thuật toán dùng để trao đổi khóa. Chữ &amp;ldquo;E&amp;rdquo; (Ephemeral) đảm bảo tính &lt;strong&gt;Perfect Forward Secrecy&lt;/strong&gt; — mỗi phiên làm việc có một khóa riêng. Ngay cả khi hacker đánh cắp được Khóa bí mật tĩnh của máy chủ vào ngày mai, chúng cũng không thể dùng nó để giải mã các gói tin Wireshark bắt được từ hôm nay.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;RSA&lt;/code&gt;:&lt;/strong&gt; Thuật toán xác thực danh tính. Dùng để chứng minh với máy khách rằng Server thực sự là đúng địa chỉ (thông qua Certificate).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;CHACHA20_POLY1305&lt;/code&gt;:&lt;/strong&gt; Thuật toán mã hóa đối xứng — phần lõi dùng để xáo trộn dữ liệu. Cực kỳ hiện đại, chạy mượt mà và tiết kiệm pin trên thiết bị di động so với thuật toán AES cũ.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;SHA256&lt;/code&gt;:&lt;/strong&gt; Thuật toán băm dùng cho &lt;strong&gt;HMAC&lt;/strong&gt;, đảm bảo không một ai có thể thay đổi dù chỉ 1 bit dữ liệu trên đường truyền mà không bị phát hiện.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-giải-mã-dữ-liệu-tls-trong-thực-chiến-decryption"&gt;4. Giải mã dữ liệu TLS trong thực chiến (Decryption)
&lt;/h2&gt;&lt;p&gt;Bình thường, khi bạn soi các gói tin sau quá trình Handshake, bạn sẽ chỉ thấy một vùng xám xịt mang tên &lt;strong&gt;Encrypted Application Data&lt;/strong&gt; chứa toàn ký tự rác. Để phục vụ công tác điều tra phân tích mạng (Network Forensics), chúng ta có thể ép trình duyệt nhả &amp;ldquo;Khóa phiên&amp;rdquo; (Session Key) ra một file log, sau đó nạp file này vào Wireshark để giải mã toàn bộ luồng dữ liệu.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo bảo mật:&lt;/strong&gt; Cú pháp dưới đây thiết lập biến môi trường để trích xuất khóa mã hóa riêng tư. &lt;strong&gt;Chỉ được phép thực hiện trên môi trường Lab hoặc máy phân tích cách ly.&lt;/strong&gt; Tuyệt đối không chạy lệnh này trên máy tính của người dùng thực tế vì nó sẽ làm lộ toàn bộ dữ liệu duyệt web (tài khoản, mật khẩu) của họ!&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Chỉ định đường dẫn file log để lưu Session Key của trình duyệt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export SSLKEYLOGFILE&lt;span style="color:#f92672"&gt;=&lt;/span&gt;~/tls_keys.log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Mở trình duyệt Firefox từ terminal hiện tại để bắt đầu ghi nhận khóa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;firefox &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sau khi cấu hình Wireshark trỏ đến file &lt;code&gt;tls_keys.log&lt;/code&gt; này (trong mục &lt;strong&gt;Preferences &amp;gt; Protocols &amp;gt; TLS&lt;/strong&gt;), phép màu sẽ xảy ra. Các gói tin vốn bị mã hóa đen đặc giờ đây sẽ hiển thị thêm một tab &lt;strong&gt;Decrypted TLS&lt;/strong&gt;. Bạn sẽ thấy rõ nguyên hình dữ liệu HTTP/2 trần trụi, bao gồm các phương thức &lt;code&gt;GET&lt;/code&gt;/&lt;code&gt;POST&lt;/code&gt; hay các chuỗi Header rõ ràng.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Việc đọc hiểu tường tận các bộ Cipher Suites và quy trình TLS Handshake giúp Blue Team đánh giá chính xác chất lượng bảo mật của các kết nối đang diễn ra trên hệ thống. Dù Tầng 6 đã tạo ra một đường hầm mã hóa kiên cố, nhưng chính những ứng dụng ở Tầng trên cùng mới là mục tiêu bị tin tặc khai thác nhiềutích &amp;ldquo;góc khuất ngây thơ&amp;rdquo; của hệ thống phân giải tên miền (DNS) và quá trình xin cấp phát IP của DHCP. Các bạn đừ nhất. Trong Bài 8 tiếp theo, chúng ta sẽ chính thức bước vào Lớp Ứng dụng (Application Layer - OSI 7) để phân ng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Một gói tin được cấu tạo thế nào</title><link>/post/networkbasic/</link><pubDate>Wed, 20 May 2026 08:00:00 +0700</pubDate><guid>/post/networkbasic/</guid><description>&lt;p&gt;Chào mừng các bạn đến với Series Giải phẫu Mạng (Network Anatomy) &amp;amp; Packet Analysis! Nếu trong series trước, chúng ta đã trở thành những &amp;ldquo;bác sĩ pháp y&amp;rdquo; mổ xẻ nội tạng của hệ điều hành Windows, thì ở series này, chúng ta sẽ bước ra không gian bên ngoài: Hệ thống Mạng. Đối với một SOC Analyst, nếu bạn không biết cách đọc một gói tin (Packet), bạn sẽ bị mù hoàn toàn trước các cuộc tấn công nhắm vào máy chủ. Hãy cùng khởi động bằng việc tìm hiểu bộ khung xương sống của vạn vật trên Internet: Mô hình OSI và công cụ Wireshark.&lt;/p&gt;
&lt;h2 id="1-bức-tranh-toàn-cảnh-mô-hình-osi-và-tcpip"&gt;1. Bức tranh toàn cảnh: Mô hình OSI và TCP/IP
&lt;/h2&gt;&lt;p&gt;Để các thiết bị từ các nhà sản xuất khác nhau (Apple, Lenovo, Cisco&amp;hellip;) có thể nói chuyện được với nhau, Tổ chức Tiêu chuẩn hóa Quốc tế đã tạo ra một bộ quy tắc chung gọi là Mô hình OSI (Open Systems Interconnection). Nó chia quá trình mạng phức tạp thành 7 tầng riêng biệt.&lt;/p&gt;
&lt;p&gt;Từ trên xuống dưới, 7 tầng này bao gồm:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tầng 7 - Application (Ứng dụng):&lt;/strong&gt; Nơi dữ liệu có ý nghĩa với con người (như giao thức HTTP, DNS, SSH, FTP). Hầu hết các cuộc tấn công hiện đại như SQL Injection đều nhắm vào tầng này.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 6 - Presentation (Trình bày):&lt;/strong&gt; Làm nhiệm vụ thông dịch, nén và đặc biệt là Mã hóa (như SSL/TLS) để bảo mật dữ liệu.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 5 - Session (Phiên):&lt;/strong&gt; Thiết lập, duy trì và quản lý phiên kết nối (Session ID) giữa 2 thiết bị.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 4 - Transport (Giao vận):&lt;/strong&gt; Kiểm soát truyền tải bằng TCP (tin cậy) hoặc UDP (tốc độ). Nó chia dữ liệu thành các đoạn nhỏ và dùng số Cổng (Port) để định tuyến đến đúng ứng dụng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 3 - Network (Mạng):&lt;/strong&gt; Quản lý địa chỉ logic (IP) và tìm đường đi (Routing) tốt nhất trên môi trường Internet.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 2 - Data Link (Liên kết dữ liệu):&lt;/strong&gt; Quản lý địa chỉ vật lý (MAC) để các thiết bị nói chuyện trực tiếp với nhau trong cùng một mạng LAN.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 1 - Physical (Vật lý):&lt;/strong&gt; Chuyển đổi dữ liệu nhị phân (0 và 1) thành các xung điện, ánh sáng hoặc sóng vô tuyến (Wi-Fi) truyền trên dây cáp vật lý.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Trong thực tế triển khai, người ta thường gộp mô hình này lại cho gọn nhẹ thành Mô hình TCP/IP (4 Lớp): Lớp Ứng dụng (gộp tầng 5,6,7), Lớp Giao vận (tầng 4), Lớp Internet (tầng 3), và Lớp Giao diện mạng (gộp tầng 1,2).&lt;/p&gt;
&lt;p&gt;&lt;img alt="Mô hình OSI và TCP/IP" class="gallery-image" data-flex-basis="224px" data-flex-grow="93" height="304" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/img1.png" width="284"&gt;&lt;/p&gt;
&lt;h2 id="2-hành-trình-của-một-dữ-liệu-đóng-gói-encapsulation"&gt;2. Hành trình của một dữ liệu: Đóng gói (Encapsulation)
&lt;/h2&gt;&lt;p&gt;Khi bạn bấm nút &amp;ldquo;Gửi&amp;rdquo; một tin nhắn, dữ liệu không bay thẳng vèo sang máy bên kia. Nó phải trải qua quá trình Đóng gói (Encapsulation) - nghĩa là đi qua mỗi tầng sẽ bị bọc thêm một lớp vỏ (Header) mới.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dữ liệu thô (Data):&lt;/strong&gt; Được sinh ra ở tầng Ứng dụng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Segment / Datagram:&lt;/strong&gt; Xuống Tầng 4, nó được dán thêm Header của TCP hoặc UDP chứa thông tin Cổng (Port).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Packet (Gói tin):&lt;/strong&gt; Xuống Tầng 3, nó được bọc thêm IP Header chứa IP Nguồn và IP Đích.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frame (Khung):&lt;/strong&gt; Xuống Tầng 2, nó tiếp tục được dán thêm địa chỉ MAC Nguồn và MAC Đích.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bits:&lt;/strong&gt; Cuối cùng, chiếc card mạng (NIC) biến toàn bộ Frame đó thành các tia điện hoặc sóng Wi-Fi đẩy ra ngoài (Lớp 1).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Khi đến máy nhận, quá trình ngược lại gọi là Mở gói (Decapsulation) sẽ diễn ra: Lột dần từng lớp vỏ từ dưới lên trên để lấy dữ liệu thực.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Cách biểu diễn dữ liệu trong mô hình OSI" class="gallery-image" data-flex-basis="425px" data-flex-grow="177" height="486" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/image.png" srcset="/post/networkbasic/image_hu_1098341a0a271d9e.png 800w, /post/networkbasic/image.png 862w" width="862"&gt;&lt;/p&gt;
&lt;h2 id="3-đặt-gói-tin-lên-bàn-mổ-wireshark"&gt;3. Đặt gói tin lên &amp;ldquo;bàn mổ&amp;rdquo; Wireshark
&lt;/h2&gt;&lt;p&gt;Wireshark chính là kính hiển vi của SOC Analyst. Nó bắt được chính xác cấu trúc đóng gói mà ta vừa học. Khi bạn click vào một gói tin bất kỳ trên Wireshark, giao diện chi tiết ở khung bên dưới sẽ phản ánh đúng thứ tự của mô hình OSI.&lt;/p&gt;
&lt;p&gt;Hãy cùng giải phẫu các thành phần cốt lõi của một gói tin:&lt;/p&gt;
&lt;h3 id="31-lớp-1-physical---mục-frame"&gt;3.1 Lớp 1 (Physical) - Mục Frame
&lt;/h3&gt;&lt;p&gt;Đây là các siêu dữ liệu vật lý mà card mạng ghi nhận được:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Frame Length:&lt;/strong&gt; Kích thước thực sự của gói tin khi chạy trên dây cáp (ví dụ: 96 bytes (768 bits)).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Arrival Time:&lt;/strong&gt; Thời gian chính xác đến từng micro giây mà gói tin chạm vào card mạng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interface id:&lt;/strong&gt; Tên card mạng đang bắt gói tin (ví dụ: wlp8s0 trên Linux).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Protocols in frame:&lt;/strong&gt; Wireshark tóm tắt luôn các lớp vỏ bên trong: &lt;code&gt;eth:ethertype:ip:tcp:dns&lt;/code&gt; (Gói DNS chạy trên TCP, bọc bởi IP và Ethernet).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Wireshark hiển thị phần Frame" class="gallery-image" data-flex-basis="648px" data-flex-grow="270" height="353" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/frame.png" srcset="/post/networkbasic/frame_hu_8f96efe506fb5a36.png 800w, /post/networkbasic/frame.png 954w" width="954"&gt;&lt;/p&gt;
&lt;h3 id="32-lớp-2-data-link---mục-ethernet-ii"&gt;3.2 Lớp 2 (Data Link) - Mục Ethernet II
&lt;/h3&gt;&lt;p&gt;Đây là nơi địa chỉ vật lý (MAC Address) làm chủ cuộc chơi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Source (Src) &amp;amp; Destination (Dst):&lt;/strong&gt; Địa chỉ MAC (gồm 48 bit) của máy gửi và máy nhận (thường là Router để đi ra Internet).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Type:&lt;/strong&gt; Một ID cực kỳ quan trọng báo hiệu cho card mạng biết lớp vỏ tiếp theo là gì. Nếu là IPv4 (&lt;code&gt;0x0800&lt;/code&gt;), nó sẽ chuyển lên cho giao thức IPv4 xử lý. Nếu là &lt;code&gt;0x86dd&lt;/code&gt;, đó là IPv6.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Wireshark hiển thị phần Ethernet II" class="gallery-image" data-flex-basis="954px" data-flex-grow="397" height="242" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/datalink.png" srcset="/post/networkbasic/datalink_hu_4d34881798340e40.png 800w, /post/networkbasic/datalink.png 962w" width="962"&gt;&lt;/p&gt;
&lt;h3 id="33-lớp-3-network---mục-ipv4"&gt;3.3 Lớp 3 (Network) - Mục IPv4
&lt;/h3&gt;&lt;p&gt;Bóc lớp Ethernet ra, chúng ta thấy bộ định tuyến Internet:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Source Address &amp;amp; Destination Address:&lt;/strong&gt; Địa chỉ IP logic của máy gửi và máy đích.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time to Live (TTL):&lt;/strong&gt; &amp;ldquo;Tuổi thọ&amp;rdquo; của gói tin. Mỗi khi đi qua một con Router, số này bị trừ đi 1 để tránh gói tin chạy vòng vòng mãi mãi. Nếu thấy TTL = 64, hệ thống nguồn có khả năng cao là chạy nhân Linux.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flags:&lt;/strong&gt; Các lá cờ điều khiển. Ví dụ cờ &lt;code&gt;0x2, Don't fragment&lt;/code&gt; dặn các thiết bị mạng rằng: &amp;ldquo;Tuyệt đối không xé nhỏ gói tin này ra&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Protocol:&lt;/strong&gt; Giống như Type ở Lớp 2, trường này (ví dụ: TCP (6) hoặc UDP (17)) sẽ ra lệnh cho hệ điều hành biết giao thức Tầng 4 nào sẽ phải xử lý tiếp theo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Header Checksum:&lt;/strong&gt; Dãy mã (như &lt;code&gt;0xe861&lt;/code&gt;) dùng để đảm bảo các thông tin (IP, TTL) không bị hỏng hóc hay thay đổi bit trong quá trình truyền.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Wireshark hiển thị phần IPv4" class="gallery-image" data-flex-basis="577px" data-flex-grow="240" height="400" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/ipv4.png" srcset="/post/networkbasic/ipv4_hu_176b48287d5ec3c9.png 800w, /post/networkbasic/ipv4.png 962w" width="962"&gt;&lt;/p&gt;
&lt;h3 id="34-lớp-4-transport---transmission-control-protocol-tcp"&gt;3.4 Lớp 4 (Transport) - Transmission Control Protocol (TCP)
&lt;/h3&gt;&lt;p&gt;Bên trong cùng, chúng ta sẽ thấy cổng giao tiếp và luật chơi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Source Port &amp;amp; Destination Port:&lt;/strong&gt; Ví dụ máy bạn dùng cổng ngẫu nhiên 58610 để gõ cửa cổng HTTPS (443) của Facebook.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sequence &amp;amp; Acknowledgment:&lt;/strong&gt; Các con số giúp TCP sắp xếp lại thứ tự dữ liệu cho đúng và đảm bảo không gói tin nào bị rơi rớt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Wireshark hiển thị phần TCP" class="gallery-image" data-flex-basis="507px" data-flex-grow="211" height="448" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/img1a.png" srcset="/post/networkbasic/img1a_hu_40751a0b06e98de5.png 800w, /post/networkbasic/img1a.png 947w" width="947"&gt;&lt;/p&gt;
&lt;h3 id="35-tầng-5-6-7-nơi-gói-tin-biến-mất-và-nhường-chỗ-cho-dữ-liệu-application-data"&gt;3.5 Tầng 5, 6, 7: Nơi &amp;ldquo;Gói tin&amp;rdquo; biến mất và nhường chỗ cho &amp;ldquo;Dữ liệu&amp;rdquo; (Application Data)
&lt;/h3&gt;&lt;p&gt;Nếu bạn tinh mắt quan sát trên Wireshark, bạn sẽ thấy sau khi đi qua lớp TCP/UDP (Tầng 4), các lớp phía trên (Tầng 5 - Session, Tầng 6 - Presentation, Tầng 7 - Application) thường không được chia thành các mục riêng biệt rõ ràng như lớp MAC hay lớp IP, mà chúng hòa quyện lại thành một mục gọi là Application Data (như DNS, HTTP, TLS)
Quá trình Wireshark &amp;ldquo;Giải mã&amp;rdquo; và hiển thị: Khi Wireshark bắt được luồng điện từ card mạng, nó thực hiện quá trình Decapsulation (Mở gói) đi ngược từ dưới lên trên. Nó bóc lớp vỏ Ethernet (Tầng 2) để lấy địa chỉ MAC, bóc tiếp lớp IP (Tầng 3) để lấy địa chỉ IP, và bóc lớp TCP (Tầng 4) để lấy số Port.
Khi bóc đến Tầng 4 xong, phần lõi còn lại được đẩy thẳng lên Tầng Ứng dụng (Layer 7). Lúc này:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nếu là giao thức không mã hóa (như HTTP, DNS, FTP): Wireshark sẽ &amp;ldquo;đọc hiểu&amp;rdquo; và phơi bày trần trụi toàn bộ văn bản, tài khoản, mật khẩu (Clear-text) cho bạn xem.&lt;/li&gt;
&lt;li&gt;Nếu dữ liệu đã đi qua Tầng 6 (Presentation) và bị mã hóa bởi SSL/TLS: Wireshark sẽ gom lại và hiển thị dưới dạng một khối Encrypted Application Data chứa toàn các ký tự rác mà con người (và cả hacker) không thể đọc được
&lt;img alt="Wireshark hiển thị gói tin http không được mã hóa" class="gallery-image" data-flex-basis="553px" data-flex-grow="230" height="417" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/http.png" srcset="/post/networkbasic/http_hu_f84bd66c21d2e5ef.png 800w, /post/networkbasic/http.png 962w" width="962"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Như vậy, chúng ta đã nắm được &amp;ldquo;bản đồ kho báu&amp;rdquo; của mạng máy tính và biết cách sử dụng Wireshark để đọc những lớp vỏ cơ bản nhất. Bất kỳ một công cụ bảo mật nào (Firewall, IDS/IPS) cũng đều dựa trên nguyên lý đọc các lớp Header này để chặn/mở. Ở Bài 2 tiếp theo, chúng ta sẽ lặn sâu hơn vào Tầng 2 &amp;amp; 3, phân tích các giao thức kết nối nền tảng (ARP, ICMP) và trực tiếp đóng vai Hacker để thực hiện đòn tấn công mạo danh MAC (MAC Spoofing). Hẹn gặp lại các bạn!&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>