1
Viện Công Nghệ Thông Tin Và Truyền Thông
ĐẠI HỌC BÁCH KHOA HÀ NỘI
Luận Văn Thạc Sĩ
CƠ CHẾ BẢO MẬT CỦA ỨNG DỤNG
TELEGRAM
Nguyen Thanh Long
Ha Noi, 2023
2
MỤC LỤC
LỜI CẢM ƠN ............................................................................................... i
LỜI CAM ĐOAN......................................................................................... ii
MỤC LỤC ................................................................................................... iii
CÁC KÝ HIỆU, CHỮ VIẾT TẮT ............................................................. vi
DANH MỤC HÌNH VẼ ............................................................................ viii
LỜI NĨI ĐẦU.............................................................................................. 1
Chương 1
TỔNG QUAN ỨNG DỤNG NHẮN TIN CÓ BẢO MẬT
1.1. Ứng dụng nhắn tin có bảo mật .............................................................. 2
1.1.1. WhatsApp ........................................................................................... 3
1.1.2. Line ..................................................................................................... 4
1.1.3. TextSecure .......................................................................................... 6
1.1.4. Telegram ........................................................................................... 10
1.1.5. WeChat ............................................................................................. 12
1.2. Ứng dụng nhắn tin Telegram .............................................................. 14
1.2.1. Giới thiệu vềTelegram ...................................................................... 14
1.2.2. Đặc điểm nổi bật củaTelegram .......................................................... 14
Chương 2
CƠ CHẾ BẢO MẬT CỦA ỨNG DỤNG NHẮN TIN TELEGRAM
2.1. Một số ký hiệu, định nghĩa, khái niệm ................................................ 18
2.1.1. Các ký hiệu ....................................................................................... 18
2.1.2. Hệ mật khóa đối xứng ....................................................................... 18
3
2.1.2.1. Lược đồ mã hóa khóa bí mật .......................................................... 19
2.1.2.2. Advanced Encryption Standard (AES) ........................................... 19
2.1.2.3. Infinite Garble Extension (IGE) ..................................................... 20
2.1.3.
Định nghĩa an toàn ......................................................................... 22
2.1.3.1. Giới thiệu về oracles ...................................................................... 22
2.1.3.2. Định nghĩa IND-CPA .................................................................... 23
2.1.3.2. Định nghĩa IND-CCA .................................................................... 25
2.1.3.3. Định nghĩa INP-PTXT ................................................................... 27
2.1.3.4. Định nghĩa: INT-CTXT ................................................................. 29
2.1.3.5. Mã hóa xác thực ............................................................................ 30
2.2 Giao thức MTProto ................................................................................ 31
2.2.1 Đăng ký thiết bị .................................................................................. 31
2.2.2. Trao đổi khóa.................................................................................... 34
2.2.3. Mã hóa thơng báo ............................................................................. 37
2.2.3.1. Thứ tự của thông báo ..................................................................... 40
2.2.3.2. Giải mã thông báo.......................................................................... 41
2.2.3.3. Tính xác thực của các tin nhắn được mã hóa .................................. 44
2.2.4. Hàm dẫn xuất khóa ........................................................................... 44
2.2.4.1. Chuyển tiếp bí mật ......................................................................... 47
2.2.4.2. Khả năng tương thích ngược .......................................................... 48
Chương 3
PHÂN TÍCH, ĐÁNH GIÁ CƠ CHẾ BẢO MẬT CỦA TELEGRAM
3.1. Một số phân tích đánh giá về MTProto ................................................ 50
4
3.1.1. Lỗ hổng padding ngẫu nhiên ............................................................. 50
3.1.1.1. Tấn công IND-CCA: mở rộng chiều dài padding ........................... 51
3.1.1.2. Tấn công IND-CCA: va chạm bản rõ padding ............................... 53
3.1.2.
Tấn công dùng lại và phản chiếu trong các phiên bản cũ................ 54
3.1.3. Tấn công theo thời gian vào MTProto .............................................. 55
3.2. Các cuộc tấn công đã biết trên MTProto .............................................. 56
3.2.1. Tấn công máy chủ độc hại MitM ...................................................... 56
3.2.2. Tấn công MitM của bên thứ ba ......................................................... 57
3.2.3. Tấn công MitM bên thứ ba không bị phát hiện ................................. 58
3.3.
Cài đặt thử nghiệm ứng dụng nhắn tin Telegram .............................. 61
3.3.1. Mô hình cài đặt ................................................................................. 61
3.3.1.1 Cài đặt ứng dụng nhắn tin Telegram trên điện thoại ......................... 61
3.3.1.2. Cài đặt ứng dụng nhắn tin Telegram-CLI trên pc-client ................. 62
3.3.2.
Thử nghiệm truyền tin trên ứng dụng Telegram-CLI ..................... 63
KẾT LUẬN ................................................................................................ 67
TÀI LIỆU THAM KHẢO ......................................................................... 69
1
LỜI NĨI ĐẦU
Trong mơi trường cơng nghệ mạng internet phát triển như hiện nay, các
vấn đề về an tồn thơng tin ngày càng trở nên cấp bách. Việc đảm bảo các thơng
tin chỉ có thể được biết bởi những người có thẩm quyền là một yếu tố rất quan
trọng trong nhiều lĩnh vực như an ninh, quốc phòng, kinh tế, xã hội. Do vậy, vai
trò của mật mã ngày càng trở nên quan trọng trong việc cung cấp các tính chất bí
mật, xác thực và tồn vẹn cho nội dung thông tin.
Công nghệ mạng internet phát triển đã mang mọi người trên thế giới gần
nhau hơn.Tuy nhiên đòi hỏi nhu cầu liên lạc, trao đổi thông tin với nhau ngày
càng lớn, đặc biệt là qua tin nhắn. Người dùng ngày càng muốn việc nhắn tin
không chỉ thời gian truyền tin nhanh chóng mà cịn phải đảm bảo tính riêng tư
cho các tin nhắn, tránh các cuộc tấn công của hacker hay sự theo dõi của chính
phủ. Nhu cầu về tính riêng tư đã sinh ra hàng loạt ứng dụng có độ bảo mật cao
hứa hẹn đáp ứng hoàn toàn mong muốn của người dùng. Các dịch vụ như
Telegram, Signal,whatsApp,.. đã giúp khái niệm "mã hóa đầu cuối" trở nên phổ
biến. Mới đây nhất, Facebook cũng đã trang bị tính năng mã hóa tin nhắn đầu
cuối cho ứng dụng nhắn tin Messager của họ.
Về nội dung của đồ án được chia làm 3 chương như sau:
Chương 1: Tổng quan ứng dụng nhắn tin có bảo mật
Chương 2: Cơ chế bảo mật của ứng dụng nhắn tin Telegram
Chương 3: Phân tích, đánh giá bảo mật của Telegram
Chương 1
TỔNG QUAN ỨNG DỤNG NHẮN TIN CĨ BẢO MẬT
1.1. Ứng dụng nhắn tin có bảo mật
Ngày nay, rất nhiều người sử dụng các ứng dụng nhắn tin để giao tiếp. Do
2
đó, việc xây dựng ứng dụng nhắn tin mới trong những năm qua với mục đích để
thay thế tin nhắn SMS truyền thống, hầu hết trong số họ không xây dựng được
với bảo mật hoặc tính riêng tư. Kể từ khi Edward Snowden cơng bố các giấy tờ
bí mật từ NSA chứa thông tin về giám sát hàng loạt, nhu cầu về các cuộc trò
chuyện bảo mật tăng lên. Một u cầu cho một cuộc trị chuyện an tồn là để
ngăn chặn các dịch vụ tình báo và các bên thứ ba khác tham gia vào q trình
truyền thơng giữa các người dùng cũng như kiểm soát người cung cấp không thu
thập thông tin cá nhân về những người sử dụng những người đưa tin này. Một
khía cạnh khác là kiểm tra, bao nhiêu thơng tin cá nhân có thể được trích ra từ
những người được thêm vào như bạn bè và những gì là cần thiết để thêm bạn bè
mới. Điều này đặc biệt quan trọng để ngăn chặn những nỗ lực sử dụng mạng
truyền tin như một phương tiện để giám sát hoặc các giai đoạn đầu của APT (ví
dụ như các cuộc tấn cơng lừa đảo).
Trong chương này, đồ án tìm hiểu, phân tích một số ứng dụng nhắn tin
nổi bật nhất liên quan đến vấn đề bảo mật. Các tiêu chí quyết định chính cho việc
lựa chọn các ứng dụng nhắn tin là số điện thoại được yêu cầu cho việc đăng ký
của một người dùng mới và hơn nữa mã bí mật được truyền qua SMS (xác thực
hai yếu tố). Một tiêu chí khác cho việc lựa chọn là một số ứng dụng này đã được
thử nghiệm. Điểm thứ ba là kiểm tra các ứng dụng nhắn tin mới tuyên bố hỗ trợ
mã hoá đầu cuối, hoặc đặt trọng tâm vào bảo vệ sự riêng tư. Các ứng dụng nhắn
tin được chọn là WhatsApp, Line, WeChat, Telegram, TextSecure.
1.1.1. WhatsApp
Ứng dụng nhắn tin này phổ biến nhất trong mơi trường Android. Miễn
phí trong một năm và có sẵn cho nhiều nền tảng. Thống kê tải xuống hiện tại từ
cửa hàng Google Play cho thấy ứng dụng đã được cài đặt hơn 1.000.000.000 lần
(tính đến 02.07.2018). Các tính năng chính được cung cấp bởi ứng dụng này là
gửi tin nhắn cho người khác, tạo ra cuộc trò chuyện nhóm và chia sẻ phương tiện
3
truyền thơng như hình ảnh và video. Hơn nữa, khơng cần phải thêm địa chỉ liên
hệ vào ứng dụng này vì ứng dụng tìm kiếm người dùng WhatsApp đã đăng ký
trong danh bạ.
Đối với ứng dụng WhatsApp, không thể từ chối tải lên tất cả các địa chỉ
liên lạc từ danh bạ, do đó máy chủ thu thập thơng tin trên tất cả các địa chỉ liên
hệ từ những môi trường cá nhân. Một vấn đề khác liên quan đến tính năng kiểm
sốt người có thể xem lần cuối cùng một người dùng đang trực tuyến. Trong cài
đặt, có một tùy chọn cho phép xác định rằng khơng ai có thể xem những gì đã
đọc lần cuối cùng, hay khi người dùng đọc một thơng điệp cụ thể. Do đó, không
ai thấy khi nào người dùng trực tuyến lần cuối. Vấn đề với cài đặt này là mọi
người có thể xem trạng thái trực tuyến hiện tại của người dùng. Điều này có
nghĩa là theo dõi trạng thái trực tuyến vẫn có thể thực hiện được khi liên tục
trong mỗi giây. Đối với việc theo dõi này, công cụ WhatsSpy đã được phát triển.
Bằng cách sử dụng công cụ này, có thể theo dõi hoạt động trực tuyến của mọi
người dùng WhatsApp trên toàn thế giới bằng cách liên tục theo dõi tình trạng
trực tuyến hiện tại. Hơn nữa, người dùng khơng có khả năng thay đổi cài đặt đó,
do đó hiện khơng có biện pháp đối phó với hình thức theo dõi này.
Đối với một số người dùng, chỉ trong vịng một tuần giám sát, kẻ tấn cơng
có thể thu thập đầy đủ thơng tin về thói quen hàng ngày và thơng tin này có thể
chi tiết hơn khi được làm giàu với các thơng tin bên ngồi khác cùng với thời
gian giám sát dài hơn. Một khía cạnh khác, thơng tin bổ sung được rị rỉ thơng
qua các hình ảnh của người sử dụng và thơng điệp trạng thái của họ, mà trong
nhiều trường hợp chứa thông tin cá nhân. Danh sách sau đây hiển thị các quyền
chính, được yêu cầu cài đặt và vận hành WhatsApp, chỉ liệt kê các điều khoản có
thể làm rị rỉ thơng tin cá nhân về người dùng:
Nhận dạng: Thêm hoặc xóa tài khoản, tìm tài khoản trên thiết bị, đọc liên
hệ của riêng người dùng.
4
Danh bạ: Chỉnh sửa danh bạ, đọc danh bạ của người dùng.
Vị trí: Vị trí gần đúng (dựa trên mạng), vị trí chính xác (GPS và dựa trên
mạng).
Ảnh / phương tiện / tệp: Đọc nội dung bộ nhớ USB của người dùng, sửa
đổi hoặc xóa nội dung trong bộ nhớ USB của người dùng.
Camera: Chụp ảnh và quay phim.
Microphone: Ghi âm thanh.
ID thiết bị và thông tin cuộc gọi: Đọc trạng thái điện thoại và nhận dạng.
Khác: Đọc thống kê đồng bộ hóa, ghép nối với thiết bị Bluetooth, thay đổi
cài đặt âm thanh, sửa đổi cài đặt hệ thống, sử dụng tài khoản trên thiết bị, quyền
truy cập mạng tồn diện, đọc cấu hình dịch vụ của Google.
1.1.2. Line
Một ứng dụng phổ biến khác là Line từ Nhật Bản. Thống kê tải xuống từ
cửa hàng Google Play cho thấy, ứng dụng này này đã được cài đặt hơn
500.000.000 lần (tính đến 28.06.2018). Ứng dụng này có khả năng gửi tin nhắn,
thực hiện cuộc gọi âm thanh / video và chia sẻ tọa độ GPS hiện tại. Nó có thể
được sử dụng trên điện thoại thơng minh, máy tính bảng và máy tính cá nhân.
Giống như WhatsApp, người dùng có thể tạo các cuộc trị chuyện nhóm hoặc trị
chuyện riêng với một người dùng khác. Kể từ phiên bản 4.5.5 của ứng dụng
Android, hỗ trợ mã hoá đầu cuối đã được thêm vào bao gồm khả năng hủy các
tin nhắn sau một thời gian cụ thể.
Việc cài đặt Line này yêu cầu một số quyền cho phép ứng dụng truy cập
vào một lượng lớn thông tin về người sử dụng điện thoại. Tuy nhiên, nó đã được
phát hiện ra rằng các ứng dụng chỉ yêu cầu các điều khoản này, nếu người dùng
sử dụng các chức năng mà họ yêu cầu. Danh sách sau đây hiển thị các quyền
5
chính, được yêu cầu cài đặt Line, chỉ liệt kê các quyền có thể làm rị rỉ thơng tin
cá nhân về người dùng:
Lịch sử thiết bị và ứng dụng: Truy xuất các ứng dụng đang chạy
Nhận dạng: Tìm tài khoản trên thiết bị.
Danh bạ: Đọc địa chỉ liên hệ của bạn
Vị trí: Vị trí gần đúng (dựa trên mạng), vị trí chính xác (GPS và dựa trên
mạng), truy cập các lệnh của nhà cung cấp vị trí bổ sung.
SMS: Nhận tin nhắn văn bản (SMS).
Điện thoại: Trực tiếp gọi số điện thoại, đọc nhật ký cuộc gọi.
Ảnh / phương tiện / tệp: Đọc nội dung bộ nhớ USB của bạn, sửa đổi hoặc
xóa nội dung trong bộ nhớ USB của người dùng.
Camera: Chụp ảnh và quay phim.
Microphone: Ghi âm thanh.
ID thiết bị và thông tin cuộc gọi: Đọc trạng thái điện thoại và nhận dạng.
Với lượng lớn quyền truy cập này, rất dễ dàng sử dụng ứng dụng này để
theo dõi người dùng. Trong quá trình liệt kê người dùng, người dùng được yêu
cầu nhận được một tin nhắn, hỏi xem người dùng có thể bị chặn hoặc bổ sung.
Nếu mục tiêu được thêm vào, kẻ tấn cơng có thể xem các bài đăng của nạn nhân.
Hơn nữa, khi chặn u cầu, vẫn có thể xem ảnh và thơng báo trạng thái hiện tại.
Qua đó thường dễ dàng thu thập ảnh của người dùng thường xuyên chỉ yêu cầu
ID người dùng, ID mã QR hoặc số điện thoại của người đó.
Một tính năng của ứng dụng này là tùy chọn để từ chối tải lên các danh bạ
điện thoại cá nhân trong q trình xác thực. Một tính năng khác của Lines gọi là
chat riêng. Phiên bản trò chuyện này cung cấp mã hóa đầu cuối để chuyển thơng
6
tin cá nhân. Tuy nhiên, tính năng này khơng có sẵn cho cuộc trị chuyện nhóm và
cần phải kích hoạt một cách rõ ràng cuộc trị chuyện riêng, do đó cho phép nhà
cung cấp xem tất cả các giao tiếp trong các cuộc trị chuyện nhóm và mất tính
riêng tư.
Ngồi ra, Line cung cấp khả năng xác định người dùng chỉ sử dụng một
ID người dùng. Vì vậy, số điện thoại không phải được chia sẻ với địa chỉ liên lạc
hoặc thậm chí những người khơng biết, cho phép ẩn thơng tin này (đơi khi cá
nhân). Một tính năng liên quan đến bảo mật khác là chỉ có mã thơng báo người
dùng được truyền đi trong một tin nhắn và không thể lấy thông tin liên lạc từ nội
dung tin nhắn, ngăn lại việc xuất bản số điện thoại của người dùng (đặc biệt xem
xét sử dụng ID người dùng làm phương tiện để thiết lập truyền thông).
1.1.3. TextSecure
Ứng dụng nhắn tin này được giới thiệu với việc sử dụng mã hóa mạnh
trong khi dễ sử dụng cho những người không phải chuyên gia và đáng tin cậy
như các cuộc gọi điện thoại bình thường hoặc gửi tin nhắn bình thường. Mọi tin
nhắn, cuộc trị chuyện nhóm cũng như các cuộc trị chuyện riêng tư, được mã
hóa bằng cách sử dụng mã hóa đầu cuối (end-to-end). Hơn nữa, nhà cung cấp
khơng có quyền truy cập siêu dữ liệu cho các cuộc trị chuyện theo nhóm như
các thành viên nhóm, tiêu đề nhóm hoặc biểu tượng hình đại diện nhóm. Trong
phiên bản 2.7.0, việc hỗ trợ mã hoá tin nhắn SMS và MMS đã kết thúc do các tin
nhắn SMS / MMS và các sự cố khác xảy ra với việc trao đổi khóa.
Một trong những mục đích của TextSecure là cố gắng không lưu bất kỳ
siêu dữ liệu nào của người dùng. Các số điện thoại có trong danh bạ tải lên được
băm. Vấn đề với giải pháp này là phạm vi kết hợp là rất nhỏ. Hơn nữa, điều này
cho phép tạo ra tất cả các giá trị băm có thể và so sánh chúng với các giá trị băm
địa chỉ liên hệ được tải lên của người dùng. Như nhà phát triển của TextSecure
7
đã đề cập, khơng có giải pháp khả thi để băm các địa chỉ liên lạc một cách an
toàn. Một số khái niệm đã được phát triển, nhưng không sử dụng được cho một
lượng lớn người dùng. Hạn chế liên quan đến bảo mật là thực tế đó là người
dùng khơng có tùy chọn để từ chối tải lên danh bạ điện thoại trong TextSecure,
do đó tất cả các địa chỉ liên lạc từ danh bạ điện thoại cục bộ được tải lên. Tuy
nhiên, nhà cung cấp khơng có thơng tin về địa chỉ liên lạc rõ ràng của người
dùng, do vậy một lỗi quan trọng liên quan đến sự riêng tư là số điện thoại của
người nhận được lưu trữ trong mỗi tin nhắn rõ (vì lý do bảo mật số cuối cùng của
số điện thoại đã được thay đổi). Hơn nữa, mã xác thực thông báo cho
TextSecure chứa số điện thoại của người dùng hiện tại. Kết quả là chuỗi đã giải
mã hiển thị chứa số điện thoại của người dùng.
Một tính năng khác liên quan đến bảo mật được cung cấp bởi
TextSecure là tất cả các tin nhắn của nhóm, cũng như cuộc trị chuyện riêng tư
được mã hóa theo mặc định. Nhà cung cấp khơng thể đánh chặn bất kỳ thông
báo nào của người sử dụng, thậm chí một trong những tài liệu bị tiết lộ bởi
Edward Snowden cho thấy rằng ngay cả NSA cũng không có khả năng giải mã
OTR, một phần được sử dụng trong giao thức TextSecure. Hơn nữa, nó được
xác nhận rằng hiện tại giao thức này là an toàn chống lại các cuộc tấn công đã
biết và rằng các lỗ hổng được tìm thấy khả năng đã được kiểm sốt bởi các nhà
phát triển.
Ngoài ra, trường hợp ứng dụng chỉ yêu cầu một vài điều khoản để làm
việc đúng cách là phù hợp với sự riêng tư. Danh sách sau đây hiển thị các quyền
chính, được yêu cầu để cài đặt TextSecure, chỉ liệt kê các quyền có thể làm rị rỉ
thông tin cá nhân về người dùng:
Nhận dạng: Đọc thẻ liên lạc, sửa đổi thẻ liên lạc, tìm tài khoản trên thiết bị
của người dùng.
8
Danh bạ: Đọc địa chỉ liên lạc, chỉnh sửa địa chỉ liên lạc.
SMS: Đọc tin nhắn văn bản (SMS hoặc MMS), chỉnh sửa tin nhắn văn
bản (SMS hoặc MMS).
Điện thoại: Đọc nhật ký cuộc gọi.
Ảnh / phương tiện / tệp: Chỉnh sửa hoặc xóa nội dung trong bộ nhớ USB,
đọc nội dung trong bộ nhớ USB.
ID thiết bị và thông tin cuộc gọi: Đọc trạng thái điện thoại và nhận dạng.
Khác: Truy cập tồn mạng.
Nhìn chung, TextSecure chỉ u cầu 24 quyền để hoạt động bình thường.
Như danh sách cho thấy, khơng có cách nào để theo dõi người dùng thông qua
GPS, không phải ứng dụng yêu cầu đặc quyền để cho phép microphone để lắng
nghe. Hơn nữa, khơng có vấn đề khi sử dụng một ứng dụng khác trên điện thoại
để ghi lại âm thanh, chụp ảnh bằng máy ảnh và gửi tập tin media này qua
TextSecure tới những người dùng khác.
Để đảm bảo rằng đối tác trò chuyện thực sự là người mà họ tuyên bố, bạn
có thể so sánh một bản in của khoá, được sử dụng để mã hóa tin nhắn. Để thực
hiện việc này, gặp người dùng khác và quét mã QR được tạo ra của khố là cần
thiết. Nếu khóa của đối tác trị chuyện thay đổi, người dùng sẽ nhận được một
thông báo rằng khố đã thay đổi và liệu người dùng có muốn chấp nhận khố
mới. Vì vậy, một kẻ tấn cơng không thể dễ dàng đánh chặn việc truyền thông và
cung cấp một khóa giả, sau đó được chấp nhận bởi các ứng dụng mà khơng có
xác nhận của người sử dụng.
Một tính năng khác là người dùng có thể xác định, cho dù có thể tạo ảnh
chụp màn hình của cuộc hội thoại trên màn hình hay khơng. Tính năng này
khơng ngăn được đối tác trị chuyện tạo ảnh chụp màn hình, nhưng nó ngăn
9
khơng cho ứng dụng khác trên điện thoại có thể tạo ảnh chụp màn hình. Hơn
nữa, TextSecure cung cấp một tính năng để thiết lập một mật khẩu mã hóa các
tin nhắn cục bộ và các khóa mã hố được sử dụng. Do đó, tất cả các dữ liệu cục
bộ nhạy cảm có thể được bảo vệ và thậm chí nếu điện thoại bị đánh cắp, tin nhắn
cá nhân sẽ vẫn an tồn. Hơn nữa, người dùng có thể xác định thời hạn hiệu lực
cho mật khẩu, nghĩa là ứng dụng "quên" mật khẩu sau một thời gian nhất định
buộc người dùng nhập lại mật khẩu. Đây là một cơ chế bảo vệ bổ sung trong
trường hợp điện thoại bị mất hoặc bị đánh cắp.
TextSecure sử dụng mật khẩu do người dùng xác định để mã hóa các tin
nhắn được lưu trữ trong cơ sở dữ liệu. Tuy nhiên, thông tin như địa chỉ liên hệ và
tem thời gian tin nhắn được lưu trữ khơng được mã hóa. Điều này đặt ra vấn đề
nghiêm trọng vì kẻ tấn cơng vẫn có thể xác định thơng tin liên lạc, ngay cả trong
trường hợp mã hố ngun vẹn.
Đối với việc mã hóa tin nhắn được gọi là bí mật gốc. Bí mật gốc này được
lưu trữ trên chính thiết bị, được bảo vệ bởi một mật khẩu người dùng xác định.
Vì vậy, nếu người dùng khơng đặt mật khẩu, bí mật gốc được lưu trữ khơng
được mã hóa do đó tất cả các tin nhắn trong cơ sở dữ liệu có thể được giải mã.
1.1.4. Telegram
Ứng dụng nhắn tin mới này được phát triển sau những phát hiện của
Edward Snowden nhằm cung cấp khả năng giao tiếp an toàn. Với ứng dụng
nhắn tin này, các cuộc trị chuyện nhóm và giao tiếp với một người là có thể,
cũng như chia sẻ tập tin. Cuộc trị chuyện bí mật cung cấp bộ đếm thời gian tự
hủy, xóa tất cả các tin nhắn cũ hơn một năm. Tuy nhiên, cuộc trị chuyện bí mật
này khơng có sẵn cho các nhóm vào lúc này. Đối với việc mã hóa của giao tiếp
giữa máy chủ và máy khách, một thuật tốn mã hóa được phát triển tuỳ chỉnh
đang được sử dụng. Thống kê số lượt tải hiện tại từ cửa hàng Google Play cho
10
biết ứng dụng này đã được cài đặt hơn 100.000.000 lần (tính đến 03.07.2018).
Giống như Line, Telegram cung cấp một cuộc trị chuyện bí mật. Loại
cuộc trị chuyện này được mã hóa đầu cuối (end-to-end) và nhà cung cấp khơng
thể đọc được. Nó cũng cung cấp một cơ chế để chuyển tiếp bí mật hồn hảo. Nếu
người dùng đã gửi hơn 100 tin nhắn hoặc đã sử dụng khóa trong thời gian hơn
một tuần, một khóa mới sẽ được tạo và tất cả tin nhắn cũ không thể được giải mã
nữa. Ngay cả với khố mới, khơng thể tái tạo lại bất kỳ khóa cũ nào, khơng cho
phép khơi phục lại các tin nhắn cũ. Tuy nhiên, ứng dụng giữ một bản sao lưu
khơng mã hố của các tin nhắn cũ, hoàn toàn ngăn cản bất kỳ nỗ lực cung cấp bí
mật chuyển tiếp trong trường hợp bị mất cắp hoặc bị mất các thiết bị. Một tính
năng của cuộc trị chuyện bí mật là một bộ đếm thời gian tự hủy khá giống với
TextSecure. Hơn nữa, có thể thấy bất cứ khi nào người dùng chụp màn hình
cuộc trị chuyện trên màn hình, song trị chuyện bí mật hiện không được đặt làm
chế độ hoạt động mặc định và người dùng cần phải bắt đầu một cách rõ ràng.
Hiện tại, nó cũng khơng có sẵn cho các cuộc trị chuyện nhóm.
Tương tự như WhatsApp, Telegram cũng cung cấp tính năng để thay đổi
khả năng hiển thị trạng thái trực tuyến. Do đó, khơng thể nhìn thấy khi người
dùng trực tuyến lần cuối và nếu người dùng hiện đang trực tuyến. Một tính năng
khác là khả năng thiết lập một mật khẩu cho ứng dụng như là người sử dụng, yêu
cầu mở khóa các tin nhắn để đọc tin nhắn mới. Trong trường hợp mật khẩu bị
mất, tất cả cuộc trị chuyện bí mật bị mất và ứng dụng cần được cài đặt lại. Ứng
dụng cũng cung cấp tính năng tự hủy tài khoản, xóa tất cả các cuộc trị chuyện và
thông tin về người dùng sau một khoảng thời gian không hoạt động.
Danh sách sau đây hiển thị các quyền chính, được yêu cầu cho Telegram,
chỉ liệt kê các điều khoản có thể làm rị rỉ thơng tin cá nhân trên người dùng:
Nhận dạng: Thêm hoặc xóa tài khoản, tìm tài khoản trên thiết bị, đọc liên
11
hệ của riêng người dùng.
Danh bạ: Chỉnh sửa danh bạ, đọc danh bạ của người dùng.
Vị trí: Vị trí gần đúng (dựa trên mạng), vị trí chính xác (GPS và dựa trên
mạng).
Ảnh / phương tiện / tệp: Chỉnh sửa hoặc xóa nội dung trong bộ nhớ USB
của người dùng.
Camera: Chụp ảnh và quay phim.
Microphone: Ghi âm thanh.
ID thiết bị và thông tin cuộc gọi: Đọc trạng thái điện thoại và nhận dạng.
Khác: Tạo tài khoản và đặt mật khẩu, đọc cấu hình dịch vụ của Google,
vẽ qua các ứng dụng khác.
Giống TextSecure, Telegram cũng chỉ cần vài yêu cầu để hoạt động bình
thường, vẫn cần các quyền như máy ảnh, micrơ hoặc GPS có thể bị lạm dụng để
theo dõi người dùng. Telegram khơng mã hóa các tin nhắn được lưu trữ trên
thiết bị. Đối với dòng cơ sở dữ liệu khơng mã hóa có thể được tìm thấy trong thư
mục /data/data/org.telegram.messenger/ les / cache4.db. Ngoài ra các tin nhắn
từ cuộc trị chuyện bí mật được lưu trữ khơng được mã hóa.
1.1.5. WeChat
Giống như Line, ứng dụng nhắn tin này cũng hỗ trợ gửi tin nhắn, cuộc gọi
âm thanh / hình ảnh, các cuộc trị chuyện nhóm lớn, cũng như chia sẻ các
phương tiện truyền thơng và vị trí GPS hiện tại. hơn nữa, ứng dụng này cung cấp
tính năng để giao tiếp chỉ bằng cách lắc điện thoại. Sau đó, các địa chỉ liên lạc
cũng lắc điện thoại của họ cùng một lúc, được liệt kê trong ứng dụng. Số lượt tải
hiện tại từ cửa hàng Google Play cho thấy rằng tin nhắn này đã được cài đặt hơn
100.000.000 lần (tính đến 21.06.2018).
12
WeChat khá giống với Line và do đó cung cấp các tính năng tương tự về
bảo vệ sự riêng tư. Một cài đặt kiểm sốt, cho dù người dùng có thể được tìm
thấy theo số điện thoại và nếu yêu cầu kết bạn được chấp nhận tự động. Do đó,
người dùng có lựa chọn để ngăn chặn được tìm thấy bởi những người dùng khác.
Tính năng này cũng có sẵn cho WeChat-ID, nhưng khơng cho mã QR. Hơn nữa,
có thể xác định xem danh bạ điện thoại có được tải lên máy chủ và người sử
dụng phải xác nhận điều này một cách rõ ràng trong quá trình tải lên.
Một tính năng liên quan đến bảo mật khác là người dùng có thể xác định,
nếu họ muốn chia sẻ các tin nhắn được đăng (gọi là Moments). Hơn nữa, có thể
làm cho Moments cơng khai hoặc chỉ có sẵn cho bạn bè của người dùng.
WeChat khơng cung cấp cuộc trị chuyện an tồn, do đó tất cả thơng tin liên lạc
khơng được mã hóa và có thể được giám sát bởi nhà cung cấp. Hơn nữa, nhà
cung cấp ứng dụng này được phép theo dõi một số lượng lớn thông tin trong khi
người dùng đang sử dụng tính năng thoại: Thông tin này bao gồm tên, số điện
thoại, địa chỉ email, chi tiết thẻ tín dụng, hồ sơ tiểu sử và thư viện ảnh, đã làm
dấy lên nghi ngờ về giám sát nhà nước của người.
Danh sách các quyền dưới đây cho thấy, ứng dụng này có thể dễ dàng sử
dụng để giám sát người dùng và thu thập thông tin cá nhân về chúng. Chỉ có
quyền truy cập quan trọng nhất để thu thập thông tin cá nhân về người dùng
được liệt kê. Hơn nữa, nhà cung cấp có thể sử dụng các quyền này để theo dõi vị
trí hiện tại, chụp ảnh từ những nơi và sử dụng micro để ghi lại âm thanh trong
phạm vi điện thoại. Tuy nhiên, không thể phát hiện bất kỳ sự lạm dụng nào đối
với các quyền này trong quá trình phân tích.
Nhận dạng: Thêm hoặc xóa tài khoản, tìm tài khoản trên thiết bị, đọc thẻ
liên hệ của riêng người dùng.
Danh bạ: Chỉnh sửa danh bạ, đọc danh bạ của người dùng.
13
Vị trí: Vị trí gần đúng (dựa trên mạng), vị trí chính xác (GPS và dựa trên
mạng).
Hình ảnh / phương tiện / tệp: Đọc nội dung bộ nhớ USB của người dùng,
sửa đổi hoặc xóa nội dung của bộ lưu trữ USB.
Camera: Chụp ảnh và quay phim.
Microphone: Ghi âm thanh.
ID thiết bị và thông tin cuộc gọi: Đọc trạng thái điện thoại và nhận dạng.
Khác: Tải xuống các tệp mà không cần ghi, đọc cài đặt đồng bộ, tạo tài
khoản và đặt mật khẩu, chỉnh sửa cài đặt hệ thống, đo dung lượng lưu trữ ứng
dụng, truy cập cài đặt Bluetooth, ghép nối với thiết bị Bluetooth, thay đổi cài đặt
âm thanh, vượt qua các ứng dụng khác, sử dụng tài khoản trên thiết bị, truy cập
toàn mạng.
WeChat lưu trữ tất cả các thông tin trong một cơ sở dữ liệu mã hóa. Tuy
nhiên, chỉ với kiến thức về các thiết lập hệ thống của messenger, IMEI và cơ sở
dữ liệu mã hóa, có thể lấy khóa giải mã và giải mã cơ sở dữ liệu. Cài đặt hệ thống
chứa một số nhận dạng duy nhất, được gọi là UIN, được tạo ra bởi messenger.
Chức năng tạo khóa giải mã KEY được định nghĩa là KEY = MD5 (IMEI +
UIN).
1.2. Ứng dụng nhắn tin Telegram
1.2.1. Giới thiệu về Telegram
Telegram là một ứng dụng nhắn tin tương tự như WhatsApp. Telegram là
một ứng dụng nhắn tin trên điện thoại di động và máy tính để bàn dựa trên đám
mây, tập trung vào bảo mật và tốc độ.
Telegram được phát triển bởi anh em nhà Durov người Nga. Có thể nói,
vào thời điểm WhatsApp chưa xảy ra sự cố thì chưa ai biết đến Telegram là gì.
14
Tuy nhiên, nhờ vào sai lầm của WhatsApp mà Telegram đã thu hút gần 5 triệu
người dùng ngay sau đó và thậm chí đã trở thành ứng dụng được tải nhiều nhất
trên Apple Store vào thời điểm đó. Khơng những thế, Telegram cũng trở thành
ứng dụng hàng đầu tại hơn 46 quốc gia khắp thế giới từ Đức đến Ecuador. Ở Mỹ
và một số quốc gia khác, Telegram cũng trở thành ứng dụng hàng đầu trong
nhóm các ứng dụng mạng xã hội, vượt mặt cả Facebook, WhatsApp.
1.2.2. Đặc điểm nổi bật của Telegram
• Tính bảo mật cao
Telegram có tính bảo mật cao hơn hẳn các ứng dụng chat hay nhắn tin
khác. Sở dĩ Telegram đặc biệt an toàn là nhờ sử dụng giao thức MTProto do
Nikolai Durov sáng tạo ra. Thực tế, Telegram chỉ là một sản phẩm để thử
nghiệm MTProto.
Telegram thậm chí cịn đang treo thưởng 200.000 USD cho những người
có thể phá vỡ được MTProto. Từ trước tới nay, chỉ có những lỗ hổng trong các
sản phẩm quan trọng như Windows mới có thể mang lại cho hacker khoản
thưởng cao đến như vậy.
Hệ thống của Telegram bảo mật cao đến mức ngay cả các công ty an ninh
của Nga cũng khơng thể tiếp cận được. Do đó, người dùng có thể nhắn tin, tương
tác với bạn bè mà không phải lo lắng bị các cơ quan an ninh hay hacker đánh cắp
thông tin. Chức năng này của Telegram cịn được gọi là SecretChat.
•
Telegram như một mã nguồn mở
Telegram được cải tiến không ngừng từ các nhà phát triển bên ngồi cơng
ty. Khác với WhatsApp hay các ứng dụng khác vốn giới hạn sự tiếp cận của bên
thứ ba, Durov lại tạo điều kiện cho các nhà phát triển khác tham gia vào quá
trình thiết kế, phát triển ứng dụng Telegram. Các nhà phát triển có thể truy cập
vào những nền tảng phía dưới của Telegram để chỉnh sửa, thiết kế hay thậm chí
15
là tạo ra các phiên bản mới cho ứng dụng này. Vì thế mà Telegram ln có
những giao diện, thiết kế mới hơn, tốt hơn và thân thiện với người dùng hơn.
•
Telegram là một ứng dụng miên phí
Telegram sử dụng chiến lược miễn phí để thu hút khách hàng. Mục tiêu ra
đời của Telegram không phải là kinh doanh mà là trở thành một tổ chức phi lợi
nhuận. Và vì Telegram không đặt mục tiêu doanh thu hay lợi nhuận nên họ cũng
khơng buộc người dùng miễn phí sử dụng các phiên bản có quảng cáo. Điều này
giúp Telegram trở nên thu hút mọi người hơn. Và Durov cũng từng nói rằng
cơng ty sẽ khơng nhận bất kỳ khoản đầu tư nào từ bên ngồi. Nếu như một ngày
Telegram khơng cịn đủ tài chính để hoạt động thì họ sẽ kêu gọi sự qun góp từ
cộng đồng.
•
Telegram ln hướng đến người dùng
Như đã đề cập, Telegram định hướng trở thành một tổ chức phi lợi nhuận
và tập trung phục vụ cộng đồng nên mọi hoạt động của họ luôn hướng đến người
dùng. Điều này thể hiện rõ qua việc họ đã khơng thu phí người dùng hay tạo điều
kiện cho các nhà phát triển ứng dụng. Không những thế, Telegram ln lắng
nghe và cầu thị những góp ý từ phía người dùng để hồn thiện sản phẩm của
mình hơn.
Với Telegram người dùng có thể: Kết nối từ những địa điểm xa nhất, kết
hợp nhóm với tối đa 10.000 thành viên, đồng bộ hóa các cuộc trị chuyện trên tất
cả các thiết bị mong muốn, gửi tài liệu dưới bất kỳ hình thức nào, mã hóa cá
nhân và bí mật kinh doanh, hủy tin nhắn với bộ hẹn giờ, lưu trữ trên đám mây,
xây dựng các cơng cụ của riêng mình trên API, nhận phản hồi từ khách hàng của
mình.
•
Tương lai của ứng dụng Telegram
Trong bối cảnh các cơ quan tình báo đang đe dọa nghiêm trọng tới quyền
16
riêng tư của người dùng Internet. Telegram sẽ sớm thành cơng nếu gắn liền được
tên tuổi của mình với tính bảo mật. Chặng đường phía trước của dịch vụ tin nhắn
này vẫn còn rất dài và gian nan. Song với mục đích cao cả, với dịch vụ hồn tồn
miễn phí và khơng có quảng cáo. Telegram chắc chắn sẽ trở thành một thế lực
mới trên thị trường nhắn tin qua thiết bị di động.
Kết luận chương 1: Trong chương 1 của đồ án đã tìm hiểu được khái
quát về một số ứng dụng nhắn tin có bảo mật được đưa ra dựa trên tiêu chí là
những ứng dụng nổi bật về bảo mật, đã được xác thực thử nghiệm và có hỗ trợ
mã hóa đầu cuối (end-to-end) hoặc đặt trọng tâm vào bảo vệ sự riêng tư, tìm
hiểu được các đặc điểm nổi bật của ứng dụng được nêu cũng như các quyền yêu
cầu của ứng dụng có thể làm rị rỉ thơng tin cá nhân của người dùng. Đưa ra cái
nhìn tổng quan về Telegram với những đặc điểm nổi bật của nó, đặc biệt với ưu
điểm nhắn tin bảo mật của nó mang lại đã đưa nó trở thành một trong những
ứng dụng nhắn tin có bảo mật phổ biến nhất hiện nay.
17
Chương 2
CƠ CHẾ BẢO MẬT CỦA ỨNG DỤNG NHẮN TIN
TELEGRAM
2.1. Một số ký hiệu, định nghĩa, khái niệm
2.1.1. Các ký hiệu
Trong suốt đồ án này, sẽ sử dụng ký hiệu nhất qn như sau:
© : gán
= : kiểm tra có điều kiện
Tên biến được viết nghiêng
Mã hóa sử dụng khóa K được viết là EncK và tương tự giải mã là DecK
•
Các bản rõ đầy đủ với chữ hoa M hoặc Mb cho bit b G{ 0,1} trong trường
hợp một trong hai thông báo được chọn. Tương tự, một bản mã đầy đủ được gọi
là C. |M| là độ dài của thơng báo M •
Đối với các khối riêng lẻ của một thông báo, mbi là khối thứ i của thông
báo Mb, và Cị là bản mã của khối thứ i.
Toán tử nối chuỗi được ký hiệu là □, và XOR là ©
2.1.2. Hệ mật khóa đối xứng
Các hệ mật khóa đối xứng hay hệ mật khóa bí mật được thiết kế để cung
cấp tính bảo mật, giữ cho nội dung của khối dữ liệu được bí mật. Chúng thường
18
được an tồn về mặt tính tốn, có nghĩa là có đủ thời gian và sức mạnh tính tốn,
một kẻ tấn cơng có thể khơi phục bản rõ, nhưng trong thực tế nhiệm vụ này gần
như không thể thực hiện được.
2.1.2.1. Lược đồ mã hóa khóa bí mật
Một lược đồ mã hóa khóa bí mật là một bộ các thuật toán xác suất thời
gian đa thức (Gen, Enc, Dec) sao cho:
1. Thuật tốn tạo khóa Gen lấy đầu vào tham số bí mật 1n và xuất ra
khóa k; chúng ta viết là k ^ Gen(1n) (do đó nhấn mạnh rằng Gen là một
thuật toán ngẫu nhiên). Chúng ta sẽ giả định mà khơng mất tính tổng
qt rằng bất kỳ đầu ra k nào của Gen(1n ) thỏa mãn |k| > n.
2. Thuật tốn mã hóa Enc lấy đầu vào là một khóa k và bản rõ của thơng
báo m E {0,1} sau đó xuất ra một bản mã c. Vì Enc có thể được ngẫu
nhiên, chúng ta viết là c ^ EnCk (m).
3. Thuật toán giải mã Dec lấy đầu vào khóa k và một bản mã c và xuất ra
một thông báo m. Giả định rằng Dec là xác định, và do đó viết m ^
Deck (c).
Nó là cần thiết cho mỗi n, mỗi k đầu ra của Gen(1n ) và mỗi m E {0,1} ,
nó cho ra Deck (Enck (m)) = m.
2.1.2.2. Advanced Encryption Standard (AES)
AES là một mật mã khối khóa đối xứng với kích thước khối 128 bit và
các khóa khác nhau, từ 128 đến 256 bit. AES được dùng để mã hóa tin nhắn
19
trong Telegram. Trong đồ án này sẽ không tập trung sâu về AES.
2.I.2.3. Infinite Garble Extension (IGE)
IGE là một chế độ hoạt động cho mật mã khối trong mã hóa khóa đối
xứng. Khối IGE là chuỗi như sau: ci_1 ^ fK m
© ci_1) © mt_1
Trong đó fK là hàm mã hóa mật mã khối sử dụng khóa K.
Thơng thường, một chế độ hoạt động cho mật mã khối cần một vectơ
khởi tạo độ dài bằng độ dài một khối, như trong chế độ CTR, CBC.
Nhưng ban đầu IGE cần cả khối bản rõ ban đầu m0 và khối bản mã C0.
Khối bản mã ban đầu được tạo ra bằng cách sử dụng một khóa ngẫu nhiên thứ
hai K c
0:
f m)
0 = K0 (
0.
Hình 2.1: Sơ đồ chế độ hoạt động IGE để mã hóa.
20
Cr2
I I 1 1 I I I I I 1 ITTI
Cl
1111111111ITTI
Initialization Vector
....................rm- mo
Key
block cipher
decryption
block cipher
decryption
Key
C3
I I 1 I I 1 1 I 1 I m~l
block cipher
decryption
Key
Initialization Vector I
H 1111111 rm- c0
1111 H 11 H rm
7721
11111111111~
m
I H1111HI rm
m3
7722
Hình 2.2: Sơ đồ chế độ hoạt động IGE để giải mã.
Cách thức hoạt động để mã hóa từng khối chúng ta có được như đã được
minh họa trong hình 2.1:
c1 ^ m0 © EncK (m1 © c0)
c2 ^ m © EncK (m2 © mữ © EncK (m © cữ ))
c3 ^ m1 © EncK (m3 © m1 © EncK (m2 © m0 © EncK (m1 © c0 )))
c ^ mị © EncK (m © mị_2 © EncK (mị-ỵ © ...m0 © EncK(m © c0)...))
Cách thức hoạt động để giải mã từng khối chúng ta có được như minh họa
trong hình 2.2:
m ^ c0 © DecK (c © m0)
m2 ^ c1 © DecK (c2
© c0 © DecK (c1
© m0 ))
m3 ^ c2 © DecK (c3
© c © DecK (c2
© cữ © DecK (c © m0 )))
mi
^ ci-i © DecK (ci © ci-2 © DecK (ci-1 © ...c0 © DecK (c1 © m0 )...))
Chế độ hoạt động IGE, có thuộc tính mà các lỗi được lan truyền về phía
trước vơ thời hạn.
21
Hình 2.3: Tính khơng “trơn tru” của IGE gây ra mọi khối sau khi sửa đổi
trở nên bị sai lệch.
Hình 2.3 cho thấy rằng việc lật một bit trong một khối bản mã sẽ làm cho
khối được giải mã bị sai lệch cũng như tất cả các khối sau. Nó cũng có thể sử
dụng IGE hai hướng, làm xáo trộn tồn bộ đầu ra bản rõ. Điều này có thể được
sử dụng để cung cấp toàn vẹn bản rõ, đảm bảo nội dung của một tin nhắn không
bị giả mạo, bằng cách nối thêm một khối toàn bit 0 vào cuối và kiểm tra điều này
khi giải mã.
2.1.3. Định nghĩa an toàn
Trong phần này, chúng ta định nghĩa các ký hiệu về an toàn mà một hệ
mật cần cung cấp một cách lý tưởng và dùng nó với MTProto trong phần sau.
2.
Í.3.Í. Giới thiệu về oracles
Để giúp giải thích các định nghĩa an tồn, chúng ta sẽ sử dụng trị chơi
tiên tri (game oracle). Đây là những kịch bản giả định, nơi kẻ tấn công xác suất
theo thời gian đa thức A được thách thức bởi một oracle O để đưa ra một câu trả
lời đáp ứng các tiêu chí nhất định. Nói chung, A phải đưa ra một câu trả lời thỏa
mãn với xác suất không đáng kể cho một tham số an toàn n.
Trong trường hợp LOR-oracles (Left-Or-Right oracles), O chọn một bit b
ngẫu nhiên, và A phải có khả năng xuất ra là 1 hoặc 0 với xác suất thành công
không đáng kể cao hơn so với đốn ngẫu nhiên, dựa trên tham số an tồn n.
2.1.3.2, Định nghĩa IND-CPA
Tính khơng thể phân biệt của mã hóa dưới tấn công bản rõ lựa chọn là một
khái niệm cơ bản về bảo mật cho các hệ mã. Nó mơ tả khơng có khả năng phân
biệt bản rõ được mã hóa, do đó cung cấp tính bí mật, mà trong một số trường
hợp sẽ là một khái niệm bảo mật đầy đủ. Chúng ta sử dụng game LOR- oracle
cho định nghĩa này và ý tưởng là A phải có khả năng phân biệt bản rõ mình lựa