Tác giả: Matthew Green Biên soạn bởi: Block Unicorn
Về tác giả, Matthew Green là một 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 viết này đượ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ể 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 hành động leo thang khá đáng lo ngại và mọi thứ không đơn giản như chúng tưởng.
Nhưng hôm nay tôi không muốn nói về vụ bắt giữ này.
Điều tôi muốn nói đến là một chi tiết cụ thể trong báo cáo, cụ thể: Hầu như mọi bản tin về vụ bắt giữ này đều gọi Telegram là "Ứng dụng mã hóa", tại đây là một vài ví dụ:
Câu nói này khiến tôi phát điên vì nhìn 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ó trên 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ờ hãy nói chi tiết.
Telegram có đượ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 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, thuật ngữ này thường là Có một ý nghĩa rất cụ thể:Nó đề cập đến việc sử dụng mã hóa hai đầu mặc định để bảo vệ nội dung tin nhắn của người dùng. Khikhi được sử dụng theo cách tiêu chuẩn ngành, 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 giao tiếp mới biết và nhà điều hành dịch vụ không có sẵn.
Từ góc độ người dùng của bạn, "ứ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, Tin nhắn của bạn chỉ có thể được đọc bởi người bạn đang trò chuyệ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ô dụng. Những đảm bảo tương tự á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 đáp ứng được định nghĩa chặt chẽ hơn này vì một lý do đơn giản: Theo mặc định, Telegram không kích hoạt mã hóa hai đầu. 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ự khá phức tạp đối với người dùng không phải chuyên gia.
Trước hết, 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 (hình bên trái),
(2) Nhấp vào nút "..." để hiển thị bộ tùy chọn ẩn (ả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 xác nhận "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 Michaelvì 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ở A cửa sổ trò chuyện mới sẽ làm được.
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 hai đầu 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à có thêm một số lời chỉ trích 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.)
< p style="text-align: left;">
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 độ là việc Telegram thiếu mã hóa mặc định là điều 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 biệt, 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 hoạt động giống như một mạng phát sóng nơi một người (hoặc một số ít người) có thể đưa nội dung tới 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ũng sẽ làm những việc khác.
Hãy tưởng tượng bạn đang trò chuyện nhóm lớn tại 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 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 bởi 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ự, phát hiện ra 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 về các tính năng mã hóa của nền tảng một cách chính xác vì họ biết rằng 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 tính năng mã hóa theo cách thủ công và có thể nghĩ rằng họ đang sử dụng tính năng mã hóa.
Điều này đưa tôi đến điểm tiếp theo.
Telegram biết rằng tính năng mã hóa của họ rất khó bật 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
< p style="text-align: left;">Kể từ năm 2016 (có thể sớm hơn), tính năng mã hóa của Telegram đã bị chỉ trích nặng 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, 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 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 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.
Điều 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, anh ấy tỏ ra 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ủ Hoa Kỳ khóa cửa sau 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 cuộc tranh 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òn 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ẽ giải thích những chi tiết này trong một đoạn văn. Nếu bạn không quan tâm, vui lòng bỏ qua.
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 tin là thông số kỹ thuật 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ố giá trị ngẫu nhiên kỳ lạ (giá trị ngẫu nhiên) mà tôi không hoàn toàn hiểu mục đích* - những giá trị này được sử dụng để khiến 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 khắc phục 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 gọi là Tiện ích mở rộng bị xáo trộn vô hạn (IGE), dựa trên AES và sử dụng SHA2 để xử lý xác thực. **
Lưu ý: Trong đoạn trên, tất cả những gì tôi đánh dấu bằng "*" là một chuyên gia mật mã có kiến thức nền tảng tương tự như kiểm tra bảo mật chuyên nghiệp. sẽ giơ tay để đặt câu hỏi. Tôi sẽ không đi sâu vào vấn đề này nhưng cũng đủ để nói rằng mã hóa Telegram rất bất thường.
Nếu bạn yêu cầu tôi đoán xem liệu giao thức và việc triển khai các cuộc trò chuyện bí mật của Telegram có an toàn hay không thì tôi sẽ nói có lẽ là như vậy. Thành thật mà nói, điều đó không quan trọng 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 bình luận 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, cách thiết lập và sử dụng nó đều tương đối tổ hợ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 đầu cuối là những gì chúng tôi Một trong những công cụ tốt nhất từng được phát triển để ngăn chặn 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 hai đầu. Ngay cả trong các ứng dụng chỉ dành cho phát sóng, 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ì hầu hết mọi mạng truyền thông xã hội và ứng dụng nhắn tin riêng tư khác đều gặp phải vấn đề tương tự. 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à đủ.