Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai

  • Số trang: 78 |
  • Loại file: PDF |
  • Lượt xem: 12 |
  • Lượt tải: 0
nganguyen

Đã đăng 34173 tài liệu

Mô tả:

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 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. Tôi xin tỏ lòng biết ơn sâu sắc tới thầy cô, bạn bè cùng khoá đã dìu dắt, giúp đỡ tôi tiến bộ trong suốt những năm học qua. Xin cảm ơn gia đình và bè bạn, những người luôn khuyến khích và giúp đỡ tôi trong mọi hoàn cảnh khó khăn. Tôi xin cảm ơn Cục Tin học nghiệp vụ đã 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. Được hoàn thành trong thời gian rất hạn hẹp, luận văn này chắc chắn còn nhiều khiếm khuyết. Tôi xin cảm ơn những 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à đưa PKI vào ứng dụng trong thực tiễn công tác. Lương Nguyễn Hoàng Hoa -1- MỤC LỤC MỤC LỤC.................................................................................................................. 1 Danh mục từ viết tắt ................................................................................................. 3 Danh mục hình vẽ...................................................................................................... 5 MỞ ĐẦU .................................................................................................................... 7 CHƯƠNG 1 - TỔNG QUAN VỀ MẬT MÃ......................................................... 10 1.1 1.2 1.3 1.4 1.5 1.6 Giới thiệu chung .................................................................................10 Khái niệm hệ mật mã..........................................................................11 Hệ mật mã khoá đối xứng ..................................................................11 Hệ mật mã khoá công khai .................................................................12 Chữ ký số............................................................................................16 Hàm băm ............................................................................................20 CHƯƠNG 2 - CHỨNG CHỈ SỐ VÀ HẠ TẦNG Mà KHOÁ CÔNG KHAI.... 23 2.1. Chứng chỉ số (digital certificates) ......................................................24 2.1.1 Giới thiệu .....................................................................................24 2.1.2 Chứng chỉ khoá công khai X.509 ................................................26 2.1.3 Thu hồi chứng chỉ........................................................................30 2.1.4 Chính sách của chứng chỉ............................................................31 2.1.5 Công bố và gửi thông báo thu hồi chứng chỉ ..............................32 2.2 Các thành phần của PKI .....................................................................35 2.2.1 Tổ chức chứng thực (Certification Authority) ............................36 2.2.2 Trung tâm đăng ký (Registration Authorities) ............................37 2.2.3 Thực thể cuối ( Người giữ chứng chỉ và Clients).......................38 2.2.4 Hệ thống lưu trữ (Repositories)...................................................38 2.3 Chức năng cơ bản của PKI .................................................................39 2.3.1 Chứng thực (certification) ...........................................................39 2.3.2 Thẩm tra (validation)...................................................................39 2.3.3 Một số chức năng khác................................................................39 2.4 Mô hình tin cậy cho PKI ....................................................................43 2.4.1 Mô hình CA đơn..........................................................................44 2.4.2 Mô hình phân cấp ........................................................................45 2.4.3 Mô hình mắt lưới (xác thực chéo) ...............................................46 2.4.4 Mô hình Hub và Spoke (Bridge CA)...........................................48 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 Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai -2- CHƯƠNG 3 - XÂY DỰNG HỆ THỐNG CUNG CẤP CHỨNG CHỈ SỐ ........ 53 3.1 Tổng quan về hệ thống .......................................................................53 3.1.1 Mô hình hệ thống.........................................................................53 3.1.2 Một số đặc tính của hệ thống cung cấp chứng chỉ số..................54 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ố MyCA ..............................................................................58 3.2.1 Certificate Authority - CA...........................................................58 3.2.2 Registration Authority - RA ........................................................59 3.2.3 RAO.............................................................................................60 3.2.4 LDAP và Public Database Server ...............................................60 3.3 Qui trình đăng ký, cấp phát và huỷ bỏ chứng chỉ ..............................62 3.3.1 Qui trình đăng ký và cấp chứng chỉ.............................................62 3.3.2 Qui trình huỷ bỏ chứng chỉ..........................................................64 3.4 Thử nghiệm sản phẩm ........................................................................65 3.4.1 Thử nghiệm phía quản trị ............................................................65 3.4.2 Thử nghiệm phía người dùng ......................................................65 3.5 Đánh giá chung...................................................................................66 KẾT LUẬN .............................................................................................................. 68 TÀI LIỆU THAM KHẢO ...................................................................................... 70 PHỤ LỤC ................................................................................................................. 72 1. Môi trường phát triển ............................................................................72 2. Một số chuẩn mật mã khoá công khai (PKCS) .....................................72 3. Một số màn hình giao diện của hệ thống đã xây dựng .........................74 Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai -3- Danh mục từ viết tắt ARLs Authority Revocation Lists CA Certificate Authority CAO Certificate Authority Operator CMS Cryptographic Message Syntax COST Commercial of the Shelf CRLs Certificate Revocation Lists CRR Certificate Revocation Request CSP Certification Service Provider DAP Directory Access Protocol DES Data Encryption Standard DNS Domain Name System DSS Digital Signature Standard ECC Elliptic Curve Cryptography HTTPS Secure Hypertext Transaction Standard IANA Internet Assigned Numbers Authority IEEE Institute of Electrical & Electronic Engineers IETF Internet Engineering Task Force ISO International Organization for Standardization ITU-T Internet Telecommumications UnionTelecommunication LDAP Lightweight Directory Access Protocol MD5 Message Digest 5 Hash Algorithm OCSP Online Certificate Status Protocol PEM Privacy Enhanced Mail PGP Pretty Good Privacy PKC Public Key Certificate PKCS Public Key Cryptography Standards Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai -4- PKI Public Key Infrastructure PKIX Extended Public Key Infrastructure RA Registration Authorities RAO Registration Authorities Operator RFC Request For Comments RSA Rivest Shamir Adleman S/MIME Secure Multipurpose Internet Mail Extensions SHA-1 Secure Hash Standard SSL Secure Socket Layer TLS Transport Layer Security Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai -5- Danh mục hình vẽ Hình 1.1: Hình 1.2: Hình 1.3: Hình 1.4: Hình 1.5: Hình 1.6: Hình 1.7: Hình 1.8: Hình 1.9: Hình 1.10: Hình 2.1: Hình 2.2: Hình 2.3: Hình 2.4: Hình 2.5: Hình 2.6: Hình 2.7: Hình 2.8: Hình 2.9: Hình 2.10: Hình 2.11: Hình 2.12: Hình 3.1: Hình 3.2: Hình 3.3: Hình 3.4: Hình 3.5: Hình 3.6: Quá trình mã hoá và giải mã ............................................................... 11 Mã hoá thông điệp sử dụng khoá công khai P .................................... 13 Giải mã thông điệp sử dụng khoá riêng của người nhận ................... 13 Sơ đồ hệ mật mã RSA......................................................................... 14 Mã hoá thông điệp sử dụng khoá bí mật S để mã thông điệp và khoá công khai P để mã khoá bí mật S........................................................ 15 Giải mã thông điệp sử dụng khoá bí mật S để giải mã thông điệp và khoá riêng P để giải mã khoá bí mật S ............................................... 15 Sơ đồ chữ ký RSA............................................................................... 18 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ố) ................................................ 19 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................................................................................... 20 Nhiều thông điệp nguồn cho cùng 1 kết quả đích sau mã hoá/ ký số. 21 Chứng chỉ số ....................................................................................... 25 Khuôn dạng chứng chỉ X.509 ............................................................. 26 Nội dung chi tiết của chứng chỉ .......................................................... 30 Khuôn dạng danh sách chứng chỉ bị thu hồi....................................... 33 Dịch vụ kiểm tra online...................................................................... 35 Các thành phần PKI ............................................................................ 36 Đường dẫn chứng chỉ chéo ................................................................. 43 Mô hình CA đơn ................................................................................. 44 Mô hình phân cấp................................................................................ 45 Mô hình mắt lưới ................................................................................ 47 Mô hình Hub và Spoke (Bridge CA) .................................................. 49 Danh sách các CA tin cậy trong Microsoft Explorer......................... 50 Mô hình hệ thống cung cấp chứng chỉ số ........................................... 53 Tệp yêu cầu cấp chứng chỉ.................................................................. 55 Chứng chỉ lưu khoá công khai của rootCA trong hệ thống MyCA.... 56 Chứng chỉ của người sử dụng ............................................................. 57 Mô hình mô phỏng hệ thống MyCA phân cấp hai tầng...................... 59 Mô hình quan hệ và trao đổi dữ liệu giữa các thành phần trong hệ thống 61 Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai -6- Hình 3.7: Hình 3.8: Hình 3.9: Hình 3.10: Mô hình đăng ký và cấp chứng chỉ số ................................................ 62 Giấy chứng nhận chứng chỉ số............................................................ 64 Mô hình huỷ bỏ chứng chỉ .................................................................. 64 Mô hình kết hợp hệ thống cung cấp chứng chỉ số cùng các giải pháp đảm bảo an toàn hệ thống mạng nội bộ .............................................. 67 Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai -7- MỞ ĐẦU Trong một vài năm lại đây, hạ tầng truyền thông IT càng ngày càng được mở rộng khi người sử dụng dựa trên nền tảng này để truyền thông và giao dịch với các đồng nghiệp, các đối tác kinh doanh cũng như việc khách hàng dùng email trên các mạng công cộng. Hầu hết các thông tin nhạy cảm và quan trọng được lưu trữ và trao đổi dưới hình thức điện tử trong các cơ quan văn phòng, doanh nghiệp. Sự thay đổi trong các hoạt động truyền thông này đồng nghĩa với việc cần phải có biện pháp bảo vệ đơn vị, tổ chức, doanh nghiệp của mình trước các nguy cơ lừa đảo, can thiệp, tấn công, phá hoại hoặc vô tình tiết lộ các thông tin đó. Cơ sở hạ tầng mã khoá công khai (PKI - Public Key Infrastructure) cùng các tiêu chuẩn và công nghệ ứng dụng của nó có thể được coi là một giải pháp tổng hợp và độc lập có thể sử dụng để giải quyết vấn đề này. PKI bản chất là một hệ thống công nghệ vừa mang tính tiêu chuẩn, vừa mang tính ứng dụng được sử dụng để khởi tạo, lưu trữ và quản lý các chứng chỉ số hay ta còn gọi là chứng thực điện tử (digital certificate) cũng như các khoá công cộng (khoá công khai) và cá nhân (khoá riêng). Sáng kiến PKI ra đời năm 1995, khi mà các chính phủ và các tổ chức công nghiệp xây dựng các tiêu chuẩn chung dựa trên phương pháp mã hoá để hỗ trợ một hạ tầng bảo mật trên mạng Internet. Tại thời điểm đó, mục tiêu được đặt ra là xây dựng một bộ tiêu chuẩn bảo mật tổng hợp cùng các công cụ và lý thuyết cho phép người sử dụng cũng như các tổ chức (doanh nghiệp hoặc phi lợi nhuận) có thể tạo lập, lưu trữ và trao đổi các thông tin một cách an toàn trong phạm vi cá nhân và công cộng. Cho tới nay, những nỗ lực hoàn thiện PKI vẫn đang được đầu tư và thúc đẩy. Và để hiện thực hoá ý tưởng tuyệt vời này, các tiêu chuẩn cần phải được nghiên cứu phát triển ở các mức độ khác nhau bao gồm: mã hoá, truyền thông và liên kết, xác thực, cấp phép và quản lý. Nhiều chuẩn bảo mật trên mạng Internet, chẳng hạn Secure Sockets Layer/Transport Layer Security (SSL/TLS) và Virtual Private Network (VPN), chính là kết quả của sáng kiến PKI. Một minh chứng là thuật toán Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai -8- mã hoá phi đối xứng được xây dựng dựa trên phương pháp mã hoá và giải mã thông tin sử dụng hai khoá mã: khoá công khai (public key) và khoá riêng (private key). Trong trường hợp này, một người sử dụng có thể mã hoá tài liệu của mình với khoá riêng và sau đó giải mã thông tin đó bằng khoá công khai. Nếu một văn bản chứa các dữ liệu nhạy cảm và cần phải được truyền một cách bảo mật tới duy nhất một cá nhân, thông thường người gửi mã hoá tài liệu đó bằng mã khoá riêng của mình và người nhận sẽ giải mã sử dụng khoá công khai của người gửi. Khoá công khai này có thể được gửi kèm theo tài liệu này hoặc có thể được gửi cho người nhận trước đó. Mặt khác, do có khá nhiều thuật toán phi đối xứng nên các chuẩn công khai hiện có thường xuyên được nghiên cứu cải tiến để phù hợp với các thuật toán này. Hiện nay ở Việt Nam, việc nghiên cứu, ứng dụng và triển khai PKI nói chung và dịch vụ cung cấp chứng chỉ số nói riêng là vấn đề còn mang tính thời sự. Bằng việc sử dụng chứng chỉ và chữ ký số, những ứng dụng cho phép PKI đưa ra nhiều đặc tính đảm bảo an toàn thông tin cho người sử dụng. Luận văn này được thực hiện với mục đích tìm hiểu nghiên cứu về PKI, bao gồm các khái niệm tổng quan về mật mã, chứng chỉ số, các khái niệm cơ sở về PKI, chức năng và các thành phần PKI. Luận văn cũng tập trung vào việc tìm hiểu các mô hình tin cậy của PKI, ưu và nhược điểm của các mô hình này; các dịch vụ, giao thức và chuẩn định dạng liên quan đến việc xây dựng ứng dụng PKI, qua đó vận dụng để xây dựng một hệ thống cung cấp chứng chỉ số có khả năng ứng dụng cho cơ quan công tác và một số đơn vị khác. Với giới hạn những vấn đề tìm hiểu và nghiên cứu như trên, luận văn bao gồm 3 chương: Chương 1: Tổng quan về mật mã Giới thiệu các khái niệm về hệ mật mã đối xứng, hệ mật mã phi đối xứng hay còn được gọi là hệ mật mã khoá công khai; ưu và nhược điểm của các hệ mã này; khái niệm về chữ ký số và hàm băm, sơ đồ chữ ký số được sử dụng trong hệ thống thử nghiệm. Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai -9- Chương 2: Chứng chỉ số và hạ tầng mã khoá công khai Trình bày khái niệm chứng chỉ số và một số vấn đề liên quan; khái niệm PKI, chức năng và các thành phần của PKI; các mô hình tin tưởng của PKI, ưu và nhược điểm của các mô hình này. Chương 3: Xây dựng hệ thống cung cấp chứng chỉ số thử nghiệm Phân tích và xây dựng một hệ thống cung cấp chứng chỉ số theo mô hình, chức năng và các chuẩn đã được trình bày trong chương 1 và chương 2. Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai - 10 - CHƯƠNG 1 TỔNG QUAN VỀ MẬT Mà 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]. Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai - 11 - 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 Key k Key k Plaintext (X) E Ciphertext (Y) D Plaintext (X) Y = EK(X) 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. Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai - 12 - 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á bí mật. Độ 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á 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 toán học cụ thể (là bài toán Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai - 13 - 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á bí mật 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á riêng. 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á 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. Directory of Public Keys ALICE Public Key P of Bob Hình 1.2: Mã hoá thông điệp sử dụng khoá công khai P Private Key of Bob BOB Hình 1.3: Giải mã thông điệp sử dụng khoá riêng của người nhận Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai - 14 - 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 [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. Cho n = p*q với p,q là số nguyên tố lớn . Đặt P = C = Zn Chọn b nguyên tố cùng nhau với φ(n), φ(n) = (p-1)(q-1) Ta định nghĩa K = {(n, b, a): a*b ≡ 1 mod φ(n)} trong đó (n,b) là công khai, a là bí mật Với mỗi K = (n, b, a), mỗi x ∈ P, y ∈ C, định nghĩa: Hàm mã hoá: y = ek(x) = xb mod n Hàm giải mã: dk (x) = ya mod 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 Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai - 15 - 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. Secret Key S Public Key P of Bob Directory of Public Keys Hình 1.5: Mã hoá thông điệp sử dụng khoá bí mật S để mã thông điệp và khoá công khai P để mã khoá bí mật S Symmetric Key S Private Key P of Bob Hình 1.6: Giải mã thông điệp sử dụng khoá bí mật S để giải mã thông điệp và khoá riêng P để giải mã khoá bí mật S Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai - 16 - * Ư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á 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 đó Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai - 17 - 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á 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ý 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: ver k (x,y) = đúng, nếu y = sig k(x) sai, nếu y ≠ sig k(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.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. Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai - 18 - 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). §é dµi cè ®Þnh 128 víi MD hoÆc 160 bit víi SHA §é dµi tuú ý Th«ng ®iÖp (b¶n râ) B¨m th«ng ®iÖp x (sö dông thuËt to¸n MD hoÆc SHA) (v¨n b¶n ®¹i diÖn) h(x) z = h(x) (v¨n b¶n, ©m thanh, h×nh ¶nh…) B¶n b¨m Hình 1.8 a: Băm thông điệp. Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai - 19 - Ký sè B¶n b¨m (v¨n b¶n ®¹i diÖn) z (sö dông c¸c s¬ ®å ký sè RSA, Elgamal, DSS) B¶n ký sè y = sig K (z) sig K(z) Kho¸ bÝ mËt cña ng−êi göi Hình 1.8 b: Ký trên bản băm. Ng−êi göi (A) Th«ng ®iÖp, B¶n ký sè (x, y) Ng−êi nhËn (B) 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) Xây dựng hệ thống cung cấp chứng chỉ số dựa trên hạ tầng khoá công khai
- Xem thêm -