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

Ứng dụng của giao thức trao đổi khóa diffie – hellman

20 16 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Ứng dụng của Giao thức Trao đổi Khóa Diffie – Hellman
Người hướng dẫn Phạm Anh Thư
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 Viễn Thông
Thể loại Báo cáo Tiểu luận
Định dạng
Số trang 20
Dung lượng 801,09 KB

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 thi cuối kì môn ANM HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA VIỄN THÔNG 1 BÁO CÁO TIỂU LUẬN ỨNG DỤNG CỦA GIAO THỨC TRAO ĐỔI KHÓA DIFFIE – HELLMAN MÔN AN NINH MẠNG VIỄN THÔNG Giảng viên hướng d[.]

Trang 1

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

KHOA VIỄN THÔNG 1

BÁO CÁO TIỂU LUẬN ỨNG DỤNG CỦA GIAO THỨC TRAO ĐỔI KHÓA

DIFFIE – HELLMAN

MÔN: AN NINH MẠNG VIỄN THÔNG

Trang 2

BẢNG PHÂN CÔNG NHIỆM VỤ

- Giải thuật trao đổi khóa Diffie-Hellman

- Ứng dụng của Diffie-Hellman trong SSH

- Tính an toàn trong tấn công chủ động

- Ứng dụng của Diffie - Hellman trong xác thực mật khẩu và khóa công khai

- Tính an toàn trong tấn công thụ động

- Bắt tay TLS bằng cách sử dụng Diffie-Hellman

Trang 3

MỤC LỤC

BẢNG PHÂN CÔNG NHIỆM VỤ 2

LỜI NÓI ĐẦU 4

DANH MỤC BẢNG BIỂU 5

DANH MỤC HÌNH VẼ 5

THUẬT NGỮ VIẾT TẮT 6

I GIỚI THIỆU GIAO THỨC TRAO ĐỔI KHÓA DIFFIE – HELLMAN 7

1.1 Khái niệm trao đổi khóa 7

1.2 Giao thức trao đổi khóa Diffie – Hellman 7

II CÁC ĐẶC TRƯNG CỦA GIAO THỨC TRAO ĐỔI KHÓA 11

DIFFIE - HELLMAN 11

2.1 Giao thức là an toàn đối với tấn công thụ động 11

2.2 Giao thức là không an toàn đối với tấn công chủ động 11

III ỨNG DỤNG CỦA GIAO THỨC TRAO ĐỔI KHÓA 13

DIFFIE - HELLMAN 13

3.1 Trao Đổi Khóa Bằng Xác Thực Mật Khẩu 13

3.2 Khóa Công Khai 14

3.3 Ứng dụng trong SSH 14

3.4 Bắt tay TLS bằng cách sử dụng Diffie - Hellman 15

IV KẾT LUẬN 18

TÀI LIỆU THAM KHẢO 19

Kết quả kiểm tra DOIT 20

Trang 4

LỜI NÓI ĐẦ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à giữ 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ự, học tập, mua sắm, kinh doanh, … 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 Do đó xuất hiện nhu cầu về an toàn và bảo mật thông tin trên máy tính và không gian mạng Hiện nay có rất nhiều tổ chức, cá nhân đã nghiên cứu, tìm kiếm và đưa ra rất nhiều giải pháp bảo mật thông tin dữ liệu và có tính bảo mật khá cao Trong đó các giao thức mật mã hóa khóa đóng một vai trò hết sức quan trọng

Trong báo cáo này, nhóm chúng em tìm hiểu về đề tài “Ứng dụng của giao thức trao đổi khóa Diffie – Hellman”

Sau thời gian tham khảo giáo trình cũng như tìm hiểu trên mạng, cùng với sự đóng góp tích cực của tất cả các thành viên trong nhóm, chúng em đã hoàn thành bài báo cáo

và trình bày thành 4 phần Thông qua việc giới thiệu tổng quan, trình bày khái niệm, cách thiết lập, sơ đồ và phần minh họa, chúng ta có thể hiểu rõ hơn về ưu, nhược điểm cũng như cách thức hoạt động của giao thức trao đổi khóa Diffie – Hellman

Phần I: Giới thiệu giao thức trao đổi khóa Diffie – Hellman

Phần II: Các đặc trưng của giao thức trao đổi khóa Diffie – Hellman

Phần III: Ứng dụng của giao thức trao đổi khóa Diffie – Hellman

Phần IV: Kết luận

Mặc dù nhóm đã rất cố gắng song vẫn không tránh khỏi một số thiếu sót Nhóm rất mong thầy cô và các bạn đóng góp ý kiến để hoàn thiện hơn báo cáo này

Chúng em xin chân thành cảm ơn!

Trang 5

DANH MỤC BẢNG BIỂU

Bảng 1.1: Mô tả cách tính toán 7

Bảng 1.2: Mô tả giao thức trao đổi khóa Diffie - Hellman 8

Bảng 2.1: Tổng hợp thông tin của các bên 11

DANH MỤC HÌNH VẼ Hình 1.1: Sơ đồ giao thức trao đổi khóa Diffie - Hellman 9

Hình 1.2: Sơ đồ trao đổi khóa giữa 3 người 9

Hình 2.1: Mô hình kẻ tấn công ở giữa 12

Hình 3.1: Hoạt động của trao đổi khóa bằng xác thức mật khẩu 13

Hình 3.2: Quá trình gửi tin sử dụng khóa công khai 14

Hình 3.3: Mô tả giao thức SSH 15

Hình 3.4: Các tham số chứng thực 16

Hình 3.5: Quá trình bắt tay TLS giữa client và server 17

Trang 6

THUẬT NGỮ VIẾT TẮT

CRL Certificate revocation list Danh sách thu hồi chứng

chỉ

key agreement

Thỏa thuận khóa xác thực bằng mật khẩu

Trang 7

I GIỚI THIỆU GIAO THỨC TRAO ĐỔI KHÓA DIFFIE – HELLMAN 1.1 Khái niệm trao đổi khóa

Là việc trao đổi khoá giữa các chủ thể trong một cộng đồng nào đó có thể được thiết lập một cách tự do giữa bất cứ hai người nào khi có nhu cầu trao đổi thông tin Trong quá trình phát triển của mật mã học, Diffie - Hellman là một phương pháp trao đổi khóa được phát minh sớm nhất Theo cách truyền thống, thông tin liên lạc được mã hóa an toàn giữa hai bên yêu cầu trước tiên họ phải trao đổi khóa bằng một số phương tiện vật lý an toàn, chẳng hạn như danh sách khóa được vận chuyển bởi một đơn vị chuyển phát đáng tin cậy Phương thức trao đổi khóa Diffie – Hellman cho phép hai bên không có kiến thức trước về nhau cùng thiết lập khóa bí mật được chia sẻ trên một kênh không an toàn Sau đó, khóa này có thể được sử dụng để mã hóa các giao tiếp tiếp theo bằng cách sử dụng mật mã khóa đối xứng

1.2 Giao thức trao đổi khóa Diffie – Hellman

Giao thức trao đổi khóa Diffie - Hellman tuy không khó khăn về mặt ý tưởng tuy nhiên lại rất nặng về khâu tính toán do các số được chọn rất lớn (khuyến nghị độ dài ít nhất là 2048 bit) khiến việc tính toán trở nên khó khăn

❖ Tình huống:

- Alice và Bob muốn chia sẻ thông tin bảo mật cho nhau nhưng phương tiện truyền thông duy nhất của họ là không an toàn Tất cả các thông tin mà họ trao đổi được quan sát bởi Darth kẻ theo dõi họ

- Làm thế nào để Alice và Bob chia sẻ thông tin bảo mật cho nhau mà không làm cho Darth biết được?

❖ Giải quyết tình huống:

Giao thức trao đổi khóa Diffie - Hellman cho 2 người Alice và Bob:

• Bước 1: Alice và Bob chọn 2 số nguyên tố p và căn nguyên thủy của p là g

▪ Căn nguyên thủy: nếu n ≥ 1 là số nguyên thì các số nguyên tố cùng nhau với n tạo thành 1 nhóm với phép nhân module n, được ký hiệu

là Zn Nhóm này là nhóm cyclic nếu n bằng 1, 2, 4, pk hoặc 2pk với 1

số nguyên tố p ≥ lũy thừa k ≥ 1 Một phần tử sinh của nhóm cyclic này được gọi là một căn nguyên thủy module n

▪ Ví dụ: Lấy n = 14 ta có Zn = {1, 3, 5, 9, 11, 13}

P P mod 14 P2 mod 14 P3 mod 14 P4 mod 14 P

5 mod

14

P6 mod

14

Bảng 1.1: Mô tả cách tính toán

Trang 8

Ta thấy chỉ có 3 và 5 là có số các giá trị bằng số các lớp đồng dư (= 6) nên

3 và 5 là căn nguyên thủy của 14

• Bước 2: Alice chọn số bí mật a và tính A = ga mod p rồi gửi A cho Bob

• Bước 3: Bob chọn số bí mật b và tính B = gb mod p rồi gửi B cho Alice

• Bước 4: Alice nhận B từ Bob rồi tính S = Ba mod p

• Bước 5: Bob nhận A từ Alice rồi tính S = Ab mod p Khi đó cả Alice và Bob đều chia sẻ chung 1 khóa bí mật S

Để cho dễ hình dung ta sẽ lập bảng mô tả của giao thức trao đổi khóa Diffie - Hellman như sau:

Alice

Kênh truyền

Bob

khai

Công

a mod p

A =>

<= B B, p, g

gb mod p

a

S = Ab

Bảng 1.2: Mô tả giao thức trao đổi khóa Diffie-Hellman

- Ví dụ:

• Bước 1: Cả 2 thống nhất chọn số nguyên tố p = 23 và căn nguyên thủy g

= 9 (lấy căn nguyên thủy nhỏ do đây là ví dụ, trên thực tế số đó dài ít nhất 2048 bit)

• Bước 2: Alice chọn số bí mật a = 4

Alice tính A = ga mod p = 94 mod 23 = 6 rồi gửi cho Bob

• Bước 3: Bob chọn số bí mật b = 3

Bob tính B = gb mod p = 93 mod 23 = 16 rồi gửi cho Alice

• Bước 4: Alice nhận B của Bob và tính S = Ba mod p = 164 mod 23 = 9

• Bước 5: Bob nhận A của Alice và tính S = Ab mod 9 = 63 mod 23 = 9 Như vậy, cả 2 đều có 1 khóa bí mật chung là S = 9

Trang 9

❖ Sơ đồ giao thức trao đổi khóa Diffie – Hellman:

Hình 1.1: Sơ đồ giao thức trao đổi khóa Diffie-Hellman

❖ Giải thuật trao đổi khóa Diffie-Hellman cũng có thể sử dụng để trao đổi khóa giữa 3 người với nhau

- Sơ đồ trao đổi khóa giữa 3 người:

Hình 1.2: Sơ đồ trao đổi khóa giữa 3 người

Trang 10

• Bước 1: cả 3 người cùng thống nhất 1 số nguyên tố và 1 căn nguyên thủy

của số đó

• Bước 2: Alice chọn số bí mật của mình là a

Alice tính A = ga mod p và gửi A cho Bob

• Bước 3: Bob chọn số bí mật của mình là b

Bob tính B = gb mod p và gửi B cho Cater

• Bước 4: Cater chọn số bí mật của mình là c

Cater tính C = gc mod p và gửi C cho Alice

• Bước 5: Alice nhận được C của Cater và tính CA = Ca mod p rồi gửi AC cho Bob

• Bước 6: Bob nhận được A của Alice và tính AB = Ab mod p rồi gửi AB cho Cater

• Bước 7: Cater nhận được B của Bob và tính BC = Bc mod p rồi gửi BC cho Alice

• Bước 8: Alice nhận BC của Cater và tính S = BCa mod p

• Bước 9: Bob nhận CA của Alice và tính S = CAb mod p

• Bước 10: Cater nhận AB của Cater và tính S = ABc mod p

Như vậy, cả Alice, Bob và Cater đều chia sẻ 1 khóa bí mật chung là S

Trang 11

II CÁC ĐẶC TRƯNG CỦA GIAO THỨC TRAO ĐỔI KHÓA

DIFFIE - HELLMAN 2.1 Giao thức là an toàn đối với tấn công thụ động

Trước tiên ta xét một quá trình trao đổi khóa giữa Alice và Bob như sau:

• Bước 1: Alice và Bob thống nhất một giá trị nguyên tố p = 353 và g = 3

• Bước 2: Alice lựa chọn một giá trị ngẫu nhiên a (là bí mật), ở đây chọn a = 97

Sau đó tính A = 397 mod 353 = 40 rồi tiến hành gửi A = 40 sang cho Bob

• Bước 3: Phía bên Bob cũng chọn một giá trị ngẫu nhiên b (là bí mật), ở đây chọn

b = 233 Sau đó, tính B = 3233mod 353 = 248 rồi gửi cho Alice

• Bước 4: Bob nhận được giá trị A = 40 và tính được khóa bí mật chung: Ka

= 40233mod 353 = 160 Tương tự phía bên Alice cũng nhận được giá trị B = 248 rồi tính được khóa bí mật chung: Kb = 24897 mod 353 = 160

- Darth là một kẻ nghe trộm, hắn theo dõi những gì Alice và Bob gửi cho nhau nhưng không thể thay đổi nội dung các cuộc liên lạc

Bảng 2.1: Tổng hợp thông tin của các bên

- Vì quá trình truyền khóa là công khai nên một kẻ nghe lén Darth có thể dễ dàng theo dõi được những gì Alice và Bob trao đổi với nhau Phía bên Darth có thể biết được giá trị như p, g, A, B để từ đó có thể tìm ra các giá trị của Ka, Kb

- Về mặt lý thuyết nếu các giá trị a, b và p nhỏ thì có thể hoàn toàn có thể giải được bài toán Diffie - Hellman Tuy nhiên trong thực tế thì các giá trị này là rất lớn, ví

dụ như số p có ít nhất 300 chữ số cùng với đó số a và b có ít nhất 100 chữ số thì thuật toán tốt nhất hiện nay cũng khó có thể giải được nếu chỉ biết p, g, A, B

- Vì vậy cho nên giao thức này là an toàn đối với việc tấn công thụ động

2.2 Giao thức là không an toàn đối với tấn công chủ động

Giả sử Alice và Bob muốn trao đổi khóa và Darth là kẻ tấn công ở giữa Việc tấn công sẽ diễn ra như hình sau :

Trang 12

Hình 2.1: Mô hình kẻ tấn công ở giữa

Trước khi tấn công, Darth chuẩn bị trước bằng việc tạo ra 2 khóa ngẫu nhiên XD1

và XD2 Sau đó tính toán ra khóa công khai tương ứng là YD1 và YD2

cũng tính toán K2

tính toán K1

- Ở đây Bob và Alice đều nghĩ rằng họ chia sử một khóa bí mật nhưng thay vào đó là Bob và Darth chia sẻ khóa bí mật K1, Darth và Alice chia sẻ khóa

bí mật K2

- Giao thức trao đổi khóa có thể bị tấn công bởi vì nó không có sự nhận thực giữa các bên tham gia Để giải quyết vấn đề này, người dùng có thể sử dụng chữ ký số hoặc chứng thực khóa công khai

Trang 13

III ỨNG DỤNG CỦA GIAO THỨC TRAO ĐỔI KHÓA

DIFFIE - HELLMAN 3.1 Trao Đổi Khóa Bằng Xác Thực Mật Khẩu

- Giao thức trao đổi khóa có thể bị tấn công bởi vì nó không có sự nhận thực các bên tham gia Điển hình như đã nêu ở chương II là vấn đề “Kẻ tấn công ở giữa”

Do đó để có thể chia sẻ mật khẩu an toàn giữa bên nhận và gửi tin chúng ta có thể sử dụng dạng “Trao đổi khóa bằng xác thực mật khẩu” (PAKE) của giao thức trao đổi khóa Diffie-Hellman

- PAKE sử dụng phần tử sinh α làm mật khẩu Đặc điểm của cách này là kẻ tấn công chỉ có thể thử một mật khẩu duy nhất trong mỗi lần tương tác với một bên,

do đó hệ thống này có thể cung cấp khả năng bảo mật tốt ngay cả với một mật khẩu tương đối yếu

Hình 3.1: Hoạt động của trao đổi khóa bằng xác thức mật khẩu

Quá trình thực hiện của của hình 3.1 như sau:

• Bước 1: Alice và Bob đồng ý lựa chọn một số nguyên tố an toàn q lớn và phần

tử sinh α (α được xây dựng bằng hàm băm H(π) với mật khẩu dùng chung π)

• Bước 2: Số bí mật XA được Alice chọn để tính toán khóa công khai theo công

thức A = αXA mod q

• Bước 3: Alice thực hiện gửi khóa công khai A cho Bob

• Bước 4: Bob lựa chọn một số bí mật XB sau đó thực hiện tính toán khóa công

khai theo công thức B = αXB mod q Với thông tin khóa công khai A mà Alice gửi Bob tính được khóa bí mật theo công thức K = AXB mod q

• Bước 5: Bob gửi khóa công khai B cho Alice Alice và Bob sẽ tự động hủy các

kết quả nhận được của họ nếu các giá trị nhận được không giống thỏa thuận ban đầu

• Bước 6: Alice thức hiện tính toán khóa bí mật theo công thức K = BXA mod q Quá trình trao đổi khóa bằng xác thực mật khẩu kết thúc

Trang 14

3.2 Khóa Công Khai

Người ta cũng có thể sử dụng Diffie–Hellman như là một phần của hạ tầng khóa công khai

Hình 3.2: Quá trình gửi tin sử dụng khóa công khai

Quá trình hoạt động của hình 3.2 được mô tả như sau:

- Khóa công khai của Alice được đặt là αXA mod q Để gửi một thông điệp tới Alice Bob lựa chọn một số bí mật ngẫu nhiên XB và gửi Alice khóa công khai

αXB mod q (không mã hóa) cùng với bản tin được mã hóa với khóa đối xứng (αXA)

XB mod q được tạo ra bằng khóa công khai của Alice và khóa bí mật XB của Bob Bản tin mã hóa được gửi tới Alice và chỉ có Alice mới có mã riêng XA để thực hiện giải mã

- Trong thực tế giao thức Diffie – Hellman không được sử dụng theo cách này do

nó không thể dùng để ký chứng thực Thay vào đó thuật toán mã hóa công khai được sử dụng phổ biến nhất hiện nay là RSA RSA là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa và đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện

độ dài khóa đủ lớn Tuy nhiên với yếu tố lịch sử của mình mà giao thức Diffie – Hellman là tiền đề cho sự ra đời của các hệ mật mã mới, tiêu biểu như hệ mật mã Elgamal

3.3 Ứng dụng trong SSH

- SSH (Secure Shell) là giao thức đăng nhập vào server từ xa, cho phép người dùng kiểm soát, chỉnh sửa và quản trị dũ liệu của server thông qua nền tảng Internet

Trang 15

- SSH thiết lập kết nối được bảo mật bằng mật khẩu giữa hai bên (client và server)

Hình 3.3: Mô tả giao thức SSH

- Kết nối SSH giữa client và server xảy ra theo 3 giai đoạn:

• Xác nhận server bởi client

• Tạo ra session key để mã hóa giao tiếp (sử dụng Diffie - Hellman)

• Xác thực client

- SSH sẽ sử dụng giao thức Diffie - Hellman như một thuật toán tạm thời, các tham số của Diffie - Hellman sẽ được tạo ra cho các phiên độc lập và bị xóa

bỏ ngay lập tức khi chúng không còn cần thiết

- Điều này cũng giúp ta thực hiện forward secrecy (FS: chuyển tiếp bí mật): việc đánh cắp khóa bí mật của hiện tại không có nghĩa là bạn có thể giải mã các phiên trước đó

3.4 Bắt tay TLS bằng cách sử dụng Diffie - Hellman

Máy khác kết nối an toàn với máy chủ web thông qua giao thức mã hóa truyền tài TLS Quá trình này bắt đầu với mật mã khóa bất đối xứng và kết thúc bằng mật mã đối xứng Có nhiều quá trình thực hiện bắt tay TLS, trong đó có thể sử dụng Diffie - Hellman để sử dụng thỏa thuận bắt tay TLS

• Bước 1: Thông báo ClientHello

Trong thông báo ClientHello ban đầu đến máy chủ web, máy khách sẽ gửi một ClientRandom (là một số giả ngẫu nhiên được tạo bằng mật mã) Bên trong ClientHello, máy khách cũng yêu cầu xem chứng thư số tuân thủ X.509 của máy chủ web Chứng chỉ được cấp bởi Tổ chức phát hành chứng chỉ đáng tin cậy Thông tin (được mô tả trong hình 3.4) đi kèm trong chứng chỉ bao gồm:

➢ Các Serial Number xác định chứng chỉ là duy nhất Số này có thể được sử

dụng để cho biết chứng chỉ có nằm trong danh sách thu hồi chứng chỉ hay không

➢ Issuer: là tổ chức phát hành chứng chỉ

➢ Validity Dates: là khoảng thời gian mà chứng chỉ có hiệu lực

➢ Subject: là chủ sở hữu của chứng chỉ thường được xác định với một email

hoặc tên miền

➢ Public Key: được sử dụng để mã hóa bất đối xứng

Ngày đăng: 11/02/2023, 09:44

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w