1. Trang chủ
  2. » Tất cả

Giải thuật trao đổi khóa diffie hellman và phân tích tính an toàn của giải thuật

36 22 1

Đ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 đề Giải thuật trao đổi khóa Diffie-Hellman và phân tích tính an toàn của giải thuật
Trường học Học viện Công nghệ Bưu chính Viễn Thông
Chuyên ngành An ninh mạng
Thể loại Tiểu luận
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 36
Dung lượng 1,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tiểu luận này trình bày về trao đổi khóa Diffie-Hellman, một trong những giao thức mật mã khóa công khai đầu tiên được sử dụng để tạo khóa bí mật giữa hai bên tham gia qua một kênh b

Trang 1

TIỂU LUẬN MÔN HỌC

AN NINH MẠNG VIỄN THÔNG

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

KHOA VIỄN THÔNG I

ĐỀ TÀI: GIẢI THUẬT TRAO ĐỔI KHÓA DIFFIE-HELLMAN VÀ

PHÂN TÍCH TÍNH AN TOÀN CỦA GIẢI THUẬT

Trang 2

i

BẢNG PHÂN CÔNG CÔNG VIỆC

1.1 Miêu tả quá trình Tìm hiểu nội dung

và trình bày ra file

word 1.2 Giải thích toán học

2.1 Ưu nhược điểm của giải thuật Hellman

Diffie-Tìm hiểu nội dung

và trình bày ra file word, tổng hợp và chỉnh sửa định dạng bài tiểu luận

2.2 Tính an toàn của giải thuật Hellman

Diffie-3.1 Mô phỏng quá trình trao đổi khóa

Tìm hiểu nội dung

Trang 3

ii

MỤC LỤC

BẢNG PHÂN CÔNG CÔNG VIỆC i

LỜI MỞ ĐẦU iii

DANH MỤC THUẬT NGỮ VIẾT TẮT iv

DANH MỤC HÌNH VẼ v

DANH MỤC BẢNG BIỂU vi

CHƯƠNG 1: TỔNG QUAN TRAO ĐỔI KHÓA DIFFIE-HELLMAN 1

1.1 Miêu tả quá trình 1

1.2 Giải thích toán học 4

CHƯƠNG 2: ƯU NHƯỢC ĐIỂM CỦA THUẬT TOÁN DIFFIE – HELLMAN VÀ TÍNH AN TOÀN CỦA GIẢI THUẬT 8

2.1 Ưu nhược điểm của giải thuật Diffie-Hellman 8

2.2 Tính an toàn của giải thuật Diffie-Hellman 8

CHƯƠNG 3: MÔ PHỎNG GIẢI THUẬT DIFFIE-HELLMAN VÀ ỨNG DỤNG CỦA GIẢI THUẬT 17

3.1 Mô phỏng quá trình trao đổi khóa 17

3.2 Mô phỏng quá trình tấn công Man in the middle 21

3.3 Ứng dụng của giải thuật 25

KẾT LUẬN xxviii

TÀI LIỆU THAM KHẢO xxix

Trang 4

iii

LỜI MỞ ĐẦU

Các yêu cầu về quyền riêng tư đối với tài liệu ngày càng tăng trên các giao dịch Internet hiện nay Việc bảo mật các kênh truyền thông số rất quan trọng trong thương mại điện tử, thông tin y tế,… Nói chung, việc kết nối an toàn giữa các kênh truyền bên trên Internet hiện tại đang là một yêu cầu bắt buộc Trong các phiên làm việc, các bên tham gia sẽ trao đổi các khóa hoặc dữ liệu trong một kênh liên lạc để không ai khác ngoài người gửi và người nhận có thể nhận được những chìa khóa hoặc dữ liệu đó Bài tiểu luận này trình bày về trao đổi khóa Diffie-Hellman, một trong những giao thức mật mã khóa công khai đầu tiên được

sử dụng để tạo khóa bí mật giữa hai bên tham gia qua một kênh bảo mật kém

Đề tài “Giải thuật trao đổi khóa Diffie-Hellman và ứng dụng” đã được nhóm em

trình bày trong quá trình tham gia học trên lớp, và ở bài thi kết thúc học phần An ninh mạng

này, nhóm đã phát triển đề tài thành “Giải thuật trao đổi khóa Diffie-Hellman và phân

tích tính an toàn của giải thuật”, tập trung đi sâu nghiên cứu thêm về tính an toàn cũng

như các khả năng bị tấn công của giải thuật này

Nội dung của bài tiểu luận bao gồm ba chương:

Chương 1: Tổng quan giao thức trao đổi khóa Diffie-Hellman: trình bày về lịch sử

ra đời, bài toán logarit rời rạc, quy trình trao đổi khóa, và quy trình mã hóa và giải mã sử dụng thuật toán Diffie-Hellman

Chương 2: Ưu nhược điểm của thuật toán Diffie-Hellman và tính an toàn của giải thuật sẽ phân tích về ưu điểm và các hạn chế của thuật toán, đồng thời nêu ra một số biện

pháp khắc phục

Chương 3: Mô phỏng giải thuật Diffie-Hellman và ứng dụng của giải thuật: thực

hiện mô phỏng quá trình tấn công Man-in-the-middle bằng ngôn ngữ lập trình C và nêu các ứng dụng của giải thuật

Tuy đã cố gắng nhưng do kiến thức còn hạn chế nên bài tiểu luận của nhóm chúng em vẫn còn nhiều thiếu sót, mong cô giáo có thể xem và góp ý để chúng em rút kinh nghiệm

và làm tốt hơn cho những lần sau!

Qua đây chúng em cũng xin gửi lời cảm ơn chân thành sâu sắc nhất tới các thầy cô trong Học Viện nói chung và TS Phạm Anh Thư nói riêng, các thầy cô đã luôn nhiệt tình chỉ dạy chúng em, cũng như tạo điều kiện cho chúng em nhiều cơ hội để tự học và học hỏi lẫn nhau, bổ sung thêm kiến thức ngoài thời gian học tập ngắn ngủi trên trường!

Các thành viên nhóm 5

Trang 5

iv

DANH MỤC THUẬT NGỮ VIẾT TẮT

DH Diffie-Hellman

DSA Digital Signature Algorithm Thuật toán chữ ký số

IPSec Internet Protocol Security Giao thức mạng về bảo mật

MIM Man-in-the-middle Kẻ tấn công ở giữa

NFS Number Field Sieve Thuật toán sàng trường số

SSL Secure Sockets Layer Giao thức lớp cổng bảo mật

TLS Transport Layer Security Giao thức bảo mật lớp truyền tải

Trang 6

v

DANH MỤC HÌNH VẼ

Hình 1.1: Quá trình tạo và trao đổi khóa 2

Hình 1.2: Quá trình tạo khóa bí mật chia sẻ 2

Hình 1.3: Mã hóa, truyền tải và giải mã khóa đối xứng 3

Hình 1.4: Truyền dữ liệu được mã hóa 3

Hình 1.5: Quy trình trao đổi khóa Diffie-Hellman 4

Hình 1.6: Hàm logarit liên tục y = loggx 7

Hình 1.7: Hàm logarit rời rạc y = dloggx (mod p) 7

Hình 2.1: Tấn công Man-in-the-middle 9

Hình 2.2: Tấn công Logjam trong phiên bắt tay TLS 12

Hình 2.3: Thuật toán NFS để tính logarit rời rạc 14

Hình 2.4: Ước tính thời gian để thực hiện tìm ra logarit rời rạc của các tham số Diffie-Hellman 15

Hình 3.1: Lưu đồ thuật toán trao đổi khóa DH 18

Hình 3.2: Kết quả mô phỏng lần 1 trao đổi khóa Diffie-Hellman 20

Hình 3.3: Kết quả mô phỏng lần 2 trao đổi khóa DH 20

Hình 3.4: Lưu đồ thuật toán cuộc tấn công MIM 22

Hình 3.5: Kết quả mô phỏng lần 1 tấn công MIM 24

Hình 3.6: Kết quả mô phỏng lần 2 tấn công MIM 25

Trang 7

vi

DANH MỤC BẢNG BIỂU

Bảng 1.1: Tham số cuộc tấn công bị động 6

Bảng 2.1: Máy chủ ảnh hưởng bởi Logjam khi Diffie-Hellman 512 bit bị phá vỡ 15

Bảng 2.2: Máy chủ ảnh hưởng bởi Logjam khi Diffie-Hellman 1024 bit bị phá vỡ 16

Bảng 3.1: Tham số mô phỏng trao đổi khóa DH 17

Bảng 3.2: Tham số mô phỏng cuộc tấn công MIM 21

Trang 8

1

CHƯƠNG 1: TỔNG QUAN TRAO ĐỔI KHÓA DIFFIE-HELLMAN

Thuật toán Diffe-Hellman, được giới thiệu bởi Whitfield Diffie và Martin Hellman năm 1976, là hệ thống đầu tiên sử dụng khóa công khai hay các khóa mật mã bất đối xứng

Do việc quản lí khóa bất đối xứng dễ dàng hơn rất nhiều, nên các hệ thống này đã khắc phục được những khó khăn của khóa bí mật (hay các hệ thống khóa đối xứng) Trong một

hệ thống khóa đối xứng, cả hai bên truyền thông cần phải có các khóa giống nhau Việc trao đổi bảo mật các khóa như vậy luôn là một vấn đề lớn Có một thời điểm, Cơ quan An ninh Quốc gia đã huy động cả hạm đội xe tải và máy bay có người lái cùng vũ trang để di chuyển khoảng 15 tấn khóa đối xứng bằng giấy để chính phủ Hoa Kỳ sử dụng hàng năm Các doanh nghiêp đơn giản không muốn rắc rối với gánh nặng đó Các hệ thống khóa bất đối xứng làm giảm vấn đề này vì sử dụng 2 khóa: một gọi là "private key" để người sử dụng giữ bí mật, và một gọi là "public key" mà có thể được chia sẻ rộng rãi, do đó, dễ dàng phân phối Không may, nhược điểm của khóa bất đối xứng đó là tốc độ - chúng thực sự chậm cho bất kì một lượng mã hóa lớn nào Ngày nay, chúng ta thường sử dụng một hệ thống khóa đối xứng để mã hóa dữ liệu và một hệ thống mã hóa khóa để phân phối khóa đối xứng Đây chính xác là những gì mà Diffie-Hellman có thể làm khi được sử dụng để trao đổi khóa

1.1 Miêu tả quá trình

Diffe-Hellman không phải là một cơ chế mã hóa thông thường, thực tế ta không sử dụng để mã hóa dữ liệu Thay vào đó, Diffe-Hellman là một phương pháp để trao đổi khóa một cách an toàn, bằng cách tạo một khóa bí mật chung (common secret key) giữa hai thiết

bị, thường được gọi là khóa mã hóa khóa (KEK: Key Encryption Key) Khóa này sau đó

sẽ mã hóa khóa đối xứng để chia sẻ nó an toàn trên đường truyền Khóa đối xứng thường

được gọi là khóa mã hóa lưu lượng (TEK: Traffic Encryption Key) hay khóa mã hóa dữ

liệu (DEK: Data Encryption Key) Do đó, KEK cung cấp sự truyền tải bảo mật cho TEK,

còn TEK cung cấp sự truyền tải bảo mật cho dữ liệu

Quá trình bắt đầu khi mỗi bên giao tiếp tạo ra một khóa bí mật riêng (private key), được miêu tả bởi chữ A trong Hình 1.1 Mỗi bên sau đó sẽ tạo ra khóa công khai (public key), là chữ B trong Hình 1.1., khóa công khai là hàm của khóa riêng Tiếp theo hai hệ thống sẽ trao đổi khóa công khai cho nhau Mỗi bên giao tiếp lúc này sẽ có một khóa công khai và một khóa riêng (chữ C)

Lưu ý rằng điều quan trọng ở đây đó là khóa công khai là hàm của khóa riêng do hai khóa này có liên kết toán học với nhau Tuy nhiên, bạn cần phải tin rằng không thể tìm được khóa riêng từ khóa công khai, điều này sẽ nói ở phần sau

Trong Hình 1.1 có khối "Optional: CA Certifies Public Key", đây là một tùy chọn đăng

kí khóa công khai với một bên thứ ba có thẩm quyền để chứng thực khóa công khai đến từ một nguồn tin cậy Mục đích của điều này để tránh tấn công Man-in-the Middle (sẽ được nói chi tiết ở chương 2)

Trang 9

2

Hình 1.1: Quá trình tạo và trao đổi khóa

Một khi quá trình trao đổi khóa hoàn thành, mỗi bên có thể tạo ra một "khóa bí mật chung" giống hệt nhau mà không cần gửi đi trên đường truyền Hình 1.2 miêu tả hoạt động này với khối "DH Math" (ví dụ chi tiết toán học sẽ được nói sau) Bằng cách tính toán khóa riêng và khóa công khai nhận được từ bên gửi, mỗi bên sẽ được một giá trị Chúng là "khóa

bí mật chung" có thể sử dụng để mã hóa thông tin giữa hai hệ thống

Hình 1.2: Quá trình tạo khóa bí mật chia sẻ

Lúc này, hoạt động của Diffe-Hellman có thể xem như hoàn thành Khóa bí mật chung (common secret key) có thể dùng để mã hóa dữ liệu Tuy nhiên, như bản chất của tất cả các

hệ thống khóa bất đối xứng, đó là tốc độ xử lý chậm Vậy nên trong đa số các ứng dụng hiện nay của giao thức Diffie-Hellman (SSL, TLS, SSH, và IPSec, ), khóa bí mật chung sẽ được sử dụng để mã hóa một khóa đối xứng "symmetric key", giúp truyền đi an toàn, và bên nhận sẽ giải mã khóa đối xứng bằng khóa bí mật chung này Vì khóa đối xứng có độ dài tương đối ngắn (128, 192, 256 bit) nên khi sử dụng cho một lượng dữ liệu lớn, nó có thể mã hóa và giải mã nhanh chóng

Trang 10

3

Hình 1.3: Mã hóa, truyền tải và giải mã khóa đối xứng

Hai bên trong quá trình truyền thông sẽ tạo và truyền đi các giá trị khóa đối xứng Một khi quá trình chia sẻ khóa đối xứng được thực hiện an toàn, dữ liệu mã hóa sẽ dễ dàng được bảo vệ Một điều cần lưu ý đó là khóa đối xứng sẽ được thay đổi liên tục để tăng tính bảo mật Và cả hai bên truyền thông vẫn có khóa bí mật chung Diffie-Hellman, nó có thể được

sử dụng để mã hóa các khóa đối xứng trong tương lai tại bất kì lúc nào và bất kì tần suất nào mong muốn

Hình 1.4: Truyền dữ liệu được mã hóa

Trang 11

4

1.2 Giải thích toán học

1.2.1 Quy trình thực tế

Hình 1.5: Quy trình trao đổi khóa Diffie-Hellman

1 Đầu tiên Alice và Bob thỏa thuận 2 số nguyên tố:

p = 23 và g = 5

(g < p và g là căn nguyên thủy của p)

Hai số này không cần bí mật và có thể được chia sẻ công khai

2 Alice chọn một số bất kì làm khóa riêng a = 4 (a < p và không công khai)

3 Alice tính toán một khóa công khai A:

A = ga mod p = 54 mod 23 = 4

4 Bob chọn một số bất kì làm khóa riêng b = 3 (b < p và không công khai)

5 Bob tính toán một khóa công khai B:

8 S = Ba mod p = Ab mod p = 18 (trao đổi khóa hoàn thành)

Alice và Bob cùng chia sẻ khóa bí mật chung là số 18

Trang 12

Nhóm 5 5

❖ Tại sao Ba mod p = Ab mod p?

Đầu tiên ta cần biết tính chất phân phối modulo:

• ab mod n = [(a mod n).(b mod n)] mod n

• (a mod n)b mod n = [(a mod n) (a mod n)] = ab mod n

Ta có: Ba mod p = Ab mod p

<=> (gb mod p)a mod p = (ga mod p)b mod p (1)

Nhờ tính chất phân phối modulo nên

(1) <=> gb.a mod p = ga.b mod p

Do gb.a = ga.b nên ta được điều cần chứng minh

1.2.2 Căn nguyên thủy và bài toán logarit rời rạc

a) Khái niệm căn nguyên thủy

Trong số học mô đun, một số g là một căn nguyên thủy modulo p nếu với mỗi số 𝑎 (𝑎

là nguyên tố cùng nhau với p) có đồng dư với một lũy thừa của g modulo p Nghĩa là, nếu

g là một gốc nguyên thủy modulo n, với mỗi số nguyên 𝑎 là nguyên tố cùng nhau với p, sẽ tồn tại một số nguyên k sao cho gk ≡ 𝑎 mod p

Ví dụ:

2 là căn nguyên thủy của 5, vì với mỗi số 𝑎 là nguyên tố cùng nhau với 5, có một số nguyên z sao cho 2z ≡ 𝑎 Tất cả các số nguyên tố 𝑎 cùng nhau với 5 là {1,2,3,4} và mỗi số này (mod 5) bằng chính nó (ví dụ: 2 mod 5 = 2)

• 20 mod 5 = 1; mà 1 mod 5 = 1; nên 20 ≡ 1

• 21 mod 5 = 2; mà 2 mod 5 = 2; nên 21 ≡ 2

• 23 mod 5 = 3; mà 3 mod 5 = 3; nên 23 ≡ 3

• 22 mod 5 = 4; mà 4 mod 5 = 4; nên 22 ≡ 4

• 24 mod 5 = 1; mà 1 mod 5 = 1; nên 24 ≡ 1

4 không phải là căn nguyên thủy của 5, vì với mỗi số nguyên tố 𝑎 cùng nhau với 5 (là 1,2,3,4) không có đầy đủ lũy thừa của 4 là đồng dư Lũy thừa của 4 (mod 5) chỉ đồng dư với số 1 hay số 4, không có đồng dư với số 2 và số 3

• 40 mod 5 = 1; mà 1 mod 5 = 1; nên 40 ≡ 1

• 41 mod 5 = 4; mà 2 mod 5 = 2; nên 41 không đồng dư với 2

• 42 mod 5 = 1; mà 3 mod 5 = 3; nên 42 không đồng dư với 3

• 43 mod 5 = 4; mà 4 mod 5 = 4; nên 43 ≡ 4

Trang 13

Nhóm 5 6

b) Bài toán logarit rời rạc trong Diffie-Hellman

Trong giao thức Diffie-Hellman, hai bên trao đổi khóa là Alice và Bob Kẻ nghe lén Eve có thể quan sát được thông tin truyền giữa Alice và Bob nhưng không thay đổi nội dung thông tin (tấn công bị động) Sơ đồ dưới đây tóm tắt mỗi người biết gì trong mô hình của giao thức

• Đặt s = khóa bí mật được chia sẻ

• Đặt g = căn nguyên thủy công khai

• Đặt p = số nguyên tố công khai

• Đặt a = khóa riêng tư của Alice

• Đặt A = khóa công khai của Alice

• Đặt b = khóa riêng tư của Bob

• Đặt B = khóa công khai của Bob

Bảng 1.1: Tham số cuộc tấn công bị động

Mục tiêu của Eve là tính toán s

Nếu cô ấy có thể suy ra được a khi biết A = ga mod p và b khi biết B = gb mod p và tính được s, thì cô ấy sẽ có cùng thông tin như Alice và Bob và từ đó có thể đọc tin nhắn

của họ Nhưng đây là một bài toán khó Nó được gọi là Bài toán logarit rời rạc Không có

thuật toán hiệu quả để tính toán a = dloggA (mod p) rời rạc nói chung Trong khi thực

hiện hàm mũ mod p là tương đối dễ dàng, rất khó để thực hiện nghịch đảo và tìm lời giải

cho bài toán logarit rời rạc, đặc biệt nếu số p lớn Ví dụ nếu p dài 100 số, thì ngay cả máy

tính hiện đại nhất cũng mất hàng ngàn năm để giải một bài toán logarit rời rạc

Một phần lý do khiến việc tính toán logarit rời rạc khó khăn đó là logarit trong các số

thực là liên tục, nhưng logarit (tối thiểu) của một số mod n lại dao động một cách ngẫu

nhiên Điều này được minh họa trong hình dưới đây

Trang 14

Nhóm 5 7

Hình 1.6: Hàm logarit liên tục 𝑦 = 𝑙𝑜𝑔𝑔𝑥

Hình 1.7: Hàm logarit rời rạc 𝑦 = 𝑑𝑙𝑜𝑔𝑔𝑥 (𝑚𝑜𝑑 𝑝) Hơn nữa, thuật toán sử dụng g là căn nguyên thủy của số p Trong Diffie-Hellman, căn nguyên thủy cho một lượng tối đa các giá trị có thể của khóa bí mật trong khoảng từ 1 đến

p-1, điều này giúp tối đa hóa tính khó khăn của bài toán logarit rời rạc

Trang 15

Nhóm 5 8

CHƯƠNG 2: ƯU NHƯỢC ĐIỂM CỦA THUẬT TOÁN DIFFIE

HELLMAN VÀ TÍNH AN TOÀN CỦA GIẢI THUẬT

2.1 Ưu nhược điểm của giải thuật Diffie-Hellman

2.1.1 Ưu điểm

Ưu điểm của giải thuật Diffie - Hellman là các yếu tố bảo mật, với thực tế là việc giải logarit rời rạc rất khó khăn và khóa bí mật của mỗi phiên giao tiếp không bao giờ được truyền qua kênh Sau khi các khóa được trao đổi, việc truyền dữ liệu có thể được thực hiện ngay trên một kênh truyền không an toàn Giải thuật này còn là một giao thức hai chiều khá nhẹ khi chỉ thực hiện một phương thức truyền khóa công khai từ người tham gia A đến người tham gia B và một lần nữa từ B đến A Giải thuật này còn giúp hai người A và B có thể trao đổi thông tin ngay cả khi họ chưa biết về nhau và chưa giao tiếp với nhau bao giờ, nhưng đây cũng được xem là một nhược điểm khi giải thuật này không có cơ chế xác thực người dùng

2.1.2 Nhược điểm

Một số nhược điểm của giải thuật trao đổi khóa Diffie – Hellman là:

➢ Không có sự xác thực danh tính của các bên tham gia trao đổi

➢ Dễ bị tấn công từ người trung gian Bên thứ ba C, có thể trao đổi khóa với cả A

và B và có thể lắng nghe phiên giao tiếp giữa A và B

➢ Thuật toán chuyên sâu về mặt tính toán Thực tế là giải thuật có các phép toán hàm mũ tốn kém về mặt thời gian và giải thuật không thể được sử dụng để mã hóa các bản tin mà chỉ được sử dụng để thiết lập khóa bí mật

➢ Bản chất tính toán của giải thuật có thể bị sử dụng trong một cuộc tấn công từ chối dịch vụ rất dễ dàng

2.2 Tính an toàn của giải thuật Diffie-Hellman

Giải thuật trao đổi khóa Diffie-Hellman có thể gặp phải một số kiểu tấn công như sau:

➢ Tấn công từ chối dịch vụ: Tại đây, kẻ tấn công sẽ cố gắng ngăn Alice và Bob

thực hiện giải thuật thành công

➢ Tấn công từ bên ngoài: Kẻ tấn công cố gắng phá vỡ giải thuật (ví dụ như thêm,

xóa, phát lại bản tin) để anh ta nhận được một số thông tin thú vị (tức là thông tin mà anh ta không thể có được bằng cách chỉ nhìn vào khóa công khai)

➢ Tấn công nội bộ: Có thể một trong những người tham gia giải thuật tạo ra một

giao thức có thể phá vỡ quá trình thực hiện một cách có chủ đích (tức là một giao thức trong đó người quan sát bên ngoài có thể xác định bí mật được chia sẻ

là gì) Tất nhiên, nếu một trong những người tham gia giao thức quyết định công

bố bí mật được chia sẻ, thì không thể làm gì được Lưu ý rằng các phần mềm độc hại có thể rất thành công trong việc thực hiện cuộc tấn công này

Trang 16

Nhóm 5 9

Tính hợp lý của những cuộc tấn công này phụ thuộc vào những giả định đưa ra về kẻ tấn công Ví dụ, nếu kẻ tấn công có thể xóa và thay thế một bản tin từ kênh liên lạc công cộng, thì không thể ngăn chặn được cuộc tấn công từ chối dịch vụ Tuy nhiên, có vẻ như các cuộc tấn từ bên ngoài và các cuộc tấn công nội bộ có thể được ngăn chặn trong nhiều cài đặt

2.2.1 Kẻ tấn công ở giữa (Man-in-the-middle)

Do Diffie-Hellman không xác thực người dùng trong phiên trao đổi khóa nên thuật toán này dễ bị tấn công theo kiểu kẻ tấn công ở giữa Trong đó kẻ thứ ba Eve có thể thực hiện tấn công chủ động, theo dõi và sửa đổi tất cả các tin nhắn giữa Alice và Bob Để làm điều đó, Eve sử dụng khóa công khai của mình và tương tác với Alice và Bob Trong khi Alice và Bob không có cách nào biết được Eve đang ở đó và tin rằng họ đang giao tiếp trực tiếp với nhau (xem Hình 2.1)

Eve lấy khóa công khai của Alice và gửi khóa công khai của riêng cô ấy cho Bob Khi Bob truyền khóa công khai của mình, Eve sẽ bắt bản tin và thay thế giá trị khóa công khai của Bob bằng khóa công khai của chính cô ấy và sau đó gửi nó cho Alice Bây giờ, Alice

sẽ thỏa thuận một khóa bí mật chung với Eve thay vì Bob Tương tự như vậy, một khóa bí mật chung sẽ được thỏa thuận giữa Eve và Bob, khi đó Eve có thể giải mã bất kỳ bản tin nào được gửi bởi Alice hoặc Bob, sau đó đọc và có thể sửa đổi chúng trước khi mã hóa lại bằng khóa thích hợp và truyền chúng cho bên kia Lỗ hổng này xuất hiện bởi vì trao đổi khóa Diffie-Hellman không xác thực những người tham gia

Hình 2.1: Tấn công Man-in-the-middle

Trang 17

Nhóm 5 10

Tiến trình tấn công diễn ra như sau:

1 Alice chọn một số ngẫu nhiên x đủ lớn và tính toán R 1 = gx mod p rồi gửi giá trị R 1

đến Bob qua đường truyền, giá trị x được giữ bí mật

2 Eve chặn bản tin và thu được R 1, lựa chọn một số ngẫu nhiên z đủ lớn và tính toán

R2= gz mod p, sau đó gửi giá trị R 2 đến Bob và Alice

3 Bob nhận được giá trị R 2, xem đó là giá trị mà Alice gửi đến Bob lựa chọn một số

ngẫu nhiên y đủ lớn và tính toán R 3 = gy mod p, sau đó gửi giá trị R 3 đến cho Alice nhưng bị Eve chặn lại

4 Alice tính toán K1 = (R2)x mod p

5 Eve tính toán K1 = (R1)z mod p, K2 = (R3)z mod p

6 Bob tính toán K2 = (R2)y mod p

Khóa đối xứng cho phiên làm việc này là K 1 và K 2 K 1 = g xz mod p là khóa giữa

Alice-Eve, K 2 = g yz mod p là khóa giữa Eve-Bob

Do đó, giải thuật rõ ràng là dễ bị tấn công bởi kẻ tấn công ở giữa vì tính toàn vẹn của bản tin cũng như tính xác thực của người tham gia bị vi phạm Để giải quyết vấn đề này, cần một quy trình xác thực để đảm bảo rằng, bất cứ khi nào Alice muốn gửi bản tin đến Bob, người nhận chỉ có thể là Bob chứ không phải Eve và ngược lại Điều quan trọng hơn nữa là cần loại bỏ các khóa sau khi sử dụng, để không có các khóa lâu dài có thể bị tiết lộ gây ra sự cố trong tương lai Các mối quan tâm khác trong việc ngăn chặn kiểu tấn công này thường xoay quanh việc tối ưu hóa toán học Đó là cần lựa chọn các giá trị cẩn trọng, yêu cầu chúng đủ lớn để Eve không thể tính toán tìm ra giá trị được bọn, và đủ ngẫu nhiên

để có thể làm giảm đáng kể việc Eve dự đoán để tìm ra các giá trị đó

Một số giải pháp để ngăn chặn cuộc tấn công Man-in-the-middle đã được đưa ra, đó là:

(1) Sử dụng chữ ký số

Chữ ký số được sử dụng để ký các văn bản điện tử Chữ ký số cung cấp ba dịch vụ bảo mật còn lại: xác thực, toàn vẹn và không thoái thác Chúng tương tự như chữ ký viết tay Nếu Alice ký một tài liệu bằng chữ ký viết tay của cô ấy, thì tất cả những ai xem tài liệu và biết chữ ký của Alice đều có thể xác minh rằng Alice thực sự đã ký vào tài liệu đó Về

nguyên tắc, chữ ký số hoạt động như sau: giả sử rằng Alice muốn ký bản rõ m Cô ấy sử dụng một khóa bí mật d và tính toán chữ ký s Sử dụng khóa công khai tương ứng e, Bob

có thể xác minh rằng đó thực sự là chữ ký của bản rõ m Sơ đồ chữ ký số DSA bao gồm DSA = (DSA.key, DSA.gen, DSA.ver) DSA.key tạo một cặp khóa công khai/khóa bí mật cho mỗi bên Nghĩa là, một khóa công khai bao gồm một số nguyên tố p, một số q cũng là một số nguyên tố, một bộ sinh g và y Khóa bí mật là x sao cho y = g x mod p DSA.gen tạo

chữ ký (r, s) cho bản rõ m với khóa bí mật x sao cho r = ((g k mod p) mod q) và s = (k −1 (H (m) + xr)) mod p, với k là giá trị ngẫu nhiên và H là hàm băm DSA.ver xác minh cặp

chữ ký (m, r, s) với khóa công khai y và trả về 1 nếu hợp lệ hoặc 0 nếu không Nghĩa là, thuật toán kiểm tra 0 < r, s < q và ((gH (m) S −1yrs − 1) mod p) mod q =r

Trang 18

Nhóm 5 11

Mặc dù Eve có thể chặn các bản tin giữa Alice và Bob nhưng cô ấy không thể giả mạo chữ ký mà không có khóa bí mật của Alice và khóa bí mật của Bob Do đó, việc sử dụng chữ ký số có thể đánh bại cuộc tấn công man-in-the-middle

rõ, được gọi là bản tóm tắt, được mã hóa bằng bí mật của bản tóm tắt, sau đó sử dụng bản

mã đã nhận được so sánh với bản tóm tắt sau khi được giải mã Nếu hai mã giống hệt nhau,

có thể khẳng định rằng người gửi đã được xác thực Điều này hơi giống với việc phát hiện lỗi bằng cách sử dụng bit chẵn lẻ

(3) Xác thực người dùng

Xác thực người dùng khác với xác thực bản rõ vì khi thực hiện xác thực bản rõ thì danh tính của người gửi được xác minh cho mỗi và mọi bản rõ Mặt khác, xác thực người dùng chỉ được thực hiện một lần trong suốt thời gian truy cập hệ thống

(4) Sử dụng khóa quản trị (admin key)

Một giải pháp khác được đề xuất là Alice và Bob có thể tạo các khóa công khai mà không cần gửi chúng ở dạng văn bản thuần túy bằng cách sử dụng dữ liệu thu được từ máy chủ, bản rõ sẽ được máy chủ thực hiện băm hoặc mã hóa, dữ liệu sẽ được máy chủ kiểm soát Mặc dù một số người có thể tranh luận rằng Eve có thể xâm phạm tất cả dữ liệu trên các kênh, nhưng điều đó sẽ không đủ để kẻ tấn công này có được khóa công khai, tất cả dữ liệu sẽ được băm và mã hóa bởi máy chủ Ngoài ra, khóa bí mật sẽ không bao giờ được gửi cho bất kỳ bên nào Nếu kẻ tấn công ăn cắp khóa bí mật từ máy chủ, nó sẽ không hữu ích cho chúng vì toàn bộ khóa bí mật trong máy chủ đều được mã hóa bằng khóa quản trị (admin key) Điều này mang lại mức độ bảo mật cao và giúp ngăn chặn các cuộc tấn công Man-in-the-middle trong Diffie-Hellman

số nguyên tố 512 bits có thể tấn công quá trình bắt tay DHE_EXPORT với khoảng 8% các trang web phổ biến nhất trong 1 triệu HTTPS hàng đầu Với tấn công Logjam, kẻ tấn công

Ngày đăng: 26/02/2023, 15:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w