<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Osi-Model on Roduygo | Blog</title><link>/tags/osi-model/</link><description>Recent content in Osi-Model on Roduygo | Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 21 May 2026 22:50:00 +0700</lastBuildDate><atom:link href="/tags/osi-model/index.xml" rel="self" type="application/rss+xml"/><item><title>Lớp 6 (Presentation) &amp; Lớp vỏ Mã hóa - Từ SSL đến TLS và Lỗ hổng POODLE</title><link>/post/presentation-layer-tls/</link><pubDate>Thu, 21 May 2026 22:50:00 +0700</pubDate><guid>/post/presentation-layer-tls/</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 đã tìm hiểu cách Tầng 5 duy trì các phiên làm việc, nhưng nếu dữ liệu (như mật khẩu, cookie) cứ thế truyền đi trần trụi thì hacker đứng giữa mạng sẽ dễ dàng tóm gọn. Đó là lúc Tầng 6 (Presentation Layer) xuất hiện như một &amp;ldquo;lớp vỏ bọc thép&amp;rdquo; để thông dịch, nén và xáo trộn mọi thông tin trước khi đẩy ra mạng. Hôm nay, chúng ta sẽ cùng mổ xẻ cơ chế hoạt động của Tầng 6, phân tích sự tiến hóa từ SSL lên TLS và bóc trần đòn đánh POODLE khét tiếng đã định hình lại tiêu chuẩn bảo mật toàn cầu.&lt;/p&gt;
&lt;h2 id="1-tầng-6-presentation-làm-nhiệm-vụ-gì"&gt;1. Tầng 6 (Presentation) làm nhiệm vụ gì?
&lt;/h2&gt;&lt;p&gt;Trong khi các tầng dưới chỉ lo việc &amp;ldquo;vận chuyển&amp;rdquo;, Tầng 6 đóng vai trò là một &amp;ldquo;người phiên dịch và đóng gói&amp;rdquo; dữ liệu chuẩn mực để đảm bảo hai thiết bị có hệ điều hành khác nhau vẫn có thể hiểu nhau. Ở tầng này, ranh giới giữa giao thức và định dạng tệp (như JPEG, MP4, JSON, XML) trở nên rất mong manh.&lt;/p&gt;
&lt;p&gt;Tầng 6 đảm nhiệm 3 trọng trách cốt lõi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Thông dịch (Translation):&lt;/strong&gt; Chuyển đổi giữa các bảng mã (như ASCII sang UTF-8). Điều này đảm bảo khi bạn gõ tiếng Việt trên ứng dụng, máy chủ ở Mỹ vẫn hiển thị đúng chữ &amp;ldquo;Học&amp;rdquo; chứ không bị lỗi font ô vuông.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nén dữ liệu (Compression):&lt;/strong&gt; Giảm dung lượng dữ liệu (như luồng stream video MP4) trước khi truyền đi để tiết kiệm băng thông.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mã hóa (Encryption):&lt;/strong&gt; Đây là phần quan trọng nhất đối với Blue Team. Toàn bộ quá trình mã hóa dữ liệu để biến văn bản thuần thành một chuỗi ký tự rác (Encrypted Application Data) được xử lý tại đây. Đại diện tiêu biểu nhất chính là giao thức &lt;strong&gt;SSL/TLS&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-kỷ-nguyên-của-ssl-và-lỗ-hổng-chí-mạng-poodle"&gt;2. Kỷ nguyên của SSL và Lỗ hổng chí mạng POODLE
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Secure Sockets Layer (SSL)&lt;/strong&gt; là thế hệ giao thức mã hóa đầu tiên bảo vệ Internet. Nó hoạt động dựa trên cơ chế bắt tay bằng &lt;strong&gt;Khóa công khai&lt;/strong&gt; (Public Key) và &lt;strong&gt;Khóa bí mật&lt;/strong&gt; (Private Key). Máy khách sẽ kiểm tra &amp;ldquo;Chứng chỉ số&amp;rdquo; của Server, tự tạo ra một &lt;strong&gt;Khóa phiên&lt;/strong&gt; (Session Key) ngẫu nhiên, dùng Khóa công khai của Server bọc lại rồi gửi đi. Chỉ Server cầm Khóa bí mật mới mở được hộp để lấy Khóa phiên dùng cho việc liên lạc sau đó.&lt;/p&gt;
&lt;p&gt;Tuy nhiên, SSL 3.0 đã bị khai tử hoàn toàn bởi một lỗ hổng có tên gọi thú vị: &lt;strong&gt;POODLE&lt;/strong&gt; (Padding Oracle On Downgraded Legacy Encryption).&lt;/p&gt;
&lt;p&gt;Đòn tấn công này đánh trực diện vào cách SSL 3.0 xử lý các &amp;ldquo;dữ liệu đệm&amp;rdquo; (padding). Hacker đứng ở giữa mạng (MitM) sẽ chủ động can thiệp làm nhiễu kết nối để ép Server và Client phải &lt;strong&gt;hạ cấp&lt;/strong&gt; (Downgrade) bảo mật từ TLS xịn xuống dùng SSL 3.0 cũ. Sau đó, chúng liên tục gửi các gói tin chỉnh sửa nhẹ đến Server. Chỉ bằng việc quan sát Server trả lời là &amp;ldquo;Lỗi rồi&amp;rdquo; hay &amp;ldquo;OK&amp;rdquo;, hacker có thể đoán ngược lại từng byte dữ liệu. Sau vài trăm lần thử, chúng lấy được toàn bộ Cookie phiên đăng nhập của bạn mà không cần phải tốn công bẻ khóa.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; POODLE chứng minh rằng thuật toán mã hóa mạnh đến đâu cũng vô dụng nếu giao thức đàm phán bị lỗi. SOC Analyst cần cấu hình Firewall và Web Server (Nginx, HAProxy) tắt hoàn toàn việc hỗ trợ &lt;strong&gt;SSL v2/v3&lt;/strong&gt;, chỉ chấp nhận &lt;strong&gt;TLS 1.2 trở lên&lt;/strong&gt; để chống lại đòn Downgrade Attack.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="3-sự-tiến-hóa-lên-tls-transport-layer-security"&gt;3. Sự tiến hóa lên TLS (Transport Layer Security)
&lt;/h2&gt;&lt;p&gt;Để khắc phục yếu điểm của SSL, &lt;strong&gt;TLS&lt;/strong&gt; ra đời. Thay vì chỉ mã hóa thụ động, TLS đóng vai trò như một hệ thống an ninh chủ động với các nâng cấp vượt bậc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Xác thực mạnh mẽ:&lt;/strong&gt; Bỏ hẳn MD5 và SHA-1 để chuyển sang các hàm băm hiện đại như &lt;strong&gt;SHA-256&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chống sửa đổi (Integrity):&lt;/strong&gt; TLS sử dụng thuật toán &lt;strong&gt;HMAC&lt;/strong&gt; (Hash-based Message Authentication Code). Kẻ tấn công không thể thay đổi dù chỉ 1 bit dữ liệu trên đường đi mà không bị hệ thống phát hiện.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bảo mật chuyển tiếp (Perfect Forward Secrecy):&lt;/strong&gt; Nhờ thuật toán trao đổi khóa &lt;strong&gt;ECDHE&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 mà chúng đã nghe lén từ hôm nay.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-giải-phẫu-cipher-suite-trên-wireshark"&gt;4. Giải phẫu Cipher Suite trên Wireshark
&lt;/h2&gt;&lt;p&gt;Khi bạn truy cập một trang web HTTPS, trong gói tin &lt;code&gt;Server Hello&lt;/code&gt; trên Wireshark, máy chủ sẽ chốt lại một &amp;ldquo;Bộ công cụ mật mã&amp;rdquo; (&lt;strong&gt;Cipher Suite&lt;/strong&gt;) duy nhất để hai bên sử dụng. Dưới đây là cách SOC Analyst đọc hiểu bộ mã &lt;code&gt;TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Log Wireshark soi gói tin Server Hello chốt thuật toán mã hóa
# Bộ lọc: tls.handshake.type == 2

Handshake Protocol: Server Hello
 Version: TLS 1.2 (0x0303)
 Session ID Length: 32
 Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Cipher-suite" class="gallery-image" data-flex-basis="455px" data-flex-grow="189" height="339" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/presentation-layer-tls/rsa.png" width="643"&gt;&lt;/p&gt;
&lt;p&gt;Cách đọc chuỗi Cipher Suite trên từ trái sang phải: ví dụ trong ảnh là TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ECDHE&lt;/code&gt;:&lt;/strong&gt; Thuật toán trao đổi khóa (đảm bảo Perfect Forward Secrecy).&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 (chứng minh máy chủ 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 thực hiện xáo trộn dữ liệu (tốc độ cực nhanh trên thiết bị hiện đại).&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 HMAC để kiểm tra tính toàn vẹn của gói tin.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dưới góc độ phân tích sự cố, nếu muốn &amp;ldquo;giải mã&amp;rdquo; các gói tin TLS để xem dữ liệu thô (HTTP) trên Wireshark, bạn có thể buộc trình duyệt xuất file lưu trữ Khóa phiên (Session Key) ra ổ cứng:&lt;/p&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;# Thiết lập biến môi trường để Firefox/Chrome nhả Khóa phiên ra file log&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Chỉ dùng trên máy Lab/máy phân tích, KHÔNG dùng trên máy người dùng thực tế&lt;/span&gt;
&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;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;firefox &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="5-mã-hóa-tls-có-an-toàn-tuyệt-đối"&gt;5. Mã hóa TLS có an toàn tuyệt đối?
&lt;/h2&gt;&lt;p&gt;Dù TLS rất thông minh, nó vẫn có những &amp;ldquo;gót chân Achilles&amp;rdquo; mà Blue Team cần dè chừng:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tấn công vào Chứng chỉ (Certificate Attacks):&lt;/strong&gt; TLS dựa vào niềm tin của Certificate. Nếu hacker lừa người dùng cài một &amp;ldquo;Root Certificate&amp;rdquo; giả vào máy, chúng có thể thực hiện &lt;strong&gt;Man-in-the-Middle (MitM)&lt;/strong&gt; để giải mã mọi thứ trơn tru.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lỗ hổng thực thi (Implementation Bugs):&lt;/strong&gt; Lỗi không nằm ở lý thuyết TLS mà nằm ở người code thư viện — điển hình là vụ &lt;strong&gt;Heartbleed&lt;/strong&gt; trên OpenSSL cho phép đọc trộm bộ nhớ RAM của máy chủ.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tấn công kênh kề (Side-channel):&lt;/strong&gt; Hacker không thèm bẻ khóa, chúng chỉ ngồi đếm kích thước gói tin và thời gian phản hồi để đoán người dùng đang xem trang web gì.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Như vậy, đi qua Tầng 6, dữ liệu của chúng ta đã được đóng gói định dạng và khoác lên mình lớp áo giáp mã hóa bất khả xâm phạm. Giờ đây, &amp;ldquo;thùng hàng&amp;rdquo; này đã sẵn sàng để được giao cho Tầng cuối cùng: Tầng 7 (Application). Ở bài viết tiếp theo — Bài 7, chúng ta sẽ khám phá thế giới của Tầng Ứng dụng, nơi diễn ra các cuộc tấn công dữ dội nhất nhắm vào các giao thức DNS ngây thơ, quá trình xin cấp IP của DHCP và sự nguy hiểm của FTP truyền thống. Đừng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Lớp 5 (Session) &amp; Ranh giới của Phiên làm việc</title><link>/post/session-layer/</link><pubDate>Thu, 21 May 2026 22:30:00 +0700</pubDate><guid>/post/session-layer/</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! Sau khi đã thiết lập xong &amp;ldquo;đường ống&amp;rdquo; vật lý vững chắc bằng giao thức TCP ở Tầng 4, hệ thống phải đối mặt với một bài toán mới: Làm sao để &amp;ldquo;nhớ mặt&amp;rdquo; người dùng mà không bắt họ phải đăng nhập lại sau mỗi cú click chuột? Đó chính là nhiệm vụ của Tầng 5 (Session Layer) — nơi ranh giới của các phiên làm việc được thiết lập và cũng là nơi hacker tung ra những đòn cướp quyền vô cùng hiểm độc.&lt;/p&gt;
&lt;h2 id="1-tầng-5-session-và-sự-cần-thiết-của-phiên-làm-việc"&gt;1. Tầng 5 (Session) và Sự cần thiết của Phiên làm việc
&lt;/h2&gt;&lt;p&gt;Khi bạn mở trình duyệt web và thực hiện nhiều yêu cầu cùng lúc (như mở nhiều tab, tải nhiều ảnh), dữ liệu có nguy cơ bị lẫn lộn vào nhau. Tầng 5 (Lớp Phiên) sinh ra để giải quyết vấn đề này bằng cách thiết lập, quản lý và kết thúc các phiên kết nối. Nó đóng vai trò tạo ra một ranh giới độc nhất cho từng cuộc liên lạc.&lt;/p&gt;
&lt;p&gt;Ở mức độ truyền tải, Tầng 5 quản lý &amp;ldquo;luồng&amp;rdquo; nói chuyện thông qua 3 chế độ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Đơn công (Simplex):&lt;/strong&gt; Dữ liệu chỉ đi một chiều (như bạn nghe radio).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bán song công (Half-duplex):&lt;/strong&gt; Hai bên nói chuyện luân phiên (như bộ đàm — người này nói xong người kia mới được nói).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Song công toàn phần (Full-duplex):&lt;/strong&gt; Cả hai cùng nói và nghe cùng lúc (như gọi điện thoại di động).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tuy nhiên, bài toán lớn nhất ở đây là &lt;strong&gt;hiệu năng&lt;/strong&gt;. Việc bắt tay (Handshake) ở Tầng 4 (TCP) và Tầng 6 (TLS) cực kỳ tốn thời gian và làm &amp;ldquo;mệt&amp;rdquo; CPU của máy chủ. Để tối ưu hóa, Tầng 5 không bắt hai thiết bị phải chào hỏi lại từ đầu cho mỗi gói tin, mà sử dụng các cơ chế định danh đặc biệt.&lt;/p&gt;
&lt;h2 id="2-giải-phẫu-session-id-và-session-ticket-trên-wireshark"&gt;2. Giải phẫu Session ID và Session Ticket trên Wireshark
&lt;/h2&gt;&lt;p&gt;Để duy trì trạng thái kết nối, Tầng 5 sử dụng hai công cụ chính là &lt;strong&gt;Session ID&lt;/strong&gt; và &lt;strong&gt;Session Ticket&lt;/strong&gt;. Bằng cách dùng Wireshark, chúng ta có thể dễ dàng bắt được những &amp;ldquo;tấm vé&amp;rdquo; này bay trên không gian mạng.&lt;/p&gt;
&lt;h3 id="21-định-danh-cuộc-trò-chuyện-bằng-session-id"&gt;2.1 Định danh cuộc trò chuyện bằng Session ID
&lt;/h3&gt;&lt;p&gt;Sau lần bắt tay đầu tiên thành công, máy chủ sẽ cấp cho bạn một &amp;ldquo;mã số định danh&amp;rdquo; gọi là &lt;strong&gt;Session ID&lt;/strong&gt;. Khi máy bạn gửi hàng nghìn khung dữ liệu tiếp theo, nó chỉ cần đính kèm ID này. Server nhìn vào ID sẽ biết ngay: &amp;ldquo;Đây là khách quen, đã kiểm tra an ninh xong rồi, cho dữ liệu đi thẳng lên Tầng 6 để xử lý!&amp;rdquo;.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Lọc gói tin Server Hello để tìm Session ID do máy chủ cấp phát
# Cú pháp bộ lọc trên Wireshark: tls.handshake.type == 2

Handshake Protocol: Server Hello
 Handshake Type: Server Hello (2)
 Length: 118
 Version: TLS 1.2 (0x0303)
 Random: dc3aa089a0c8825e54cc0106c17a0cb90305776b2d49f405fe30dc0f2bfad484
 Session ID Length: 32
 Session ID: d451a3116057f79488abdba0e27371ef79b25a156fcd8afaf011b9aa5bdb900b
 Cipher Suite: TLS_AES_128_GCM_SHA256 (0x1301)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Giá trị của handshake" class="gallery-image" data-flex-basis="687px" data-flex-grow="286" height="222" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/session-layer/handshake.png" width="636"&gt;&lt;/p&gt;
&lt;p&gt;Cái dãy số Hex dài đó (d451a311&amp;hellip;) dùng để:
Định danh cuộc trò chuyện: Khi máy Lenovo của bạn gửi hàng nghìn Frame dữ liệu tiếp theo (như các gói DATA của HTTP/2), nó không cần phải gửi lại toàn bộ thông tin chào hỏi. Nó chỉ cần gắn cái ID này vào (hoặc dùng trạng thái đã thiết lập từ ID này).
Nhận diện người quen: Server nhìn vào ID này sẽ biết: &amp;ldquo;À, đây là gói tin tiếp theo của ông bạn ở IP 192.168.1.156, đã kiểm tra xong xuôi rồi, cho dữ liệu đi thẳng lên Tầng 6 để dịch luôn!&amp;rdquo;.&lt;/p&gt;
&lt;h3 id="22-vé-phục-hồi-nhanh-session-ticket"&gt;2.2 Vé phục hồi nhanh (Session Ticket)
&lt;/h3&gt;&lt;p&gt;Để đẩy nhanh tốc độ kết nối lại (0-RTT), máy chủ cung cấp một &lt;strong&gt;Session Ticket&lt;/strong&gt;. Đây thực chất là một cái &amp;ldquo;vé&amp;rdquo; lưu trữ trạng thái bảo mật của phiên trước đó. Thay vì phải tính toán lại các thuật toán mã hóa nặng nề, máy khách chỉ cần trình chiếc vé này ra để nối lại phiên làm việc ngay lập tức.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Lọc gói tin New Session Ticket để xem vé bảo mật được mã hóa
# Cú pháp bộ lọc trên Wireshark: tls.handshake.type == 4

TLSv1.3 Record Layer: Handshake Protocol: New Session Ticket
 Content Type: Application Data (23)
 Version: TLS 1.2 (0x0303)
 Handshake Protocol: New Session Ticket
 Handshake Type: New Session Ticket (4)
 Length: 53
 TLS Session Ticket
 Session Ticket Lifetime Hint: 600 seconds (10 minutes)
 Session Ticket Age Add: 3185912667
 Session Ticket Nonce Length: 8
 Session Ticket: af23cc7378d7440f6a6447726da2062b7d2198d9b8c7aaad6a71213fba0cbb97
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Session-ticket" class="gallery-image" data-flex-basis="687px" data-flex-grow="286" height="222" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/session-layer/handshake.png" width="636"&gt;&lt;/p&gt;
&lt;h2 id="3-các-đòn-tấn-công-tử-huyệt-nhắm-vào-phiên-làm-việc"&gt;3. Các đòn tấn công tử huyệt nhắm vào Phiên làm việc
&lt;/h2&gt;&lt;p&gt;Hacker hiểu rất rõ giá trị của những mã Session ID này. Vì Server hoàn toàn tin tưởng vào cái vé, nên &lt;strong&gt;kẻ nào cầm vé, kẻ đó có quyền&lt;/strong&gt;. Dưới đây là 3 đòn tấn công kinh điển ở Tầng 5.&lt;/p&gt;
&lt;h3 id="31-cướp-phiên-session-hijacking"&gt;3.1 Cướp Phiên (Session Hijacking)
&lt;/h3&gt;&lt;p&gt;Đây là đòn đánh trực diện nhất. Kẻ địch hoàn toàn &lt;strong&gt;không cần biết mật khẩu&lt;/strong&gt; của bạn.&lt;/p&gt;
&lt;p&gt;Chúng chỉ cần &amp;ldquo;đánh cắp&amp;rdquo; được Session ID đang nằm trong Cookie hoặc bộ nhớ đệm trình duyệt thông qua các kỹ thuật như &lt;strong&gt;Sniffing&lt;/strong&gt; (nghe lén mạng Wi-Fi không an toàn) hoặc tấn công &lt;strong&gt;Cross-Site Scripting (XSS)&lt;/strong&gt;. Khi có được ID này, chúng dùng nó để gửi gói tin lên Server. Server sẽ lầm tưởng hacker chính là bạn và cho phép truy cập thẳng vào tài khoản.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; Để chống lại Session Hijacking, hệ thống mạng bắt buộc phải mã hóa toàn bộ dữ liệu truyền tải bằng &lt;strong&gt;HTTPS/TLS&lt;/strong&gt; và các Cookie phải được gắn cờ &lt;code&gt;Secure&lt;/code&gt; cùng &lt;code&gt;HttpOnly&lt;/code&gt; để ngăn mã độc JavaScript trích xuất Session ID.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="32-tấn-công-phản-hồi-replay-attack"&gt;3.2 Tấn công Phản hồi (Replay Attack)
&lt;/h3&gt;&lt;p&gt;Lỗ hổng này đánh thẳng vào cơ chế &amp;ldquo;vé phục hồi nhanh&amp;rdquo; (&lt;strong&gt;New Session Ticket / 0-RTT&lt;/strong&gt;) mà chúng ta vừa soi trên Wireshark.&lt;/p&gt;
&lt;p&gt;Vì cái vé này được thiết kế để kết nối nhanh mà không cần bắt tay lại, hacker có thể can thiệp ở giữa mạng (&lt;strong&gt;MitM&lt;/strong&gt;), bắt lấy bản sao gói tin chứa Ticket của bạn và gửi lại cho Server nhiều lần. Nếu hệ thống ứng dụng không có cơ chế chống trùng lặp (ví dụ: dùng &lt;code&gt;timestamp&lt;/code&gt; hoặc &lt;code&gt;nonce&lt;/code&gt;), hacker có thể ép Server thực hiện lại một giao dịch nhạy cảm (như chuyển tiền) nhiều lần chỉ bằng cách &amp;ldquo;phát lại&amp;rdquo; cái vé cũ đó.&lt;/p&gt;
&lt;h3 id="33-cố-định-phiên-session-fixation"&gt;3.3 Cố định Phiên (Session Fixation)
&lt;/h3&gt;&lt;p&gt;Ngược lại với việc đi ăn cắp, trong kỹ thuật này hacker lại chủ động &lt;strong&gt;&amp;ldquo;tặng&amp;rdquo;&lt;/strong&gt; cho bạn một cái ID.&lt;/p&gt;
&lt;p&gt;Kẻ tấn công sẽ tạo ra một Session ID hợp lệ từ trước, sau đó lừa bạn click vào một đường link chứa sẵn ID đó để đăng nhập. Sau khi bạn đăng nhập thành công, hệ thống vô tình &amp;ldquo;đóng dấu xác thực&amp;rdquo; cho cái ID do hacker cung cấp. Lúc này, hacker chỉ cần ung dung nhập cái ID mà chúng đã biết trước đó vào trình duyệt — phiên làm việc lúc này trở thành &amp;ldquo;dùng chung&amp;rdquo; giữa bạn và hacker.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Việc thấu hiểu Tầng 5 giúp SOC Analyst nhận ra rằng: Không phải cứ đăng nhập xong là an toàn tuyệt đối, bởi nếu kẻ gian cướp được &amp;ldquo;tấm vé&amp;rdquo; Session, chúng nghiễm nhiên trở thành người chủ hợp pháp. Tuy nhiên, cái vé đó và toàn bộ dữ liệu ứng dụng thực chất được xáo trộn như thế nào để không ai đọc lén được trên mạng? Trong Bài 6 tiếp theo, chúng ta sẽ bước lên Tầng 6 (Presentation) để bóc tách lớp vỏ mã hóa SSL/TLS, giải phẫu thuật toán CHACHA20 và tìm hiểu lỗ hổng POODLE khét tiếng. Hãy cùng chờ đón 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>