Đăng ký Đăng nhập
Trang chủ Nghiên cứu giải pháp xây dựng hệ thống cấp chứng chỉ số dựa trên hạ tầng khóa cô...

Tài liệu Nghiên cứu giải pháp xây dựng hệ thống cấp chứng chỉ số dựa trên hạ tầng khóa công khai

.PDF
71
47
70

Mô tả:

ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG HOÀNG THỊ THÚY NGHIÊN CỨU GIẢI PHÁP XÂY DỰNG HỆ THỐNG CẤP CHỨNG CHỈ SỐ DỰA TRÊN HẠ TẦNG KHÓA CÔNG KHAI Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS. NGUYỄN VĂN TAM Thái Nguyên 10/2013 Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn i LỜI CẢM ƠN Trước hết, tôi xin gửi lời cảm ơn chân thành nhất tới PGS.TS Nguyễn Văn Tam, người thầy đã cho tôi những định hướng và những ý kiến rất quý báu về công nghệ PKI cũng như cách để triển khai ứng dụng trên nó. Tôi cũng xin tỏ lòng biết ơn sâu sắc tới thầy cô, bạn bè cùng khoá đã quan tâm, giúp đỡ tôi tiến bộ trong suốt thời gian qua. Tôi xin cảm ơn trường Đại học Thái Nguyên cũng như trường Đại học Kinh Doanh và Công nghệ 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 luận văn này. Luận văn được hoàn thành trong thời gian rất hạn hẹp, và chắc chắn còn nhiều khiếm khuyết cần bổ sung thêm. Tôi xin cảm ơn các thầy cô, bạn bè và người thân đã và sẽ có những góp ý chân tình cho nội dung của luận văn này, để tôi có thể tiếp tục đi sâu tìm hiểu về PKI, CA và hy vọng có thể đưa vào ứng dụng thực tiễn công tác. Hoàng Thị Thúy Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn ii MỤC LỤC Lời cảm ơn ...................................................................................................... i Mục lục .......................................................................................................... ii Danh mục từ viết tắt ...................................................................................... iv Danh mục hình vẽ .......................................................................................... v MỞ ĐẦU ....................................................................................................... 1 CHƢƠNG 1: GIỚI THIỆU VỀ HỆ MẬT MÃ ........................................... 2 1.1. Hệ mật mã khoá đối xứng ........................................................................ 3 1.2. Hệ mật mã khoá công khai ...................................................................... 4 1.3. Hàm băm ................................................................................................. 8 1.4. Chữ kí số ............................................................................................... 11 CHƯƠNG 2: CHỨNG CHỈ SỐ VÀ HỆ THỐNG CẤP CHỨNG CHỈ CA... 13 2.1. Chứng chỉ số (digital certificates) .......................................................... 14 2.1.1. Chứng chỉ khóa công khai .................................................................. 14 2.1.2. Chứng chỉ khoá công khai X.509 ........................................................ 16 2.1.3. Thu hồi chứng chỉ ............................................................................... 20 2.1.4. Chính sách đối với chứng chỉ số ......................................................... 21 2.1.5. Công bố và gửi thông báo thu hồi chứng chỉ....................................... 22 2.2. Hạ tầng khóa công khai – PKI ............................................................... 25 2.3. Hệ thống cấp chứng chỉ số (Certification Authority – CA) .................... 30 2.4. Mô hình tin cậy cho PKI ........................................................................ 31 2.4.1. Mô hình CA đơn ................................................................................. 31 2.4.2. Mô hình phân cấp ............................................................................... 33 2.4.3. Mô hình mắt lưới (xác thực chéo) ....................................................... 34 2.4.4. Mô hình Hub và Spoke (Bridge CA) .................................................. 36 2.4.5. Mô hình Web (Trust Lists) .................................................................. 37 Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn iii 2.4.6. Mô hình người sử dụng trung tâm (User Centric Model) .................... 38 CHƯƠNG 3: XÂY DỰNG HỆ THỐNG CẤP CHỨNG CHỈ SỐ THỬ NGHIỆM................................................................................ 40 3.1. Tổng quan về hệ thống .......................................................................... 41 3.1.1. Mô hình hệ thống ............................................................................... 41 3.1.2. Một số đặc tính của hệ thống cung cấp chứng chỉ số .......................... 41 3.2. Chức năng và quá trình khởi tạo các thành phần trong hệ thống cung cấp chứng chỉ số JavaCA ............................................................................. 46 3.2.1. Certificate Authority - CA .................................................................. 46 3.2.2. Registration Authority - RA ................................................................ 47 3.2.3. RAO ................................................................................................... 47 3.2.4. LDAP và Public Database Server ....................................................... 48 3.3. Qui trình đăng kí, cấp phát chứng chỉ .................................................... 49 3.4. Thử nghiệm sản phẩm ........................................................................... 50 3.4.1. Thử nghiệm phía quản trị.................................................................... 50 3.4.2. Thử nghiệm phía người dùng .............................................................. 50 3.5. Đánh giá chung...................................................................................... 50 Kết quả nghiên cứu ...................................................................................... 53 Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn iv DANH MỤC TỪ VIẾT TẮT ARLs CA CAO CMS COST CRLs CRR CSP DAP DES DNS DSS ECC HTTPS IANA IEEE IETF ISO ITU-T LDAP MD5 OCSP PEM PGP PKC PKCS PKI PKIX RA RAO RFC RSA S/MIME SHA-1 SSL TLS Số hóa bởi trung tâm học liệu Authority Revocation Lists Certificate Authority Certificate Authority Operator Cryptographic Message Syntax Commercial of the Shelf Certificate Revocation Lists Certificate Revocation Request Certification Service Provider Directory Access Protocol Data Encryption Standard Domain Name System Digital Signature Standard Elliptic Curve Cryptography Secure Hypertext Transaction Standard Internet Assigned Numbers Authority Institute of Electrical & Electronic Engineers Internet Engineering Task Force International Organization for Standardization Internet Telecommumications UnionTelecommunication Lightweight Directory Access Protocol Message Digest 5 Hash Algorithm Online Certificate Status Protocol Privacy Enhanced Mail Pretty Good Privacy Public Key Certificate Public Key Cryptography Standards Public Key Infrastructure Extended Public Key Infrastructure Registration Authorities Registration Authorities Operator Request For Comments Rivest Shamir Adleman Secure Multipurpose Internet Mail Extensions Secure Hash Standard Secure Socket Layer Transport Layer Security www: \\lrc-tnu.edu.vn v DANH MỤC HÌNH VẼ Hình 1.2: Mã hoá thông điệp sử dụng khoá công khai C .............................. 5 Hình 1.3: Giải mã thông điệp sử dụng khoá riêng của người nhận................. 5 Hình 1.4: Sơ đồ hệ mật mã RSA.................................................................... 6 Hình 1.5: Mã hoá thông điệp sử dụng khoá bí mật R để mã thông điệp và khoá công khai C để mã khoá bí mật R ......................................... 7 Hình 1.6: Giải mã thông điệp sử dụng khoá bí mật C để giải mã thông điệp7 và khoá riêng R để giải mã khoá bí mật C ..................................... 7 Hình 1.7: Nhiều thông điệp nguồn cho cùng 1 kết quả đích sau mã hoá/ kí số ........... 9 Hình 1.8: Sơ đồ chữ kí RSA ......................................................................... 12 Hình 2.1: Khuôn dạng chứng chỉ X.509 ....................................................... 17 Hình 2.2: Khuôn dạng danh sách chứng chỉ bị thu hồi................................. 23 Hình 2.3: Dịch vụ kiểm tra online ............................................................... 25 Hình 2.4: Các thành phần PKI ...................................................................... 26 Hình 2.5: Mô hình CA đơn ........................................................................... 32 Hình 2.6: Mô hình phân cấp ......................................................................... 33 Hình 2.7: Mô hình mắt lưới .......................................................................... 35 Hình 3.1: Mô hình hệ thống cung cấp chứng chỉ số ...................................... 41 Hình 3.2: Tệp yêu cầu cấp chứng chỉ............................................................ 43 Hình 3.3: Chứng chỉ lưu khoá công khai của rootCA trong hệ thống JavaCA ..... 44 Hình 3.4: Chứng chỉ của người sử dụng ....................................................... 45 Hình 3.5: Mô hình mô phỏng hệ thống JavaCA phân cấp hai tầng................ 47 Hình 3.6: Mô hình quan hệ và trao đổi dữ liệu giữa các thành phần trong hệ thống ...................................................................................... 49 Hình 3.7: Mô hình đăng kí và cấp chứng chỉ số ............................................ 49 Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 1 MỞ ĐẦU Các dịch vụ trên mạng Internet/Intranet ngày càng phong phú nhưng mức độ đe dọa đến an ninh thông tin trên mạng như làm thất thoát, sai lệch thông tin, giả mạo thông tin và người dùng ngày càng trở nên nghiêm trọng. Nghiên cứu xây dựng hệ thống thông tin an toàn và có tính bảo mật cao đang là nhu cầu cấp bách hiện nay. Thuật toán mật mã khóa công khai, đặc biệt là thuật toán RSA cho phép mã hóa, thực hiện chữ kí số để bảo đảm tính mật, tính xác thực, tính toàn vẹn thông tin khi truyền trên mạng. Tuy nhiên, khóa công khái có thể bị giả mạo do vậy Nhà cung cấp phải chứng thực số (Certificate Authority - CA) chứng thực khóa công khai thuộc về ai. Chính vì vậy học viên chọn đề tài: “Nghiên cứu giải pháp xây dựng hệ thống cấp chứng chỉ số dựa trên hạ tầng khóa công khai” với mục đích tìm hiểu về chứng chỉ số, hạ tầng khóa công khai PKI và triển khai thử nghiệm một hệ thống cung cấp chứng chỉ số để minh họa. Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 2 CHƢƠNG 1 GIỚI THIỆU VỀ HỆ MẬT MÃ Mật mã đã được con người sử dụng từ lâu. 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 để giữ bí mật cho việc trao đổi 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 gốc để hiểu được thông tin mà A muốn gửi cho mình. 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ì đó chỉ là bản mã mật nên không đọc hiểu được. 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 gốc để hiểu được là do hai người đã có một thỏa 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 gốc và B mới khôi phục được bản gốc 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ó một thuật toán biến bản gốc 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 gốc. 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] Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 3 1.1. 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 (viết tắt của Data Encryption Standard, hay Tiêu chuẩn Mã hóa Dữ liệu) là một phương pháp mật mã hóa được FIPS (Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976. Sau đó chuẩn này được sử dụng rộng rãi trên phạm vi thế giới. Ngay từ đầu, thuật toán của nó đã gây ra rất nhiều tranh cãi, do nó bao gồm các thành phần thiết kế mật, độ dài khóa tương đối ngắn, và các nghi ngờ về cửa sau để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa. Đây 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 thỏa 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á bí mật. Độ Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 4 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 đ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 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à thỏa 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à thỏa thuận khoá vẫn phải được thực hiện. Như vậy phân phối và thỏa 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.2. Hệ mật mã khoá công khai Để giải quyết vấn đề phân phối và thỏa 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á bí mật chung mà tính an toàn được bảo đảm bởi độ khó của một bài toán 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 - c) và khoá giải mã được gọi là khóa riêng (private key - r). 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 khai rất khó tính được khoá riêng. Biết được khoá này không dễ dàng tìm được khoá kia. Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 5 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 khai của người nhận và người nhận B sẽ giải mã thông điệp với khoá riêng tương ứng của mình. Quá trình này được mô tả trong hình 1.2 và 1.3. Chỉ riêng mình em Hình 1.2: Mã hoá thông điệp sử dụng khoá công khai C Khóa riêng của B B Chỉ riêng mình em Hình 1.3: Giải mã thông điệp sử dụng khoá riêng 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 Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 6 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 [12] 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. Tạo khóa: Khi đăng kí khóa, hệ thống sẽ sinh ra hai khóa đó là khóa công khai (Public key - c ) và khóa bí mật (Private key - r). Bước 1: Chọn p, q là hai số nguyên tố lớn Bước 2: Cho n = p.q Bước 3: φ(n) = (p-1)(q-1) Bước 4: (r, φ)=1 (chọn r thỏa mãn điều kiện này) Bước 5: Chọn c thỏa mãn điều kiện c.r % φ =1 Sau khi hoàn thành 5 bước trên sẽ tạo ra hai khóa: - Khóa riêng: (r, n) - Khóa công khai: (c, n) 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á Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 7 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. A Secret Key R Directory of Public Key Public Key C Of B Chỉ riêng mình em Hình 1.5: Mã hoá thông điệp sử dụng khoá bí mật R để mã thông điệp và khoá công khai C để mã khoá bí mật R Private Key R of B B Symmetric Key C Chỉ riêng mình em Hình 1.6: Giải mã thông điệp sử dụng khoá bí mật C để giải mã thông điệp và khoá riêng R để giải mã khoá bí mật C Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 8 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.3. 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ạ N1: nhiều – một), như hình 1.7. Đ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. Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 9 Thông điệp 1 Thông điệp 2 Hệ mật mã hay Sơ đồ kí số Bản mã hay Bản kí số Thông điệp 3 Nguồn Đích Hình 1.7: 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 160bit, bản kí số sẽ có kích thước 320bit. 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 160bit, 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). Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 10 - 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 luận vă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 T thu được bản băm T’ = h(T) là duy nhất. - Nếu dữ liệu trong thông điệp T thay đổi hay bị xóa để thành thông điệp T” thì h(T”) ≠ h(T). 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 đ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. Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 11 - 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 T thì dễ dàng tính được T’ = h(T), nhưng lại không thể suy ngược lại được T nếu chỉ biết giá trị hàm băm h(T). 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]… 1.4. 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á riêng 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á riêng của mình. Quá trình mã hoá thông điệp với khoá riêng 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á riêng 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á riêng 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 Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 12 của người gửi cũng được đảm bảo vì chỉ có người gửi A mới có khoá riêng để 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á riêng 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í sigk∈ S, sigk: P → A và một thuật toán kiểm thử verk∈ V, verk: P x A → {đúng, sai}, thỏa mãn điều kiện sau đây với mọi x ∈ P, y ∈ A: verk(x, y) = đúng, nếu y = sigk(x) sai, nếu y ≠ sigk(x) 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.8. 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.8: Sơ đồ chữ kí RSA Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 13 CHƢƠNG 2 CHỨNG CHỈ SỐ VÀ HỆ THỐNG CẤP CHỨNG CHỈ CA 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á riêng (khoá bí mật) đượ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 khai, đị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ữ? - Làm thế nào để đảm bảo việc gắn kết giữa khoá công khai và định danh của thực thể yêu cầu có khoá công khai? - 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ữ? Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn 14 - Điều gì sẽ xảy ra với khoá công khai nếu khoá riêng 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 chỉ khoá công khai dựa trên mật mã khoá công khai”[25]. “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ỏ”[9]. “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 chỉ được sử dụng trong hệ thống. Chứng chỉ 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 chỉ. 2.1. Chứng chỉ số (digital certificates) 2.1.1. Chứng chỉ khóa công khai Như đã nói ở trên, mật mã khoá công khai sử dụng hai khoá khác nhau (khoá công khai 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 khai Số hóa bởi trung tâm học liệu www: \\lrc-tnu.edu.vn
- Xem thêm -

Tài liệu liên quan