1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu kỹ thuật mã hóa đầu cuối và ứng dụng

77 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu kỹ thuật mã hóa đầu cuối và ứng dụng
Tác giả Phạm Công Trường
Người hướng dẫn PGS. TS Đỗ Xuân Chợ
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành An toàn thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 77
Dung lượng 15,37 MB

Nội dung

- Tinh xác thực: Tính xác thực trong mật mã học đảm bảo rang cả người gửi lẫn người nhận có thé xác nhận danh tính của đối tác giao tiếp và đảm bảo rằng thôngtin không bị giả mạo.. Người

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THÔNG

KHOA AN TOÀN THÔNG TIN

ĐỎ ÁN TÓT NGHIỆP

ĐÈ TÀI:

NGHIÊN CỨU KỸ THUẬT

Giảng viên hướng dẫn: PGS TS Dé Xuân Chợ

Sinh viên: Phạm Công Trường

Mã sinh viên: B19DCAT202

Lớp: DI9CQAT02_B

2019 - 2024

Hà Nội, tháng 12 năm 2023

Trang 2

LỜI CẢM ƠN

Em xin gửi lời cảm ơn chân thành đến Thầy Đỗ Xuân Chợ — Giảng viên Khoa Antoàn thông tin, Học viện Công nghệ Bưu chính Viễn thông đã nhiệt tình hướng dẫn emtrong suốt thời gian làm đồ án Thầy đã tạo nhiều điều kiện thuận lợi, định hướng, chỉ bảotận tình và cho những lời khuyên giúp em giải quyết được những khó khăn trong việcthực hiện đồ án Đồng thời, thầy đã giúp em hiểu được những kiến thức quan trọng, giúp

em tiếp cận với cách tư duy, giải quyết và trình bày dé có thé tìm hiểu và hoàn thành đồ

án đúng thời hạn.

Em cũng xin gửi lời cảm ơn chân thành với các thầy cô giáo trong Học viện Côngnghệ Bưu chính Viễn thông nói chung, các thầy cô trong Khoa An toàn thông tin nóiriêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức và tạo điều kiện giúp đỡtrong suốt quá trình học tập trong những năm học vừa qua, là hành trang giúp em tự tin

hơn trong công việc, cuộc sông và những mục tiêu trong tương lai.

Em xin chân thành cảm on!

Sinh viên thực hiện

Trường

Phạm Công Trường

Trang 3

LỜI CAM ĐOAN

Em xin cam đoan đô án: “Nghiên cứu kỹ thuật mã hóa dau cuôi và ứng dụng”

do chính cá nhân em nghiên cứu và thực hiện tat cả.

Kêt quả bai làm của đô án “Nghiên cứu kỹ thuật mã hóa dau cuôi và ứng dụng”

là trung thực và không sao chép từ bât cứ khóa luận, đô án, luận văn của cá nhân/ nhóm khác.

Cac tài liệu tham khảo, tài liệu được sử dụng trong tiêu luận có nguôn gôc va xuat

xu ro rang.

Em xin cam doan.

Trang 4

1.1 TỔng quati ceccecccccesccssessessesssssessessessessessssusssessessessessessussussessssessesesesssetees 10

1.2 Vai trò của mã hÓa E1 2221111122311 111211 1112011111111 11g02 111k xe 10

1.3 Phân loại mã hóa - - -G E2 11122211 11112531 11119211 1111811111991 0 223111111 ke 111.4 Một số ứng dụng của mật mã hỌc - 2 3+ 1113323 EEssrreeerrrres 16CHƯƠNG 2: MÃ HÓA ĐẦU CUỐI 2 2 2+2E+2E+EE£2E2EE2E2EEEEEE2EEEzrrrree 182.1 TỔng quan 2: ¿252222 ‡SE9EE9EE921121121122117127171121121121111112111211 11111 xe 182.2 Giao thức mã hóa đầu cuối OTR 2: + ++2+££+E£2EE2EE+EEtEEtrEerxrrrreee 192.3 Giao thức mã hóa đầu cuối Zalo c ceccccccssessesssessessessessesstsssessessessessessessseeees 302.4 Thực hành giao thức mã hóa đầu cuối OTR -2- 2 s+zs+s+z++sze: 41CHƯƠNG 3: XÂY DUNG UNG DỤNG WEB CHAT MÃ HOA DAU CUOI 523.1 Ý tưởng, mục tiêu xây dung ứng dụng 2¿¿+2+2++zz+zx+zszxerxzxee 523.2 6i ái (ái a 533.3 Thiết kế ứng Cun g esecceceeccececscscesessessesscsscsscseseesscsscscsesessesecsversecsvsvsnsaeeees 553.4 Cơ chế triển khai mã hóa đầu cuối - ¿5-52 t+E+E+ESEEEE+E+EEEEEEeEeErrrrrrsez 65

3.5 Hoạt động các chức năng chính của ứng dụng .- + + ss+++sss+2 66

KẾT LUAN u.cccccccsccscscsececsesesececsvsucecscsvsucecevsveeuceravsvsusesavavsusacasecucvavavavsvasasatereeetees 75

TÀI LIEU THAM KHẢO 5-5: Sc St E2E9EE2E9E12E5512E5121112111211121112E11 E1 xeE 76

Trang 5

MỞ ĐÀU

1 Lý do chọn đề tài

Trong thời đại công nghệ thông tin và không gian mạng phát triển nhanh chóng,

việc trao đổi thông tin trên không gian mạng ngày càng yêu cầu được tính bi mật và riêng

tư tuyệt đối dé tránh được tat cả các nguy cơ tiềm tàng từ tội phạm và các cuộc tấn công

nhăm vào người dùng.

Mã hóa đầu cuối (End-to-End Encryption - E2EE) là một phương pháp mạnh mẽ

dé bảo vệ thông tin khỏi bat kỳ nguy cơ nao từ thời điểm mà nó được tạo ra đến thời điểm

nó được sử dụng Với ngày càng nhiều đữ liệu cá nhân được truyền tải qua mạng, việchiểu và nghiên cứu về kỹ thuật mã hóa đầu cuối giúp bảo vệ quyền riêng tư của người sửdụng Điều này có ứng dụng rộng rãi trong các ứng dụng như tin nhắn, giao dịch tàichính, và nhiều lĩnh vực khác Nghiên cứu về kỹ thuật này sẽ giúp hiểu rõ cách bảo vệthông tin truyền tải qua mạng Việc sử dụng mã hóa đầu cuối giúp ngăn chặn nguy cơ mat

mát dữ liệu khi đữ liệu đi qua môi trường mạng Điều này đặc biệt quan trọng trong môi trường mà việc chống thất thoát dữ liệu ngày càng trở nên quan trọng.

Các ứng dụng sử dụng E2EE ngày càng trở nên phô biến, từ các ứng dụng nhắn tin đến giao dịch trực tuyến Hiểu rõ về kỹ thuật mã hóa đầu cuối là cơ hội dé đóng góp vào

sự phát triển của các công nghệ an toàn thông tin trong thế giới kỹ thuật số ngày nay

Chương 2 sẽ trình bày tông quát các yêu yêu câu và tiêu chuân của một hệ mã hóa

đầu cuối Trình bày bày hoạt động của giao thức mã hóa đầu cuối OTR và Zalo

Chương 3.

Tiên hành xây dựng ứng web chat mã hóa đâu cuôi và đáp ứng được các tiêu chuân

chuẩn của một hệ giao thức trao đôi thông điệp an toàn

2 Mục đích nghiên cứu

Trang 6

- Hiểu rõ về kỹ thuật mã hóa đầu cuối, đặc biệt là giao thức mã hóa đầu cuối

Off-the-Record Messaging (OTR)

- Thử nghiệm với ứng dụng web chát mã hóa đầu cuối sử dụng các hệ mã hóathông dụng

3 Phương pháp nghiên cứu

Phương pháp nghiên cứu là nghiên cứu lý thuyết kết hợp với thực nghiệm và triểnkhai ứng dụng

Trang 7

DANH MỤC CÁC TU VIET TAT

E2EE End-to-End Encryption Mã hóa đầu cudi

OTR Off-the-Record Messaging | Giao thức mã hóa đầu cuối

Off-the-Record Messaging

AES Advanced Encryption Standard Chuẩn mã hóa nâng cao

SHA Secure Hash Algorithm Thuat toan bam an toan

Trang 8

1 Mật mã đối xứng - 2 2© +E2EE2E12E19E1E71711211211217111 111.1 ye 11

2 Mật mã bat đối XUN ceecccceccecsecsesssessessessessessessesessesessesesseseeseeeteess 12

3 Hoạt động của ham băm G0 31312111911 1511 11118111111 111 re, 13

4 Mô tả quá trình tạo và kiểm tra chữ ký sỐ - 2-5: 5+ z+s+sz+s+5+2 14

1 Trao đồi thông điệp trong giao thức OTR 2 +cs+sezx+xczxscez 21

2 Giao thức trao đổi khóa Diffie Hellman 22

3 Tan công “Main-in-the-middÏe” s- + s2s2+E+E++ExeExzEerxrrrrerxes 23

4 Xác thực danh tính trong khi thống nhất khóa bí mật chung 24

5 Xác minh tính toàn vẹn của thông điỆp 55c + s‡+++ssssxs+2 25

6 Cơ chế tạo khóa ký trong OTTR - ¿2 s+S2+E++E££E£EE£EE2EE2EerEerxererxee 26

7 Giải mã và xác thực thông điệp trong OTTR 55525 < sex 28 S860 8.0 1 32

9 Giải thuật DH Ratchet - c1 2220111112211 111 1221111118511 11111111 ke 33

10 Giải thuật Symmetric Key Ratchet - 5c csssssssskkresek 34

11 Giải thuật DH Ratchet dé tạo đầu vào cho KDE - s5 c2 35

12 Sử dung Symmetric Key Ratchet với Sending Chain Key 35

13 Quy trình tạo khóa TmỚII - c1 322011211112 1111111111811 EErrve 36

14 Giải thuật Double Ratchet - c 5 2222111132552 211 11x xxkrres 37

15 Quá trình thiết lập mã hóa đầu cuối 2 ¿2 s22 2+E+£xszszxze+ 39

1 Kết nỗi Web Sockets ¿- ¿5s tt 21 21121122121127127121211 1e 54

2 Biểu đồ usecase ứng dUNg c eee eececcsseeseesessessesseseesessessesseseetsesesseseeeeees 56

3 Biểu đồ CSDL ứng dụng - 2 + +s+Sx2EE2EE2E£EEEEEEEE2EEEE2EEEEErrrree 57

4 Các kiêu dit liệu ứng với các trường dữ liệu trong ứng dụng 58

5 Triển khai trao đôi khóa và xác thực danh tính ¿2s =szszzzzs+z 65

6 Gửi thông điệp và xác thực thông điỆp - 2-25 3S se 66

7 Dang ky tai Khoa eee eeeceeseceseeeseeeseeeseeeeeeeeeeeeeeeeeeeeeeneeeeeeeeensas 67

Trang 9

h 3 11 Tạo cuộc trò chuyện nhóm - - - ¿+ +2 +32 E332 EE*EEEE++seeeersrreerese 69

h 3 12 Thực hiện trao đôi thông điệp trong nhóm với các thành viên 70h3 13 Trao đổi thông tin cá nhân không bảo mật - - 2-5522 +2s+52 71h3 14 Server có thé đọc và hiểu các thông điệp của client 71

h 3 15 Kích hoạt tính năng mã hóa đầu cuối - 2+ 2+s+2z+£e£xz£zzxd 72

h 3 16 Cuộc trò chuyện được bảo mậtt - ¿+ 21+ +23 **ksrirrserrrve 72

h 3 17 Trao đổi tin nhắn một cách an toàn + xxx vEvEvEErErtzxexereed 73

h 3 18 Server không thé đọc hiểu tin nhắn được mã hóa đầu cuối 73

Trang 10

CHƯƠNG 1: TONG QUAN VE MÃ HÓA

1.1 Tổng quan

Trong thời đại thông tin số hiện nay, mã hóa là một khía cạnh quan trọng và khôngthé thiếu trong thé giới kỹ thuật số ngày nay, đặc biệt là khi dữ liệu di chuyên qua cácmạng không an toàn Chức năng cơ bản của mã hóa là biến đổi thông tin từ dang ban đầuthành một dạng khác sao cho chỉ có những người được ủy quyền mới có thé đọc được nó

Mã hóa bao gồm các thành phần:

- Thong tin trước khi mã hóa (Plaintext)

- Thong tin sau khi được mã hóa (Ciphertext)

- Khóa (Key)

- Phuong phap giai ma (Encryption/Decryption)

Quá trình mã hóa được tiến hành băng cách sử dụng các hàm toán học Encryptionlên thông tin Plaintext, von được biểu diễn dưới dạng số, dé trở thành thông tin mã hóaCiphertext Trong khi đó giải mã là phương pháp đưa thông tin ở dang mã hóa về dangthông tin ban đầu, đây là quy trình ngược của mã hóa Quá trình giải mã được tiến hànhthông qua các hàm toán học Decryption lên thông tin CipherText để được thông tin đãgiải mã Plaintext và từ đó người được ủy quyên có thé đọc được thông tin

1.2 Vai trò của mã hóa

Mật mã học có vai trò rất lớn trong việc dam bảo an toàn cho hệ thống thông tin

cũng như các ứng dụng hiện nay Việc ứng dụng mật mã học nhằm đảm bảo các tính chất:

- Tinh bí mật: Tính bí mật trong mật mã học là một thuộc tính quan trọng đánh giá

mức độ an toàn của một hệ thống mật mã Nó đảm bảo rằng thông tin bí mật được bảo vệ khỏi sự tiếp cận trái phép hay xâm phạm từ bất kỳ bên nào không được ủy

quyền, thông tin chỉ được phép truy cập bởi những đối tượng hợp lệ, những đối

tượng được cấp phép.

- Tinh toàn vẹn thông tin: Tính toàn vẹn thông tin trong mật mã học đảm bảo rang

thông tin không bị thay đổi trái phép trong quá trình truyền tải hoặc lưu trữ Điềunày bao gồm khả năng phát hiện bất kỳ sự thay đổi nào của đữ liệu và đảm bảo

răng người nhận có thê biệt được nêu có bat kỳ sự thay đôi nao đã xảy ra.

10

Trang 11

- Tinh sẵn sàng: đảm bảo thông tin phải luôn luôn sẵn sàng khi cần thiết Điều đó có

nghĩa rằng mật mã học cung cấp một cơ chế bảo mật tốt, có thé tránh được nhữngrủi ro cả về phân cứng, phân mêm và tránh được các cuộc tân công của tin tặc.

- Tinh xác thực: Tính xác thực trong mật mã học đảm bảo rang cả người gửi lẫn

người nhận có thé xác nhận danh tính của đối tác giao tiếp và đảm bảo rằng thôngtin không bị giả mạo Điều này bao gồm việc chứng minh răng thông điệp đến từnguồn mong đợi và chưa bị thay đối trong quá trình truyền

- Tinh chống chối bỏ: Tính chống chối bỏ trong mật mã học đảm bảo rằng người gửi

không thé phủ nhận việc gửi một thông điệp cụ thé Nếu người gửi đã tạo ra mộtchữ ký số hoặc một hệ thống xác thực khác, họ không thể sau đó phủ nhận rằng họ

đã tạo ra hoặc gửi thông điệp đó.

1.3 Phân loại mã hóa

Mã hóa có thé được phân loại theo nhiều tiêu chí khác nhau, tùy thuộc vao mục

đích sử dụng và cách thức thực hiện Dưới đây là một số cách phổ biến dé phân loại mã

hóa:

1.3.1 Dựa trên khóa mã hóa

1.3.1.1 Mã Hóa Đối xứng

Mã hóa đối xứng là một phương thức mã hóa sử dụng cùng một khóa cho cả quá

trình mã hóa và giải mã dữ liệu Trong quá trình mã hóa đối xứng, thông điệp đượcchuyền đổi thành dang ban mã bằng cách sử dụng một khóa, và dé giải mã, khóa dùng dé

mã hóa trước đó cũng được sử dụng dé khôi phục lại thông điệp gốc.

II

Trang 12

Các thuật toán mã hóa đối xứng phổ biến bao gồm DES (Data Encryption

Standard), AES (Advanced Encryption Standard), Các thuật toán này thường sử dụng cácphép thay thé và hoán vi dé thực hiện quá trình mã hóa và giải mã [1]

Ưu điểm của mã hóa đối xứng bao gồm:

- _ Tốc độ: mã hóa và giải mã nhanh chóng vì cùng một khóa được sử dụng cho cả hai

gọi là khóa công khai (public key) và khóa bí mật (private key) Dữ liệu được mã hóa

băng khóa công khai có thể chỉ được giải mã bằng khóa bí mật tương ứng và ngược

lại.Các thuật toán mã hóa bat đối xứng phô biến bao gồm RSA (Rivest-Shamir—Adleman)

va Rabin.

Khác với hệ mật mã hóa đối xứng khi sử dung cùng một khóa cho cả quá trình mã

hóa và giải mã dữ liệu, hệ mật bat đối xứng sử dụng một cặp khóa công khai và bí mật Khóa công khai được chia sẻ rộng rãi và có thé được công bố mà không ảnh hưởng đến

12

Trang 13

tính an toàn của hệ thống trong khi Khóa bí mật được giữ bí mật và chỉ người nhận được

khóa này có thể giải mã dữ liệu được mã hóa bằng khóa công khai.

do vậy loại hệ mật này thường được sử dụng cho các mục đích như xác thực va quản lý

giải mã Mã hóa dữ liệu đóng vai trò quan trọng trong việc bảo vệ thông tin nhạy cảm,

như thông tin tài khoản ngân hàng, mật khẩu, và dữ liệu cá nhân Nó cũng là một phần

13

Trang 14

quan trọng của việc bảo vệ tính toàn vẹn va quyền riêng tư của dữ liệu trong các hệ thống

Đâu vào Giá trị băm

một nguôn được xác định.

1.3.2.3 Chữ ký số

14

Trang 15

Chữ ký số là một phần quan trọng của hệ thống mã hóa và bảo mật dữ liệu Chữ ky

số giúp xác minh nguồn gốc của thông điệp và đảm bảo tính toàn vẹn của nó Chữ ký số dam bảo tính chất xác thực và không thé chối bỏ của mã hóa.

Tạo chữ ký Kiểm tra chữ ký

Hình 1 4 Mô tả quá trình tạo và kiểm tra chữ ký số

Chữ ký số thường được tạo ra bằng cách sử dụng một thuật toán băm (hashingalgorithm) dé tao giá trị băm (hash value) của thông điệp Sau đó, giá trị băm được kýbăng khóa riêng của người gửi, tạo ra chữ ký số Chữ ký số thường sử dụng cặp khóacông khai và riêng tư (public-key cryptography) Người gửi sử dụng khóa riêng tư dé ký

số, trong khi người nhận sử dụng khóa công khai dé xác minh chữ ký từ đó có thé xácminh danh tính của người gửi thông điệp Bên cạnh đó, chữ ký số cũng giúp đảm bảo tính

toàn ven của thông điệp do nếu thông điệp bị sửa đôi sau khi được ký số, quá trình xác

minh chữ ký sẽ thất bại

1.3.3 Dựa trên cơ chế thực hiện.

a Ma hóa dòng

Mã hóa dòng (stream encryption) là quá trình mã hóa dữ liệu một cách liên tục

(dong) thay vi mã hóa toàn bộ tệp tin hoặc khối đữ liệu Dữ liệu được mã hóa và giải mã

15

Trang 16

một cách liên tục và không cần phải chờ đến khi toàn bộ đữ liệu được tạo ra hoặc nhận do

đó giúp giảm độ trễ và tăng hiệu suất so với việc mã hóa toàn bộ tệp tin hoặc khối dữ liệu.

Do những đặc tính ké trên, mã hóa dòng thường được sử dụng dé mã hóa với dữ liệu códung lượng lớn va cần cải thiện về vấn đề hiệu suất Một số thuật toán mã hóa dòng phôbiến hiện nay bao gồm: A5/1, RC4, vv

b Mã hóa khối

Mã hóa khối (block cipher) là một loại thuật toán mã hóa mà dữ liệu được chiathành các khối có định và sau đó mỗi khối được mã hóa độc lập Dé xây dựng thuật toán

mã hóa khối an toàn băng cách sử dụng kết hợp các thao tác mã hóa tạo ra tính hỗn loạn

và tính khuếch tán thông tin Tính hỗn loạn sẽ giúp phá vỡ mối quan hệ giữa thông điệp

và bản mã, tạo ra mối quan hệ phức tạp và chặt chẽ giữa khóa và bản mã trong khi sự

khuếch tán giúp phá vỡ và phân tán các phần tử trong các mã xuất hiện trong thông điệp

dé không thé phát hiện ra các mẫu này trong ban mã

1.4 Một số ứng dụng của mật mã học

1.4.1 PGP

PGP (Pretty Good Privacy) PGP là công cụ dùng để mật mã hóa dữ liệu và xác

thực Phiên ban PGP đầu tiên do Phil Zimmermann được công bố vào năm 1991 Ké từ

đó, phần mềm này đã có nhiều cải tiến và hiện nay tập đoàn PGP cung cấp nhiều phần

mêm dựa trên nên tảng này.

Chức năng đầu tiên của PGP là mã hóa Nó cho phép mã hóa thông tin hoặc dữliệu nhạy cảm ké cả đó là file, email hay SMS Người dùng PGP sẽ mã hóa dé bao mật dữliệu và nó chỉ có thé được giải mã bang private key của người nhận Ngoài ra PGP cònxác thực chữ ký điện tử, người dùng sẽ sử dung public key của người ky dé xác thực chữ

ký đó.

Nhìn chung phần mềm PGP giúp người dùng thực hiện những giao dịch PGP cơbản như tạo cặp public key, thu hồi cặp public key, chỉ định server public key, mã hóa va

giải mã dữ liệu, ký điện tử vào SMS hoặc file, xác thực chữ ký điện tử,

PGP được dùng chủ yếu để mã hóa hoặc ký chữ ký điện tử ở file, email Tuynhiên, nó còn có vai trò quan trong trong những việc như mã hóa và ký số truyền trong

các ứng dụng SMS, mã hóa và ký kỹ thuật số ô đĩa

1.4.2 Các giao thức bảo mật SSL/TLS, SSH, IPSec

16

Trang 17

SSL/TLS (Secure Sockets Layer/Transport Layer Security) là một ứng dụng quan

trọng của mật mã đối mới trong lĩnh vực bảo mật truyền thông qua mạng SSL/TLS được

thiết kế để bảo vệ tính bảo mật và toàn vẹn của dữ liệu trong quá trình truyền thông giữa

máy khách và máy chủ trên mạng, đặc biệt là trong ngữ cảnh của ứng dụng web.

Một trong những chức năng chính của SSL/TLS là cung cấp mã hóa dữ liệu Khikết nối được thiết lập giữa trình duyệt web và máy chủ, thông tin được truyền tải giữachúng được mã hóa, làm cho nó trở nên khó khăn cho bất kỳ bên thứ ba nào theo dõi vàhiểu được thông tin SSL/TLS sử dụng quy trình xác thực dé đảm bảo rang máy chủ màtrình duyệt kết nối đến là đích đến chính xác Điều này giúp ngăn chặn tan công giả mao

và đảm bảo tính toàn vẹn của trang web SSL/TLS sử dụng chứng chỉ số SSL (SSL certificates) để chứng minh xác thực của máy chủ Các tổ chức cung cấp chứng chỉ số SSL như Let's Encrypt, DigiCert cung cấp các chứng chỉ này cho các trang web dé chứng

minh tính đáng tin cậy của họ.

SSL/TLS được sử dụng rộng rãi trong lĩnh vực thương mại điện tử, Internet

banking, truyền thông trực tuyến và nhiều ứng dụng web khác dé đảm bảo an toàn và bảo

mật trong việc truyền thông dữ liệu do đó SSL/TLS đã trở thành một tiêu chuẩn quan

trọng trong việc bảo vệ thông tin trực tuyến và xác thực các trang web

Bên cạnh SSL/TLS, SSh và IPSec là một trong những ứng dụng rất lớn nhờ vàomật mã.

1.4.3 VPN

VPN (Virtual Private Network) là một công nghệ cho phép tạo ra một mạng riêng

ảo trên Internet Mật mã hóa được tích hợp chặt chẽ trong VPN để bảo vệ thông tin khitruyền tải qua mạng VPN có tác dụng bảo mật đữ liệu đảm bảo an toàn cho dữ liệu truyềntải qua mạng công cộng và xác thực được người dùng giữa các nút trong mạng VPN Điềunày giúp ngăn chặn các cuộc tấn công giả mạo và đảm bảo rang chỉ những người dùngđược ủy quyền mới có thê kết nối và truy cập vào mạng

1.4.4 Mã hóa đầu cuối

Mã hóa đầu cuối là công nghệ bao mật giúp bảo vệ toàn điện nội dung tin nhắn khi

trao đổi tin nhắn giữa 2 người với nhau Các tin nhắn được mã hóa trước khi gửi và sẽ ởdạng mã hóa trong toàn bộ quá trình gửi và nhận Ngoài thiết bị của người gửi và ngườinhận, tin nhắn sẽ không thé được giải mã trên thiết bị nào khác Điều này giúp mã hóa

17

Trang 18

dau cuôi bảo mật hơn so với công nghệ mã hóa tin nhăn hiện tại Chi tiệt các tính chat của một ứng dụng mã hóa đâu cuôi an toàn và cách hoạt động sẽ được trình bày ở phân sau.

18

Trang 19

CHƯƠNG 2: MA HÓA DAU CUOI

2.1 Tổng quan

Mã hóa đầu cuối hay còn gọi là mã hoá end-to-end, tiếng anh là end-to-end

encryption (viết tắt E2EE) là một hệ thống giao tiếp an toàn ngăn chặn bên thứ ba truy

cập đữ liệu trong khi nó được truyền từ một hệ thống hoặc thiết bị một đầu đến hệ thống

hoặc thiết bị khác Trong E2EE, dữ liệu được mã hóa trên hệ thống hoặc thiết bị củangười gửi, và chỉ người nhận mới có thê giải và đọc nội dung thông điệp Khi đữ liệu dichuyền đến thiết bị của người nhận, thông điệp không thé được đọc hoặc thay đổi bởi bat

kỳ nhà cung cấp dịch vụ internet (ISP), nhà cung cấp dịch vụ ứng dụng, hacker hoặc bất

kỳ thực thé hoặc dịch vụ nào khác

Cách hoạt động của mã hóa đầu cuối:

1 Trước khi gửi đi, nội dung gốc của tin nhắn được mã hóa trên máy của người

gui.

2 Tin nhắn đã mã hóa được gửi đến máy chủ của nhà phat triển ứng dụng

3 Máy chủ nhà phát triển gửi tin nhắn đã mã hóa đến người nhận

4 Tin nhắn mã hóa được giải mã trên máy của người nhận và trở về nội dung gốc

Mã hoá end-to-end ngăn những kẻ nghe lén tiềm năng - bao gồm nhà cung cấpdịch vụ viễn thông, nhà cung cấp Internet, và thậm chí cả nhà cung cấp dịch vụ liên lạc

Họ không thé truy cập vào các khóa mật mã đề giải mã cuộc trò chuyện

Mã hóa end-to-end nhằm ngăn chặn việc đọc hoặc sửa đôi bí mật dữ liệu, không phải bởi người gửi và người nhận thực sự Các tin nhắn được mã hóa bởi người gửi nhưng bên thứ ba (ví dụ như nhà cung cấp ứng dụng) không có phương tiện để giải mã chúng Người nhận lay dữ liệu được mã hóa va tự giải mã.

Ưu điểm của mã hóa đầu cuối:

- Thong tin dữ liệu truyén di được bao vệ hoàn toàn, không ai có thé đọc hay nghe

được nội dung cuộc trò chuyện của trừ khi thiết bị cuối, hệ thống cuối hoặc tài

khoản của người gửi hoặc người nhận bị người khác lấy và truy cập vào ứng dụngbăng thông tin tài khoản Ngay cả nhà cung cấp ứng dụng - đơn vị mà lưu trữ nội

dung cũng không có cách nảo can thiệp hay nghe trộm thông điệp.

19

Trang 20

Moi sự thay đổi hay can thiệp vào dit liệu trong quá trình truyền tai sẽ làm cho dữliệu trở nên không đọc được, giúp phát hiện và ngăn chặn các cuộc tấn công.

Tuân Thủ Quy Định và Chuan Mực: Mã hóa đầu cuối thường tuân thủ các quy

định và chuẩn mực về bảo mật đữ liệu, giúp tổ chức tuân thủ các quy định pháp lý.

Bên cạnh đó, mã hóa dau cuôi cũng có thê có những nhược điêm sau:

Không sử dụng được các dịch vụ của nhà cung cấp ứng dụng, ví dụ như dịch vụ tựđộng đặt lịch hẹn Bởi vì nhà cung cấp ứng dụng cần biết nội dung tin nhắn haylịch sử trò chuyện thì mới có thể cung cấp các dịch vụ cho người dùng.Mặc dù tinnhắn của người dùng được mã hoá, nhưng thời gian, địa điểm và thông tin ngườinhận thì nhà cung cấp dịch vụ vẫn biết

Việc mã hóa và giải mã dữ liệu có thể tạo ra gánh nặng cho hệ thống, đặc biệt là

trên các thiết bị có tài nguyên hạn chế Điều này có thể dẫn đến sự giảm hiệu suất

và tăng độ trễ

Quản lý và bảo quản các khóa mã hóa có thể trở nên phức tạp, đặc biệt là trong các

hệ thống lớn hoặc có nhiều người dùng

2.2 Giao thức mã hóa đầu cuối OTR 2.2.1 Tính chất của một giao thức trao đổi thông điệp an toàn

Một giao thức trao đổi tin nhắn an toàn không chỉ bảo vệ người sử dụng tránh khỏi

các cuộc tân công mà còn bảo vệ người dùng ngay cả khi bị tân công Yêu câu của một

giao thức trao đổi tin nhắn an toàn bao gồm:

Confidentiality (Tính bí mật): khả năng giữ cho thông tin tin nhắn được bảo vệkhông bị tiết lộ cho bất kỳ bên thứ ba nào không được ủy quyền Mục tiêu chínhcủa tính bi mật là đảm bảo rằng người không được phép sẽ không thé đọc hay hiểuđược thông tin được mã hóa.

Authenticity (Tính xác thực): khả năng xác định nguồn gốc của thông điệp, đảmbảo rằng thông điệp không chỉ không bị thay đổi trong quá trình truyền tải, mà còn

được tạo ra bởi một bên đã được xác nhận.

Forward secrecy (Tính chuyên tiếp bí mật): Tính năng đảm bảo khi một mã khoá bị

lộ thì cũng không ảnh hưởng tới các tin nhắn trước

Deniability (Tính chối bỏ): Chỉ với các tin nhắn đã được mã hóa, bên thứ ba (thirdparty) không thể chứng minh được là cả hai bên tham gia giao thức đã thực sự trao

20

Trang 21

đổi thông tin với nhau Nói cách khác, mỗi bên tham gia giao thức đều có thể phủ

nhận dữ liệu đã mã hóa trên là của họ, hoặc phủ nhận họ có khả năng giải mã nó,

mà không có bên nào khác có thé chứng minh được (deniable)

2.2.2 Tổng quan giao thức OTR và cách hoạt động

2.2.2.1 Tổng quan

Off-the-Record Messaging (OTR) là một giao thức mật mã hóa cung cấp tính năng

mã hóa cho các cuộc trò chuyện qua tin nhắn tức thì OTR sử dụng sự kết hợp của thuậttoán đối xứng AES với chiều dài khóa 128 bit, trao đổi khóa Diffie-Hellman với kíchthước nhóm 1536 bit, và hàm băm SHA-1 Ngoàải việc cung cấp xác thực và mã hóa, OTRcòn đảm bao tính bí mật về phía trước (forward secrecy) và mã hóa có thé biến đổi được(malleable encryption) OTR đảm bảo tính Deniability là một trong những ưu điểm nỗitrội hơn với giao thức PGP Do đó OTR là một giao thức đã bảo trao đổi thông tin an toàn

ngay cả khi bị tấn công

2.2.2.2 Cách hoạt động.

Các bước hoạt động của giao thức OTR:

1 Người gửi và người nhận đồng ý và thống nhất được khóa phiên bí mật Sử dụng

giao thức trao đổi khóa Diffie-Hellman dé trao đổi khóa cho 2 bên.

2 Người gửi và người nhận chứng minh danh tính của mình bằng cách ký các giá trị

trung gian lúc trao đối khóa bằng giao thức Diffie-Hellman.

3 Người gửi sử dụng khóa mã hóa từ bước 1 để mã hóa tin nhắn.

4 Người gửi ký tin nhắn được mã hóa bằng HMAC với khóa là giá trị băm của khóa

phiên bí mật đã trao đôi ở bước 1

Người gửi gửi bản mã đã được mã hóa và chữ ký cho người nhận.

Người nhận giải mã ban mã và xác minh chữ ký kèm theo.

yn ® Người gửi public khóa HMAC.

8 Người gửi và người nhận quên khóa phiên của họ.

Dé trao déi một tin nhắn OTR, người gửi và người nhận phải:

- Đồng ý về khóa phiên bí mật.

- _ Xác minh danh tinh của nhau.

21

Trang 22

Sau đó, người gửi phải:

- Ma hóa tin nhắn

- Ky tin nhan

- Gửi tin nhắn đến người nhận

Và người nhận phải:

- _ Giải mã tin nhắn và xác minh chữ ký trên tin nhắn

Sau đó người gửi phải:

- _ Xuất bản khóa phiên bí mật đã dùng dé ký

Cuối cùng, cả hai bên người gửi và người nhận phải:

- _ Quên khóa phiên bí mật để đảm bảo tính forward secrecy

2.2.3 Chỉ tiết cách hoạt động của giao thức OTR

2.2.3.1 Dong ý về khóa phiên bí mật

Cả Alice và Bob đều thống nhất và đồng ý một khóa phiên chung, đối xứng vàkhóa này là tạm thời Sau đó, họ sẽ sử dụng khóa này để mã hóa một tin nhắn bang một

hệ mã hóa đối xứng Đề đảm bảo thuộc tinh “preserve forward secrecy”, khi họ đã traođổi xong một tin nhắn, họ sẽ quên đi khóa phiên mà họ đã sử dụng để gửi nó và lại thốngnhất một khóa mới Với phạm vi đồ án này sẽ giả định khóa phiên này được “xoay vòng”

môi tin nhăn.

22

Trang 23

2 1 Alice và Bob thống nhất khóa bí mật chung

2 Alice sử dụng khóa bí mật ngày dé mã hóa thông điệp +

và gửi thông điệp

—————————>

3 Alice và Bob thống nhất khóa bí mật khác tại phiên

trao đôi mới

-——ễ¬.

4 Bob sử dụng khóa bí mật ngày dé mã hóa thông điệp

và gửi thông điệp

Hình 2 1 Trao déi thông điệp trong giao thức OTR

Alice va Bob thống nhất một cách an toàn về từng khóa bí mật chung được chia sẻ

mà không cho phép Eve (người thứ 3, hacker) phát hiện ra chúng bằng cách sử dụng traođổi khóa Diffie-Hellman Dưới đây sẽ trình bày rõ hơn về giao thức trao đổi khóa Diffie -

Hellman.

Phuong pháp trao đổi khóa Diffie-Hellman cho phép hai bên (người, thực thé giao tiếp)thiết lập một khóa bí mật chung để mã hóa dữ liệu sử dụng trên kênh truyền thôngkhông an toàn mà không cần có sự thỏa thuận trước về khóa bí mật giữa hai bên Khóa

bí mật tạo ra sẽ được sử dụng dé mã hóa dữ liệu với phương pháp mã hóa khóa đốixứng Diffie-Hellman thiết lập bí mật chung để sử dụng cho trao đổi dữ liệu an toàntrên một kênh truyền thông công cộng không an toàn Sơ đồ sau đây minh họa ý tưởng

cơ ban của việc trao đôi khóa thông qua ví dụ vé mau son.

23

Trang 24

a p.g.A g?modp=A A> p.g b

a p,g.A +—E g° mod p =B p.g,A, B b

a,s p.gA,B BÊmodp=s AP modp=s p.gAB b,s

Hình 2 2 Giao thức trao déi khóa Diffie Hellman

2.2.3.2 Xác mình danh tính của nhau.

Ở bước đầu tiên chúng ta đã trình bày việc Alice và Bob sử dụng thuật toán trao

đổi khóa diffie hellman dé đồng ý về khóa phiên bí mật được chia sẻ mà họ có thé sử

dụng dé mã hóa bằng một hệ mã hóa đối xứng và ta chưa xem xét cách họ có thể xác

minh danh tính của người mà họ đã đồng ý khóa phiên đó Nếu 2 người họ không thựchiện xác minh danh tính thì họ có thể bị tấn công kiểu tấn công: “man-in-the-middle

attack” Cụ thể, một người thứ 3 là Eve có thể chặn tất cả lưu lượng đường truyền của

Alice hoặc/và Bob và giả mạo trao đổi khóa diffie hellman với chính mỗi người Trong

24

Trang 25

khi đó, Alice va Bob đều đồng ý với khóa bí mật giữa 2 người họ được chia sẻ bí mật

nhưng thực tế là 2 người mỗi người đều thống nhất khóa với người thứ 3 là Eve Do đó

Eve có thé đọc được thông điệp mà Alice/Bob gửi đi và có thé giả mạo danh tính dé gửi

lại cho người khác.

Tan công “Man-in-the-middle”

2 Eve thực hiện giả mao tương

1 Alice nghĩ răng cô ây đã tự với Bob

đồng ý khóa với Bob, tuy nhiên

Eve đã đứng ở giữa và giả mạo

Bob dé trao đôi khóa với Alice

— /( “=>

¬-=- aX

3 Bây giờ Alice va Bob đều vô tinh gửi thông điệp của họ cho Eve thay vì cho nhau Eve có thể đọc và

thao tác với thông điệp trước khi chuyển tiếp chúng

cho Alice va Bob

Hình 2 3 Tan công “Main-in-the-middle”

Điều này dẫn đến bắt buộc phải xác minh danh tính được của nhau trong lúc trao

đổi khóa Diffie hellman dé xác minh được đúng người cần trao đôi thông điệp

Theo như cách thức trao đổi khóa ở bước đầu tiên, để chứng minh danh tính của

nhau, Alice và Bob ký lên giá trị trung gian trong giao thức trao đôi khóa Diffie Hellman

mà họ đã gửi cho đối phương bằng khóa bí mật của minh (trong hệ mã hóa bat đối xứng)

Sau khi nhận được gia tri trung gian đó, người nhận sẽ xác minh chữ ky của người gửi

băng khóa công khai của người gửi (trong hệ mã hóa bất đối xứng) Nếu chữ ký củangười gửi không xuất hiện thì chắc chắn rang người gửi là một người đang cố gắng maodanh, còn nếu chữ ký xuất hiện thì sẽ xác minh danh tính được người gửi là đúng người

ma mình muốn trao đôi Sau khi cả 2 xác minh được danh tính lẫn nhau rồi thì họ có thé

sử dụng giá trị trung gian đó kết hợp với giá trị bí mật của riêng mình để mã hóa và giải

mã thông điệp bằng hệ mật đối xứng

25

Trang 26

Người thứ 3 là Eve vẫn có thể chặn tất cả lưu lượng đường truyền của Alice

hoặc/và Bob và giả mạo trao đôi khóa diffie hellman với chính mỗi người Tuy nhiên, cô

ay sẽ không thé khiến Alice va Bob chấp nhận gia trị Diffie-Hellman trung gian do EVEtạo ra vi EVE sẽ không thé tao ra chữ ky hợp lệ Do đó, EVE sẽ không thể lừa họ dé tao

một một kết nôi được mã hóa với cô ay.

Xác thực quá trình thống nhất khóa bí mật chung

@ ®

1 Alice khởi tạo giá I Xk

trị Diffie Hellam bí 3 Alice gửi giá trị trung gian

mật và giá trị trung và chữ ký cho Bob

glen Gia tri trung Gia tri trung

gian Alice gian Alice

l cv

as) mã hóa giải mã =

(khóa bí mật Alice » , Khóa công khai Alice)

+ _ ký sag 697ebefla 697ebefla M a xac pi

ri trung gian bang chữ ký của Alice

khóa bí mật của 5 Bob thực hiện quy trình sử dụng khóa

mình tương tự khi gửi giá trị trung công khai của cô

gian cho Alice Do đó cả 2 ấy

bây giờ đã có thê xác thực

được đối phương và thống nhất khóa bí mật an toàn

Hình 2 4 Xác thực danh tính trong khi thống nhất khóa bí mật chung

Hiện tại, Alice và Bob đã đồng ý về một khóa dùng chung, đối xứng, xác minh danh tính của nhau Tiếp theo, Alice cần mã hóa tin nhắn của minh.

2.2.3.3 Mã hóa tin nhắn.

Tại thời điểm này, Alice và Bob đã đồng ý về một khóa phiên đối xứng, bí mật.Bây giờ cần chỉ định một hệ mã hóa đối xứng dé họ có thé dùng khóa đã thống nhất dé

mã hóa và giải mã thông điệp của họ Nhiều thuật toán mã hóa đối xứng đã tồn tại và

OTR có thể sử dụng một thuật toán có từ trước mà không cần phát minh ra thuật toán

riêng.Cụ thé, ở day OTR sử dụng hệ mật mã AES với đầu vào khóa là khóa phiên đã được

chia sẻ và xác thực trước đó.

Tuy nhiên, ở bước này,Alice và Bob hoàn toàn van có thê bị giả mạo Do đó can một cách kiêm tra vừa thỏa mãn đê đảm bảo cả 2 không bị giả mạo, xác thực được thông tin trao đôi lan nhau va còn phải dam bảo tính choi bỏ - một trong những yêu câu của một giao thức mã hóa đâu cuôi cân có.

2.2.3.4 Ký tin nhắn

26

Trang 27

Dé xác thực nội dung của một tin nhắn, nguoi gửi cần phải có khả năng ký và

người nhận cần có thé xác thực chữ ký này Tuy nhiên, khác với giao thức PGP, Alice va

Bob không muốn ký trực tiếp tin nhăn của họ bằng khóa ký riêng tư của họ vì nếu kýbăng khóa riêng tư này thì sẽ không đảm bảo được tính chối bỏ Do đó, OTR khắc phụcđược điểm yếu không thê chối bỏ của PGP

OTR phải chứng minh được tính toàn vẹn các thông điệp bằng cách sử dụng mộtloại chữ ký mật mã khác Chúng ta đã biết rằng OTR sử dụng một thuật toán mã hóa đốixứng để mã hóa các thông điệp trong khi nó vẫn phải giữ được tính “forwardsecrecy”.Tương tự, nó cũng sử dụng thuật toán ky đối xứng dé xác thực thông điệp của nó

trong khi vẫn bảo toàn thuộc tính “Chối bỏ” của nó Trong khi thuật toán ký bất đối xứng

(chang hạn như thuật toán được PGP sử dụng) sử dụng một khóa trong cặp khóa để tạo

chữ ký và khóa còn lại dé xác minh, OTR sử dụng một thuật toán đối xứng sử dụng cùng

một khóa đê tạo và xác minh.

OTR sử dụng thuật toán ký đối xứng được gọi là HMAC, viết tắt của ( Hashed

Message Authentication Code - Mã xác thực thông báo dựa trên băm ).

Dé tạo chữ ky HMAC cho một thông điệp, người ký chuyên cả thông điệp và khóa

ký bí mật, được chia sẻ, đối xứng của họ vào thuật toán HMAC Thuật toán tra về chữ ký

HMAC, sau đó người ký gửi thông điệp và chữ ký HMAC cho người nhận.

Xác minh tính toàn vẹn của thông điệp

1 Alice và Bob thống nhất được

l khóa ký nhờ giao thức Diffie

2 Alice ký thông Hellman trước đó 4 Bob sử dụng

điệp sử dụng khóa ký chung để

khóa ký cả 2 đã

thống nhất ¡ am a cat IsntaGEi xác thực chữ ký

(Khóa ký chung) | —e ký chung) b3198ee0 [Em

dce708dcd [Em3 Alice gửi Bob thông

điệp đã được mã hóa và chữ ký tạo ra

Hình 2 5 Xác minh tính toàn vẹn của thông điệp

27

Trang 28

Đề xác minh chữ ký HMAC, người nhận thực hiện quy trình tương tự Họ chuyênthông điệp và cùng một khóa ký (mà họ cũng biết) vào thuật toán HMAC và lấy lại chữ

ký HMAC Nếu chữ ký mà họ tính toán khớp với chữ ký mà họ nhận được từ người gửithì có thé tin tưởng rằng thư không bị giả mạo Điều nay cho thay cách chữ ký HMACcung cấp tính xác thực

Cách 2 bên thông nhất khóa ký đối xứng

Đề sử dụng chữ ký HMAC dé xác thực tin nhắn lẫn nhau, người gửi và người nhậncần phải đồng ý về một khóa ký bi mật được chia sẻ mà họ có thé chuyên vào thuật toán

HMAC Trong OTR, họ sử dụng giá trị băm của khóa mã hóa bi mật đã được chia sẻ ở

bước 1 bằng giao thức diffie hellman làm khóa ký bí mật được chia sẻ của họ

Khóa bímật dùng đề mã hóa, được

thông nhất nhờ giao thức trao đôi khóa

Diffie Hellman

Hàm băm —— Ce)

Khóa dùng dé ký

Hình 2 6 Cơ chế tạo khóa ký trong OTR

Hàm băm là một hàm tạo ra đầu ra có vẻ ngẫu nhiên nhưng nhất quán cho mỗi đầu

vào Với một đầu vào, rất dễ dàng dé tính toán đầu ra băm Ngược lại, với một đầu ra củahàm băm sẽ không thé tính toán đầu vào tạo ra nó Với một đầu vào thì sau khi băm sẽ cómột giá trị nhất định Chỉ cần giá trị đầu vào thay đổi một giá trị dù là rất nhỏ thì đâu ra sẽ

bị thay đổi hoàn toàn

Điều này dẫn đến việc hàm băm rất hữu ích cho việc kiểm tra tính toàn vẹn TrongOTR, Alice và Bob sử dụng một hàm băm mật mã (một hàm băm với một số thuộc tính

bảo mật cụ thé) dé tao khóa ký được chia sẻ của họ từ khóa mã hóa được chia sẻ của họ.

Bây giờ Alice và Bob đã sẵn sàng trao đổi một tin nhắn một cách an toàn

2.2.3.5 Gửi tin nhắn

Alice mã hóa tin nhắn của mình băng cách sử dụng hệ mật mã AES với đầu vàokhóa là khóa mã hóa đối xứng mà Alice và Bob đã đồng ý với nhau bằng cách sử dụngtrao đối khóa Diffie-Hellman ở bước thứ nhất

28

Trang 29

Sau đó, Alice tính giá trị băm của khóa mã hóa đối xứng dùng dé mã hóa tin nhắn

ra, đầu ra là khóa dùng dé ky Alice sau đó sử dụng thuật toán HMAC với đầu vào là bản

mã của tin nhắn đã mã hóa phía trên và khóa ký (đầu ra sau khi băm khóa bí mật mã hóa)

để tạo ra chữ ký.

Xong xuôi, Alice gửi cho Bob tin nhắn đã được mã hóa mà chữ ký cho Bob

2.2.3.6 Giải mã và xác thực thông điệp

Khi Bob nhận được tin nhắn và chữ ký của Alice Anh ta sẽ:

- _ Giải mã tin nhắn bi mã hóa bằng khóa bi mật đã được chia sẻ trước đó bằng giao

thức trao đôi khóa Diffie hellman

- Tinh toán giá tri băm của khóa bí mật đó dé lay giá trị khóa ký

- Bob tính toán chữ ký của Alice băng thuật toán HMAC với đầu vào là tin tin nhắn

đã mã hóa sau khi nhận và khóa ký vừa được khởi tạo.

- Sau khi tự minh tạo được chữ ký của Alice để kiểm chứng thì Bob sẽ so sánh chữ

ký đấy với chữ ký mà anh ta đã nhận từ Alice Nếu 2 giá trị đều được so khớp thì

sẽ xác thực được Alice và đảm bảo tin nhắn toàn vẹn

Alice và Bob hiện đã trao đổi một thông điệp đầy đủ các thuộc tính bí mật, đượcxác thực, chuyên tiếp bí mật và phủ nhận

29

Trang 30

Sau khi quá trình gửi nhận và xác nhận thông tin thành công ở bước 5,6 Alice công

bố khai ký chung của cô và Bob với mọi người Điều này là an toàn dé thực hiện, bởi vihiện tại Bob đã xác minh tin nhắn của Alice, không thành vấn đề nếu Eve có quyền truycập vào khóa ký mà anh ay da su dung dé thuc hién viéc nay

Việc công khai khóa ký giúp cho OTR mang tinh chối bỏ, kế cả khi Eve lay đượckhóa mã hóa chung của Alice và Bob thi cũng không thé chứng minh tin nhắn là chínhxác do Alice gửi hay không vì khóa ký đã được công khai, bất kỳ ai cũng có thê sử dụng

khóa đó.

Ngược lại, việc Alice công bố khóa mã hóa được chia sẻ của họ sẽ rất không an toản, bởi

vì néu Eve đã lưu trữ lưu lượng được mã hóa của họ thì cô ay sẽ có thé sử dụng khóa mã

hóa để giải mã nó Rất may, vì khóa ký mà Alice xuất bản chỉ là một băm mật mã của

khóa mã hóa, nó không thé được sử dụng để tạo lại chính khóa mã hóa

2.2.3.8 Quên di khóa phiên mã hóa.

Cuôi cùng, khi Bob đã nhận, giải mã và xác minh tin nhăn va Alice đã xuât bản khóa ký riêng tư, những người tham gia sẽ quên và xóa khóa mã hóa phiên của họ.

30

Trang 31

Bước này là cần thiết để đảm bảo tính “chuyên tiếp bí mật” và khiến kẻ tấn công

không thé đọc được các thông điệp trong quá khứ, ngay cả khi chúng xâm nhập máy tính của họ Alice và Bob sau đó bắt đầu lại quy trình, thương lượng khóa mã hóa phiên dùng chung mới cho mỗi lần thực hiện tin nhắn.

2.3 Giao thức mã hóa đầu cuối Zalo

2.3.1 Tổng quan

Zalo là ứng dụng nhắn tin và gọi điện miễn phí hoạt động trên nền tang di động vamáy tính Với nhiều tinh năng và đặc điểm nổi bật, Zalo dé dang đáp ứng nhu cầu liên lạcthường xuyên của người dùng Hiện nay đây là một ứng dụng được sử dụng rất rộng rãivới người dùng Việt và không thé phủ nhận được những đóng góp to lớn của ứng dụngnày đến với đời sống người Việt

Từ đầu năm 2022 trở đi, Zalo đã nghiên cứu và xây dựng giao thức mã hóa đầucuối dé đảm bảo tinh an toàn và riêng tư của người dùng Người dùng Zalo đã có thé baomật trò chuyện 2 người và trò chuyện nhóm bang giao thức mã hóa đầu cuối Giao thứcnày hỗ trợ mã hóa tin nhắn bằng mã khóa Các mã khóa này chỉ được lưu trữ trên máy của

người dùng và không được lưu trữ tại bất cứ nơi nào khác (kế cả trên máy chủ Zalo).

Ngoài người dùng trong trò chuyện, không ai có thể giải mã được tin nhắn mã hóa đầu

cudi.

Zalo xây dựng giao thức mã hóa đầu cuối dựa trên các giải thuật Double Ratchet,Diffie-Hellman, Elliptic curve DH, v.v Đây là các giải thuật mã nguồn mở, được nhiều cánhân, tổ chức uy tín kiểm định

Phần tiếp theo sẽ đưa ra định nghĩa các thuật ngữ và ký hiệu được dùng, phục vụcho phần giới thiệu các giải thuật được sử dụng bên cạnh việc mô tả giao thức mã hóa đầucuối của Zalo

2.3.2 Các giải thuật và giao thức được sử dụng.

2.3.2.1 Thuật ngữ và ký hiệu

Tên viết tắt Ý nghĩa

I Identity Key

Cặp khoá 256 bits được tạo ra theo giải thuật Curve25519, được sử

dụng dé định danh cho một tài khoản Zalo, sinh ra bởi thiết bị

31

Trang 32

chính (thiết bị di động) của người dùng.

S Signed PreKeys

Cặp khoá được tạo ra theo giải thuật Curve25519, đã được xácthực bởi Identity Key, khoá này được thay thế định kỳ (1 ngày,tuần, tháng, v.v.)

O One-Time Prekeys

Cac cặp khoá được tao ra theo giải thuật Curve25519, là loại khoá

chỉ được sử dụng 1 lần, liên tục được tạo ra khi có yêu cầu

E Ephemeral Key cho việc khởi tạo phiên.

D Ephemeral Key cho việc tao ra Chain Key.

HKDF(X) - HMAC-based Key Derivation Function.

HMAC-SHA256(K,P) - Tính toán HMAC sử dụng SHA256 va khoá K của thông tin.

2.3.2.2 Các giải thuật và giao thức

a Giao thức đồng thuận khóa X3DH

X3DH là một giao thức đồng thuận dùng dé thiết lập một mã khóa chung giữa 2 bênkhi muốn xác thực lẫn nhau dựa trên các cặp khoá công khai (Public Keys) Giao thức nàycung cấp hai tính năng [3]:

32

Trang 33

- Forward secrecy: Tính năng đảm bảo khi một mã khoá bị lộ thì cũng không ảnh

hưởng tới các tin nhăn trước.

- Phu định mã hoá (cryptographic deniability) Chỉ với các tin nhắn đã được mã hóa,

bên thứ ba (third party) không thé chứng minh được là cả hai bên tham gia giaothức đã thực sự trao đổi thông tin với nhau Nói cách khác, mỗi bên tham gia giaothức đều có thé phủ nhận dữ liệu đã mã hóa trên là của họ, hoặc phủ nhận họ cókhả năng giải mã nó, mà không có bên nào khác có thể chứng minh được

(deniable).

X3DH là là giao thức đồng thuận khoá bất đồng bộ Người gửi tạo tin nhắn khởi tạosession mã hoá và dùng session đó để mã hoá tin nhắn khởi tạo cho người nhận, ngay cảkhi người nhận không trực tuyến Người nhận sau đó có thể xử lý tin nhắn khởi tạo này vàdùng nó dé tính toán ra session tương ứng dùng cho giải mã tin nhắn

Đê thiệt lập một session mới:

- Bước 1: Người thiết lập session (A) lấy bộ mã khóa gồm Is, Ss, và Op nếu có từ

máy chủ.

- A tiếp tục tạo ra 1 cặp key E nhờ vào giải thuật Curve25519 và tinh ra R từ công

thức:

DH1=DH(I,,Sz) DH2=DH(E,,1I,)

DH 1=DH(E,,Sz) Master SK = KDF (DH 1V¿DH2V¿DH3)

Nếu có O; thì sẽ tinh thêm DH4 bang công thức:

DH 1=DH(E,,O,;) Master SK = KDF(DH 1V¿DH2V¿ DH 3Vi DH 4)

Các công thức trên miêu tả quá trình tinh toán khoá sử dung giao thức DH DHI va

DH2 dùng để tạo ra xác thực chung, trong khi đó DH3, DH4 dùng để tạo ra tính “forwardsecrecy” của giao thức.

Sau khi có được SK, A có thé dùng trực tiếp SK dé mã hóa tin nhắn gửi cho Bhoặc dùng dé tăng cường bảo mật thông qua các giải thuật như DH Ratchet và DoubleRatchet.

33

Trang 34

34

Trang 35

c Giải thuật Double Ratchet

KDF (Key Derivation Function) là một hàm mã hoá có đầu vào là một khoá bao

mật và ngẫu nhiên (secure and random) và đữ liệu để tạo ra 1 chuỗi dit liệu mới có thé dùng làm mã khóa cho các giải thuật mã hoá khác Tuy nhiên nếu chuỗi dữ liệu này

không ngẫu nhiên thì KDF phải cung cấp 1 hàm băm (hash) bảo mật mã khoá và dit liệuđầu vào (HKDF) có thé đáp ứng đầy đủ tiêu chuẩn của KDF [3]

KDF key

Key Input In KDF

Out

KDF key Output key

Key Input In KDF

Out

Key Input In KDF

Out

KDF key Output key

Hinh 2 8 Giai thuat KDF

35

Trang 36

DH Ratchet: trong quá trình trao đổi tin nhắn giữa A và B, nếu A vô tinh dé lộ SK

từ việc trao đổi mã khóa (như mã khóa được tạo từ giải thuật X3DH), tất cả các tin nhắn

cũ đều có thể bị bên thứ ba đọc được Đề giải quyết vấn đề này, DH Ratchet được sử dụng như hình đưới dưới đây SK sẽ được thay đôi trong 1 lượt gửi nhận tin nhắn.

A’s DH ratchet step

Private Key Public Key

Hinh 2 9 Giai thuat DH Ratchet

Symmetric Key Ratchet: mỗi tin nhắn gửi nhận được mã hóa với 1 MK duy nhất

MK này là dau ra từ chuỗi gửi nhận KDF, thường được gọi là Chain Keys Đầu vào của

KDF thường là hang số (có thé là 0), do đó không đảm bảo được tính khôi phục khi bi thâm nhập, mà chỉ đảm bảo MK dùng để mã hóa hoặc giải mã tin nhắn được xóa ngay

lúc đó.

36

Trang 37

Vi MK không được dùng dé sinh ra mã khóa kế tiếp, có thé lưu trữ MK mà không ảnh hưởng tới bảo mật của bất kỳ tin nhắn nào khác, tránh mất và tin nhắn tới không

Out

Chain key Message key

Hình 2 10 Giải thuật Symmetric Key Ratchet

Double Ratchet: việc kết hợp 2 giải thuật DH Ratchet và Symmetric Key Ratchet

sẽ tạo nên giải thuật Double Ratchet như sau:

- _ Khi tin nhắn được gửi và nhận, Symmetric Key Ratchet được áp dung dé tính toán

ra MK dé mã hóa hoặc giải mã

- Khi nhận Ratchet Public Key mới, thực hiện DH Ratchet với Symmetric Key

Ratchet trước đó để tạo ra một Chain Key hoàn toàn mới.

Các giải thuật Ratcheting như Double Ratchet cho phép 2 bên cập nhật Session

Key khi trao đổi tin nhắn với nhau, đảm bảo được tính chất “forward secrecy”

37

Trang 38

Khi bat đầu trao đối tin nhắn, A tạo ra 1 cặp khóa mới và lấy Public Key của B.

Sử dụng giải thuật DH Ratchet dé tạo đầu vào cho KDF, tính toán ra Root Key (RK) và

Sending Chain Key (CK).

RATCHET ROOT SENDING RECEIVING

() Cac khóa cũ được xóa

Hình 2 11 Giải thuật DH Ratchet để tạo đầu vào cho KDE

Khi A gửi tin nhắn đầu tiên Al, A sử dụng Symmetric Key Ratchet với SendingChain Key (chuỗi key dùng cho việc gửi tin nhắn mã hoá) và đồng thời tạo ra một MK

mới Chain Key nay sẽ được lưu lại MK va Chain Key cũ sẽ bị xóa.

RATCHET ROOT SENDING RECEIVING

Symmetric Key

Ratchet

L) Các khóa cũ được xóa

Hình 2 12 Sử dụng Symmetric Key Ratchet với Sending Chain KeyKhi A nhận tin nhắn trả lời B1 từ B, tin nhắn này đính kèm Public Key mới từ B:

- A áp dung DH Ratchet với Private Key hiện tại dé tạo ra Receiving Chain Key

mới, đồng thời sử dụng KDF tạo ra MK cho việc giải mã tin nhắn BI

38

Ngày đăng: 08/03/2024, 13:49

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN