Tác giả gốc: Matthew Green

Biên soạn gốc: Block Unicorn

Về tác giả, Matthew Green là nhà mật mã học và 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 số. Trong nghiên cứu của mình, tôi kiểm tra nhiều cách khác nhau mà công nghệ mã hóa có thể được sử dụng để bảo vệ quyền riêng tư của người dùng.

Bài báo được lấy cảm hứng từ tin tức đáng lo ngại gần đây rằng Giám đốc điều hành Telegram Pavel Durov đã bị chính quyền Pháp bắt giữ vì không cung cấp đầy đủ nội dung cho cảnh sát. Mặc dù tôi không biết chi tiết cụ thể của tình huống, nhưng việc sử dụng cáo buộc hình sự để ép buộc các công ty truyền thông xã hội là một sự leo thang khá đáng lo ngại và mọi thứ không đơn giản như chúng tưởng.

Nhưng tôi không muốn nói về vụ bắt giữ hôm nay.

Điều tôi muốn nói đến là một chi tiết cụ thể trong báo cáo, cụ thể là: Hầu hết mọi bản tin về vụ bắt giữ này đều đề cập đến Telegram như một “ứng dụng mã hóa”.

Tuyên bố này khiến tôi phát điên vì từ góc độ kỹ thuật rất hạn chế, nó không sai. Tuy nhiên, ở mọi cấp độ quan trọng, về cơ bản nó đánh lừa mọi người về Telegram và cách thức hoạt động của nó trong thực tế. Thông tin sai lệch như vậy gây bất lợi cho cả nhà báo và người dùng Telegram, đặc biệt là những người có thể bị tổn hại nghiêm trọng.

Bây giờ chúng ta hãy đi vào chi tiết.

Telegram có được mã hóa không?

Nhiều hệ thống sẽ sử dụng mã hóa theo một cách nào đó, tuy nhiên, khi chúng ta nói về mã hóa trong bối cảnh các dịch vụ nhắn tin riêng tư hiện đại, từ này thường có một ý nghĩa rất cụ thể: nó đề cập đến việc sử dụng mã hóa đầu cuối mặc định để bảo vệ người dùng. nội dung tin nhắn. Khi được sử dụng theo cách tiêu chuẩn công nghiệp, tính năng này đảm bảo rằng mỗi tin nhắn được mã hóa bằng khóa mã hóa chỉ các bên liên lạc mới biết và nhà điều hành dịch vụ không có sẵn.

Từ quan điểm của bạn với tư cách là người dùng, "ứng dụng nhắn tin được mã hóa" có nghĩa là mỗi khi bạn bắt đầu cuộc trò chuyện, chỉ người mà bạn đang trò chuyện cùng mới có thể đọc được tin nhắn của bạn. Nếu nhà điều hành dịch vụ nhắn tin cố xem nội dung tin nhắn của bạn, tất cả những gì họ thấy chỉ là dữ liệu được mã hóa vô ích. Những đảm bảo tương tự cũng áp dụng cho bất kỳ ai có thể xâm nhập vào máy chủ của nhà cung cấp, cũng như các cơ quan thực thi pháp luật gửi trát đòi hầu tòa cho nhà cung cấp, dù tốt hay xấu.

Telegram rõ ràng không phù hợp với định nghĩa chặt chẽ hơn này vì một lý do đơn giản: Nó không kích hoạt mã hóa đầu cuối theo mặc định. Nếu muốn sử dụng mã hóa đầu cuối trong Telegram, bạn phải kích hoạt thủ công tính năng mã hóa đầu cuối tùy chọn có tên là "Trò chuyện được mã hóa" cho mỗi cuộc trò chuyện riêng tư. Tính năng này rõ ràng không được bật cho hầu hết các cuộc trò chuyện và chỉ hoạt động cho các cuộc trò chuyện trực tiếp, không bao giờ hoạt động trong các cuộc trò chuyện nhóm có nhiều hơn hai người.

Là một "tính năng bổ sung" kỳ lạ, việc kích hoạt mã hóa đầu cuối của Telegram thực sự rất cồng kềnh đối với người dùng không phải chuyên gia.

Đầu tiên, nút kích hoạt mã hóa Telegram không hiển thị trong cửa sổ hộp thoại chính hoặc màn hình chính. Để tìm thấy nó trong ứng dụng iOS, tôi phải nhấp ít nhất bốn lần—một lần để truy cập trang hồ sơ của người dùng, một lần để có menu ẩn bật lên hiển thị các tùy chọn và cuối cùng để xác nhận rằng tôi muốn sử dụng mã hóa. Và thậm chí sau đó, tôi thực sự không thể bắt đầu một cuộc trò chuyện được mã hóa vì tính năng "trò chuyện được mã hóa" chỉ hoạt động nếu người mà bạn đang nói chuyện tình cờ trực tuyến.

Bắt đầu "cuộc trò chuyện được mã hóa" với người bạn Michael của tôi trong ứng dụng Telegram iOS mới nhất. Tùy chọn này không hiển thị trực tiếp từ giao diện trò chuyện thông thường. Kích hoạt nó cần bốn lần nhấp chuột:

(1) Nhập trang hồ sơ của Michael (ảnh bên trái),

(2) Nhấp vào nút "..." để hiển thị bộ tùy chọn ẩn (hình giữa),

(3) Chọn "Bắt đầu trò chuyện bí mật",

(4) Nhấp vào Xác nhận trong hộp thoại "Bạn có chắc chắn muốn tiếp tục không?" Sau đó, tôi vẫn không thể gửi tin nhắn nào cho Michael vì tính năng trò chuyện bí mật của Telegram chỉ hoạt động nếu người kia cũng trực tuyến.

Nhìn chung, đây là một trải nghiệm rất khác so với việc khởi chạy một cuộc trò chuyện được mã hóa mới trong một ứng dụng nhắn tin được mã hóa theo tiêu chuẩn ngành hiện đại, nơi bạn chỉ cần mở một cửa sổ trò chuyện mới.

Mặc dù điều này có vẻ giống như đang soi mói nhưng sự khác biệt giữa mã hóa đầu cuối mặc định và trải nghiệm này có thể rất đáng kể. Trên thực tế, điều này có nghĩa là phần lớn các cuộc trò chuyện 1-1 trên Telegram – cũng như mọi cuộc trò chuyện nhóm – đều có thể được xem và ghi lại bởi các máy chủ của Telegram, máy chủ có thể xem và ghi lại tất cả tin nhắn được gửi giữa nội dung của người dùng. Đây có thể hoặc không phải là vấn đề đối với mọi người dùng Telegram, nhưng rõ ràng điều này không nên được quảng bá là được mã hóa đặc biệt an toàn.

(Nếu bạn quan tâm đến chi tiết và một số lời chỉ trích khác về giao thức mã hóa thực tế của Telegram, tôi sẽ giải thích thêm bên dưới.)

Mã hóa mặc định có thực sự quan trọng không?

Có thể nó quan trọng, có thể không! Vấn đề này có thể được nhìn nhận từ hai góc độ khác nhau.

Một góc độ cho rằng việc Telegram thiếu mã hóa mặc định là hoàn toàn bình thường đối với nhiều người. Thực tế là nhiều người dùng không sử dụng Telegram như một công cụ nhắn tin riêng tư được mã hóa. Đối với nhiều người, Telegram giống một mạng truyền thông xã hội hơn là một ứng dụng nhắn tin riêng tư.

Cụ thể, Telegram có hai tính năng phổ biến khiến nó trở nên hoàn hảo cho trường hợp sử dụng này. Một là khả 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 và một người (hoặc một vài người) có thể đưa nội dung đến hàng triệu độc giả. Khi bạn đang gửi tin nhắn tới hàng nghìn người lạ, việc giữ nội dung trò chuyện của bạn ở chế độ riêng tư không quan trọng lắm.

Telegram cũng hỗ trợ các cuộc trò chuyện nhóm công khai lớn với hàng nghìn người dùng. Các nhóm này có thể mở cửa cho công chúng hoặc được thành lập để chỉ dành cho những người được mời. Mặc dù cá nhân tôi sẽ không bao giờ cân nhắc việc chia sẻ cuộc trò chuyện nhóm với hàng nghìn người nhưng tôi nghe nói rằng nhiều người thích tính năng này. Trong một nhóm công cộng lớn như thế này, bản chất không được mã hóa của cuộc trò chuyện nhóm Telegram không thực sự quan trọng đến thế - xét cho cùng, ai quan tâm đến mã hóa khi bạn đang nói chuyện ở nơi công cộng?

Nhưng Telegram không giới hạn ở những tính năng này và nhiều người dùng tham gia các tính năng này còn làm những việc khác.

Hãy tưởng tượng bạn đang có một cuộc trò chuyện nhóm lớn ở một "quảng trường công cộng". Trong môi trường này, có thể không có kỳ vọng gì về quyền riêng tư mạnh mẽ, vì vậy mã hóa đầu cuối không quan trọng đối 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 để nói chuyện riêng. Cuộc trò chuyện này có xứng đáng được bảo vệ quyền riêng tư mạnh mẽ không? Điều đó không thành vấn đề vì Telegram không cung cấp loại bảo vệ này, ít nhất là không có trong mã hóa mặc định, điều này không bảo vệ bạn khỏi việc chia sẻ nội dung từ máy chủ của Telegram.

Tương tự, giả sử bạn sử dụng các tính năng truyền thông xã hội của Telegram chủ yếu để tiêu thụ nội dung thay vì tạo ra nội dung đó. Nhưng một ngày nọ, bạn của bạn, người cũng sử dụng Telegram vì những lý do tương tự, nhận thấy bạn đang sử dụng nền tảng này và quyết định gửi cho bạn một tin nhắn riêng tư. Bạn có lo lắng về quyền riêng tư ngay bây giờ không? Bạn sẽ bật tính năng "trò chuyện được mã hóa" theo cách thủ công - mặc dù tính năng này yêu cầu bốn lần nhấp chuột rõ ràng qua menu ẩn và sẽ ngăn bạn liên lạc ngay lập tức nếu một trong hai người ngoại tuyến?

Tôi thực sự nghi ngờ rằng nhiều người có thể đã tham gia Telegram vì các tính năng truyền thông xã hội của nó nhưng cuối cùng cũng sẽ sử dụng nó để trò chuyện riêng tư. Tôi nghĩ Telegram biết điều này và có xu hướng tự quảng cáo mình là một "ứng dụng nhắn tin an toàn" và nói chính xác về các tính năng mã hóa của nền tảng vì họ biết nó sẽ khiến mọi người cảm thấy thoải mái hơn. Nhưng trên thực tế, tôi cũng nghi ngờ rằng rất ít người dùng trong số này thực sự sử dụng các tính năng mã hóa của Telegram. Nhiều người dùng thậm chí có thể không biết họ cần bật mã hóa theo cách thủ công và có thể nghĩ rằng họ đã sử dụng mã hóa rồi.

Điều này dẫn tôi đến điểm tiếp theo của tôi.

Telegram biết rất khó để bật tính năng mã hóa của mình nhưng vẫn tiếp tục quảng bá sản phẩm của mình như một ứng dụng nhắn tin an toàn.

Tính năng mã hóa của Telegram đã bị chỉ trích nặng nề kể từ năm 2016 (có thể là sớm hơn) vì nhiều lý do mà tôi đã đề cập trong bài viết này. Trên thực tế, nhiều lời chỉ trích này được đưa ra bởi các chuyên gia, bao gồm cả tôi, trong cuộc trò chuyện với Pavel Durov trên Twitter nhiều năm trước.

Mặc dù đôi khi có những tương tác gay gắt với Durov, nhưng vào thời điểm đó tôi vẫn tin rằng Telegram có ý định tốt. 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 cũng như khả năng sử dụng của mã hóa đầu cuối của nền tảng: ví dụ: bằng cách đặt nó làm mặc định, hỗ trợ trò chuyện nhóm và tạo điều kiện để bắt đầu các cuộc trò chuyện được mã hóa với người dùng ngoại tuyến trở nên khả thi. Tôi đưa ra giả thuyết rằng mặc dù Telegram có thể là người theo sau hơn là người dẫn đầu, nhưng cuối cùng nó sẽ đạt đến mức chức năng tương đương với Signal và WhatsApp trên các giao thức mã hóa. Tất nhiên, một khả năng khác là Telegram sẽ từ bỏ hoàn toàn mã hóa và tập trung vào việc trở thành một nền tảng truyền thông xã hội.

Những gì thực sự đã xảy ra khiến tôi càng bối rối hơn.

Chủ sở hữu của Telegram đã không cải thiện khả năng sử dụng mã hóa đầu cuối của nó và trải nghiệm người dùng được mã hóa của nó hầu như không thay đổi kể từ năm 2016. Mặc dù có một số nâng cấp đối với các thuật toán mã hóa cơ bản được nền tảng sử dụng, nhưng trải nghiệm của người dùng Trò chuyện bí mật vào năm 2024 sẽ gần như giống như 8 năm trước. Mặc dù vậy, cơ sở người dùng của Telegram đã tăng từ 7 đến 9 lần trong cùng thời gian.

Trong khi đó, Giám đốc điều hành 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 đã đưa ra những lời chỉ trích gay gắt về Signal và WhatsApp trên kênh Telegram cá nhân của mình, cho rằng các hệ thống này đã bị chính phủ Mỹ cài backdoor và chỉ có giao thức mã hóa độc lập của Telegram mới thực sự đáng tin cậy.

Điều này có thể hiểu được nếu đây là một lập luận kỹ thuật hợp pháp giữa hai nền tảng đều hỗ trợ mã hóa đầu cuối theo mặc định. Tuy nhiên, Telegram thực sự không có chỗ đứng trong cuộc thảo luận này. Thật không thú vị khi thấy tổ chức Telegram khuyến khích người dùng tránh xa các ứng dụng nhắn tin mã hóa theo mặc định, trong khi chính tổ chức này lại từ chối triển khai các tính năng cơ bản có thể mã hóa rộng rãi tin nhắn của người dùng. Trên thực tế, nó bắt đầu có vẻ hơi độc hại.

Có những chi tiết mã hóa nào khác?

Đây là một blog về mật mã, vì vậy sẽ thật thiếu sót nếu tôi không dành chút thời gian giải thích các giao thức mật mã nhàm chán. Tôi cũng sẽ bỏ lỡ cơ hội tuyệt vời để chiêm ngưỡng các chi tiết bên trong mã hóa của Telegram, điều mà hầu như luôn khiến tôi chết lặng mỗi khi nhìn vào chúng.

Để bớt đau đớn hơn, tôi sẽ trình bày chi tiết trong một đoạn văn, vì vậy bạn có thể bỏ qua nếu không quan tâm.

Tính năng trò chuyện bí mật của Telegram dựa trên giao thức tùy chỉnh có tên MTProto 2.0, theo những gì tôi coi là thông số mã hóa mới nhất. Hệ thống này sử dụng trao đổi khóa Diffie-Hellman trường hữu hạn 2048 bit, với tham số nhóm (tôi nghĩ) được máy chủ chọn. (Vì trao đổi khóa Diffie-Hellman yêu cầu cả hai người dùng tương tác trực tuyến nên không thể thiết lập trò chuyện được mã hóa nếu một người dùng ngoại tuyến.) Việc bảo vệ MITM được xử lý bởi người dùng cuối, họ phải so sánh dấu vân tay của khóa. Máy chủ cung cấp một số nonces ngẫu nhiên kỳ lạ (giá trị ngẫu nhiên) mà tôi không hoàn toàn hiểu được mục đích của nó * - trước đây những nonces này được sử dụng để làm cho việc trao đổi khóa hoàn toàn không an toàn trước các máy chủ độc hại (nhưng vấn đề này đã được giải quyết từ lâu *). Sau đó, các khóa được tạo sẽ được sử dụng ở chế độ mã hóa được xác thực phi tiêu chuẩn, tuyệt vời nhất - chế độ có tên là Tiện ích mở rộng làm xáo trộn vô hạn (IGE), dựa trên AES và sử dụng SHA 2 để xử lý xác thực. **

Lưu ý: Trong đoạn văn trên, mọi thứ tôi đánh dấu bằng "*" là thời điểm mà một nhà mật mã chuyên nghiệp sẽ giơ tay và đặt câu hỏi trong bối cảnh tương tự như kiểm tra bảo mật chuyên nghiệp. Tôi sẽ không đi sâu vào vấn đề này nhưng cũng đủ để nói rằng việc mã hóa Telegram rất bất thường.

Nếu bạn yêu cầu tôi đoán xem giao thức và việc triển khai các cuộc trò chuyện bí mật trên Telegram có an toàn hay không, tôi sẽ nói có lẽ là như vậy. Thành thật mà nói, điều đó không thành vấn đề vì nó an toàn đến mức nào nếu mọi người không thực sự sử dụng nó.

Chặn ghi chú kỳ lân: Nói một cách đơ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 xét về mặt trải nghiệm người dùng, việc thiết lập và sử dụng nó tương đối phức tạp. Một số chi tiết kỹ thuật có thể không rõ ràng, đặc biệt là việc sử dụng các số ngẫu nhiên và cách bảo vệ khóa.

cuối cùng

Mặc dù mã hóa hai đầu là một trong những công cụ tốt nhất mà chúng tôi từng phát triển để ngăn chặn hành vi vi phạm dữ liệu nhưng đó không phải là toàn bộ câu chuyện. Một trong những vấn đề lớn nhất về quyền riêng tư trong nhắn tin là lượng siêu dữ liệu khổng lồ - về cơ bản là dữ liệu về ai đang sử dụng dịch vụ, họ đang nói chuyện với ai và khi nào họ đang nói chuyện.

Dữ liệu này thường không được bảo vệ bằng mã hóa đầu cuối. Ngay cả trong các ứng dụng chỉ dành cho phát sóng, chẳng hạn như các kênh của Telegram, vẫn có rất nhiều siêu dữ liệu hữu ích về ai đang nghe chương trình phát sóng. Bản thân thông tin có giá trị đối với mọi người, bằng chứng là số tiền khổng lồ mà các đài truyền hình truyền thống chi ra để 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ủ của Telegram và có sẵn cho bất kỳ ai muốn thu thập nó.

Tôi không chỉ trích cụ thể Telegram, vì vấn đề tương tự tồn tại với hầu hết các mạng truyền thông xã hội và ứng dụng nhắn tin riêng tư khác. Tuy nhiên nên nói, nhưng tôi đề cập đến những vấn đề này để tránh khiến bạn nghĩ rằng chỉ cần mã hóa là đủ.