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

Tieu luan ANM Giao thức trao đổi khóa difie hellman

14 46 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

Định dạng
Số trang 14
Dung lượng 0,94 MB

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

Nội dung

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNGKHOA VIỄN THÔNG 1 BÁO CÁO TIỂU LUẬN ỨNG DỤNG CỦA GIẢI THUẬT TRAO ĐỔI KHÓA DIFFIE - HELLMAN MÔN: AN NINH MẠNG VIỄN THÔNG Giảng viên hướng dẫn: Phạm

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 GIẢI THUẬT TRAO ĐỔI KHÓA

DIFFIE - HELLMAN MÔN: AN NINH MẠNG VIỄN THÔNG

Giảng viên hướng dẫn: Phạm Anh Thư

Sinh viên thực hiện: Trần Công Thành – B17DCVT337

Trương Quang Huy – B17DCVT180 Nguyễn Văn Hiếu – B17DCVT132 Nhóm thực hiện: Nhóm 9 – N6

Hà Nội, 6/2021

Trang 2

MỤC LỤC

Danh mục bảng biểu

Danh mục hình vẽ

Trang 3

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 giải thuật 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 giải thuật 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 3 chương 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

Chương 1: Giới thiệu giải thuật trao đổi khóa Diffie – Hellman

Chương 2: Các đặc trưng của giải thuật trao đổi khóa Diffie - Hellman

Chương 3: Ứng dụng của giải thuật trao đổi khóa Diffie - Hellman

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 4

I GIỚI THIỆU GIẢI THUẬT 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

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

Giải thuật 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:

Giải thuật 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 P5 mod14 P6 mod14

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

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

Trang 5

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 giải thuật trao đổi khóa Diffie - Hellman như sau:

truyền

Bob

Bí mật Tính Côngkhai Côngkhai Tính Bí mật

a ga mod p= A A, p, g A =><= B B, p, g gb mod p= B b

S, a S = Bmod pa A, B, p, g B, A, p,g S = Amod pb S, b

Bảng 1.2 Mô tả giải thuật trao đổi khóa Diffie-Hellman

- Ví dụ:

• Bước 1: cả 2 đồng ý 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 6

Sơ đồ giải thuật trao đổi khóa Diffie – Hellman:

Hình 1 Sơ đồ giải thuật trao đổi khóa Diffie-Hellman

II CÁC ĐẶC TRƯNG CỦA GIẢI THUẬT 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=17 và g=2

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=6 Sau đó tính A= mod 17= 13 rồi tiền hành gửi A=13 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=9 Sau đó tính B=mod 17 =2 rồi gửi cho Alice

Bước 4: Bob nhận được giá trị A=13 và tính được khóa chung : s=mod 17 =13 Tương

tự phía bên A cũng nhận được B=2 rồi tính được khóa chung: s= mod 17 =13

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

Trang 7

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ố, 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ông thể giải được nếu chỉ biết g, p, A, B

Vì vậy cho nên giao thực này là rất 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 :

Hình 2 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

B1: Alice gửi YA sang cho Bob

B2: Darth xen vào nhận YA và gửi YD1 cho Bob Đồng thời, Darth cũng tính toán K2

B3: Bob nhận được YD1 và tính toán K1

B4: Bob gửi YB cho Alice

B5: Darth xen vào nhận YB và gửi YD2 cho Alice Lúc đó Darth cũng tính toán K1

B6: Alice nhận YD2 và tính toán K2

Trang 8

- Ở đâ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

III: ỨNG DỤNG CỦA GIẢI THUẬT 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 giải thuật 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 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

Trang 9

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

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 4 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

Trang 10

đ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

- 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 5 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 giải thuật 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 ClientHell, 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 6) đ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ỉ

Trang 11

• 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

Trong đó chứng chỉ chưa khóa công khai RSA của máy chủ, nó có sẵn cho bất kỳ máy khách nào muốn kết nối an toàn với máy chủ Tuy nhiên, chỉ máy chủ mới biết được khóa riêng

Hình 6 Các tham số chứng thực

Bước 2 Thông báo ServerHello

Trong thông báo ServerHello, máy chủ trả lời bằng Serverrandom Tiếp đó máy chủ máy chủ gửi cho máy khách một tham số DH (Deffie-Hellman) Máy chủ xem qua danh sách các bộ mật mã được cung cấp trong thông báo ClientHello và chọn bộ mật

mã mạnh nhất mà cả hai bên có thể thực hiện Ví dụ bộ mã được chọn là

TLS_DHE_RSA_WITH_AES_256_CBC_SHA Bộ mã có ý nghĩa là máy chủ và máy khách sẽ sử dụng giao thức mã hóa truyền tải TLS cùng với giao thức thỏa thuận khóa Diffie_Hellman Xác thực bằng RSA và sử dụng AES với khóa 256 bit và thuật toán SHA-256 để duy trì tính toàn vẹn của dữ liệu trong quá trình truyền thông tin

Trước khí đến bước 3 thì máy chủ mã hóa hàm băm của chữ ký số bằng khóa riêng RSA và gửi cho máy khách

Bước 3: Máy khách phản hồi lại cho máy chủ

Máy khách nhận được chứng chỉ của máy chủ và nó sẽ kiểm tra đảm bảo rằng chứng chỉ đấy chưa hết hạn Khách hàng cũng sẽ truy vấn CA để yêu cầu một bản sao của

Trang 12

danh sách thu hồi chứng chỉ (CRL) Điều này đảm bảo rằng chứng chỉ không bị thu hồi vì bất kỳ lý do gì, chẳng hạn như xâm phạm khóa, giữ chứng chỉ, ngày hết hạn và bất kỳ điều gì khác có thể khiến chứng chỉ không hợp lệ

Máy khách cũng xác minh chữ ký số bằng cách giải mã hàm băm SHA-256 bằng khóa công khai và sau đó kiểm tra độ trùng khớp

Tương tự như vậy, máy khách cũng gửi tham số DH của chính nó

Bước 4 Tạo khóa K

Máy khách và máy chủ phải đồng ý về một khóa K bí mật trước khi thực hiện gửi các thông điệp được mã hóa cho nhau Qua trình thỏa thuận chính là được thực hiện băng giao thức Deffie-Hellman

Bước 5 và 6: Kết thúc

Khi một khóa K bí mật chung được tạo ra thì máy khách sẽ gửi một ClientFinish và sau đó máy chủ sẽ trả lời bằng một ServerFinish Lúc này, dừng quá trình mật mã khóa bất đối xứng và khóa đối xứng có thể truyền ra cả Client và server đều đã có khóa chung Giờ đây dữ liệu ứng dụng có thể được truyền qua lại một cách an toàn thông qua một kênh mã hóa đối xứng riêng biệt

Tất cả quá trình được thể hiện dưới hình sau

Hình 7 Quá trình bắt tay TLS giứa client và server

Trang 14

Tài liệu tham khảo

Tài liệu trên mạng

[1]https://pdfs.semanticscholar.org/8225/1dd1310ec42e5a89967dce434874cd10f15e.p df

Ngày đăng: 02/09/2021, 16:07

TỪ KHÓA LIÊN QUAN

w