Lời Mở Đầu Trao đổi thông tin luôn là nhu cầu cần thiết của con người,đặc biệt là trong cuộc sống hiện đại ngày nay khi mà mạng máy tính và Internet phát triển một cách mạnh mẽ và đóng v
Trang 1- -
TIỂU LUẬN MÔN HỌC
AN NINH MẠNG THÔNG TIN
(TELL1401M)
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG 1
ĐỀ TÀI: TRAO ĐỔI KHÓA DIFFIE-HELLMAN VÀ PHÂN TÍCH
TÍNH AN TOÀN CỦA THUẬT TOÁN
Trang 2
1.1 Lịch sử Diffie-Hellman 1.2 Quy trình thiết lập và trao đổi khóa 1.3 Quy trình mã hóa và giải mã
2.1 Ưu điểm Diffie-Hellman
2.2 Nhược điểm Diffie-Hellman
3.Ứng dụng của thuật toán Diffie-Hellman
4 Phân tích tính an toàn của thuật toán
Trang 3Mục lục
Danh Mục Bảng Biểu i
Danh Mục Các Hình Vẽ i
Lời Mở Đầu ii
I.TỔNG QUAN TRAO ĐỔI KHÓA DIFFIE-HELLMAN 1
1.1 Lịch sử thuật toán Diffie-Hellman 1
1.2 Quy trình thiết lập và trao đổi khóa 2
1.2.1 Ý tưởng cơ bản 2
1.2.2 Giải thích toán học 3
1.3 Quy trình mã hóa và giải mã 6
II ƯU NHƯỢC ĐIỂM CỦA THUẬT TOÁN DIFFIE-HELLMAN 8
2.1.Ưu điểm 8
2.2.Nhược điểm 8
2.2.1.Kẻ tấn công ở giữa (Man-in-the-middle) 8
2.2.2.Tấn công Logjam 10
2.2.3.Các hạn chế khác 13
III.ỨNG DỤNG CỦA THUẬT TOÁN DIFFIE-HELLMAN 13
3.1.Giao thức lớp cổng bảo mật (SSL) 13
3.2.Giao thức bảo mật lớp truyền tải TLS 14
3.3.Vỏ an toàn SSH 16
3.4.Cơ sở hạ tầng khóa công khai (PKI) 17
IV PHÂN TÍCH TÍNH AN TOÀN CỦA GIẢI THUẬT 18
4.1.Tại sao trao đổi khóa Diffie-Hellman lại an toàn? 18
4.2.Xác thực và trao đổi khóa Diffie-Hellman 18
4.3.Các biến thể của trao đổi khóa Diffie-Hellman 18
4.4.Trường hợp sử dụng thuật toán mất an toàn 20
Kết Luận 21
Tài Liệu Tham Khảo 22
Trang 4Danh Mục Bảng Biểu
Bảng 1.1:Tham số tấn công bị động 6
Bảng 2.1: Tỷ lệ các máy chủ bị ảnh hưởng bởi Logjam………………13
Danh Mục Các Hình Vẽ Hình 1.1: Whitfield Diffie và Martin Hellman 1
Hình 1.2: Ý tưởng trao đổi khóa Diffie-Hellman 2
Hình 1.3: Quy trình trao đổi khóa Diffie-Hellman 3
Hình 1.4: Quy trình mã hóa và giải mã 7
Hình 2.1: Tấn công Man-in-the-middle 9
Hình 2.2: Tấn công Logjam 12
Trang 5Lời Mở Đầu
Trao đổi thông tin luôn là nhu cầu cần thiết của con người,đặc biệt là trong cuộc sống hiện đại ngày nay khi mà mạng máy tính và Internet phát triển một cách mạnh mẽ và đóng vai trò quan trọng trong mọi lĩnh vực của đời sống xã hội như:Chính trị,quân sự,kinh doanh,học tập…Tất cả những thông tin liên quan đến những công việc này đều được máy tính quản lý và truyền đi trên hệ thống mạng.Đối với những thông tin bình thường thì không
ai chú ý đến,nhưng đối với những thông tin mạng mang tính chất sống còn của một cá nhân hay một tổ chức thì vấn đề bảo mật thông tin là rất quan trọng và được đặt lên hàng đầu.Vì vậy thuật toán Diffie-Hellman rất thích hợp trong truyền thông tin dữ liệu có tính bảo mật cao.Trong một thời đại khi mà các công nghệ "cũ" dần không còn được sử dụng lâu dài, thì thuật toán Diffie-Hellman vẫn đóng vai trò chủ chốt trong các giao thức quan trọng trên Internet suốt 25 năm.Diffie-Hellman là một phương thức trao đổi bảo mật cho phép hai bên tạo ra một bí mật chia sẻ giống nhau trên cả hai hệ thống trong thời gian thực, trên một mạng lưới không tin cậy, thậm chí các bên có thể chưa bao giờ truyền thông với nhau trước đây Vì thế, nó được sử dụng bởi nhiều giao thức, bao gồm Secure Sockets Layer (SSL), Secure Shell (SSH) Nội dung của bài tiểu luận bao gồm bốn phần:
Phần I: 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
Phần II: Ưu nhược điểm của thuật toán Diffie-Hellman phân tích về ưu điểm và
các hạn chế của thuật toán, và nêu ra một số biện pháp khắc phục
Phần III: Ứng dụng của thuận toán Diffe-Hellman giới thiệu các ứng dụng của thuật toán vào các giao thức bảo mật như SSL, TLS, SSH, PKI
Phần IV: Phân tích tính an toàn của thuật toán phân tích tính an toàn và không
an toàn của thuật toán
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 thầy có thể xem và góp ý để chúng em rút kinh nghiệm
Trang 6I.TỔNG QUAN TRAO ĐỔI KHÓA DIFFIE-HELLMAN
1.1 Lịch sử thuật toán Diffie-Hellman
Hình 1.1: Whitfield Diffie và Martin 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ả 2 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
Trang 7xứ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.2 Quy trình thiết lập và trao đổi khóa
1.2.1 Ý tưởng cơ bản
Hình 1.2: Ý tưởng trao đổi khóa Diffie-Hellman
1 Ngay khi bắt đầu trao đổi khóa Diffie-Hellman, Alice và Bob sẽ phải thỏa thuận chung một vài tham số toán học mà họ sẽ sử dụng, gồm 2 số nguyên công khai (màu vàng) Đồng thời mỗi người sẽ tạo một khóa bí mật riêng "private key" (màu đỏ của Alice và xanh ngọc của Bob)
2 Từ 2 số nguyên này kết hợp với khóa bí mật, mỗi người sẽ tính toán ra khóa công khai "public key" của mình (màu cam của Alice và màu xanh lam của Bob) Sau đó thực hiện trao đổi khóa công khai với nhau
3 Cuối cùng, Alice sẽ sử dụng khóa công khai mà Bob gửi cho cô ấy (xanh lam-tổng
hợp của vàng và xanh ngọc) kết hợp với khóa bí mật riêng của mình (màu đỏ), Bob
Trang 8cũng thực hiện tương tự (cam-tổng hợp của vàng và đỏ kết hợp với xanh ngọc) Cả
Bob và Alice sẽ cùng được một khóa bí mật chung "common secret key" (tổng hợp
từ 3 màu vàng, đỏ, xanh ngọc) Đến đây, hoạt động trao đổi khóa Diffie-Hellman
xem như hoàn tất
1.2.2 Giải thích toán học
1.2.2.1 Quy trình thực tế
Hình 1.3: 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:
Trang 98 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
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.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)
Trang 10- 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
b) Tính chất và ứng dụng của căn nguyên thủy
Từ ví dụ trên ta thấy chu kỳ lặp lại của 2k mod 5 là bốn (20 đến 22 là một chu kỳ) Như vậy nếu g là một căn nguyên thủy của p và p là số nguyên tố, chu kỳ lặp lại sẽ là p-1 Nói cách khác, căn nguyên thủy là một số mà lũy thừa của nó tạo ra liên tiếp các số nguyên
tố cùng nhau với p, ngoại trừ số 0 Vì tính chất này nên căn nguyên thủy đặc biệt phù hợp với các ứng dụng mật mã hóa, điển hình là Diffie-Hellman Trong Diffie-Hellman, căn nguyên thủy cho một lượng lớn 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 rất tốt cho việc bảo mật
c) Bài toán logarit rời rạc trong Diffie-Hellman
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
Trang 11- Đặt a = khóa riêng tư của Alice
Biết Không biết Biết Không biết Biết Không biết
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
1.3 Quy trình mã hóa và giải mã
Trang 12Hình 1.4: Quy trình mã hóa và giải mã
Khóa bí mật chung "common secret key" có thể được sử dụng để mã hóa dữ liệu (bản rõ) 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
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ể
Trang 13đượ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
II ƯU NHƯỢC ĐIỂM CỦA THUẬT TOÁN DIFFIE-HELLMAN
2.1.Ưu điểm
Ưu điểm của thuật toán Diffie Hellman là tính bảo mật cao vì việc giải các phép toán logarit rời rạc để tìm khóa bí mật là rất khó khăn và khóa bí mật không bao giờ được truyền qua kênh truyền Giá trị được chọn để làm khóa bí mật là khá phức tạp Khi có kẻ tấn công theo dõi các bản tin trên đường truyền, khả năng tìm ra khóa bí mật từ những thông tin công khai thu được là rất rất thấp.Việc kẻ tấn công thực hiện quá trình đảo ngược để tìm ra thuật toán tạo khóa bí mât hoặc khóa bí mật là rất khó vì người dùng tạo ra khóa bí mật của mình
ở ngay đầu cuối của họ
2.2.Nhược điểm
2.2.1.Kẻ tấn công ở giữa (Man-in-the-middle)
Man-in-the-middle là một kiểu tấn công bí mật xảy ra khi kẻ tấn công tự nhét mình vào một phiên giao tiếp giữa người với người hoặc người với hệ thống (thường là trình duyệt web và máy chủ web) Một kịch bản Man-in-the-middle có ba đối tượng tham gia: Nạn nhân, đối tượng mà nạn nhân đang cố gắng kết nối tới, và kẻ tấn công ở giữa Kẻ tấn công đã chặn kết nối của nạn nhân và nạn nhân không nhận thức được kẻ này, đây là sự điều kiện tiên quyết cho kịch bản đánh cắp này
Chi tiết hơn, kẻ tấn công sẽ mạo danh cả hai bên và có được quyền truy cập vào thông tin mà hai bên đang cố gắng gửi cho nhau Kẻ tấn công có thể chặn, gửi và nhận dữ liệu dành cho cả hai bên, mà không có bên nào biết cho đến khi quá muộn Ngoài các website, các cuộc tấn công này có thể chuyển mục tiêu đến liên lạc qua email, tìm kiếm DNS và mạng WiFi công cộng Các đối tượng tiêu biểu của Man-in-the-middle bao gồm: Các doanh nghiệp thương mại điện tử và người dùng các ứng dụng tài chính
Những kẻ tấn công Man-in-the-middle cũng sẽ sử dụng phần mềm độc hại với hy vọng tạo ra các cỗ máy gây hại hoặc xây dựng mạng lưới rộng lớn Man-in-the-middle có thể được sử dụng như một cách để thực hiện đe dọa liên tục nâng cao (APT - Advanced
Trang 14Persistent Threat) Các tổ chức/người dùng không biết dữ liệu của họ đã bị giả mạo cho đến khi quá muộn Do đó, nếu Man-in-the-middle thành công, có thể gây ra những thiệt hại nặng nề
Phiên bản tiêu chuẩn của giao thức Diffie Hellman không xác thực người tham gia khi cơ chế trao đổi khóa diễn ra, do đó rất khó phát hiện sự tấn công của kẻ gian Trong Man-in-the-middle, kẻ tấn công đang hoạt động (Eve) có đủ năng lực để tấn công quá trình trao đổi khóa Trong cuộc trò chuyện, Eve có thể gửi, sửa đổi hoặc xóa tin nhắn được trao đổi giữa hai bên Để làm điều đó, Eve sử dụng khóa công khai E + của mình và tương tác với Alice và Bob Trong khi Alice và Bob giả định rằng họ đã chia sẻ khóa bí mật tương ứng với nhau (xem Hình 2.1) Điều này có thể xảy ra do thiếu các bước xác thực trong giao thức trao đổi khóa Diffie Hellman
Hình 2.1: Tấn công Man-in-the-middle
Để hiểu được cuộc tấn công này, giả sử trường hợp Alice gửi thông điệp bí mật của mình cho Bob, Eve là kẻ tấn công ở giữa Tiến trình tấn công diễn ra như sau:
Trang 15(1) Alice chọn một số ngẫu nhiên x đủ lớn và tính toán R1 = gx mod p rồi gửi giá trị
R1 đến Bob qua đường truyền, giá trị x được giữ bí mật
(2) Eve chặn tin nhắn và thu được R1, 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ị R2 đến Bob và Alice
(3) Bob nhận được giá trị R2, 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 R3 = gy mod p, sau đó gửi giá trị R3 đế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à K1 và K2 K1 = gxz mod p là khóa giữa Alice-Eve, K2= gyz mod p là khóa giữa Eve-Bob
Do đó, giao thức rõ ràng là dễ bị tấn công đối bởi kẻ tấn công ở giữa vì tính toàn vẹn của thông báo và cũng như xác thực của người tham gia bị vi phạm Ta có thể giải quyết vấn đề này bằng việc sử dụng chữ kí số và chứng nhận khóa công khai
2.2.2.Tấn công Logjam
Logjam là một kiểu tấn công chủ động được phát hiện trong hệ thống mã hóa TLS năm 2015 Nó cho phép sử dụng thực hiện một cuộc tấn công Man-in-the-Middle để xâm nhập vào các kết nối đã được mã hóa giữa người dùng với một dịch vụ web hay email, máy chủ sử dụng khóa 512-bit.Hacker có thể lợi dụng lổ hổng để hạ cấp mã hóa kết nối từ 1024-bit xuống 512-bit, từ đó tấn công nghe lén Man-in-the-Middle Những kẻ tấn công có khả năng theo dõi kết nối giữa người dùng cuối và máy chủ sử dụng cơ chế trao đổi khóa Diffie-Hellman, nhưng lại hỗ trợ các thuật toán mã hóa yếu (được phép xuất khẩu ra ngoài nước Mỹ) sẽ có thể chèn đoạn mã đặc biệt vào luồng thông tin trao đổi để "hạ cấp" việc mã hóa xuống mức cực kỳ yếu là dùng khóa 512-bit Bằng cách sử dụng dữ liệu đã được tính toán
từ trước, những kẻ tấn công có thể xác định được khóa mã hóa do hai bên (người dùng và máy chủ) thỏa thuận sử dụng