Khái niệm hạ tầng khóa công khai PKI thường ñược dùng ñể chỉ toàn bộ hệ thống bao gồm nhà cung cấp chứng thực số CA cùng các cơ chế liên quan ñồng thời với toàn bộ việc sử dụng các thuậ
Trang 1LÝ LỊCH KHOA HỌC
I LÝ LỊCH SƠ LƯỢC
Học vị cao nhất: ðẠI HỌC Năm, nước nhận học vị: 2007,VIỆT NAM
Chức vụ (hiện tại hoặc trước khi nghỉ hưu):
ðơn vị công tác (hiện tại hoặc trước khi nghỉ hưu):
Chỗ ở riêng hoặc ñịa chỉ liên lạc:Nhà 52, ngõ 15, phố Phương Mai, quận ðống ða, HN ðiện thoại liên hệ: NR (04)38525399, Dð: 0945369369
E-mail:thangnq@gmail.com
II QUÁ TRÌNH ðÀO TẠO
1 ðại học:
Hệ ñào tạo: ðẠI HỌC
Nơi ñào tạo: TRƯỜNG ðẠI HỌC QUỐC GIA HÀ NỘI
Ngành học: KHOA ðIỆN TỬ VIỄN THÔNG
Nước ñào tạo: VIỆT NAM Năm tốt nghiệp: 2001 Loại: Trung Bình-Khá
năm cấp bằng
Năm 1997 ñến năm 2001 TRƯỜNG ðẠI HỌC QUỐC GIA HÀ NỘI
Ngành học: ðIỆN TỬ VIỄN THÔNG
Hệ: ðại học Loại: Trung bình- Khá Năm: 2001
2 Sau ñại học
Nơi ñào tạo:
Nơi ñào tạo:
- Tên chuyên ñề luận án bậc cao nhất:
Trang 2III QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN
Từ 5/2001 ñến 9/2001 Hệ trung cấp – Trung tâm
học công nghệ
Cán bộ dự án
2-2003 ñến 9-2009 TT Thống kê Tin học Hàng
Không – TCT Hàng không Việt Nam
Tổ trưởng tổ quản trị mạng WAN
và tổng ñài
9-2009 ñến 7-2011 Trung tâm công nghệ thông
tin – Ngân hàng Xăng dầu PGBANK
Trưởng bộ phận Bảo mật và Quản trị hệ thống
công nghệ thông tin
IV QUÁ TRÌNH NGHIÊN CỨU KHOA HỌC
1 Các ñề tài nghiên cứu khoa học ñã tham gia:
TT Tên ñề tài nghiên cứu/
Lĩnh vực ứng dụng
Năm hoàn thành
ðề tài cấp (NN, Bộ, ngành, trường)
Trách nhiệm tham gia trong ñề tài
2 Các công trình khoa học ñã công bố: (tên công trình, năm công bố, nơi công bố )
Hà nội, ngày 30 tháng 09 năm 2011
(Ghi rõ chức danh, học vị)
NGUYỄN QUANG THẮNG
Trang 3LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành nhất tới PGS.TS Phạm Minh Việt Xin cảm ơn thầy ñã cho tôi những ñịnh hướng và những ý kiến rất quý báu ñể tôi hoàn thành ñược khóa luận tốt nghiệp này
Tôi xin tỏ lòng biết ơn sâu sắc tới các thầy cô, bạn bè ñã dìu dắt, giúp ñỡ tôi tiến
bộ trong suốt quá trình làm khóa luận tốt nghiệp Xin cảm ơn gia ñình và bè bạn, những người luôn khuyến khích và giúp ñỡ tôi trong mọi hoàn cảnh khó khăn
Tôi xin cảm ơn các thày cô - Khoa Kỹ thuật ñiện tử - ðại Học Mở Hà Nội ñã hết
sức tạo ñiều kiện cho tôi trong quá trình học, làm và hoàn thành khóa luận này
MỤC LỤC
LỜI CẢM ƠN 3 TÓM TẮT ðỀ TÀI 7 DANH MỤC TỪ VIẾT TẮT 7
Trang 4DANH MỤC HÌNH VẼ VÀ BẢNG 9
LỜI MỞ ðẦU 9
CHƯƠNG I : TỔNG QUAN HẠ TẦNG KHÓA CÔNG KHAI (PUBLISH KEY INFRASTRUCTURE - PKI) 10
1.1 Giới thiệu chung về hạ tầng khóa công khai 10
1.1.1 Khái niệm 11
1.1.2 Lịch sử hình thành 11
1.1.3 Mục tiêu và các chức năng chính 12
1.1.4 Mô hình tiêu biểu 12
1.2 Tìm hiểu mật mã học khoá công khai 12
1.2.1 Mật mã học khoá công khai 12
1.2.1.1 Mật mã học khóa công khai (Phi ñối xứng) là gì 12
1.2.1.2 Mục ñích của hệ thống mã hoá công khai : 13
1.2.2 Ứng dụng 14
1.3 Thuật toán và ñộ phức tạp thuật toán 14
1.3.1 Thuật toán 14
1.3.2 Phân tích thuật toán 15
1.3.2.1 Tính hiệu quả của thuật toán 15
1.4 Hạ tầng khóa công khai (PKI) 15
1.4.1 PKI là gì 15
1.4.2 Cở sở hạ tầng khóa công khai 16
1.5 Một vài kiến trúc và công nghệ PKI hiện hành 17
1.5.1 Một số ứng dụng 17
1.5.2 Một số hệ thống PKI 18
CHƯƠNG II : HẠ TẦNG KHÓA CÔNG KHAI (PKI) và VẤN ðỀ CẤP PHÁT CHỨNG THỰC SỐ 20
2.1 Hàm băm mật mã học 20
2.1.1 Hàm băm 20
2.1.2 Hàm băm mật mã học 20
2.1.3 ðảm bảo tính toàn vẹn dữ liệu 20
2.1.4 Một số hàm băm thông dụng 20
2.1.4.1.Thuật toán hàm băm MD5 20
2.1.4.2.Chuẩn băm an toàn SHS 22
2.2 Mã hóa thông tin 23
2.3 Chữ ký số 23
2.3.1 Chữ ký số 23
2.3.2 Tạo và kiểm tra chữ ký số 24
2.3.2.1.Các thuật toán chữ ký số thông dụng 24
2.3.2.2.Thuật toán chữ ký số RSA 24
Trang 52.3.2.3.Thuật toán chữ ký số DSA 24
2.4 Chứng thực số 28
2.4.1 Giới thiệu 29
2.4.2 Chứng chỉ khoá công khai X.509 30
2.4.3 Thu hồi chứng chỉ 33
2.4.4 Chính sách của chứng chỉ 34
2.4.5 Công bố và gửi thông báo thu hồi chứng chỉ 34
2.5 Cấu trúc hệ thống PKI 36
2.5.1 Tổng quan về PKI 36
2.5.2 Các thành phần của PKI 37
2.5.2.1.Tổ chức chứng thực (Certification Authority) 37
2.5.2.2 Trung tâm ñăng ký (Registration Authorities) 38
2.5.2.3 Thực thể cuối ( Người giữ chứng chỉ và Clients) 38
2.5.2.4 Hệ thống lưu trữ (Repositories) 38
2.5.3 Chức năng cơ bản của PKI 39
2.5.3.1 Chứng thực (certification) 39
2.5.3.2 Thẩm tra (validation) 39
2.5.3.3 Một số chức năng khác 39
2.6 Ứng dụng của hạ tầng khóa công khai và cấp phát chứng thực 42
2.6.1 Mã hóa 42
2.6.2 Chống giả mạo 42
2.6.3 Xác thực 43
2.6.4 Chống chối bỏ nguồn gốc 43
2.6.5 Chữ ký ñiện tử 43
2.6.6 Bảo mật website 44
2.6.7 ðảm bảo phần mềm 44
2.7 Mô hình tin cậy cho PKI 44
2.7.1 Mô hình CA ñơn 44
2.7.2 Mô hình phân cấp 45
2.7.3 Mô hình mắt lưới (xác thực chéo) 46
2.7.4 Mô hình Hub và Spoke (Bridge CA) 47
2.7.5 Mô hình Web (Trust Lists) 48
2.7.6 Mô hình người sử dụng trung tâm (User Centric Model) 50
CHƯƠNG III: TRIỂN KHAI VÀ ỨNG DỤNG CHỨNG CHỈ SỐ TRONG MỘT SỐ GIAO DỊCH ðIỆN TỬ 50
2.1 Cài ñặt dịch vụ và Quản lý Certificate Authority (CA) 51
3.1.1 Cài ñặt CA trên Windows Server 2003 51
3.1.2 Quản lý dịch vụ trên CA 54
3.1.2.1.Sử dụng Certificates Snap-in: 54
Trang 63.1.2.2.Yêu cầu cấp phát thông qua Web (Web Enrollment) 54
3.1.2.3.Thu hồi chứng chỉ số 55
3.2 Triển khai một số dịch vụ mạng sử dụng CA 56
3.2.1 Dịch vụ Web sử dụng SSL 56
3.2.2 Dịch vụ IPSec 63
3.2.3 Dịch vụ VPN 68
KẾT LUẬN 74
CÁC TÀI LIỆU THAM KHẢO 75
Trang 7ñể khẳng ñịnh danh tính của mình, xác nhận các hoạt ñộng giao dịch của mình với dịch vụ ngân hàng, thương mại ñiện tử, dao dịch chứng khoán Chứng thực số sẽ giúp nhà quản lý ñảm bảo rằng khách hàng không thể chối cãi các giao dịch của mình, khi họ ñã dùng chứng thực số Từ ñó ñặt ra các vấn ñề quản lý (cấp phát,xác thực) thu hồi và cấp phát lại chứng thực số
Trong ñề tài tôi sẽ trình bày về các vấn ñề chính xoay quanh vấn ñề hạ tầng khóa công khai (PKI)
Chương I sẽ giới thiệu vấn ñề và cách tiếp cận giải quyết vấn ñề sẽ trình bày khái quát về một vài khái niệm cơ bản về mật mã học khóa công khai, hạ tầng khóa công khai, các khái niệm cơ bản về thuật toán và lý thuyết ñộ phức tạp, một vài công cụ nền tảng của mật mã học khóa công khai (mã hóa thông tin, hàm băm, chữ ký số)
Chương II của khóa luận sẽ làm rõ hơn các khái niệm, các vấn ñề cơ bản bên trong một hạ tầng khóa công khai (chứng thực số, các dịch vụ ñăng ký, cấp phát, xác thực, thu hồi, … khóa công khai); ứng dụng của hạ tầng khóa công khai trong giao dịch ñiện tử ngày nay, và một vài hệ thống hạ tầng khóa công khai trong thực tế
Chương III ñặc tả quá trình triển khai và ứng dụng hạ tầng khóa công khai ñơn giản trong một số giao dịch ñiện tử
Phần cuối cùng là các kết luận và ñịnh hướng phát triển ñề tài
DANH MỤC TỪ VIẾT TẮT
Trang 8PKI Public Key Infrastructure
CA Certificate Authority
RSA Rivest Shamir Adleman
DSA Digital Signature Algorithm
MD5 Message Digest 5
RA Registration Authority
SHA Secure Hash Algorithm
SHS Secure Hash Standard
RFC Request For Comments
Trang 9DANH MỤC HÌNH VẼ VÀ BẢNG
Hình 1.1: Cấp phát khóa riêng khóa công khai
Hình 1.2: Mã hóa thông tin
Hình 1.3: Tạo và xác thực chữ ký số
Hình 1.4 : Mô hình xây dựng PKI cơ bản
Bảng 1.5 : mô hình xử dụng xác thực
Hình 2.1 : ðặc ñiểm của các thuật toán băm SHA
Bảng 2.2: So sánh thời gian tạo khóa, tạo chữ ký và xác nhận chữ ký của RSA với DSA
Hình 2.3 : Thời gian xác nhận chữ ký của RSA và DSA
Hình 2.4 : Thời gian tạo chữ ký của RSA và DSA
Hình 2.5 : Thời gian xác nhận chữ ký của RSA và DSA
Hình 2.6 : Chứng chỉ số
Hình 2.7: Khuôn dạng chứng chỉ X.509
Hình 2.8: Nội dung chi tiết của chứng chỉ
Hình 2.9: Khuôn dạng danh sách chứng chỉ bị thu hồi
Hình 2.10: Dịch vụ kiểm tra online
Hình 2.16: Mô hình Hub và Spoke (Bridge CA)
Hình 2.17: Danh sách các CA tin cậy trong Microsoft
LỜI MỞ ðẦU
Trang 10Trong kỷ nguyên của công nghệ thông tin, tính phổ biến rộng rãi của Internet một mặt ñem lại nhiều ứng dụng tiện lợi, thú vị và dần thay thế các hoạt ñộng truyền thống trong thế giớ thực; mặt khác nó ñặt ra các vấn ñề về sự an toàn, tính tin cậy của những giao dịch trên Internet Cơ sở hạ tầng khóa công khai (PKI) có thể ñáp ứng, giải quyết những vấn ñề cơ bản nhất cho những yêu cầu trên Dựa trên các dịch vụ cơ bản về chứng thực số
và chữ ký số, một PKI chính là bộ khung của các chính sách, dịch vụ và phần mềm mã hóa, ñáp ứng nhu cầu bảo mật của người sử dụng
Không chỉ nằm trong lĩnh vực thương mại ñiện tử, chứng thực số hiện còn ñược sử dụng như một dạng chứng minh thư cá nhân Tại các nước công nghệ phát triển, chứng thực số CA ñược tích hợp vào các chip nhớ nằm trong thẻ căn cước, thẻ tín dụng ñể tăng cường khả năng bảo mật, chống giả mạo, cho phép chủ thẻ xác thực danh tính của mình trên nhiều hệ thống khác nhau, chẳng hạn như xe bus, thẻ rút tiền ATM, kiểm soát hải quan, ra vào chung cư v.v
Với các ñặc ñiểm nổi bật như không thể giả mạo, chứng thực nguồn gốc xuất xứ, các quốc gia phát triển ñều ñã sử dụng chứng thực số như một bằng chứng pháp lý từ rất sớm ðây là yếu tố rất quan trọng ñể có thể phát triển thương mại ñiện tử, vì không ai dám mạo hiểm với tiền của mình, khi họ chưa chắc chắn ñược rằng các hoạt ñộng ñó có ñược ñảm bảo, và có ñược pháp luật công nhận hay không
Trong bản ñề tài tốt nghiệp này, tác giả xin trình bày tổng quát về cơ sở hạ tầng khóa công khai và ứng dụng của nó trong một số giao dịch ñiện tử Qua ñó trình bày một số phương pháp triển khai và ứng dụng của một hạ tầng khóa công khai (PKI) trong hoạt
ñộng giao dịch ñiện tử
(PUBLISH KEY INFRASTRUCTURE - PKI)
1.1 Giới thiệu chung về hạ tầng khóa công khai
Trang 111.1.1 Khái niệm
Trong mật mã học, hạ tầng khóa công khai (tiếng Anh: Public key infrastructure,
viết tắt PKI) là một cơ chế ñể cho một bên thứ 3 (thường là nhà cung cấp chứng thực số)
cung cấp và xác thực ñịnh danh các bên tham gia vào quá trình trao ñổi thông tin Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công
khai/khóa bí mật Các quá trình này thường ñược thực hiện bởi một phần mềm ñặt tại trung tâm và các phần mềm phối hợp khác tại các ñịa ñiểm của người dùng Khóa công khai thường ñược phân phối trong chứng thực khóa công khai
Khái niệm hạ tầng khóa công khai (PKI) thường ñược dùng ñể chỉ toàn bộ hệ
thống bao gồm nhà cung cấp chứng thực số (CA) cùng các cơ chế liên quan ñồng thời với toàn bộ việc sử dụng các thuật toán mật mã hóa khóa công khai trong trao ñổi thông tin Tuy nhiên phần sau ñược bao gồm không hoàn toàn chính xác bởi vì các cơ chế trong PKI không nhất thiết sử dụng các thuật toán mã hóa khóa công khai
1.1.2 Lịch sử hình thành
Việc Diffie, Hellman, Rivest, Shamir, và Adleman công bố công trình nghiên cứu
về trao ñổi khóa an toàn và thuật toán mật mã hóa khóa công khai vào năm 1976 ñã làm thay ñổi hoàn toàn cách thức trao ñổi thông tin mật Cùng với sự phát triển của các hệ thống truyền thông ñiện tử tốc ñộ cao (Internet và các hệ thống trước nó), nhu cầu về trao ñổi thông tin bí mật trở nên cấp thiết Thêm vào ñó một yêu cầu nữa phát sinh là việc xác ñịnh ñịnh dạng của những người tham gia vào quá trình thông tin Vì vậy ý tưởng về việc gắn ñịnh dạng người dùng với chứng thực ñược bảo vệ bằng các kỹ thuật mật mã ñã ñược phát triển một cách mạnh mẽ
Nhiều giao thức sử dụng các kỹ thuật mật mã mới ñã ñược phát triển và phân tích Cùng với sự ra ñời và phổ biến của World Wide Web, những nhu cầu về thông tin an toàn
và nhận thực người sử dụng càng trở nên cấp thiết Chỉ tính riêng các nhu cầu ứng dụng cho thương mại (như giao dịch ñiện tử hay truy cập những cơ sở dữ liệu bằng trình duyệt web) cũng ñã ñủ hấp dẫn các nhà phát triển lĩnh vực này Taher ElGamal và các cộng sự tại Netscape ñã phát triển giao thức SSL (https trong ñịa chỉ web) trong ñó bao gồm thiết lập khóa, nhận thực máy chủ Sau ñó, các thiết chế PKI ñược tạo ra ñể phục vụ nhu cầu truyền thông an toàn
Các nhà doanh nghiệp kỳ vọng vào một thị trường hứa hẹn mới ñã thành lập những công ty hoặc dự án mới về PKI và bắt ñầu vận ñộng các chính phủ ñể hình thành nên khung pháp lý về lĩnh vực này Một dự án của American Bar Association ñã xuất bản một nghiên cứu tổng quát về những vấn ñề pháp lý có thể nảy sinh khi vận hành PKI (xem thêm: các hướng dẫn chữ ký số ABA) Không lâu sau ñó, một vài tiểu bang của Hoa kỳ mà
ñi ñầu là Utah (năm 1995) ñã thông qua những dự luật và quy ñịnh ñầu tiên Các nhóm bảo
vệ quyền lợi người tiêu dùng thì ñặt ra các vấn ñề về bảo vệ quyền riêng tư và các trách nhiệm pháp lý
Tuy nhiên, các luật và quy ñịnh ñã ñược thông qua lại không thống nhất trên thế giới Thêm vào ñó là những khó khăn về kỹ thuật và vận hành khiến cho việc thực hiện PKI khó khăn hơn rất nhiều so với kỳ vọng ban ñầu
Trang 12Tại thời ñiểm ñầu thế kỷ 21, người ta nhận ra rằng các kỹ thuật mật mã cũng như các quy trình/giao thức rất khó ñược thực hiện chính xác và các tiêu chuẩn hiện tại chưa ñáp ứng ñược các yêu cầu ñề ra
Thị trường PKI thực sự ñã tồn tại và phát triển nhưng không phải với quy mô ñã ñược kỳ vọng từ những năm giữa của thập kỷ 1990 PKI chưa giải quyết ñược một số vấn
ñề mà nó ñược kỳ vọng Những PKI thành công nhất tới nay là các phiên bản do các chính phủ thực hiện
1.1.3 Mục tiêu và các chức năng chính
PKI cho phép những người tham gia xác thực lẫn nhau và sử dụng thông tin từ các chứng thực khóa công khai ñể mật mã hóa và giải mã thông tin trong quá trình trao ñổi Thông thường, PKI bao gồm phần mềm máy khách (client), phần mềm máy chủ (server), phần cứng (như thẻ thông minh) và các quy trình hoạt ñộng liên quan Người sử dụng cũng
có thể ký các văn bản ñiện tử với khóa bí mật của mình và mọi người ñều có thể kiểm tra với khóa công khai của người ñó PKI cho phép các giao dịch ñiện tử ñược diễn ra ñảm bảo tính bí mật, toàn vẹn và xác thực lẫn nhau mà không cần phải trao ñổi các thông tin mật từ trước
1.1.4 Mô hình tiêu biểu
Hầu hết các hệ thống PKI quy mô doanh nghiệp ñều dựa trên các chuỗi chứng thực
ñể xác thực các thực thể Chứng thực của người dùng sẽ ñược một nhà cung cấp chứng thực số cấp, ñến lượt nhà cung cấp này lại có chứng thực ñược một nhà cung cấp khác ở cấp cao hơn tạo ra Hệ thống sẽ bao gồm nhiều máy tính thuộc nhiều tổ chức khác nhau với các gói phần mềm tương thích từ nhiều nguồn khác nhau Vì vậy, các tiêu chuẩn là yếu
tố rất quan trọng ñối với hoạt ñộng của các PKI Hầu hết các tiêu chuẩn về PKI hiện tại ñược soạn thảo bởi nhóm làm việc PKIX của IETF
Các hệ thống PKI doanh nghiệp thường ñược tổ chức theo mô hình danh bạ trong ñó khóa công khai của mỗi người dùng ñược lưu trữ (bên trong các chứng thực số) kèm với các thông tin cá nhân (số ñiện thoại, email, ñịa chỉ, nơi làm việc ) Hiện nay, công nghệ danh bạ tiên tiến nhất là LDAP và ñịnh dạng chứng thực phổ biến nhất (X.509) cũng ñược phát triển từ mô hình tiền nhiệm của LDAP (X.500)
1.2 Tìm hiểu mật mã học khoá công khai
1.2.1 Mật mã học khoá công khai
1.2.1.1 Mật mã học khóa công khai (Phi ñối xứng) là gì
- Là một chuyên ngành của mật mã học cho phép người sử dụng trao ñổi các thông tin mật mà không cần phải trao ñổi các khóa chung bí mật trước ñó ðiều này ñược thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học
với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật)
- Trong mật mã học 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 2 khóa, một dùng ñể mã
Trang 13hó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]
1.2.1.2 Mục ñích của hệ thống mã hoá công khai :
- Cấp phát khoá riêng và khoá công khai :
Hình 1.1: Cấp phát khóa riêng khóa công khai
Việc cấp phát khoá công khai và khoá bí mật thông qua thuật toán RSA (phổ biến) Thuật toán RSA tạo ra cặp khoá bằng các phương thức toán học từ 2 số nguyên tố bất kỳ ñủ lớn
- Mã hoá :
Hình 1.2: Mã hóa thông tin
Bob mã hóa thông tin gửi cho Alice bằng khóa công khai của Alice Alice nhận ñược tin nhắn từ Bob kiểm tra tin nhắn và giải mã bằng khóa bí mật của Alice
- Tạo và xác thực chữ ký số :
Trang 14Hình 1.3: Tạo và xác thực chữ ký số
S = H(m)^d mod n (Tạo chữ kí số)
Cho phép kiểm tra một văn bản có phải ñã ñược tạo với một khóa bí
mật nào ñó hay không
Tạo chữ kí số bằng khóa bí mật của Alice
Và ký vào tin nhắn Alive gửi cho Bob
Bob kiểm tra chữ ký số bằng khóa công khai của Alice:
S^e mod n =H(m) với H(m) là giá trị sau khi băm tin nhắn Alice
gửi cho Bob Chữ ký số ñúng ñắn ñồng nghĩa với việc các thông tin Alice gửi bob là ñúng ñắn
1.2.2 Ứng dụng
- Ứng dụng rõ ràng nhất của mật mã hóa khóa công khai là trong lĩnh vực bảo
mật, an toàn thông tin: Một văn bản ñược mã hóa bằng khóa công khai của một
người sử dụng thì chỉ có thể giải mã với khóa bí mật của người ñó.Các thuật toán tạo chữ ký số khóa công khai cho phép ñịnh danh một tin nhắn hay 1 tài liệu
- Một người sử dụng có thể mã hóa văn bản với khóa bí mật của mình Nếu một
người khác có thể giải mã với khóa công khai của người gửi thì có thể tin rằng văn
bản thực sự xuất phát từ người gắn với khóa công khai ñó (ðây là nguyên lý sinh & xác thực chữ ký số, người gửi sử dụng khóa bí mật của mình ñể sinh ra 1 chữ ký số cho 1 tin nhắn, tài liệu Bên nhận có thể xác thực tính ñúng ñắn của chữ ký số ñó nhờ vào khóa công khai của người gửi)
- Các ñặc ñiểm trên còn có ích cho nhiều ứng dụng khác như: tiền ñiện tử, thỏa thuận khóa
1.3 Thuật toán và ñộ phức tạp thuật toán
1.3.1 Thuật toán
Thuật toán ñược hiểu là sự ñặc tả chính xác của một dãy các bước có thể ñược thực hiện một cách máy móc ñể giải quyết một vấn ñề Cần nhấn mạnh rằng,
Trang 15mỗi thuật toán có một dữ liệu vào (Input) và dữ liệu ra (Output); khi thực hiện thuật toán (thực hiện các bước ựã mô tả) , thuật toán cần cho ra các kiểu dữ liệu ra tương
ứng với các dữ liệu vào.[2]
1.3.2 Phân tắch thuật toán
1.3.2.1 Tắnh hiệu quả của thuật toán
- Khi giải một vấn ựề, chúng ta cần chọn trong số các thuật toán, một thuật toán
mà chúng ta cho là ỘtốtỢ nhất Cơ sở ựánh chọn lựa thuật toán :
Thuật toán ựơn giản, dễ hiểu, dễ cài ựặt(dễ viết chương trình)
Thuật toán sử dụng tiết kiệm nhất các nguồn tài nguyên của máy tắnh và ựặc biệt chạy nhanh nhất có thể ựược
- Tắnh hiệu quả của thuật toán bao gồm 2 nhân tố cơ bản :
Ớ Dung lượng không gian nhớ cần thiết ựể lưu giữ các dữ liệu vào, các kết quả tắnh toán trung gian và các kết quả của thuật toán
Ớ Thời gian cần thiết ựể thực hiện thuật toán(hay thời gian chạy)[3]
1.3.2.2 đánh giá thời gian thực hiện thuật toán
- Thời gian chạy chương trình phụ thuộc vào các nhân tố chắnh sau:
Các dữ liệu vào
Chương trình dịch ựể chuyển chương trình nguồn thành mã máy
Tốc ựộ thực hiện của các phép toán của máy tắnh ựược sử dụng ựể chạy chương trình
- Giả sử T(n) là thời gian thực hiện thuật toán và f(n) là hàm xác ựịnh dương.T(n)=O(f(n)) nếu ∃ các hằng số dương c và n0 sao cho T(n) ≤c.g(n) với mọi n>= n0
1.4 Hạ tầng khóa công khai (PKI)
1.4.1 PKI là gì
- để hiểu rõ về việc xây dựng cơ PKI và vần ựề cấp phát chứng thực số có vai trò và ứng dụng như thế nào trong thương mại ựiên tử Chúng ta sẽ ựi phân tắch từng khắa cạnh xung quanh PKI
- Trước tiên chúng hiểu thế nào là PKI và tắnh cấp thiết của PKI hiện nay :
Ớ PKI : viết tắt của Public Key Infrastructure tức là hạ tầng cơ sở khóa
công khai Là một cơ chế ựể cho một bên thứ 3 (thường là nhà cung cấp chứng thực số) cung cấp và xác thực ựịnh danh các bên tham gia vào quá trình trao ựổi thông tin Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công khai/khóa bắ mật
Trang 16• Trong kỷ nguyên bùng nổ của công nghệ thông tin, mọi giao dịch từ xa
có thể thông qua internet Tuy nhiên, mặt khác khó mà bảo ñảm rằng những giao dịch trên Internet luôn an toàn Cơ sở hạ tầng khóa công khai (PKI) ñã ñáp ứng những yêu cầu cấp thiết ñó Dựa trên cách sử dụng của chìa khóa mật mã công cộng và chữ ký ñiện tử, một PKI chính là bộ khung của các chính sách, dịch vụ và phần mềm mã hóa, ñáp ứng nhu cầu bảo mật của người sử dụng
1.4.2 Cở sở hạ tầng khóa công khai
Hình 1.4 : Mô hình xây dựng PKI cơ bản
Trang 17- PKI cung cấp một cặp chìa khóa, trong ñó có một chìa là chìa khóa công khai (Public key) ñể có thể sử dụng dịch vụ, chìa còn lại là chìa khóa bí mật (Private key) mà người sử dụng phải giữ bí mật Hai chìa khóa này có liên quan mật thiết ñến nhau, sao cho một thông ñiệp ñược mã hóa bởi một chìa khóa mật mã công khai thì chỉ giải mã ñược bởi một chìa khóa bí mật tương ứng
- Ví dụ về mô hình xử dụng xác thực :
Giả sử có 2 người dùng Bob và Alice muốn chuyển thư ñiện tử cho nhau ñể ñảm bảo tính xác thực và bảo mật họ dùng 1 phần mềm PKI
Bob muốn chuyển một thư ñiện tử ñến
cho Alice, với yêu cầu rằng giao dịch
phải chứng minh ñược chính anh ñã gởi
nó ñi và nội dung bức thư không bị thay
ñổi
Phần mềm PKI dùng chìa khóa cá nhân của Bob tạo ra một chữ ký ñiện tử cho bức thư
Bob muốn chắc chắn rằng không ai ngoài
Alice ñọc ñược bức thư này
Phần mềm PKI của Bob dùng chìa khóa công cộng của Alice ñể mã hóa thông ñiệp của Bob
Alice muốn ñọc thư do Bob gởi Phần mềm PKI dùng chìa khóa cá nhân
của Alice ñể ñể giải mã thông ñiệp
Alice muốn kiểm chứng rằng chính Bob
ñã gởi ñi thông ñiệp ñó và nội dung
thông ñiệp không bị chỉnh sửa
Phần mềm PKI của Alice dùng chìa khóa công cộng của Bob ñể kiểm chứng chữ
ký ñiện tử của anh ta
Bảng 1.5 : Mô hình sử dụng xác thực
1.5 Một vài kiến trúc và công nghệ PKI hiện hành
1.5.1 Một số ứng dụng
Trang 18- Mục tiêu chính của PKI là cung cấp khóa công khai và xác ñịnh mối liên hệ
giữa khóa và ñịnh dạng người dùng Nhờ vậy người dùng có thể sử dụng trong một số ứng dụng như:
Mã hoá Email hoặc xác thực người gửi Email (OpenPGP hay S/MIME)
Mã hóa hoặc nhận thực văn bản (Các tiêu chuẩn Chữ ký XML* hoặc mã hoá
XML* khi văn bản ñược thể hiện dưới dạng XML)
Xác thực người dùng ứng dụng (ðăng nhập bằng thẻ thông minh - smartcard,
nhận thực người dùng trong SSL)
Các giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE, SSL):
trao ñổi khóa bằng khóa bất ñối xứng, còn mã hóa bằng khóa ñối xứng
1.5.2 Một số hệ thống PKI
- Dưới ñây là danh sách một số hệ thống PKI, trong ñó một số nhà cung cấp
chứng thực số hàng ñầu (ví dụ VeriSign) không ñược liệt kê vì các phần mềm của
họ không ñược công bố công khai :
•••• Hệ thống quản lý chứng thực Red Hat
•••• Computer Associates eTrust PKI
Trang 20CHƯƠNG II : HẠ TẦNG KHÓA CÔNG KHAI (PKI) và
VẤN ðỀ CẤP PHÁT CHỨNG THỰC SỐ
2.1 Hàm băm mật mã học
2.1.1 Hàm băm
- Hàm băm (tiếng Anh: hash function) là hàm sinh ra các giá trị băm tương ứng với
mỗi khối dữ liệu (có thể là một chuỗi kí tự, một ñoạn tin nhắn ) Giá trị băm ñóng vai trò gần như một khóa ñể phân biệt các khối dữ liệu, tuy nhiên, người ta chấp nhận hiện tượng trùng khóa hay còn gọi là ñụng ñộ và cố gắng cải thiện giải thuật ñể giảm thiểu sự ñụng ñộ ñó Hàm băm thường ñược dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp (nhờ việc
so sánh các giá trị băm nhanh hơn việc so sánh những khối dữ liệu có kích thước
lớn)
2.1.2 Hàm băm mật mã học
- Trong ngành mật mã học, một hàm băm mật mã học (tiếng Anh: Cryptographic
hash function) là một hàm băm với một số tính chất bảo mật nhất ñịnh ñể phù hợp
việc sử dụng trong nhiều ứng dụng bảo mật thông tin ña dạng, chẳng hạn như
chứng thực (authentication) và kiểm tra tính nguyên vẹn của thông ñiệp (message
integrity) Một hàm băm nhận ñầu vào là một xâu ký tự dài (hay thông ñiệp) có ñộ
dài tùy ý và tạo ra kết quả là một xâu ký tự có ñộ dài cố ñịnh, ñôi khi ñược gọi là
tóm tắt thông ñiệp (message digest) hoặc chữ ký số (digital fingerprint).[4]
2.1.3 ðảm bảo tính toàn vẹn dữ liệu
- Hàm băm mật mã học là hàm bam và có tính chất là hàm 1 chiều Từ khối dữ liệu hay giá trị băm ñầu vào chỉ có thể ñưa ra 1 giá trị băm duy nhất Như chúng ta ñã biết ñối với tính chất của hàm 1 chiều Một người nào ñó dù bắt ñược giá trị băm
họ cũng không thể suy ngược lại giá trị, ñoạn tin nhắn băm khởi ñiểm
- Hàm băm thường ñược dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp Giá trị băm ñóng vai trò gần như một khóa ñể
phân biệt các khối dữ liệu
- Giá trị ñầu vào(tin nhắn, dữ liệu ) bị thay ñổi tương ứng giá trị băm cũng bị thay ñổi Do vậy nếu 1 kẻ tấn công phá hoại, chỉnh sửa dữ liệu thì server có thể biết ngay lập tức
2.1.4 Một số hàm băm thông dụng
2.1.4.1 Thuật toán hàm băm MD5
a Thuật toán hàm băm MD5
Trang 21- MD5 (Message-Digest algorithm 5) là một hàm băm mật mã ñược sử dụng
phổ biến, ñược thiết kể bởi Giáo sư Ronald L Rivest tại trường MIT vào năm
1991 ñể thay thế cho hàm băm trước ñó là MD4 (1990) Là một chuẩn Internet (RFC 1321), MD5 ñã ñược dùng trong nhiều ứng dụng bảo mật và cũng ñược dùng phổ biến ñể kiểm tra tính toàn vẹn của tập tin Cũng như các hàm băm khác như MD4 và SHS (Secure Hash Standard), MD5 là phương pháp có ưu ñiểm tốc ñộ xử lý rất nhanh, thích hợp với các thông ñiệp dài và cho ra giá trị
băm dài 128 bit
- Trong MD5, thông ñiệp ban ñệu X sệ ñệệc mệ rệng thành dãy bit X có ñệ dài là bệi cệa 512 Dãy bit X gệm các thành phện ñệệc sệp thệ tệ nhệ sau: Dãy bit X ban ñầu, một bit 1, dãy d bit 0 (d ñệệc tính sao cho dãy X cuệi cùng là bệi cệa 512), dãy 64 bit l biểu diễn chiều dài của thông ñiệp ðơn vị xử lý trong MD5 là các từ 32-
bit, nên dãy bit X ở trên sẽ ñược biểu diễn thành dãy các từ X[i] 32-bit sau: X=X[0] X[1] X[2] …X[N−1] , với N là bội của 16.[5]
b Phương pháp MD5 có những ưu ñiểm sau so với phương pháp MD4
- Thay vì có 3 chu kỳ biến ñổi như trong MD4, MD5 bổ sung thêm chu kỳ thứ 4
ñể tăng mức ñộ an toàn
- Trong mỗi thao tác của từng chu kỳ, MD5 sử dụng hằng số ti phân biệt, trong
khi MD4 sử dụng hằng số chung cho mọi thao tác trong cùng chu kỳ biến ñổi
- Hàm G ở chu kỳ 2 của MD4: G(X,Y,Z) = ((XΛZ) ∨(XΛY) ∨ (YΛZ)) ñược thay thế bằng G(X,Y,Z) = (XΛZ) ∨(YΛ(¬Z)) ñể giảm tính ñối xứng
- Mỗi bước biến ñổi trong từng chu kỳ chịu ảnh hưởng kết quả của bước biến ñổi trước, vì vậy làm tăng nhanh tốc ñộ của hiệu ứng lan truyền (avalanche)
- Các hệ số dịch chuyển xoay vòng trong mỗi chu kỳ ñược tối ưu hóa nhằm tăng tốc ñộ hiệu ứng lan truyền Ngoài ra, mỗi chu kỳ sử dụng 4 hệ số dịch chuyển khác nhau
- Lý do MD5 ñược thiết kế thay thế cho MD4 là vì các phân tích chỉ ra rằng phương pháp MD4 có vẻ không an toàn Den Boer và Bosselaers ñã chỉ ra các ñiểm yếu trong MD4 trong một bài báo ñược ñăng vào năm 1991và một tấn công xung ñột ñầu tiên ñược tìm thấy bởi Han Dobbertin vào năm 1996
- Tuy nhiên, các nỗ lực tấn công, phân tích của các nhà nghiên cứu cho thấy MD5 cũng không còn an toàn và cần ñược thay thế bằng một thuật toán băm khác như các công bố của Den Boer và Bosselaers năm 1993; của Hans Dobbertin năm 1996; của nhóm tác giả Xiaoyun Wang, Dengguo Feng, Xuejia
Trang 22Lai, và Hongbo ngày 19/8/2004; của Arjen Lenstra, Xiaoyun Wang, và Benne
de Weger ngày 1/3/2005; và của Vlastimil Klima, …
2.1.4.2 Chuẩn băm an toàn SHS
- SHS (Secure Hash Standard) là chuẩn gồm tập hợp các thuật toán băm mật mã
an toàn (Secure Hash Algorithm – SHA) như SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 do NIST2
và NSA3
xây dựng
- Phương pháp SHA-1 (cũng như SHA-0) ñược xây dựng trên cùng cơ sở với phương pháp MD4 và MD5 Tuy nhiên, phương pháp SHA-1 sử dụng trên hệ thống Big-endian5
thay vì Little-endian6
như phương pháp MD4 và MD5 Ngoài ra, hàm băm SHA-1 tạo ra thông ñiệp rút gọn kết quả có ñộ dài 160 bit nên thường ñược sử dụng
- Phương pháp SHA-1 giống với MD5 (cải tiến từ MD4) nhưng thông ñiệp tóm tắt ñược tạo ra có ñộ dài 160 bit Dưới ñây là một số ñiểm so sánh giữa MD5
So với MD4, hàm G trong MD5 ñược thay thế thành hàm mới ñể làm giảm tính ñối xứng Trong khi SHA-1, hàm G trong SHA-1 vẫn giữ lại hàm G của MD4
Cả MD5 và SHA-1, mỗi bước biến ñổi trong từng chu kỳ chịu ảnh hưởng kết quả của biến ñổi trước, vì vậy làm tăng nhanh tốc ñộ của hiệu ứng lan truyền
Hình 2.1: ðặc ñiểm của các thuật toán băm SHA
Trang 232.2 Mã hóa thông tin
- Có rất nhiều thông tin mà chúng ta không muốn người khác biết khi gửi ñi như: thông tin về Credit-Card, thông tin về kinh doanh của công ty, thông tin về tài khoản cá
nhân, thông tin về cá nhân như số chứng minh thư, số thẻ
- Các thông tin bí mật ñược cung cấp cho các máy tính quan mạng Internet bằng nhiều phương thức khác nhau ví dụ : Một cách bảo mật ñơn giản nhưng minh bạch nhất là lưu các thông tin bí mật trên các bộ nhớ có thể xoá ñược (Removable Storage) như ñĩa mềm Tuy nhiên dạng bảo mật phổ biến nhất vẫn là dựa vào quá trình mã hoá
dữ liệu (Encryption)
- Các hệ thống mã hoá trong máy tính phổ biến nhất thuộc một trong hai loại sau:
Mã hoá với khoá ñối xứng (Symmetric-key Encryption) : Trong phương pháp
mã hoá với khoá ñối xứng, mỗi máy tính có một khoá bí mật (dạng mã) dùng ñể
mã hoá các gói thông tin trước khi chúng ñược gửi qua mạng tới các máy tính khác Phương pháp mã hoá với khoá ñối xứng ñòi hỏi người sử dụng phải xác ñịnh ñược những máy tính nào ñang liên lạc trao ñổi thông tin với nhau ñể cài ñặt khoá này trên mỗi máy
Mã hoá với khoá công khai (Public-key Encryption).[6]
2.3 Chữ ký số
2.3.1 Chữ ký số
- Chữ ký số (Digital Signature) chỉ là tập con của chữ ký ñiện tử Chữ ký số là
chữ ký ñiện tử dựa trên kỹ thuật mã hóa với khóa công khai, trong ñó, mỗi người
có một cặp khóa (một khóa bí mật và một khóa công khai) Khóa bí mật không bao giờ ñược công bố, trong khi ñó, khóa công khai ñược tự do sử dụng ðể trao ñổi thông ñiệp bí mật, người gửi sử dụng khóa công khai của người nhận ñể mã hóa thông ñiệp gửi, sau ñó, người nhận sẽ sử dụng khóa bí mật tương ứng của
mình ñể giải mã thông ñiệp
- Chữ ký ñiện tử là thông tin ñược mã hoá bằng Khoá riêng của người gửi, ñược gửi kèm theo văn bản nhằm ñảm bảo cho người nhận ñịnh danh, xác thực ñúng nguồn gốc và tính toàn vẹn của tài liệu nhận ñược Chữ ký ñiện tử thể hiện văn bản gửi
ñi là ñã ñược ký bởi chính người sở hữu một Khoá riêng tương ứng với một
Chứng chỉ ñiện tử nào ñó.”
- Chữ ký số khóa công khai (hay hạ tầng khóa công khai) là mô hình sử dụng các
kỹ thuật mật mã ñể gắn với mỗi người sử dụng một cặp khóa công khai - bí mật
và qua ñó có thể ký các văn bản ñiện tử cũng như trao ñổi các thông tin mật Khóa công khai thường ñược phân phối thông qua chứng thực khóa công khai Quá trình sử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ ký.[7]
Trang 242.3.2 Tạo và kiểm tra chữ ký số
2.3.2.1 Các thuật toán chữ ký số thông dụng
- Chữ ký số giúp xác ñịnh ñược người tạo ra hay chịu trách nhiệm ñối với một thông ñiệp ñược ký Một phương pháp chữ ký số phải bao gồm ít nhất 3 thuật
toán chính, ñó là thuật toán dùng ñể tạo khóa, thuật toán dùng ñể tạo ra chữ
ký số và thuật toán tương ứng ñể xác nhận chữ ký số.
2.3.2.2 Thuật toán chữ ký số RSA
- Phương pháp chữ ký số RSA ñược xây dựng dựa trên thuật toán mã hóa khóa công khai RSA ðể tạo một cặp khóa, RSA thực hiện các bước sau:
Chọn 2 số nguyên tố lớn ngẫu nhiên p, q Nhằm có sự an toàn tối ña nên chọn p và q có ñộ dài bằng nhau
Tính n=pq và φ=(p−1)(q−1)
Chọn ngẫu nhiên một số nguyên e (1<e<φ) sao cho gcd(e, φ)=1 với gcd
là ước số chung lớn nhất
Tính: d=e−1 mod φ
- Kết quả là ta có ñược cặp khóa: khóa công khai (n,e) và khóa bí mật (n,d)
Hai người sẽ sử dụng chung một hàm băm ℋ an toàn trước hiện tượng xung ñột ðể ký một thông ñiệp m, người ký thực hiện các bước sau:
Dùng hàm băm ℋ ñể băm thông ñiệp m: h=ℋℋ(m)
Chấp nhận chữ ký nếu h′=h Ngược lại từ chối chữ ký
2.3.2.3 Thuật toán chữ ký số DSA
- Thuật toán chữ ký số DSA (Digital Signature Algorithm) ñược ñề nghị bởi NIST vào tháng 8/1991 ñể sử dụng trong chuẩn chữ ký số DSS (Digital Signature Standard), ñược chỉ ra trong FIPS 186, ñược chấp nhận năm 1993 Một sửa ñổi nhỏ ñược ñưa ra ngày năm 1996 trong FIPS 186-1, chuẩn ñược
mở rộng hơn năm 2000, ñược xem như xem như FIPS 186-2 Việc tạo khóa gồm hai bước Bước thứ nhất là lựa chọn các tham số cho thuật toán ñược chia
sẻ giữa các người sử dụng khác nhau trong cùng hệ thống:
Trang 25Chọn một hàm băm mã hóa ℋ Trong DSS chuẩn ℋ luôn là SHA-1, nhưng các hàm băm tốt hơn trong nhóm SHA cũng ựang ựược sử dụng đôi khi ựầu ra của một thuật toán băm mới hơn bị rút ngắn kắch thước
so với các thuật toán băm mới cũ ựể tương tắch với cặp khóa hiện có
Chọn kắch thước khóa L đây là thước ựo chắnh quyết ựịnh sức mạnh
mã hóa của khóa DSS chuẩn ràng buộc L là bội số của 64 và 512≤L≤1024 Sau ựó, FIPS 186-2 xác ựịnh L luôn là 1024 Không lâu sau, NIST 800-57 ựề nghị ựộ dài khóa là 2048 (hoặc 3072) ựể thời gian
an toàn ựến năm 2010 (hoặc 2030), sử dụng tương ứng với các giá trị băm và q dài hơn Bản thảo FIPS 186-3 cũng tắnh ựến các hàm băm sau này và các khóa dài hơn
Chọn một số nguyên tố q cùng số bit với ựầu ra của ℋ
Chọn một số nguyên tố p ựộ dài L bit sao cho pỜ1 là bội của q Tức là p=qzỜ1 với số nguyên z nào ựó
Chọn g = h( −p1 /q mod p với h bất kỳ (1<h<pỜ1), và chọn lại nếu kết quả
là 1 Hầu hết cách chọn h ựều nhận ựược g có thể sử dụng, thông thường chọn h=2
- Các tham số thuật toán (p,q,g) có thể chia sẻ giữa những người khác nhau trong hệ thống Bước thứ hai tắnh các khóa bắ mật và khóa công khai của từng người :
Chọn x ngẫu nhiên sao cho 0<x<q
Tắnh y=gx mod p
Khóa công khai là (p,q,g,y), khóa bắ mật là x
- Phiên bản FIPS 186-3 sắp tới sử dụng SHA-224/256/384/512 là các hàm băm, kắch thước của q là 224 (hoặc 256 bit), và L bằng 2048 (hoặc 3072)
- để ký một thông ựiệp m, người ký thực hiện các bước sau:
Phát sinh một số ngẫu nhiêu k (0<k<q) cho mỗi thông ựiệp
- để xác nhận chữ ký, người nhận thực hiện các bước sau:
Loại bỏ chữ ký nếu 0<r<q hoặc 0<s<q không thỏa mãn
Trang 26Chữ ký có hiệu lực nếu v=r
- Tính ñúng ñắn của giải thuật ñược chứng minh như sau:
ðầu tiên, nếu g = h( −p1/qmod p suy ra gp=h − 1−1=1 (mod p) theo ñịnh
lý Fermat nhỏ Bởi vì g>1 và q là số nguyên tố nên g có bậc q
Kết quả thử nghiệm và nhận xét
- So sánh RSA và DSA
ðể so sánh tốc ñộ của hai thuật toán chữ ký số RSA và DSA, Thử nghiệm 2.2 dưới ñây ñã ñược tiến hành và ghi nhận
Thử nghiệm 2.2: DSS chuẩn ràng buộc ñộ dài khóa L là bội số của 64
và 512≤L≤1024 và ñể an toàn lâu dài ñộ dài khóa L ñược ñề nghị là
2048 hoặc 3072 Do ñó ñộ dài khóa ñược thử nghiệm cho cả RSA và DSA là 576, 640, 704, 768, 832, 896, 960, 1024, 2048, 3072 (bit) Ứng với mỗi ñộ dài khóa, lần lượt cho cả RSA và DSA phát sinh khóa, ký văn bản ngẫu nhiên (kích thước 2 MB) và kiểm tra chữ ký tạo ñược ðể thuận tiện so sánh, hàm băm mật mã SHA-1 ñược chọn ñể sử dụng cho
cả RSA và DSA Thử nghiệm ñược lặp lại 50.000 lần Kết quả nhận ñược như sau:
Tạo khóa (giây) Tạo chữ ký (giây) Xác nhận chữ ký (giây) Kích
Trang 27Bảng 2.2 So sánh thời gian tạo khóa, tạo chữ ký và xác nhận chữ ký của RSA
với DSA
Hình 2.3 : Thời gian tạo khóa của RSA và DSA
Kết quả Thử nghiệm 2.5 cho thấy tốc ñộ tạo khóa của RSA nhanh hơn rất nhiều so với DSA và khi kích thước khóa tăng lên thì tỷ lệ này ngày càng gia tăng Hơn nữa, khi tăng kích thước L của DSA và tương ứng với các hàm băm SHA có ñầu ra lớn hơn thì DSA sẽ còn chậm hơn rất nhiều
Hình 2.4 : Thời gian tạo chữ ký của RSA và DSA
Kết quả Thử nghiệm 2.2 cho thấy tốc ñộ tạo chữ ký của RSA chậm hơn DSA nhưng tỷ lệ này có xu hướng giảm khi kích thước khóa tăng lên Nguyên nhân là do khi số mũ khóa công khai e cố ñịnh thì số mũ khóa
bí mật d sẽ tăng khi kích thước n tăng Mặt khác, phép tính chiếm thời gian nhiều nhất của quy trình ký chính là phép lũy thừa modulo nên khi
số mũ tăng thì thời gian thực hiện cũng sẽ tăng Tuy nhiên, kích thước
1024 0,2734 7,1210 26,05 0,0515 0,0035 14,86 0,0318 0,0068 4,69
2048 2,4876 103,1124 41,45 0,1749 0,0124 14,16 0,0325 0,0240 1,35
3072 11,1882 508,2395 45,43 0,5056 0,0278 18,19 0,0341 0,0539 0,63
Trang 28khóa ñược sử dụng phổ biến hiện nay là 1024 và 2048 nên thời gian ký lúc này sẽ không còn là vấn ñề ñáng lo ngại do toàn bộ quy trình chỉ
mất ít hơn 0,2 giây
Hình 2.5 : Thời gian xác nhận chữ ký của RSA và DSA
Thử nghiệm trên môi trường Windows XP, bộ xử lý Pentium 4 3.00
GHz, bộ nhớ 512 MB
Kết quả Thử nghiệm 2.2 cũng cho thấy tốc ñộ xác nhận chữ ký của
RSA không thay ñổi ñáng kể khi kích thước khóa tăng do số mũ công
khai e ñược sử dụng luôn là một số nhỏ (giá trị phổ biến hiện này là 65537) và tốc ñộ thực hiện phép lũy thừa modulo (phép toán chính trong quy trình xác nhận chữ ký) sẽ tăng không nhiều Ngược lại, tốc ñộ xác nhận chữ ký của DSA mặc dù thấp hơn RSA nhưng sẽ ngày càng tăng khi kích khóa tăng lên Nguyên nhân là do quy trình xác nhận chữ
ký của DSA gồm rất nhiều phép tính tốn chi phí cao (phép lũy thừa modulo và phép nhân) nên khi kích thước khóa tăng dần thì ñiều này sẽ trở thành gánh nặng Mặc khác, nếu kích thước L ñược chọn lớn hơn thì tốc ñộ xác nhận chữ ký sẽ chậm hơn nữa Với các thử nghiệm trên ta dễ dàng nhận thấy RSA tốt hơn DSA về mọi mặt, ñặc biệt là tốc ñộ phát sinh khóa của RSA nhanh hơn DSA rất nhiều Ngoài ra, tốc ñộ ký và xác nhận chữ ký dẫu có chậm hơn DSA nhưng thời gian này là không
ñáng kể.[8]
2.4 Chứng thực số
- Trong mật mã học, chứng thực khóa công khai (còn gọi là chứng thực số / chứng
thực ñiện tử) là một chứng thực sử dụng chữ ký số ñể gắn một khóa công khai với một thực thể (cá nhân, máy chủ hoặc công ty ) Một chứng thực khóa công khai tiêu biểu thường bao gồm khóa công khai và các thông tin (tên, ñịa chỉ ) về thực thể sở hữu khóa ñó Chứng thực ñiện tử có thể ñược sử dụng ñể kiểm tra một khóa công
khai nào ñó thuộc về ai
Trang 29- CA phát hành các chứng thực khóa công khai trong ñó thể hiện rằng CA ñó chứng nhận khóa công khai nằm trong mỗi chứng thực thuộc về cá nhân, tổ chức, máy chủ hay bất kỳ thực thể nào ghi trong cùng chứng thực ñó Nhiệm vụ của CA là kiểm tra tính chính xác của thông tin liên quan tới thực thể ñược cấp chứng thực Khi người sử dụng tin tưởng vào một CA và có thể kiểm tra chữ ký số của CA ñó thì họ cũng có thể tin tưởng vào khóa công khai và thực thể ñược ghi trong chứng thực [9]
2.4.1 Giới thiệu
Như ñã nói ñến ở trên, mật mã khoá công khai sử dụng hai khoá khác nhau (khoá công và khoá riêng) ñể ñảm bảo yêu cầu “bí mật, xác thực, toàn vẹn và chống chối bỏ ” của những dịch vụ an toàn Một ñặc tính quan trọng khác của lược ñồ khoá công khai là phần khoá công khai ñược phân phối một cách tự do Ngoài ra, trong hạ tầng mã khoá công khai thì khoá công 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
Khoá công ñượ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 chỉ Chứng chỉ (thực ra là chứng chỉ khoá công – public key certificate (PKC)) là sự gắn kết giữa khoá công 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, 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 chỉ khoá công (PKC) ñược người cấp ký bằng chữ ký có hiệu lực ñưa ra một bảo bảm ñầy ñủ về sự gắn kết giữa khoá công, thực thể sở hữu khoá công này và tập các thuộc tính khác ñược viết trong chứng chỉ PKC còn ñược gọi là “digital certificate”- chứng chỉ số, “digital ID”, hay ñơn giản là chứng chỉ
Hình 2.6 minh hoạ một chứng chỉ số do hệ thống MyCA cấp
Hình 2.6 : Chứng chỉ số
Trang 30Chứng chỉ chứa những thông tin cần thiết như khóa công khai, chủ thể (người
sở hữu) khoá công, người cấp 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 người cấp chứng chỉ Người nào muốn sử dụng chứng chỉ trước hết sẽ kiểm tra chữ ký số trong chứng chỉ Nếu ñó là chữ ký hợp lệ thì sau ñó có thể sử dụng chứng chỉ theo mục ñích mong muốn
Có nhiều loại chứng chỉ, một trong số ñó là:
- Chứng chỉ khoá công X.509
- Chứng chỉ khoá công ñơn giản (Simple Public Key Certificates - SPKC)
- Chứng chỉ Pretty Good Privacy (PGP)
- Chứng chỉ thuộc tính (Attribute Certificates - AC)
Tất cả các loại chứng chỉ này ñều có cấu trúc ñịnh dạng riêng Hiện nay chứng chỉ 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 chương trình cấp chứng chỉ số thử nghiệm cũng sử dụng ñịnh dạng chứng chỉ theo X.509, nên bài báo cáo này tập trung vào xem xét chi tiết chứng chỉ công khai X.509 Trong bài báo cáo, thuật ngữ chứng chỉ “certificate” ñược sử dụng ñồng nghĩa với chứng chỉ khoá công khai X.509 v3
2.4.2 Chứng chỉ khoá công khai X.509
Chứng chỉ X.509 v3 là ñịnh dạng chứng chỉ ñược sử dụng phổ biến và ñược hầu hết các nhà cung cấp sản phẩm PKI triển khai
Chứng chỉ 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 chỉ 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 chỉ 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 chỉ X.509 ñược chỉ ra như trong hình 2.7
Trang 31Hình 2.7: Khuôn dạng chứng chỉ X.509
a Những trường cơ bản của chứng chỉ X.509
- Version: xác ñịnh số phiên bản của chứng chỉ
- Certificate Serial Number: do CA gán, là ñịnh danh duy nhất của chứng chỉ
- Signature Algorithm ID: chỉ ra thuật toán CA sử dụng ñể ký số chứng chỉ Có
thể là thuật toán RSA hay DSA…
- Issuer: chỉ ra CA cấp và ký chứng chỉ
- Validity Period: khoảng thời gian chứng chỉ có hiệu lực Trường này xác ñịnh
thời gian chứng chỉ bắt ñầu có hiệu lực và thời ñiểm hết hạn
- Subject: 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 information: 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 chỉ 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 chỉ với khoá riêng và thuật toán ký số ñược chỉ ra trong trường Signature Algorithm Identifier của chứng chỉ
Tính toàn vẹn của chứng chỉ ñược ñảm bảo bằng chữ ký số của CA trên chứng chỉ Khoá công khai của CA ñược phân phối ñến người sử dụng chứng chỉ 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 chỉ ñược cấp với chữ ký số của CA và khoá công khai của CA
b Những trường mở rộng của chứng chỉ X.509
Trang 32Phần mở rộng là những thông tin về các thuộc tính cần thiết ñược ñưa vào ñể gắn những thuộc tính này với người sử dụng hay khoá công Những thông tin trong phần
mở rộng thường ñược dùng ñể quản lý xác thực phân cấp, chính sách chứng chỉ, thông tin về chứng chỉ bị thu hồi…Nó cũng có thể ñược sử dụng ñể ñịnh nghĩa phần
mở rộng riêng chứa những thông tin ñặc trưng cho cộng ñồng nhất ñịnh Mỗi trường
mở rộng trong chứng chỉ ñược thiết kế với cờ “critical” hoặc “uncritical”
- Authority Key Indentifier: chứa ID khoá công khai của CA, ID này là duy nhất
và ñược dùng ñể kiểm tra chữ ký số trên chứng chỉ Nó cũng ñược sử dụng ñể phân biệt giữa các cặp khoá do một CA sử dụng (trong trường hợp nếu CA có nhiều hơn một khoá công khai) Trường này ñược sử dụng cho tất cả các chứng chỉ tự ký số (CA
- certificates)
- Subject Key Identifier: chứa ID khoá công khai có trong chứng chỉ và ñược sử
dụng ñể phân biệt giữa các khoá nếu như có nhiều khoá ñược gắn vào trong cùng chứng chỉ của người sử dụng (Nếu chủ thể có nhiều hơn một khoá công khai)
- Key Usage: chứa một chuỗi bit ñược sử dụng ñể xác ñịnh (hoặc hạn chế) chức
năng hoặc dịch vụ ñược hỗ trợ qua việc sử dụng khoá công khai trong chứng chỉ
- Extended Key Usage: chứa một hoặc nhiều OIDs (ñịnh danh ñối tượng – Object
Identifier) ñể xác ñịnh cụ thể việc sử dụng khoá công trong chứng chỉ Các giá trị có thể là : (1) xác thực server TLS, (2) xác thực client TLS, (3) Ký Mã, (4) bảo mật e-mail , (5) Tem thời gian
- CRL Distribution Point: chỉ ra vị trí của CRL tức là nơi hiện có thông tin thu
hồi chứng chỉ Nó có thể là URI (Uniform Resource Indicator), ñịa chỉ của X.500 hoặc LDAP server
- Private Key Usage Period: trường này cho biết thời gian sử dụng của khoá
riêng gắn với khóa công khai trong chứng chỉ
- Certificate Policies: trường này chỉ ra dãy các chính sách OIDs gắn với việc cấp
và sử dụng chứng chỉ
- Policy Mappings: trường này chỉ ra chính sách xác thực tương ñương giữa hai
miền CA Nó ñược sử dụng trong việc thiết lập xác thực chéo và kiểm tra ñường dẫn chứng chỉ Trường này chỉ có trong chứng chỉ CA
- Subject Alternative Name: chỉ ra những dạng tên lựa chọn gắn với người sở
hữu chứng chỉ Những giá trị có thể là: ñịa chỉ e-mail, ñịa chỉ IP, ñịa chỉ URI…
- Issuer Alternative Name: chỉ ra những dạng tên lựa chọn gắn với người cấp
chứng chỉ
- Subject Directory Attributes: trường này chỉ ra dãy các thuộc tính gắn với
người sở hữu chứng chỉ Trường mở rộng này không ñược sử dụng rộng rãi Nó ñược dùng ñể chứa những thông tin liên quan ñến ñặc quyền
- Basic Constraints Field: trường này cho biết ñây có phải là chứng chỉ CA hay
không bằng cách thiết lập giá trị logic (true) Trường này chỉ có trong chứng chỉ CA Chứng chỉ CA dùng ñể thực hiện một số chức năng Chứng chỉ này có thể ở một trong hai dạng Nếu CA tạo ra chứng chỉ ñể tự sử dụng, chứng chỉ này ñược gọi là chứng chỉ CA tự ký Khi một CA mới ñược thiết lập, CA tạo ra một chứng chỉ CA tự
ký ñể ký lên chứng chỉ của người sử dụng cuối trong hệ thống Và dạng thứ hai là CA cấp chứng chỉ cho những CA khác trong hệ thống
- Path Length Constraint: trường này chỉ ra số ñộ dài tối ña của ñường dẫn
chứng chỉ có thể ñược thiết lập Giá trị “zero” chỉ ra rằng CA chỉ có thể cấp chứng chỉ cho thực thể cuối , không cấp chứng chỉ cho những CA khác (Trường này chỉ có trong chứng chỉ của CA)
- Name Constrainsts: ñược dùng ñể bao gồm hoặc loại trừ các nhánh trong
những miền khác nhau trong khi thiết lập môi trường tin tưởng giữa các miền PKI
Trang 33- Policy Constraints: ñược dùng ñể bao gồm hoặc loại trừ một số chính sách
chứng chỉ trong khi thiết lập môi trường tin tưởng giữa các miền PKI
Hình 2.8 là nội dung chi tiết một chứng chỉ do hệ thống MyCA cấp
Hình 2.8: Nội dung chi tiết của chứng chỉ
2.4.3 Thu hồi chứng chỉ
Trong một số trường hợp như khoá bị xâm hại, hoặc người sở hữu chứng chỉ thay ñổi vị trí, cơ quan…thì chứng chỉ ñã ñượ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 chỉ kiểm tra ñược trạng thái thu hồi chứng chỉ X.509 cho phép kiểm tra chứng chỉ trong các trường hợp sau:
- Chứng chỉ không bị thu hồi
CA khác nhau Bản thân chứng chỉ có thể chứa con trỏ ñến nơi thông tin thu hồi ñược xác ñịnh vị trí Người sử dụng chứng chỉ có thể biết thư mục, kho lưu trữ hay cơ chế
ñể lấy ñược thông tin thu hồi dựa trên những thông tin cấu hình ñược thiết lập trong quá trình khởi sinh
ðể duy trì tính nhất quán và khả năng kiểm tra, CA yêu cầu:
- Duy trì bản ghi kiểm tra chứng chỉ thu hồi
- Cung cấp thông tin trạng thái thu hồi
- Công bố CRLs khi CRL là danh sách trống
Trang 342.4.4 Chính sách của chứng chỉ
Như ñược giới thiệu trong phần trên, một số mở rộng liên quan ñến chính sách có trong chứng chỉ Những mở rộng liên quan ñến chính sách này ñược sử dụng trong khi thiết lập xác thực chéo giữa các miền PKI Một chính sách chứng chỉ trong X.509 ñược ñịnh nghĩa là “tên của tập các qui tắc chỉ ra khả năng có thể sử dụng của chứng chỉ cho một tập thể ñặc thù và một lớp ứng dụng với những yêu cầu bảo mật chung” Chính sách có ñịnh danh duy nhất (ñược biết ñến như ñịnh danh ñối tượng hay OID) và ñịnh danh này ñược ñăng ký ñể người cấp và người sử dụng chứng chỉ có thể nhận ra và tham chiếu ñến Một chứng chỉ có thể ñược cấp theo nhiều chính sách Một số có thể là thủ tục và mô tả mức ñảm bảo gắn với việc tạo và quản lý chứng chỉ Những chính sách khác có thể là kỹ thuật và mô tả mức ñảm bảo gắn với an toàn của
hệ thống ñược sử dụng ñể tạo chứng chỉ hay nơi lưu trữ khoá
Một chính sách chứng chỉ cũng có thể ñược hiểu là việc giải thích những yêu cầu
và giới hạn liên quan ñến việc sử dụng chứng chỉ ñược công bố theo những chính sách này Chính sách chứng chỉ - Certificate Policies (CP) ñược chứa trong trường
mở rộng chuẩn của chứng chỉ X.509 Bằng việc kiểm tra trường này trong chứng chỉ,
hệ thống sử dụng chứng chỉ có thể xác ñịnh ñược một chứng chỉ cụ thể có thích hợp cho mục ñích sử dụng hay không
Một thuật ngữ chuyên môn khác “Certificate Practice Statement (CPS)” ñược sử dụng ñể mô tả chi tiết những thủ tục hoạt ñộng bên trong của CA và PKI cấp chứng chỉ với chính sách chứng chỉ ñã qui ñịnh
Chính sách chứng chỉ ñặc biệt quan trọng khi ñưa ra quyết ñịnh ñể xác nhận chéo hai PKI khác nhau
2.4.5 Công bố và gửi thông báo thu hồi chứng chỉ
Thông thường chứng chỉ 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 chỉ lại không hợp lệ trước thời gian hết hạn, ví dụ như:
- Khoá riêng của chủ thể bị xâm phạm
- Thông tin chứa trong chứng chỉ bị thay ñổi
- Khoá riêng của CA cấp chứng chỉ bị xâm phạm
Trong 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 chỉ là công bố CRLs ñị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
a Certificate Revocation Lists (CRLs)
CRLs là cấu trúc dữ liệu ñược ký như chứng chỉ người sử dụng CRLs chứa danh sách các chứng chỉ ñã 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 CRL 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 CRL gián tiếp Những thông
tin này ñược chứa trong trường mở rộng CRL Scope
Hình 2.9 là khuôn dạng danh sách chứng chỉ bị thu hồi
Trang 35Hình 2.9: Khuôn dạng danh sách chứng chỉ bị thu hồi
Trong ñó:
- Version number: chỉ ra phiên bản của CRL
- Signature: nhận biết loại hàm băm và thuật toán ký ñược sử dụng ñể ký danh
sách thu hồi CRL
- Issuer: tên của thực thể cấp và ký CRL
- This Update: chỉ ra ngày và thời gian CRL ñược công bố
- Next Update: chỉ ra ngày và thời gian danh sách thu hồi kế tiếp ñược cấp
- List of revoked certificates: chứa danh sách cùng với serial của những chứng
chỉ bị thu hồi
Những chứng chỉ ñã bị CA thu hồi ñược ghi vào danh sách theo thứ tự của revokedCertificates Mỗi ñầu vào nhận biết chứng chỉ thông qua số serial và ngày thu hồi trên ñó có ghi rõ thời gian và ngày khi chứng chỉ bị CA thu hồi
b Authority Revocation List (ARLs)
ARL là một CRL ñặc biệt chứa thông tin thu hồi về chứng chỉ CA ARLs không chứa chứng chỉ của người sử dụng cuối Những thay ñổi thông thường trong ARL thường hiếm khi xảy ra bởi vì chứng chỉ của CA chỉ bị thu hồi khi khoá riêng của CA
bị xâm hại và ñó lại là trường hợp không thường xảy ra Nếu chứng chỉ chéo bị thu hồi thì người cấp chứng chỉ chéo này sẽ công bố một ARL mới ñể thông báo với tất
cả các thực thể khác về tình huống này ARLs ñược sử dụng chủ yếu trong quá trình thẩm tra ñường dẫn chứng chỉ nếu môi trường tin cậy bao gồm CA có chứng chỉ xác thực chéo
c Cơ chế truy vấn On-line (On-line Query Mechanisms)
CRLs và ARLs giúp người sử dụng cuối nhận biết ñược về tình trạng thu hồi chứng chỉ Nhưng có một vấn ñề nảy sinh là ñiều gì sẽ xảy ra nếu CA thu hồi chứng
Trang 36chỉ ngay sau khi vừa công bố CRL Không có người sử dụng nào nhận biết ñược về việc thu hồi này ñến khi một CRL mới ñược thông báo
Một lược ñồ khác ñể kiểm soát ñược trạng thái của chứng chỉ do IETF phát triển
là OCSP (Online Certificate Status Protocol) Lược ñồ này dựa trên cơ chế truy vấn trực tiếp hơn việc công bố ñịnh kỳ CRLs và ARLs OCSP là giao thức yêu cầu/ trả lời ñưa ra cơ chế ñể nhận ñược thông tin thu hồi trực tuyến từ thực thể tin cậy là “OCSP Responder” Người sử dụng cuối thực hiện yêu cầu với “OCSP Request” với một danh sách các chứng chỉ cần ñược kiểm tra, OCSP Responder trả lời yêu cầu “OCSP Reply” với trạng thái của mỗi chứng chỉ Chứng chỉ có thể ở một trong ba trạng thái sau: “good”, “revoked” và “unknown”
Sử dụng dịch vụ online có một số ưu ñiểm sau:
- Trả lời thường xuyên và luôn có tính chất mới
- Thời gian trả lời nhanh
- Giảm thiểu việc sử dụng băng thông mạng sẵn có
- Tổng phí xử lý phía client thấp
Tuy nhiên dịch vụ online có hạn chế trong trường hợp cần kiểm tra trạng thái thu hồi nhưng không online Vấn ñề về bảo mật cũng ñược ñặt ra khi sử dụng dịch vụ này
Hình 2.10 là dịch vụ kiểm tra online với OCSP Responder là dịch vụ khác nhau
Hình 2.10: Dịch vụ kiểm tra online
2.5 Cấu trúc hệ thống PKI
2.5.1 Tổng quan về PKI
Public Key Infrastructure (PKI) là một cơ chế ñể cho một bên thứ ba (thường là nhà cung cấp chứng thực số ) cung cấp và xác thực ñịnh danh các bên tham gia vào quá trình trao ñổi thông tin Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp public/private Các quá trình này thường ñược thực hiện bởi một phần mềm ñặt tại trung tâm và các phần mềm khác tại các ñịa ñiểm của người dùng
Khoá công khai thường ñược phân phối trong chứng thực khóa công khai – hay PublicKeyInfrastructure Khái niệm hạ tầng khoá công khai (PKI) thường ñược dùng chỉ toàn bộ hệ thống bao gồm cả nhà cung cấp chứng thực số (CA) cùng các cơ chế
Trang 37liên quan ñồng thời với toàn bộ việc sử dụng các thuật toán mã hoá công khai trong trao ñổi thông tin
2.5.2 Các thành phần của PKI
Một hệ thống PKI gồm 4 thành phần sau:
Certification Authorities (CA)
♦Cấp và thu hồi chứng chỉ
Registration Authorities (RA)
♦Gắn kết giữa khoá công khai và ñịnh danh của người giữ chứng chỉ
♦Cung cấp cơ chế phân phối chứng chỉ 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 2.11 ðây là mô hình kiến trúc PKI do PKIX ñưa ra
Hình 2.11: Các thành phần PKI 2.5.2.1.Tổ chức chứng thực (Certification Authority)
Trong hạ tầng cơ sở khoá công khai, chứng chỉ có vai trò gắn kết giữa ñịnh danh với khoá công Sự gắn kết này thể hiện trong dạng cấu trúc dữ liệu ñược ký số ñược
ñề cập ñến như chứng chỉ ñã ñược thảo luận ở phần trước Một certificate authority (CA) là một thực thể PKI có trách nhiệm cấp chứng chỉ cho các thực thể khác trong
hệ thống
Tổ 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 chỉ trong khi thực hiện những
Trang 38hoạt ñộng mã hoá khoá công khai cần thiết Tổ chức cung cấp dịch vụ chứng thực – Certification Service Provider (CSP) là một thuật ngữ khác nhắc ñến CA ñược sử dụng trong bài báo cáo
Thông thường, CA thực hiện chức năng xác thực bằng cách cấp chứng chỉ cho các
CA khác và cho thực thể cuối (người giữ chứng chỉ) 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 chỉ cho những CA ở mức thấp hơn thì chứng chỉ này ñược gọi là chứng chỉ gốc “root certificate”
2.5.2.2 Trung tâm ñăng ký (Registration Authorities)
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ý 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 chỉ
- 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 chỉ ñược yêu cầu
- Kiểm tra xem chủ thể có thực sự sở hữu khoá 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 (proof of possession - POP)
- Tạo cặp khoá bí mật /công khai
- Phân phối bí mật ñược chia sẻ ñến thực thể cuối (ví dụ : khoá công của CA)
- Thay mặt chủ thể thực thể cuối khởi tạo quá trình ñăng ký với CA
- Lưu trữ khoá riêng
- Khởi sinh qúa trình khôi phục khoá
- Phân phối thẻ bài vật lý (ví dụ như thẻ thông minh) chứa khoá riêng
Nhìn chung, RA xử lý việc trao ñổi (thường liên quan ñến tương tác người dùng) giữa chủ thể thực thể cuối và quá trình ñăng ký, phân phối chứng chỉ và quản lý vòng ñời chứng chỉ/khoá Tuy nhiên, trong bất kỳ trường hợp nào thì RA cũng chỉ ñưa ra những khai báo tin cậy ban ñầu về chủ thể Chỉ CA mới có thể cấp chứng chỉ hay ñưa
ra thông tin trạng thái thu hồi chứng chỉ như CRL
2.5.2.3 Thực thể cuối ( Người giữ chứng chỉ và Clients)
Thực thể cuối trong PKI có thể là con người, thiết bị, và thậm chí là một chương trình phần mềm nhưng thường là người sử dụng hệ thống Thực thể cuối sẽ thực hiện những chức năng mật mã (mã hoá, giải mã và ký số)
2.5.2.4 Hệ thống lưu trữ (Repositories)
Chứng chỉ (khoá công) và thông tin thu hồi chứng chỉ phải ñược phân phối sao cho những người cần ñến chứng chỉ ñều có thể truy cập và lấy ñược Có 2 phương pháp phân phối chứng chỉ:
a Phân phối cá nhân
Phân phối cá nhân là cách phân phối cơ bản nhất Trong phương pháp này thì mỗi
cá nhân sẽ trực tiếp ñưa chứng chỉ của họ cho người dùng khác Việc này có thể thực hiện theo một số cơ chế khác nhau Chuyển giao bằng tay chứng chỉ ñược lưu trong