
Telegram thực sự là một ứng dụng mã hóa không?
Tuyển chọn TechFlowTuyển chọn TechFlow

Telegram thực sự là một ứng dụng mã hóa không?
Chính phủ thế giới sử dụng họ như một lá chắn cho kế hoạch chính trị của mình.
Tác giả: Matthew Green
Biên dịch: Block unicorn

Về tác giả, Matthew Green là một nhà mật mã học và cũng là giáo sư tại Đại học Johns Hopkins. Tôi thiết kế và phân tích các hệ thống mã hóa được sử dụng trong mạng không dây, hệ thống thanh toán và nền tảng bảo vệ nội dung kỹ thuật số. Trong nghiên cứu của mình, tôi tìm hiểu nhiều cách khác nhau để sử dụng công nghệ mã hóa nhằm bảo vệ quyền riêng tư của người dùng.
Bài viết này bắt nguồn từ tin tức gần đây gây lo ngại rằng CEO của Telegram, Pavel Durov, đã bị chính quyền Pháp bắt giữ vì không kiểm soát đủ chặt chẽ nội dung trên nền tảng. Dù tôi không nắm rõ chi tiết vụ việc, nhưng việc sử dụng cáo buộc hình sự để gây áp lực lên các công ty mạng xã hội là một bước leo thang rất đáng lo ngại, và mọi chuyện dường như không đơn giản như vẻ bề ngoài.
Nhưng hôm nay tôi không muốn nói về vụ bắt giữ đó.
Tôi muốn nói đến một chi tiết cụ thể trong các bản tin báo chí — đặc biệt là: gần như tất cả các bài báo đưa tin về vụ bắt giữ này đều gọi Telegram là một "ứng dụng mã hóa". Dưới đây là vài ví dụ:

Cách diễn đạt này khiến tôi bực mình, bởi xét về mặt kỹ thuật hạn chế thì nó không sai. Tuy nhiên, ở hầu hết các cấp độ quan trọng, nó cơ bản làm sai lệch nhận thức của mọi người về Telegram và cách hoạt động thực tế của nó. Sự sai lệch này bất lợi cho cả các nhà báo lẫn người dùng Telegram, đặc biệt là những người có thể chịu tổn hại nghiêm trọng vì điều này.
Giờ hãy đi vào chi tiết.
Telegram thực sự có mã hóa không?
Nhiều hệ thống sử dụng mã hóa theo một cách nào đó, tuy nhiên khi nói đến mã hóa trong bối cảnh dịch vụ nhắn tin riêng tư hiện đại, từ này thường mang một ý nghĩa rất cụ thể: nó ám chỉ việc sử dụng mã hóa đầu cuối (end-to-end encryption) mặc định để bảo vệ nội dung tin nhắn của người dùng. Khi được triển khai theo tiêu chuẩn ngành, chức năng này đảm bảo mỗi tin nhắn được mã hóa bằng khóa mà chỉ hai bên giao tiếp mới biết, còn nhà cung cấp dịch vụ thì hoàn toàn không có khả năng truy cập các khóa này.
Xét từ góc nhìn người dùng, một "ứng dụng nhắn tin được mã hóa" đồng nghĩa với việc mỗi khi bạn bắt đầu cuộc trò chuyện, tin nhắn của bạn chỉ có thể được đọc bởi người đang trò chuyện cùng bạn. Nếu nhà cung cấp dịch vụ cố gắng xem nội dung tin nhắn, họ sẽ chỉ thấy dữ liệu mã hóa vô giá trị. Cam kết tương tự cũng áp dụng cho bất kỳ ai hack vào máy chủ nhà cung cấp, hay các cơ quan thực thi pháp luật gửi trát đòi thông tin — dù điều đó là tốt hay xấu.
Telegram rõ ràng không đáp ứng định nghĩa nghiêm ngặt hơn này, vì lý do đơn giản: nó không bật mã hóa đầu cuối theo mặc định. Nếu bạn muốn sử dụng mã hóa đầu cuối trên Telegram, bạn phải thủ công kích hoạt một tính năng tùy chọn có tên là "trò chuyện bí mật" (secret chat) cho từng cuộc hội thoại cá nhân. Tính năng này rõ ràng không được bật sẵn cho phần lớn các cuộc trò chuyện, và chỉ áp dụng cho hội thoại một-một, tuyệt đối không dùng trong các nhóm trò chuyện có hơn hai người.
Là một "tính năng bổ sung" kỳ lạ, đối với người dùng phổ thông, việc kích hoạt chức năng mã hóa đầu cuối của Telegram thực sự rất phiền phức.
Đầu tiên, nút kích hoạt mã hóa trên Telegram không hiển thị trực tiếp trong cửa sổ trò chuyện chính hay màn hình chính. Để tìm thấy nó trên ứng dụng iOS, tôi phải nhấn ít nhất bốn lần — một lần để vào trang hồ sơ người dùng, một lần để hiện menu ẩn chứa các tùy chọn, rồi cuối cùng xác nhận rằng tôi muốn sử dụng chế độ mã hóa. Và ngay cả khi đã làm vậy, tôi vẫn chưa thể bắt đầu cuộc trò chuyện mã hóa, vì tính năng "trò chuyện bí mật" chỉ hoạt động khi đối phương của bạn đang trực tuyến.

Trong phiên bản mới nhất của ứng dụng Telegram trên iOS, để bắt đầu "trò chuyện bí mật" với bạn tôi Michael, từ giao diện trò chuyện thông thường, tùy chọn này không hiển thị trực tiếp. Việc kích hoạt cần tới bốn lần nhấn:
(1) Vào trang hồ sơ của Michael (hình trái),
(2) Nhấn vào nút «...» để hiện danh sách tùy chọn ẩn (hình giữa),
(3) Chọn «Bắt đầu trò chuyện bí mật»,
(4) Nhấn xác nhận trong hộp thoại «Bạn có chắc chắn muốn tiếp tục?». Sau đó, tôi vẫn chưa thể gửi tin nhắn cho Michael, vì tính năng trò chuyện bí mật của Telegram chỉ hoạt động khi đối phương cũng đang trực tuyến.
Nhìn chung, trải nghiệm này hoàn toàn khác biệt so với việc khởi tạo một cuộc trò chuyện mã hóa mới trên các ứng dụng nhắn tin hiện đại đạt chuẩn công nghiệp, nơi chỉ cần mở một cửa sổ trò chuyện mới là xong.
Mặc dù điều này có vẻ quá khắt khe, nhưng sự khác biệt giữa mã hóa mặc định và trải nghiệm này có thể rất lớn. Thực tế, điều này có nghĩa là phần lớn các cuộc trò chuyện một-một trên Telegram — và mọi cuộc trò chuyện nhóm — có thể bị các máy chủ Telegram nhìn thấy và lưu lại, có thể truy cập và ghi lại toàn bộ nội dung tin nhắn giữa người dùng. Điều này có thể là vấn đề hoặc không với từng người dùng Telegram, nhưng rõ ràng không nên được quảng cáo như một nền tảng đặc biệt an toàn về mã hóa.
(Nếu bạn quan tâm đến chi tiết kỹ thuật, cũng như một số chỉ trích sâu hơn về giao thức mã hóa thực tế của Telegram, tôi sẽ giải thích thêm ở dưới.)
Mã hóa mặc định có thực sự quan trọng không?
Có thể là có, có thể là không! Có thể nhìn nhận vấn đề này từ hai góc độ khác nhau.
Một góc độ là việc Telegram thiếu mã hóa mặc định hoàn toàn không thành vấn đề với nhiều người. Thực tế là, nhiều người dùng không hề coi Telegram như một công cụ nhắn tin riêng tư được mã hóa. Với nhiều người, Telegram giống một mạng xã hội hơn là một ứng dụng nhắn tin cá nhân.
Cụ thể, Telegram có hai tính năng phổ biến khiến nó phù hợp với mục đích này. Một là chức năng tạo và đăng ký các "kênh", mỗi kênh giống như một mạng phát sóng, nơi một người (hoặc vài người) có thể gửi nội dung đến hàng triệu người đọc. Khi bạn phát tin nhắn đến hàng ngàn người xa lạ, việc giữ bí mật nội dung trò chuyện không còn quan trọng nữa.
Telegram cũng hỗ trợ các nhóm trò chuyện công khai lớn với hàng ngàn người dùng. Những nhóm này có thể mở cho công chúng hoặc chỉ mời theo yêu cầu. Mặc dù cá nhân tôi chưa bao giờ nghĩ đến việc chia sẻ nhóm trò chuyện với hàng ngàn người, nhưng tôi được biết nhiều người rất thích tính năng này. Trong các nhóm công cộng lớn như thế, việc nhóm không được mã hóa cũng không quá quan trọng — rốt cuộc, khi nói chuyện ở quảng trường công cộng, thì ai quan tâm đến mã hóa chứ?
Nhưng Telegram không chỉ giới hạn ở các chức năng này; nhiều người dùng tham gia vì những chức năng đó nhưng cũng làm những việc khác.
Hãy tưởng tượng bạn đang tham gia một nhóm trò chuyện lớn kiểu "quảng trường công cộng". Trong môi trường này, có thể không có kỳ vọng mạnh mẽ về quyền riêng tư, do đó mã hóa đầu cuối không quan trọng với bạn. Nhưng giả sử bạn và năm người bạn rời khỏi quảng trường để bắt đầu một cuộc trò chuyện riêng tư. Cuộc trò chuyện này có đáng được bảo vệ quyền riêng tư mạnh mẽ không? Câu trả lời là không, vì Telegram sẽ không cung cấp sự bảo vệ đó — ít nhất là không có mã hóa mặc định, nó không thể bảo vệ bạn khỏi việc chia sẻ nội dung với máy chủ Telegram.
Tương tự, hãy tưởng tượng bạn sử dụng chức năng mạng xã hội của Telegram, chủ yếu để tiêu thụ nội dung chứ không tạo nội dung. Nhưng một ngày nọ, một người bạn cũng vì lý do tương tự dùng Telegram, phát hiện bạn trên nền tảng và quyết định gửi tin nhắn riêng cho bạn. Giờ bạn có lo lắng về quyền riêng tư không? Liệu hai bạn có tự tay bật chức năng "trò chuyện bí mật" — dù phải qua menu ẩn với bốn lần nhấn rõ ràng, và nếu một người đang ngoại tuyến thì không thể liên lạc ngay lập tức?
Tôi nghi ngờ mạnh rằng nhiều người có thể tham gia Telegram vì các tính năng mạng xã hội, nhưng cuối cùng lại dùng nó cho các cuộc trò chuyện riêng tư. Tôi cho rằng Telegram biết điều này, và có xu hướng tự quảng cáo là một "ứng dụng nhắn tin an toàn", nói về các tính năng mã hóa của nền tảng, chính vì họ biết điều đó sẽ khiến người dùng cảm thấy thoải mái hơn. Nhưng thực tế, tôi cũng nghi ngờ rằng rất ít người dùng thực sự sử dụng chức năng mã hóa của Telegram. Nhiều người thậm chí có thể không biết họ cần bật mã hóa thủ công, và tưởng rằng họ đã đang dùng nó.
Điều này dẫn tôi đến điểm tiếp theo.
Telegram biết rằng việc bật chức năng mã hóa rất khó khăn, nhưng vẫn tiếp tục quảng bá sản phẩm của mình là một ứng dụng nhắn tin an toàn.
Từ năm 2016 (có thể sớm hơn), chức năng mã hóa của Telegram đã bị chỉ trích nghiêm trọng vì nhiều lý do mà tôi nêu trong bài viết này. Thực tế, nhiều chỉ trích đó đã được các chuyên gia, bao gồm cả tôi, nêu ra với Pavel Durov trên Twitter từ nhiều năm trước.
Mặc dù các cuộc trao đổi với Durov đôi khi khá gay gắt, nhưng thời điểm đó tôi vẫn phần lớn tin rằng Telegram hành động thiện chí. Tôi nghĩ Telegram đang bận mở rộng mạng lưới của mình, và theo thời gian họ sẽ cải thiện chất lượng và khả năng sử dụng mã hóa đầu cuối: ví dụ như đặt nó làm mặc định, hỗ trợ nhóm trò chuyện, và cho phép bắt đầu trò chuyện mã hóa với người dùng ngoại tuyến. Tôi giả định rằng dù Telegram có thể là người đi sau chứ không phải người dẫn đầu, nhưng cuối cùng họ sẽ đạt được mức độ chức năng mã hóa tương đương với Signal và WhatsApp. Tất nhiên, một khả năng khác là Telegram sẽ hoàn toàn từ bỏ mã hóa và tập trung trở thành một nền tảng mạng xã hội.
Điều xảy ra thực tế khiến tôi càng thêm bối rối.
Chủ sở hữu Telegram không cải thiện khả năng sử dụng mã hóa đầu cuối; kể từ năm 2016, trải nghiệm mã hóa của người dùng gần như không thay đổi. Dù các thuật toán mã hóa nền tảng sử dụng có nâng cấp, trải nghiệm trò chuyện bí mật vào năm 2024 gần như chẳng khác gì tám năm trước. Đồng thời, lượng người dùng Telegram trong cùng giai đoạn đã tăng từ 7 đến 9 lần.
Đồng thời, CEO Telegram Pavel Durov tiếp tục tích cực quảng bá Telegram như một "ứng dụng nhắn tin an toàn". Gần đây, ông đã chỉ trích mạnh mẽ Signal và WhatsApp trên kênh Telegram cá nhân, ám chỉ rằng các hệ thống này bị chính phủ Mỹ cài cửa hậu, và chỉ giao thức mã hóa độc lập của Telegram mới thực sự đáng tin cậy.
Nếu đây là một tranh luận kỹ thuật hợp lý giữa hai nền tảng đều hỗ trợ mã hóa đầu cuối mặc định, thì có thể chấp nhận được. Tuy nhiên, Telegram thực sự không có chỗ đứng trong cuộc thảo luận này. Việc chứng kiến Telegram khuyến khích người dùng tránh xa các ứng dụng nhắn tin có mã hóa mặc định, trong khi bản thân lại từ chối triển khai các chức năng cơ bản để mã hóa rộng rãi tin nhắn người dùng, giờ đây không còn buồn cười nữa. Thật ra, điều này bắt đầu có vẻ ác ý.
Còn những chi tiết mã hóa nào nữa?
Đây là một blog về mật mã học, nên nếu tôi không dành chút thời gian nói về các giao thức mã hóa nhàm chán, thì có vẻ như tôi chưa làm tròn nhiệm vụ. Tôi cũng sẽ bỏ lỡ cơ hội tuyệt vời để trầm trồ trước các chi tiết nội tại của mã hóa Telegram — mỗi lần tôi xem xét, tôi gần như đều há hốc miệng kinh ngạc.
Để giảm đau đớn, tôi sẽ trình bày ngắn gọn trong một đoạn văn, nếu bạn không quan tâm có thể dễ dàng bỏ qua.
Theo tài liệu kỹ thuật mà tôi cho là mới nhất, tính năng trò chuyện bí mật của Telegram dựa trên một giao thức tùy chỉnh có tên MTProto 2.0. Hệ thống này sử dụng trao đổi khóa Diffie-Hellman miền hữu hạn 2048-bit, các tham số nhóm (theo tôi biết) do máy chủ chọn. (Vì trao đổi khóa Diffie-Hellman yêu cầu hai người dùng phải trực tuyến để tương tác, nên trò chuyện mã hóa không thể thiết lập khi một người đang ngoại tuyến). Bảo vệ chống tấn công MITM do người dùng cuối xử lý, họ phải so sánh dấu vân tay khóa. Máy chủ cung cấp một vài giá trị ngẫu nhiên (nonce) kỳ lạ mà tôi không hoàn toàn hiểu mục đích *—— trước đây các giá trị ngẫu nhiên này từng khiến trao đổi khóa hoàn toàn mất an toàn trước máy chủ độc hại (nhưng vấn đề này đã được khắc phục từ lâu *). Khóa sinh ra sau đó được dùng trong một chế độ mã hóa xác thực phi tiêu chuẩn, đáng kinh ngạc nhất — một chế độ có tên "Infinite Garble Extension" (IGE), dựa trên AES và dùng SHA2 để xử lý xác thực.**
Ghi chú: Mỗi chỗ tôi đánh dấu «*» trong đoạn trên là điểm mà các nhà mật mã học chuyên nghiệp sẽ giơ tay hỏi trong bối cảnh kiểm toán an ninh chuyên sâu. Tôi sẽ không đi sâu, nhưng có thể nói rằng mã hóa của Telegram cực kỳ bất thường.
Nếu bạn bắt tôi đoán xem giao thức và triển khai trò chuyện bí mật của Telegram có an toàn hay không, tôi sẽ nói có lẽ là an toàn. Thành thật mà nói, nhưng điều đó không quan trọng, vì nếu người ta thực tế không dùng nó thì an toàn đến đâu cũng vô ích.
Block unicorn chú thích: Nói đơn giản, hệ thống mã hóa của Telegram sử dụng một số công nghệ phức tạp để bảo vệ thông tin, nhưng về trải nghiệm người dùng, việc thiết lập và sử dụng khá phức tạp. Một số chi tiết kỹ thuật có thể khiến người ta cảm thấy thiếu minh bạch, đặc biệt là cách dùng số ngẫu nhiên và bảo vệ khóa.
Kết luận
Dù mã hóa đầu cuối là một trong những công cụ tốt nhất chúng ta phát triển để ngăn rò rỉ dữ liệu, nhưng đó không phải là toàn bộ câu chuyện. Một trong những vấn đề riêng tư lớn nhất trong nhắn tin là lượng lớn siêu dữ liệu (metadata) — về cơ bản là dữ liệu về ai đang dùng dịch vụ, họ trò chuyện với ai và khi nào họ trò chuyện.
Dữ liệu này thường không được bảo vệ bởi mã hóa đầu cuối. Ngay cả trong các ứng dụng chỉ có chức năng phát sóng, như các kênh của Telegram, cũng có rất nhiều siêu dữ liệu hữu ích về ai đang nghe phát sóng. Thông tin này có giá trị lớn với con người, điều này thể hiện rõ qua việc các công ty phát thanh truyền thống chi hàng núi tiền để thu thập dữ liệu này. Hiện tại, tất cả thông tin này có thể tồn tại trên máy chủ Telegram, và bất kỳ ai muốn thu thập đều có thể truy cập được.
Tôi không chỉ trích riêng Telegram, vì gần như mọi mạng xã hội và ứng dụng nhắn tin riêng tư khác cũng gặp vấn đề tương tự. Nhưng cần nhắc đến điều này, và tôi nêu ra để tránh bạn có ảo tưởng rằng chỉ cần có mã hóa là đủ.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














