Kể từ lần đầu được giới thiệu vào thập niên 90 cho đến nay, giao thức HTTP không ngừng được phát triển và đóng vai trò quan trọng trong thế giới . HTTP hoạt động dựa trên mô hình máy khách - máy chủ. Trong mô hình này, máy tính người dùng đóng vai trò làm máy khách, sau một thao tác của người dùng, máy khách sẽ thực hiện một giao thức HTTP gửi yêu cầu đến và chờ đợi phản hồi từ máy chủ. Hiện tại, web chủ yếu áp dụng HTTP/1.1 và HTTP/2. Trong khi đó, HTTP/3 hiện chỉ được khoảng 5% trang web sử dụng và chưa được các trình duyệt web hỗ trợ đầy đủ.
Trong nỗ lực cải thiện tốc độ cho mạng, đã nghiên cứu một giao thức mạng thử nghiệm có tên QUIC (Quick UDP Internet Connections). QUIC không dựa trên TCP, thay vào đó sử dụng giao thức “đối lập” là UDP. Phiên bản 3 của giao thức HTTP (HTTP/3) dựa trên QUIC được đánh giá sẽ là sự thay thế cho các phiên bản HTTP hiện nay.
QUIC là một giao thức truyền tải Internet đem đến rất nhiều cải tiến về thiết kế để tăng tốc lưu lượng cũng như làm cho HTTP bảo mật hơn. Các tính năng của giao thức QUIC bao gồm [1]: Giảm đáng kể thời gian thiết lập kết nối; cải thiện kiểm soát tắc nghẽn; ghép kênh mà không chặn HOL; sửa lỗi chuyển tiếp; di chuyển kết nối.
Hình 1 dưới đây mô tả các thành phần của giao thức QUIC.
Hình 1. Các thành phần của giao thức QUIC
Trong đó:
- Lớp ứng dụng QUIC: bao gồm các tính năng kiểm soát luồng.
- Lớp TLS: cung cấp cơ chế trao đổi khóa.
- Lớp truyền tải QUIC: cung cấp khả năng truyền dữ liệu đáng tin cậy (phát hiện mất gói) và kiểm soát tắc nghẽn.
- Lớp bảo vệ gói QUIC: các ứng dụng QUIC gửi dữ liệu dưới dạng các khung trong các gói QUIC được mã hóa bởi thành phần bảo vệ gói QUIC. QUIC định nghĩa sáu kiểu gói dữ liệu, bao gồm:
+ Gói có tiêu đề dài: Initial; Version Negotiation; 0-RTT; Handshake; Retry.
+ Gói có tiêu đề ngắn: 1-RTT.
Lớp ứng dụng QUIC
Lớp ứng dụng QUIC bao gồm các tính năng kiểm soát luồng tương ứng với tính năng của giao thức HTTP/2.
Các giao thức ứng dụng trao đổi thông tin qua một kết nối QUIC thông qua các chuỗi byte có thứ tự được gọi là luồng. QUIC sử dụng một lược đồ dựa trên giới hạn để giới hạn việc tạo luồng và giới hạn số lượng dữ liệu có thể được gửi [2]. Số lượng dữ liệu trong QUIC được kiểm soát trên từng luồng riêng lẻ và trên toàn bộ kết nối. Bên cạnh đó, để hạn chế sự đồng thời trong một kết nối, đầu cuối QUIC còn kiểm soát số luồng tích lũy tối đa mà bên giao tiếp có thể khởi tạo:
- Bên nhận gửi cho bên gửi các khung MAX_ STREAM_DATA cùng với ID luồng tương ứng để thông báo giá trị tối đa cho một luồng hoặc MAX_ DATA để thông báo giá trị tối đa của tất cả các luồng.
- Giới hạn số luồng đến tích lũy mà một bên ngang hàng có thể mở ban đầu được thiết lập trong các tham số truyền tải. Các giới hạn tiếp theo được thông báo bằng cách sử dụng các khung MAX_STREAMS.
QUIC cung cấp tính bảo mật và tính toàn vẹn của các gói tin thông qua giao thức TLS 1.3 như được mô tả trong [3].
TLS 1.3 giới thiệu cơ chế bắt tay hoàn toàn mới giúp rút ngắn thời gian mã hóa một kết nối. Các chế độ của giao thức bắt tay trong TLS 1.3 bao gồm bắt tay 1-RTT đầy đủ và bắt tay 0-RTT.
Hình dưới đây minh họa quá trình bắt tay đầy đủ 1-RTT trong TLS 1.3 [4].
Hình 2. Bắt tay 1-RTT trong TLS 1.3
Quá trình bắt tay chia làm ba giai đoạn:
1. Trao đổi khóa: Thiết lập nguyên liệu khóa được chia sẻ và lựa chọn các tham số mật mã. Tất cả các thông báo sau giai đoạn này đều được mã hóa.
2. Thiết lập tham số máy chủ: Thiết lập các tham số bắt tay khác (máy khách có được xác thực hay không, hỗ trợ giao thức tầng ứng dụng nào…).
3. Xác thực: Xác thực máy chủ (và có thể cả xác thực máy khách nếu được yêu cầu) đồng thời cung cấp xác nhận khóa và tính toàn vẹn của bắt tay.
Khi máy khách và máy chủ chia sẻ một khóa chia sẻ trước (Pre-Shared Key - PSK) lấy từ bên ngoài hoặc thông qua một lần bắt tay trước đó, TLS 1.3 cho phép máy khách gửi dữ liệu trong lần trao đổi đầu tiên (early data). Trong đó, PSK được sử dụng để xác thực trình chủ và mã hóa dữ liệu ban đầu. Phần còn lại của quá trình bắt tay tương tự như bắt tay 1-RTT.
Trong QUIC, ngoài thỏa thuận các tham số mật mã, quá trình bắt tay còn mang và xác thực các giá trị cho các tham số truyền tải.
TLS 1.3 đã loại bỏ một số chế độ và thuật toán mật mã yếu, chỉ giữ lại năm bộ mã bao gồm [4]:
- TLS_AES_256_GCM_SHA384.
- TLS_CHACHA20_POLY1305_SHA256.
- TLS_AES_128_GCM_SHA256.
- TLS_AES_128_CCM_8_SHA256.
- TLS_AES_128_CCM_SHA256.
QUIC cung cấp thông tin phản hồi cần thiết để thực hiện truyền đáng tin cậy và kiểm soát tắc nghẽn.
Phát hiện mất gói dựa trên xác nhận tương tự như ý tưởng các thuật toán của TCP. Một gói được coi là bị mất nếu nó đáp ứng tất cả các điều kiện sau [5]:
- Gói chưa được xác nhận, đang được truyền và được gửi trước một gói đã được xác nhận.
- Gói đã được gửi trước một gói đã được xác nhận một số lượng gói nhất định (ngưỡng gói) hoặc đã được gửi một thời gian đủ lâu (ngưỡng thời gian).
Không giống như trong TCP, QUIC có thể phát hiện việc mất các gói chỉ chứa các khung ACK và sử dụng thông tin đó để điều chỉnh bộ điều khiển tắc nghẽn. Bộ điều khiển tắc nghẽn được mô tả trong [5] có ba trạng thái riêng biệt: khởi động chậm; khôi phục và tránh tắc nghẽn. Quá trình chuyển đổi giữa ba trạng thái được minh họa trong Hình 3.
Hình 3. Các trạng thái kiểm soát tắc nghẽn
Không giống như TLS qua TCP, các ứng dụng QUIC không gửi dữ liệu dưới dạng các bản ghi Dữ liệu ứng dụng TLS, mà gửi dưới dạng các khung trong các gói QUIC được mã hóa bởi thành phần bảo vệ gói QUIC.
Các gói QUIC có các mức bảo vệ bằng mật mã khác nhau dựa trên kiểu gói: - Các gói Version Negotiation không được bảo vệ bằng mật mã. - Các gói Retry sử dụng một hàm mã hóa có xác thực với dữ liệu liên kết (AEAD) để bảo vệ khỏi sự sửa đổi ngẫu nhiên. - Các gói Initial sử dụng một hàm AEAD, các khóa được dẫn xuất từ trường Destination Connection ID của gói Initial đầu tiên được gửi bởi máy khách.
Tất cả các gói tin khác được bảo vệ bằng các khóa được dẫn xuất từ quá trình bắt tay mật mã [3]. Bắt tay mật mã đảm bảo rằng chỉ các đầu cuối giao tiếp nhận được các khóa tương ứng cho các gói Handshake, 0-RTT và 1-RTT. Các gói được bảo vệ bằng khóa 0-RTT và 1-RTT có tính bảo mật và tính toàn vẹn cao. Quy trình bảo vệ gói tin tương tự được áp dụng cho các gói tin Initial. Tuy nhiên, vì việc xác định các khóa được sử dụng cho các gói Initial là rất đơn giản, các gói này không được coi là có tính bảo mật hoặc tính toàn vẹn. Các gói tin Retry sử dụng một khóa cố định và do đó cũng thiếu tính bảo mật và tính toàn vẹn.
Sau khi áp dụng bảo vệ gói tin, một số trường của tiêu đề gói QUIC như trường Packet Number cùng với bit Reversed Bits, trường Packet Number Length và bit Key Phase cũng được bảo vệ bằng cách sử dụng một khóa được dẫn xuất riêng từ khóa bảo vệ gói và vector khởi tạo.
Cùng một khóa bảo vệ tiêu đề được sử dụng trong suốt thời gian kết nối, ngay cả sau khi cập nhật khóa.
Mô hình được sử dụng để đánh giá hiệu năng của giao thức QUIC, được minh họa như trong Hình 4, bao gồm hai máy tính (Host1, Host2) được kết nối với nhau thông qua đường truyền 100Mbps, trong đó “Host1” chứa các máy chủ triển khai HTTP2/TCP, HTTP3/ QUIC; “Host2” chứa các máy khách triển khai HTTP2/ TCP, HTTP3/QUIC. Các máy tính sử dụng hệ điều hành Ubuntu 18.04 LTS và được cài đặt sẵn docker.
Hình 4. Mô hình đánh giá hiệu quả giao thức QUIC
Để đánh giá hiệu suất của HTTP3/QUIC, một tệp khá lớn (150MB) được tải từ máy chủ về máy khách trong các điều kiện khác nhau: điều kiện lí tưởng (Kịch bản 1); điều kiện mạng không lí tưởng (gói tin gửi đi bị mất, Kịch bản 2) và điều kiện số luồng dữ liệu TCP tăng lên (Kịch bản 3).
Các bộ phần mềm cho máy chủ và máy khách được sử dụng trong các kịch bản thử nghiệm như sau: HTTP2 sử dụng máy chủ Nginx và máy khách sử dụng Curl; HTTP3/QUIC sử dụng các triển khai từ Nginx; Ngtcp2.
Bảng 1. Băng thông HTTP3/QUIC so với HTTP2/TCP trong điều kiện lí tưởng
Như vậy, cả hai giao thức đều đạt băng thông rất cao trên môi trường mạng 100Mbps, tuy nhiên, băng thông tối đa mà giao thức HTTP2 có thể đạt được cao hơn so với các triển khai của giao thức HTTP3 được sử dụng.
Bảng 2. Băng thông HTTP3/QUIC so với HTTP2/TCP trong điều kiện mất gói 3%
Bảng 3. Băng thông HTTP3/QUIC so với HTTP2/TCP trong điều kiện mất gói 5%
Bảng 4. Tính cạnh tranh giữa luồng QUIC và TCP
Như vậy, khi số luồng TCP tăng lên, luồng HTTP3/QUIC có băng thông vượt trội hơn so với các luồng HTTP2/TCP. Điều đó minh chứng hiệu quả cạnh tranh luồng của HTTP3/QUIC so với HTTP2/TCP.
Bảo mật tăng cường của QUIC được cung cấp bởi TLS phiên bản 1.3 mã hóa cho tất cả các thông báo ngay sau thông báo ServerHello, đồng thời chỉ sử dụng các chế độ và thuật toán mật mã đủ mạnh. Hiệu suất mạng của QUIC được cải thiện thông qua các thuật toán giúp phát hiện mất gói và kiểm soát tắc nghẽn hiệu quả của lớp truyền tải QUIC. Ngoài ra, vì QUIC không được tích hợp trong không gian nhân của hệ điều hành mà được phát triển như một giao thức truyền tải lớp ứng dụng giúp áp dụng nhanh chóng, bất kỳ cập nhật nào của giao thức cũng chỉ đòi hỏi thay đổi mã ứng dụng chứ không yêu cầu các thay đổi phức tạp trong nhân hệ điều hành.
TÀI LIỆU THAM KHẢO [1]. Barry Pollard, “HTTP/2 In Action”, 2019. [2]. RFC9000, QUIC: A UDP-Based Multiplexed and Secure Transport, 2021. [3]. RFC9001, Using TLS to Secure QUIC, 2021. [4]. RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3, 2018. [5]. RFC9002, QUIC Loss Detection and Congestion Control. |
Hoàng Thu Phương, Phạm Đức Hùng (Viện Khoa học - Công nghệ mật mã, Ban Cơ yếu Chính phủ)
10:00 | 19/08/2022
23:00 | 02/09/2022
16:00 | 23/04/2021
10:00 | 10/11/2023
Google đã thực hiện một bước quan trọng nhằm tăng cường bảo mật Internet của Chrome bằng cách tự động nâng cấp các yêu cầu HTTP không an toàn lên các kết nối HTTPS cho toàn bộ người dùng.
11:00 | 27/01/2023
Các tổ chức/doanh nghiệp nên thực hiện quản lý rủi ro trong suốt chu trình phát triển phần mềm thay vì quay trở về các xu hướng phát triển trước đó. Tần suất xuất hiện rủi ro sẽ tiếp tục tăng nhanh khi các tác động tiêu cực của các lỗi xuất hiện trong chu trình phát triển phần mềm ngày càng nghiêm trọng. Các phương pháp và cách thực hành trước đây về thực hiện quản trị, rủi ro và tuân thủ (GRC) đều xoay quanh các quy trình thủ công, sử dụng bảng tính hoặc nhận dạng hồi tố,… đã quá lỗi thời, không thể bắt kịp với sự phát triển nhanh chóng của công nghệ. Kết quả là, các doanh nghiệp đã đưa quản lý rủi ro vào thời đại kỹ thuật số, biến GRC thành quản lý rủi ro kỹ thuật số (DRM). Những DRM được áp dụng đó đưa ra các quyết định bảo mật tốt hơn, bảo vệ dữ liệu khách hàng và đảm bảo sự hài lòng của các bên liên quan. Việc thực hiện DRM cũng dẫn đến hiệu quả cao hơn thông qua tự động hóa.
12:00 | 12/08/2022
Phần 1 của bài báo đã tập trung trình bày quá trình chuẩn bị cho việc kiểm thử tấn công lừa đảo và quá trình kiểm thử bằng cách sử dụng thư điện tử. Nội dung phần 2 của bài báo sẽ trình bày về quá trình kiểm thử bằng cách sử dụng diện thoại và gặp trực tiếp nạn nhân.
14:00 | 04/07/2022
Mạng riêng ảo đa điểm động (Dynamic Multipoint Virtual Private Network - DMVPN) được nghiên cứu và đưa ra bởi Cisco. DMVPN cung cấp giải pháp bảo mật giống như công nghệ VPN truyền thống và có thêm ưu điểm về khả năng mở rộng tốt, linh hoạt trong triển khai [1]. Bài viết này sẽ trình bày về kiến trúc, mô hình cài đặt, cách thức hoạt động của DMVPN. Đồng thời đưa ra nhận xét và khuyến nghị về việc đưa ra lựa chọn tối ưu cho triển khai DMVPN trong bảo mật mạng cho doanh nghiệp.
Mặc dù, tiền mã hóa đem lại tính an toàn, bảo mật, nhanh chóng, tiện lợi, không chịu sự quản lý của Ngân hàng Trung ương cũng như các cơ quan công quyền, nhưng đây lại là cơ hội để tội phạm rửa tiền lợi dụng thực hiện các hành vi trái pháp luật trên không gian mạng. Bài viết sẽ thông tin tới độc giả các khái niệm, phương thức, thủ đoạn của hoạt động rửa tiền bằng tiền mã hóa. Đồng thời, bài báo đề xuất các giải pháp phòng chống hoạt động phạm tội này tại Việt Nam.
15:00 | 18/12/2023
Với sự phát triển mạnh mẽ của công nghệ thông tin hiện nay, các ứng dụng giải trí, nhắn tin, gọi điện đang dần trở nên phổ biến. Những dịch vụ truyền thông được cung cấp trực tiếp đến người xem thông qua Internet (Over The Top - OTT) trở thành một trong những mục tiêu bị tin tặc tấn công nhiều nhất. Bài báo đưa ra thực trạng sử dụng dịch vụ ứng dụng OTT tại Việt Nam và những thách thức trong công tác bảo đảm an ninh, an toàn thông tin trên các thiết bị di động và dữ liệu cá nhân trong thời gian qua. Từ đó, đưa ra các giải pháp nhằm nâng cao hiệu quả bảo đảm an ninh, an toàn thông tin cho dữ liệu cá nhân người dùng ứng dụng OTT trên nền tảng Internet trong thời gian tới.
09:00 | 27/12/2023