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.
97 trang |
Chia sẻ: luyenbuizn | Lượt xem: 1518 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
PHIẾ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
4. Lời cam đoan của sinh viên:
Tô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
M Ụ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
2.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
3.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
Tô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
Đồ á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
APKI Architecture for Public-Key Infrastructure
CA Certificate Authority
CRL Certifiate Revocation List
DES Data Encrytion Standard
DSA Digital Signature Algorithm
DSS Digital Signature Standard
IETF Internet Engineering Task Force
LDAP Lightweight Directory Access Protocol
MD2, 4,5 Message Digest 2,4,5
NIST National Institute of Standards and Technology
NSA National Security Agency
PEM Privacy Enhanced Mail
PGP Pretty Good Privacy
RA Registration Authority
PKCS Public Key Cryptography Standards
PKI Public Key Infrastructure
PKIX Public Key Infrastructure X.509 group
RFC Request For Comments
RSA Rivest Shamir Adleman
SCEP Simple Certificate Enrollment Protocol
SET Secure Electronic Transactions
SHA Secure Hash Algorithm
SPKI Simple Public Key Infrastructure
SSL Secure Socket Layer
TSL Transport Layer Security
DANH MỤC HÌNH VẼ
Hình 1.1: Quá trình mã hoá và giải mã
Hì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 1.4: Sơ đồ hệ mật mã RSA
Hì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
Hình 1.7: Sơ đồ chữ ký RSA
Hì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ố)
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
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ố
Hình 2.1: Chứng thư số
Hình 2.2: Khuôn dạng chứng chỉ X.509
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
Hình 2.6: Các thành phần PKI
Hình 2.7: Đường dẫn chứng chỉ chéo
Hình 2.8: Mô hình CA đơn
Hình 2.9: Mô hình phân cấp
Hình 2.10: Mô hình mắt lưới
Hình 2.11: Mô hình Hub và Spoke (Bridge CA)
Hình 3.1: Các thuộc tính sinh trắc học khác nhau
Hì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
1.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ép
mậ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].
1.2 Khái niệm hệ mật mã
Hệ mật mã được định nghĩa là một bộ năm (P, C, K, E, D), trong đó:
1. P là tập hữu hạn các các bản rõ có thể
2. C tập hữu hạn các bản mã có thể
3. K là tập hữu hạn các khoá có thể
4. E là tập các hàm lập mã
5. D là tập các hàm giải mã. Với mỗi k ∈ K, có một hàm lập mã
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
Hì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 trước với nhau một khoá chung K, sau đó người gửi dùng eK để lập mã cho thông báo gửi đi và người nhận dùng dK để giải mã bản mật mã nhận được. Người gửi và người nhận có 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.
* Ư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.
Hì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 đồ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.
Hì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
* Ư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 được đảm bảo vì chỉ có người gửi A mới có khoá cá nhân để mã bản băm. Chữ ký số cũ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ử
6. Với mỗi k ∈ K, có một thuật toán ký sig k ∈ S, sig k: P → A và một thuật
toán kiểm thử ver k ∈ V, ver k: P x A → {đúng, sai}, thoả mãn điều kiện
sau đây với mọi x ∈ P, y ∈ A:
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.
Cho n = p*q với p,q là số nguyên tố lớn . Đặt P = A = Zn
K = {(n, p, q, a, b)/ n = p*q, a*b ≡ 1 mod φ(n)}
trong đó (n,b) là công khai, (a, p, q) là bí mật
Với mỗi K = (n, p, q, a, b), mỗi x ∈ P, ta định nghĩa:
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.
2. 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
được bản ký số y = sigK (z).
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.
Hình 1.8 c: Truyền dữ liệu thông tin cần gửi.
Hì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.
Hì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ố
Cá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 để
Các file đính kèm theo tài liệu này:
- TH100.doc