CHƯƠNG 1 GIỚI THIỆU CHUNG VỀ MẬT MÃ Nội dung của chương luận văn này sẽ trình bày tổng quát về cơ sở lý thuyết mật mã, nêu các khái niệm về mật mã, tiếp theo sẽ đi sâu vào một số thuật t
Trang 1ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
–––––––––––––––––––––––––––––––
MAI THỊ HOA HUỆ
NGHIÊN CỨU XÂY DỰNG BẢO MẬT VÀ XÁC THỰC TÀI LIỆU ĐIỆN TỬ DỰA TRÊN PKI VÀ ỨNG DỤNG
VÀO TRƯỜNG ĐẠI HỌC HẠ LONG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN - 2017
Trang 2ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
–––––––––––––––––––––––––––––––
MAI THỊ HOA HUỆ
NGHIÊN CỨU XÂY DỰNG BẢO MẬT VÀ XÁC THỰC TÀI LIỆU ĐIỆN TỬ DỰA TRÊN PKI VÀ ỨNG DỤNG
VÀO TRƯỜNG ĐẠI HỌC HẠ LONG
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS Hồ Văn Hương
THÁI NGUYÊN - 2017
Trang 3LỜI CAM ĐOAN
Tác giả xin cam đoan rằng số liệu và kết quả nghiên cứu trong luận văn
là hoàn toàn trung thực chưa hề được sử dụng và công bố trong bất kỳ một công trình khoa học nào Các thông tin, tài liệu trình bày trong luận văn đã được ghi rõ nguồn gốc
Tác giả luận văn
Mai Thị Hoa Huệ
Trang 4LỜI CẢM ƠN
Trong quá trình học tập, nghiên cứu viết luận văn, được sự giúp đỡ của Trường Đại học Công nghệ Thông tin và Truyền thông, các thầy giáo, cô giáo, các tổ chức, đồng nghiệp trong và ngoài tỉnh đã tạo điều kiện về vật chất, thời gian và cung cấp tài liệu giúp đỡ tôi hoàn thành luận văn
Tôi xin chân thành cảm ơn sự giúp đỡ quý báu của các thầy, cô giáo, các
tổ chức, đồng nghiệp và người hướng dẫn khoa học TS Hồ Văn Hương đã hết
lòng hướng dẫn và giúp đỡ tôi rất nhiều trong nghiên cứu khoa học và thực hiện hoàn thành luận văn này
Tác giả xin trân trọng cảm ơn!
Tác giả luận văn
Mai Thị Hoa Huệ
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC TỪ VIẾT TẮT vi
DANH MỤC CÁC BẢNG vii
DANH MỤC CÁC HÌNH viii
MỞ ĐẦU 1
1 Nhu cầu bảo mật và xác thực văn bản điện tử 1
2 Lý do chọn đề tài 1
3 Mục đích nghiên cứu 1
4 Phương pháp nghiên cứu 2
5 Bố cục của luận văn 2
CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ MẬT MÃ 3
1.1 Mật mã khóa đối xứng 3
1.1.1 Khái niệm 3
1.1.2 Bảo vệ tính bí mật của thông tin với mật mã khóa đối xứng 3
1.2 Mật mã khóa công khai 4
1.2.1 Khái niệm 4
1.2.2 Bảo vệ thông tin với mật mã khóa công khai 4
1.2.3 Thuật toán RSA 6
1.2.4 Hệ mật ElGamal trên đường cong elliptic 7
1.2.5 Sơ đồ trao đổi khóa Elliptic 9
1.2.6 Thuật toán chữ ký số Elliptic (ECDSA) 10
1.2.7 So sánh giữa Elliptic và RSA 11
1.3 Kết hợp mật mã đối xứng và mật mã khóa công khai 13
1.4 Kết luận chương 1 14
Trang 6CHƯƠNG 2 : CƠ SỞ HẠ TẦNG KHÓA CÔNG KHAI 15
2.1 Khái niệm về PKI và các khái niệm cơ bản trong PKI 15
2.1.1 Khái niệm PKI 15
2.1.2 Các khái niệm cơ bản trong PKI 15
2.2 Các thành phần PKI 20
2.2.1 Tổ chức chứng thực 21
2.2.2 Trung tâm đăng ký 21
2.2.3 Người dùng cuối 22
2.2.4 Hệ thống lưu trữ 22
2.3 Các dịch vụ PKI 23
2.3.1 Các dịch vụ cốt lõi của PKI 23
2.3.2 Các dịch vụ PKI hỗ trợ 25
2.4 Các mô hình kiến trúc PKI 27
2.4.1 Kiến trúc kiểu CA đơn (Single CA) 28
2.4.2 Kiến trúc kiểu CA phân cấp 28
2.4.3 Kiến trúc kiểu chứng thực chéo (Cross – certificate) 29
2.4.4 Kiến trúc kiểu Bridge CA 30
2.5 Ứng dụng của PKI trong ký số và bảo mật dữ liệu 31
2.5.1 Mã hóa 31
2.5.2 Chống giả mạo 32
2.5.3 Xác thực 32
2.5.4 Chống chối bỏ nguồn gốc 32
2.5.5 Chữ ký điện tử 32
2.5.6 Bảo mật website 33
2.5.7 Code Signing 33
2.5.8 Chứng thực điện tử 34
2.6 Kết luận chương 2 34
Trang 7CHƯƠNG 3 : XÂY DỰNG ỨNG DỤNG BẢO MẬT VÀ XÁC THỰC
TÀI LIỆU ĐIỆN TỬ 35
3.1 Phân tích 35
3.2 Thiết kế 35
3.3 Các chức năng trong phần mềm 36
3.4 Xây dựng giao diện 37
3.5 Thiết kế lớp 39
3.6 Cài đặt và kiểm thử 41
3.7 Kết luận chương 3 50
KẾT LUẬN 51
TÀI LIỆU THAM KHẢO 53
Trang 8DANH MỤC CÁC TỪ VIẾT TẮT
SPKC Simple Public Key Certificate
ITU International Telecommunication Union CRLs Certificate Revocation Lists
OCSP Online Certificate Status Protocol LDAP Lightweight Directory Access Protocol
Trang 9DANH MỤC CÁC BẢNG
Bảng 1.1 So sánh sử dụng RSA và ECC trong quá trình bắt tay của SSL 12 Bảng 1.2 So sánh kích thước khóa RSA và ECC với cùng mức độ an toàn 12
Trang 10DANH MỤC CÁC HÌNH
Hình 1.1: Mã hóa khóa bí mật 4
Hình 1.2: Mã hóa khóa công khai 5
Hình 1.3: Xác thực thông tin 5
Hình 1.4: Ký và mã với khóa công khai 6
Hình 1.5: So sánh mức độ bảo mật giữa ECC với RSA/DSA 12
Hình 1.6: Kết hợp khóa công khai và khóa bí mật 14
Hình 2.1: Chứng thư số 15
Hình 2.2: Các thành phần PKI 20
Hình 2.3: Single CA 28
Hình 2.4: CA phân cấp 29
Hình 2.5: Chứng thực chéo 30
Hình 2.6: Bridge CA 31
Hình 3.1: Giao diện xác thực khóa cá nhân 38
Hình 3.2: Giao diện chính 38
Hình 3.3: Giao diện thông báo 39
Hình 3.4: Lớp Crypto 39
Hình 3.5: Lớp ECDH 40
Hình 3.6: Lớp Data Transfrmer 40
Hình 3.7: Lớp ECDSA_Signature 41
Hình 3.8: XML Work 41
Hình 3.9: Xác thực người dùng 42
Hình 3.10: Thông báo file không phải là khóa cá nhân 42
Hình 3.11: Xác thực thất bại 42
Hình 3.12: Xác thực đúng 43
Hình 3.13: Giao diện chính của chương trình 43
Hình 3.14: Thông báo cho người dùng kết quả 43
Hình 3.15: file sign chứa chữ ký 44
Trang 11Hình 3.16: Nội dung chữ ký được sinh ra 44
Hình 3.17: Các thẻ tương ứng trong file chữ ký 44
Hình 3.18: Thông báo xác minh chữ ký sai 45
Hình 3.19: Trích xuất nội dung khi xem log 45
Hình 3.20: Trích xuất nội dung khi xem log 45
Hình 3.21: file phục hồi file gốc 46
Hình 3.22: Thông báo lỗi file định dạng publickey 46
Hình 3.23: Tạo key phục vụ 46
Hình 3.24: Tải dữ liệu từ file gốc lên và tiến hành mã hóa 47
Hình 3.25: Thông báo mã hóa thành công 47
Hình 3.26: Định dạng file 47
Hình 3.27: Nội dung thẻ Senderpubkey 48
Hình 3.298: Tạo lại key ECDH 48
Hình 3.29: Kết quả giải mã 48
Hình 3.30: Thông báo giải mã thành công 48
Hình 3.31: Lưu file 49
Hình 3.32: File đã giải mã 49
Hình 3.33: Thông báo giải mã thất bại 49
Hình 3.34: Giải mã thất bại xem qua log 50
Trang 12MỞ ĐẦU
1 Nhu cầu bảo mật và xác thực văn bản điện tử
Ngày nay, công nghệ thông tin phát triển rất nhanh và được ứng dụng vào hầu hết những lĩnh vực trong cuộc sống Vai trò của công nghệ thông tin ngày càng được nâng cao, không chỉ dừng lại ở những ứng dụng văn phòng, công nghệ thông tin còn được triển khai ở nhiều lĩnh vực Bên cạnh những lợi thế trong việc áp dụng công nghệ thông tin, việc sử dụng CNTT còn tiềm ẩn nhiều vấn đề còn tồn tại, trong
đó có việc đảm bảo an toàn thông tin ví dụ như bị đánh cắp dữ liệu, được phép đọc các tài liệu mà không đủ thẩm quyền, dữ liệu bị phá hủy … Do đó, bên cạnh việc triển khai và sử dụng CNTT, chúng ta cũng phải đảm bảo ATTT Đảm bảo ATTT chính là đảm bảo hệ thống có được ba yếu tố [3]:
Hiện nay trường Đại học Hạ Long trao đổi tài liệu chủ yếu qua mạng Internet Tuy nhiên, việc đưa thông tin lên mạng đó lại tiềm ẩn nhiều rủi ro, trong đó đặc biệt phải kể đến những rủi ro về bảo mật nhất là thông tin trong hệ thống là thông tin nhạy cảm và cần phải xác thực được tính chính xác vì những sai sót sẽ dẫn đến hậu quả
nghiêm trọng.Vì vậy em chọn đề tài: :“Nghiên cứu xây dựng bảo mật và xác thực tài liệu điện tử dựa trên PKI và ứng dụng vào trường Đại học Hạ Long ”
3 Mục đích nghiên cứu
3.1 Mục đích nghiên cứu
Luận văn nghiên cứu các vấn đề về an toàn hệ thống thông tin, lý thuyết mật
mã, mật mã đối xứng, mật mã công khai Xây dựng và phát triển ứng dụng chữ ký
số, xác thực, mã hoá và giải mã tài liệu điện tử ứng dụng trong thực tế
Trang 133.2 Đối tượng và phạm vi nghiên cứu
Trong phạm vi luận văn này sẽ tập trung tìm hiểu một số nội dung cơ bản: Nghiên cứu các thành phần, dịch vụ, kiến trúc và ứng dụng của cơ sở hạ tầng khóa công khai PKI Đánh giá vấn đề an toàn và bảo mật xác thực tài liệu điện tử
4 Phương pháp nghiên cứu
Luận văn kết hợp nghiên cứu lý thuyết, nghiên cứu xây dựng bảo mật và xác thực tài liệu điện tử dựa trên PKI
5 Bố cục của luận văn
Ngoài phần Mở đầu và Kết luận, Luận văn gồm 3 chương như sau:
Chương 1: Trình bày tổng quan về cơ sở lý thuyết mật mã: mật mã khóa đối
xứng, mật mã khóa công khai, kết hợp mật mã khóa đối xứng và mật mã khóa công khai, các thuật toán
Chương 2: Cơ sở hạ tầng khóa công khai: khái niệm về PKI, các thành phần
cơ bản, dịch vụ, mô hình và các ứng dụng của PKI
Chương 3: Xây dựng ứng dụng
Trang 14CHƯƠNG 1 GIỚI THIỆU CHUNG VỀ MẬT MÃ
Nội dung của chương luận văn này sẽ trình bày tổng quát về cơ sở lý thuyết mật mã, nêu các khái niệm về mật mã, tiếp theo sẽ đi sâu vào một số thuật toán mã hóa công khai và trên cơ sở đó nhận xét, đánh giá một số thuật toán mã hóa công khai phổ biến hiện nay
1.1 Mật mã khóa đối xứng
1.1.1 Khái niệm
Mật mã khóa đối xứng còn được gọi là Mật mã khóa bí mật Đây là phương pháp mã hóa sử dụng cặp khóa đối xứng Với phương pháp này, người gửi và người nhận sẽ dùng chung một khóa để mã hóa và giải mã thông điệp Trước khi mã hóa thông điệp gửi đi, hai bên gửi và nhận phải có khóa chung và phải thống nhất thuật toán để mã hóa và giải mã
Mật mã là khoa học bảo vệ dữ liệu, cung cấp những phương pháp chuyển đổi
dữ liệu thành những bản mã để [7]:
Dữ liệu không thể truy cập được bởi những người bất hợp pháp
Nội dung dữ liệu được giữ kín với những người khác
1.1.2 Bảo vệ tính bí mật của thông tin với mật mã khóa đối xứng
Độ an toàn của thuật toán này phụ thuộc vào khoá, nếu để lộ khoá này nghĩa là bất kỳ người nào cũng có thể mã hoá và giải mã thông báo trong hệ thống mã hoá
Trang 15Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai Trong hai khóa, một dùng để mã hóa
và khóa còn lại dùng để giải mã Điều quan trọng đối với hệ thống là không thể tìm
ra khóa bí mật nếu chỉ biết khóa công khai
1.2.2 Bảo vệ thông tin với mật mã khóa công khai
Việc sử dụng mật mã khóa công khai cung cấp cho ta những ứng dụng quan trọng trong bảo vệ thông tin [7, 8]:
a Bảo vệ tính bí mật thông tin
Giả sử A muốn gửi cho B một thông điệp M, A sẽ phải:
- Mã hóa thông điệp M bằng khóa công khai của B
- Gửi bản mã thông điệp cho B
Khi B nhận được thông điệp đã được mã hóa của A, B sẽ sử dụng khóa riêng của mình để giải mã thông điệp đó
Trang 16Hình 1.2 Mã hóa khóa công khai
Phương pháp này cung cấp tính bí mật vì chỉ có B mới có khóa bí mật để giải
mã thành công bản mã mà A đã gửi Tuy nhiên, phương pháp này lại không cung cấp bất kỳ quá trình xác thực nào để khẳng định bản mã mà B nhận là do A gửi, vì khóa công khai của B ai cũng biết
b Xác thực thông tin
A muốn mọi người biết được rằng tài liệu M là của chính A gửi, A có thể sử dụng khóa riêng của mình để ký lên tài liệu M
Khi ai đó nhận được tài liệu, ví dụ là B, B sẽ kiểm tra chữ ký có trong tài liệu
M bằng khóa công khai của A và có thể chắc chắn được rằng tài liệu này là do A
ký vì chỉ có A mới có khóa riêng dùng để ký lên tài liệu
Hình 1.3 Xác thực thông tin
Trang 17Phương pháp này giúp người sử dụng có thể xác thực được nguồn gốc của tài liệu, nhưng lại không bảo vệ tính bí mật của tài liệu Do đó, người không được quyền xem tài liệu vẫn có thể xem được nó
c Bảo vệ bí mật và xác thực thông tin
Để đảm bảo thông tin vừa bí mật vừa xác thực, chúng ta phải thực hiện mã hóa hai lần:
- Đầu tiên, A phải ký thông điệp bằng khóa riêng của mình (thao tác này để đảm bảo tính xác thực)
- Sau đó, A sử dụng khóa công khai của B để mã hóa tiếp thông báo vừa được mã hóa (thao tác này để đảm bảo tính bí mật)
Sau đó, A gửi bản mã cuối cùng đến B B nhận được, sẽ làm giải mã theo thứ
tự ngược lại để lấy được bản rõ
Hình 1.4 Ký và mã với khóa công khai
1.2.3 Thuật toán RSA
Trong mật mã học, RSA là một thuật toán mã hóa khóa công khai Đây là thuật toán phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã trong việc sử dụng khóa công khai RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho
là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn
Trang 18RSA có tốc độ thực hiện chậm hơn đáng kể so với các thuật toán mã hóa đối xứng Trên thực tế, người ta thường sử dụng một thuật toán mã hóa đối xứng nào đó
để mã hóa văn bản cần gửi và sử dụng thuật toán mã hóa công khai để phân phối khóa đối xứng
Ngoài ra, thuật toán RSA còn được dùng để tạo chữ ký số cho văn bản Người ký sẽ sử dụng khóa bí mật của mình để ký vào văn bản cần ký Người nhận được văn bản sau đó sẽ dùng khóa công khai của người ký để xác thực người gửi cũng như kiểm tra tính toàn vẹn của văn bản
Việc sử dụng RSA sẽ mang lại cho chúng ta một số ưu điểm [10]:
- Quản lý khóa đơn giản: Trong mã hóa đối xứng, số khóa yêu cầu cho
phép n thực thể truyền thông với nhau là n2 Trong khi đó, đối với mã hóa công khai, mỗi thực thể cần 1 cặp khóa, tổng số khóa yêu cầu để truyền thông chỉ là 2*n Như vậy, việc quản lý khóa rất là đơn giản
- Nâng cao mức độ an toàn cho việc giao dịch khóa: Mọi người dùng
phải có một cặp khóa, trong đó khóa bí mật không được chia sẻ cho bất kỳ ai, tránh được vấn đề đảm bảo an toàn trong truyền khóa ở mật
mã khóa bí mật
Tuy nhiên, RSA cũng có những nhược điểm và nó vẫn có thể bị tấn công:
- Phân tích khóa công khai: Hiện nay RSA được đánh giá là an toàn, nó đã và
đang được sử dụng rộng rãi trên toàn thế giới Tấn công được xem xét thường xuyên nhất là phân tích khóa công khai Nếu tấn công này thành công thì mọi thông báo được mã hóa bằng khóa công khai đều được giải mã
- Tấn công vòng: Trong tấn công này, bản mã được giải mã nhiều lần cho
đến khi xuất hiện bản rõ Phương pháp tấn công này rất chậm, đối với những khóa có độ dài lớn, tấn công này là không thể
- Tấn công dựa trên thời gian: kẻ tấn công sẽ dùng một siêu máy tính để
tìm ra một trong hai số thừa số nguyên tố
1.2.4 Hệ mật ElGamal trên đường cong elliptic
Trong đoạn này ta xét đường cong elliptic trên trường GF(p) = Zp với p là số
nguyên tố lớn hơn 3 [10]
Trang 19Tạo khóa:
Chọn Ep(a,b) và điểm G – là phần tử sinh
Mỗi người dùng chọn 1 số ngẫu nhiên:
Alice chọn nA và tính PA = nA*G Bob chọn nB và tính PB = nB*G
Khóa công khai: PA, PB, Ep(a,b), G
Khóa bí mật: nA, nB
Mã hóa:
Thông báo là PM thuộc Ep(a,b), Alice gửi thông báo mã PC cho Bob:
B1: Alice lấy khóa công khai của Bob
B2: Alice chọn một số ngẫu nhiên k và tính:
PC = [k*G, (PM + k*PB)] = [k*G, Q]
B3: Alice gửi bản mã PC cho Bob
Giải mã:
Bob nhận được bản mã PC, Bob giải mã như sau:
Bob dùng khóa bí mật của mình là nB và tính:
3x a2y
=
23*5 2*13
7
= 82
26 = 41
13 = 41*13-1 mod 53 = 41*49 mod 53 = 48
x3 = λ2 – x1 – x2 = 482 – 5 – 5 = 2294 mod 53 = 15
y3 = λ (x1 – x3 ) –y1 = 48*(5 – 15) – 13 = - 493 mod 53 = 37
G + G = (15,37) = 2G Tương tự ta có: 4G = 2G + 2G = (15,37) + (15,37) = (29,3)
6G = 4G + 2G = (29,3) + (15,37) = (3,2)
Trang 20 PM = [(PM + k*PB) – nB(k*G)] = (8,10)
Như vậy phép giải mã cho bản rõ là đúng
1.2.5 Sơ đồ trao đổi khóa Elliptic
Về mặt nguyên tắc thì tất cả các thuật toán mật mã dựa trên bài toán lô-ga-rít rời rạc trên trường hữu hạn đều có thể chuyển lên đường cong elliptic trên trường hữu hạn được
Muốn sử dụng được các thuật toán mật mã Elliptic thì công việc đầu tiên cần làm là ánh xạ được các thông báo lên tọa độ các điểm trên đường cong Elliptic vì các thuật toán mật mã Elliptic chỉ làm việc với các điểm và tọa độ của chúng
Trang 21Trường hữu hạn GF(q) và đường cong elliptic E xác định trên trường hữu hạn này được công bố công khai Điểm P ∈ E được công bố công khai P không nhất thiết phải là phần tử sing của E nó cần phải có bậc lớn [9]
1 Alice chọn một số nguyên dương a có độ lớn cùng cỡ với q và công bố công khai điểm aP ∈ E
2 Bob chọn số nguyên dương b tương tự với cách làm của Alice và công bố công khai bP ∈ E
3 Cả Alice và Bob tính K = abP ∈ E và sử dụng như là khóa phiên chung với nhau
Độ an toàn: Nếu Alice muốn tính K khi biết P, aP, bP thì anh ta phải tìm được a từ aP hoặc b từ bP Việc này là tương đương với việc giải bài toán lô-ga-rít rời rạc Elliptic
1.2.6 Thuật toán chữ ký số Elliptic (ECDSA)
Chuẩn bị:
• Alice chọn đường cong elliptic E trên trường hữu hạn GF(p) sao cho số điểm của E trên GF(p) là fr và r là số nguyên tố lớn và f là số nguyên dương nhỏ nhất để cho thuật toán hiệu quả [9, 12]
• Alice chọn điểm cơ sở G trên E trên GF(q) có bậc r
• Alice chọn số nguyên dương a và tính Q = aG
• Alice công bố thông tin công khai sau đây: GF(q), E, r, G, Q
Ký chữ ký số:
• Alice chọn số nguyên dương ngẫu nhiên k với 1 ≤ k < r và tính R = kG = (x,y)
• Alice tính s = k-1(m + ax) ( mod r) và tài liệu ký là (m, R, s)
Trang 22Sự khác nhau cơ bản của ECDSA và sơ đồ chữ ký số ElGamal Elliptic là thủ tục kiểm tra chữ ký số Trong sơ đồ ElGamal đẳng thức kiểm tra f(R)B + sR = mA đòi hỏi ba phép tính với một số nguyên lần một điểm và đây là những phần tốn kém nhất, trong khi đó ECDSA chỉ đòi hỏi hai phép tính như vậy Cải tiến này là nâng cao hiệu quả của ECDSA một khi cần nhiều lần kiểm tra chữ ký số và rất có giá trị trên thực tế
1.2.7 So sánh giữa Elliptic và RSA
Mã hóa khóa công cộng dựa trên hai vấn đề lớn của toán học là bài toán logarit rời rạc và bài toán phân tích số Phương pháp RSA dựa trên bài toán phân tích số (IFP – Integer Factoring Problem) Bài toán này đã được đưa ra từ cuối thập niên 70 Độ phức tạp tính toán của IFP là cận-hàm mũ (dùng thuật toán Index Calculus) Phương pháp ECC dựa trên bài toán logarit rời rạc trên nhóm các điểm đường cong elliptic trong trường hữu hạn (ECDLP – Elliptic Curve Discrete Problem) Bài toàn được đưa ra năm 1985 với độ phức tạp tính toán là hàm mũ, nghĩa là khó hơn so với IFP ECDLP cho tới nay vẫn chưa có thuật toán nào được xem là hiệu quả kiểu cận-hàm mũ để giải bài toán này
Do không có thuật toán cận-hàm mũ để giải bài toán ECDLP nên với cùng một mức an toàn (security level) thì hệ mật ECC yêu cầu độ dài khóa ngắn hơn rất nhiều so với hệ mật RSA Chẳng hạn để cho mức an toàn tương đương với RSA 1024-bít thì hệ mật ECC chỉ yêu cầu độ dài khóa tương ứng là 160 bít Kích thước khóa của ECC nhỏ hơn so với RSA nên thời gian sinh khóa, mã hóa/giải mã của hệ thống bảo mật dựa trên ECC nhanh hơn hệ thống RSA
Để thực hiện việc so sánh sử dụng RSA và ECC trong quá trình bắt tay của SSL, người ta sử sụng hai bộ mã khác nhau:
+TLS_RSA_WITH_RC4_128_SHA
+TLS_ECDH_ECDSA_WITH_RC4_128_SHA
Với mỗi bộ mã người ta sử dụng ba cấp độ an ninh khác nhau Đối với RSA người ta sử dụng khoá có độ dài 1024 bit, 1536 bit và 1048 bit, Với ECC sử dụng khoá có độ dài 160 bit, 192 bit và 224 bit Người ta sử dụng một công cụ để thực hiện nhiều phiên giao dịch đồng thời một lúc nhằm đo hai thông số trên một server [10] Và kết quả được thể hiện ở bảng 1.2
Trang 23Bảng 1.1 So sánh sử dụng RSA và ECC trong quá trình bắt tay của SSL
Kích thước khóa Tỉ lệ kích thước
khóa RSA : ECC
Trang 24Do có kích thước khóa nhỏ và khả năng phát sinh khóa rất nhanh nên ECC rất được quan tâm để áp dụng cho các ứng dụng trên môi trường giới hạn về thông lượng truyền dữ liệu, giới hạn về khả năng tính toán, khả năng lưu trữ ECC thích hợp với các thiết bị di động kỹ thuật số như handheld, PDA, điện thoại di động và thẻ thông minh (smart card)
Việc sử dụng ECC mang lại những hiệu quả sau: tăng tốc độ, yêu cầu khả năng tính toán thấp hơn, tiết kiệm dải thông đường truyền, tăng hiệu quả lưu trữ, giảm độ dài các chứng nhận… Các ưu điểm trên của hệ mật ECC có thể phát huy hiệu quả trong các ứng dụng mà đường truyền, khả năng tính toán, tốc độ và lưu trữ
bị hạn chế Và các ứng dụng đó được thể hiện rất hiệu quả trong thương mại điện
tử, web servers…
Hiện nay hầu hết các công ty lớn về viễn thông và bảo mật trên thế giới đều quan tâm phát triển Cả phòng thí nghiệm chính của RSA (RSA Security Laboratory) cũng đã nghiên cứu và đưa ECC vào sản phẩm của mình
Tuy nhiên, ECC vẫn có một số hạn chế nhất định Hạn chế thứ nhất đó là độ khó về toán học của hệ mật ECC, ngoài ra việc chọn sử dụng các tham số đường cong và điểm cơ sở chung như thế nào để thật sự đạt được độ bảo mật và an toàn cao là tương đối phức tạp
ECC cung cấp khả năng ứng dụng rất lớn trong lĩnh vực mã hóa khóa công cộng trên các thiết bị di động và smart card Tương lai ECC sẽ được nghiên cứu đưa vào thực tiễn phổ biến hơn để thay thế RSA
1.3 Kết hợp mật mã đối xứng và mật mã khóa công khai
Nhược điểm của mật mã khóa công khai là tốc độ chậm vì độ phức tạp tính toán lớn, dẫn đến việc tốn nhiều thời gian mã hóa và giải mã Do đó, khóa công khai không thuận tiện cho việc mã hóa một khối lượng dữ liệu lớn
Chính vì vậy, chúng ta có thể kết hợp cả hai phương pháp này để nâng cao hiệu quả hoạt động của mã hóa Ta xét các bước kết hợp:
- Sử dụng phương pháp mật mã đối xứng để mã hóa tập tin
- Sử dụng phương pháp mật mã khóa công khai để mã hóa mầm khóa của khóa đối xứng của người gửi bằng khóa công khai của người nhận, sau đó gửi đến cho người nhận
Trang 25- Người nhận dùng khóa riêng của mình để giải mã mầm khóa của khóa đối xứng Sau đó, dùng khóa đối xứng vừa giải mã được để giải mã tài liệu
Sơ đồ hoạt động [8]:
Hình 1.6 Kết hợp khóa công khai và khóa bí mật
1.4 Kết luận chương 1
Trong chương này luận văn đã trình bày tổng quan về cơ sở lý thuyết mật mã
và một số thuật toán mã hóa công khai như: thuật toán RSA, hệ mật Elgamal trên đường cong Elliptic, thuật toán chữ ký số Elliptic (ECDSA) Trên cơ sở các thuật toán, tác giả cũng đã phân tích rõ sự so sánh giữa các thuật toán đã nêu, làm cơ sở hướng nghiên cứu chương tiếp theo trong luận văn này
Trang 26CHƯƠNG 2
CƠ SỞ HẠ TẦNG KHÓA CÔNG KHAI
Nội dung của chương luận văn này sẽ tập trung trình bày về tổng quan cơ sở
hạ tầng khóa công khai như: nêu được các khái niệm về khóa công khai PKI, các thành phần dịch vụ của PKI, cũng như các ứng dụng của khóa công khai trong bảo mật dữ liệu thực tế hiện nay
2.1 Khái niệm về PKI và các khái niệm cơ bản trong PKI
2.1.1 Khái niệm PKI
PKI là cơ sở của một hạ tầng an toàn rộng khắp, các dịch vụ của nó được cài đặt
và thực hiện bằng cách sử dụng các khái niệm và kỹ thuật của khoá công khai [14]
2.1.2 Các khái niệm cơ bản trong PKI
Chứng thư số không chứa bất
kỳ một thông tin bí mật nào Về cơ
bản, chứng thư số chứa những thông
tin cần thiết như khóa công khai,
chủ thể (người sở hữu), bên cấp
chứng thư số 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 bên
cấp chứng thư số Người dùng muốn sử
dụng chứng thư số trước hết sẽ kiểm tra chữ ký số trong chứng thư số Nếu chữ
ký đó hợp lệ thì có thể sử dụng chứng thư số đó.Có nhiều loại chứng thư số, một trong số đó là:
Hình 2.1 Chứng thư số
Trang 27 Chứng thư số khóa công khai X.509
Chứng thư số khóa công khai đơn giản (Simple Public Key Certificate
- SPKC)
Chứng thư số PGP
Chứng thư số thuộc tính (Attribute Certificate – AC)
Tất cả các loại chứng thư số này đều có cấu trúc dạng riêng biệt Hiện nay chứng thư số khóa công khai X.509 được sử dụng phổ biến trong hầu hết các hệ thống PKI Chứng thư số X.509 được Hiệp hội viễn thông quốc tế (ITU) đưa ra lần đầu tiên năm 1998 Chứng thư số này 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ư số, phần thứ hai là phần chứa một số các trường phụ, hay còn gọi là trường mở rộng Các trường mở rộng thường được dùng để xác định và đáp ứng những yêu cầu bổ sung của hệ thống
Cấu trúc chứng thư số X.509 [4, 14]:
Version : phiên bản của chứng thư số
Serial Number: số serial của chứng thư số, là định danh duy nhất của chứng thư số, có giá trị nguyên
Certificate-Signature Algorithm: thuật toán CA sử dụng để ký chứng thư số
Issuer: Tên chủ thể phát hành chứng thư số
Validity: Thời hạn của chứng thư số
Subject: Tên chủ thể của chứng thư số
Subject Public Key Info
◦ Subject Public Key Algorithm: Thuật toán sinh khóa công khai
◦ Subject's Public Key: Khóa công khai
Extensions: Phần mở rộng
2.1.2.2 Kho chứng thư số
Chứng thư số được cấp bởi CA kết hợp với khóa công khai với nhận dạng của thực thể B Tuy nhiên nếu thực thể A không có khả năng xác định vị trí chứng thư số này một cách dễ dàng thì anh ta cũng không có hiệu quả gì hơn so với việc chứng thư số này chưa được tạo ra
Trang 28Do đó, phải có một kho chứng thư số trực tuyến (online repositories), quy
mô lớn và mềm dẻo và phải được đặt ở vị trí mà A có thể xác định vị trí chứng thư
số mà anh ta cần để truyền thông an toàn
2.1.2.3 Thu hồi chứng thư số
Trong một số trường hợp như khóa bị xâm hại, hoặc người sở hữu chứng thư
số thay đổi vị trí, cơ quan … thì chứng thư số đã được cấp không có hiệu lực Do
đó, cần phải có một cơ chế cho phép người sử dụng chứng thư số kiểm tra được trạng thái thu hồi chứng thư số Chứng thư số X.509 cho phép kiểm tra chứng thư
số trong các trường hợp sau [14]:
Chứng thư số không bị thu hồi
Chứng thư số đã bị CA cấp thu hồi
Chứng thư số do một tổ chức có thẩm quyền mà CA ủy thác có trách nhiệm thu hồi chứng thư số
2.1.2.4 Công bố và gửi thông báo thu hồi chứng thư số
Danh sách huỷ bỏ chứng thực điện tử bao gồm các chứng thực đã hết hạn hoặc đã bị thu hồi Tất cả các xác thực đều có thời hạn Đây là một quy định mang tính thiết kế, tuy nhiên trước đây, rất khó thực hiện quy định này bởi việc gia hạn chứng thực thường phải được thông báo tới tất cả người dùng sử dụng chứng thực
đó Tính năng này bảo đảm rằng các chứng thực hết hạn sẽ được gia hạn tự động khi đến thời hạn
Với một số lý do nhất định cần thiết phải huỷ bỏ chứng thực chứ không chỉ đơn thuần là làm cho nó hết hạn Công việc này có thể được thực hiện thông qua cơ chế danh sách huỷ bỏ chứng thực tự động Các chủ thể có thẩm quyền cấp phép chứng thực (CA) thông thường sẽ làm công việc gửi các danh sách này tới người dùng, tuy nhiên họ cũng có thể uỷ nhiệm cho một bộ phận khác.Thông thường chứng thư số sẽ hợp lệ trong khoảng thời gian có hiệu lực Nhưng trong một số trường hợp chứng thư số lại không hợp lệ trước thời gian hết hạn, ví dụ như:
Khóa riêng của chủ thể bị xâm phạm
Thông tin chứa trong chứng thư số bị thay đổi
Khóa riêng của CA cấp chứng thư số bị xâm phạm
Trang 29Trong những trường hợp này cần có một cơ chế để thông báo đến những người sử dụng khác Một trong những phương pháp để thông báo đến người sử dụng về trạng thái của chứng thư số là công bố CRLs(Certificate Revocation Lists) định kỳ hoặc khi cần thiết Ngoài ra, có một số cách lựa chọn khác để thông báo đến người sử dụng như dùng phương pháp trực tuyến Online Certificate Status Protocol
CRLs (Certificate Revocation Lists) là cấu trúc dữ liệu được ký như chứng thư số người sử dụng CRLs chứa danh sách các chứng thư số đã bị thu hồi và những thông tin cần thiết khác của người sử dụng CRL thường do một CA cấp Tuy nhiên CRLs cũng có thể được sử dụng để cung cấp thông tin cho nhiều CA nếu
nó được định nghĩa như một CRLs gián tiếp
2.1.2.5 Sao lưu dự phòng
Trong bất kỳ một môi trường PKI đang hoạt động, khả năng làm mất hoặc sai các mã khoá riêng của người dùng là rất lớn, do đó cần phải có một cơ chế lưu trữ dự phòng và khôi phục mã khoá Không có khoá riêng, việc khôi phục tài liệu là không thể được xét trên thực tế Nguyên nhân có thể là do [9]:
Quên mật khẩu: Khoá bí mật của người dùng vẫn còn về mặt vật lý nhưng không thể truy cập được
Phương tiện bị hỏng hóc: Ví dụ như đĩa cứng bị hỏng hoặc thẻ thông minh bị gãy
Sự thay thế của phương tiện: Hệ điều hành được tải lại (ghi đè lên các giấy tờ uỷ nhiệm cục bộ) hoặc một mô hình máy tính cũ hơn được thay thế bằng một mô hình máy tính mới hơn và các giấy tờ uỷ nhiệm không được chuyển trước khi đĩa cũ bị format
Giải pháp đưa ra là thực hiện việc sao lưu và dự phòng khóa bí mật dùng để
mã hóa để tài liệu đã mã hóa có thể được giải mã trong những trường hợp mất khóa Việc sao lưu và dự phòng khóa là cần thiết, nó tạo nên một phần mở rộng trong định nghĩa PKI
2.1.2.5 Lịch sử khóa
Trong suốt quá trình sử dụng PKI, một người dùng có thể có nhiều chứng thư
số cũ và có ít nhất một chứng thư số hiện tại Tập hợp các chứng thư số này với các
Trang 30khoá bí mật tương ứng được gọi là lịch sử khoá (key history) hay còn gọi là lịch sử khoá và chứng thư số
Cũng giống như sự cập nhật khoá, quản lý lịch sử khoá phải được thực hiện
và duy trì tự động trong PKI PKI cần phải nắm giữ được tất cả các khoá trong lịch
sử, thực hiện sao lưu và dự phòng tại vị trí thích hợp
2.1.2.6 Hỗ trợ chống chối bỏ
Trong môi trường hoạt động của PKI, mỗi hành động của người dùng luôn gắn với định danh của họ Nếu một người dùng ký số văn bản của mình, thì có nghĩa người dùng đó khẳng định rằng văn bản đó xuất phát từ phía mình
PKI cần phải đảm bảo rằng người dùng đó không thể chối bỏ trách nhiệm mà mình đã thực hiện Cơ chế này được gọi là cơ chế hỗ trợ chống chối bỏ Để thực hiện được cơ chế hỗ trợ chống chối bỏ, PKI cần phải cung cấp một vài các bằng chứng kỹ thuật được yêu cầu, như là xác thực nguồn gốc dữ liệu và chứng thực thời gian mà dữ liệu được ký
2.1.2.7 Tem thời gian
Một nhân tố quan trọng trong việc hỗ trợ các dịch vụ chống chối bỏ là sử dụng tem thời gian an toàn (secure time stamping) trong PKI Nghĩa là nguồn thời gian phải được tin cậy và giá trị thời gian phải được truyền đi một cách an toàn Do
đó cần phải có một nguồn thời gian có thể tin tưởng được cho tất cả người dùng trong PKI
2.1.2.8 Phần mềm phía client
Trong mô hình PKI, các server sẽ thực hiện những nhiệm vụ sau [5]:
CA cung cấp các dịch vụ chứng thư số
Kho chứng thư số sẽ lưu giữ các thông tin chứng thư số và hủy bỏ chứng thư số
Máy chủ sao lưu và dự phòng sẽ quản lý lịch sử khóa một cách phù hợp
Máy chủ tem thời gian sẽ kết hợp các thông tin thời gian có thể tin tưởng được với các tài liệu văn bản
Server không thể thực hiện bất kỳ điều gì cho các máy khách nếu như máy khách không đưa ra các yêu cầu dịch vụ Do đó nhiệm vụ của máy khách sẽ là:
Máy khách đưa ra yêu cầu các dịch vụ chứng thực
Trang 31 Máy khách yêu cầu chứng thư số và xử lý các thông tin hủy bỏ chứng thư
số có liên quan
Máy khách phải biết lịch sử khóa và phải biết khi nào cần yêu cầu cập nhật khóa hoặc hủy bỏ khóa
Máy khách phải biết khi nào nó cần phải yêu cầu tem thời gian trên văn bản
Phần mềm phía client là một thành phần thiết yếu của PKI tích hợp đầy
đủ tính năng trên
2.2 Các thành phần PKI
Một hệ thống PKI gồm các thành phần sau [5,6]:
- Certificate Authorites (CA): cấp và thu hồi chứng thư số
- Registration Authorites (RA): gắn kết giữa khóa công khai và định danh của
người giữ chứng thư số
- Clients: Người sử dụng cuối hoặc hệ thống là chủ thể của chứng thư số PKI
- Repositories: Hệ thống lưu trữ chứng thư số và danh sách các chứng thư số
bị thu hồi Cung cấp cơ chế phân phối chứng thư số và CRLs đến các thực thể cuối
Các thành phần PKI và các mối quan hệ giữa chúng được chỉ ra như trong hình sau Đây là mô hình kiến trúc PKI do PKIX đưa ra:
Hình 2.2 Các thành phần PKI
Trang 32Tổ chức chứng thực - CA cũng được gọi là bên thứ ba được tin tưởng vì người sử dụng cuối tin tưởng vào chữ ký số của CA trên chứng thư số trong khi thực hiện những hoạt động mã hoá khoá công khai cần thiết CA thực hiện chức năng xác thực bằng cách cấp chứng thư số cho các CA khác và cho thực thể cuối (người giữ chứng thư số) trong hệ thống Nếu CA nằm ở đỉnh của mô hình phân cấp PKI và chỉ cấp chứng thư số cho những CA ở mức thấp hơn thì chứng thư số này được gọi là chứng thư số gốc “root certificate”
2.2.2 Trung tâm đăng ký
Mặc dù CA có thể thực hiện những chức năng đăng ký cần thiết, nhưng đôi khi cần có thực thể độc lập thực hiện chức năng này Thực thể này được gọi là “registration authority” - trung tâm đăng ký [2] Ví dụ khi số lượng thực thể cuối trong miền PKI tăng lên và số thực thể cuối này được phân tán khắp nơi về mặt địa lý thì việc đăng ký tại một CA trung tâm trở thành vấn đề khó giải quyết Để giải quyết vấn đề này cần thiết phải có một hoặc nhiều RAs (trung tâm đăng ký địa phương)
Mục đích chính của RA là để giảm tải công việc của CA Chức năng thực hiện của một RA cụ thể sẽ khác nhau tuỳ theo nhu cầu triển khai PKI nhưng chủ yếu bao gồm những chức năng sau:
- Xác thực cá nhân, chủ thể đăng ký chứng thư số
- Kiểm tra tính hợp lệ của thông tin do chủ thể cung cấp
- Xác nhận quyền của chủ thể đối với những thuộc tính chứng thư số được yêu cầu
- Kiểm tra xem chủ thể có thực sự sở hữu khóa riêng đang được đăng ký hay không - điều này thường được đề cập đến như sự chứng minh sở hữu
- Tạo cặp khóa bí mật, công khai