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

các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa

78 872 2

Đ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 78
Dung lượng 815,7 KB

Nội dung

Chính vì vậy, trong mã hóa hiện đại, người ta luôn giả thiết rằng phương pháp mã hóa thông tin là cái không thể giữ được bí mật, chúng sẽ được công khai, còn việc thực hiện thì cho phép

Trang 1

MỤC LỤC

MỤC LỤC 1

DANH MỤC HÌNH 4

CÁC KÝ HIỆU VÀ CỤM TỪ VIẾT TẮT 6

MỞ ĐẦU 7

Chương 1 – Vai trò chìa khóa trong các giải pháp bảo mật và an toàn thông tin 9

1.1 Vai trò của chìa khóa trong các giải pháp bảo mật và an toàn thông tin 9

1.1.1 Trong hệ mã khóa đối xứng 9

1.1.2 Trong hệ mã khóa công khai 10

1.1.3 Trong sơ đồ xưng danh và xác nhận danh tính 10

1.1.4 Trong hệ xác nhận và chữ ký điện tử 11

1.2 Vấn đề an toàn khóa trong các giải pháp bảo mật 11

1.2.1 Hệ mã khóa công khai 11

1.2.2 Hệ mã khóa đối xứng 13

1.2.3 Trong môi trường truyền tin công cộng 14

Chương 2 – Các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa 16

2.1 Nhu cầu thỏa thuận, chuyển vận và phân phối khóa 16

2.2 An toàn khóa trong các giao thức trao đổi 18

2.2.1 Trao đổi khóa Diffie-Hellman 18

2.2.2 Trao đổi khóa STS 20

2.2.3 Thỏa thuận khóa MTI 22

Trang 2

2.2.4 Giao thức Shamir 24

2.2.5 Giao thức trao đổi khóa mã hóa EKE 25

2.2.6 Sơ đồ Girault 28

2.3 An toàn khóa trong các giao thức phân phối khóa 31

2.3.1 Sơ đồ phân phối khóa Blom 32

2.3.2 Hệ phân phối khóa Kerberos 34

2.3.3 Hệ phân phối khóa Diffie-Hellman 36

2.3.4 An toàn khóa trong các sơ đồ chia sẻ bí mật 37

2.4 An toàn khóa trong các giao thức chuyển vận khóa 39

2.4.1 Giao thức không sử dụng chữ ký 40

2.4.2 Giao thức có sử dụng chữ ký 40

2.4.3 Giao thức lai 42

Chương 3 - Kỹ thuật quản trị và kiểm tra việc sử dụng khóa 46

3.1 Quản trị khóa 46

3.2 Các kỹ thuật quản trị 46

3.2.1 Các kỹ thuật phân phối khóa bí mật 46

3.2.2 Kỹ thuật phân phối khóa công khai 50

3.3 Kỹ thuật kiểm tra việc sử dụng khóa 58

3.3.1 Tách biệt khóa và ràng buộc khóa 58

3.3.2 Kỹ thuật điều khiển việc sử dụng khóa 59

3.4 Quản lý khóa trong hệ thống đa vùng 60

3.4.1 Quan hệ tin cậy giữa hai vùng 61

3.4.2 Mô hình tin cậy với nhiều TA 62

Trang 3

3.5 Vòng đời khóa 64

Chương 4 - Một số cách tổ chức các dịch vụ quản trị khóa 67

4.1 Giới thiệu 67

4.2 Giao thức socket an toàn SSL 67

4.2.1 Kiến trúc SSL 68

4.2.2 Giao thức SSL Record 69

4.2.3 Giao thức SSL Change Cipher Spec 70

4.2.4 Giao thức Alert 71

4.2.5 Giao thức Handshake 71

4.3 Cơ sở hạ tầng khóa công khai PKI 74

4.3.1 Tổng quan PKI 75

4.3.2 Các dịch vụ PKI 75

NHẬN XÉT VÀ KẾT LUẬN 77

TÀI LIỆU THAM KHẢO 78

Trang 4

DANH MỤC HÌNH

Hình 2.1: Giao thức Diffie-Hellman 19

Hình 2.2: Giao thức STS 20

Hình 2.3: Thỏa thuận khóa MTI 22

Hình 2.4: Giao thức Shamir 24

Hình 2.5: Giao thức EKE 26

Hình 2.6: Sơ đồ TA cấp khóa công khai tự xác thực cho các thành viên 29

Hình 2.7: Sơ đồ Girault 29

Hình 2.8: Sơ đồ phân phối khóa Blom 32

Hình 2.9: Hệ phân phối khóa Kerberos 34

Hình 2.10: Giao thức phân phối khóa Diffie-Hellman 37

Hình 2.11: Sơ đồ ngưỡng Shamir 38

Hình 2.12: Giao thức Beller-Yacobi 4-lần qua 43

Hình 2.13: Giao thức Beller-Yacobi 2-lần qua 45

Hình 3.1: Giao thức chuyển văn bản có KTC 48

Hình 3.2: Cây nhị phân 52

Hình 3.3: Cây xác thực 53

Hình 3.4: Các vùng riêng biệt 62

Hình 3.5: Mô hình tin cậy có thứ bậc chặt chẽ 63

Hình 3.6: Mô hình tin cậy ngược thứ bậc 64

Hình 3.7: Mô hình tổng quát 64

Hình 4.1: Chồng giao thức SSL 68

Hình 4.2: Hoạt động giao thức SSL Record 69

Trang 5

Hình 4.3: Hoạt động giao thức Handshake 71 Hình 4.4: Kỹ thuật kết khối an toàn gói tin Internet 75

Trang 6

CÁC KÝ HIỆU VÀ CỤM TỪ VIẾT TẮT

2 - lầnqua: 2 – pass (giao thức gồm 2 lần chuyển văn bản giữa các bên) (tương tự

như vậy với 3-lần qua và 4-lần qua)

x || y: để chỉ xâu nối x và y

CA: Certificate Authority - Ủy quyền chứng chỉ

CBC: Cipher Block Chaining

CSDL: Cơ sở dữ liệu

EKE: Encrypted Key Exchange

KDC: Key Distribution Center – Trung tâm phân phối khóa

KTC: Key Translation Center – Trung tâm chuyển khóa

PKI: Public Key Infrastructure - Cơ sở hạ tầng khóa công khai

SSL: Secure Socket Layer - Tầng socket an toàn

STS: Station To Station

TA: Trust Authority – Ủy quyền tin cậy

TMĐT: Thương mại điện tử

Trang 7

MỞ ĐẦU

Hiện nay, ở các nước phát triển cũng như đang phát triển, mạng máy tính và Internet đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của xã hội, và một khi nó trở thành phương tiện làm việc trong các hệ thống thì nhu cầu bảo mật thông tin được đặt lên hàng đầu Nhu cầu này không chỉ có ở các bộ máy

An ninh, Quốc phòng, Quản lý Nhà nước, mà đã trở thành cấp thiết trong nhiều hoạt động kinh tế xã hội: tài chính, ngân hàng, thương mại…thậm chí trong cả một số hoạt động thường ngày của người dân (thư điện tử, thanh toán tín dụng,…) Do ý nghĩa quan trọng này mà những năm gần đây công nghệ mật mã và an toàn thông tin đã có những bước tiến vượt bậc và thu hút sự quan tâm của các chuyên gia trong nhiều lĩnh vực khoa học, công nghệ

Một điểm đặc biệt của công nghệ bảo mật hiện đại là không dựa vào khả năng giữ

bí mật của phương pháp (công nghệ), vì nó thường không chỉ một người nắm giữ, nói chung thường là nhóm đông người biết, mà khả năng giữ bí mật tuyệt đối của cả một nhóm người là không thể, vì thế bí mật chỉ có thể giữ bởi một người mà lợi ích của anh ta gắn liền với bí mật đó Chính vì vậy, trong mã hóa hiện đại, người ta luôn giả thiết rằng phương pháp mã hóa thông tin là cái không thể giữ được bí mật, chúng sẽ được công khai, còn việc thực hiện thì cho phép thay đổi theo một tham số

do từng người sử dụng tự ấn định (mỗi giá trị của tham số sẽ xác định một cách mã hóa riêng), việc lập mã và giải mã chỉ có thể được thực hiện khi biết được tham số

đó Tham số như vậy được gọi là “chìa khóa” và đó là thông tin duy nhất cần phải giữ bí mật Tóm lại, một hệ mã hiện đại cần phải dựa trên nguyên tắc: chốt tính bảo mật vào chìa khóa, chứ không phải vào phương pháp (thuật toán)

Luận văn sẽ nghiên cứu và xác định rõ vai trò của chìa khóa trong các giải pháp bảo mật và an toàn thông tin Trên cơ sở nghiên cứu và phân tích các giải pháp an toàn khóa trong việc phân phối, trao đổi, chuyển vận khóa, cũng như các phương thức quản lý nhằm mang lại hiệu quả cao nhất trong quá trình thực hiện các giao thức đó Luận văn gồm có bốn chương:

Trang 8

Mở đầu

Chương 1: Vai trò chìa khóa trong các giải pháp bảo mật và an toàn thông tin Chương 2: Các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận

khóa

Chương 3: Kỹ thuật quản trị và kiểm tra việc sử dụng khóa

Chương 4: Một số cách tổ chức các dịch vụ quản trị khóa

Kết luận

Trang 9

Chương 1 – VAI TRÒ CHÌA KHÓA TRONG CÁC GIẢI PHÁP BẢO

MẬT VÀ AN TOÀN THÔNG TIN 1.1 Vai trò của chìa khóa trong các giải pháp bảo mật và an toàn thông tin

Mật mã hay các giải pháp bảo mật được sử dụng để bảo vệ tính bí mật của thông tin

khi chúng được truyền trên các kênh truyền thông công cộng Giả sử nếu một người

U muốn gửi cho người V một văn bản p, để bảo mật U lập cho p một bản mật mã c

bằng một phương pháp Toán học nào đó, và thay vì gửi cho V văn bản p, U gửi cho

V văn bản c V nhận được c thực hiện giải mã để thu được p Để U biến p thành c

và V biến c thành p, U và V phải thống nhất sử dụng chung một hệ mã khóa nào đó:

hệ mã khóa đối xứng hoặc hệ mã khóa công khai

1.1.1 Trong hệ mã khóa đối xứng

Hoạt động của hệ mã này được mô tả như sau: Nếu U và V là hai người dùng sử

dụng hệ mã khóa đối xứng (đôi khi nó còn được gọi là hệ mã khóa bí mật) để gửi

tin cho nhau U dùng thuật toán E và khóa K lập mật mã (từ đây trở đi ta sẽ gọi tắt

là mã hóa) cho văn bản M muốn gửi cho V, rồi gửi cho V bản mã: c = EK(M) Thuật

toán mã hóa E sinh ra các output khác nhau phụ thuộc vào giá trị khóa K Ở đầu bên

kia V sau khi nhận được bản mã c, sẽ sử dụng thuật toán giải mã D và chính khóa K

để thu được bản rõ M (việc giải bản mã thành bản rõ từ nay sẽ được gọi là giải mã)

Hệ mã loại này có tên là hệ mã khóa đối xứng vì khóa lập mã và khóa giải mã là

một, U và V chỉ có thể truyền tin được với nhau nếu cả hai cùng biết khóa K Tính

an toàn của hệ mã phụ thuộc vào hai yếu tố: thuật toán phải đủ mạnh để không thể

giải mã được văn bản nếu đơn thuần chỉ dựa vào bản rõ, và tính an toàn khóa, chứ

không phải là an toàn thuật toán, tức là nếu biết bản mã và thuật toán mã hóa nhưng

không biết khóa vẫn không thể tìm được bản rõ Nói cách khác, ta không cần giữ bí

mật thuật toán mà chỉ cần giữ bí mật chìa khóa Việc giữ bí mật chìa khóa trở thành

điểm mấu chốt của hệ mã khóa loại này, nếu vì lý do nào đó mà khóa bị lộ thì tất cả

những văn bản hai bên trao đổi với nhau cũng sẽ bị lộ

Trang 10

1.1.2 Trong hệ mã khóa công khai

Để sử dụng hệ mã khóa đối xứng yêu cầu hai bên trước khi truyền tin phải có chung một giá trị khóa, giá trị này cần phải giữ bí mật và điều này không thuận tiện trong môi trường truyền thông công cộng như hiện nay Vì thế người ta đã đưa ra cách mã hóa khác, cho phép các bên trong hệ thống có thể truyền tin cho nhau bằng cách công bố công khai thông tin cần cho việc lập mã, khiến cho người gửi và người nhận không cần quy ước trước với nhau, và cũng không có những bí mật chung Bên nhận được bản mã sử dụng khóa bí mật của mình giải mã để thu được văn bản gốc Khóa K của mỗi người dùng gồm hai phần K =(K ,'K")trong đó K' là phần công khai, còn giữ bí mậtK"

Mã hóa được thực hiện rất dễ dàng, bất kỳ người nào cũng có thể làm được, còn việc giải mã rất khó khăn nếu như không có khóa riêng, còn nếu có nó thì việc giải

mã cũng dễ như việc mã hóa Việc giữ bí mật khóa trong hệ mã khóa công khai không còn là vấn đề nữa, vì mỗi người có một khóa riêng chỉ có chính anh ta biết

mà thôi nên khả năng anh ta làm lộ gần như là không có Vì vậy đối với những hệ

mã loại này tính an toàn chúng nằm trong khả năng không bị lộ của chìa khóa bí mật từ những thông tin công khai tất cả mọi người đều có, mà điều này thì lại phụ thuộc vào độ khó của bài toán nào đó ví như: việc tính tích hai số nguyên tố lớn n = p.q: dễ dàng nhân hai số nguyên tố lớn p, q để thu được tích n của chúng, nhưng bài toán sẽ là khó nếu cho giá trị tích n, xác định các nhân tử nguyên tố p, q của nó Hay như bài toán nếu có số nguyên tố p, một phần tử nguyên thủy α theo mod p, ta

dễ dàng tính được β =αxmodpZ*p , với x là giá trị bất kỳ Nhưng nếu ngược lại

biết β, α, p khó tìm được số nguyên x (0 ≤xp− 2) sao cho αx ≡β(mod p) Tuy nhiên, đến nay chưa có chứng minh bằng Toán học nào chỉ ra rằng đây thực sự là các bài toán khó, hoặc không thể giải trong thời gian chấp nhận được

1.1.3 Trong sơ đồ xưng danh và xác nhận danh tính

Xưng danh và xác nhận danh tính là thuật ngữ ngày nay đang được nhắc đến rất nhiều, nó đảm bảo rằng bên nhận văn bản đúng là bên ta định nhằm tới, hay chắc

Trang 11

chắn rằng các thao tác trên văn bản là do bên được phép thực hiện Cho đến giữa những năm 1970 [4] người ta vẫn còn cho rằng xưng danh và xác nhận danh tính với mã hóa thực chất là cùng một mục tiêu an toàn thông tin Nhưng cùng với sự khám phá ra hàm băm, chữ ký điện tử, người ta nhận ra rằng đó là hai mục tiêu an toàn thông tin hoàn toàn độc lập Xưng danh và xác nhận danh tính rất cần thiết trong các hoạt động thông tin, đặc biệt là khi các hoạt động này thông qua mạng Mục tiêu an toàn của việc xưng danh là bảo đảm sao cho khi “nghe” một chủ thể U nào đó xưng danh với chủ thể V, bất kỳ ai khác U cũng không thể sau đó mạo nhận mình là U, kể cả chính V Nói cách khác, U muốn chứng minh để bên kia V xác nhận danh tính của mình mà không để lộ bất kỳ thông tin gì về mình

Việc xưng danh thường phải thông qua một giao thức hỏi - đáp nào đó, nhờ đó V có thể xác nhận danh tính của U, V hỏi U, U trả lời để chứng tỏ cho V biết là U có sở hữu một bí mật riêng nào đó Vấn đề an toàn của sơ đồ xưng danh là phải đảm bảo

để sau khi U xưng danh với V, thì bất kỳ người nào khác không thể mạo nhận mình

là U kể cả V Nói cách khác, U không để lộ một thông tin gì về bí mật mà U có ngoài thông tin duy nhất là U sở hữu bí mật đó

Sự an toàn của sơ đồ xưng danh cũng nằm trong tính khó giải của các bài toán nào

đó, hay dựa trên hàm một chiều nào đó

1.1.4 Trong hệ xác nhận và chữ ký điện tử

Như ta đã nói ở trên bài toán bảo mật được đáp ứng bằng các giải pháp mật mã Tuy nhiên giờ đây người nhận còn muốn kiểm thử tính xác thực nguồn gốc của thông tin, cũng như chắc chắn là thông tin đã không bị thay đổi trong quá trình truyền đi,

và nhất là cần ràng buộc danh tính của bên đã gửi thông tin đi để sau đó anh ta không thể thoái thác là mình không gửi văn bản đó Những yêu cầu này được đáp ứng bằng cách sử dụng chữ ký điện tử

Chữ ký điện tử có cùng mục đích như chữ ký viết tay, tuy nhiên nếu chữ ký viết tay

dễ dàng giả mạo được thì chữ ký điện tử lại rất khó giả mạo, cộng thêm nó chứng nhận nội dung của thông tin cũng như là danh tính của người gửi

Trang 12

Sơ đồ chữ ký điện tử cơ bản được mô tả như dưới đây:

1 Người gửi (chủ nhân của văn bản) tạo chữ ký trên văn bản bằng khóa riêng của mình;

2 Người gửi chuyển văn bản cùng chữ “ký” cho người nhận;

3 Người nhận văn bản sử dụng chìa khóa công khai của người gửi kiểm thử chữ ký trên văn bản nhận được

Chữ ký không thể làm giả được vì chỉ có duy nhất người gửi có chìa khóa bí mật để

ký, và cũng không ai giả mạo được vì không có khóa bí mật Văn bản đã ký không thể thay đổi nội dung được nữa Người đã ký thì không thể thoái thác “chữ ký” của mình

Bài toán xác nhận với chữ ký điện tử, theo nghĩa nào đó, có thể xem là “đối ngẫu” với bài toán mã hóa bằng hệ mã công khai Và vì thế nên sự an toàn của các sơ đồ

ký cũng giống như thuật toán mã khóa công khai phụ thuộc vào độ khó của bài toán nào đó

1.2 Vấn đề an toàn khóa trong các giải pháp bảo mật

1.2.1 Hệ mã khóa công khai

Việc tính toán lập mã được công bố công khai (để mọi người trong mạng có thể thực hiện được) Việc giải mã thì chỉ có người có chìa khóa riêng, bí mật mới có thể thực hiện được Quá trình để U gửi thông tin cho V sử dụng hệ mã với khóa công khai như sau:

(1) U và V thống nhất với nhau về hệ mã công khai sẽ sử dụng;

(2) V gửi khóa công khai của mình cho U (hoặc U lấy được khóa công khai của V

từ cơ sở dữ liệu công khai đặt ở một nơi nào đó);

(3) U sử dụng khóa công khai của V để mã hóa văn bản rồi gửi cho V;

(4) V dùng khóa bí mật của mình để giải mã văn bản nhận được từ U

Trang 13

Với những hệ mã khóa loại này phải đảm bảo dù kẻ tấn công có biết thuật toán và khóa công khai K không biết khóa bí mật vẫn khó tìm được cách giải mã

Trong trường hợp dữ liệu công khai được các bên lấy từ một máy chủ nào đó ở xa, giao thức chỉ an toàn nếu giải quyết được trường hợp sau đây:

• Tấn công giữa dòng

Nếu một kẻ W có khả năng tráo đổi chìa khóa trên cơ sở dữ liệu (CSDL) khóa công khai thì người đó dễ dàng thu được toàn bộ thông tin mà U gửi cho V Muốn làm được việc này, anh ta chỉ việc lấy khóa công khai của mình tráo vào khóa công khai của V; khi U lấy chìa này để mã hóa thông tin gửi cho V, sẽ bị W thu được và giải mã; sau khi đọc xong thông tin anh ta sẽ mã hóa bằng khóa công khai của V rồi gửi cho V; V vẫn nhận thông tin mà U gửi nhưng không biết là W đã nghe trộm toàn bộ thông tin này Vẫn bằng cách này W cũng nghe được toàn bộ thông tin mà V gửi cho U

Điểm yếu của hệ thống là khi U lấy chìa công khai của V để mã hóa thông tin mà không biết chìa khóa đó có thực sự là của V hay không? Đặt ra yêu cầu ở đây là phải khắc phục được tình trạng này Thêm nữa, nếu giả thiết rằng không một kẻ tấn công nào có thể truy nhập được vào CSDL trên máy chủ, thì khả năng U nhận được một khóa “giả mạo” từ trung tâm vẫn có thể xảy ra nếu như W thu được các văn bản trên đường chuyển về cho U

1.2.2 Hệ mã khóa đối xứng

Quá trình truyền tin của hai bên U và V sử dụng hệ mã khóa đối xứng có thể được

mô tả như sau:

1 U và V thỏa thuận về hệ mã khóa

2 U và V thỏa thuận khóa dùng chung

3 U sử dụng thuật toán và khóa đã thỏa thuận mã hóa văn bản M muốn gửi cho

V

Trang 14

4 U gửi cho V bản mã hóa đó

5 V giải mã văn bản nhận được từ U bằng thuật toán và khóa đã thỏa thuận với

U để thu được bản rõ M

W nào đó trên đường truyền muốn có được văn bản M, nếu anh ta nghe đường truyền ở bước (4), anh ta sẽ phải có gắng phân tích bản mã để thu được bản rõ Tuy nhiên giờ đây chúng ta có rất nhiều thuật toán để không cho phép W thực hiện mong muốn của mình Nhưng W không chịu lùi bước, anh ta cố gắng nghe đường truyền từ bước (2), và nếu như hai người không có một biện pháp bảo vệ nào cho khóa thì những gì mà V có được thì W cũng có

Việc mã hóa thông tin bằng hệ mã đối xứng sử dụng chìa khóa chung cho cả hai công việc lập mã và giải mã, đặt ra yêu cầu là làm thế nào để hai bên có thể có chung một giá trị bí mật, không có bên nào khác có thể biết được Ta vừa nói rằng với những hệ mã đối xứng thì giai đoạn U và V thống nhất với nhau về chìa khóa chung sẽ sử dụng là khâu yếu nhất Nếu chìa khóa này mà bị lộ không những kẻ gian biết được thông tin hai bên trao đổi với nhau mà còn có thể đóng giả “bên này”

để đánh lừa “bên nọ” Giải pháp đơn giản nhất là sử dụng khóa phiên chỉ có hiệu lực trong khoảng thời gian nhất định Tuy nhiên đó không phải là cách làm hay, và không khắc phục tận gốc vấn đề Giải quyết bài toán này càng khó khăn hơn khi ta biết rằng việc trao đổi khóa một cách tuyệt mật (có giá trị hơn dữ liệu) trong môi

trường công cộng là vô cùng khó

1.2.3 Vấn đề an toàn khóa trong môi trường truyền thông công cộng

Chúng ta đang tiến đến thế giới của hàng tỷ máy tính kết nối với nhau, nhờ đó chúng ta có thể mua hàng trên Internet, gửi số thẻ tín dụng, tham gia thị trường chứng khoán, kiểm tra tài khoản trong ngân hàng, và thực hiện các giao dich thông qua Internet, thậm chí có thể ký các hợp đồng kinh tế qua mạng Những công việc liên quan đến chính lợi ích kinh tế của chúng ta Do đó, vấn đề làm sao để bảo vệ tính bí mật và an toàn của thông tin ngày càng to lớn và phổ biến hơn bao giờ hết

Trang 15

Hãy hình dung như thế này, mong muốn trao đổi các văn bản với nhau một cách an toàn (tin cậy, toàn vẹn, xác thực và không thể thoái thác) được thỏa mãn bằng cách

sử dụng thuật toán mã hóa và công nghệ chữ ký điện tử Nếu sử dụng thuật toán mã hóa khóa đối xứng (thông thường các thuật toán khóa đối xứng nhanh hơn khoảng

từ 30-100 lần so với các thuật toán phi đối xứng tương đương) thì khóa đối xứng được thống nhất và trao đổi với nhau bằng cách nào đó chỉ có hai bên tham gia trao đổi mới biết mà thôi Những phương pháp để hai bên nào đó thống nhất một khóa chung một cách an toàn để sử dụng mã hóa sau này sẽ được nói đến ngay trong chương hai của luận văn

Có một giải pháp cho vấn đề trên là người ta sẽ sử dụng hệ mã khóa công khai để trao đổi khóa đối xứng với nhau, tức là nếu U muốn thống nhất với V khóa dùng chung K nào đó, U sẽ dùng khóa công khai K’ của V để mã hóa K, sau đó gửi bản

mã cho V, V sẽ dùng khóa riêng của mình để thu được K Nếu thế thì yêu cầu đặt ra

ở đây là chúng ta sẽ phân phối khóa công khai như thế nào, hay làm thế nào để khẳng định trong môi trường mạng rằng U đúng là đã có khóa công khai thực sự của V Từ đó nảy sinh yêu cầu quản trị khóa và kiểm tra việc sử dụng khóa và đó là vấn đề sẽ được trình bày trong chương ba của luận văn

Trang 16

Chương 2 - CÁC GIAO THỨC AN TOÀN KHÓA TRONG TRAO ĐỔI,

PHÂN PHỐI VÀ CHUYỂN VẬN KHÓA 2.1 Nhu cầu thỏa thuận, chuyển vận và phân phối khóa

Các hệ mã khóa công khai có nhiều điểm ưu việt hơn so với hệ mã khóa đối xứng vì chúng không cần thiết lập một kênh truyền an toàn để trao đổi khóa bí mật Tuy nhiên điểm yếu của các hệ mã khóa công khai là chậm hơn nhiều so với các hệ mã khóa đối xứng, thêm nữa hệ mã khóa công khai rất nhạy cảm với tấn công chọn bản

rõ tức là nếu bản mã C = E(P), trong đó P là bản rõ, thì người thám mã chỉ phải thực hiện mã hóa tất cả các bản rõ có thể rồi so sánh kết quả thu được với C (điều này làm được là do khóa mã hóa được công khai), bằng cách này anh ta không thể xác định được khóa bí mật nhưng vẫn có thể thu được P Vì vậy, trên thực tế hệ mã khóa đối xứng vẫn đang là công cụ chính trong mã hóa dữ liệu (nhất là khi làm việc với những văn bản lớn) Thêm nữa, trong rất nhiều giao thức mật mã, đặc biệt là những giao thức có sự tham gia của bên thứ ba, thường đòi hỏi các bên có một chìa khóa bí mật chung để làm tiền đề cho quá trình trao đổi chìa khóa phiên làm việc hay trao đổi chìa khóa công khai dùng trong hệ mã công khai Vấn đề đặt ra ở đây là làm sao để trao đổi các giá trị bí mật đó một cách an toàn

Trong chương này, luận văn sẽ đi vào chi tiết một vài cách tiếp cận để giải quyết vấn đề trên Trước tiên ta sẽ xem xét một vài khái niệm cơ bản sẽ được nói đến

Giao thức là một thuật toán có sự tham gia của nhiều bên, được xác định chính xác

bởi một chuỗi các bước hoạt động của các bên tham gia nhằm đạt được mục tiêu xác định

Một vài sơ đồ, giao thức trong chương này có sự tham gia của một cơ quan được uỷ thác (ký hiệu là TA) chịu trách nhiệm kiểm tra các thông tin về danh tính người dùng, chọn và chuyển khóa,.v.v

Trang 17

Ngoài nhiệm vụ thiết lập một giá trị khóa chung cho hai bên, đôi khi các bên còn đòi hỏi giao thức cung cấp tính xác thực, các khả năng xác thực mà giao thức có thể là:

Xác thực khóa (key authentication) là khả năng giao thức cho phép một bên đuợc

bảo đảm rằng ngoại trừ đúng bên đúng với thông tin danh tính đã xác định trước thì không một ai khác có thể tính được giá trị bí mật

Điều này có nghĩa là nếu U (V) muốn thiết lập, hoặc chuyển cho V (U) khóa bí mật bằng cách sử dụng một giao thức có khả năng xác thực khóa thì sau khi kết thúc giao thức U chắc chắn rằng chỉ có V mới có thể thu được giá trị đó

Xác thực khóa đôi khi còn được gọi là xác thực khóa ẩn (implicit key authentication)

Xác nhận khóa (key confirmation) là khả năng giao thức cho phép một bên chắc

chắn rằng bên kia đã có giá trị bí mật Nghĩa là sau khi kết thúc giao thức U chắc chắn rằng V đã thu được giá trị bí mật K

Xác thực khóa hiển (explicit key authentication) Giao thức có khả năng xác thực

khóa và xác nhận khóa thì được gọi là giao thức xác thực khóa hiển

Xác thực thực thể (entity authentication) là quá trình cho phép một bên được đảm

bảo về danh tính của bên kia, và thực sự bên kia đã tham gia vào hoạt động của giao thức

Các giao thức có thể chỉ cung cấp xác thực thực thể đơn phương (tức là chỉ cho phép xác thực theo một chiều hoặc là U về V, hoặc là V về U)

Các giao thức có thể bị tấn công dưới dạng các hình thức sau:

Tấn công thụ động (còn gọi là tấn công bị động – passive attack): quan sát, nghe

trộm quá trình thực hiện giao thức nhưng không làm ảnh hưởng tới giao thức và không thay đổi được thông tin giao dịch

Trang 18

Tấn công chủ động (active attack): tìm cách thay đổi giao thức (theo hướng có lợi

cho mình), thay đổi thông tin, xóa thông tin thực, tạo thông tin giả, tham gia vào giao dịch

2.2 An toàn khóa trong các giao thức trao đổi

Giao thức trao đổi khóa là quá trình thực hiện mà nhờ đó hai (hay nhiều) bên cùng

nhau thiết lập khóa bí mật dùng chung thông qua quá trình truyền thông trên một kênh công cộng

Sau một số bước trao đổi gói tin cho nhau, U và V sẽ có chung một giá trị K Bài toán an toàn khóa đặt ra trong các giao thức này là:

− Mức thứ nhất là nếu W thu được các gói tin U, V gửi cho nhau vẫn không thể xác định được giá trị khóa chung K đó

− Mức thứ hai là ngoài việc giao thức đảm bảo an toàn mức một thì giao thức phải có tính xác thực ẩn

− Mức thứ ba là mức thứ hai, ngoài ra cả hai bên chắc chắn về bên sẽ dùng chung khóa với mình, và thực sự đã có các giá trị khóa đó Tức là giao thức xác thực hiển và xác thực thực thể

2.2.1 Trao đổi khóa Diffie-Hellman

Trang 19

Giá trị aU và aV được chọn lại mỗi khi thực hiện giao thức nên đảm bảo tính mới (freshness) cho khóa K

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

Khi kẻ tấn công W nghe lén trên đường truyền, anh ta có thể thu được giá trị X và

Y Liệu rằng từ hai giá trị này anh ta có thể tính được K không? Cách đơn giản nhất

là anh ta đi tìm aU hoặc aV, muốn thế thì W phải giải được bài toán Diffie-Hellman trong trường *

p

Z , mà bài toán này đến nay vẫn còn là khó giải với p lớn bất kỳ

trong Zp-1 Tính αxymodp

2.2.1.3 Giao thức bị tấn công giữa dòng

W là một kẻ tấn công giữa dòng, nhận được các gói tin U và V gửi cho nhau rồi thay thế bằng các giá trị do W đưa ra như trong sơ đồ trên

1 U tính X = αa Umod p rồi gửi cho V

2 V lấy ngẫu nhiên aV sao cho 0 ≤a Vp− 2

3 V tính Y = αa V mod p rồi gửi cho U

4 U tính khóa chung

U V

a Y

K = = (α ) mod p=αa a V= mod p

V cũng tính được

K = X a V = (αa U)a V mod p= αa a V mod p

Trang 20

Sau khi thực hiện xong giao thức, U chia sẻ khóa bí mật K' =αa U a V′ modpvới W, còn

V thiết lập khóa K" =αa V a U′ modpvới W Khi U mã hóa văn bản gửi cho V, chỉ có W

có thể giải mã được, còn V thì không thể Nguợc lại, khi V gửi cho U, thì cũng chỉ

có W có thể giải mã được U và V cứ tưởng là đang trao đổi thông tin với nhau, chứ không phải là với W

2.2.2 Thỏa thuận khóa Station to Station (STS)

2.2.2.1 Giao thức STS

Giao thức do Difie, Van Oorschot, và Wiener đưa ra [6] Đây là giao thức thỏa thuận khóa có xác thực (xác thực thực thể và xác thực khóa) dựa trên trao đổi khóa Diffie-Hellman, nó khắc phục vấn đề tấn công giữa dòng trong giao thức trên Ngoài số nguyên tố p và phần tử sinh α công khai của hệ thống, mỗi người dùng U còn có thuật toán ký sigU cùng với thuật toán kiểm thử verU Giao thức này có sự tham gia của bên thứ ba TA có sơ đồ ký với thuật toán ký sigTA, thuật toán kiểm thử công khai là verTA Mỗi cá thể U sẽ có chứng chỉ:

C(U) = (ID(U), verU, sigTA(ID(U)), verU) trong đó ID(U) là thông tin xác định danh tính của U Hoạt động của giao thức được trình bày như trong Hình 2.2 dưới đây:

rồi gửi cho V

3 V lấy ngẫu nhiên aV, 0 ≤ aV ≤ p-2

4 V tính

p

Ya V mod sau đó tính

Trang 21

p X

U

u sig

rồi gửi (C(U), y U) cho V

8 V sử dụng ver U để kiểm thử y U , ver TA kiểm thử C(U)

2.2.2.2 Giao thức an toàn với tấn công giữa dòng

Thật vậy W không thể thay thế αa U bằng αa'U , hoặc sau khi nhận được αa V của V, thay thế nó bằng αa'V Vì để làm được điều này đồng nghĩa với việc anh ta phải thay

U sig α α thành ( a'U, a V)

U

Bằng cách sử dụng chữ ký, giao thức đã ngăn chặn được các tấn công giữa dòng Giao thức STS trên không cho phép xác nhận khóa, tuy nhiên nếu trong bước 4 ta lấy:

U

a

α

) , (

V

a sig α αα

) , ( a U a V

U sig α α

Trang 22

)) , ( ( a V a U

tả như trong Hình 2.3 dưới đây

Hình 2.3 Giao thức thỏa thuận khóa MTI

1 U sinh ngẫu nhiên rU thỏa mãn 0 ≤ rU ≤ p-2, rồi tính

sU = α mod p r U

2 U gửi (C(U), sU) cho V

3 V lấy ngẫu nhiên rV, 0 ≤ rV ≤ p-2, rồi tính

trong đó U lấy được bV từ C(V), còn V lấy được bU từ C(U)

Giống như trong giao thức trao đổi khóa Diffie-Hellman số nguyên tố p, phần tử nguyên thuỷ αlà các giá trị công khai ID(U) là danh tính của U, U giữ bí mật aU (0

≤ aU ≤ p-2), công khai giá trị:

bU = αa Umod p

TA công khai thuật toán kiểm thử chữ ký verTA giữ bí mật thuật toán ký sigTA Chứng chỉ C(U) của U gồm

Trang 23

C(U) = (ID(U), bU, sigTA(ID(U), bU))

2.2.3.2 Giao thức an toàn với tấn công thụ động

Các gói tin lưu chuyển trong giao thức có thể được mô tả như trong hình vẽ dưới đây:

Dễ thấy là MTI kháng lại được tấn công thụ động cũng như Diffie-Hellman, do việc giải bài toán MTI cũng khó như bài toán Diffie-Hellman Người ta đã chứng minh được rằng nếu giải được bài toán Diffie-Hellman thì cũng giải được bài toán MTI

và ngược lại

Bài toán MTI: Biết αamodp, αbmodp, αxmodp, αymodp, với các giá trị a, b,

x, y được lấy ngẫu nhiên trong trường Zp-1 Tính αax+bymodp

2.2.3.3 Giao thức xác thực ẩn

Giao thức MTI là xác thực khóa ẩn Giả sử rằng nếu không dùng chữ ký trong giao thức, kẻ tấn công W có thể thay đổi các giá trị mà U và V gửi cho nhau như trong hình vẽ dưới đây:

Trang 24

Khi đó U và V sẽ tính hai khóa khác nhau: U tính K = αr U a V+r Va U mod p, trong khi đó

V tính K'=αr Ua V+r V a Umod p Tuy nhiên W cũng không thể biết được các giá trị này

do không biết aU và aV Vậy thì ngay cả khi U và V không tính chung một giá trị khóa thì W cũng không thể xác định được các giá trị mà U và V có Nói cách khác

U (và V) được đảm bảo rằng chỉ có V (và U) mới có thể tính được khóa Do đó giao thức có tính xác thực khóa ẩn

Chú ý: Cả hai giao thức STS và MTI đều dựa trên giao thức trao đổi khóa

Diffie-Hellman, và đều kháng lại được tấn công giữa dòng Giao thức STS là giao thức 3 - lần qua (3 – pass – 3 lần chuyển văn bản trong giao thức) có sử dụng chữ ký, còn MTI là giao thức 2- lần qua (2 - pass) không cần sử dụng chữ ký

2.2.4 Giao thức Shamir

2.2.4.1 Giao thức trao đổi không cần chìa khóa

Giao thức do Adi Shamir phát minh ra nhưng chưa bao giờ được công bố chính thức [5], cho phép U và V truyền tin với nhau một cách an toàn mà không cần trao đổi trước chìa khóa Giao thức áp dụng cho các hệ mã có tính giao hoán:

EU(EV(P)) = EV(EU(P)) Khi U muốn gửi cho V bản tin M thì hai bên thực hiện giao thức hoạt động như Hình 2.3 dưới đây, trong đó U, V tương ứng là khóa bí mật của U, V:

Trang 25

Lưu ý: Không nên áp dụng thuật toán mã bằng phép XOR bit (dùng chìa là một xâu

bit còn thuật toán mã là trộn xâu bit đó với dữ liệu) [6] cho giao thức này mặc dù

nó thỏa mãn tính giao hoán Thật vậy nếu kẻ tấn công W nào đó “nghe trộm” được

cả ba bản mã C1, C2, C3

C1 = M⊕U

C2 = M⊕U⊕V

C3 = M⊕V thì hoàn toàn có thể tính được M:

C1 ⊕C2 ⊕C3 = (M⊕U)⊕(M⊕U⊕V)⊕(M⊕V) = M

2.2.4.2 Sự an toàn của giao thức

Shamir đã sử dụng thuật toán mã hóa tương tự RSA để dùng trong giao thức, trong

đó p là số nguyên tố lớn, e là khóa mã hóa thỏa mãn (e, p-1) = 1 Tính d sao cho ed

≡ 1 mod (p-1)

Mã hóa văn bản M : C = Me mod p

Giải mã thu được văn bản M = Cd mod p

Với cách sử dụng này nếu W muốn có được M thì anh ta buộc phải giải bài toán logarit rời rạc

Cũng giống như Diffie – Hellman, giao thức Shamir cho phép một bên truyền tin

mà không cần biết khóa của bên kia

2.2.5 Giao thức trao đổi khóa mã hóa - Encrypted Key Exchange (EKE)

2.2.5.1 Giao thức

Giao thức dùng để nhận diện lẫn nhau và sinh chìa khóa cho phiên làm việc do Steve Bellovin và Micheal Merritt đưa ra [4], sử dụng cả mã khóa đối xứng và mã khóa công khai theo cách tiếp cận: khóa bí mật được dùng để mã hóa khóa công khai sinh ngẫu nhiên, do đó không sợ kẻ gian tráo đổi các chìa khóa công khai

Trang 26

Bằng cách này hai bên tham gia giao thức không cần đến một bên thứ ba xác nhận

hộ chìa khóa công khai của nhau

Giao thức EKE tổng quát hoạt động như Hình 2.5 dưới đây Giả sử U và V (có thể

là hai thành viên, hoặc một thành viên và máy chủ) cùng biết mật khẩu P

5 U nhận tin, giải mã để thu được RU, RV Nếu RU đúnglà giá trị mà U

đã lấy ở bước (3) thì U sẽ mã hóa tiếp RV rồi gửi cho V

EK(RV)

6 V nhận tin này, giải mã để thu được xâu bit mà mình sinh ra Nếu

RV đúng là giá trị mà V đã lấy ở bước thứ (4), thì kết thúc quá trình truyền thông giữa U và V Trong quá trình truyền tin, khóa K được hai bên sử dụng như một khóa phiên

Đến bước (3), cả U & V đều biết K’ và K, trong đó K được sử dụng như là khóa trong phiên truyền tin giữa hai bên

2.2.5.2 Cài đặt giao thức

Trang 27

Trong thực tế giao thức EKE có thể triển khai với RSA, ElGamal, hoặc với Hellman Trong từng cài đặt cụ thể, giao thức có thể được đơn giản hóa dựa trên đặc thù của mỗi hệ mã

Diffie-2.2.5.3 Giao thức cho phép nhận diện lẫn nhau

Phần hỏi - đáp trong giao thức (từ bước (3) đến (6)) nhằm mục đích xác nhận Từ (3) đến (5), V chứng tỏ cho U thấy rằng mình biết khóa K; còn từ (4) đến (6) U chứng tỏ cho V rằng U biết K

2.2.5.4 An toàn giao thức

Kẻ tấn công E trên đường truyền chỉ có được EP(K’), EP(EK’(K)), và những văn bản

đã được mã hóa E có thể cố gắng đoán P (nếu U, V dùng mật khẩu dễ đoán thì rất

có thể điều này sẽ xảy ra), và kiểm tra lại các suy đoán của mình Tuy nhiên trong giao thức này E không thể thực hiện các kiểm tra của mình mà không thực hiện phép thám mã thuật toán công khai Và nếu K, K’ được lấy một cách ngẫu nhiên thì bài toán thám mã này gần như không thể thực hiện được

2.2.5.5 Làm mạnh thêm EKE

Để tăng thêm khả năng cho EKE chống lại sự thám mã bằng các giá trị K đã dùng trước đây, ở bước (3), U lấy thêm một xâu bit ngẫu nhiên SU và gửi cho V:

EK(RU || SU) Bước (4), V cũng lấy thêm một giá trị ngẫu nhiên SV, gửi cho U:

EK(RU || RV || SV) Sau đó U, V thống nhất với nhau sử dụng chìa khóa phiên S = SU ⊕ SV cho các trao đổi sau này, khi đó K chỉ còn là khóa để trao đổi khóa

Với cách làm này, giá trị S mà kẻ tấn công E thu được không cung cấp cho anh ta một chút thông tin gì về P (bảo vệ P), bởi vì trong giao thức không có phép toán nào sử dụng P để mã hóa thông tin liên quan trực tiếp đến S Tấn công trên K cũng

Trang 28

không khả thi do K chỉ được dùng để mã hóa dữ liệu ngẫu nhiên, còn S thì không

có chỗ nào mã hóa một mình

Một trong những lợi thế của EKE là, nếu biết phối hợp khéo léo, thì sức mạnh của

hệ thống sẽ được kết hợp thế mạnh của cả hai loại khóa sử dụng

2.2.6 Sơ đồ Girault

2.2.6.1 Giao thức thỏa thuận khóa tự xác thực

Giao thức thỏa thuận khóa không chứng chỉ do Girault đưa ra, là sự kết hợp giữa RSA và thuật toán rời rạc Sở dĩ giao thức có tên như thế là do nó cho phép người dùng “tự xác thực” khóa, theo nghĩa là chỉ có chính họ mới biết khóa bí mật, trái ngược với những giao thức mà bên uỷ quyền cũng biết khóa bí mật của mỗi người Với n = pq, trong đó p = 2p1 + 1, q = 2q1 + 1, p, q, p1, q1 là những số nguyên tố lớn Nhóm nhân *

Trong sơ đồ Girault, n, αlà các giá trị công khai, còn p, q, p1, q1 chỉ có TA biết Số

mũ mã hóa RSA e công khai do TA lấy, giữ bí mật d=e-1 mod Φ(n)

ID(U) là định danh của cá thể U TA sẽ cấp cho U khóa công khai tự xác thực pUbằng giao thức trong Hình 2.6 dưới đây:

Trang 29

Hình 2.6 TA cung cấp khóa công khai tự xác thực cho thành viên

1 U sinh ngẫu nhiên aU, rồi tính

từ các giá trị công khai pU, ID(U)

Sơ đồ Girault được trình bày như trong Hình 2.7 dưới đây:

Hình 2.7 Sơ đồ Girault

1 U sinh ngẫu nhiên rU rồi tính

sU = αr U mod n

2 U gửi ID(U), pU, và sU cho V

3 V lấy rV ngẫu nhiên và tính

sU = αr V mod n

4 V gửi ID(V), pV, và sV cho U

5 Khi đó U tính khóa chung

Trang 30

2.2.6.2 Giao thức an toàn với tấn công thụ động, tấn công chủ động

Hãy xem khả năng các khóa tự xác thực có thể bảo vệ giao thức trước một tấn công nào đó Vì TA không ký trên các giá trị bU, pU, và ID(U), nên người khác không thể kiểm thử được tính chính xác của các giá trị đó một cách trực tiếp Nếu kẻ tấn công

W giả mạo các thông tin của U (tức là các giá trị này không phải là những giá trị được sinh ra bởi quá trình truyền tin với TA) W giả mạo giá trị bU thành b′ U, nhưng nếu bài toán logarit rời rạc vẫn còn khó giải được thì W không thể tính được a′ U, mà khi không có b′ U, W không thể tính được khóa K Tấn công thụ động không thể xảy

ra

Tình huống này tương tự với việc W là kẻ tấn công chủ động W có thể làm cho U

và V không tính cùng một giá trị khóa chung, nhưng cũng không thể xác định được những giá trị mà U, V có Do đó, giống như MTI, sơ đồ cung cấp tính xác thực khóa

ẩn

Ở đây có thể ta sẽ đặt câu hỏi là tại sao TA lại yêu cầu U gửi cả giá trị aU trong khi

đó TA có thể tính được pU mà chỉ cần sử dụng bU Lý do của nó là TA phải tin chắc rằng U thực sự biết aU trước khi TA tính pU cho U Chúng ta sẽ phân tích kỹ hơn để thấy được sự cần thiết của điều này

Nếu kẻ tấn công W chọn một giá trị a’U nào đó, rồi tính:

b

b W′ = U′ − +

sau đó gửi b’W và ID(W) cho TA TA tính khóa công khai

n W

ID b

ID

b W′ − ≡ U′ −

Trang 31

W biết khóa K’ của V, còn V nghĩ rằng mình đang dùng chung khóa với U Vì thế

W sẽ giải mã được tất cả văn bản mà V gửi cho U

2.3 An toàn khóa trong các giao thức phân phối khóa

Giao thức phân phối khóa: Là quá trình nhờ đó một bên tạo ra hoặc ngược lại nhận

được một giá trị dùng làm bí mật (khóa), và chuyển cho bên kia một cách an toàn Phân phối khóa đôi khi còn được gọi là chuyển vận khóa

Trong phần này chúng ta sẽ nghiên cứu các giao thức phân phối có sự tham gia của một Trung tâm phân phối khóa (KDC – Key Distribution Center) được các thành viên trong hệ thống tin cậy Giao thức giả thiết rằng U và V tương ứng chia sẻ khóa

KU, KV với KDC Khi đó hoạt động của các giao thức dạng này có thể mô tả tổng quát như sau:

− U yêu cầu T (KDC) cung cấp một khóa phiên để truyền thông với V

− T sinh ngẫu nhiên khóa phiên K, gửi E K U (K)cho U và E K V (K)cho V

− U và V sử dụng KU, KV của mình giải mã để thu được khóa K

Trang 32

Vấn đề an toàn của giao thức:

- Khi TA phân phối bí mật cho U, V thì một thành viên của hệ thống có thể thu được khóa của U và V hay không, nếu không thì bao nhiêu người liên minh với nhau để tính được khóa của U và V?

2.3.1 Sơ đồ phân phối khóa Blom

2.3.1.1 Trình bày sơ đồ

Sơ đồ Blom [6] thường được dùng trong hệ thống mạng gồm n thành viên, các giá trị khóa được lấy trong trường Zp, trong đó p nguyên tố, p ≥ n, nếu k số nguyên thỏa mãn 1 ≤ k ≤ n-2 là số người nhiều nhất mà sơ đồ mong muốn còn giữ được an toàn thì TA sẽ phải chuyển k +1 giá trị trong Zp cho mỗi người qua kênh chuyển tin cậy U và V nếu muốn truyền thông với nhau sau đó sẽ tính khóa chung KU,V = KV,U

mà k người bất kỳ ngoại trừ U và V không thể xác định được giá trị khóa này Trước tiên luận văn sẽ trình bày sơ đồ trong trường hợp k = 1 như trong Hình 2.8 dưới đây

Hình 2.8 Sơ đồ phân phối khóa Blom (k=1)

1 Công khai số nguyên tố p của hệ thống, mỗi cá thể U công khai giá trị

rU∈Zp, giá trị này của mọi người là khác nhau

2 TA lấy ba giá trị ngẫu nhiên a, b, c ∈ Zp (không cần phải khác nhau), sau đó xây dựng đa thức:

p cxy

y x b a y x

f( , )= + ( + )+ )mod

3 TA xác định rồi chuyển cho mỗi người dùng U một đa thức

p r

x f x

g U( ) = ( , U ) mod

Với cách xác định như trên thì gU(x) là đa thức tuyến tính biến x, vì thế ta

có thể viết

g U (x) = a U + b U x

trong đó a U =a+br U modp, b U =b+cr U modp

4 U và V muốn truyền tin với nhau, hai người sẽ dùng khóa chung

Trang 33

p r

cr r r b a r r f K

K U,V = V,U = (U, V) = + (U + V) + U V mod

trong đó U tính KU, V bằng

) ( ) , (r U r V g U r V

còn V tính KU, V

) ( ) , (r U r V g V r U

2.3.1.2 Vấn đề an toàn của sơ đồ

Sơ đồ Blom với k=1 là an toàn tuyệt đối đối với bất kỳ người dùng nào

Thật vậy, giả sử nếu W là một thành viên của hệ thống muốn tính khóa của U, V

p r

cr r r b a

K U,V = + (U + V) + U V mod

W có thể biết các giá trị công khai rU, rV, cộng thêm những giá trị aW, bW TA gửi cho W, còn a, b, c thì không thể biết được, :

p br

a

a W = + W mod , b W =b+cr W modp

Với những thông tin mà W có thì giá trị bất kỳ lZ p đều có thể là khóa KU, V Xét

hệ phương trình được biểu diễn bởi ma trận (trong Zp) như dưới đây:

W

V U V U

b a l c b a r r

r r r r

1 0

0 1

1

Phương trình đầu tiên chính là giả thiết K U, V = l; phương trình thứ hai và thứ ba là những thông tin mà W biết Định thức của ma trận này là

) )(

( ) (

2

V W U W W V U V U

(các phép toán ở đây đều được thực hiện trong Zp) Do r Wr Ur Wr V, nên định thức trên khác không, do đó hệ phương trình có duy nhất nghiệm a, b, c Hay nói cách khác với những thông tin mà W có thì giá trị l bất kỳ đều có thể là khóa K U,V

của U và V

Trang 34

Tuy nhiên, nếu hai thành viên W, X nào đó sao cho {W, X} ∩ {U,V} = φ liên minh với nhau thì họ có thể xác định được a, b, c Thật vậy hệ phương trình:

X X

W W

W W

cr b b

br a a

cr b b

br a a

sẽ có duy nhất nghiệm a, b, c Một khi họ đã xác định được các giá trị này thì họ sẽ tính được tất cả các khóa của hai bên nào đó

Xuất phát từ chứng minh trên, làm sao để xây dựng sơ đồ an toàn với sự liên minh của k người nào đó, thế thì trong bước 2, TA sẽ sử dụng đa thức có dạng:

j i

a y

x f

0 0 , mod )

, (

trong đó a,jZp( 0 ≤ik , 0 ≤ jk), a,j =a ,ivới mọi i, j Phần còn lại của giao thức vẫn giữ nguyên

2.3.2 Hệ phân phối khóa Kerberos

Hình 2.9 Hệ phân phối khóa phiên Kerboros

1 U yêu cầu TA cung cấp khóa phiên để truyền tin với V

2 TA sinh ngẫu nhiên khóa phiên K, tem thời gian T, và thời gian sống L

Trang 35

(khóa phiên K chỉ có giá trị từ thời điểm T đến T+L)

d giải mã m2 để xác định K, T, L và ID(U), d K giải mã m3

thu được T và ID(U) Nếu thấy các giá trị T và ID(U) giải mã được khớp nhau thì V tính

) 1 (

4 =e T +

rồi gửi cho U

6 U dùng dK giải mã m4 và kiểm tra xem kết quả thu được có đúng là T+1 hay không

2.3.2.2 Vấn đề an toàn của sơ đồ

Trong giao thức, các văn bản m1, m2, m3 có chức năng hoàn toàn khác nhau, m1, m2

dùng để cung cấp tính an toàn quá trình chuyển K, trong khi đó m3, m4 được sử dụng để xác nhận khóa, cho phép U và V tin rằng người kia cũng sở hữu cùng một giá trị khóa phiên K với mình

Sử dụng tem thời gian T và thời gian sống L để kháng lại các tấn công chủ động dùng lại các văn bản sử dụng trước đó đã hết hiệu lực

Trở ngại chính của Kerboros là tất cả mọi người trong mạng phải có một đồng hồ đồng bộ, vì giao thức cần phải xác định thời điểm hiện tại để tính toán khoảng thời

Trang 36

gian còn hợp lệ của khóa Trong thực tế thực hiện điều này là rất khó, vì thế luôn có

Trong sơ đồ này TA sử dụng thuật toán kiểm thử verTA công khai, thuật toán ký sigTA, công khai số nguyên tố p, phần tử nguyên thủy α của Zp cho mọi người dùng trong mạng Mỗi cá thể U có một chứng chỉ được cấp phát một lần khi tham gia vào

Trang 37

2.3.3.2 Vấn đề an toàn của sơ đồ

Chúng ta sẽ xem xét tính an toàn của sơ đồ trước tấn công thụ động và chủ động Chữ ký trên chứng chỉ của người dùng chống lại các tấn công chủ động, vì rõ ràng không ai có thể thay đổi được giá trị bU (hay bV) đã được TA ký trong chứng chỉ Đối với các tấn công bị động, nếu W có các giá trị αa U modp và αa V modp, thì liệu anh ta có thể tính được αa U a V modp? Khi đó anh ta phải giải bài toán Diffie-Hellman, nếu bài toán giải được thì giao thức không an toàn với tấn công thụ động Cũng giống như giao thức Diffie-Hellman và một vài giao thức dựa trên nó, tính an toàn của sơ đồ trước các tấn công bị động nằm trong tính khó giải của bài toán Diffie – Hellman

2.3.4 An toàn khóa trong các sơ đồ chia sẻ bí mật

Có những bí mật chung của một nhóm người nào đó mà chỉ khi có đủ các thành viên trong nhóm mới có thể giải mã được Mô hình phổ biến giải quyết vấn đề này

là các sơ đồ ngưỡng tức là dữ liệu được chia thành n gói (gọi là các hình chiếu - shadow) sao cho có m gói thì sẽ khôi phục được dữ liệu, còn mọi tập con không quá (m - 1) gói thì không thể

Hình 2.10 Giao thức phân phối khóa Diffie-Hellman

1 V tính

p p

b

K a V a U a V

U V

trong đó giá trị bU lấy từ chứng chỉ của U

2 U tính

p p

b

V U

V, = mod =α α mod

giá trị bV lấy từ chứng chỉ của V

Trang 38

Trong phần này chúng ta sẽ xem xét một sơ đồ ngưỡng tiêu biểu do Shamir đưa ra

Sơ đồ này dựa trên nội suy đa thức: đa thức y= f (x) bậc t-1 xác định duy nhất nhờ

t điểm (xi, yi) Hoạt động của giao thức như trong Hình 2.11 dưới đây

Sơ đồ ngưỡng Shamir có các tính chất sau đây:

• hoàn hảo theo nghĩa nếu có ít hơn t giá trị thì mọi giá trị nằm trong khoảng [0, p-1] đều có thể là S

• lý tưởng theo nghĩa là độ dài bit của các chia sẻ bằng với độ dài bit của S

• khả năng mở rộng khi có thêm người dùng mới T tính thêm rồi chuyển giá trị cho người sử dụng mới gia nhập hệ thống, những giá trị của những người khác không hề thay đổi

Hình 2.11 Sơ đồ ngưỡng Shamir

1 Phân phát các gói: Trung tâm T lấy giá trị bí mật S ≥ 0, chia cho n người

a T lấy số nguyên tố p > max(S, n), và đặt a0 = S

b T lấy độc lập, ngẫu nhiên t - 1 hệ số a1, a2, …,at-1, 0 ≤ aj ≤ p-1, xác định một đa thức ngẫu nhiên trên Zp, ∑−

f

c T tính các Si = f(i) mod p, 1 ≤ i ≤ n (hoặc có thể lấy n giá trị phân biệt nằm trong khoảng 1÷ p− 1 ), rồi chuyển Si cho Pi, cùng với chỉ số i công khai

2 Tập hợp các chia sẻ Bất kỳ một nhóm t người hoặc nhiều hơn đóng góp các chia sẻ của mình, sẽ có t điểm khác nhau (x, y) = (i, Si), khi đó sẽ tính được các hệ số aj, 1≤ jt−1, của đa thức f(x) bằng hai cách (sử

dụng nội suy, giải hệ phương trình) Khi đó S sẽ tính được nhờ

S a

f( 0 ) = 0 =

Trang 39

• dễ dàng thay đổi mức độ điều khiển Thành viên nào càng có nhiều giá trị thì

càng chi phối nhiều hơn vào quá trình tính S

• không có giả thiết nào không thể chứng minh được Không giống như nhiều

sơ đồ mã hóa khác, tính an toàn đặt dưới một giả thiết chưa được chứng minh đúng đắn bằng Toán học, sơ đồ ngưỡng không có một giả thiết nào không thể chứng minh được

Tổng quát

Ta tổng quát hóa sơ đồ ngưỡng lên như sau Đưa ra tập tất cả người dùng P, xác

định U (cấu trúc truy nhập) là tập các tập con, được gọi là các tập con được quyền

của P Các gói được tính toán và phân phối sao cho khi kết hợp các gói của các

thành viên trong một tập con A ∈ U sẽ thu được giá trị của S, nhưng nếu kết hợp

các gói của những người trong tập con B P, B∉U sẽ không thể tính được giá trị của S

Các sơ đồ ngưỡng là lớp đặc biệt của sơ đồ chia sẻ bí mật tổng quát, trong đó cấu trúc truy nhập bao gồm tất cả các tập con có t người

2.4 An toàn khóa trong các giao thức chuyển vận khóa

Như ta đã nói trong mục 2.3 chuyển vận khóa chính là phân phối khóa Tuy nhiên trong phần này chủ yếu trình bày giao thức chuyển vận khóa dựa trên mã khóa công khai, trong đó một bên sẽ lấy khóa đối xứng rồi chuyển cho bên kia bằng cách sử dụng khóa công khai của bên đó để mã hóa Với cách làm như vậy, giao thức cho phép xác thực khóa với bên gửi vì chắc chắn rằng chỉ có bên có khóa bí mật tương ứng với khóa công khai dùng để mã hóa mới có thể thu được giá trị khóa đối xứng

đó

Vấn đề an toàn đặt ra đối với các giao thức loại này khi U đã chắc chắn rằng chỉ có

V mới thu được khóa thì ngoài ra:

- U cần chắc chắn thêm rằng:

o V đã nhận đúng giá trị khóa và thực sự đã có giá trị đó

Ngày đăng: 18/02/2014, 23:10

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Phan Đình Diệu (2002), Lý thuyết mật mã & an toàn thông tin, Nhà xuất bản Đại học Quốc gia Hà nội Sách, tạp chí
Tiêu đề: Lý thuyết mật mã & an toàn thông tin
Tác giả: Phan Đình Diệu
Nhà XB: Nhà xuất bản Đại học Quốc gia Hà nội
Năm: 2002
[2] Phạm Huy Điển – Hà Huy Khoái (2003), Mã hóa thông tin - Cơ sở Toán học & ứng dụng, Nhà xuất bản Đại học Quốc gia Hà nội Sách, tạp chí
Tiêu đề: Mã hóa thông tin - Cơ sở Toán học & ứng dụng
Tác giả: Phạm Huy Điển – Hà Huy Khoái
Nhà XB: Nhà xuất bản Đại học Quốc gia Hà nội
Năm: 2003
[3] Hà Huy Khoái (1997), Nhập môn số học thuật toán, Nhà xuất bản Khoa học.Tiếng Anh Sách, tạp chí
Tiêu đề: Nhập môn số học thuật toán
Tác giả: Hà Huy Khoái
Nhà XB: Nhà xuất bản Khoa học. Tiếng Anh
Năm: 1997
[4] A.J. Menezes, P.C. Van Oorschot, S.A. Vanstone (1997), Handbook of Applied Cryptography, CRC Press Sách, tạp chí
Tiêu đề: Handbook of Applied Cryptography
Tác giả: A.J. Menezes, P.C. Van Oorschot, S.A. Vanstone
Năm: 1997
[5] Bruce Schneier (1996), Applied Cryptography – Protocols, Algorithms and Source Code in C, John Wiley & Sons, Inc Sách, tạp chí
Tiêu đề: Applied Cryptography – Protocols, Algorithms and Source Code in C
Tác giả: Bruce Schneier
Năm: 1996
[6] Douglas R.Stinson (1995), Cryptography – Theory and Practice, CRC Press Sách, tạp chí
Tiêu đề: Cryptography – Theory and Practice
Tác giả: Douglas R.Stinson
Năm: 1995
[7]. Jan Li (2000), Public key infrastructure technology introduction, Intel Semiconductor Ltd Sách, tạp chí
Tiêu đề: Public key infrastructure technology introduction
Tác giả: Jan Li
Năm: 2000
[8] S. Goldwasser, M.Bellare (2001), Lecture notes on Cryptography, MIT Laboratory of Computer Science Sách, tạp chí
Tiêu đề: Lecture notes on Cryptography
Tác giả: S. Goldwasser, M.Bellare
Năm: 2001
[9] Steven M. Bellovin & Michael Merritt (1992), Encrypted Key Exchange: Password Based Protocols Secure Against Dictionary Attacks. The IEEE Symposium on Research in Security and Privacy Oakland May 1992 Sách, tạp chí
Tiêu đề: Encrypted Key Exchange: "Password Based Protocols Secure Against Dictionary Attacks
Tác giả: Steven M. Bellovin & Michael Merritt
Năm: 1992
[10] William Stalling (1998), Cryptography and network security – Principles and Practice, 2 nd ed., Prentice Hall, Inc Sách, tạp chí
Tiêu đề: Cryptography and network security – Principles and Practice
Tác giả: William Stalling
Năm: 1998
[11] (1998) An Introduction to Cryptography, Network Associates Inc Sách, tạp chí
Tiêu đề: An Introduction to Cryptography

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Giao thức Diffie-Hellman - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 2.1 Giao thức Diffie-Hellman (Trang 19)
Hình 2.2 Giao thức STS - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 2.2 Giao thức STS (Trang 20)
Hình 2.3 Giao thức thỏa thuận khóa MTI - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 2.3 Giao thức thỏa thuận khóa MTI (Trang 22)
Hình 2.4 Giao thức Shamir - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 2.4 Giao thức Shamir (Trang 24)
Hình 2.6 TA cung cấp khóa công khai tự xác thực cho thành viên - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 2.6 TA cung cấp khóa công khai tự xác thực cho thành viên (Trang 29)
Sơ đồ Girault được trình bày như trong Hình 2.7 dưới đây: - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
irault được trình bày như trong Hình 2.7 dưới đây: (Trang 29)
Sơ đồ Blom với k=1 là an toàn tuyệt đối đối với bất kỳ người dùng nào. - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
lom với k=1 là an toàn tuyệt đối đối với bất kỳ người dùng nào (Trang 33)
Hình 2.10 Giao thức phân phối khóa Diffie-Hellman - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 2.10 Giao thức phân phối khóa Diffie-Hellman (Trang 37)
Sơ đồ này dựa trên nội suy đa thức: đa thức  y = f (x )  bậc t-1 xác định duy nhất nhờ  t điểm (x i , y i ) - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Sơ đồ n ày dựa trên nội suy đa thức: đa thức y = f (x ) bậc t-1 xác định duy nhất nhờ t điểm (x i , y i ) (Trang 38)
Hình 2.12 Giao thức Beller-Yacobi 4-lần qua - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 2.12 Giao thức Beller-Yacobi 4-lần qua (Trang 43)
Hình 2.13 Giao thức Beller-Yacobi 2-lần qua - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 2.13 Giao thức Beller-Yacobi 2-lần qua (Trang 45)
Hình 3.2: Cây nhị phân (3 đỉnh lá màu đen, 1 đỉnh trong) - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 3.2 Cây nhị phân (3 đỉnh lá màu đen, 1 đỉnh trong) (Trang 52)
Hình 3.3: Cây xác thực. - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 3.3 Cây xác thực (Trang 53)
Hình 3.4 Các vùng riêng biệt - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 3.4 Các vùng riêng biệt (Trang 62)
Hình 3.5 Mô hình tin cậy có thứ bậc chặt chẽ  3.4.2.3. Chứng chỉ ngược thứ bậc và mô hình tổng quát - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 3.5 Mô hình tin cậy có thứ bậc chặt chẽ 3.4.2.3. Chứng chỉ ngược thứ bậc và mô hình tổng quát (Trang 63)
Hình 3.6 Mô hình tin cậy ngược thứ bậc. - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 3.6 Mô hình tin cậy ngược thứ bậc (Trang 64)
Hình 3.7 Mô hình tin cậy  tổng quát - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 3.7 Mô hình tin cậy tổng quát (Trang 64)
Hình 4.1 Chồng giao thức SSL - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 4.1 Chồng giao thức SSL (Trang 68)
Hỡnh vẽ dưới đõy sẽ chỉ rừ hơn toàn bộ hoạt động của giao thức SSL Record: - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
nh vẽ dưới đõy sẽ chỉ rừ hơn toàn bộ hoạt động của giao thức SSL Record: (Trang 69)
Hình 4.3 Hoạt động giao thức Handshake - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 4.3 Hoạt động giao thức Handshake (Trang 71)
Hình 4.4 Kỹ thuật kết khối an toàn gói tin Internet - các giao thức an toàn khóa trong trao đổi, phân phối và chuyển vận khóa
Hình 4.4 Kỹ thuật kết khối an toàn gói tin Internet (Trang 75)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w