1. Trang chủ
  2. » Công Nghệ Thông Tin

Mật mã khóa công khai và ứng dụng

91 322 1

Đ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 91
Dung lượng 2,37 MB

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

Nội dung

Bên sinh khóa có thể dùng cặp khóa để đóng vai trò một người nhận nhằm chắc chắn rằng thông điệp nhận là bí mật nhờ lược đồ mã hóa khóa công khai, hoặc đóng vai trò một người gửi để cung

Trang 1

1

MỤC LỤC

MỤC LỤC 1

LỜI CẢM ƠN 4

LỜI CAM ĐOAN 5

DANH MỤC THUẬT NGỮ VIẾT TẮT 6

DANH MỤC HÌNH VẼ 8

PHẦN MỞ ĐẦU 10

Chương 1: Tổng quan về mật mã 12

1 Khái niệm mật mã 12

2 Mật mã khóa đối xứng 14

2.1 Giới thiệu 14

2.2 An toàn lý tưởng 15

2.3 An toàn trước tấn công lựa chọn bản rõ 17

2.4 Mật mã khối 18

2.5 Lược đồ CPA – an toàn 19

3 Mã xác thực thông điệp 20

3.1 Giới thiệu 20

3.2 Xác thực cho thông điệp dài 22

3.3 Kết hợp tính bí mật với tính toàn vẹn và xác thực 24

4 Mật mã khóa công khai 24

4.1 Khái niệm 24

4.2 Mã hóa RSA 26

4.3 Mã hóa El Gamal 28

4.4 Mã hóa lai 30

5 Chữ ký điện tử 31

5.1 Khái niệm 31

5.2 Chữ ký số 32

Trang 2

2

6 Kết luận chương 36

Chương 2: Hạ tầng khóa công khai 37

1 Chứng thư số 37

1.1 Giới thiệu 37

1.2 Chứng thư khóa công khai X509 39

1.3 Quy trình cấp chứng thư số 43

1.4 Thu hồi chứng thư số 44

1.5 Chính sách chứng thư 45

2 Các thành phần của PKI 46

2.1 Giới thiệu 46

2.2 Thành phần của PKI 46

2.3 Chức năng cơ bản của PKI 49

2.4 Kiến trúc hệ thống PKI 53

3 Hạ tầng khóa công kha EJBCA 59

3.1 Giới thiệu 59

3.2 Nhận xét về EJBCA 60

3.3 Mô hình lôgic 62

3.4 Một số mô hình triển khai 63

3.5 Cấp phát chứng thư trên EJBCA 64

4 Kết luận chương 66

Chương 3: Ứng dụng 67

1 Bài toán xác thực vận đơn Viettel Post 67

2 Kiến trúc hệ thống 68

2.1 Thành phần hệ thống 68

2.2 Các tác nhân tham gia hệ thống 69

2.3 Luồng ký trên hệ thống 70

3 Cài đặt thử nghiệm ứng dụng 73

3.1 Cài đặt Root CA EJBCA 74

Trang 3

3

3.2 Cài đặt mô đun ký 76

4 Kết luận chương 77

KẾT LUẬN 78

TÀI LIỆU THAM KHẢO 79

Phụ lục 1: Cài đặt EJBCA 80

Phụ lục 2: Chức năng cơ bản của EJBCA 87

1 Các giao diện web 87

2 Các bước tạo CA và thực thể cuối 88

3 Khai báo chứng thư người dùng 91

Trang 4

Tôi xin chân thành cảm ơn!

Hà Nội, ngày 21 tháng 10 năm 2016

Học viên

Nguyễn Nam Thanh

Trang 5

5

LỜI CAM ĐOAN

Tôi xin cam đoan số liệu và kết quả nghiên cứu trong luận văn này là trung thực và chƣa hề đƣợc sử dụng để bảo vệ một học vị nào Mọi sự giúp đỡ cho việc thực hiện luận văn này đã đƣợc cảm ơn và các thông tin trích dẫn trong luận văn đã đƣợc chỉ rõ nguồn gốc rõ ràng và đƣợc phép công bố

Hà Nội, ngày 21 tháng 10 năm 2016

Học viên

Trang 6

6

DANH MỤC THUẬT NGỮ VIẾT TẮT

AES Advandced Encryption Standard

APKI Architecture for Public-Key Infrastructure

CA Certificate Authority

CRL Certifiate Revocation List

DES Data Encrytion Standard

DSA Digital Signature Algorithm

DSS Digital Signature Standard

IETF Internet Engineering Task Force

LDAP Lightweight Directory Access Protocol

MAC Message Authentication Code

MD2, 4,5 Message Digest 2,4,5

NIST National Institute of Standards and Technology

NSA National Security Agency

PEM Privacy Enhanced Mail

PGP Pretty Good Privacy

RA Registration Authority

PKCS Public Key Cryptography Standards

PKI Public Key Infrastructure

PKIX Public Key Infrastructure X.509 group

RFC Request For Comments

RSA Rivest Shamir Adleman

SCEP Simple Certificate Enrollment Protocol

Trang 7

7

SET Secure Electronic Transactions

SHA Secure Hash Algorithm

SPKI Simple Public Key Infrastructure

SSL Secure Socket Layer

TSL Transport Layer Security

Trang 8

8

DANH MỤC HÌNH VẼ

Hình 1: Ví dụ truyền tin đơn giản 12

Hình 2: Mô hình mô tả sử dụng khóa đối xứng 14

Hình 3: Nguyên lý hoạt động lược đồ mã hóa đối xứng 15

Hình 4: Mô hình sử dụng mật mã khóa công khai 26

Hình 5: Ví dụ một chứng thư số - chứng thư của máy chủ mail Viettel 38

Hình 6: Khuôn dạng chứng thư X509 v3 39

Hình 7: Ví dụ thông tin chi tiết của chứng thư 43

Hình 8: Luồng giao tiếp giữa các thành phần trong PKI 47

Hình 9: Đường dẫn chứng thư chéo 52

Hình 10: Mô hình CA đơn 53

Hình 11: Mô hình phân cấp 55

Hình 12: Mô hình mắt lưới 56

Hình 13: Mô hình Hub và Spoke (Bridge CA) 57

Hình 14: So sánh EJBCA và OpenCA 61

Hình 15: Mô hình kiến trúc logic EJBCA 62

Hình 16: Mô hình triển khai EJBCA đơn node 63

Hình 17: Mô hình RootCA ofline và các SubCAs 64

Hình 18: Biểu đồ phân rã chức năng EJBCA Web GUI 64

Hình 19: Luồng tạo thực thể cuối, cấp chứng thư 66

Hình 20: Đề xuất mô hình triển khai hạ tầng khóa công khai tại Viettel Post 68 Hình 21: Biểu đồ use chính trong hệ thống 70

Hình 22: Luồng ký sử dụng SIM CA 71

Hình 23: Luồng ký trên thiết bị ký 72

Hình 24: Luồng ký sử dụng USB 73

Hình 25: Thông tin chứng thư Root CA 74

Hình 26: Ví dụ khóa bí mật ở dạng rõ(encode Base64) 75

Hình 27: Ví dụ chứng thư của khách hàng sinh bởi hệ thống 75

Trang 9

9

Hình 28: Ví dụ chứng thư của khách hàng 76

Hình 29: Ví dụ ký và xác nhận văn bản sử dụng chứng thư sinh bởi hệ thống76 Hình 30: Cài đặt biến môi trường 81

Hình 31: Ví dụ cấu hình instal.properties 83

Hình 32: Ví dụ cấu hình web.properties 83

Hình 33: EJBCA trên windows 7 85

Hình 34: EJBCA trên máy ảo linux 86

Hình 35: Giao diện Administration của supper admin 87

Hình 36: Giao diện Administration của RA Admin 87

Hình 37: Giao diện public web 88

Hình 38: Create a Certificate Profile 88

Hình 39: Create the Certificate Authority 89

Hình 40: Create an End Entity Profile 89

Hình 41: Add End Entity 90

Hình 42: Ví dụ khai báo chứng thư cho khách hàng 91

Hình 43: Ví dụ khai báo chứng thư cho nhân viên 91

Trang 10

Mật mã khóa công khai là cơ sở để xây dựng an toàn thông tin cho Internet Ví

dụ, giao thức an toàn sử dụng phổ biến nhất hiện nay SSL/TLS sử dụng kết hợp nhiều kỹ thuật của mã khóa công khai: trao đổi khóa Diffie Hellman, chữ ký số, chứng thư số… Ngoài ra sự phát triển mật mã khóa công khai đem đến rất nhiều giao thức tiện lợi mới cho người dùng như thanh toán online, tiền điện tử, ví điện tử, chữ ký điện tử…

Nhận thấy tầm quan trọng của các ứng dụng mật mã khóa công khai tác giả đã chọn đề tài: Mật mã khóa công khai và ứng dụng để nghiên cứu và phát triển các kỹ năng cần thiết cho công việc hiện tại Cụ thể tại Tổng Công Ty Viettel Post – Viettel Group (VTP), mặc dù đã có hệ thống quản lý vận đơn Tuy nhiên, quy trình tiếp nhận và xử lý vận đơn còn nhiều bất cập như: chưa có cơ chế xác thực khách hàng, xác nhận vận đơn đảm bảo an toàn và tin cậy Các khâu xác thực này phải thực hiện thủ công, ngay cả với các khách hàng thân thiết (nhóm khách hàng đem lại 70% doanh thu cho VTP)

Nhằm tối ưu hóa quy trình sản xuất kinh doanh tại Viettel Post, luận văn đề xuất mô hình tích hợp cơ chế xác thực khách hàng, đảm bảo bí mật và toàn vẹn thông tin vận đơn, hỗ trợ cơ chế xác thực trực tuyến nhanh chóng, tiện lợi nhằm tin học hóa quy trình tiếp nhận và xử lý vận đơn phục vụ nhóm khách hàng thân thiết Luận văn nghiên cứu về mật mã khóa công khai và ứng dụng Cụ thể, ứng dụng mật mã khóa công khai trong hệ thống quản lý vận đơn của Viettel Post nhằm xác thực khách hàng, bảo mật thông tin vận đơn

Trang 11

11

Về cấu trúc, luận văn được tổ chức thành 3 chương và phụ lục Chương 1 trình bày tổng quan về mật mã: mã hóa đối xứng, mã hóa công khai, hàm băm, MAC và chữ ký số Chương 2 đưa ra khái niệm chứng thư số, đồng thời nghiên cứu về PKI

và tìm hiểu mã nguồn mở EJBCA Chương cuối cùng đề xuất kiến trúc tích hợp chữ

ký số vào hệ thống thông tin của Viettel Post nhằm đáp ứng nghiệp vụ xác thưc trong hệ thống Các phần phụ lục mô tả cách thức cài đặt và thao tác với EJBCA

Trang 12

12

Chương 1: Tổng quan về mật mã

Mật mã là một lĩnh vực rộng lớn, giải quyết các vấn đề đa dạng như tiền điện

tử, xác thực từ xa, ngăn ngừa lỗi trong môi trường phân tán… Luận văn trọng tâm nghiên cứu các khía cạnh của mật mã liên quan đến các phương pháp kỹ thuật đảm bảo an toàn và bảo mật trong quá trình truyền tin hay nói ngắn gọn là đảm bảo truyền thông an toàn Cụ thể, truyền thông an toàn bao gồm các mục tiêu chính: bảo mật, toàn vẹn, và xác thực dữ liệu truyền Những thuật ngữ trên có thể được minh họa qua một ví dụ đơn giản là khi người dùng Alice muốn gửi một thông điệp M tới người dùng Bob thông qua một kênh liên lạc chung, giả định rằng trên kênh liên lạc này có thể có một kẻ tấn công Eve Lợi dụng kênh liên lạc chung, Eve có thể nghe trộm thông điệp , thay đổi nội dung , hoặc giả mạo Alice gửi tin cho Bob Luận văn sẽ sử dụng các danh xưng trong ví dụ này để gọi tên các bên tham gia quá trình truyền thông

Trang 13

13

Hiểu một cách đơn giản, mật mã bao gồm các phương pháp kỹ thuật nhằm ngăn chặn Eve thực hiện các hành vi nêu trên Cụ thể hơn trong ví dụ này là kỹ thuật đảm bảo bí mật nhằm ngăn chặn hành vi nghe trộm thông điệp M, kỹ thuật đảm bảo toàn vẹn giữ liệu giúp Bob có thể phát hiện được hành vi thay đổi nội dung

M, kỹ thuật thực hiện xác thực giúp Bob phát hiện được các thông điệp từ người gửi

Nhằm đáp ứng các mục tiêu bảo mật, toàn vẹn và xác thực, các nhà nghiên cứu mật mã đã đưa ra hai lý thuyết về các thiết lập ban đầu cho các bên giao tiếp (Alice, Bob) bao gồm mật mã khóa đối xứng và mật mã khóa công khai

Mật mã khóa đối xứng (hay còn có các tên gọi như “mật mã khóa chia sẻ”,

“mật mã khóa cá nhân”, “mật mã khóa bí mật”) là mật mã được tin tưởng sử dụng duy nhất cho đến tận giữa những năm 1970 (trước khi lý thuyết Mật mã khóa công khai ra đời) Trong lý thuyết này Alice và Bob cùng chia sẻ thông tin về khóa bí mật trước khi thực hiện giao tiếp và đảm bảo rằng Eve (kẻ tấn công) không biết được thông tin về khóa bí mật này Khóa bí mật sẽ được dùng để đảm bảo an toàn trong các liên lạc sau đó giữa Alice và Bob Kỹ thuật về bảo mật trong lý thuyết này là kỹ thuật mã hóa khóa đối xứng Kỹ thuật đảm bảo xác thực và toàn vẹn dữ liệu trong mật mã khóa đối xứng là mã xác thực thông điệp (Message Authentication Code - MAC)

Mật mã khóa công khai (hay còn gọi là “mật mã khóa phi đối xứng”) được đề xuất bởi Diffie – Hellman năm 1976 Trong mật mã này, mỗi bên tham gia giao tiếp

sẽ sinh ra một cặp gồm khóa công khai (public key) và khóa bí mật (private key) Khóa công khai được công bố rộng rãi cho các bên (không ngoại trừ Eve) Bên sinh khóa có thể dùng cặp khóa để đóng vai trò một người nhận nhằm chắc chắn rằng thông điệp nhận là bí mật nhờ lược đồ mã hóa khóa công khai, hoặc đóng vai trò một người gửi để cung cấp thông tin toàn vẹn và xác thực nhờ lược đồ chữ ký số (Digital Signature Schema)

Trang 14

14

Bảng sau đây liệt kê các thuật ngữ trong mật mã sẽ trình bày trong chương 1 này:

Tính bí mật Tính xác thực và toàn vẹn Mật mã khóa đối xứng Lược đồ mã hóa khóa bí

Lược đồ mã hóa khóa đối xứng bao gồm một cặp thuật toán

là thuật toán mã hóa với đầu vào gồm khóa và thông điệp (được gọi là thông điệp rõ hay bản rõ), đầu ra là bản mã hóa của thông điệp đầu vào, ký hiệu là (gọi

là thông điệp mã hóa hay bản mã) là thuật toán giải mã nhận đầu vào gồm khóa và bản mã , đầu ra là thông điệp Để đảm bảo tính đúng đắn của lược đồ cần thỏa mãn công thức: , với mọi k trong tập dữ liệu khóa,

và m trong tập dữ liệu thông điệp.

Trong mọi trường hợp, ta yêu cầu hàm phải có tính ngẫu nhiên: đảm bảo với mỗi thông điệp khi được mã hóa bởi các khóa khác nhau trong tập dữ liệu khóa sẽ cho ra các bản mã khác nhau

Hình 2: Mô hình mô tả sử dụng khóa đối xứng

Trang 15

Hình 3: Nguyên lý hoạt động lược đồ mã hóa đối xứng

Lược đồ mã hóa khóa đối xứng hoạt động như sau: một khóa k được chia sẻ giữa cả Alice và Bob Trường hợp Alice muốn gửi thông điệp m cho Bob, đầu tiên

cô ấy sẽ mã hóa thông điệp bằng các tính toán bản mã c của thông điệp nhờ thuật

toán mã hóa với khóa k Bản mã c được gửi cho Bob qua kênh chung Khi Bob

nhận được bản mã, anh ta sẽ khôi phục lại thông điệp m nhờ thuật toán giải mã cùng khóa k

Lược đồ mã hóa khóa đối xứng còn được sử dụng để đảm bảo bí mật trong lưu trữ dữ liệu Ví dụ, trường hợp Alice muốn lưu trữ một tệp tin quan trọng trong ổ cứng bằng mật khẩu để đảm bảo chỉ Alice có thể xem lại vào ngày hôm sau Điều này thể hiện trong lược đồ khóa đối xứng như sau: Alice của ngày hôm nay đóng vai trò như Alice trong ví dụ trước, còn Alice của ngày hôm sau đóng vai trò như Bob, mật khẩu đóng vai trò như khóa , tệp tin đóng vai trò như thông điệp , ổ cứng lưu dữ liệu đóng vai trò như kênh chung

2.2 An toàn lý tưởng

Một mục tiêu của lược đồ mã hóa khóa đối xứng là đảm bảo thông điệp là

bí mật với những kẻ tấn công như Eve, dù cho Eve biết những bản mã nhưng

Trang 16

16

không biết khóa Vậy làm sao để xác định được một lược đồ mã hóa đảm bảo tính

bí mật?

Định nghĩa về an toàn lý tưởng cho lược đồ này được giới thiệu bởi

Shannon như sau: một lược đồ mã hóa được gọi là an toàn lý tưởng khi và chỉ khi

dù đã biết thông tin về bản mã c cũng không có thông tin gì để xác định bản rõ

Nói cách khác, sự kiện chọn đúng trong không gian bản mã và sự kiện chọn đúng trong không gian bản rõ là độc lập với nhau Cụ thể, một lược đồ mã hóa đối xứng là an toàn lý tưởng nếu với mọi thông điệp m trong không gian bản rõ thì mọi bản mã c trong không gian bản mã đều thỏa mãn công thức sau:

, (2) trong đó:

o là xác suất xảy ra sự kiện

o là xác suất xảy ra sự kiện khi biết sự kiện

Trong các mô hình truyền tin áp dụng mật mã, kẻ tân công không những biết

thông tin về các bản mã mà còn biết thông tin về các thuật toán Enc, Dec trong lược

đồ mã hóa, duy chỉ có thông tin khóa được bảo mật Giả định này được gọi là nguyên tắc Kerckhoffs’s Ngày nay, các lược đồ mã hóa hiện đại được thiết kế đảm bảo an toàn ngay cả khi tất cả các thuật toán sử dụng được công khai Điều này cho thấy sự cần thiết của việc lựa chọn khóa ngẫu nhiên và giữ bí mật hoàn toàn thông tin khóa

Một lược đồ mã hóa đối xứng đáp ứng được tính chất an toàn lý tưởng là lược

đồ mã hóa One Time Pad (OTP) Nguyên lý hoạt động của lược đồ này như sau: gọi

số bit của thông điệp cần truyền Alice và Bob chia sẻ khóa có độ dài bit Để

mã hóa thông điệp , Alice mã hóa thông điệp rõ theo thuật toán xác định bởi công thức: Bob thực hiện giải mã bản mã theo thuật toán xác định bởi công thức: Rõ ràng, thuật toán giải mã luôn phục hồi được thông điệp ban đầu

Trang 17

17

Mặc dù OTP là an toàn lý tưởng, tuy nhiên nó có một số hạn chế Đầu tiên, do

độ dài khóa bằng độ dài thông điệp nên nó không khả thi khi áp dụng cho việc mã hóa những thông điệp dài Tiếp theo, lược đồ này chỉ đảm bảo bí mật khi mỗi thông điệp được mã hóa bằng một khóa duy nhất (khóa sử dụng một lần), điều này là không khả thi trong kịch bản cụ thể Ví dụ như Alice và Bob chỉ muốn chia sẻ một (hoặc một số lượng giới hạn) khóa bí mật

Việc thiết kế và xây dựng một lược đồ mã hóa đáp ứng điều kiện an toàn lý tưởng gặp phải nhiều hạn chế trong thực thế Do vậy để dung hòa vấn đề này, khái niệm về an toàn tính toán được đưa ra, theo đó kẻ tấn công (𝒜) dù có sức mạnh tính toán tối đa sẽ không xác định được thông tin gì về bản rõ , khi biết bản mã trong thời gian tính toán hữu hạn nhưng đủ lâu

Một định nghĩa về an toàn tính toán được đưa ra như sau: với t, ε ≥ 0, lược đồ

khóa công khai (Enc, Dec) được gọi ( tạm dịch là

- không thể phân biệt được hay -an toàn tính toán ) nếu mọi kẻ tấn công thực hiện tính toán trong thời gian tối đa là t thì:

thông điệp

Công thức trên thể hiện rằng nếu ta dùng khóa để mã hóa ngẫu nhiên một trong hai thông điệp sau đó chuyển bản mã cho kẻ tấn công 𝒜 Nếu 𝒜 thực hiện tính toán thám mã trong thời gian không quá thì xác suất để 𝒜 chọn đúng thông điệp mã hóa hay chỉ tốt hơn chọn ngẫu nhiên là

2.3 An toàn trước tấn công lựa chọn bản rõ

Mục trước đã xem xét các phương pháp nhằm hạn chế những tấn công trên một bản mã nhờ lý thuyết về mật mã an toàn lý tưởng, với ví dụ về lược đồ mã hóa OTP Tuy nhiên trên thực tế người sử dụng mật mã thường có nhu cầu mã hóa nhiều thông điệp bằng cùng một khóa bí mật Vì vậy, chúng ta cũng cần có cơ chế đảm bảo an toàn trong trường hợp này Hơn nữa kẻ tấn công có thể biết một số thông điệp được bên gửi mã hóa trước đó, hoặc thậm chí kẻ tấn công có thể tác

Trang 18

18

động lên một số thông điệp của bên gửi Trong trường hợp này một kịch bản tấn

công phổ biến được kẻ tấn công sử dụng là tấn công lựa chọn bản rõ (CPA) Trong

kịch bản tấn công này, kẻ tấn công yêu cầu bên gửi mã hóa một số thống điệp mà anh ta chọn trước Lược đồ mã hóa OTP là không an toàn nếu bị tấn công kiểu này

Do bản mã được xác định bởi nên khi kẻ tấn công biết được thông điệp anh ta sẽ dễ dàng tìm được thông tin khóa bằng việc tính

Để chống lại kịch bản tấn công này, ta giả sử kẻ tấn công có thể yêu cầu người dùng mã hóa được thông điệp bất kỳ mà anh ta lựa chọn Khi đó ta nói rằng lược đồ

mã hóa là -không thể phân biệt được trước tấn công lựa lựa chọn bản rõ (hay an toàn) nếu mọi kẻ tấn công 𝒜 tấn công trong thời gian tối đa là thì xác suất thành công vẫn nhỏ hơn :

2.4 Mật mã khối

Mật mã khối là lược đồ mã hóa cơ sở trong mật mã khóa đối xứng và được

xây dựng dựa trên lý thuyết CPA – an toàn Mât mã khối bao gồm: một hàm khóa

ánh xạ từ hai đầu vào sang một đầu ra duy nhất Chọn đầu vào thứ nhất là khóa chiều dài (chọn ngẫu nhiên hoặc cố định), đặt , vậy đầu vào và đầu ra của đều có kích thước Khi đó hàm được gọi là có tính ngẫu nhiên (hay giả ngẫu nhiên) nếu hàm cho đầu ra ngẫu nhiên giống như một hàm ngẫu nhiên thật trong cùng phạm vi đầu vào Xét

kẻ tấn công 𝒜 có khả năng gửi đầu vào và nhận đầu ra của (𝒜 không biết ) khi

đó hàm có tính ngẫu nhiên nếu 𝒜 không thể đoán được kết quả với xác suất tốt hơn hẳn việc chọn ngẫu nhiên Khái niệm được biểu diễn hình thức như sau: là

hàm có tính ngẫu nhiên nếu 𝒜 tấn công trong thời gian tối đa

| [𝒜 ] [𝒜 ]|

Trang 19

2.5 Lược đồ CPA – an toàn

Với bất kỳ hàm có tính ngẫu nhiên: với đủ lớn,

ta có thể xây dựng một lược đồ mã hóa khóa đối xứng CPA – an toàn

Để mã hóa thông điệp có kích thước bằng khóa , đầu tiên ta chọn một chuỗi ngẫu nhiên có kích thước , sau đó tính bản mã theo công thức: Để giải mã bản mã bằng khóa ta sử dụng công thức:

Nhận thấy rằng, bên gửi và bên nhận sử dụng như một khóa trong lược

đồ OTP để mã hóa thông điệp Mặc dù không thực sự ngẫu nhiên, nhưng nó có tính ngẫu nhiên và như vậy có thể đảm bảo phần nào tính an toàn Trường hợp người gửi muốn mã hóa nhiều thông điệp: anh ta có thể sử dụng các chuỗi ngẫu nhiên tương ứng Trên thực tế, với là hàm

có tính ngẫu nhiên và khóa được giữ bí mật, kẻ tấn công sẽ không thể phân biệt được: ( ) trừ khi tồn tại với (vì khi đó: ( )), giả sử rằng điều này không xảy ra khi đó lược đồ mã hóa này tương đương với một lược đồ mã hóa OTP với khóa ngẫu nhiên độc lập Xác suất khi tồn tại

Trang 20

hóa loại này là lược đồ mã hóa bộ đếm (counter mode hay CRT-mode) Trong lược

đồ này để mã hóa thông điệp với có kích thước sử dụng khóa , ta chọn ngẫu nhiên giá trị ( ), sau đó tính bản mã theo công thức:

như vậy bản mã chỉ có kích thước dài hơn bản rõ một khối

Ngay cả khái niệm CPA – an toàn cũng chỉ có thể chống lại các kẻ tấn công

thụ động khi anh ta có thể “nghe lén” trên kênh chung Nhưng không thể phát hiện

được kẻ tấn công chủ động khi anh ta cố ý tác động lên thông điệp truyền thông giữa các bên Phương pháp chống lại kẻ tấn công chủ động sẽ được nêu ở mục tiếp

Trong mật mã khóa đối xứng, người ta dùng mã xác thực thông điệp (MAC) nhằm mục đích xác thực cho các thông điệp gửi đi MAC bao gồm cặp thuật toán Alice sử dụng thuật toán sinh thẻ ( ) phục vụ quá trình xác

Trang 21

21

thực cho thông điệp nhờ một khóa Thông điệp cùng được gửi đến Bob Yêu cầu của thuật toán là phải sinh được các có tính ngẫu nhiên từ các thông điệp đầu vào Không mất tính tổng quát giả sử đã xác định được thuật toán

đáp ứng yêu cầu này Khi đó, thao tác sinh tag đươc biểu diễn như sau:

Thuật toán được người nhận (Bob) dùng để xác minh thông điệp nhận được nhận các đầu vào gồm: khóa bí mật , thông điệp cùng mà Bob

nhận được Đầu ra của thuật toán là một bit , nếu chứng tỏ là hợp lệ cho thông điệp m’, trường hợp ngược lại nhận giá trị Trong trường hợp bản tin gửi trên kênh chung không bị thay đổi thì giá trị nhận được luôn hợp lệ cho

thông điệp nhận được, như vậy thuật toán Vrfy cần thỏa mãn:

( ) , với mọi khóa và thông điệp

Định nghĩa về MAC nêu ở trên là tương đối đơn giản, và thể hiện ở mức độ lý thuyết cơ sở Xem xét vấn đề một cách chi tiết hơn, nhằm mục đích phòng ngừa việc kẻ tấn công có thể sinh ra hợp lệ cho những thông điệp giả mạo mà anh ta

tạo ra Áp dụng khái niệm an toàn tính toán trong MAC, ta nói rằng MAC là

– an toàn tính toán khi với mọi kẻ tấn công 𝒜 tính toán thám mã trong thời gian , thì xác suất mà anh ta tạo ra được một cặp hợp lệ không vượt quá Dựa

trên khái niệm an toàn tính toán ta có thể thiết kế được MAC đáp ứng tính bí mật Tuy nhiên, vấn đề phòng ngừa các tấn công phát lặp(replay attack) vẫn chưa được

có tính ngẫu nhiên nên với thông điệp bất kỳ thì xác suất để kẻ tấn công chọn

Trang 22

22

được giá trị là Vì vậy, với đủ lớn thì xác suất để kẻ tấn công giả mạo được thông điệp là rất nhỏ

3.2 Xác thực cho thông điệp dài

Nội dung giới thiệu ở tiểu mục trước cho biết cách thức để xác thực thông điệp

có chiều dài hữu hạn (chẳng hạn ) Trên thực tế, các thông điệp xác thực thường có độ dài lớn hơn rất nhiều (ví dụ 1 file, một email )

Phương pháp đầu tiên là CBC-MAC hay còn gọi là chuỗi mã hóa khối được xây dựng dựa trên hàm giả ngẫu nhiên trong

ví dụ trước Giả sử độ dài của thông điệp cần xác thực là bội số của như vậy thông điệp được biểu diễn dưới dạng: với

̅̅̅̅̅ Việc tính tag cho thông điệp được thưc hiện theo thuật toán sau:

Ta thực hiện kiểm tra thẻ của thông điệp nhận được bằng cách tính lại cho thông điệp này Đầu ra của việc kiểm tra là khi và chỉ khi

CBC-MAC là an toàn nếu hàm có tính ngẫu nhiên và kích thước của thông điệp là cố định (khi đó cũng cố định) Tiếp theo ta sẽ xem xét làm thế nào để mở rộng lươc đồ CBC-MAC phục vụ xác thực các thông điệp có kích thước tùy ý Cách tiếp cận thứ hai để xác thực thông điệp có kích thước tùy ý là biến đổi nó

về dạng thông điệp ngắn có kích thước hữu hạn (hay còn gọi là tóm tắt thông điệp),

sau đó ta sẽ thực hiện các bước xác thực MAC cơ bản lên thông điệp ngắn này

Phương pháp này đòi hỏi một lược đồ mật mã nguyên thủy gọi là hàm băm kháng

xung đột

Trang 23

23

Hàm băm cho phép biến đổi thông điệp hay dữ liệu có kích thước bất kỳ thành một chuỗi có kích thước cố định và hữu hạn Hàm băm được sử dụng rộng rãi trong nhiều lĩnh vực của khoa học máy tính Nhưng hàm băm trong mật mã học

(hay còn gọi là hàm băm mật mã) cần đáp ứng một yêu cầu đặc thù là tính kháng

xung đột(collision resistance) Hàm băm có tính kháng xung đột (gọi đơn giản là

hàm băm kháng xung đột) nếu gần như không thể tìm ra cặp đầu vào phân biệt

( thỏa mãn Nếu là hàm băm kháng xung đột thì kết quả của

thao tác băm thông điệp đầu vào (bản băm) được coi như một “tóm tắt an toàn”

của thông điệp này Cũng có thể hiểu theo nghĩa sau: cho trước một giá trị bất kỳ,

kẻ tấn công sẽ chỉ tìm thấy nhiều nhất một giá trị thỏa mãn Kích thước đầu ra cố định của hàm băm giới hạn độ khó của việc tính toán tìm ra cặp đầu vào

phân biệt, có chung bản băm (để đơn giản ta gọi sự kiện này là hiện tượng va chạm

trong hàm băm) Cụ thể nếu đầu ra của có chiều dài thì hiện tượng va chạm

sẽ luôn xảy ra sau phép thử, nói cách khác độ phức tạm của tìm kiếm va chạm trong hàm băm là Hàm băm được sử dụng phổ biến hiên nay là nhóm hàm băm SHA – cho kích thước đầu ra từ đến

Quay lại với vấn đề về MAC, cho hàm băm là hàm băm

kháng xung đột, và lược đồ xác thực thông điệp sử dụng xác thực các thông điệp có kích thước , từ đó ta có thể xây dựng một lược đồ mã xác thực thông điệp cho các thông điệp có kích thước tùy ý như sau: Đầu tiên thực hiện băm thông điệp đầu vào bằng hàm để thu được bản băm có kích thước Sau đó xác thực thông điệp sử dụng lươc đồ mã xác thực thông điệp cơ bản

Có nghĩa rằng Thao tác kiểm tra tính xác thực được xác định bởi: Dễ thấy lược đồ xác thưc này là

an toàn Lược đồ xác thực này được gọi là mã xác thực thông điệp HMAC

Trang 24

24

3.3 Kết hợp tính bí mật với tính toàn vẹn và xác thực

Trên thực tế, khi các giao tiếp được thực hiện trên các kênh chung thường đòi hỏi phải đảm bảo các tính chất: tính bí mật, tính toàn vẹn và tính xác thực Một lược

đồ đáp ứng được các tính chất này gọi là lươc đồ mã hóa xác thực (authenticated

encryption schemes) Phương pháp phổ biến để đảm bảo các tính chất trên trong

mật mã khóa đối xứng là kết hợp sử dụng lược đồ mã hóa khóa đối xứng và mã xác thực thông điệp

4.1 Khái niệm

Như đã trình bày ở mục trước, mật mã khóa đối xứng đòi hỏi các bên tham gia phải chia sẻ chung một khóa bí mật trước khi thực hiện giao tiếp Cho đến giữa những năm 1970 khi nhắc đến mật mã người ta chỉ biết đến mật mã khóa đối xứng

Đến năm 1976, sự ra đời của mật mã khóa công khai đã tạo nên một cuộc cách

mạng trong lĩnh vực mật mã Cho phép các bên tham gia liên lạc không cần chia sẻ với nhau thông tin khóa bí mật Yêu cầu duy nhất là có một cách để một bên gửi bản sao của khóa công khai của mình cho bên còn lại

Trong mật mã khóa công khai, Alice sinh cho mình một cặp khóa Khóa riêng được giữ bí mật đảm bảo chỉ Alice mới biết khóa này, còn khóa công khai được gửi cho bất kỳ bên nào muốn giao tiếp với Alice (ví dụ như Bob) hoặc

kể cả kẻ tấn công cũng có thể có thông tin về khóa công khai của Alice Việc quản

lý và phân phối khóa công khai sẽ được trình bày trong chương tiếp theo Trong chương này chúng ta giả định rằng các bên muốn giao tiếp đã biết được khóa công khai của nhau

Mật mã khóa công khai có nhiều lợi điểm hơn so với mật mã khóa bí mật Thứ nhất giải quyết được vấn đề phân phối khóa bí mật Những người dùng muốn giao tiếp với nhau sẽ không cần phải chia sẻ với nhau khóa bí mật qua một kênh riêng Trong mật mã khóa công khai, việc quản lý khóa cũng hết sức đơn giản Ví dụ trong

Trang 25

25

một công ty có nhân viên, nếu sử dụng mật mã khóa bí mật, thì mỗi nhân viên sẽ phải lưu trữ và đảm bảo an toàn cho khóa bí mật của các nhân viên khác Với mật mã khóa công khai các nhân viên muốn giao tiếp được với nhau chỉ cần lưu trữ duy nhất một khóa bí mật của mình và N-1 khóa công khai của những người khác

Do các khóa công khai không cần bảo mật nên nó có thể được lưu trữ tại một kho

dữ liệu chung của tổ chức để cho những người trong tổ chức có thể trực tiếp lấy về khi muốn giao tiếp với một ai đó trong tổ chức Cuối cùng, mật mã khóa công khai rất phù hợp để triển khai trên môi trường mở như Internet

Tuy vậy, mật mã khóa công khai cũng có một số nhược điểm so với mật mã khóa đối xứng Ước tính sơ bộ, để mã hóa một thông điệp ngắn (nhỏ hơn 10 kB) thì thời gian xử lý của hệ thống mã hóa sử dụng mật mã khóa công khai chậm hơn 500 đến 1000 lần so với dùng mật mã khóa đối xứng Việc tiêu tốn tài nguyên xử lý cũng là một vấn đề khi áp dụng mật mã khóa công khai trong các thiết bị có khả năng xử lý hạn chế Vì vậy mật mã khóa đối xứng vẫn được sử dụng phổ biến trong những trường hợp này

Một lược đồ mã hóa khóa công khai bao gồm ba thuật toán Thuật toán sinh cặp khóa ( là một thuật toán ngẫu nhiên, cho đầu ra là cặp khóa Thuật toán mã hóa lấy đầu vào là và thông điệp cho đầu ra là bản mã Thuật toán giải mã lấy đầu vào là và bản mã , cho đầu ra là thông điệp Yêu cầu với mọi cặp khóa sinh bởi và thông điệp bất kỳ đều thỏa mãn: ( )

Khái niệm an toàn trong mật mã khóa công khai tương tự như đã đưa ra trong mật mã khóa đối xứng Điểm khác biệt là kẻ tấn công biết được khóa công khai

Ta nói một lược đồ mã hóa khóa công khai là không thể

phân biệt Nếu với mọi kẻ tấn công 𝒜 tính toán thám mã trong thời gian tối đa , và với bất kỳ cặp thông điệp ta có:

Trang 26

26

Hình 4: Mô hình sử dụng mật mã khóa công khai

Chú ý rằng, khái niệm mật mã khóa công khai ở trên bao hàm nghĩa rằng mật

mã này phải an toàn trước tấn công lựa chọn bản rõ, do bất kỳ ai cũng có thể nắm giữ khóa công khai và thực hiện mã hóa thông điệp lựa chọn bất kỳ Như vậy, ta có

hệ quả là trong mật mã khóa công khai để đảm bảo CPA – an toàn thì phương pháp

mã hóa phải có tính ngẫu nhiên

4.2 Mã hóa RSA

Mật mã khóa công khai được sử dụng phổ biến nhất hiện này là mật mã RSA RSA được cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi trong việc thực thi mật mã khoá công khai

RSA được giới thiệu bởi Rivest, Shamir & Adleman vào năm 1977 và chính thức được công nhận vào năm 1978 RSA là chuẩn mật mã bất thành văn của hệ mã khóa công khai, cung cấp cơ chế đảm bảo tính bí mật, xác thực và tạo ra chữ ký điện tử

Ý tưởng của thuật toán RSA là xây dựng thuật toán sinh mã/ giải mã dựa trên

cơ sở phép toán lấy lũy thừa đồng dư Chẳng hạn việc sinh mã cho thông điệp sẽ được thực hiện theo công thức:

Trang 27

27

Việc giải mã thực hiện theo công thức:

Trong đó:

Thuật toán sinh khóa(RSAGen):

- Chọn hai số nguyên tố lớn và với

sử dụng khóa công khai , người gửi tính để thu được bản

Thuật toán giải mã: việc giải mã bản mã được thực hiện đơn giản khi biết khóa riêng ( nhờ việc tính Do:

Trang 28

Với lược đồ RSA này, giả định được chọn ngẫu nhiên trong khi đó kẻ tấn công có một bản mã anh ta muốn tính được thì phải sử dụng phương pháp vét cạn Tuy nhiên, trên thực tế, giả định này là không hoàn toàn đúng, do các thông điệp thực tế không thể là ngẫu nhiên Hơn thế nữa, các thông điệp còn nằm trong các văn bản có cấu trúc xác định Như vậy, lược đồ mã hóa RSA trong ví dụ trên

không đảm bảo phải là CPA – an toàn

Để giải quyết vấn đề CPA – an toàn trong lược đồ RSA nêu trên, người ta sử

dụng thêm một biến ngẫu nhiên trong lược đồ này Đây là phương pháp được sử dụng rộng rãi trong thực tế Để đơn giản, phần này sẽ mô tả một biến thể tương đương với chuẩn RSA PKCS#1 v1.5 Ở đây, thông điệp được chèn một xâu ngẫu nhiên trong khi mã hóa Cụ thể, với là module , để mã hóa thông điệp

có kích thước cần chèn thêm vào một chuỗi ngẫu nhiên kích thước trước khi thực hiện mã hóa

4.3 Mã hóa El Gamal

Lược đồ mã hóa thứ hai có thể được sử dụng trong mật mã khóa công khai có

liên quan đến lý thuyết về bài toán logarit rời rạc Ý tưởng này được giới thiệu bởi

Diffie và Hellman vào năm 1976 Mục này sẽ mô tả một cách tổng quan với những nội dung cơ bản của lược đồ này

Trang 29

𝒜

ở đây xác suất được thỏa mãn với mọi

Bài toán ra quyết định Diffie-Hellman đưa ra là làm sao xác định các bộ

(với được lựa chọn tùy ý trong ) từ bộ với ( lựa chọn tùy ý trong ) Ta nói rằng bài toán ra quyết định Diffie-Hellman

có độ khó là nếu với mọi thuật toán 𝒜 chạy trong thời gian tối đa là thì:

𝒜 𝒜

Một cách để giải quyết bài toán ra quyết định Diffie-Hellman là đưa ra một bộ

và tính sau đó kiểm tra đẳng thức Do đó, ta thấy

rằng bài toán ra quyết định Diffie-Hellman trong một số nhóm không khó hơn bài

toán logarit rời rạc trong cùng nhóm Thực tế thì, trong một số nhóm cụ thể bài

toán logarit rời rạc có độ khó cao Tuy nhiên, bài toán ra quyết định Diffie-Hellman

thì lại đơn giản hơn rất nhiều

Một ví dụ kinh điển thuộc các nhóm đưa ra ở trên dựa trên tập các số nguyên trong với số nguyên tố Ví dụ cụ thể, chọn , với là các số nguyên tố, sau đó tập các thặng dư bình phương module tạo thành một nhóm con Một ví dụ khác là bài toán đường đường cong Elliptic

Trang 30

30

Trong bài báo đầu tiên, Diffie-Hellman đã đưa ra một giao thức trao đổi khóa dựa trên bài toán ra quyết định Diffie-Hellman Giao thức này là nền tảng cho lược

đồ mã hóa El Gamal sẽ mô tả ngay sau đây Chọn một nhóm của số nguyên tố

và một phần tử sinh như mô tả ở trên Thuật toán sinh khóa chỉ đơn giản là chọn ngẫu nhiên làm khóa bí mật, khóa công khai là Để mã hóa một thông điệp sử dụng khóa công khai , người gửi chọn ngẫu nhiên giá trị

để tính bản mã .Giải mã sử dụng khóa bí mật bằng cách tính Việc giải mã này là đúng đắn vì:

thước lớn gọi là mã hóa lai (Hybrid Encryption) Với thể hiện thuật toán mã hóa trong mật mã khóa công khai, và là thuật toán mã hóa trong mật mã khóa đối xứng sử dụng khóa có kích thước Lược đồ mã hóa lai hoạt động như sau:

để mã hóa một thông điệp dài , đầu tiên bên gửi (Alice) chọn ngẫu nhiên một khóa kích thước , mã hóa sử dụng với khóa công khai , sau đó mã hóa sử dụng và khóa Tức là bản mã được xác định bởi: Việc giải mã được thực hiện một cách tự nhiên, bao gồm khôi phục khóa bí mật từ đầu tiên của bản mã, sau đó giải mã đoạn tiếp theo của bản mã bằng khóa với thuật toán giải mã trong mật mã khóa đối xứng Như

Trang 31

31

vậy, trong lược đồ này áp dụng mật mã khóa công khai để mã hóa một khóa chia sẻ ngắn trong giao tiếp, thao tác mã hóa thông điệp rõ chủ yếu được thực hiện bằng mật mã khóa đối xứng

Nhận thấy rằng, mã hóa lai là một CPA – an toàn nếu lược đồ mã hóa khóa công khai và lược đồ mã hóa khóa đối xứng sử dụng là các lược đồ CPA – an toàn

Chữ ký điện tử được sử dụng trong các giao dịch điện tử Xuất phát từ thực tế, chữ ký điện tử cần đảm bảo các tính chất:

Tính xác thực

Các hệ thống mã hóa khóa công khai cho phép mã hóa văn bản với khóa riêng

mà chỉ có người chủ của khóa biết Để sử dụng chữ ký số thì văn bản không cần phải được mã hóa mà chỉ cần mã hóa hàm băm của văn bản đó (thường có độ dài cố định và ngắn hơn băn bản rất nhiều) Khi cần kiểm tra, bên nhận giải mã để lấy lại hàm băm và kiểm tra với hàm băm văn bản nhận được Nếu hai giá trị này khớp nhau thì bên nhận có thể tin tưởng rằng văn bản xuất phát từ người sở hữu khóa riêng

Tính toàn vẹn

Cả hai bên tham gia quá trình thông tin đều có thể tin tưởng là văn bản không

bị sửa đổi trong khi truyền Vì nếu văn bản thay đổi thì bản băm cũng sẽ thay đổi và lập tức bị phát hiện

Trang 32

32

Tính chống chối bỏ

Trong quá trình trao đổi dữ liệu, một bên có thể từ chối một văn bản nào đó, là

do chính mình gửi Để ngăn ngừa khả năng này, bên nhận yêu cầu bên gửi phải gửi kèm chữ ký số với văn bản Khi có tranh chấp, bên nhận sẽ dùng chữ ký này như một chứng cứ để bên thứ 3 giải quyết

ký nhận đầu vào là khóa bí mật và thông điệp cho đầu ra là chữ ký ; Với Cuối cùng là thuật toán kiểm tra chữ ký nhận đầu vào khóa công khai , thông điệp và chữ ký cho đầu ra là một giá trị 0 hoặc 1 Nếu ta nói rằng chữ ký là hợp lệ cho thông điệp (đối với ) Tương tự với MAC, yêu cầu cho lược đồ chữ ký số là với mỗi cặp khóa sinh với thuật toán , và với mọi thông điệp , một chữ ký dược tạo bởi người ký trung thực luôn là hợp lệ với thông điệp

Hoạt động của lược đồ chữ ký số được mô tả cụ thể như sau: Người dùng Alice sinh một cặp khóa bằng thuật toán trên thiết bị cá nhân của mình, sau đó công bố khóa công khai của mình Nhờ vậy, cô ấy có thể “xác nhận”

(ký) bất kỳ thông điệp nào cô muốn bằng cách tính Những

Trang 33

33

người dùng bất kỳ khác(ví dụ như Bob) khi có một bản sao khóa công khai của Alice, có thể xác minh được một thông điệp đã được Alice ký bằng cách kiểm tra đẳng thức Chú ý rằng, lược đồ chữ ký số có sự đối nghịch với lược đồ mã hóa khóa công khai, cụ thể người giữ đóng vai trò người gửi, còn những người giữ đóng vai trò người nhận

Vấn đề an toàn trong lược đồ chữ ký số được xác định tương tự với MAC Khi

đó, chúng ta giả định kẻ tấn công có thể yêu cầu người ký, ký lên một thông điệp bất kỳ mà anh ta lựa chọn Ngoài ra, anh ta cũng có khóa công khai Kẻ tấn công thành công nếu anh ta có thể tự tạo ra một chữ ký hợp lệ cho thông điệp đối với khóa Một lược đồ chữ ký số là nếu với mọi kẻ tấn công 𝒜 tính toán trong thời gian tối đa , thì xác suất anh ta tấn công thành công một thông điệp không lớn hơn Khái niệm này còn được gọi là không thể giả mạo trước tấn công

lựa chọn thông điệp phù hợp

Lược đồ chữ ký số có một số ưu điểm so với MAC như Khóa công khai của người ký được công bố rộng rãi, do vậy chữ ký của người ký có thể được xác minh bởi bất kỳ ai Như vậy, chữ ký số phù hợp với nhu cầu giao tiếp “một – nhiều” phổ biến trên thực tế hiện nay Rõ ràng rằng, chữ ký được xác minh một cách công khai

nên nó bao hàm ý nghĩa rằng người ký không thể chối bỏ (tính chống chối bỏ) chữ

ký này Cụ thể, khi Alice ký lên một thông điệp thì Bob có thể chứng minh rằng thông điệp này có đúng là của Alice ký hay không bằng cách đưa ra chữ ký trong thông điệp này Tuy vậy, việc xác thưc một thông điệp ngắn sử dụng lược đồ chữ ký

số có thể không hiệu quả bằng sử dụng MAC

Trên thực tế, có nhiều lược đồ chữ ký số được các nhà nghiên cứu đưa ra: RSA, DSA, Elgamal… Tuy nhiên, lược đồ được sử dụng phổ biến nhất hiện nay là lược đồ chữ ký số dựa trên thuật toán RSA

5.2.2 Chữ ký số RSA

Tương tự như lược đồ mã hóa khóa công khai RSA, lược đồ chữ ký số RSA được xây dựng dựa trên bài toán RSA Để đơn giản, trước tiên ta xem xét lược đồ

Trang 34

34

chữ ký số RSA cơ bản (textbook RSA) Đầu tiên, thuật toán sinh ra bộ với là khóa công khai và là khóa bí mật Để ký lên một thông điệp sử dụng khóa bí mật, người ký tính Để xác minh chữ

ký cho thông điệp với khóa công khai người dùng kiểm tra đẳng thức:

Với yêu cầu về tính chính xác của chữ ký được sinh ra bởi người ký ta có:

Một lược đồ chữ ký RSA an toàn khi kẻ tấn công không thể tạo ra chữ ký hợp

lệ cho thông điệp Thực tế thì, lược đồ chữ ký RSA vừa mô tả không đảm bảo an toàn trước hai hình thức tấn công sau:

Thứ nhât, kẻ tấn công biết khóa công khai có thể tạo ra một chữ ký giả mạo bằng cách chọn tùy ý và giá trị lựa chọn này là chữ ký của thông điệp , mặc dù thông điệp tính được có thể không mang ý nghĩa Cách thức tấn công này đủ để thấy lược đồ chữ ký RSA nêu trên là không an toàn

Thứ hai, một cách thức tấn công còn nghiêm trọng hơn khi mà kẻ tấn công có thể giả mạo chữ ký của một thông điệp tùy chọn ̂ nếu anh ta có được chữ ký của một thông điệp khác mà anh ta lựa chọn trước đó Kịch bản tấn công này thực hiện như sau Đầu tiên, kẻ tấn công tính ngẫu nhiên một cặp sử dụng phương pháp trong kịch bản tấn công thứ nhất Giả sử sau đó kẻ tấn công có được chữ ký

từ người ký thực sự cho thông điệp (̂) Kẻ tấn công có thể tính được chữ ký ̂ , chữ ký này là hợp lệ cho ̂ vì:

̂ ̂

Các phương thức tấn công nêu trên cho thấy lược đồ chữ ký số “textbook

RSA” không đảm bảo an toàn Nhưng thật may mắn, chỉ cần một thay đổi đơn giản

trên lược đồ này có thể ngăn chặn được các tấn công nêu trên Đó là thực hiện băm

Trang 35

mã có đầu vào là thông điệp kích thước tùy ý, đầu ra có cùng kích thước với

Để ký lên thông điệp có kích thước tùy ý, người ký sinh tùy ý giá trị và tính:

Chữ ký của thông điệp gồm cặp Để xác minh chữ ký của với khóa công khai , ta thực hiện kiểm tra: và đẳng thức:

( )

5.2.4 Nguy cơ tấn công chữ ký số

Một chữ ký số chỉ được sử dụng trong thực tế nếu nó được chứng minh là không hề giả mạo Mục tiêu lớn nhất của kẻ tấn công các sơ đồ chữ ký số là giả mạo chữ ký nhằm trục lợi Thực tế thì, các hành vi tấn công chữ ký rất đa dạng, để dễ dàng phân tích và đánh giá ta có thể chia thành các nhóm tấn công sau:

Trang 36

36

Tấn công tổng thể (Total break): Một kẻ giả mạo không những có được thông

tin về khóa riêng mà còn có thể sử dụng một thuật toán sinh chữ ký tương ứng tạo

ra được chữ ký cho thông điệp

Giả mạo có lựa chọn (Selective forgert): Kẻ tấn công có khả năng tạo ra được

một tập hợp các chữ ký cho một lớp thông điệp nhất định, các thông điệp này đươc

ký mà không cần phải có khóa mật của người ký

Giả mạo thông điệp biết trước (Existenial forgert): kẻ tấn công có khả năng

giả mạo chữ ký cho một thông điệp Kẻ tấn công có thể có khả năng kiểm soát ít nhất là thông điệp giả mạo, để thực hiện đánh lừa người dùng

Tấn công vào khóa: nguy cơ kẻ tấn công xác định khóa bí mật từ khóa công khai và các thông điệp được ký

Tấn công vào thông điệp: kẻ tấn công có khả năng kiểm tra chữ ký khác nhau

có phù hợp với một thông điệp cho trước hay không

Các sơ đồ chữ ký số được áp dụng hiện nay, đều đã được các nhà nghiên cứu phân tích và đánh giá về khả năng chống chịu trước các nguy cơ tấn công nêu trên

Trang 37

37

Chương 2: Hạ tầng khóa công khai

Với độ an toàn cao cùng sự đơn giản trong công tác quản lý khóa – mật mã khóa công khai là giải pháp an toàn thông tin được áp dụng phổ biến trong các hệ thống thông tin quan trọng hiện nay Tuy nhiên, để triển khai và sử dụng được các ứng dụng của mật mã khóa công khai cần có một hạ tầng tổng thể, hạ tầng này gọi

là hạ tầng khóa công khai (Public Key Infrastructure - PKI) Chương này tìm hiểu

cụ thể về các thành phần và cơ chế hoạt động cơ bản của hạ tầng khóa công khai

1.1 Giới thiệu

Như đã trình bày, mật mã khoá công khai sử dụng cặp khóa trong quá

trình đảm bảo bí mật, xác thực, toàn vẹn và chống chối bỏ Một đặc tính quan trọng

khác của mật mã khoá công khai là phần khoá công khai được phân phối một cách

tự do Tuy vậy, trong hạ tầng mã khoá công khai thì các khoá công khai ngoài việc phải luôn sẵn có để mọi người trong hệ thống có thể sử dụng còn phải được đảm bảo về tính toàn vẹn xác thực

Khoá công khai được đặt ở vị trí công khai trong một định dạng đặc biệt Định dạng này được gọi là chứng thư số (hay chứng thư khóa công khai – Public Key Certificate (PKC), hoặc đơn giản là chứng thư) Chứng thư là sự gắn kết giữa khoá công khai của thực thể và một hoặc nhiều thuộc tính liên quan đến thực thể Thực thể có thể là người, hoặc thiết bị phần cứng như máy tính, router hay một phần mềm

xử lý Một chứng thư khoá công được người cấp ký bằng chữ ký có hiệu lực nhằm đưa ra một bảo bảm đầy đủ về sự gắn kết giữa khoá công khai, thực thể sở hữu khoá

và tập các thuộc tính khác được viết trong chứng thư

Trang 38

38

Hình 5: Ví dụ một chứng thư số - chứng thư của máy chủ mail Viettel

Chứng thƣ chứa những thông tin cần thiết nhƣ: khóa công khai, chủ thể sở hữu khoá, chủ thể cung cấp chứng thƣ và một số thông tin khác Tính hợp lệ của các thông tin đƣợc đảm bảo bằng chữ ký số của chủ thể cấp chứng thƣ Một số dạng chứng thƣ số đƣợc sử dụng hiện nay nhƣ: chứng thƣ khoá công khai X.509, chứng thƣ khoá công khai đơn giản (Simple Public Key Certificates - SPKC), chứng thƣ Pretty Good Privacy (PGP)

Mỗi loại chứng thƣ có cấu trúc định dạng riêng Hiện nay, chứng thƣ khoá công khai X.509 đƣợc sử dụng phổ biến trong hầu hết các hệ thống PKI Hệ thống PKI đƣợc nghiên cứu cũng sử dụng định dạng chứng thƣ X.509, nên luận văn tập

Trang 39

39

trung xem xét chi tiết chứng thư khóa công khai X.509 Trong quá trình sử dụng thực tế, X509 có một số thay đổi nhỏ nhằm tăng cường độ an toàn và đáp ứng tốt nhu cầu thực thế Phiên bản biến hiện nay là X.509 v3, đây là phiên được ngầm hiểu khi nhắc đến chứng thư X509 hay chứng thư nói chung trong các phần trình bày tiếp theo

1.2 Chứng thư khóa công khai X509

Chứng thư khoá công khai X.509 được Hội viễn thông quốc tế (ITU) đưa ra lần đầu tiên năm 1988 như là một bộ phận của dịch vụ thư mục X.500

Chứng thư gồm 2 phần Phần đầu là những trường cơ bản cần thiết phải có trong chứng thư Phần thứ hai chứa thêm một số trường phụ, những trường phụ này được gọi là trường mở rộng, dùng để xác định và đáp ứng những yêu cầu bổ sung của hệ thống Khuôn dạng của chứng thư X.509 được chỉ ra như trong hình sau

Hình 6: Khuôn dạng chứng thư X509 v3

Trang 40

40

Lý giải ý nghĩa của các trường thông tin cơ bản của chứng thư X.509 như sau:

- Version: xác định số phiên bản của chứng thư

- Certificate Serial Number: do CA gán, là định danh duy nhất của chứng

thư

- CA Signature Algorithm: chỉ ra thuật toán CA sử dụng để ký số chứng

thư Có thể là thuật toán RSA hay DSA…

- Issuer Name: chỉ ra CA cấp và ký chứng thư

- Validity Period: khoảng thời gian chứng thư có hiệu lực Trường này xác

định thời gian chứng thư bắt đầu có hiệu lực và thời điểm hết hạn

- Subject Name: xác định thực thể mà khoá công khai của thực thể này

được xác nhận Tên của subject phải duy nhất đối với mỗi thực thể CA xác nhận

- Subject public key: chứa khoá công khai và những tham số liên quan; xác

định thuật toán (ví dụ RSA hay DSA) được sử dụng cùng với khoá

- Issuer Unique ID (Optional): là trường không bắt buộc, trường này cho

phép sử dụng lại tên người cấp Trường này hiếm được sử dụng trong triển khai thực tế

- Subject Unique ID (Optional): là trường tuỳ chọn cho phép sử dụng lại

tên của subject khi quá hạn Trường này cũng ít được sử dụng

- Extensions (Optional): chỉ có trong chứng thư v.3

- Certification Authority’s Digital Signature: chữ ký số của CA được tính

từ những thông tin trên chứng thư với khoá cá nhân và thuật toán ký số được chỉ ra trong trường Signature Algorithm Identifier của chứng thư Tính toàn vẹn của chứng thư được đảm bảo bằng chữ ký số của CA trên chứng thư Khoá công khai của CA được phân phối đến người sử dụng chứng thư theo một

số cơ chế bảo mật, trước khi thực hiện các thao tác PKI Người sử dụng kiểm tra hiệu lực của chứng thư được cấp với chữ ký số của CA và khoá công khai của CA

Ngày đăng: 25/07/2017, 21:39

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