Hình 1.2: Mã hoá thông điệp sử dụng khoá công khai PHình 1.3: Giải mã thông điệp sử dụng khoá cá nhân của người nhận Có nhiều hệ thống khoá công khai được triển khai rộng rãi như hệ RSA,
Trang 1PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Thông tin về sinh viên
Họ và tên sinh viên: Trần Hoàn Vũ
Điện thoại liên lạc: 0982.195.223 Email: tranhoanvu205@yahoo.com
Lớp: Hệ Thống Thông Tin và Truyền Thông Hệ đào tạo: Chính quy
Kỹ Sư Chất Lượng Cao – K49
Đồ án tốt nghiệp được thực hiện tại: Bộ môn Truyền thông và mạng máy tính
Thời gian làm ĐATN: Từ ngày 12/03/2009 đến 12/06/2009
2 Mục đích nội dung của ĐATN
Nhiệm vụ của đồ án là xây dựng thành phần Setup trong hệ thống BioPKI-OpenCA Đây là một
hệ thống an ninh thông tin dựa trên sự kết hợp giữa sinh trắc học với hạ tầng khóa công khai PKI dùng môi trường OpenCA có sử dụng thiết bị nhúng Trọng tâm của đồ án là tập trung xây dựng phân hệ Setup hệ thống BioPKI-OpenCA
3 Các nhiệm vụ cụ thể của ĐATN
• Tìm hiểu lý thuyết về PKI, OpenCA, sinh trắc học, các giải pháp tích hợp sinh trắc với hạ tầng khóa công khai để thành hệ BioPKI
• Tập trung xây dựng, phát triển phân hệ Setup hệ thống BioPKI-OpenCA
• Thử nghiệm một ứng dụng trên hệ thống BioPKI-OpenCA
Trang 2Tôi –Trần Hoàn Vũ - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của PGS.TS Nguyễn Thị Hoàng Lan
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác
Hà Nội, ngày 29 tháng 05 năm 2009
Tác giả ĐATN
Trần Hoàn Vũ
5 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ:
Hà Nội, ngày tháng năm 2009
Giáo viên hướng dẫn
PGS.TS Nguyễn Thị Hoàng Lan
Trang 3M ỤC L ỤC
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP……… 1
LỜI CẢM ƠN……….6
TÓM TẮT ĐỒ ÁN……….7
DANH MỤC TỪ VIẾT TẮT………8
DANH MỤC HÌNH VẼ……….9
CHƯƠNG 1 – LÝ THUYẾT TỔNG QUAN VỀ MẬT MÃ VÀ ỨNG DỤNG……… 11
1.1 Giới thiệu chung……… 11
1.2 Khái niệm hệ mật mã……… 11
1.3 Hệ mật mã khoá đối xứng………12
1.4 Hệ mật mã khoá công khai……… 13
1.5 Chữ ký số……….17
1.6 Hàm băm……… 21
CHƯƠNG 2 - CHỨNG THƯ SỐ VÀ HẠ TẦNG MÃ KHOÁ CÔNG KHAI 24
2.1 Chứng thư số (digital certificates)……… 25
2.1.1 Giới thiệu……… 25
2.1.2 Chứng thư khoá công khai X.509……….27
2.1.3 Thu hồi chứng thư……….31
2.1.4 Chính sách của chứng thư……….32
2.1.5 Công bố và gửi thông báo thu hồi chứng thư……… 33
2.2 Các thành phần của PKI……….36
2.2.1 Tổ chức chứng thực CA (Certification Authority)……… 38
2.2.2 Trung tâm đăng ký RA (Registration Authorities)……… 38
Trang 42.2.3 Thực thể cuối ( Người giữ chứng thư và Clients)………39
2.2.4 Hệ thống lưu trữ (Repositories)………39
2.3 Chức năng cơ bản của PKI……… 40
2.3.1 Chứng thực (certification)………40
2.3.2 Thẩm tra (validation)………40
2.3.3 Một số chức năng khác……….41
2.4 Mô hình tin cậy cho PKI……… 44
2.4.1 Mô hình CA đơn……… 45
2.4.2 Mô hình phân cấp……….46
2.4.3 Mô hình mắt lưới (xác thực chéo)………47
2.4.4 Mô hình Hub và Spoke (Bridge CA)………49
2.4.5 Mô hình Web (Trust Lists)……… 49
2.4.6 Mô hình người sử dụng trung tâm (User Centric Model)………51
CHƯƠNG 3 - PHƯƠNG ÁN THIẾT KẾ XÂY DỰNG HỆ THỐNG BIOPKI-OPENCA TRONG KHUÔN KHỔ ĐỀ TÀI KC.01.11……… 53
3.1 Giới thiệu………53
3.1.1 Đề tài KC.01.11………53
3.1.2 Sinh trắc học……….54
a Sinh trắc học là gì……… 54
b Các giải pháp tích hợp sinh trắc để bảo vệ khoá cá nhân……… 56
3.1.3 Tổng quan về hệ thống OpenCA……….58
3.1.3.1 Giới thiệu……… 58
3.1.3.2 Đánh giá về hệ OpenCA………59
3.1.4 Mục đích của hệ thống BK BioPKI-OpenCA……… 59
3.2 Thư viện OpenSSL……….60
Trang 53.3 Phương án thiết kế xây dựng hệ thống BioPKI-OpenCA……… 65
3.3.1 Mô hình hệ thống dự kiến………65
3.3.2 Các thành phần và chức năng của hệ thống……….66
3.3.3 Biểu đồ phân cấp chức năng……….68
3.3.4 Xây dựng phương án về quy trình hệ thống BK-BioPKI-OpenCA……….74
CHƯƠNG 4 -PHÂN TÍCH THIẾT KẾ CÀI ĐẶT THÀNH PHẦN SETUP HỆ THỐNG BK-BIOPKI-OPENCA 78
4.1 Giới thiệu………78
4.2 Phân tích yêu cầu……… 78
4.3 Các chức năng cơ bản của Module Setup hệ thống……… 79
4.4 Xây dựng kịch bản………80
4.4.1 Setup CA Operator……… 80
4.4.2 Setup RA……….82
4.4.3 Setup LRA……… 85
4.4.4 Kịch bản khởi động……… 86
CHƯƠNG 5 - THỬ NGHIỆM KỊCH BẢN ỨNG DỤNG TRONG HỆ THỐNG BIOPKI- OPENCA……… 88
5.1 Thiết kế kịch bản thử nghiệm ứng dụng chữ kí số……….89
5.2 Kết quả thử nghiệm……… 94
KẾT LUẬN……… 96
TÀI LIỆU THAM KHẢO……… 97
LỜI CẢM ƠN
Trang 6Tôi xin gửi lời cảm ơn chân thành nhất tới PGS TS Nguyễn Thị Hoàng Lan, người 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 đồ
á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è cùng làm việc trong khuôn khổ đề tài KC01.11/06-10 đã dìu dắt, giúp đỡ tôi tiến bộ trong suốt quá trình làm đồ á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 bộ môn Truyền Thông và Mạng Máy Tính, khoa Công Nghệ Thông Tin trường Đại Học Bách Khoa Hà Nội đã hết sức tạo điều kiện cho tôi trong quá trình học và làm đồ án này
TÓM TẮT ĐỒ ÁN
Trang 7Đồ án này có tên “Xây dựng phân hệ Setup trong hệ thống an ninh dựa trên sinh
trắc học BioPKI-OpenCA” nằm trong khuôn khổ đề tài nghiên cứu khoa học công nghệ
cấp nhà nước KC01.11/06-10 “Hệ thống an ninh thông tin dựa trên sinh trắc học sử
dụng công nghệ nhúng BioPKI” Nội dung đồ án là nghiên cứu xây dựng nền tảng hệ
thống BioPKI-OpenCA trong đó tập trung xây dựng phân hệ setup hệ thống và thử nghiệm một ứng dụng trên hệ thống BioPKI-OpenCA
DANH MỤC TỪ VIẾT TẮT
Trang 8CA Certificate Authority
DANH MỤC HÌNH VẼ
Hình 1.1: Quá trình mã hoá và giải mã
Trang 9Hình 1.2: Mã hoá thông điệp sử dụng khoá công khai P
Hình 1.3: Giải mã thông điệp sử dụng khoá cá nhân của người nhận
Hình 2.3: Nội dung chi tiết của chứng chỉ
Hình 2.4: Khuôn dạng danh sách chứng chỉ bị thu hồi
Hình 2.5: Dịch vụ kiểm tra online
Trang 10Hình 3.2: Bảng so sánh các đặc trưng sinh trắc học theo A K Jain [2]
(H - cao, M - trung bình, L - thấp)
Hình 3.3: Các thành phần của hệ thống OpenCA
Hình 3.4: Mô hình hệ thống BioPKI-OpenCA mức khung cảnh
Hình 3.5: Biểu đồ phân cấp chức năng của CA Operator
Hình 3.6: Biểu đồ phân cấp chức năng của RA
Hình 3.7: Biểu đồ phân cấp chức năng của LRA
Hình 4.1: Các chức năng của Module Setup Hệ Thống
Hình 4.2: Biểu đồ diễn tiến quá trình Setup CA Operator
Hình 4.3: Biểu đồ diễn tiến quá trình Setup RA
Hình 4.4: Biểu đồ diễn tiến quá trình đăng ký một LRA
Hình 4.5: Biểu đồ diễn tiến quá trình setup LRA
Hình 4.6: Kịch bản khởi động cho các phân hệ trong hệ thống BioPKI
Hình 5.1: Biểu đồ usecase nhóm các chức năng liên quan tới ứng dụng trên nền PKI
Hình 5.2: Biểu đồ diễn tiến quá trình kí
Hình 5.3: Biểu đồ diễn tiến quá trình xác thực chữ kí
Hình 5.4: Quá trình kí có thử nghiệm hoạt động tất cả các thành phần của hệ thống BioPKI-OpenCA
Hình 5.5: Quá trình xác thực có thử nghiệm hoạt động tất cả các thành phần của hệ thống
CHƯƠNG 1
LÝ THUYẾT TỔNG QUAN VỀ MẬT MÃ VÀ ỨNG DỤNG
Trang 111.1 Giới thiệu chung
Mật mã đã được con người sử dụng từ lâu đời Các hình thức mật mã sơ khai đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở khắp nơi trên thế giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh vực hoạt động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự, chính trị, ngoại giao Mật mã trước hết là một loại hoạt động thực tiễn, nội dung chính của nó là để giữ bí mật thông tin Ví dụ muốn gửi một văn bản từ một người gửi A đến một người nhận B, A phải tạo cho văn bản đó một bản mã mật tương ứng và thay vì gửi văn bản rõ thì A chỉ gửi cho B bản mã mật, B nhận được bản mã mật và khôi phục lại văn bản rõ để hiểu được thông tin mà A muốn gửi cho mình Do văn bản gửi đi thường được chuyển qua các con đường công khai nên người ngoài có thể “lấy trộm” được, nhưng vì đó là bản mật mã nên không đọc hiểu được Còn A có thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểu được là do hai người đã có một thoả thuận về một chìa khoá chung, chỉ với khoá chung này thì A mới tạo được bản mã mật từ bản rõ và B mới khôi phục được bản
rõ từ bản mã mật Khoá chung đó được gọi là khoá mật mã Để thực hiện được một phépmật mã, ta còn cần có một thuật toán biến bản rõ cùng với khoá mật mã thành bản mã mật và một thuật toán ngược lại biến bản mật cùng với khoá mật mã thành bản rõ Các thuật toán đó được gọi tương ứng là thuật toán lập mã và thuật toán giải mã Các thuật toán này thường không nhất thiết phải giữ bí mật, mà cái luôn cần được giữ bí mật là khoá mật mã Trong thực tiễn, có những hoạt động ngược lại với hoạt động bảo mật là khám phá bí mật từ các bản mã “lấy trộm” được, hoạt động này thường được gọi là mã thám hay phá khoá [2]
ek ∈ E, ek : P → C và một hàm giải mã dk∈ D, dk: C → P sao cho
dk(ek(x)) = x , ∀ x ∈ P
Trang 12Hình 1.1: Quá trình mã hoá và giải mã
1.3 Hệ mật mã khoá đối xứng
Các phương pháp mật mã cổ điển đã được biết đến từ khoảng 4000 năm trước Một số kỹ thuật đã được những người Ai Cập sử dụng từ nhiều thế kỷ trước Những kỹ thuật này chủ yếu sử dụng hai phương pháp chính là: phép thay thế và phép chuyển dịch Trong phép thay thế, một chữ cái này được thay thế bởi chữ cái khác và trong phép chuyển dịch, các chữ cái được sắp xếp theo một trật tự khác
Hệ mã chuẩn DES được xây dựng tại Mỹ trong những năm 70 theo yêu cầu của Văn phòng quốc gia về chuẩn (NBS) và được sự thẩm định của an ninh quốc gia là một
ví dụ về mật mã cổ điển DES kết hợp cả hai phương pháp thay thế và chuyển dịch DES thực hiện mã hoá trên từng khối bản rõ là một xâu 64 bit, có khoá là một xâu 56 bit và cho ra bản mã cũng là một xâu 64 bit Hiện nay, DES và biến thể của nó (3DES) vẫn được sử dụng thành công trong nhiều ứng dụng
Trong các hệ mã đối xứng chỉ có một khoá được chia sẻ giữa các bên tham gia liên lạc Cứ mỗi lần truyền tin bảo mật, cả người gửi A và người nhận B cùng thoả thuận
cùng một khoá chung K, được giữ bí mật dùng cho cả lập mã và giải mã Những hệ mật
mã cổ điển với cách sử dụng trên được gọi là mật mã khoá đối xứng hay còn gọi là mật
mã khoá cá nhân
Độ an toàn của hệ mật mã đối xứng phụ thuộc vào khoá Nếu để lộ khoá thì bất kỳ người nào cũng có thể mã hoá và giải mã thông điệp
Trang 13* Ưu và nhược điểm của hệ mật mã khoá đối xứng
Ưu điểm nổi bật của các hệ mật mã khoá đối xứng là việc xây dựng một hệ mật
mã có độ bảo mật cao khá dễ dàng về mặt lý thuyết Nhưng như nếu không kể đến việc cần có một nguồn sinh khoá ngẫu nhiên thì việc phân phối, lưu trữ bảo mật và thoả thuận khoá là một vấn đề khó chấp nhận được trong mạng truyền thông ngày nay Trong một mạng có n người dùng, nếu cần khoá cho từng cặp thì cần n(n+1)/2 khoá
Để khắc phục hiện tượng không thể lưu trữ một khối lượng khoá quá lớn đáp ứng được nhu cầu mã dịch, người ta xem xét đến việc sử dụng các hệ mật mã khối với độ dài không lớn lắm như DES… hoặc các hệ mật mã dòng mà khoá được sinh ra từ một nguồn giả ngẫu nhiên bằng thuật toán
Mặc dù đã thực hiện việc mã hoá và giải mã bằng các hệ mật mã khối hay bằng thuật toán sinh khoá như đã nêu ở trên thì vấn đề phân phối và thoả thuận khoá vẫn phải được thực hiện Như vậy phân phối và thoả thuận khoá là một vấn đề chưa thể được giải quyết trong các hệ mật mã khoá đối xứng
1.4 Hệ mật mã khoá công khai
Để giải quyết vấn đề phân phối và thoả thuận khoá của mật mã khoá đối xứng, năm 1976 Diffie và Hellman đã đưa ra khái niệm về hệ mật mã khoá công khai và một phương pháp trao đổi công khai để tạo ra một khoá cá nhân chung mà tính an toàn được bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán tính “logarit rời rạc”)
Hệ mật mã khoá công khai hay còn được gọi là hệ mật mã phi đối xứng sử dụng một cặp khoá, khoá mã hoá còn gọi là khoá công khai (public key) và khoá giải mã được gọi là khoá cá nhân hay khóa riêng (private key) Trong hệ mật này, khoá mã hoá khác với khoá giải mã Về mặt toán học thì từ khoá công rất khó tính được khoá cá nhân Biết được khoá này không dễ dàng tìm được khoá kia Khoá giải mã được giữ bí mật trong khi khoá
mã hoá được công bố công khai Một người bất kỳ có thể sử dụng khoá công khai để mã hoá tin tức, nhưng chỉ có người nào có đúng khoá giải mã mới có khả năng xem được bản rõ
Người gửi A sẽ mã hoá thông điệp bằng khóa công của người nhận và người nhận
B sẽ giải mã thông điệp với khoá cá nhân tương ứng của mình
Quá trình này được mô tả trong hình 1.2 và 1.3
Trang 14Hình 1.2: Mã hoá thông điệp sử dụng khoá công khai P
Hình 1.3: Giải mã thông điệp sử dụng khoá cá nhân của người nhận
Có nhiều hệ thống khoá công khai được triển khai rộng rãi như hệ RSA, hệ ElGamal sử dụng giao thức trao đổi khoá Diffie-Hellman và nổi lên trong những năm gần đây là hệ đường cong Elliptic Trong số các hệ mật mã trên thì hệ RSA là hệ được cộng
Trang 15đồ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.
Hệ mật mã RSA, do Rivest, Shamir và Adleman [6] tìm ra, đã được công bố lần đầu tiên vào tháng 8 năm 1977 trên tạp chí Scientific American Hệ mật mã RSA được sử dụng rộng rãi trong thực tiễn đặc biệt cho mục đích bảo mật và xác thực dữ liệu số Tính bảo mật và an toàn của chúng được bảo đảm bằng độ phức tạp của một bài toán số học nổi tiếng là bài toán phân tích số nguyên thành các thừa số nguyên tố Hệ mật mã RSA được mô tả như hình 1.4
Hình 1.4: Sơ đồ hệ mật mã RSA
Việc phát minh ra phương pháp mã công khai tạo ra một cuộc “cách mạng” trong công nghệ an toàn thông tin điện tử Nhưng thực tiễn triễn khai cho thấy tốc độ mã hoá khối dữ liệu lớn bằng các thuật toán mã hoá công khai chậm hơn rất nhiều so với hệ mã hoá đối xứng Ví dụ, để đạt được độ an toàn như các hệ mã đối xứng mạnh cùng thời, RSA đòi hỏi thời gian cho việc mã hoá một văn bản lâu hơn gấp hàng ngàn lần Do đó, thay bằng việc mã hoá văn bản có kích thước lớn bằng lược đồ khoá công khai thì văn bản này sẽ được mã hoá bằng một hệ mã đối xứng có tốc độ cao như DES, IDEA,…sau
đó khoá được sử dụng trong hệ mã đối xứng sẽ được mã hoá sử dụng mật mã khoá công khai Phương pháp này rất khả thi trong việc mã và giải mã những văn bản có kích thước lớn như được mô tả trong hình 1.5 và 1.6
Trang 16Hình 1.5: Mã hoá thông điệp sử dụng khoá cá nhân S để mã thông điệp và khoá
công khai P để mã khoá cá nhân S
Hình 1.6: Giải mã thông điệp sử dụng khoá cá nhân S để giải mã thông điệp và
khoá cá nhân P để giải mã khoá cá nhân S
Trang 17* Ưu và nhược điểm của hệ mật mã khoá công khai
Vấn đề còn tồn đọng của hệ mật mã khoá đối xứng được giải quyết nhờ hệ mật mã khoá công khai Chính ưu điểm này đã thu hút nhiều trí tuệ vào việc đề xuất, đánh giá các
hệ mật mã công khai Nhưng do bản thân các hệ mật mã khoá công khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ mật mã này đều có tốc độ mã dịch không nhanh lắm Chính nhược điểm này làm cho các hệ mật mã khoá công khai khó được dùng một cách độc lập
Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là việc xác thực mà trong mô hình hệ mật mã đối xứng không đặt ra Do các khoá mã công khai được công bố một cách công khai trên mạng cho nên việc đảm bảo rằng “khoá được công
bố có đúng là của đối tượng cần liên lạc hay không?” là một kẽ hở có thể bị lợi dụng Vấn đề xác thực này được giải quyết cũng chính bằng các hệ mật mã khoá công khai Nhiều thủ tục xác thực đã được nghiên cứu và sử dụng như Kerberos, X.509… Một ưu điểm nữa của các hệ mật mã khoá công khai là các ứng dụng của nó trong lĩnh vực chữ
ký số, cùng với các kết quả về hàm băm, thủ tục ký để bảo đảm tính toàn vẹn của một văn bản được giải quyết
1.5 Chữ ký số
Mật mã khoá công khai có thể được sử dụng theo nhiều cách khác nhau Chữ ký
số là một ví dụ minh chứng cho việc đảm bảo xác thực người dùng và toàn vẹn dữ liệu Nếu người gửi A mã hoá thông điệp hay tài liệu với khoá cá nhân của mình thì bất kỳ ai cũng có thể giải mã thông điệp với khoá công của A Do đó, người nhận có thể chắc chắn rằng thông điệp mình nhận chỉ có thể do A mã vì chỉ A mới có khoá cá nhân của mình Quá trình mã hoá thông điệp với khoá cá nhân của người gửi gọi là quá trình “ký số”
Trong thực tế, quá trình ký số thường khó hơn Thay bằng việc mã bản thông điệp gốc với khoá cá nhân của người gửi thì chỉ có bản đại diện thông điệp (bản băm) có độ dài cố định được mã hoá với khoá cá nhân của người gửi và bản băm đã được mã hoá này được gắn vào với thông điệp gốc Người nhận B sau khi nhận được thông điệp đầu tiên sẽ giải mã bản băm với khoá công của người gửi, sau đó băm thông điệp đi kèm bằng thuật toán băm tương ứng với thuật toán băm người gửi đã sử dụng B so sánh hai giá trị băm nếu giống nhau thì chắc chắn rằng thông điệp A gửi cho B còn nguyên vẹn, đồng thời xác thực được người gửi thông tin là ai
Tính toàn vẹn của thông điệp được đảm bảo vì chỉ thay đổi một bit trong thông điệp gửi đi thì kết quả hai giá trị băm sẽ khác nhau Tính xác thực của người gửi cũng
Trang 18cũng chứng minh được tính chống chối bỏ bản gốc vì chỉ có A mới có khoá cá nhân dùng
để ký số
Sơ đồ chữ ký được định nghĩa như sau:
Sơ đồ chữ ký là một bộ năm (P, A, K, S, V), trong đó:
1 P là một tập hữu hạn các văn bản có thể
2 A là một tập hữu hạn các chữ ký có thể
3 K là một tập hữu hạn các khoá có thể
4 S là tập các thuật toán ký
5 V là tập các thuật toán kiểm thử
RSA cũng là thuật toán được dùng nhiều cho mục đích ký số Sơ đồ chữ ký RSA được mô tả như trong hình 1.7 [3] Ngoài ra, còn có một số thuật toán công khai khác được dùng để ký số, ví dụ như chuẩn chữ ký số DSS
trong đó (n,b) là công khai, (a, p, q) là bí mật
y = sigK (x) = xa mod n, y ∈ A verK (x, y) = đúng ⇔ x ≡ yb mod n
Hình 1.7: Sơ đồ chữ ký RSA
Quá trình ký và kiểm tra chữ ký được mô tả trong hình 1.8 và hình 1.9
Giả sử A muốn gửi cho B thông điệp x A thực hiện các bước sau:
1 A băm thông điệp x (Hình 1.8 a), thu được bản đại diện z = h(x) – có kích
thước cố định 128 bit hoặc 160 bit
Trang 192 A ký số trên bản đại diện z (Hình 1.8 b), bằng khóa bí mật của mình, thu
3 A gửi (x, y) cho B (Hình 1.8 c).
Hình 1.8 a: Băm thông điệp
Hình 1.8 b: Ký trên bản băm
Trang 20Hình 1.8: Sơ đồ mô tả các công đoạn người A làm trước khi gửi thông điệp
cho người B (sử dụng hàm băm rồi ký số)
Khi B nhận được (x, y) B thực hiện các bước sau:
1 B kiểm tra chữ ký số để xác minh xem thông điệp mà mình nhận được có phải
được gửi từ A hay không bằng cách giải mã chữ ký số y, bằng khóa công khai của A, được z (Hình 1.9 a)
2 B dùng một thuật toán băm – tương ứng với thuật toán băm mà A dùng – để
băm thông điệp x đi kèm, nhận được h(x) (Hình 1.9 b)
3 B so sánh 2 giá trị băm z và h(x), nếu giống nhau thì chắc chắn rằng thông điệp
x – mà A muốn gửi cho B – còn nguyên vẹn, bên cạnh đó cũng xác thực được
người gửi thông tin là ai (Hình 1.9 c)
Hình 1.9 a: Xác minh chữ ký
Hình 1.9 b: Tiến hành băm thông điệp x đi kèm.
Trang 21Hình 1.9 c: Kiểm tra tính toàn vẹn của thông điệp
Hình 1.9: Sơ đồ mô tả các công đoạn kiểm tra chữ ký sau khi người B nhận
được thông điệp
1.6 Hàm băm
Việc sử dụng các hệ mật mã và sơ đồ chữ ký số thường là mã hóa và ký số trên
từng bit của thông tin, thời gian để mã hóa và ký sẽ tỷ lệ thuận với dung lượng của thông
tin Thêm vào đó có thể xảy ra trường hợp: với nhiều bức thông điệp đầu vào khác nhau,
sử dụng hệ mật mã, sơ đồ ký số giống nhau (có thể khác nhau) thì cho ra kết quả bản mã, bản ký số giống nhau (ánh xạ N-1: nhiều – một), như hình 1.10 Điều này sẽ dẫn đến một
số rắc rối về sau cho việc xác thực thông tin
Hình 1.10: Nhiều thông điệp nguồn cho cùng 1 kết quả đích sau mã hoá/ ký số
Trang 22Các sơ đồ ký số thường chỉ được sử dụng để ký các bức thông điệp (thông tin) có kích thước nhỏ và sau khi ký, bản ký số có kích thước gấp đôi bản thông điệp gốc – ví dụ với sơ đồ chữ ký chuẩn DSS ký trên các bức thông điệp có kích thước 160 bit, bản ký số
sẽ có kích thước 320 bit Trong khi đó trên thực tế, ta cần phải ký các thông điệp có kích thước lớn hơn nhiều, chẳng hạn vài chục MegaByte Hơn nữa, để đáp ứng yêu cầu xác thực sau khi thông tin đến người nhận, dữ liệu truyền qua mạng không chỉ là bản thông điệp gốc, mà còn bao gồm cả bản ký số (có dung lượng gấp đôi dung lượng bản thông điệp gốc) Một cách đơn giản để giải quyết vấn đề trên (với thông điệp có kích thước lớn) này là chặt thông điệp thành nhiều đoạn 160 bit, sau đó ký lên các đoạn đó độc lập nhau Nhưng, sử dụng biện pháp này sẽ có một số vấn đề gặp phải trong việc tạo ra các chữ ký số:
- Thứ nhất: với một thông điệp có kích thước a, thì sau khi ký kích thước của chữ
ký sẽ là 2a (trong trường hợp sử dụng DSS).
- Thứ hai: với các chữ ký “an toàn” thì tốc độ chậm vì chúng dùng nhiều phép tính
số học phức tạp như số mũ modulo
- Thứ ba: vấn đề nghiêm trọng hơn đó là kết quả sau khi ký, nội dung của thông
điệp có thể bị xáo trộn các đoạn với nhau, hoặc một số đoạn trong chúng có thể bị mất mát, trong khi người nhận cần phải xác minh lại thông điệp Do đó, ta cần phải bảo đảm tính toàn vẹn của thông điệp
Giải pháp cho các vấn đề vướng mắc đến chữ ký số là dùng hàm băm để trợ giúp cho việc ký số
Hàm băm - hiểu theo một nghĩa đơn giản là hàm cho tương ứng một mảng dữ liệu lớn với một mảng dữ liệu nhỏ hơn - được sử dụng rộng rãi trong nhiều ứng dụng khác nhau của tin học, không chỉ thuộc phạm vi mật mã học [1]
Hàm băm được đề cập đến trong phạm vi đồ án là hàm băm một chiều, có tác dụng trợ giúp cho các sơ đồ ký số nhằm làm giảm dung lượng của dữ liệu cần thiết để truyền qua mạng Hàm băm ở đây được hiểu là các thuật toán không sử dụng khoá để mã hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hoá”), nó có nhiệm vụ băm thông điệp được đưa vào theo một thuật toán h một chiều nào đó, rồi đưa ra một bản băm – văn bản đại diện – có kích thước cố định Giá trị của hàm băm là duy nhất và không thể suy ngược lại được nội dung thông điệp từ giá trị băm này Hàm băm một chiều h có một số đặc tính quan trọng sau:
- Với thông điệp đầu vào x thu được bản băm z = h(x) là duy nhất.
- Nếu dữ liệu trong thông điệp x thay đổi hay bị xóa để thành thông điệp x’ thì
h(x’) ≠ h(x) Cho dù chỉ là một sự thay đổi nhỏ hay chỉ là xóa đi 1 bit dữ liệu của thông
Trang 23điệp thì giá trị băm cũng vẫn thay đổi Điều này có nghĩa là: hai thông điệp hoàn toàn khác nhau thì giá trị hàm băm cũng khác nhau.
- Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm băm Nghĩa là với thông điệp x thì dễ dàng tính được z = h(x), nhưng lại không thể (thực chất là khó) suy ngược lại được x nếu chỉ biết giá trị hàm băm h(x)
Một số thuật toán băm được biết đến nhiều là hàm băm dòng và hàm băm chuẩn như: [MD2], [MD4], [MD5], [SHA-1]…
CHƯƠNG 2 CHỨNG CHỈ SỐ VÀ HẠ TẦNG KHOÁ CÔNG KHAI
Mật mã khoá công khai cho đến nay được xem là giải pháp tốt nhất để đảm bảo được các yêu cầu về an toàn thông tin mạng: “bảo mật”, “toàn vẹn”, “xác thực” và
“chống chối bỏ” Mặc dù vẫn còn mới khi so sánh với các phương pháp mã cổ điển nhưng mật mã khoá công khai đã nhận được sự tin cậy rộng rãi của thế giới Internet vì những công cụ có khả năng phát triển cho vấn đề quản lý khoá Như đã đề cập ở trên, vấn
đề chính của hệ mã khoá đối xứng là vấn đề quản lý khoá và để giải quyết vấn đề này hệ
mã khoá công khai đã được đưa ra như một giải pháp Trong hệ thống mật mã khoá công khai, khoá cá nhân (khoá cá nhân) được người dùng giữ bí mật trong khi khoá công khai với tên của người sở hữu tương ứng lại được công bố công khai Đối với hệ thống như thế này, ta cần xác định và trả lời một số câu hỏi như:
- Ai sẽ tạo ra cặp khoá công khai – bí mật?
- Dữ liệu sẽ được lưu dưới định dạng như thế nào trong hệ thống lưu trữ (khoá công, định danh của người sở hữu và các thông tin khác)?
- Có cơ chế nào để giữ cho thông tin không bị thay đổi trên hệ thống lưu trữ?
Trang 24- Làm thế nào để đảm bảo việc gắn kết giữa khoá công và định danh của thực thể yêu cầu có khoá công?
- Làm thế nào để người sử dụng có thể truy cập được đến nơi lưu trữ?
- Làm thế nào người sử dụng nhận biết được có sự thay đổi trong dữ liệu đang được lưu trên hệ thống lưu trữ?
- Điều gì sẽ xảy với khoá công khai nếu khoá cá nhân tương ứng bị xâm hại?
- Có một chính sách nào cho tất cả những vấn đề nêu trên không?
Để trả lời cho những câu hỏi trên có một giải pháp là sử dụng hạ tầng khoá công khai - PKI
Cho đến nay có nhiều định nghĩa về PKI, nhưng chưa định nghĩa nào được công nhận chính thức Có một số định nghĩa về PKI như sau:
“PKI là một tập các phần cứng, phần mềm, con người, chính sách và các thủ tục cần thiết để tạo, quản lý, lưu trữ, phân phối và thu hồi chứng thư khoá công khai dựa trên mật mã khoá công khai”[14]
“PKI là hạ tầng cơ sở có thể hỗ trợ quản lý khoá công khai để hỗ trợ các dịch vụ xác thực, mã hoá, toàn vẹn hay chống chối bỏ” [7]
“PKI là hạ tầng cơ sở bảo mật có những dịch vụ được triển khai và chuyển giao sử dụng công nghệ và khái niệm khoá công khai” [4]
Nhìn chung, PKI có thể được định nghĩa như một hạ tầng cơ sở sử dụng công nghệ thông tin để cung cấp dịch vụ mã hoá khoá công khai và chữ ký số Một mục đích quan trọng khác của PKI là để quản lý khoá và chứng thư được sử dụng trong hệ thống
Chứng thư là cấu trúc dữ liệu đặc biệt, gắn kết khoá công khai với chủ sở hữu của
nó Việc gắn kết này được đảm bảo bằng chữ ký số của nơi được uỷ quyền cấp chứng thư
2.1 Chứng thư số (digital certificates)
sử dụng còn phải được đảm bảo về tính toàn vẹn
Trang 25Khoá 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 thư Chứng thư (thực ra là chứng thư 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ể [5] 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 thư 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 thư.
PKC còn được gọi là “digital certificate”- chứng thư số, “digital ID”, hay đơngiản là chứng thư
Hình 2.1 minh hoạ một chứng thư số
Hình 2.1: Chứng thư số
Trang 26Chứng thư 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 thư Người nào muốn sử dụng chứng thư trước hết sẽ kiểm tra chữ ký số trong chứng thư Nếu đó là chữ ký hợp lệ thì sau đó có thể
sử dụng chứng thư theo mục đích mong muốn
Có nhiều loại chứng thư, một trong số đó là:
Tất cả các loại chứng thư này đều 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 chương trình cấp chứng thư số thử nghiệm cũng sử dụng định dạng chứng thư theo X.509, nên đồ án này tập trung vào xem xét chi tiết chứng thư công khai X.509 Trong đồ
án, thuật ngữ chứng thư “certificate” được sử dụng đồng nghĩa với chứng thư khoá công khai X.509 v3
2.1.2 Chứng thư khoá công khai X.509
Chứng thư X.509 v3 là định dạng chứng thư đượ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 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 2.2
Trang 27Hình 2.2: Khuôn dạng chứng thư X.509
a Những trường cơ bản của chứng thư X.509
- Version: xác định số phiên bản của chứng thư.
thể là thuật toán RSA hay DSA…
- Issuer: chỉ ra CA cấp và ký chứng thư.
thời gian chứng thư bắt đầu có hiệu lực và thời điểm hết hạn
Tên của subject phải duy nhất đối với mỗi thực thể CA xác nhận
quan; xác định thuật toán (ví dụ RSA hay DSA) được sử dụng cùng với khoá
Trang 28- 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.
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
b Những trường mở rộng của chứng thư X.509
Phầ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 thư, thông tin về chứng thư 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 thư đượ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 thư 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 thư tự ký số (CA - certificates)
- Subject Key Identifier: chứa ID khoá công khai có trong chứng thư 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 thư 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 thư
- 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 thư 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 thư 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á cá
nhân gắn với khóa công khai trong chứng thư
Trang 29- 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 thư
- 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 thư Trường này chỉ có trong chứng thư 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 thư 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 thư
- 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 thư 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 thư 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 thư CA Chứng thư CA dùng để thực hiện một số chức năng Chứng thư này có thể ở một trong hai dạng Nếu CA tạo ra chứng thư để tự sử dụng, chứng thư này được gọi là chứng thư
CA tự ký Khi một CA mới được thiết lập, CA tạo ra một chứng thư CA tự ký để ký lên chứng thư của người sử dụng cuối trong hệ thống Và dạng thứ hai là CA cấp chứng thư 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 thư có thể được thiết lập Giá trị “zero” chỉ ra rằng CA chỉ có thể cấp chứng thư cho thực thể cuối , không cấp chứng thư cho những CA khác (Trường này chỉ có trong chứng thư 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
- Policy Constraints: được dùng để bao gồm hoặc loại trừ một số chính sách
chứng thư trong khi thiết lập môi trường tin tưởng giữa các miền PKI
Trang 30Hình 2.3 là nội dung chi tiết một chứng thư do hệ thống OpenCA cấp.
Hình 2.3: Nội dung chi tiết của chứng thư 2.1.3 Thu hồi chứng thư
Trong một số trường hợp như khoá bị xâm hại, hoặc người sở hữu chứng thư thay đổi vị trí, cơ quan…thì chứng thư đã đượ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ư kiểm tra được trạng thái thu hồi chứng thư X.509 cho phép kiểm tra chứng thư trong các trường hợp sau:
chứng thư thu hồi
Trang 31Cơ chế thu hồi X.509 xác định là sử dụng danh sách thu hồi chứng thư (CRLs) X.509 đưa ra sự phân biệt giữa ngày, thời gian chứng thư bị CA thu hồi và ngày, thời gian trạng thái thu hồi được công bố đầu tiên Ngày thu hồi thực sự được ghi cùng với đầu vào chứng thư trong CRL Ngày thông báo thu hồi được xác định trong header của CRL khi nó được công bố Vị trí của thông tin thu hồi có thể khác nhau tuỳ theo CA khác nhau Bản thân chứng thư 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 thư 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:
2.1.4 Chính sách của chứng thư
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 thư 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 thư 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 thư 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” [7]
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 thư có thể nhận ra và tham chiếu đến Một chứng thư 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 thư 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 thư hay nơi lưu trữ khoá [6]
Một chính sách chứng thư 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 thư được công bố theo những chính sách này Chính sách chứng thư - Certificate Policies (CP) được chứa trong trường mở rộng chuẩn của chứng thư X.509 Bằng việc kiểm tra trường này trong chứng thư, hệ thống sử dụng chứng thư có thể xác định được một chứng thư 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 thư với chính sách chứng thư đã qui định
Trang 32Chính sách chứng thư đặc biệt quan trọng khi đưa ra quyết định để xác nhận chéo hai PKI khác nhau.
2.1.5 Công bố và gửi thông báo thu hồi chứng thư
Thông thường chứng thư 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ư lại không hợp lệ trước thời gian hết hạn, ví dụ như:
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 thư 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 [10]
a Certificate Revocation Lists (CRLs)
CRLs là cấu trúc dữ liệu được ký như chứng thư người sử dụng CRLs chứa danh sách các chứng thư đã 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.
Trang 33Hình 2.4 là khuôn dạng danh sách chứng thư bị thu hồi.
Hình 2.4: Khuôn dạng danh sách chứng thư bị thu hồi
Trong đó:
- 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.
Trang 34- 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.
thư bị thu hồi
Những chứng thư đã bị CA thu hồi được ghi vào danh sách theo thứ tự của revoked Certificates Mỗi đầu vào nhận biết chứng thư 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 thư 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 thư CA ARLs không chứa chứng thư 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 thư của CA chỉ bị thu hồi khi khoá cá nhân 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 thư chéo bị thu hồi thì người cấp chứng thư 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 thư nếu môi trường tin cậy bao gồm CA có chứng thư 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 thư 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 thư 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 thư 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 thư 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 thư Chứng thư 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:
Trang 35Tuy 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.5 là dịch vụ kiểm tra online với OCSP Responder là dịch vụ khác nhau.
Hình 2.5: Dịch vụ kiểm tra online
2.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)
- Registration Authorities (RA)
chứng thư bị thu hồi
Trang 36Cá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.6 Đây là mô hình kiến trúc PKI do PKIX đưa ra [7].
Hình 2.6: Các thành phần PKI
2.2.1 Tổ chức chứng thực (Certification Authority)
Trong hạ tầng cơ sở khoá công khai, chứng thư 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 thư đã đượ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 thư 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 thư trong khi thực hiện những hoạt
Trang 37độ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 đồ án.
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 thư cho các
CA khác và cho thực thể cuối (người giữ chứng thư) 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ư cho những CA ở mức thấp hơn thì chứng thư này được gọi là chứng thư gốc “root certificate”
2.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:
không - điều này thường được đề cập đến như sự chứng minh sở hữu (proof
of possession - POP)
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 thư và quảnlý vòng đời chứng thư/khoá Tuy nhiên, trong bất kỳ trường hợp nào thì RA cũng chỉ đưa ra những
Trang 38khai báo tin cậy ban đầu về chủ thể Chỉ CA mới có thể cấp chứng thư hay đưa ra thông tin trạng thái thu hồi chứng thư như CRL.
2.2.3 Thực thể cuối ( Người giữ chứng thư 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.2.4 Hệ thống lưu trữ (Repositories)
Chứng thư (khoá công) và thông tin thu hồi chứng thư phải được phân phối sao cho những người cần đến chứng thư đều có thể truy cập và lấy được Có 2 phương pháp phân phối chứng thư:
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 thư 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 thư được lưu trong đĩa mềm hay trong một số các môi trường lưu trữ khác Cũng có thể phân phối bằng cách gắn chứng thư trong e-mail để gửi cho người khác
Cách này thực hiện tốt trong một nhóm ít người dùng nhưng khi số lượng người dùng tăng lên thì có thể xảy ra vấn đề về quản lý
b Phân phối công khai
Một phương pháp khác phổ biến hơn để phân phối chứng thư (và thông tin thu hồi chứng thư) là công bố các chứng thư rộng rãi, các chứng thư này có thể sử dụng một cách công khai và được đặt ở vị trí có thể truy cập dễ dàng Những vị trí này được gọi là cơ sở
dữ liệu Dưới đây là ví dụ về một số hệ thống lưu trữ:
Trang 392.3 Chức năng cơ bản của PKI
Những hệ thống cho phép PKI có những chức năng khác nhau Nhưng nhìn chung
có hai chức năng chính là: chứng thực và thẩm tra
2.3.1 Chứng thực (certification)
Chứng thực là chức năng quan trọng nhất của hệ thống PKI Đây là quá trình ràng buộc khoá công khai với định danh của thực thể CA là thực thể PKI thực hiện chức năng chứng thực Có hai phương pháp chứng thực:
chứng thư cho phần khoá công của cặp khoá
cho khoá công đó Chứng thư đảm bảo tính toàn vẹn của khoá công khai và các thông tin gắn cùng
2.3.2 Thẩm tra (validation)
Quá trình xác định liệu chứng thư đã đưa ra có thể được sử dụng đúng mục đích thích hợp hay không được xem như là quá trình kiểm tra tính hiệu lực của chứng thư Quá trình này bao gồm một số bước sau:
không (xử lý theo đường dẫn chứng thư)
hạn hay không (bằng cách kiểm tra những trường mở rộng cụ thể như mở rộng chính sách chứng thư hay mở rộng việc sử dụng khoá)
2.3.3 Một số chức năng khác
Hệ thống PKI thực hiện chức năng chứng thực, thẩm tra cùng với một số chức năng phụ trợ khác Dưới đây là một số chức năng và dịch vụ được hầu hết các hệ thống PKI cung cấp Một số những chức năng khác có thể được định nghĩa tuỳ theo yêu cầu cụ thể của các hệ thống PKI
Trang 40Đăng ký là quá trình đến hoặc liên lạc với các tổ chức, trung tâm tin cậy để đăng
ký các thông tin và xin cấp chứng thư RA và CA là những thực thể trong quá trình đăng
ký Quá trình đăng ký phụ thuộc vào chính sách của tổ chức Nếu chứng thư được cung cấp với mục đích dùng cho những hoạt động bí mật thì sử dụng phương pháp gặp mặt trực tiếp Nếu chứng thư chỉ được sử dụng cho những mục đích, hoạt động thường thì có thể đăng ký qua những ứng dụng viết sẵn hoặc ứng dụng điện tử
b Khởi tạo ban đầu
Khi hệ thống trạm của chủ thể nhận được các thông tin cần thiết để liên lạc với CA thì quá trình khởi tạo bắt đầu Những thông tin này có thể là khoá công của CA, chứng thư của CA, cặp khóa công /bí mật của chủ thể
Một số hệ thống khác sử dụng cơ chế dựa trên password trong giai đoạn khởi tạo Người dùng cuối liên lạc với CA khi nhận được password và sau đó thiết lập một kênh bảo mật để truyền những thông tin cần thiết Giai đoạn khởi tạo thường tiếp tục với quá trình chứng thực
c Khôi phục cặp khoá
Hầu hết hệ thống PKI tạo ra hai cặp khoá cho người sử dụng cuối, một để ký số và một để mã hoá Lý do để tạo hai cặp khoá khác nhau xuất phát từ yêu cầu khôi phục và sao lưu dự phòng khoá
Tuỳ theo chính sách của tổ chức, bộ khoá mã (mã và giải mã) và những thông tin liên quan đến khoá của người sử dụng phải được sao lưu để có thể lấy lại được dữ liệu khi người sử dụng mất khoá cá nhân hay rời khỏi đơn vị
Còn khoá để ký số được sử dụng tuỳ theo mục đích cá nhân nên không được sao lưu Riêng khoá cá nhân của CA thì được lưu giữ dự phòng trong một thời gian dài để giải quyết những vấn đề nhầm lẫn có thể xảy ra trong tương lai Hệ thống PKI có những công cụ để thực hiện chức năng sao lưu và khôi phục khoá
d Tạo khoá
Cặp khoá công khai/bí mật có thể được tạo ở nhiều nơi Chúng có thể được tạo ra bằng phần mềm phía client và được gửi đến CA để chứng thực
CA cũng có thể tạo ra cặp khoá trước khi chứng thực Trong trường hợp này, CA
tự tạo cặp khoá và gửi khoá cá nhân này cho người sử dụng theo một cách an toàn Nếu khoá do bên thứ ba tạo ra thì những khoá này phải được CA tin cậy trong miền xác nhận trước khi sử dụng