Luận văn Vai trò chìa khoá trong các giải pháp bảo mật và an toàn thông tin

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

Nguyễn ThịHiền Luận văn thạc sỹ 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

Nguyễn ThịHiền Luận văn thạc sỹ 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

pdf78 trang | Chia sẻ: netpro | Lượt xem: 1794 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Vai trò chìa khoá trong các giải pháp bảo mật và an toàn thông tin, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
í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: nb UaU mod ′=′ α và lấy )()( WIDUIDbb UW +−′=′ sau đó gửi b’W và ID(W) cho TA. TA tính khóa công khai nWIDbp dWW mod))(( −′=′ cho W. Ta thấy rằng )(mod )()( nUIDbWIDb UW −′≡−′ Nguyễn Thị Hiền Luận văn thạc sỹ 31 hay UW pp ′=′ . Sau này, khi U và V thực hiện giao thức, W có thể thay thế thông tin như hình vẽ dưới đây: V sẽ tính khóa K’ = UVVU arar ′+′α mod n trong khi đó U sẽ tính khóa K = UVVU arar +α mod n W có thể tính được K’ = UeV a V rVIDps U ′+′ ))(( mod n 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 )(KE UK cho U và )(KE VK cho V. − U và V sử dụng KU, KV của mình giải mã để thu được khóa K. U W V ID(U), p’U, Ur ′α mod n ID(V), p’V, Vr ′α mod n ID(V), pV, Vrα mod n ID(U), pU, Urα mod n Nguyễn Thị Hiền Luận văn thạc sỹ 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: pcxyyxbayxf mod ))(),( +++= 3. TA xác định rồi chuyển cho mỗi người dùng U một đa thức prxfxg UU 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 gU(x) = aU + bUx trong đó pbraa UU mod += , pcrbb UU mod += 4. U và V muốn truyền tin với nhau, hai người sẽ dùng khóa chung Nguyễn Thị Hiền Luận văn thạc sỹ 33 prcrrrbarrfKK VUVUVUUVVU mod )(),(,, +++=== trong đó U tính KU, V bằng )(),( VUVU rgrrf = còn V tính KU, V )(),( UVVU rgrrf = 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 prcrrrbaK VUVUVU 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, : pbraa WW mod += , pcrbb WW mod += Với những thông tin mà W có thì giá trị bất kỳ pZl ∈ đề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 w W W VUVU b a l c b a r r rrrr 10 01 1 Phương trình đầu tiên chính là giả thiết lKU, V = ; 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 VWUWWVUVUW rrrrrrrrrr −−=+−+ (các phép toán ở đây đều được thực hiện trong Zp). Do UW rr ≠ và VW rr ≠ , 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 VUK , của U và V. Nguyễn Thị Hiền Luận văn thạc sỹ 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:    += += += += XX XX WW WW crbb braa crbb braa 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: ∑∑ = = = k i k j ji ji pyxayxf 0 0 , mod ),( trong đó )0 ,0( , kjkiZpa ji ≤≤≤≤∈ , ijji aa ,, = vớ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 2.3.2.1. Trình bày sơ đồ Hệ phân phối Kerberos [6] là hệ dựa trên mã khóa bí mật, sinh khóa cho mỗi phiên truyền thông giữa hai người nào đó. Mỗi thành viên U trong mạng chia sẻ một khóa bí mật DES KU với TA. Mỗi khi có nhu cầu truyền thông với V, U sẽ yêu cầu TA cấp một khóa phiên cho cho cả U và V. Khi TA nhận được yêu cầu này từ U, nó sẽ ghi lại thời gian yêu cầu T (tem thời gian), và xác định khoảng thời gian sống L của khóa K (khoảng thời gian khóa K còn hợp lệ). Hoạt động của giao thức được trình bày như trong Hình 2.9 dưới đây. 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 Nguyễn Thị Hiền Luận văn thạc sỹ 35 (khóa phiên K chỉ có giá trị từ thời điểm T đến T+L). 3. TA tính )||||)(||(1 LTVIDKem UK= )||||)(||(2 LTUIDKem VK= rồi gửi m1, m2 cho U 4. U dùng hàm UK d giải mã để thu được K, T, L và ID(V). Sau đó tính )||)((3 TUIDem K= rồi gửi m2, m3 cho V. 5. V sử dụng VK d giải mã m2 để xác định K, T, L và ID(U), Kd 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 += Tem K 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 Nguyễn Thị Hiền Luận văn thạc sỹ 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ó độ chênh lệch nhất định. 2.3.3. Hệ phân phối khóa Diffie – Hellman 2.3.3.1. Trình bày giao thức Để sử dụng được Kerboros thì TA luôn luôn phải trực tuyến (on-line), đôi lúc điều này có thể dẫn đến lãng phí tài nguyên và tình trạng thắt cổ chai... Giao thức thỏa thuận khóa Diffie-Hellman [4] được xây dựng từ giao thức trao đổi khóa Diffie- Hellman cho phép TA không phải biết và chuyển bất kỳ thông tin bí mật nào về khóa của các bên tham gia truyền tin khi thiết lập khóa chung. 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 hệ thống C(U) = (ID(U), bU, sigTA(ID(U), bU)) trong đó pb UaU modα= , aU là giá trị bí mật, ID(U) là thông tin xác định danh tính U. Hoạt động của giao thức được mô tả trong Hình 2.10 Nguyễn Thị Hiền Luận văn thạc sỹ 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ị pUa modα và pVa modα , thì liệu anh ta có thể tính được pVU aa modα ? 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 ppbK VUV aaaUVU modmod, α== trong đó giá trị bU lấy từ chứng chỉ của U 2. U tính ppbK VUU aaVUV modmod, αα== giá trị bV lấy từ chứng chỉ của V. Nguyễn Thị Hiền Luận văn thạc sỹ 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 )(xfy = 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, ∑− = = 1 0 )( t j j j xaxf 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 11 −÷ p ), 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, 11 −≤≤ tj , 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ờ Saf == 0)0( . Nguyễn Thị Hiền Luận văn thạc sỹ 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ị đó. Nguyễn Thị Hiền Luận văn thạc sỹ 40 o Đúng là bên mà mình cần chuyển sẽ nhận được khóa. - Bên nhận V cần chắc chắn: o Người gửi cho mình đúng là U. Giải pháp cho vấn đề này là sử dụng chữ ký, có thể ký trên văn bản vừa mã hóa bằng khóa công khai, hoặc ký trên văn bản rồi mới thực hiện mã hóa, hoặc gửi cả bản có chữ ký trên văn bản và bản mã hóa văn bản bằng khóa công khai. Đó chính là các giao thức chúng ta sẽ nghiên cứu trong phần này. 2.4.1. Giao thức không sử dụng chữ ký Giao thức một lần chuyển U chuyển cho V gói tin: PV(k || U) Giao thức là xác thực ẩn như đã nói ở trên. Còn đối với bên nhận V thì không có gì đảm bảo rằng U đúng là người đã chuyển cho mình gói tin đó. Nếu giao thức có sử dụng tem thời gian thì có thể kháng lại được tấn công biết khóa (nếu khóa đã dùng trước đây bị lộ thì khóa dùng sau này cũng bị lộ), tức là khi đó U sẽ chuyển cho V: PV(k, TU). 2.4.2. Giao thức có sử dụng chữ ký Sử dụng chữ ký là một cách thức để giao thức chuyển vận xác thực nguồn gốc dữ liệu cho bên nhận. Giao thức có thể thực hiện ký trên khóa rồi mã hóa, hoặc mã hóa xong rồi ký, hoặc ký và mã hóa riêng. Ta ký hiệu SU(y), PV(y) là chữ ký trên y dùng khóa bí mật của U, và mã khóa công khai trên y dùng khóa của V. 2.4.2.1. Ký trên khóa rồi thực hiện mã hóa • Giao thức U gửi cho V: PV(k || tU* || SU(V || k || tU*)) Nguyễn Thị Hiền Luận văn thạc sỹ 41 tU là tem thời gian do U chọn (dấu * để chỉ giá trị không bắt buộc phải có trong gói tin giao thức) • Vấn đề an toàn của giao thức Nếu có tU việc xác thực U với V thuận tiện hơn, ngoài ra nó cũng đảm bảo tính mới của khóa. Danh tính của V được đưa vào trong văn bản ký nhằm ngăn chặn không cho V đóng giả U gửi cho người khác. So với phương pháp mã hóa xong rồi ký mà ta sẽ nói đến ngay sau đây thì phương pháp này có nhược điểm là dữ liệu để mã hóa thường lớn hơn, vì thế có thể phải điều chỉnh kích thước khối trong sơ đồ mã hóa công khai. (sử dụng CBC [6]) Nếu thuật toán ký khả nghịch tức là từ chữ ký có thể thu được văn bản gốc, U chỉ cần chuyển cho V: U→V: PV(SU(V || k || tU*)) 2.4.2.2. Mã hóa và ký riêng • Giao thức Với những sơ đồ ký không cho phép xác định bản rõ từ chữ ký, thay vì mã hóa trên chữ ký, ta sẽ thực hiện ký trên khóa và mã hóa khóa riêng biệt. Văn bản của giao thức có dạng: U→V: PV(k || tU*), SU(V || k || tU*) Nếu khóa k chỉ dùng để mã hóa tệp dữ liệu y nào đó, thì thay cho k ta sẽ dùng SU(V || Ek(y) || tU*). Giao thức này rất phù hợp với các ứng dụng lưu và chuyển tiếp: dữ liệu y cùng với thông tin về khóa được chuyển cho bên kia, bên nhận thu được y bằng cách sử dụng k để giải mã tệp sau đó mới kiểm thử chữ ký trên y. 2.4.2.3. Mã hóa khóa rồi ký • Giao thức Ngược lại với cách ký trên bản mã khóa, U muốn chuyển cho V khóa k có thể gửi gói tin như sau: Nguyễn Thị Hiền Luận văn thạc sỹ 42 U→V: tU*, PV(U || k), SU(V || tU* || PV(U || k)) Thông tin về V được đưa vào trong phần ký để chống lại việc lột bỏ (stripping) chữ ký – không cho phép kẻ tấn công W nào đó lấy được giá trị PV(k) rồi ký đè lên bằng khóa của mình. Hơn nữa, khi chọn thuật toán mã hóa, lưu ý rằng nó phải đảm bảo W không thể thay đổi PV(U || k) thành PV(W || k). • Tính an toàn của giao thức Bằng cách dùng tem thời gian, giao thức cho phép các bên xác thực lẫn nhau. 2.4.3. Giao thức lai Không chỉ thuần sử dụng một hệ mật mã nào đó, đôi khi có những giao thức sử dụng mã khóa đối xứng trong cả mã khóa công khai và chữ ký điện tử, giao thức Beller-Yacobi là một ví dụ như thế. Những giao thức sử dụng cả kỹ thuật mã khóa đối xứng và mã khóa công khai được gọi là giao thức lai. 2.4.3.1. Giao thức Beller-Yacobi 4 - lần qua (4-pass) • Giao thức Khi hai bên tham gia vào quá trình truyền tin có sự chênh lệch về khả năng xử lý thì ngoài yêu cầu giao thức đảm bảo việc chuyển khóa an toàn nó còn phải hạn chế đến mức ít nhất các phép toán cần thực hiện tại bên yếu hơn (ít tài nguyên hơn, khả năng xử lý, tính toán kém hơn). Về cơ bản trong giao thức, U tự xưng danh với V bằng cách ký trên một văn bản ngẫu nhiên m, trong khi V xưng danh với U thông qua việc chứng tỏ những hiểu biết của mình về khóa K mà chỉ có V mới xác định được. Để thuận tiện cho việc trình bày ta sẽ sử dụng RSA với giá trị mũ công khai e = 3, mặc dù trong thực tế người ta thường dùng Rabin vì tính hiệu quả của nó. Ký hiệu EK(y) là bản mã khóa đối xứng của y bằng thuật toán E sử dụng khóa K, PX(y) tương ứng với bản mã bằng khóa công khai của X trên y, ngược lại SX(y) là Nguyễn Thị Hiền Luận văn thạc sỹ 43 kết quả giải mã bằng khóa bí mật của X trên y. IX là xâu bit xác định danh tính của X. h(y) là giá trị băm y. Ủy quyền T chọn số nguyên tố nS, phần tử sinh α nhóm nhân modulo nS, số nguyên tố p, q, công khai n = pq và eT = 3, giữ bí mật dT thỏa mãn 1≡TT de mod (p-1)(q-1). Mỗi bên (U và V) được T gửi khóa công khai có xác thực và một xâu xác định danh tính ),(, α ST nn , IX. Ta quy ước bên U là bên yếu hơn. Hoạt động của giao thức được mô tả như trong Hình 2.12 dưới đây: Hình 2.12 Giao thức Beller-Yacobi 4-lần qua Trước khi thực hiện giao thức U lấy ngẫu nhiên số a thỏa mãn 21 −≤≤ Sna , tính SaU nmodαν = là chữ ký ElGamal rồi chuyển Uν cho T, T xây dựng và gửi chứng chỉ cho U: ),,( UUUU GIcert ν= bao gồm danh tính IU của U, khóa công khai ký ElGamal, chữ ký RSA GU của T trên các thông tin đó: TdUUTU nUIUhISG T mod),((),( νν == . 1. U lấy ngẫu nhiên x sao cho 21 −≤≤ Snx và giữ bí mật, rồi tính: S x nmodαϑ = ; )1(mod1 −− Snx ; )1mod( −Snav . (x phải được lấy mới trong mỗi lần ký đảm bảo tính an toàn của ElGamal, và nguyên tố cùng nhau với 1−Sn để tồn tại 1−x ). 2. V gửi U ),,( VVVV GIcert ν= (1) 3. U kiểm tra tính xác thực của Vn bằng: TVVV nGnIh mod),( 3= . U lấy khóa ngẫu nhiên K sao cho 11 −<< VnK và gửi cho V Y = VV nKKP mod)( 3= (2) 4. V giải mã thu được K = SV(Y) = VdY mod nV sau đó lấy ngẫu nhiên m Nguyễn Thị Hiền Luận văn thạc sỹ 44 ∈ Z, nối thêm vào m t ( 50≈t ) số 0, mã hóa bằng khóa K, rồi gửi cho U { } )0||( tK mE (3) 5. U nhận được gói tin thì giải mã ra rồi kiểm tra xem nó có dạng t bit 0 ở cuối hay không; nếu đúng, U biết là V có khóa K. U tạo ra M = m||IV, tính 1)( −−≡ xaMw ϑ mod nS-1, rồi gửi cho V )||),(( UK certwE ϑ (4) (Ở đây ),( wϑ là chữ ký theo sơ đồ ElGamal của U trên M, và ),,( UUUU GIcert ν= . Danh tính IU trong M được dùng để loại trừ khả năng bị tấn công giữa dòng.) 6. V giải mã văn bản nhận được từ U, kiểm tra lại tính xác thực của rU: TUUU nGIh mod),( 3=ν , V xây dựng được M = m || IV với m đã lấy ở trên cùng với định danh của nó, sau đó kiểm thử chữ ký của U trên m bằng cách kiểm tra: SUM nmodWϑνα ϑ≡ . Nếu đúng, V chấp nhận U với danh tính IU chính là bên sinh ra K. • Vấn đề an toàn khóa của giao thức Trong giao thức mỗi bên phải thực hiện ít nhất một phép toán mã hóa với khóa bí mật chứng tỏ sự hiểu biết của mình về khóa, và một hoặc hai phép toán với khóa công khai (kiểm thử danh tính) vì thế mà cho phép xác thực lẫn nhau. 2.4.3.2. Giao thức Beller-Yacobi 2 - lần qua • Giao thức Thay đổi giao thức Beller-Yacobi 4-lần qua ta sẽ được giao thức 2-lần qua như trong Hình 2.13 dưới đây: Nguyễn Thị Hiền Luận văn thạc sỹ 45 • Vấn đề an toàn khóa của giao thức So với Beller-Yacobi 4-lần qua khả năng xác thực của giao thức 2-lần qua có yếu hơn, nhưng không đáng kể: V nhận được xác thực về U và khóa K chỉ có U biết, trong khi U cũng chắc chắn rằng khóa K chỉ có V biết. Nếu muốn U cũng nhận được xác thực về V thì giao thức cần thêm vào một gói tin nữa. Ở đây có thể sẽ xảy ra hiệu ứng không mong muốn nếu lấy khóa phiên K = t, khi đó U không thể tác động lên giá trị khóa, giao thức sẽ trở thành thỏa thuận khóa. Vì thế thay vào đó U sẽ chọn ngẫu nhiên x, lấy K = x, rồi mã hóa x gửi đi cùng w. Hình 2.13 Giao thức Beller-Yacobi 2-lần qua 1. V chọn ngẫu nhiên m rồi gửi m, ),,( VVVV GIcert ν= cho U 2. U xây dựng chữ ký ElGamal (t, w) trên M = (m, IV), lấy t làm khóa phiên K = t rồi gửi cho V: PV(t), Er(certU || w). 3. V giải mã gói tin U gửi cho để thu được t (= K), sau đó lấy giá trị này để giải mã certU và w, rồi kiểm thử certU và chữ ký (t, w) trên M = m||IV. Nguyễn Thị Hiền Luận văn thạc sỹ 46 Chương 3 - KỸ THUẬT QUẢN TRỊ VÀ KIỂM TRA VIỆC SỬ DỤNG KHÓA 3.1. Quản trị khóa Quan hệ khóa là trạng thái trong đó các thực thể truyền thông chia sẻ dữ liệu chung (chất liệu khóa) để làm thuận tiện cho các kỹ thuật mã hóa. Dữ liệu này có thể các khóa công khai, bí mật, các giá trị khởi tạo, các tham số công khai khác. Quản trị khóa là các kỹ thuật hay thủ tục hỗ trợ cho việc thiết lập và duy trì một quan hệ khóa giữa các bên được phép. Cụ thể là các công việc: 1. tạo người dùng hệ thống mới trong vùng; 2. tạo sinh, phân phối, cài đặt chất liệu khóa; 3. điều phối việc sử dụng chất liệu khóa; 4. cập nhật, thu hồi, huỷ bỏ chất liệu khóa; 5. lưu giữ, sao lưu, phục hồi chất liệu khóa. Lý do phải quản trị khóa Quản trị khóa đóng vai trò quan trọng trong hệ thống mã hóa, nó là nền tảng để thực hiện được các kỹ thuật nhận thực thực thể, xác nhận nguồn gốc dữ liệu, toàn vẹn dữ liệu, và chữ ký điện tử một cách an toàn. Nếu hệ thống có sử dụng các kỹ thuật quản trị khóa một cách hợp lý, nó có thể kháng lại các mối đe dọa sau: 1. lộ khóa bí mật 2. không còn đảm bảo tính xác thực của khóa bí mật & công khai. Tính xác thực ở đây được xem là những hiểu biết và khả năng kiểm thử được định danh của bên nhận đối với bên gửi. 3. thực hiện những thao tác không được phép trên khóa công khai & khóa bí mật. 3.2. Các kỹ thuật quản trị 3.2.1 Các kỹ thuật phân phối khóa bí mật Nguyễn Thị Hiền Luận văn thạc sỹ 47 Khóa bí mật mà ta nói đến ở đây là các khóa của hệ mã khóa đối xứng và các khóa riêng trong hệ mã khóa công khai. Trong phần này chúng ta sẽ nghiên cứu hai kỹ thuật phân phối khóa bí mật phổ biến nhất một dựa trên việc phân lớp sử dụng khóa, một dựa trên chứng chỉ và Trung tâm chuyển khóa. 3.2.1.1. Phân lớp khóa Người ta phân loại khóa dựa trên mức độ quan trọng của chúng như sau: 1. khóa chính (master key): khóa ở mức cao nhất trong cây phân cấp, thông thường không bảo vệ bằng mã hóa. Chúng thường được phân phối bằng tay, hoặc thông qua các thủ tục, các phần cứng vật lý. 2. khóa mã hóa khóa (key - encrypting keys): khóa đối xứng hay các khóa công khai dùng để chuyển vận hay lưu giữ các khóa khác, sự an toàn của các khóa đó phụ thuộc vào chúng. 3. khóa dữ liệu (data keys): dùng trong các phép toán mã hóa (hay xác thực) trên dữ liệu. Chúng có thể là các khóa phiên (trong hệ mã đối xứng). Khóa riêng trong sơ đồ chữ ký cũng có thể là khóa dữ liệu (tuy nhiên loại này thường được dùng trong thời gian dài). Khóa ở mức cao được sử dụng để bảo vệ khóa ở mức thấp hơn. Mục đích chính của việc làm này để tăng thêm độ khó cho các tấn công, và hạn chế bớt thiệt hại khi có khóa nào đó bị lộ. Chẳng hạn khi khóa mã hóa khóa bị lộ, tệ hơn nữa là khóa chính thì sẽ ảnh hưởng tới sự an toàn của tất cả các khóa ở mức dưới, nhưng khi khóa mã hóa dữ liệu nào đó bị lộ thì không ảnh hưởng tới các khóa ở mức trên. Ngoài ra người ta có thể phân chia khóa dựa trên khoảng thời gian còn hợp lệ của chúng thành khóa vĩnh cửu (dùng mãi mãi) và khóa phiên (chỉ dùng trong một phiên giao dịch hoặc trong khoảng thời gian nhất định). Khóa vĩnh cửu thường được dùng trong những ứng dụng lưu trữ dữ liệu, còn khóa phiên thường được dùng trong những ứng dụng truyền thông. Khóa dùng lâu dài chủ yếu được dùng để bảo vệ khóa phiên. Nguyễn Thị Hiền Luận văn thạc sỹ 48 3.2.1.2. Chứng chỉ và Trung

Các file đính kèm theo tài liệu này:

  • pdfVai trò chìa khoá trong các giải pháp bảo mật và an toàn thông tin.pdf