Tìm Hiểu Cơ Chế Bảo Mật Của Ứng Dụng TELEGRAM (Luận Văn Thạc Sĩ) 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
Trang 11
Viện Công Nghệ Thông Tin Và Truyền Thông
ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 22
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
Trang 33
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
Trang 44
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
Trang 51
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 toà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à toà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ậtNgày nay, rất nhiều người sử dụng các ứng dụng nhắn tin để giao tiếp Do
Trang 62
đó, 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 yêu cầu cho một cuộc trò chuyện an toà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 quá 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
Trang 73
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 soá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 ngoà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
Trang 84
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 toà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
Trang 95
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 yê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 quá 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
Trang 106
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ư
Ngoà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
Trang 117
đã đề 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 soá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
Trang 128
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 toàn mạng
Nhìn chung, TextSecure chỉ yê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 khoá 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 khoá đã thay đổi và liệu người dùng có muốn chấp nhận khoá 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
Trang 139
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ã hoá đượ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 toà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ã hoá nguyên 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 toá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
Trang 1410
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 hoà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 khoá 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ã hoá 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
Trang 1511
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)
Trang 1612
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 soá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 toà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
Trang 17Camera: 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ì
Trang 1814
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 ngoà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í
Trang 19• Telegram luôn 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 luôn lắng nghe và cầu thị những góp ý từ phía người dùng để hoà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
Trang 2016
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ụ hoàn toà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.
Trang 21= : 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à
Enc
K và tương tự giải mã làDec
K•
Các bản rõ đầy đủ với chữ hoa M hoặc
M
b 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ọilà 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,
m
bi là khối thứ i của thông báoM
b, vàCị
là bản mã của khối thứ iToá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
Trang 2218
được an toàn về mặt tính toán, có nghĩa là có đủ thời gian và sức mạnh tính toá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 toán tạo khóa Gen lấy đầu vào tham số bí mật 1 n và xuất ra
khóa k; chúng ta viết là k ^ Gen(1 n) (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
quát rằng bất kỳ đầu ra k nào của Gen(1 n ) thỏa mãn |k| > n
2 Thuật toá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ẫunhiên, chúng ta viết là
c ^ EnC
k(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 ^ Dec
k( c )
Nó là cần thiết cho mỗi n, mỗi k đầu ra của Gen(1 n ) và mỗi
m E {
0,1}
,nó cho ra
Dec
k( Enc
k(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
Trang 2319
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:
c
i _ 1^ f
Km © c
i_1) © m
t _ 1Trong đó
f
K là hàm mã hóa mật mã khối sử dụng khóa KThô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
m
0 và khối bản mãC
0 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ứ Trang 2420
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:
c 1 ^ m0 © EncK (m 1 © c 0)
c2 ^ m © Enc K (m2 © m ữ © EncK (m © c ữ ))
c3 ^ m1 © EncK (m3 © m 1 © EncK (m 2 © m 0 © EncK (m 1 © c 0 )))
c ^ mị © EncK (m © mị_ 2 © EncK (mị-ỵ © m 0 © EncK (m © c 0) ))
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 © Dec K (c © m 0)
m2 ^ c1 © DecK (c 2 © c 0 © DecK (c 1 © m0 ))
m3 ^ c2 © Dec K (c3 © c © DecK (c 2 © c ữ © Dec K (c © m0 )))
m i ^ c i-i © Dec K ( c i © c i-2 © Dec K ( c i-1 © c0 © Dec K (c © 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
block cipher decryption Key
block cipher decryption Initialization Vector I
Trang 25sử 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 toà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 đoán ngẫu nhiên, dựa trên tham số an toà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
Trang 2622
chọn mà O đã mã hóa
Đối với hệ mã hóa khóa đối xứng
n ^ (Gen, Enc, Dec)
với tham số antoàn n:
1 Một khóa K được tạo ra bằng cách chạy Gen (
1
n)2 Kẻ tấn công A được cung cấp đầu vào
1
n và truy cập oracle vàoEnc
K(•)
và xuất ra một cặp thông báoM
0, M
1 có cùng độ dài l3 Một bit ngẫu nhiên b ^ {0,1} được chọn, và sau đó là một bản mã
C ^
Enc
K(M
b)
được tính và được gán cho A Chúng ta gọi C là bản mã Trang 2723
Hình 2.4: LOR-oracle IND-CPA game
Chúng ta nói rằng lược đồ mã hóa đối xứng n có mã hóa không thể phân biệt được theo tấn công bản rõ lựa chọn nếu đối với kẻ tấn công A thuật toán xác suất thời gian đa thức tồn tại một hàm bỏ qua
không đáng kể negl (•)
P r
[Experiment outputs 1]
<Định nghĩa này giả định hệ mật có xác suất, vì nó sẽ không đáng kể để thành công trong một thiết lập xác định bằng cách gửi
M
0 đến oracle lần thứ haivà xem nếu
C
i = C trả về b = 0, hoặc không thì b = 1IND-CPA là một khái niệm mạnh mẽ ở chỗ nó không đưa ra giả định về bản rõ, không giống như các khái niệm yếu hơn như tấn công bản rõ đã biết, trong đó kẻ tấn công không thể chọn các thông báo cho bản mã thách thức,
1
+ ne g l
(
n)
Trang 2824
nhưng nó có thể phá vỡ trong một số trường hợp nhất định
2.I.3.2 Định nghĩa IND-CCA
Không thể phân biệt được mã hóa trong tấn công bản mã lựa chọn có tính
đến việc kẻ tấn công có thể truy cập vào giải mã cũng như mã hóa Điều này dẫn
đến một khái niệm mạnh mẽ hơn IND-CPA, và nó được mô tả như là một game
LOR-oracle bởi Katz và cộng sự
Đối với hệ mã hóa khóa đối xứng
n ^ (Gen, Enc, Dec)
với tham số antoàn n:
1 Khóa K được tạo bằng cách chạy Gen(1 n )
2 Kẻ tấn công A được cung cấp đầu vào
1
n và truy cập oracle vàoEnc
K(•)
vàDec
K(•)
Các oracle giải mã hoặc đầu ra một bản rõ hoặc mộtbiểu tượng tin nhắn không hợp lệ ± A xuất ra một đầu ra một cặp
thông báo
M
0, M
1 có cùng độ dài3 Một bit ngẫu nhiên b ^—{0,1} được chọn, và sau đó một bản mã
C ^
Enc
K(M
b)
được tính và được gán cho A Chúng ta gọi C là bản mãthách thức
4 Kẻ tấn công A tiếp tục có quyền truy cập oracle vào
Enc
K(•)
vàDec
K(•)
nhưng không được phép truy vấn lần nữa trên chính bản mã tháchthức Đầu ra A là bit
b
5 Kết quả của thử nghiệm được xác định là 1 nếu
b
= b và 0 nếub ^ b
Trang 2925
Hình 2.5: LOR-oracle IND-CCA game
Chúng ta nói rằng lược đồ mã hóa đối xứng n không thể phân biệt được trong tấn công bản mã lựa chọn nếu đối với tất cả các kẻ tấn công A thuật toán xác suất thời gian đa thức tồn tại một hàm có thể bỏ qua không đáng kể
negl(-)
Sao cho: p
^ernnent outputs 1] < 2 + negl(«)
Một lần nữa, chúng ta giả định n có xác suất và không xác định cho cùng một kết luận như với IND-CPA, mã hóa cùng một thông báo hai lần xuất ra các bản mã khác nhau
Các oracle giải mã trả về ± nếu bản rõ không có cấu trúc đúng, tiêu đề
Trang 3026
chính xác , nói cách khác không giống như nó đã được mã hóa bởi oracle Sự khác biệt này sẽ giúp cho việc chứng minh IND-CCA sau này
IND-CCA là một khái niệm khá mạnh mẽ về bảo mật, giữ nội dung được
bí mật, nhưng bây giờ chúng ta sẽ xem xét tính toàn vẹn, đảm bảo rằng các thông báo không thể bị giả mạo bởi kẻ tấn công và vẫn được chấp nhận bởi người nhận của họ Tính chất này cũng hữu ích cho việc chứng minh IND- CCA
2.1.3.3 Định nghĩa INP-PTXT
INT-PTXT là tính toàn vẹn của các bản rõ Nghĩa là, kẻ tấn công không
có khả năng giả mạo một bản mã mà giải mã thành một bản rõ hợp lệ mà trước
đó chưa được mã hóa bởi oracle Một bản rõ có cấu trúc chính xác, các tiêu đề chính xác, , nói cách khác, một thông báo trông giống như nó đã được mã hóa bởi oracle LOR-oracle không được áp dụng trong hoàn cảnh này khi kẻ tấn công phải đưa ra câu trả lời của riêng mình thay vì chọn từ các câu trả lời được xác định trước, vì vậy chúng ta sử dụng oracle game chính tắc
Đối với một hệ mã hóa khóa đối xứng
n ^ (Gen, Enc, Dec)
với tham sốan toàn n:
Một khóa K được tạo ra bằng cách chạy Gen
(
1n)
2 Kẻ tấn công A nhập
1
n và truy cập oracle vàoEnc
K(•)
3 Truy vấn
Enc
K(•)
với thông báo M, oracle trả vềC ^ Enc
K(M
b)
Trang 3127
Hình 2.6: Oracle INT-PTXT game
Chúng ta nói rằng lược đồ mã hóa đối xứng n có tính toàn vẹn bản rõ nếu đối với tất cả các kẻ tấn công A thuật toán xác suất thời gian đa thức tồn tại một
hàm bỏ qua không đáng kể negl (•) sao cho:
P r
[Experiment outputs 1]
< negl ( n)
Không giống như IND-CPA và IND-CCA, chúng ta không quan tâm đếnxác suất + negl( n
) ở đây vì như chúng ta đã đề cập trước đó, đây không phải là
cài đặt LOR-oracleKhái niệm này rất quan trọng bởi vì nếu một hệ mật không có INT-PTXT thì một kẻ tấn công có thể tiêm một thông báo với cài đặt của riêng mình Tuy nhiên, nó không tính đến việc kẻ tấn công có thể tạo ra các bản mã khác từ bất kỳ các bản mã đã có trước đây, nhưng thực sự giải mã ra một bản rõ đã biết, có thể được khai thác cho các cuộc tấn công dùng lại Đây là lý do tại sao chúng ta có khái niệm INT-CTXT
2.I.3.4 Định nghĩa: INT-CTXT
Trang 3228
Chúng ta vừa xem xét INT-PTXT yêu cầu bản rõ đã giải mã khác với bất
kỳ thông báo nào được gửi tới oracle Sự khác biệt với tính toàn vẹn của bản mã
là trong cài đặt này chúng ta yêu cầu bản mã giả mạo phải khác với bất kỳ đầu ra nào của oracle Đây là một khái niệm an toàn mạnh hơn INT-PTXT vì bản mã giả mạo được phép giải mã thành một bản rõ đã biết, và nếu không thì hai khái niệm giống hệt nhau
Hình 2.7: Oracle INT-CTXT game
Đối với một hệ mã hóa khóa đối xứng
n ^ (Gen, Enc, Dec)
với tham sốan toàn n:
1 Một khóa K được tạo ra bằng cách chạy Gen(1 n )
2 Kẻ tấn công A nhập
1
n và truy cập oracle vàoEnc
K(•)
3 Truy vấn
Enc
K(•)
với thông báo M, oracle trả vềC ^ Enc
K(M)
Trang 3329
Chúng ta nói rằng lược đồ mã hóa đối xứng n có tính toàn vẹn bản mã nếu đối với tất cả các kẻ tấn công A thuật toán xác suất thời gian đa thức tồn tại một
hàm bỏ qua không đáng kể negl
(•)
sao cho:P r ^Experiment output 1] < negl(n)
2.1.3.5 Mã hóa xác thực
Trong khi IND-CCA là một khái niệm mạnh để đảm bảo tính bí mật, chúng ta muốn bao gồm cả tính bí mật và toàn vẹn dữ liệu theo một định nghĩa duy nhất Điều này được gọi là mã hóa xác thực (AE), thường được thực hiện bằng cách kết hợp mã hóa an toàn với mã xác thực thông báo mạnh không thể giả mạo Chúng ta có:
AE ^ IND-CPA + INT-CTXT
Thật hấp dẫn khi nghĩ rằng bất kỳ sự kết hợp mã hóa bảo mật và xác thực thông báo nào sẽ hoạt động, nhưng vì chúng ta sẽ thấy sự kết hợp của ngay cả những công cụ tốt nhất đã tạo ra kết quả không an toàn Chúng ta sẽ xem xét ba
phương pháp phổ biến với K là một khóa mã hóa, Mac K
(
•) là một hàm mã xác
thực thông báo xuất ra một thẻ t, và K 2 là một khóa Mac thứ cấp:
- Mã hóa và xác thực: thẻ t được tính từ thông báo và thông báo được mã
hóa riêng:
C ^ Enc Kỵ (M) and t ^ Mac^ 2 (M)
Người nhận giải mã C để nhận M và sau đó kiểm tra t trên M
- Xác thực - sau đó mã hóa: t được tính từ thông báo và cả hai được mã
hóa cùng nhau:
t ^ Mac K2 (M) and C ^ Enc Kỵ (MŨQ
Trang 3430
Người nhận giải mã C để lấy M và t, và sau đó kiểm tra t trên M
- Mã hóa - sau đó - xác thực: Thông báo được mã hóa và t được tính từ
bản mã:
C ^ Enc Kỵ (M) and t ^ Mac K2 (C)
Người nhận kiểm tra t trên C và nếu hợp lệ giải mã C để có được M
Quá trình đăng ký của client C với server S được thực hiện như sau:
1 C gửi một yêu cầu đến S với một chuỗi bit ngẫu nhiên nonce
2 S phản hồi với một chuỗi bit ngẫu nhiên khác là server nonce, số nguyên n, và fingerprint của khóa công khai RSA
3 C phân tích n thành các số nguyên tố p và q sao cho p < q C có một
danh sách các khóa công khai được lưu trữ cục bộ, và chọn khóa
server pk mà khớp với fingerprint nhận được
4 C chọn một chuỗi bit ngẫu nhiên khác là newnonce, không giống như
nonce và server nonce sẽ không được gửi dưới dạng rõ C tạo ra một
payload của ba nonces và các số n, p và q Payload này cùng với giá
trị tóm lược của nó, được mã hóa bằng khóa công khai RSA của
server là server pk và gửi đến S
Trang 3531
5 S phản hồi với các tham số Diffie-Hellman g, p,
g
a được mã hóa bằng AES-256 ở chế độ IGE, sử dụng khóa AES tạm và AES IV được dẫnxuất từ server_nonce và newnonce
6 Bây giờ C chọn giá trị bí mật b và tính g b ^ g b modp và auth _ key ^ (gữ)b mod p,
g
b gửi đến server được mã hóa bằng AES-256 ở chế độ IGE bằng khóa tạm và IVChuỗi ngẫu nhiên nonce và server nonce đều là 128 bit được chọn ngẫu nhiên tương ứng bởi client và server Chuỗi new nonce là một chuỗi 256-bit được chọn ngẫu nhiên bởi client, n là một số nguyên 64 bit, là tích của hai số nguyên tố lẻ p và q, và fingerprint của khóa công khai RSA là 64 bit có trọng số
thấp nhất của giá trị tóm lược khóa công khai của server
Để giải mã phản hồi của server và nhận các tham số DH, client phải tạo được 256-bit khóa AES và IV, như trong hình 2.8 Phản hồi đã giải mã có chứa
nonce, server nonce, các thông số DH; p; g a và tem thời gian máy chủ được sử dụng để đồng bộ, nó cũng chứa 160-bit giá trị tóm lược Phản hồi được thêm padding vào 0-15 byte với độ ngẫu nhiên các byte bị loại bỏ mà không kiểm tra
độ dài
Client kiểm tra xem các nội dung phản hồi có phù hợp với nội dung được gửi kèm với nó không, p phải là số nguyên tố an toàn, có nghĩa q = p—- là số
Trang 3632
nguyên tố, và 22047 < p < 22048, g bằng 2, 3, 4, 5, 6 hoặc 7 và phải đảm bảo rằng g
tạo ra một nhóm con cyclic với trật tự bậc nguyên tố p — , và
1 < g
a< p - 1
, và nếu bất kỳ kiểm tra nào thất bại, thì giao thức bị hủy bỏGiá trị bí mật b là một chuỗi 2048 bit được tạo ra ngẫu nhiên Yêu cầu được gửi đến máy chủ chứa nonce, servernonce và
g
b và 160-bit SHA1 của các thành phần này Yêu cầu đã được thêm padding vào một cách ngẫu nhiên trước khi mã hóa, và được mã hóa sử dụng khóa AES tạm và IVClient cũng tính toán chính xác
auth _ key ^ g b mod p
L 256 bit a _ 256 bit
AES key AES IV
Hình 2.8: Sinh khóa AES IGE tạm và IV trong khi đăng ký
Khi nhận
g
b, server sẽ làm tương tự và gửi phản hồi ok hoặc failure nếunonce, server_nonce hoặc bất kỳ tham số DH nào sai
khóa chia sẻ dài hạn
256 bit
128 bit c - í
>
160 bit <J >