Đề tài Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA

Tài liệu Đề tài Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA: Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Mục lục Lời nói đầu.........................................................................................................................3 Chương I: Mật mã hóa khóa công khai và chữ ký số.........................................................5 I. Mật mã hóa khóa công khai........................................................................................5 1. Khái niệm...............................................................................................................5 2. Các thuật toán sử dụng trong mật mã khóa công khai...........................................5 2.1. Thuật toán RSA...............................................................................................5 2.2 Thuật toán thỏa thuận khóa Diffie-Hellman.....................................................6 II. Chữ ký số..............................................................................................................

pdf37 trang | Chia sẻ: hunglv | Lượt xem: 1701 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Mục lục Lời nói đầu.........................................................................................................................3 Chương I: Mật mã hóa khóa công khai và chữ ký số.........................................................5 I. Mật mã hóa khóa công khai........................................................................................5 1. Khái niệm...............................................................................................................5 2. Các thuật toán sử dụng trong mật mã khóa công khai...........................................5 2.1. Thuật toán RSA...............................................................................................5 2.2 Thuật toán thỏa thuận khóa Diffie-Hellman.....................................................6 II. Chữ ký số...................................................................................................................6 Chương II: Tổng quan về hạ tầng khóa công khai – PKI...................................................8 I. Hạ tầng khóa công khai – PKI....................................................................................8 1. Khái niệm PKI........................................................................................................8 2. Các khái niệm trong PKI......................................................................................10 2.1 Chứng chỉ.......................................................................................................10 2.2 Kho chứng chỉ................................................................................................11 2.3 Thu hồi chứng chỉ...........................................................................................11 2.4 Công bố và gửi thông báo thu hồi chứng chỉ.................................................11 2.5 Sao lưu và dự phòng khóa..............................................................................12 2.6 Cập nhật khóa tự động...................................................................................12 2.7 Lịch sử khóa...................................................................................................13 2.8 Chứng thực chéo............................................................................................13 2.9 Hỗ trợ chống chối bỏ......................................................................................13 2.10 Tem thời gian................................................................................................14 2.11 Phần mềm phía người dùng..........................................................................14 2.12 Chính sách của chứng chỉ.............................................................................14 3. Các thành phần của một hệ thống PKI.................................................................15 3.1 Tổ chức chứng thực (Certification Authority)................................................15 3.2 Trung tâm đăng ký (Registration Authorites).................................................16 3.3 Thực thể cuối (end entity)..............................................................................16 3.4 Hệ thống lưu trữ (Repositories)......................................................................16 4. Chức năng cơ bản PKI.........................................................................................17 4.1 Chứng thực (certification)..............................................................................17 4.2 Thẩm tra (validation)......................................................................................17 4.3 Một số chức năng khác ..................................................................................18 5. Mục tiêu của PKI..................................................................................................21 Chương III: Xây dựng hệ thống PKI với OpenCA..........................................................23 I. Giới thiệu về OpenCA..............................................................................................23 Nhóm nghiên cứu khoa học 1 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. II. Mô hình hệ thống PKI với OpenCA........................................................................23 1. RootCA.................................................................................................................23 1.1 Khởi tạo CA...................................................................................................25 1.2 Khởi tạo chứng chỉ cho người quản trị..........................................................30 2. SubCA..................................................................................................................35 3.RA .........................................................................................................................35 Chương IV: Đánh giá và định hướng phát triển...............................................................36 Kết luận............................................................................................................................37 Nhóm nghiên cứu khoa học 2 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Lời nói đầu Ngày nay, việc giao tiếp qua mạng Internet đang trở thành một nhu cầu cấp thiết. Các thông tin truyền trên mạng đều rất quan trọng, như mã số tài khoản, thông tin mật… Tuy nhiên, với các thủ đoạn tinh vi, nguy cơ bị ăn cắp thông tin qua mạng cũng ngày càng gia tăng. Hiện giao tiếp qua Internet chủ yếu dựa vào giao thức TCP/IP. Đây là giao thức cho phép các thông tin được gửi từ máy tính này tới máy tính khác thông qua một loạt các máy trung gian hoặc các mạng riêng biệt. Chính điều này đã tạo cơ hợi cho những kẻ trộm công nghệ cao có thể thực hiện các hành động phi pháp. Các thông tin truyền trên mạng có thể bị nghe trộm (Eavesdropping), giả mạo (Tampering), mạo danh (Impersonation)… Các biện pháp bảo mật hiện nay, chẳng hạn như dùng mật khẩu, đều không đảm bảo vì có thể bị nghe trộm hoặc bị dò ra nhanh chóng. Do vậy, để bảo mật, các thông tin truyền trên Internet này nay đều có xu hướng được mã hóa. Trước khi truyền qua mạng Internet, người gửi mã hóa thông tin, trong quá trình truyền, dù có “chặn” được các thông tin này, kẻ trộm cũng không thể đọc được vì đã bị mã hóa. Khi tới đích, người nhận sẽ sử dụng một công cụ đặc biệt để giải mã. Phương pháp mã hóa và bảo mật phổ biến nhất dang được thế giới áp dụng là chứng chỉ số (Digital Certificate). Với chứng chỉ số, người sử dụng có thể mã hóa thông tin một cách hiệu quả, chống giả mạo, xác thực, chống chỗi cãi nguồn gốc.. Một cách mã hóa dữ liệu đảm bảo an toàn đó là mã hóa khóa công khai. Để sử dụng được cách mã hóa này, cần phải có một chứng chỉ số từ tổ chức quản trị được gọi là nhà cung cấp chứng chỉ số CA (Certificate Authority ), nhóm nghiên cứu đã chọn đề tài nghiên cứu, xây dựng hệ thống hạ tầng khóa công khai PKI dựa trên OpenCA để làm rõ vấn đề trên . Để đạt được thành quả như ngày hôm nay, nhóm nghiên cứu xin chân thành cảm Nhóm nghiên cứu khoa học 3 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. ơn các thầy cô giáo đã luôn đào sâu kiến thức để truyền đạt cho chúng em , đặc biệt thầy giáo Hoàng Đức Thọ đã nhiệt tình giúp đõ chúng em để chúng em hoành thành tốt đề tài này . Trong quá trình thực hiện đề tài ,đề tài không tránh khỏi thiếu xót, kính mong sự chỉ bảo đóng góp nhiệt tình của thầy cô và các bạn để đề tài nghiên cứu được hoàn thiện tốt hơn . Xin chân thành cảm ơn . Nhóm sinh viên thực hiện Lê Quang Minh Trần Thanh Nga Lê Tâm Đắc Trịnh Đình Biên Nguyễn Trọng Dũng Nhóm nghiên cứu khoa học 4 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Chương I: Mật mã hóa khóa công khai và chữ ký số I. Mật mã hóa khóa công khai. 1. Khái niệm Mật mã hóa khóa công khai là một dạng mật mã hóa cho phép người sử dụng trao đổi các thông tin mật mã mà không cần phải trao đổi các khóa chung bí mật trước đó. Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân. Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai. Trong 2 khóa, một dùng để mã hóa và khóa còn lại dùng để giải mã. Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai. Hệ thống mật mã hóa khóa công khai vó thể sử dụng với các mục đích: • Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã được • Tạo chữ ký số: cho phép kiểm tra một văn bản có phải đã được tạo bởi một khóa bí mật nào đó không • Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin mật giữa 2 bên. 2. Các thuật toán sử dụng trong mật mã khóa công khai 2.1. Thuật toán RSA Trong mật mã học, RSA là một thuật toán mã hóa khóa công khai. Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã trong việc sử dụng khóa công khai. RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn. Thuật toán RSA có hai khóa: khóa công khai và khóa bí mật. Mỗi khóa là những số cố định sử dụng trong qúa trình mã hóa và giải mã. Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa. Những thông tin được mã hóa bằng khóa công khai chỉ có thể giải mã bằng khóa bí mật tương ứng. Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa bí mật mới có thể giải mã được. Nhóm nghiên cứu khoa học 5 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Tuy nhiên RSA có tốc độ thực hiện chậm hơn đáng kể so với DES và các thuật toán mã hóa đối xứng khác, Trên thực tế, người ta sử dụng một thuật toán mã hóa đối xứng nào đó để mã hóa văn bản cần gửi và chỉ sử dụng RSA để mã hóa khóa để giải mã. 2.2 Thuật toán thỏa thuận khóa Diffie-Hellman Đây là sơ đồ khóa công khai đầu tiên. Tuy nhiên, đó không phải là một sơ đồ mã hóa khóa công khai thực sự, mà chỉ dùng cho trao đổi khóa. Các khóa bí mật được trao đổi bằng cách sử dụng các trạm trung gian riêng tin cậy. Phương pháp này cho phép các khóa bí mật được truyền an toàn thông qua các môi trường không bảo mật. Tính bảo mật của trao đổi khóa Diffie-Hellman nằm ở chỗ: tính hàm mũ modul của một số nguyên tố là khá dễ dàng nhưng tính logarit rời rạc là rất khó. II. Chữ ký số. Chữ ký số là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video, … ) nhằm mục đích xác định người chủ của dữ liệu đó. Để sử dụng chữ ký số thì dữ liệu cần phải được mã hóa bằng hàm băm (dữ liệu được "băm" ra thành chuỗi, thường có độ dài cố định và ngắn hơn văn bản) sau đó dùng khóa bí mật của người chủ khóa để mã hóa, khi đó ta được chữ ký số. Khi cần kiểm tra, bên nhận giải mã (với khóa công khai) để lấy lại chuỗi gốc (được sinh ra qua hàm băm ban đầu) và kiểm tra với hàm băm của văn bản nhận được. Nếu 2 giá trị (chuỗi) này khớp nhau thì bên nhận có thể tin tưởng rằng dữ liệu xuất phát từ người sở hữu khóa bí mật Chữ ký số khóa công khai dựa trên nền tảng mật mã hóa khóa công khai. Để có thể trao đổi thông tin trong môi trường này, mỗi người sử dụng có một cặp khóa: khóa công khai và khóa bí mật. Khóa công khai được công bố rộng rãi còn khóa bí mật phải được giữ kín và không thể tìm được khóa bí mật nếu chỉ biết khóa công khai. Toàn bộ quá trình gồm 3 thuật toán: • Thuật toán tạo khóa • Thuật toán tạo chữ ký số • Thuật toán kiểm tra chữ ký số Nhóm nghiên cứu khoa học 6 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 1: Sơ đồ tạo và kiểm tra chữ ký số Nhóm nghiên cứu khoa học 7 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Chương II: Tổng quan về hạ tầng khóa công khai – PKI I. Hạ tầng khóa công khai – PKI. 1. Khái niệm PKI. 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 mà 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 kinh doanh nhạy cảm và quan trọng được lưu trữ và trao đổi dưới hình thức điện tử. Sự thay đổi trong các hoạt động truyền thông doanh nghiệp này đồng nghĩa với việc người sử dụng phải có biện pháp bảo 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ấu trúc hạ tầng PKI cùng các tiêu chuẩn và các 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. • Khả năng bảo mật (Secure): Đạt tiêu chuẩn quốc tế về bảo mật EAL4+, đáp ứng hầu hết các thiết bị HSM và Smartcard. • Khả năng mở rộng (Scalable): Dựa trên kiến trúc PKI hiện đại, được thiết kế theo mô hình có độ sẵn sàng cao, có khả năng mở rộng để cấp phát số lượng lớn chứng thư số một cách dễ dàng. • Khả năng sẵn sàng (Available): Tất cả chính sách, log, dữ liệu về chứng thư số và CRL được lưu trữ trên cơ sở dữ liệu tin cậy và bảo mật ví dụ: Oracle hệ cơ sở dữ liệu lớn nhất và đáng tin cậy nhất trên thế giới. • Khả năng mở, tương thích (Open): Được thiết kế để tuân thủ các tiêu chuẩn mở quốc tế như X509, PKIX, LDAP... • Khả năng kiểm soát bằng chính sách (Policy Driven): Hệ thống có khả năng áp dụng các chính sách khác nhau với việc đăng ký các loại chứng thư số khác nhau. • Khả năng linh động (Flexible): Có thể hỗ trợ nhiều phương thức đăng ký chứng thư số khác nhau: Web, Email, Face-to-face, CMP, SCEP... Trong mật mã học, hạ tầng khóa công khai (Public Key Infracstructure – PKI) là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực số) cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin. Cơ chế này cũng Nhóm nghiên cứu khoa học 8 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công khai và khóa bí mật. Các quá trình này thường được thực hiện bởi một phần mềm đặt tại trung tâm và các phần mềm phối hợp khác tại các địa điểm của người dùng. Khóa công khai thường được phân phối trong chứng thực khóa công khai. Khái niệm hạ tầng khóa công khai (PKI) thường được dùng để chỉ toàn bộ hệ thống bao gồm nhà cung cấp chứng thực số (Certificate Authority) cùng các cơ chế liên quan đồng thời với toàn bộ việc sử dụng các thuật toán mã hóa khóa công khai trong trao đổi thông tin. 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 thực điện tử (digital certificate) cũng như các mã khoá công cộng và cá nhân. 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 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. Quá trình nghiên cứu và phát triển PKI là một quá trình lâu dài và cùng với nó, mức độ chấp nhận của người dùng cũng tăng lên một cách khá chậm chạp. PKI có thể đảm bảo một cơ chế bảo mật và tổng hợp để lưu trữ và chia sẻ các tài sản trí tuệ cả trong và ngoài phạm vi công ty. Tuy nhiên, chi phí và/hoặc sự phức tạp của nó có thể gây ra những rào cản nhất định đối với khả năng ứng dụng. Đa phần các giao dịch truyền thông của doanh nghiệp với khách hàng, chính quyền và các đối tác khác đều được diễn ra một cách điện tử. Ngày nay, một giải pháp an ninh toàn diện cạnh tranh với PKI thực sự chưa được tìm thấy. Từ góc độ giải pháp công nghệ, điều này làm cho việc chọn lựa trở nên đơn giản hơn. Nhiều hãng khác cũng cung cấp các giải pháp PKI. Những tính năng này, cùng khả năng quản lý và liên kết PKI, đã được tích hợp vào hệ điều hành và các ứng dụng có liên quan. PKI là công nghệ xác thực đầu tiên và hoàn thiện nhất sử dụng phương pháp mã hoá dựa trên khoá bí mật và khoá công cộng. Tuy nhiên, PKI cũng bao gồm cả việc ứng dụng rộng rãi các dịch vụ bảo mật khác, bao gồm dịch vụ dữ liệu tin cậy, thống nhất dữ liệu về tổng thể và quản lý mã khoá. Nhóm nghiên cứu khoa học 9 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. 2. Các khái niệm trong PKI 2.1 Chứng chỉ Chứng chỉ là một tài liệu sử dụng chữ ký số kết hợp với khóa công khai với một định danh thực thể (cá nhân, tổ chức, máy chủ, dịch vụ, … ) Chứng chỉ không chứa bất kỳ một thông tin bí mật nào. Về cơ bản, chứng chỉ chứa những thông tin cần thiết như khóa công khai, chủ thể (người sở hữu), bên cấp chứng chỉ 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 bên cấp chứng chỉ. Người dùng muốn sử dụng chứng chỉ trước hết sẽ kiểm tra chữ ký số trong chứng chỉ. Nếu chữ ký đó hợp lệ thì có thể sử dụng chứng chỉ đó. Có nhiều lọai chứng chỉ, một trong số đó là: • Chứng chỉ khóa công khai X.509 • Chứng chỉ khóa công khai đơn giản (Simple Public Key Certificate – SPKC) • Chứng chỉ PGP • Chứng chỉ thuộc tính (Attribute Certificate – AC) Tất cả các loại chứng chỉ này đều có cấu trúc dạng riêng biệt. Hiện nay chứng chỉ khóa công khai X.509 được sử dụng phổ biến trong hầu hết các hệ thống PKI. Chứng chỉ X.509 được Hiệp hội viễn thông quốc tế (ITU) đưa ra lần đầu tiên năm 1998. Chứng chỉ này gồm 2 phần: phần đầu là những trường cơ bản cần thiết phải có trong chứng chỉ, phần thứ hai là phần chứa một số các trường phụ, hay còn gọi là trường mở rộng. Các trường mở rộng thường được dùng để xác định và đáp ứng những yêu cầu bổ sung của hệ thống. Cấu trúc chứng chỉ X.509 • Version : phiên bản của chứng chỉ • Serial Number: số serial của chứng chỉ, là định danh duy nhất của chứng chỉ, có giá trị nguyên. • Certificate Signature Algorithm: thuật toán CA sử dụng để ký chứng chỉ • Issuer: Tên chủ thể phát hành chứng chỉ • Validity: Thời hạn của chứng chỉ • Subject: Tên chủ thể của chứng chỉ • Subject Public Key Info ◦ Subject Public Key Algorithm: Thuật Nhóm nghiên cứu khoa học 10 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. toán sinh khóa công khai ◦ Subject's Public Key: Khóa công khai • Extensions: Phần mở rộng. 2.2 Kho chứng chỉ Chứng chỉ được cấp bởi CA kết hợp với khóa công khai với nhận dạng của thực thể B. Tuy nhiên nếu thực thể A không có khả năng xác định vị trí chứng chỉ này một cách dễ dàng thì anh ta cũng không có hiệu quả gì hơn so với việc chứng chỉ này chưa được tạo ra. Do đó, phải có một kho chứng chỉ trực tuyến (online repositories), quy mô lớn và mềm dẻo và phải được đặt ở vị trí mà A có thể xác định vị trí chứng chỉ mà anh ta cần để truyền thông an toàn. 2.3 Thu hồi chứng chỉ Trong một số trường hợp như khóa bị xâm hại, hoặc người sở hữu chứng chỉ thay đổi vị trí, cơ quan … thì chứng chỉ đã được cấp không có hiệu lực. Do đó, cần phải có một cơ chế cho phép người sử dụng chứng chỉ kiểm tra được trạng thái thu hồi chứng chỉ. X.509 cho phép kiểm tra chứng chỉ trong các trường hợp sau: • Chứng chỉ không bị thu hồi • Chứng chỉ đã bị CA cấp thu hồi • Chứng chỉ do một tổ chức có thẩm quyền mà CA ủy thác có trách nhiệm thu hồi chứng chỉ. 2.4 Công bố và gửi thông báo thu hồi chứng chỉ Danh sách huỷ bỏ chứng thực điện tử bao gồm các chứng thực đã hết hạn hoặc đã bị thu hồi. Tất cả các xác thực đều có thời hạn. Đây là một quy định mang tính thiết kế, tuy nhiên trước đây, rất khó thực hiện quy định này bởi việc gia hạn chứng thực thường phải được thông báo tới tất cả người dùng sử dụng chứng thực đó. Tính năng này bảo đảm rằng các chứng thực hết hạn sẽ được gia hạn tự động khi đến thời hạn. Với một số lý do nhất định cần thiết phải huỷ bỏ chứng thực chứ không chỉ đơn thuần là làm cho nó hết hạn. Công việc này có thể được thực hiện thông qua cơ chế danh sách huỷ bỏ chứng thực tự động. Các chủ thể có thẩm quyền cấp phép chứng thực (CA) thông thường sẽ làm công việc gửi các danh sách này tới người dùng, tuy nhiên họ cũng có thể uỷ nhiệm cho một bộ phận khác. Thông thường chứng chỉ sẽ hợp lệ trong khoảng thời gian có hiệu lực. Nhưng trong một số trường hợp chứng chỉ lại không hợp lệ trước thời gian hết hạn, ví dụ như: Nhóm nghiên cứu khoa học 11 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. • Khóa riêng của chủ thể bị xâm phạm • Thông tin chứa trong chứng chỉ bị thay đổi • Khóa riêng của CA cấp chứng chỉ bị xâm phạm Trong những trường hợp này cần có một cơ chế để thông báo đến những người sử dụng khác Một trong những phương pháp để thông báo đến người sử dụng về trạng thái của chứng chỉ là công bố CRLs định kỳ hoặc khi cần thiết. Ngoài ra, có một số cách lựa chọn khác để thông báo đến người sử dụng như dùng phương pháp trực tuyến Online Certificate Status Protocol CRLs (Certificate Revocation Lists) là cấu trúc dữ liệu được ký như chứng chỉ người sử dụng. CRLs chứa danh sách các chứng chỉ đã bị thu hồi và những thông tin cần thiết khác của người sử dụng. CRL thường do một CA cấp. Tuy nhiên CRL cũng có thể được sử dụng để cung cấp thông tin cho nhiều CA nếu nó được định nghĩa như một CRL gián tiếp. 2.5 Sao lưu và dự phòng khóa Trong bất kỳ một môi trương PKI đang hoạt động, khả năng làm mất hoặc sai các mã khoá riêng của người dùng là rất lớn, do đó cần phải có một cơ chế lưu trữ dự phòng và khôi phục mã khoá. Không có khoá riêng, việc khôi phục tài liệu là không thể được xét trên thực tế. Nguyên nhân có thể là do: • Quên mật khẩu: Khoá bí mật của người dùng vẫn còn về mặt vật lý nhưng không thể truy cập được. • Phương tiện bị hỏng hóc: Ví dụ như đĩa cứng bị hỏng hoặc thẻ thông minh bị gãy. • Sự thay thế của phương tiện: Hệ điều hành được tải lại (ghi đè lên các giấy tờ uỷ nhiệm cục bộ) hoặc một mô hình máy tính cũ hơn được thay thế bằng một mô hình máy tính mới hơn và các giấy tờ uỷ nhiệm không được chuyển trước khi đĩa cũ bị format. Giải pháp đưa ra là thực hiện việc sao lưu và dự phòng khóa bí mật. Việc sao lưu và dự phòng khóa mà cần thiết, nó tạo nên một phần mở rộng trong định nghĩa PKI 2.6 Cập nhật khóa tự động Một chứng chỉ có thời gian sống hữu hạn. Khi chứng chỉ bị hết hạn sẽ được thay thế bằng một chứng chỉ mới. Thủ tục này được gọi là cập nhật khoá hay cập nhật chứng chỉ. Vấn đề đặt ra là người dùng PKI sẽ thường cảm thấy bất tiện khi phải cập nhật khoá thủ công và thông thường thì họ sẽ không nhớ thời hạn hết hạn của chứng chỉ hoặc khi thực hiện cập nhật khoá khi đã hết hạn thường gặp phải nhiều thủ tục phức tạp hơn. Giải pháp đưa ra là xây dựng PKI theo cách mà toàn bộ khoá hoặc chứng chỉ sẽ Nhóm nghiên cứu khoa học 12 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. được cập nhật hoàn toàn tự động mà không cần có sự can thiệp nào của người dùng. Mỗi khi chứng chỉ của người sử dụng được dùng đến cho một mục đích bất kỳ, thời gian hợp lệ của nó sẽ được kiểm tra. Khi sắp hết hạn thì hoạt động làm mới chứng chỉ sẽ diễn ra, chứng chỉ mới sẽ được tạo ra thay thế chứng chỉ cũ và giao dịch của được yêu cầu của người dùng sẽ tiếp tục diễn ra. Bởi vì quá trình cập nhật khoá tự động là nhân tố sống còn đối với PKI hoạt động trong nhiều môi trường, do đó, nó tạo nên một phần định nghĩa của PKI. 2.7 Lịch sử khóa Trong suốt quá trình sử dụng PKI, một người dùng có thể có nhiều chứng chỉ cũ và có ít nhất một chứng chỉ hiện tại. Tập hợp các chứng chỉ này với các khoá bí mật tương ứng được gọi là lịch sử khoá (key history) hay còn gọi là lịch sử khoá và chứng chỉ. Cũng giống như sự cập nhật khoá, quản lý lịch sử khoá phải được thực hiện và duy trì tự động trong PKI. PKI cần phải nắm giữ được tất cả các khoá trong lịch sử, thực hiện sao lưu và dự phòng tại vị trí thích hợp. 2.8 Chứng thực chéo Trong môi trường thực tế, không phải chỉ có một PKI toàn cục duy nhất hoạt động mà thực tế có rất nhiều PKI được triển khai, hoạt động, phục vụ trong các môi trường và cộng đồng người dùng khác nhau. Khi các PKI hoạt động phối hợp, liên kết với nhau, sẽ nảy sinh vấn đề là làm thế nào để đảm bảo an toàn truyền thông giữa các cộng đồng người dùng trong các PKI? Khái niệm chứng thực chéo đã nảy sinh trong môi trường PKI để giải quyết nhu cầu này nhằm tạo ra mối quan hệ tin tưởng giữa các PKI không có quan hệ với nhau trước đó. Chứng thực chéo là cơ chế cho phép người dùng của một cộng đồng PKI này xác nhận tính hợp lệ chứng chỉ của người dùng khác trong một cộng đồng PKI khác. 2.9 Hỗ trợ chống chối bỏ Trong môi trường hoạt động của PKI, mỗi hành động của người dùng luôn gắn với định danh của họ. Nếu một người dùng ký số văn bản của mình, thì có nghĩa người dùng đó khẳng định rằng văn bản đó xuất phát từ phía mình. PKI cần phải đảm bảo rằng người dùng đó không thể chối bỏ trách nhiệm mà mình đã thực hiện. Cơ chế này được gọi là cơ chế hỗ trợ chống chối bỏ. Để thực hiện được cơ chế hỗ trợ chống chối bỏ, PKI cần phải cung cấp một vài các bằng chứng kỹ thuật được yêu cầu, như là xác thực nguồn gốc dữ liệu và chứng thực thời gian mà dữ liệu được ký. Nhóm nghiên cứu khoa học 13 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. 2.10 Tem thời gian Một nhân tố quan trọng trong việc hỗ trợ các dịch vụ chống chối bỏ là sử dụng tem thời gian an toàn (secure time stamping) trong PKI. Nghĩa là nguồn thời gian phải được tin cậy và giá trị thời gian phải được truyền đi một cách an toàn. Do đó cần phải có một nguồn thời gian có thể tin tưởng được cho tất cả người dùng trong PKI. 2.11 Phần mềm phía người dùng Trong mô hình PKI, các server sẽ thực hiện những nhiệm vụ sau: • CA cung cấp các dịch vụ chứng chỉ • Kho chứng chỉ sẽ lưu giữ các thông tin chứng chỉ và hủy bỏ chứng chỉ • Máy chủ sao lưu và dự phòng sẽ quản lý lịch sử khóa một cách phù hợp • Máy chủ tem thời gian sẽ kết hợp các thông tin thời gian có thể tin tưởng được với các tài liệu văn bản Server không thể thực hiện bất kỳ điều gì cho các máy khách nếu như máy khách không đưa ra các yêu cầu dịch vụ. Do đó nhiệm vụ của máy khách sẽ là • Máy khách đưa ra yêu cầu các dịch vụ chứng thực • Máy khách yêu cầu chứng chỉ và xử lý các thông tin hủy bỏ chứng chỉ có liên quan • Máy khách phải biết lịch sử khóa và phải biết khi nào cần yêu cầu cập nhật khóa hoặc hủy bỏ khóa • Máy khách phải biết khi nào nó cần phải yêu cầu tem thời gian trên văn bản Phần mềm phía client là một thành phần thiết yếu của PKI tích hợp đầy đủ tính năng trên. 2.12 Chính sách của chứng chỉ Chính sách có định danh duy nhất và định danh này được đăng ký để người cấp và người sử dụng chứng chỉ có thể nhận ra và tham chiếu đến. Một chứng chỉ có thể được cấp theo nhiều chính sách. Một chính sách chứng chỉ cũng có thể được hiểu là việc giải thích những yêu cầu và giới hạn liên quan đến việc sử dụng chứng chỉ được công bố theo những chính sách này. Chính sách chứng chỉ - Certificate Policies (CP) được chứa trong trường mở rộng chuẩn của chứng chỉ X.509. Bằng việc kiểm tra trường này trong chứng chỉ, hệ thống sử dụng chứng chỉ có thể xác định được một chứng chỉ cụ thể có thích hợp cho mục đích sử dụng hay không. Nhóm nghiên cứu khoa học 14 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. 3. Các thành phần của một hệ thống PKI Một hệ thống PKI gồm các thành phần sau • Certificate Authorites (CA): cấp và thu hồi chứng chỉ. • Registration Authorites (RA): gắn kết giữa khóa công khai và định danh của người giữ chứng chỉ • Clients: Người sử dụng cuối hoặc hệ thống là chủ thể của chứng chỉ PKI. • Repositories: Hệ thống lưu trữ chứng chỉ và danh sách các chứng chỉ bị thu hồi. Cung cấp cơ chế phân phối chứng chỉ và CRLs đến các thực thể cuối. Các thành phần PKI và các mối quan hệ giữa chúng được chỉ ra như trong hình sau. Đây là mô hình kiến trúc PKI do PKIX đưa ra Hình 3: Các thành phần PKI 3.1 Tổ chức chứng thực (Certification Authority) Trong hạ tầng cơ sở khoá công khai, chứng chỉ có vai trò gắn kết giữa định danh với khoá công. Sự gắn kết này thể hiện trong dạng cấu trúc dữ liệu được ký số được đề cập đến như chứng chỉ đã được thảo luận ở phần trước. Một certificate authority (CA) là một thực thể PKI có trách nhiệm cấp chứng chỉ cho các thực thể khác trong hệ thống. Tổ chức chứng thực - CA cũng được gọi là bên thứ ba được tin tưởng vì người sử Nhóm nghiên cứu khoa học 15 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. dụng cuối tin tưởng vào chữ ký số của CA trên chứng chỉ trong khi thực hiện những hoạt động mã hoá khoá công khai cần thiết CA thực hiện chức năng xác thực bằng cách cấp chứng chỉ cho các CA khác và cho thực thể cuối (người giữ chứng chỉ) trong hệ thống. Nếu CA nằm ở đỉnh của mô hình phân cấp PKI và chỉ cấp chứng chỉ cho những CA ở mức thấp hơn thì chứng chỉ này được gọi là chứng chỉ gốc “root certificate”. 3.2 Trung tâm đăng ký (Registration Authorites) Mặc dù CA có thể thực hiện những chức năng đăng ký cần thiết, nhưng đôi khi cần có thực thể độc lập thực hiện chức năng này. Thực thể này được gọi là “registration authority” - trung tâm đăng ký. Ví dụ khi số lượng thực thể cuối trong miền PKI tăng lên và số thực thể cuối này được phân tán khắp nơi về mặt địa lý thì việc đăng ký tại một CA trung tâm trở thành vấn đề khó giải quyết. Để giải quyết vấn đề này cần thiết phải có một hoặc nhiều RAs (trung tâm đăng ký địa phương). Mục đích chính của RA là để giảm tải công việc của CA. Chức năng thực hiện của một RA cụ thể sẽ khác nhau tuỳ theo nhu cầu triển khai PKI nhưng chủ yếu bao gồm những chức năng sau: • Xác thực cá nhân, chủ thể đăng ký chứng chỉ • Kiểm tra tính hợp lệ của thông tin do chủ thể cung cấp. • Xác nhận quyền của chủ thể đối với những thuộc tính chứng chỉ được yêu cầu. • Kiểm tra xem chủ thể có thực sự sở hữu khóa riêng đang được đăng ký hay không - điều này thường được đề cập đến như sự chứng minh sở hữu (proof of possesion – POP). • Tạo cặp khóa bí mật, công khai • Phân phối bí mật được chia sử đến thực thể cuối (ví dụ: khóa công khai của CA) • Thay mặt chủ thể thực thể cuối khởi tạo quá trình đăng ký với CA • Lưu trữ khóa riêng • Khởi sinh quá trình khôi phục khóa • Phân phối thẻ bài vật lý (thẻ thông minh) 3.3 Thực thể cuối (end entity) 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ố). 3.4 Hệ thống lưu trữ (Repositories) Chứng chỉ (khoá công khai) và thông tin thu hồi chứng chỉ phải được phân phối Nhóm nghiên cứu khoa học 16 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. sao cho những người cần đến chứng chỉ đều có thể truy cập và lấy được. Có 2 phương pháp phân phối chứng chỉ: • Phân phối cá nhân: Đây là cách phân phối cơ bản nhất. Trong phương pháp này thì mỗi cá nhân sẽ trực tiếp đưa chứng chỉ của họ cho người dùng khác. Việc này có thể thực hiện theo một số cơ chế khác nhau. Chuyển giao bằng tay chứng chỉ được lưu trong đĩ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 chỉ trong email để 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ý • 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 chỉ (và thông tin thu hồi chứng chỉ) là công bố các chứng chỉ rộng rãi, các chứng chỉ 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ữ: ◦ X.500 Directory System Agents (DSAs). ◦ Lightweight Directory Access Protocol (LDAP ) Server ◦ Online Certificate Status Protocol (OCSP) Responders ◦ Domain name System (DNS) và Web servers ◦ File Transfer Protocol (FTP) Servers và Corporate Databases 4. Chức năng cơ bản 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. 4.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: • Tổ chức chứng thực (CA) tạo ra cặp khoá công khai, khoá bí mật và tạo ra chứng chỉ cho phần khoá công của cặp khoá. • Người sử dụng tự tạo cặp khoá và đưa khoá công cho CA để CA tạo chứng chỉ cho khoá công đó. Chứng chỉ đả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. 4.2 Thẩm tra (validation) Quá trình xác định liệu chứng chỉ đã đư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 chỉ. Nhóm nghiên cứu khoa học 17 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Quá trình này bao gồm một số bước sau: • Kiểm tra xem liệu có đúng là CA được tin tưởng đã ký số lên chứng chỉ hay không (xử lý theo đường dẫn chứng chỉ). • Kiểm tra chữ ký số của CA trên chứng chỉ để kiểm tra tính toàn vẹn. • Xác định xem chứng chỉ còn ở trong thời gian có hiệu lực hay không. • Xác định xem chứng chỉ đã bị thu hồi hay chưa. • Xác định xem chứng chỉ đang được sử dụng có đúng mục đích, chính sách, giới 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 chỉ hay mở rộng việc sử dụng khoá). 4.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. • Đă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 chỉ. 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 chỉ đượ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 chỉ 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ử. • 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 chỉ 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. • Khôi phục cặp khóa: 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á riêng 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á bí mật 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 Nhóm nghiên cứu khoa học 18 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. 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á. • Tạo khóa: 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á bí mật 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. • Hạn sử dụng và cập nhật khóa: Một trong những thuộc tính của chứng chỉ là thời gian hiệu lực. Thời gian hiệu lực của mỗi cặp khoá được xác định theo chính sách sử dụng. Các cặp khoá của người sử dụng nên được cập nhật khi có thông báo về ngày hết hạn. Hệ thống sẽ thông báo về tình huống này trong một thời gian nhất định. Chứng chỉ mới sẽ được người cấp công bố tự động sau thời gian hết hạn. • Xâm hại khóa: Đây là trường hợp không bình thường nhưng nếu xảy ra thì khoá mới sẽ được công bố và tất cả người sử dụng trong hệ thống sẽ nhận thấy điều này. Xâm hại đến khoá của CA là một trường hợp đặc biệt. Và trong trường hợp này thì CA sẽ công bố lại tất cả các chứng chỉ với CA-certificate mới của mình • Thu hồi: Chứng chỉ được công bố sẽ được sử dụng trong khoảng thời gian có hiệu lực Nhưng trong trường hợp khoá bị xâm hại hay có sự thay đổi trong thông tin của chứng chỉ thì chứng chỉ mới sẽ được công bố, chứng chỉ cũ sẽ bị thu hồi. • Công bố và gửi thông báo thu hồi chứng chỉ: Một chứng chỉ được cấp cho người sử dụng cuối sẽ được gửi đến cho người nắm giữ và hệ thống lưu trữ để có thể truy cập công khai. Khi một chứng chỉ bị thu hồi vì một lý do nào đó, tất cả người sử dụng trong hệ thống sẽ được thông báo về việc này. Phương thức để công bố và gửi những thông báo thu hồi đã được đề cập chi tiết trong nội dung về chứng chỉ số ở phần trên. • Xác thực chéo: Xác thực chéo là một trong những đặc tính quan trọng nhất của hệ thống PKI. Chức năng này được sử dụng để nối hai miền PKI khác nhau. Xác thực chéo là cách để thiết lập môi trường tin cậy giữa hai CA dưới những điều kiện nhất định. Những điều kiện này được xác định theo yêu cầu của người sử dụng. Những người sử dụng ở các miền khác nhau chỉ có thể giao tiếp an toàn với người khác sau khi việc xác thực chéo giữa các CA thành công. Xác thực chéo được thiết lập bằng cách tạo chứng chỉ CA xác thực lẫn nhau. Nếu CA-1 và CA-2 muốn thiết lập xác thực chéo thì cần thực hiện một số bước sau: ◦ CA-1 công bố CA – certificate cho CA-2. ◦ CA-2 công bố CA – certificate cho CA-1. Nhóm nghiên cứu khoa học 19 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. ◦ CA-1 và CA-2 sẽ sử dụng những trường mở rộng xác định trong chứng chỉ để đặt những giới hạn cần thiết trong CA-certificate. Việc xác thực chéo đòi hỏi phải có sự kiểm tra cẩn thận các chính sách PKI. Nếu cả hai đều có cùng hoặc tương tự chính sách của nhau thì việc xác thực chéo sẽ có ý nghĩa. Ngược lại, sẽ có những tình huống không mong muốn xuất hiện trong trường hợp chính sách PKI của một miền trở thành một phần của miền khác. Trường mở rộng “Policy mapping”, “name constraints” và “policy constraints” của chứng chỉ X.509 chuẩn được sử dụng trong xác thực chéo để đưa ra một số giới hạn trong môi trường tin cậy. • Thẩm quyền thứ cấp: cho phép CA gốc hạn chế tính năng của các CA thứ cấp. tính năng này để quyết định dạng CA được phát hành và các dịch vụ khác mà CA đó có thể tạo ra cho khách hàng. Một khi đã có một cơ chế phân cấp trong tổ chức, xác định các đối tác kinh doanh chính và bắt đầu đưa vào cấu trúc bảo mật. Tạo ra các chính sách bảo mật trong nội bộ tổ chức trong đó định nghĩa các tài sản cần bảo vệ và những cách thức và công cụ mà nhân viên sẽ sử dụng để thực hiện điều này. Thảo ra các quy trình hỗ trợ người sử dụng trong các vấn đề liên quan tới phát hành, gia hạn và phục hồi các chứng thực và mã khoá, sau đó phân công trách nhiệm phát triển và duy trì tổng thể hệ thống PKI cho những bộ phận có chức năng. Một giải pháp PKI hoàn chỉnh và phù hợp sẽ đảm bảo khả năng bảo mật cao nhất cho các tài sản kỹ thuật số trong doanh nghiệp Nhóm nghiên cứu khoa học 20 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 4: Đường dẫn chứng chỉ chéo 5. Mục tiêu của PKI. PKI cho phép những người tham gia xác thực lẫn nhau và sử dụng thông tin từ các chứng thực khóa công khai để mật mã hóa và giải mã thông tin trong quá trình trao đổi. Thông thường. PKI bao gồm phần mềm máy chủ (server), phần mềm máy khách (client), phần cứng (như thẻ thông minh) và các quy trình hoạt động liên quan. Người sử dụng cũng có thể ký các văn bản điện tử với khóa bí mật mình và mọi người đều có thể kiểm tra với khóa công khai của người đó. PKI cho phép các giao dịch điện tử được diễn ra đảm bảo tính bí mật, toàn vẹn và xác thực lẫn nhau mà không cần phải trao đổi các thông tin mật từ trước. Mục tiêu chính của PKI là cung cấp khóa công khai và xác định mối liên hệ giữa Nhóm nghiên cứu khoa học 21 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. khóa và định dạng người dùng. Nhờ vậy người dùng có thể sử dụng trong một số ứng dụng như: • Mã hóa email hoặc xác thực người gửi email. • Mã hóa hoặc xác thực văn bản. • Xác thực người dùng ứng dụng. • Xác giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE, SSL): trao đổi khóa bằng khóa bất đối xứng, còn mã hóa bằng khóa đối xứng. Nhóm nghiên cứu khoa học 22 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Chương III: Xây dựng hệ thống PKI với OpenCA. I. Giới thiệu về OpenCA Cơ sở hạ tầng khoá công khai là một trong những nhu cầu thiết yếu của tương lai. Nhưng vấn đề là hầu hết các ứng dụng có thể được đảm bảo an toàn bằng chứng chỉ và khoá thì lại rất khó và đắt đề cài đặt PKI, lý dó là phần mềm trung tâm tin cậy có tính linh hoạt thì lại rất đắt. Đây là điểm khởi đầu của OpenCA. Mục đích là sản phẩm của hệ thống trung tâm tin cậy nguồn mở để hỗ trợ cộng đồng với các giải pháp tốt, rẻ (chi phí hợp lý) và mang tính xu hướng trong tương lai. Dự án OpenCA được bắt đầu vào năm 1998. Ý tưởng OpenCA ban đầu được phát triển bởi Massimiliano Pala. Mã nguồn ban đầu của dự án được viết bởi đoạn script rất dài. Khi phiên bản đầu tiên của phần mềm được xây dựng thì dự án OpeSL vẫn có tên là SSLeay. Rất nhiều chức năng vẫn còn lỗi và nhiều thứ khác nữa đều đang bị bỏ qua. Phiên bản đầu tiên của OpenCA rất đơn giản, nhiều chức năng được xây dựng chủ yếu chỉ được dùng để cấp phát chứng chỉ, CRL và các phương thức cài đặt thì khá đơn sơ, không có tính tiện dụng cho bất kỳ tiện ích cấu hình nào, đoạn script chỉ có thể tương thích với bash. Các phiên bản tiếp theo được bổ sung thêm nhiều tính năng hơn cho dự án và do đó phiên bản 0.109 đã bao gồm giao diện cho server của CA, RA và Pub. Từ lúc bắt đầu dự án và từ phát hành phiên bản đầu tiên, đã có một lượng lớn sự tham gia của cộng đồng Internet đóng góp vào sự phát triển của dự án. Hiện nay OpenCA đã phát triển lên bản OpenCA PKI v1.1.0 (codename Samba), bên cạnh đó dự án LibPKI cũng đã đưa ra phiên bản LibPKI v0.5.1 (codename Zoiberg). II. Mô hình hệ thống PKI với OpenCA Trong bài báo cáo này chúng em xây dựng một hệ thống PKI với đầy đủ các thành phần như: RootCA, SubCA, RA và Repositories. 1. RootCA RootCA được xây dựng trên hệ điều hành CentOS, với các thành phần cần thiết như: apache, perl, openca-tools, openca-base, và một số thư viện cần thiết cho việc cài đặt. Khi cài đặt gói openca-base chúng ta sẽ chỉ thực hiện chế độ install-offline. Nhóm nghiên cứu khoa học 23 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Sau khi cài đặt xong RootCA. Chúng ta truy cập vào trang web để cấu hình và quản lý RootCA theo địa chỉ https://rootca.actvn.net/pki/ca Hình 5: Giao diện quản lý và cấu hình RootCA. Trong mục PKI Init & Config chúng ta thực hiện việc khởi tạo cơ sở dữ liệu, khởi tạo khóa riêng cho CA, tạo chứng chỉ CA , … Hình 6: 3 bước thiết lập CA Nhóm nghiên cứu khoa học 24 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. 1.1 Khởi tạo CA. Hình 7: Khởi tạo cơ sở dữ liệu, khóa CA, ... • Khởi tạo cơ sở dữ liệu: Bước này sẽ tạo ra cơ sở dữ liệu dựa vào các tham số đã thiết lập trong quá trình cài đặt openca. Nếu đã có 1 cơ sở dữ liệu trước đó thì ta có thể chọn Upgrade Database để nâng cấp cơ sở dữ liệu, hoặc Re-init Database để khởi tạo lại cơ sở dữ liệu ( lưu ý: nếu chọn thiết lập này sẽ làm mất cơ sở dữ liệu hiện có ). • Tạo khóa bí mật cho CA: Bước này thực hiện sinh khóa bí mật cho CA. Để thực hiện việc sinh khóa bí mật chúng ta phải chọn thuật toán khóa, thuật toán mã hóa khóa và độ dài của khóa. Nhóm nghiên cứu khoa học 25 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 8: Tạo khóa bí mật cho CA. Sau khi chọn xong các thuật toán và độ dài khóa, hệ thống sẽ sinh ra 1 khóa bí mật cho CA như hình dưới đây. Hoặc có thể xem lại khóa được lưu trong máy theo đường dẫn sau: /opt/OpenCA/var/openca/crypto/keys/cakey.pem ( /opt/OpenCA/ là thư mục cài đặt OpenCA được thiết lập trong quá trình cài đặt ). Nhóm nghiên cứu khoa học 26 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 9: Khóa bí mật của CA. • Tạo yêu cầu cấp chứng chỉ cho CA: Sau khi tạo khóa bí mật cho CA xong, chúng ta tạo 1 yêu cầu xin cấp chứng chỉ cho CA. Hình 10: Tạo yêu cầu cấp chứng chỉ cho CA Nhóm nghiên cứu khoa học 27 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 11: Nội dung yêu cầu chứng chỉ Hình 12: Lựa chọn Self Signed CA để tự chứng thực CA. Nhóm nghiên cứu khoa học 28 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. • Serial Number: số seri của chứng chỉ. Do đây là chứng chỉ đầu tiên cấp cho CA nên chúng ta để Serial Number là 00. • Certificate Validity: Thời hạn sử dụng chứng chỉ, mặc định là 730 ngày (2 năm). Chúng ta có thể thay đổi giá trị này tùy theo nhu cầu sử dụng hệ thống. • Extensions: Phần mở rộng, để ký chứng chỉ cho CA, chúng ta lựa chọn Self Signed CA. Với lựa chọn này hệ thống sẽ tự ký vào yêu cầu này để tạo ra chứng chỉ CA cho nó. Sau khi lựa chọn xong hệ thống sẽ tạo chứng chỉ như hình dưới đây. Chúng ta cũng có thể xem lại chứng chỉ tại /opt/OpenCA/var/openca/crypto/certs/00.pem Hình 13: Chứng chỉ của CA. • Xây dựng lại chuỗi chứng chỉ CA: Sau khi xây dựng xong SubCA chúng ta thêm chứng chỉ của SubCA vào thư mục /opt/OpenCA/var/openca/crypto/chain/ rồi chọn Rebuild CA Chain. Nhóm nghiên cứu khoa học 29 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 14: Xây dựng lại chuỗi chứng chỉ CA. 1. 2 Khởi tạo chứng chỉ cho người quản trị. Sau khi đã thiết lập CA xong, chúng ta thực hiện việc khởi tạo chứng chỉ cho người dùng đầu tiên (khuyến cáo nên khởi tạo cho người quản trị). Hình 15: Tạo chứng chỉ cho người quản trị. Nhóm nghiên cứu khoa học 30 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 16: Khai báo các thông tin cơ bản. Hình 17: Khai báo chi tiết chứng chỉ. Lựa chọn chứng chỉ theo mẫu User. Mức độ bảo mật, chế độ sinh khóa ... Nhóm nghiên cứu khoa học 31 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 18: Khai báo mã PIN. Chọn lược đồ ký, độ mạnh của khóa và đặt mã PIN. Mã PIN rất quan trọng, mỗi chứng chỉ có 1 mã PIN duy nhất. Hình 19: Thỏa thuận người dùng. Nhóm nghiên cứu khoa học 32 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 20: Tạo yêu cầu. Sau khi tạo xong yêu cầu, chúng ta phải vào mục Issue the certificate để chấp thuận yêu cầu trên. Trong đây chúng ta có thể sửa lại yêu cầu, tạo chứng chỉ hoặc xóa bỏ yêu cầu này. Hình 21: Ký chứng chỉ. Nhóm nghiên cứu khoa học 33 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 22: Chứng chỉ của người dùng. Sau khi đã Issue certificate chúng ta có thể lấy chứng chỉ về máy bằng cách chọn mục Handle the certificate. Tại đây chúng ta có thể thấy chứng chỉ được cấp cho người dùng có serial number là 53:CF:7A:A8:D6:E7:1E:42:3D:01( chứng chỉ được lưu trong hệ thống tại /opt/OpenCA/var/openca/crypto/certs/53cf7aa8d6e71e423d01.pem). Chọn More info để xem chi tiết thông tin về chứng chỉ và lấy chứng chỉ về máy người dùng. Nhóm nghiên cứu khoa học 34 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Hình 23: Download chứng chỉ về máy. 2. SubCA Quá trình cài đặt SubCA tương tự như cài đặt RootCA. Chúng ta cũng phải tạo khóa bí mật cho SubCA. Khởi tạo 1 yêu cầu cấp phát chứng chỉ. Yêu cầu này sẽ được gửi cho RootCA để RootCA ký và chứng thực đây là 1 sub CA. Chứng chỉ sau khi được ký xong sẽ gửi trả lại cho SubCA. 3.RA Quá trình cài đặt RA cũng tương tự như RootCA và SubCA. Có điểm khác là khi cài đặt gói openca-base chúng ta chọn chế độ cài đặt là install-online. Sau khi cài đặt xong RA. Người dùng sẽ đăng ký cấp chứng thư trực tiếp trên RA, sau đó các yêu cầu cấp chứng thư sẽ được gửi đến cho SubCA để SubCA ký. Các chứng thư sau khi được SubCA ký xong sẽ được gửi trả lại cho RA để người dùng lấy về, đồng thời các chứng thư này cũng sẽ được công bố trên hệ thống kho lưu trữ (repositories) Nhóm nghiên cứu khoa học 35 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Chương IV: Đánh giá và định hướng phát triển Trong thời gian thực hiện đề tài, nhóm chúng em đã nghiên cứu và tìm hiểu về hệ thống PKI dựa trên nền tảng mã nguồn mở OpenCA và thu được một số kết quả sau: Về lý thuyết nhóm nghiên cứu đã tìm hiểu và nắm vững được các vấn đề sau • Mật mã hóa khóa công khai • Chữ ký số • Các kiến thức cơ bản về cơ sở hạ tầng khóa công khai - PKI (một mô hình được sử dụng rất nhiều cho việc truyền thông qua mạng Internet như gửi thư an toàn, chứng thực web an toàn, … ) Về mặt thực nghiệm: nhóm đã thực hiện được các kết quả sau • Xây dựng hệ thống PKI với OpenCA. • Thử nghiệm xin cấp phát chứng thư và cấp phát chứng thư. • Lưu trữ chứng thư trên kho lưu trữ repositories. Do giới hạn về thời gian, cơ sở vật chất. Bên cạnh những mặt đạt được như trên thì nhóm vẫn còn một số mặt hạn chế: • Mô hình nhỏ chỉ phục vụ cho việc nghiên cứu, có khả năng đáp ứng cho doanh nghiệp vừa và nhỏ. • Chưa nghiên cứu được việc ứng dụng trong thẻ token, smart card, … Hướng phát triển: Xây dựng hệ thống PKI kết hợp với các giải pháp an ninh khác để đảm bảo an toàn và cung cấp môi trường truyền thông an toàn trong hệ thống mạng cục bộ, mạng doanh nghiệp. Nhóm nghiên cứu khoa học 36 Học viện Kỹ Thuật Mật Mã Nghiên cứu, xây dựng hạ tầng khóa công khai PKI dựa trên OpenCA. Kết luận Việc nghiên cứu và xây dựng hệ thống PKI dựa trên nền tảng mã nguồn mở OpenCA là một vấn đề còn mới mẻ và luôn cần được hoàn thiện. Dự án OpenCA vẫn đang được hoàn thiện với bộ thư viện libpki mới. Hiện nay, việc áp dụng mật mã hóa khóa công khai và dịch vụ chứng thực điện tử để đảm bảo an toàn thông tin trong các hoạt động giao dịch điện tử là giải pháp được nhiều quốc gia trên thế giới sử dụng. Ở Việt Nam, tình hình triển khai cơ sở hạ tầng khóa công khai (PKI) và chứng thực điện tử (CA) được đánh giá là đã đi đúng hướng và bài bản, nhưng tiến độ vẫn còn chậm. Thực tế ở Việt Nam việc triển khai dịch vụ chứng thực điện tử mới chỉ ở một số cơ quan nhà nước, cơ quan thuộc chính phủ. Còn các doanh nghiệp cũng có sử dụng chứng thực điện tử nhưng còn ít và đều là mua của các tổ chức cung cấp. Việc triển khai các dịch vụ cung cấp chứng thực điện tử yêu cầu một sự đầu tư lâu dài và nghiêm túc mới mang lại kết quả như mong muốn. Phần khó khăn nhất trong triển khai dịch vụ này là ở khâu tổ chức thực hiện và thay đổi nhận thức của con người. Tính pháp lý của chữ ký số và dịch vụ chứng thực điện tử cũng là một vấn đề đang được đặt ra. Hiện nay, ở Việt Nam đã ban hành một số các điều luật trong lĩnh vực này như Luật công nghệ thông tin ban hành ngày 29/6/2006, Luật giao dịch điện tử ban hành ngày 29/11/2005, Luật nội dung chữ ký số ban hành ngày 15/2/2007...Các tổ chức, cá nhân cung cấp và sử dụng dịch vụ chứng thực điện tử cần phải được quản lý, đồng thời có quyền , nghĩa vụ nhất định. Ngoài ra nếu một cơ sở hạ tầng có công nghệ yếu thì sẽ không có sự tin tưởng và nhà cung cấp dịch vụ và những e ngại về tâm lý của người dùng này cũng là các trở ngại trong việc triển khai cơ sở hạ tầng an ninh rộng khắp. Với OpenCA - một dự án mã nguồn mở, thì chi phí xây dựng hậ tầng khóa công khai và chứng thực điện tử cho doanh nghiệp là rất thấp, dễ dàng triển khai. Tuy nhiên, nếu nhiều doanh nghiệp cùng triển khai sẽ dần đến khó quản lý, không nhất quán giữa các doanh nghiệp, do đó cần có một tổ chức cấp cao hơn sẽ quản lý các doanh nghiệp này và xây dựng hệ thống chức thực chéo giữa các doanh nghiệp để đảm bảo sự tín nhiệm giữa các doanh nghiệp. Nhóm nghiên cứu khoa học 37 Học viện Kỹ Thuật Mật Mã

Các file đính kèm theo tài liệu này:

  • pdfCD008.pdf