QUIC (Quick UDP Internet Connections) được Google phát triển vào năm 2012, là giao thức lớp vận chuyển dựa trên phiên bản ghép kênh (multiplex) của các kết nối UDP. Không giống như TCP, UDP không tuân theo bắt tay ba bước mà sử dụng một roundtrip UDP duy nhất. Ngoài ra, QUIC dựa vào ghép kênh để quản lý liền mạch nhiều tương tác giữa người dùng và máy chủ thông qua một kết nối duy nhất mà không có bất kỳ kết nối chặn nào khác, vì các gói tin bị thất lạc chỉ ảnh hưởng đến luồng dữ liệu trực tiếp chứa gói tin đó, những luồng khác vẫn hoạt động bình thường từ đó giúp cải thiện hiệu suất so với những phiên bản trước đó.
Giao thức TCP được thiết kế để đảm bảo dữ liệu được mã hóa trong quá trình truyền, nhưng thông tin cụ thể về đường truyền chưa được mã hóa, gây ra nhiều vấn đề về bảo mật và quyền riêng tư. Trong giao thức QUIC, ngoại trừ các trường bắt buộc trong phân đoạn mạng, các phần còn lại của thông tin đều được mã hóa theo mặc định, ví dụ như các trường Packet NR, ACK NR, Window. Mã hóa được đề xuất trong QUIC giúp ngăn chặn các tấn công giám sát phổ biến trong các phiên bản trước của HTTP/3, cũng như thu thập thông tin các thành phần giao thức, metadata hay dữ liệu ứng dụng. Hình 1 minh họa kết quả phân tích gói tin QUIC bởi công cụ phân tích mạng Wireshark.
Để hỗ trợ mã hóa đầu cuối trong quá trình kết nối, QUIC chủ yếu dựa vào sự bắt tay của lớp vận chuyển và mật mã. Vì QUIC tương tác trực tiếp với TLS 1.3, nó thực thi mã hóa cho tất cả các kết nối ban đầu và không có tùy chọn để tắt TLS. QUIC cũng chịu trách nhiệm đảm bảo rằng các kết nối an toàn được thiết lập, đồng thời cân nhắc các biện pháp bảo vệ tính bảo mật và tính toàn vẹn của tất cả các kết nối ban đầu. Không giống như triển khai HTTP/2 với TLS, QUIC xử lý cơ chế bắt tay và cảnh báo TLS trong lớp truyền tải, giúp thiết lập các biện pháp bảo vệ mật mã bằng cách sử dụng các khóa được trao đổi từ quá trình bắt tay.
Hình 1. Đoạn mã Wireshark hiển thị các phân đoạn mạng của giao thức QUIC
Không giống như HTTP/2, sử dụng các bản ghi “application_data” của TLS, QUIC sử dụng khung STREAM ở dạng gói QUIC. Bắt tay TLS xảy ra ở dạng khung CRYPTO, chủ yếu bao gồm dữ liệu bắt tay trong một luồng liên tục. QUIC được thiết kế để gửi các gói tin song song, đôi khi là đóng gói các thông báo khác nhau thành một và mã hóa chúng với điều kiện các thông báo có cùng mức độ mã hóa. Tính năng này mang lại lợi ích to lớn cho hiệu suất mạng trong khi vẫn đảm bảo chế độ mã hóa chính xác được áp dụng trong quá trình truyền.
Bảo mật phía trước đầy đủ
Bảo mật phía trước đầy đủ (PFS) trong một giao thức khi các khóa riêng tạm thời được trao đổi giữa người dùng và máy chủ. Mỗi phiên do người dùng bắt đầu sử dụng một khóa phiên mới duy nhất và không liên quan đến khóa phiên trước đó. Bằng cách sử dụng khóa phiên riêng biệt cho mỗi trao đổi, khi có khóa phiên bất kỳ bị xâm phạm, không có thông tin nào từ các phiên trước đó hoặc trong tương lai bị xâm phạm. Từ góc độ mật mã, không có trao đổi khóa nào có thể cung cấp PFS.
QUIC sử dụng TLS 1.3, hỗ trợ trao đổi khóa Diffie-Hellman (DH) và Khóa chia sẻ trước (PSK) trên các đường cong Elliptic hoặc trên các trường hữu hạn. Trao đổi khóa 0-RTT cung cấp bảo mật phía trước đầy đủ, vì mã hóa chỉ chấp nhận các kết nối chuyển tiếp an toàn thông qua bắt tay 0-RTT. Giao thức cũng cung cấp bảo mật phía trước đầy đủ cho các thông báo ban đầu giữa người dùng và máy chủ. Ngoài ra, vì không hỗ trợ khóa bí mật dài hạn, với sự trợ giúp của TLS 1.3, QUIC cung cấp khả năng bảo mật phía trước đầy đủ cho các ứng dụng sử dụng lớp giao thức.
Việc triển khai QUIC được thiết kế để lưu trữ các giá trị máy khách của dẫn xuất khóa, ngoài các giá trị nonce. Bất kỳ yêu cầu trùng lặp có cùng giá trị dẫn xuất khóa và các giá trị nonce đều được máy chủ phát hiện và loại bỏ. Thiết kế này giúp ngăn bất kỳ máy chủ nào chấp nhận cùng một khóa nhiều lần từ cấp giao thức. Vì các thành phần web có thể sử dụng khóa dẫn xuất từ khóa phiên, các cuộc tấn công phát lại có thể xảy ra ở giai đoạn này; tuy vậy, các biện pháp phòng ngừa có thể được sử dụng ở cấp ứng dụng để giảm thiểu điều đó.
Bảo vệ chống giả mạo IP
Để loại bỏ mọi tấn công giả mạo IP, QUIC hỗ trợ xác minh địa chỉ trong quá trình bắt tay và yêu cầu bằng chứng địa chỉ đã ký thông qua việc sử dụng “mã thông báo địa chỉ nguồn”. Đó là các khối được xác thực, mã hóa của máy chủ, chứa địa chỉ IP của người dùng và dấu thời gian của máy chủ. Vì máy chủ chỉ phản hồi địa chỉ IP trong mã thông báo, ngay cả một cookie hoặc mã thông báo bị đánh cắp cũng có thể không giúp việc giả mạo IP thành công. Hơn nữa, do QUIC thiết lập mã thông báo địa chỉ nguồn tồn tại trong thời gian ngắn, khoảng thời gian cho một tấn công giả mạo IP thành công trong thực tế là gần như không thể.
Theo thiết kế, TLS 1.3 có khả năng bảo vệ chống lại các tấn công hạ cấp TLS vì giao thức yêu cầu mã băm khóa cho tất cả các giao tiếp bắt tay và yêu cầu bên nhận bắt tay xác minh các mã băm khóa đã gửi. Ngoài ra, các thông báo CertificateVerify giữa người dùng và máy chủ bao gồm chữ ký băm PKCS RSA của tất cả các thông báo trước đó về kết nối cụ thể. Việc triển khai các kiểm tra này trong QUIC sẽ ngăn chặn các tấn công hạ cấp TLS.
Một trong những tính năng nổi bật nhất của HTTP/3 là nối lại phiên 0-RTT, giúp cải thiện tốc độ kết nối và giảm độ trễ. Tuy nhiên, quá trình này chỉ hoạt động nếu kết nối đã được thiết lập thành công trước đó và trao đổi hiện tại sử dụng khóa chia sẻ trước được thiết lập trong lần kết nối cuối cùng. Một trong những vectơ tấn công phổ biến nhất là tấn công phát lại có thể diễn ra khi tin tặc gửi lại gói tin ban đầu; trong những trường hợp cụ thể, điều này khiến máy chủ tin rằng yêu cầu đến từ một máy khách đã biết trước đó. Một nhược điểm bảo mật khác của nối lại phiên 0-RTT là phần thiếu sót của Bảo mật phía trước đầy đủ. Tin tặc có thể giải mã thông tin liên lạc 0-RTT do người dùng gửi khi xâm phạm mã thông báo.
Khi ở giữa người dùng với máy chủ, tin tặc có thể thao tác với Connection ID trong quá trình bắt tay ban đầu. Quá trình bắt tay diễn ra bình thường, máy chủ sẽ cho rằng kết nối đã được thiết lập, nhưng người dùng sẽ không thể giải mã được vì Connection ID là đầu vào cho quá trình dẫn xuất khóa mã hóa, do đó người dùng và máy chủ sẽ tính toán khóa mã hóa khác nhau. Người dùng cuối cùng hết thời gian chờ và gửi thông báo lỗi tới máy chủ cho biết kết nối đã bị ngắt. Vì máy khách mã hóa thông báo lỗi đến máy chủ bằng khóa mã hóa ban đầu, máy chủ sẽ không thể giải mã và duy trì trạng thái kết nối cho đến khi hết thời gian chờ (thường là 10 phút). Điều này khi được thực hiện ở quy mô lớn hơn có thể gây ra một cuộc tấn công DDoS trên một máy chủ giữ nhiều kết nối cho đến khi trạng thái kết nối hết hạn. Một phương pháp tấn công khác để giữ kết nối tồn tại là thay đổi các tham số, chẳng hạn như mã thông báo địa chỉ nguồn, từ đó ngăn không cho máy khách thiết lập bất kỳ kết nối nào.
Trong QUIC, tấn công khuếch đại UDP xảy ra khi tin tặc nhận mã thông báo xác minh địa chỉ từ mục tiêu và giải phóng địa chỉ IP ban đầu sử dụng để tạo mã thông báo, sau đó, gửi kết nối 0-RTT trở lại máy chủ có cùng địa chỉ IP, địa chỉ này có thể được thay đổi để trỏ đến một điểm cuối khác. Sau khi thực hiện thành công thiết lập này, tin tặc có thể điều hướng máy chủ gửi một lượng lớn lưu lượng truy cập đến máy nạn nhân. Để ngăn chặn tấn công này, HTTP/3 có các khả năng giới hạn tốc độ và thời gian tồn tại của mã thông báo xác minh như các biện pháp kiểm soát bổ sung cho các tấn công DDOS, đồng thời giảm thiểu một phần các kịch bản tấn công.
Tấn công cạn kiệt luồng xảy ra khi tin tặc khởi tạo nhiều luồng kết nối, có thể dẫn đến cạn kiệt điểm cuối. Tin tặc có thể liên tục làm tràn ngập các yêu cầu, trong khi các tham số truyền tải cụ thể có thể giới hạn số lượng luồng hoạt động đồng thời, trong một số trường hợp, cấu hình máy chủ có thể được cố ý đặt thành số lượng cao hơn. Máy chủ nạn nhân có thể là mục tiêu của một tấn công như vậy do cấu hình giao thức của máy chủ để tăng hiệu suất giao thức.
Tấn công thiết lập lại kết nối gửi các thiết lập lại không trạng thái cho nạn nhân, tạo ra khả năng xảy ra tấn công DDoS tương tự như tấn công TCP Reset Injection. Vectơ tấn công tiềm ẩn có thể xảy ra nếu tin tặc lấy mã thông báo thiết lập lại được tạo cho kết nối với Connection ID cụ thể, tin tặc có thể sử dụng mã thông báo đã tạo để thiết lập lại kết nối đang hoạt động với cùng một Connection ID, khiến máy chủ phải đợi kết nối cho đến khi hết thời gian chờ. Khi thực hiện tấn công này trên quy mô lớn, máy chủ sẽ phải tiêu tốn rất nhiều tài nguyên chỉ để chờ các kết nối hoàn tất.
Cơ chế bảo vệ gói QUIC cung cấp xác thực và mã hóa cho tất cả các gói trong giao tiếp, ngoại trừ các gói thỏa thuận phiên bản. Tính năng này có thể cho phép tin tặc hạ cấp xuống các phiên bản QUIC không an toàn. Tuy hiện nay chỉ có một phiên bản QUIC, nhưng là điều cần lưu ý trong tương lai.
Mặc dù một số người dùng, máy chủ và trang web uy tín hỗ trợ HTTP3/QUIC, vẫn còn nhiều thiết bị mạng như proxy ngược/chuyển tiếp, bộ cân bằng tải, tường lửa ứng dụng web và các công cụ giám sát sự kiện bảo mật không hỗ trợ đầy đủ HTTP/3. Không giống như TCP, các socket không bắt buộc trong kết nối QUIC khiến việc phát hiện máy chủ và các kết nối độc hại khó hơn. Tin tặc có thể chuyển tiếp các nội dung độc hại và thực hiện các tấn công xâm nhập dữ liệu qua QUIC một cách lén lút mà không bị hầu hết các công cụ giám sát phát hiện.
QUIC và HTTP/3 được thiết kế để đáp ứng các mục tiêu ngày nay về hiệu suất, độ tin cậy và bảo mật của mạng Internet. Việc sử dụng mã hóa đầu cuối trong quá trình chuyển tiếp trong HTTP/3 giúp bảo vệ chống lại một số vấn đề về quyền riêng tư. Mặc dù còn một số điểm yếu, tuy nhiên HTTP/3 vẫn sẽ tiếp tục phát triển và là một cải tiến đáng kể so với HTTP/2 và các phiên bản trước của HTTP, cả về hiệu suất và yếu tố bảo mật.
Lê Tiến Thành
08:00 | 03/01/2023
09:00 | 08/11/2022
13:00 | 22/09/2022
10:00 | 03/10/2023
Với sự gia tăng nhanh chóng của các mối đe dọa mạng tinh vi, các tổ chức ngày nay đang phải đối mặt với những thách thức lớn trong việc ngăn chặn và giảm thiểu các cuộc tấn công mạng. Để chống lại điều này, việc chia sẻ và phân tích thông tin tình báo về mối đe dọa vì thế càng trở nên mang tính cấp thiết và quan trọng. Nền tảng chia sẻ thông tin phần mềm độc hại (MISP) chính là một khuôn khổ nổi bật nhằm tạo điều kiện trao đổi thông tin tình báo về mối đe dọa giữa các tổ chức và cộng đồng an ninh mạng. Bài viết này cung cấp đánh giá cơ bản về nền tảng MISP, thảo luận về kiến trúc, các tính năng chia sẻ mối đe dọa cũng như những triển vọng của nó trong việc thúc đẩy phòng thủ an ninh mạng chủ động.
18:00 | 22/09/2023
Do lưu giữ những thông tin quan trọng nên cơ sở dữ liệu thường nằm trong tầm ngắm của nhiều tin tặc. Ngày nay, các cuộc tấn công liên quan đến cơ sở dữ liệu để đánh cắp hay sửa đổi thông tin càng trở nên khó lường và tinh vi hơn, vì vậy việc quản lý cơ sở dữ liệu đặt ra những yêu cầu mới với các tổ chức, doanh nghiệp. Trong hệ thống phân tán, khi dữ liệu được phân mảnh và phân phối trên các vị trí khác nhau có thể dẫn đến khả năng mất toàn vẹn của dữ liệu. Thông qua sử dụng cây Merkle và công nghệ Blockchain ta có thể xác minh tính toàn vẹn của dữ liệu. Trong bài viết này, nhóm tác giả sẽ trình bày các nghiên cứu về ứng dụng cây Merkle và công nghệ Blockchain để bảo đảm tính toàn vẹn dữ liệu cho cơ sở dữ liệu phân tán, đồng thời đảm bảo hiệu năng của hệ thống.
12:00 | 16/03/2023
Metaverse (vũ trụ ảo) là một mạng lưới rộng lớn gồm các thế giới ảo 3D đang được phát triển mà mọi người có thể tương tác bằng cách sử dụng thực tế ảo (VR), hay thực tế tăng cường (AR). Công nghệ này hứa hẹn mang lại sự trải nghiệm mới mẻ, thú vị cho người dùng cũng như mang đến những cơ hội kinh doanh cho các doanh nghiệp trong việc chuyển đổi cách thức hoạt động. Tuy nhiên, bên cạnh những lợi ích thì Metaverse cũng đặt ra những thách thức và nguy cơ về vấn đề bảo mật trong không gian kỹ thuật số này.
10:00 | 21/12/2022
Hôm 9/12, chính phủ Vương quốc Anh vừa công bố quy tắc thực hành tự nguyện thúc giục các nhà điều hành cửa hàng ứng dụng và nhà phát triển ứng dụng nâng cấp các biện pháp bảo mật và quyền riêng tư của họ. Hướng dẫn này là kết quả của một cuộc tham vấn cộng đồng được đưa ra hồi tháng 5, với 59 phản hồi, phần lớn trong số đó là tích cực. Hướng dẫn mới sẽ được theo dõi để đảm bảo tuân thủ.
Do lưu giữ những thông tin quan trọng nên cơ sở dữ liệu thường nằm trong tầm ngắm của nhiều tin tặc. Ngày nay, các cuộc tấn công liên quan đến cơ sở dữ liệu để đánh cắp hay sửa đổi thông tin càng trở nên khó lường và tinh vi hơn, vì vậy việc quản lý cơ sở dữ liệu đặt ra những yêu cầu mới với các tổ chức, doanh nghiệp. Trong hệ thống phân tán, khi dữ liệu được phân mảnh và phân phối trên các vị trí khác nhau có thể dẫn đến khả năng mất toàn vẹn của dữ liệu. Thông qua sử dụng cây Merkle và công nghệ Blockchain ta có thể xác minh tính toàn vẹn của dữ liệu. Trong bài viết này, nhóm tác giả sẽ trình bày các nghiên cứu về ứng dụng cây Merkle và công nghệ Blockchain để bảo đảm tính toàn vẹn dữ liệu cho cơ sở dữ liệu phân tán, đồng thời đảm bảo hiệu năng của hệ thống.
18:00 | 22/09/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.
10:00 | 10/11/2023