Xây dựng module đăng ký người dùng trên nền web-Based

LỜI NÓI ĐẦU Sự phát triển mạnh mẽ và ứng dụng của công nghệ thông tin có ảnh hưởng ngày càng gia tăng tới mọi khía cạnh của đời sống xã hội. Các lĩnh vực xã hội, chính trị, kinh tế và quân sự đều phụ thuộc trực tiếp vào hoạt động của các mạng tính toán và thông tin, hệ thống liên lạc và điều hành cấu thành hạ tầng kỹ thuật của không gian thông tin của một quốc gia tiên tiến. Cùng với sự phát triển của hạ tầng đó thì tính dễ bị tổn thương của không gian thông tin cũng tăng lên. Vì vậy, vấn đề bả

doc67 trang | Chia sẻ: huyen82 | Lượt xem: 1468 | Lượt tải: 0download
Tóm tắt tài liệu Xây dựng module đăng ký người dùng trên nền web-Based, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
o đảm an toàn thông tin là vô cùng quan trọng. Ngày nay, nhiều mạng máy tính đang áp dụng kỹ thuật khóa công khai với chữ ký số (Digital Signature) để không chỉ bảo đảm tính không thể phủ nhận và tính toàn vẹn của dữ liệu đang được trao đổi mà còn cung cấp một phương thức qua đó có thể xác nhận được tính hợp pháp của người sử dụng. Đó chính là cơ sở hạ tầng khoá công khai (PKI - Public Key Infrastructure), cơ sở kỹ thuật hiện đại nhất được xây dựng cho mạng thông tin. Cho đến nay đã từng có nhiều tiêu chuẩn kỹ thuật được đề xuất cho những công nghệ nói trên như: SSL (Secure Socket Layer), giao thức SET (Secure Electronic Transactions), Shell an toàn, PGP (Pretty Good Privacy), v.v. Để có thể an toàn tiến hành các giao dịch trên mạng tại bất kỳ nơi nào trong hệ thống thông tin diện rộng, ta cần bắt tay vào việc xây dựng một PKI, nhưng điều quan trọng là phải có sự thống nhất về quy chế tổ chức, các chính sách pháp lý và các tiêu chuẩn kỹ thuật được áp dụng chung. Bên cạnh đó, với kỹ thuật công nghệ phát triển, các đặc trưng sinh trắc học của con người ngày càng được sử dụng rộng rãi. Vấn đề xác thực và thẩm định chủ thể, điểm yếu của PKI, lại là điểm mạnh của sinh trắc học. Do đó xu thế kết hợp sinh trắc học với PKI thành BioPKI là xu thế tất yếu. Trong khuôn khổ đề tài nghiên cứu cấp nhà nước KC0111 của khoa Công nghệ thông tin - trường đại học Bách Khoa Hà Nội, nhóm sinh viên k49 Khoa Công nghệ thông tin đã tập trung tìm hiểu, nghiên cứu về các yêu cầu, tính năng, đặc điểm của cơ sở hạ tầng khóa công khai, tìm hiểu hệ PKI mã nguồn mở OpenCA hiện đang được sử dụng khá rộng rãi trên thế giới, đồng thời nghiên cứu về đặc điểm, tính chất, các thuật toán xử lý sinh trắc học vân tay. Trên cơ sở đó chúng tôi đã cùng nhau xây dựng và thử nghiệm hệ thống BioPKI-OpenCA làm nền tảng để xây dựng các ứng dụng trên hệ thống PKI. Đề tài của bản đồ án tốt nghiệp này là một phần của đề tài KC0111: “Hệ thống an ninh thông tin dựa trên sinh trắc học BioPKI-OpenCA”. Nhiệm vụ của đề tài này là tìm hiểu hệ thống an ninh sinh trắc BK-BioPKI, trong đó xây dựng ứng dụng người dùng là module đăng ký trên nền web-based. Nội dung của bản báo cáo đồ án tốt nghiệp này bao gồm các chương sau: Chương 1: Tìm hiểu tổng quan về PKI-OpenCA và sinh trắc học. Chương 2: Tìm hiểu về hệ thống BK-BioPKI và giải pháp tích hợp sinh trắc. Chương 3: Khảo sát và phân tích xây dựng ứng dụng trên nền web-based. Chương 4: Thiết kế chi tiết module đăng ký trên web. Tuy đã rất cố gắng xong đồ án này không thể tránh khỏi được những thiếu sót, người làm đồ án rất mong nhận được sự đóng góp ý kiến từ các thầy cô giáo, các bạn sinh viên cũng như toàn thể các bạn đọc quan tâm đến nội dung trình bày của đồ án. Em xin được bày tỏ sự biết ơn sâu sắc đến TS Ngô Hồng Sơn, bộ môn Mạng và Truyền Thông, khoa CNTT, trường đại học Bách Khoa Hà Nội, đã nhiệt tình hướng dẫn, giúp đỡ em trong suốt quá trình hoàn thành đồ án tốt nghiệp này. Em cũng xin được cảm ơn các anh và các bạn sinh viên K49, những người trực tiếp tham gia vào đề tài KC0111 đã giúp đỡ chia sẻ với em trong quá trình làm đồ án. Hà nội, tháng 6/2009 Sinh viên thực hiện đồ án Nguyễn Long Biên MỤC LỤC Danh mục các từ viết tắt APKI Architecture for Public-Key Infrastructure CA Certificate Authority CRL Certifiate Revocation List DES Data Encrytion Standard DSA Digital Signature Algorithm DSS Digital Signature Standard IETF Internet Engineering Task Force LDAP Lightweight Directory Access Protocol MD2, 4,5 Message Digest 2,4,5 NIST National Institute of Standards and Technology NSA National Security Agency PEM Privacy Enhanced Mail PGP Pretty Good Privacy RA Registration Authority LRA Local Registration Authority PKCS Public Key Cryptography Standards PKI Public Key Infrastructure PKIX Public Key Infrastructure X.509 group RFC Request For Comments RSA Rivest Shamir Adleman SCEP Simple Certificate Enrollment Protocol SET Secure Electronic Transactions SHA Secure Hash Algorithm SPKI Simple Public Key Infrastructure SSL Secure Socket Layer TSL Transport Layer Security FTP File Transfer Protocol HTTP HyperText Transfer Protocol HTML HyperText Markup Language API Application Programing Interface JCA Java Cryptography Architecture IDE Integrated Development Environment JMF Java Media Framework IIS Internet Information Services CSDL Cơ Sở Dữ Liệu CNTT Công Nghệ Thông Tin Danh mục hình vẽ Hình 1.1 Mô hình mã hóa sử dụng khóa công khai 11 Hình 1.2 Quy trình tạo chữ kí số 13 Hình 1.3 Quy trình xác thực chữ kí số 14 Hình1.4 Cấu trúc của một chứng thư số 15 Hình 1.5 Các thành phần hệ thống PKI 16 Hình 1.6 Kiến trúc đơn 20 Hình 1.7 Kiến trúc phân cấp 20 Hình 1.8 Kiến trúc lưới 21 Hình 1.9 Các thành phần cơ bản của OpenCA 24 Hình 1.10 Các thuộc tính sinh trắc học 26 Hình 2.2 Phân hệ mã hóa sinh trắc bảo vệ khóa cá nhân. 37 Hình 2.3 Kịch bản quá trình xin cấp chứng chỉ. 38 Hình 2.4 Kịch bản quá trình sử dụng chứng chỉ. 39 Hình 3.2. Mô hình hoạt động plug-in 43 Hình 3.3. Mô hình module đăng ký người dùng trên nền web-based 45 Hình 4.1. Kịch bản đăng ký người dùng 47 Hình 4.3. Form đăng ký 50 Hình 4.4. Lấy ảnh từ camera 51 Hình 4.5. Bắt sự kiện bỏ trống trường chưa nhập 52 Hình 4.6. Bắt sự kiện nhập không đúng 53 Hình 4.7. Form nhập đầy đủ 54 Hình 4.8. Lấy khóa riêng 55 Hình 4.9. Form ký và gửi dữ liệu 56 Hình 4.10. Tạo file jar 57 Hình 4.11. Tạo file key 57 Hình 4.12. Ký vào file jar 58 Hình 4.13. File policy 58 Hình 4.14. Thẻ 58 Hình 4.15. Lần đầu gọi Applet 59 Hình 4.16. Xử lý tại server 60 Hình 4.17. Tomcat server 62 Hình 4.18. Tạo chứng chỉ. 62 Hình 4.19. Enable SSL in Tomcat 63 Hình 4.20. Khởi động SSL 63 CHƯƠNG I: TÌM HIỂU TỔNG QUAN VỀ PKI - OPENCA VÀ SINH TRẮC HỌC 1. Khái niệm và các cơ sở lý thuyết của hạ tầng cơ sở khóa công khai 1.1. Khái niệm hạ tầng cơ sở khóa công khai Theo RFC 2828 [4]: hạ tầng cơ sở khoá công khai ( Public Key Infrastructure – PKI ) là một tập hợp phần cứng, phần mềm, chính sách, thủ tục cần thiết để tạo, quản lý và lưu trữ, phân phối và thu hồi các chứng chỉ số dựa trên công nghệ mã hoá khoá công khai. 1.2. Các cơ sở lý thuyết của hệ thống PKI 1.2.1. Công nghệ mã hóa bất đối xứng (Mã hóa công khai) 1.2.1.1. Mô hình mã hóa bất đối xứng Hình 1.1 Mô hình mã hóa sử dụng khóa công khai Các bước cần thiết cho một quá trình mã hóa và giải mã sử dụng phương pháp mã hóa khoá công khai Mỗi bên tham gia trao đổi thông tin sẽ sinh ra một cặp khóa để sử dụng cho mục đích mã hoá và giải mã các bản tin sau này. Mỗi bên công khai một trong hai khóa vừa tạo ra, khóa này sẽ được coi là khóa công kha1. Khóa còn lại được giữ bí mật. Nếu B muốn gửi một bản tin bí mật cho A, thì B sẽ mã hóa bản tin bằng khóa công khai của A. Khi nhận được bản tin, A sẽ dùng khóa riêng của mình để giải mã bản tin đó. Không ai khác ngoài A có thể đọc được bản tin vì chỉ A mới biết khóa riêng của chính mình. Nếu B muốn cho A xác thực mình thì B sẽ mã hóa bản tin bằng khóa riêng của bản thân. Khi nhận được bản tin, A sẽ dùng khóa công khai của B để giải mã. Nếu việc giải mã thành công thì chứng tỏ bản tin đó đúng do B gửi vì chỉ B mới có khóa riêng để mã hóa. Phương pháp mã hóa công khai được sử dụng trong các mô hình đảm bảo tính mật và tính xác thực. 1.2.1.3. Đánh giá công nghệ mã hóa công khai Ưu điểm Sử dụng cặp khóa bất đối xứng, trong đó một khóa có chức năng mã hóa, khóa còn lại dùng để giải mã, vì thế đảm bảo được tính an toàn cho dữ liệu. Khóa riêng không phải truyền tới người nhận nên không sợ khả năng bị đánh cắp khi truyền. Số lượng khóa công khai cần phải phân phối bằng với số lượng người tham gia truyền tin do đó giúp hệ thống có thể mở rộng được trong phạm vi lớn, đồng thời tránh được những vấn đề phức tạp trong việc phân phối khóa cho các bên tham gia. Hỗ trợ công nghệ chữ kí điện tử và chống phủ nhận. Nhược điểm Thuật toán phức tạp nên tốc độ mã hóa chậm, đối với những dữ liệu lớn thời gian mã hóa hóa công khai có thể chậm hơn mã hóa đối xứng từ 100 đến 1000 lần. Mã hóa công khai làm tăng kích thước của mã mật. 1.2.2. Chữ ký điện tử 1.2.2.3. Khái niệm chữ kí điện tử (Electronic Signature) Chữ kí điện tử là đoạn dữ liệu được bên gửi gắn vào văn bản gốc trước khi truyền đi để chứng thực tác giả của văn bản và giúp người nhận kiểm tra tính toàn vẹn của dữ liệu mà mình thu được. Đặc điểm của chữ ký điện tử rất đa dạng, đó có thể là tên hoặc hình ảnh cá nhân kèm theo dữ liệu điện tử, một mã bí mật, hay một dữ liệu sinh trắc học (chẳng hạn như hình ảnh mặt, dấu vân tay, hình ảnh mống mắt ...). Đây là những dữ liệu đặc trưng cho từng cá nhân vì thế chúng có khả năng xác thực người gửi. Tuỳ theo mức độ an toàn của các ứng dụng hay dịch vụ cụ thể mà người ta có thể áp dụng các chính sách khác nhau để tạo ra chữ kí điện tử . 1.2.2.4. Khái niệm chữ kí số (Digital Signature) Chữ kí số là hình thức phổ dụng nhất hiện nay của chữ kí điện tử, đây là một dạng đặc biệt của chữ kí điện tử, sử dụng công nghệ mã hóa khóa công khai nhằm đảm bảo tính xác thực cho các hệ mật. 1.2.2.5. Ý nghĩa của chữ kí số Nhằm xác định rõ người đã kí vào văn bản. Chống chối bỏ vì khi đã kí vào văn bản thì không thể nào phủ nhận sự sở hữu của mình đối với chữ kí đó. Xác thực nội dung và tính toàn vẹn của văn bản được kí. Độ an toàn của chữ kí số là rất cao vì thế hiện nay công nghệ này được sử dụng rất phổ biến trong các giao dịch điện tử. 1.2.2.6. Hàm băm Hàm băm không phải là một cơ chế để mã hóa mà nó là công cụ để tạo ra digest cho bản tin. Một hàm băm có 3 chức năng chính sau đây: Nó tạo ra một khối dữ liệu nhỏ, có kích thước cố định từ một bản tin gốc (chính là digest của bản tin hay là giá trị băm). Việc thực hiện hàm băm nhiều lần lên cùng một bản tin gốc sẽ chỉ cho ra một digest duy nhất. Thao tác của hàm băm không thể dự đoán được, điều đó có nghĩa là: một thay đổi nhỏ trong bản tin gốc cũng có thể gây ra tác động lớn không lường trước tới digest được tạo ra. Hàm băm là hàm một chiều, nói cách khác thì không có cách nào có thể tìm được bản tin gốc từ một digest cho trước. 1.2.2.7. Quy trình tạo và thẩm định chữ kí số a. Quy trình tạo chữ kí số Bước 1: Bên gửi áp dụng hàm băm lên bản tin cần truyền đi, kết quả sẽ thu được một digest. Nếu hàm băm được sử dụng là MD5 (Message Digest 5) thì digest sẽ có chiều dài 128-bit, nếu hàm băm là SHA (Secure Hash Algorithm) thì digest có chiều dài là 160-bit. Bước 2: Sử dụng khóa riêng của người gửi để mã hóa digest thu được ở bước 1 (Thông thường ở bước này người ta dùng giải thuật RSA), kết quả thu được chính là chữ kí số của người gửi. Bước 3: Gộp chữ kí số vào bản tin gốc cần truyền đi, công việc này gọi là “kí” vào bản tin. Sau khi bản tin được kí thì mọi sự thay đổi tác động vào bản tin sẽ bị phát hiện trong giai đoạn thẩm định tại bên nhận. Ngoài ra việc kí nhận cũng là một sự đảm bảo cho người nhận rằng: bản tin mà họ nhận được đúng là xuất phát từ người đã kí chứ không phải ai khác. Bước 4: Truyền bản tin đã được kí đi. Hình 1.2 Quy trình tạo chữ kí số b. Quy trình thẩm định chữ kí Bước 1: Sau khi tách được chữ kí số ra khỏi bản tin thu được, bên nhận dùng khóa công khai của người gửi để giải mã chữ kí số này. Kết quả thu được là một digest. Bước 2: Dùng giải thuật MD5 hoặc SHA để băm bản tin tách được. Bước 3: So sánh kết quả thu được ở bước 1 và 2. Nếu trùng nhau thì kết luận bản tin nhận được không bị thay đổi trong quá trình truyền và nó đúng của người gửi. Hình 1.3 Quy trình xác thực chữ kí số 1.2.3. Chứng thư số Khái niệm: Chứng thư số có thể hiểu đơn giản một mẩu tin cung cấp nhân dạng của người sở hữu khóa công khai. Giống như tấm hộ chiếu hay chứng minh thư, chứng thư số cung cấp bằng chứng nhận dạng của một người hay một thực thể. Chứng thư số được kí và được lưu chuyển bởi một tổ chức thứ ba đáng tin cậy gọi là nhà cung cấp chứng thư số - CA (sẽ được đề cập kĩ hơn trong những phần sau). Đến chừng nào mà cả người gửi và người nhận còn tin tưởng vào CA, thì khóa công khai của người được cấp chứng thư số vẫn có giá trị khẳng định người đó. Chứng thư số hiện nay được xây dựng theo chuẩn X509, có cấu trúc như hình vẽ: Hình1.4 Cấu trúc của một chứng thư số Các bước xác thực một chứng thư số: Trước khi thực hiện một giao dịch nào đó, hai bên tham gia truyền tin đưa chứng thư số của mình cho đối tác kiểm tra. Mỗi bên nhận chứng thư số sẽ xác thực một số trường trong chứng thư số để đảm bảo rằng chứng thư số vẫn còn hiệu lực và nó thuộc về người chủ thực. Việc xác thực diễn ra như sau: So sánh nhận dạng của người sở hữu chứng thư số. Xác nhận rằng chứng thư số vẫn còn hợp lệ Xác nhận rằng chứng thư số được kí bởi một CA đáng tin cậy. Xác nhận chữ kí của người cấp chứng thư số, nhờ đấy đảm bảo rằng chứng thư số không bị thay đổi. Một số dịch vụ sử dụng chứng thư số hiện nay như: thư điện tử, mạng riêng ảo (VPN), SSL. 1.2. Các thành phần trong hệ thống PKI Hình 1.5 Các thành phần hệ thống PKI Các thành phần của PKI gồm [4]: Nhà phát hành chứng chỉ gọi tắt là CA (Certification Authority): chịu trách nhiệm xác thực chứng chỉ. Cơ quan đăng ký chứng thực - RA: là đối tượng được CA cấp phát chứng chỉ để chứng nhận những thông tin định. Thực thể đầu cuối (End –Entity) là tất cả những gì có thể được định danh và cấp chứng chỉ số để sử dụng. Nhà phát hành CRLs: một thành phần của CA để phát hành danh sách chứng chỉ bị thu hồi. Kho chứa chứng chỉ: làm nhiệm vụ lưu trữ các chứng chỉ để các thực thể đầu cuối có thể lấy được. 1.2.1. Nhà phát hành chứng chỉ - CA Nhà phát hành chứng chỉ gọi tắt là CA (Certification Authority) là hạt nhân của hệ thống PKI. Chỉ có CA mới có quyền phát hành chứng chỉ cho một đối tượng sau khi kiểm tra những thông tin về đối tượng đó. Trong hệ thống PKI, CA đóng vai trò là một bên thứ ba mà các ứng dụng sử dụng chứng chỉ trong hệ thống phải tin tưởng. Muốn kiểm tra chữ ký của CA trên chứng chỉ, hệ thống sử dụng khoá công khai của nhà phát hành CA được CA tự chứng thực hoặc được chứng thực bởi một CA khác mà hệ thống tin tưởng. Mỗi chứng chỉ có một thời gian sống nhất định. Sau khoảng thời gian này chứng chỉ cần được thu hồi và cấp phát mới cho đối tượng sử dụng. Mặt khác do một điều kiện nào đó việc sử dụng chứng chỉ là không còn hợp lệ ví dụ như khoá bí mật của chủ thể chứng chỉ bị tiết lộ; chứng chỉ cần được thu hồi. Nhà phát hành chứng chỉ cần quản lý trạng thái thu hồi của chứng chỉ để chương trình sử dụng đầu cuối sử dụng chứng chỉ một cách an toàn. Như vậy CA không những quản lý chứng chỉ khi nó được khởi tạo mà CA còn phải quản lý cả chứng chỉ trong quá trình sử dụng. Các chức năng của CA [3] Xác thực yêu cầu cấp phát chứng chỉ Đây là quá trình kiểm tra thông tin định danh, cũng như cặp khoá mã hoá của đối tượng yêu cầu cấp phát chứng chỉ. Quy trình diễn ra tuỳ thuộc hệ thống mà ta xây dựng. Việc xác minh này có thể được thực hiện gián tiếp thông qua một bên trung gian, như các trung tâm đăng ký địa phương, hoặc xác minh trực tiếp thông qua tiếp xúc trực tiếp. Phát hành chứng chỉ Sau khi xác minh thông tin định danh, khoá mã hoá của đối tượng yêu cầu chứng chỉ, hoặc nhận được yều cầu từ một LRA, CA tiến hành cấp phát chứng chỉ cho đối tượng. Tuỳ thuộc vào chính sách của CA mà chứng chỉ sau khi tạo sẽ được đưa đến một kho chứa công khai để các ứng dụng lấy chứng chỉ về sử dụng. Phân phối chứng chỉ Nhà phát hành chứng chỉ còn cung cấp các dịch vụ để các hệ thống sử dụng chứng chỉ truy cập và lấy về các chứng chỉ mà nó cần. Các dịch vụ này rất đa dạng nhưng sử dụng phổ biến nhất là dịch vụ email và dịch vụ thư mục LDAP. Thu hồi chứng chỉ Khi một chứng chỉ được yêu cầu huỷ bỏ, hoặc do một nguyên nhân nào đó mà việc sử dụng chứng chỉ không còn an toàn, thì CA phải thu hồi chứng chỉ đó và phải thông báo cho toàn bộ hệ thống biết danh sách các chứng chỉ bị thu hồi cho toàn hệ thống thông qua các CRL (Certificate Revocation List ). Treo chứng chỉ Trong trường hợp CA phát hiện ra các dấu hiệu khả nghi việc sử dụng chứng chỉ là không còn an toàn nữa thì CA sẽ phải treo chứng chỉ, tức là chứng chỉ đó bị thu hồi tạm thời, nhưng nếu CA tìm được thông tin chứng minh rằng việc sử dụng chứng chỉ vẫn đảm bảo an toàn thì chứng chỉ sẽ được thay đổi lại trạng thái bị thu hồi. Gia hạn chứng chỉ Trong trường hợp chứng chỉ hết thời hạn sử dụng, nhưng chứng chỉ vẫn đảm bảo tính bí mật khi sử dụng, thì nó có thể được cấp lại( tùy thuộc vào yêu cầu của chủ thể chứng chỉ). Tức là gia hạn thêm thời gian sử dụng cho chứng chỉ. Chứng chỉ được cấp mới không có gì thay đổi, ngoại trừ trường thời gian hết hạn được thay, tất nhiên là kéo theo cả chữ ký của nhà phát hành chứng chỉ cũng thay đổi. Quản lý trạng thái chứng chỉ Thông qua các CRL không những giúp cho các nhà phát hành chứng chỉ quảng bá thông tin về những chứng chỉ bị thu hồi mà còn giúp cho CA quản lý trạng thái thu hồi của chứng chỉ. Việc quản lý trạng thái thu hồi này là rất quan trọng. Vì nếu các ứng dụng đầu cuối sử dụng những chứng chỉ bị thu hồi thì hệ thống không còn an toàn nữa. 1.2.2. Cơ quan đăng ký chứng thực – RA Trong các hệ thống với phạm vi vật lý rộng lớn, việc CA chứng nhận thông tin định danh của đối tượng là rất khó khăn. Một giải pháp cho vấn đề này là CA sử dụng các cơ quan đăng ký địa phương - RA làm đại diện cho CA trong một cộng đồng nhỏ. Các RA không trực tiếp phát hành chứng chỉ, hay quản lý chứng chỉ mà nó chỉ thực hiện công việc xác nhận những thông tin người dùng cho CA. Đồng thời RA cũng có thể thay mặt người sử dụng yêu cầu CA phát hành, thu hồi, thay đổi thông tin trên chứng chỉ. Các chức năng của RA gồm có [3]: Nhận các yêu cầu cấp phát chứng chỉ từ phía người dùng, chứng nhận các thông tin trên yêu cầu đó. Gửi yêu cầu phát hành chứng chỉ đến CA. Nhận các chứng chỉ từ CA và trao nó cho chủ thể chứng chỉ. Nhận yêu cầu thu hồi chứng chỉ từ phía người dùng, kiểm tra yêu cầu thu hồi và gửi những yêu cầu này cho CA. 1.2.3. Thực thể đầu cuối (End –Entity) Là đối tượng được CA cấp phát chứng chỉ để chứng nhận những thông tin định danh về đối tượng, đồng thời còn chứng minh rằng đối tượng sở hữu một khoá bí mật tương ứng khoá công khai trong chứng chỉ. Trong vai trò chủ thể của chứng chỉ, mỗi đối tượng có những quyền sau trong hệ thống [3]. Sinh cặp khoá Để được cấp phát chứng chỉ chủ thể có thể yêu cầu được cấp phát cặp khóa công khai/bí mật. Mặc dù nếu PKI áp dụng mô hình này sẽ đảm bảo việc quản lý khóa dễ dàng, và hệ thống sinh khóa tập trung có thể tận dụng được khả năng của hệ thống để có thể sinh ra những cặp khóa có chất lượng. Nhưng quá trình phân phối khóa an toàn lại phức tạp và khó đảm bảo an toàn. Ngoài ra việc sinh khóa bí mật ở một ví trí thứ ba có thể đánh mất đi tính riêng tư cho chủ thể chứng chỉ. Nên trong thực tế nhiều mô hình PKI còn áp dụng mô hình sinh khóa tại máy khách, tức là đối tượng sở hữu chứng chỉ có thể tự sinh và chọn lựa cặp khóa công khai/bí mật được ghi nhận trong chứng chỉ. Yêu cầu cấp phát chứng chỉ Sau khi tạo được cặp khóa công khai/bí mật, đối tượng yêu cầu chứng chỉ có quyền yêu cầu một trung gian RA , hoặc yêu cầu trực tiếp với CA để được cấp phát chứng chỉ. Sau khi xác thực những thông tin mà đối tượng yêu cầu chứng chỉ cung cấp, nhà phát hành chứng chỉ CA có thể ký, cung cấp một chứng chỉ mới cho đối tượng yêu cầu chứng chỉ. Yêu cầu thu hồi chứng chỉ Khi đối tượng sử dụng chứng chỉ không cần chứng chỉ nữa, hoặc khả nghi việc lộ mất khóa bí mật, chủ thể chứng chỉ hoàn toàn có quyền yêu cầu hệ thống thu hồi chứng chỉ của chính nó. Yêu cầu thay đổi thông tin trên chứng chỉ Tức là thay chứng chỉ cũ bằng chứng chỉ mới nhưng giữ nguyên các trường thông tin, chỉ thay đổi những trường thông tin theo yêu cầu của chủ thể chứng chỉ. 1.2.4. Kho chứa chứng chỉ Các chứng chỉ, các bản CRL và các thông tin liên quan đến chúng cần được lưu trữ công khai để các chương trình sử dụng chứng chỉ truy cập và lấy về những thông tin cần thiết. Như vậy kho chứa chứng chỉ cũng là một thành phần trong hệ thống PKI. Kho chứa chứng chỉ còn đảm bảo những thông tin được lưu trữ trên nó là hoàn toàn chính xác và tính nhất quán(ví dụ như đảm bảo CRL phát hành đúng hạn). 1.3. Kiến trúc của PKI Một CA phát ra các chứng chỉ cho các thực thể đầu cuối. Các thực thể đầu cuối có thể là người sử dụng, RA hay là các CA khác. Các CA đã được chứng nhận lại tiếp tục chứng nhận cho các CA khác và chuỗi hoạt động này tiếp diễn cho đến khi tất cả các thực thể trong hoạt động là tin cậy. Chuỗi cấp giấy chứng chỉ này được gọi là certification path và tổ chức các CA trong certification path được gọi là kiến trúc của PKI [7]. PKI được xây dựng dựa trên các kiến trúc chính như sau [7]: Kiến trúc đơn (Single architecture) Hình 1.6 Kiến trúc đơn Kiến trúc phân cấp (Hierarchical architecture) Hình 1.7 Kiến trúc phân cấp Kiến trúc lưới (Mesh architecture) Hình 1.8 Kiến trúc lưới Kiến trúc lai (Hybird architecture) Kiến trúc lai được chia làm 3 loại chính [7]: Kiến trúc danh sách điểm tin cậy mở rộng (Extended Trust List): mỗi phần tử trong danh sách có thể là CA của bất cứ kiến trúc nào. Đây là loại hình phổ biến được các trình duyệt sử dụng. Kiến trúc PKI chứng nhận chéo (Cross-certified PKI): kết hợp các hệ thống PKI cấp thấp nhằm thành lập mô hình lưới PKI cao hơn. Kiến trúc CA bắc cầu (Bride CA architecture): khi số lượng các PKI trong mô hình chứng nhận chéo lớn à số lượng chứng chỉ số tăng lên à tạo ra một CA làm trung gian khi thực hiện xác thực giữa hai hệ thống PKI. CA này không được coi là một điểm tin cậy. Mỗi kiến trúc đều có các ưu và nhược điểm riêng. Việc lựa chọn kiến trúc nào để áp dụng cho một hệ thống PKI là tùy thuộc vào nhu cầu của tổ chức thực thi hệ thống PKI đó. 1.4. Các hoạt động chính trong hệ thống PKI Một hệ thống PKI bao gồm các hoạt động chính sau [8] 1.4.1. Cấp phát chứng chỉ Quá trình cấp phát chứng chỉ được chia thành hai bước: Người dùng gửi yêu cầu xin cấp phát chửng chỉ cho CA thông qua RA. Thông thường yêu cầu có các thông tin như: tên của CA, khóa công khai của người dùng, thuật toán tương ứng, chữ ký số của người dùng được tạo ra từ khóa cá nhân (theo chuẩn PKCS#10 thông dụng hiện nay). Thông điệp yêu cầu được gửi qua thư điện tử, sử dụng định dạng PEM (Privacy Enhanced Mail), hoặc bằng giao thức SSL. CA ủy quyền trả lời cho RA. Sau khi xác minh yêu cầu thành công. RA chuyển yêu cầu này cho CA. CA tiến hành tạo chứng chỉ số dựa trên các thông tin có trong yêu cầu phát hành. Tiếp đến, CA dùng khóa cá nhân ký lên chứng chỉ số, đảm bảo tính toàn vẹn nội dung và khẳng định sự tin cậy của CA đối với chứng chỉ số. CA gửi lại cho RA, RA gửi lại chứng chỉ này cho người dùng. Chứng chỉ số sau khi phát hành cần được công bố rộng rãi cho bất kỳ ai có nhu cầu trao đối thông tin với chủ thể của chứng chỉ số đó. 1.4.2. Phân phối chứng chỉ PKI thường dùng một số phương pháp công bố chứng chỉ số như sau: Dịch vụ thư mục: Phương pháp này dành cho các chứng chỉ số theo chuẩn X.509. Dịch vụ thư mục dành cho PKI phổ biến là X.500/LDAP theo chuẩn của IETF. Trang web: các chứng chỉ số được đưa lên trang web để mọi người có thể truy cập. Các phương tiện khác như email ….. 1.4.3. Thu hồi chứng chỉ Các chứng chỉ số bị thu hồi khi hết thời gian sử dụng, CA chứng thực cho chứng chỉ đó không còn tin cậy hoặc chứng chỉ số đó không còn được dùng nữa… Chỉ có CA mới có quyền thu hồi chứng chỉ. Sau khi thu hồi phải công bố rộng rãi. Có hai cách công bố là: đưa thông báo lên một máy chủ để cảnh báo mọi người hoặc đưa chứng chỉ số bị hủy bỏ vào một danh sách chứng chỉ hết hiệu lực (Certificate Revocation Lists - CRL) và sau đó sẽ được xóa bỏ. 1.4.4. Quản lý khóa cá nhân Khóa cá nhân ở đây bao gồm cả khóa cá nhân của người dùng và khóa cá nhân của CA. Việc quản lý gồm 3 hoạt động như sau: Bảo vệ khóa cá nhân: khóa cá nhân được lưu trong phương tiện lưu trữ an toàn như smart card hay file đã mã hóa. Truy cập tới khóa cá nhân cần phải có thông tin xác thực như PIN, mật khẩu hay đặc trưng sinh trắc học… Cập nhật khóa: Do người sử dụng đã được định danh từ trước nên quá trình này đơn giản chỉ là tạo thêm một chứng chỉ số và cặp khóa mới. Để cập nhật chứng chỉ số cho CA gốc, quá trình sẽ phức tạp hơn, vì một số người dùng vẫn có thể đang tin cậy chứng chỉ số cũ trong khi một số chuyển sang tin cậy chứng chỉ số mới. Giải pháp cho vấn đề này là tạo ra và phát hành ba chứng chỉ số chuyển tiếp tạm thời như sau: Một chứng chỉ số có chứa khóa công khai cũ của CA, được ký bằng khóa cá nhân mới của CA. Thời gian hoạt động của chứng chỉ số này tính từ ngày tạo cho tới ngày hết hạn của chứng chỉ số cũ. Một chứng chỉ số có chứa khóa công khai mới của CA, được ký bằng khóa cá nhân cũ của CA. Chứng chỉ số này có hiệu lực từ ngày ký cho tới ngày hết hạn của chứng chỉ số cũ. Một chứng chỉ số có chứa khóa công khai mới của CA, được ký bằng khóa cá nhân mới của CA. Đây là chứng chỉ số có tính ổn định, hoạt động cho tới khi cần phải cập nhật khóa cho CA lần tiếp theo. Sao lưu/phục hồi: Chức năng này cho phép người dùng lấy lại khóa cá nhân trong trường hợp bị mất. Việc sao lưu và phục hồi khóa phải được tiến hành bằng một đối tác tin tưởng (như một CA), có trách nhiệm giữ bí mật các khóa cá nhân. 1.6. Một số vấn đề an toàn của hệ thống PKI Hệ thống PKI được xây dựng với mục đích chính là để cung cấp các dịch vụ an toàn, tuy nhiên như bất cứ một hệ thống nào PKI cũng tồn tại một sô vấn đề an toàn [1]. 1.6.1. Lộ khóa cá nhân Vấn đề đầu tiên được nhắc tới của hệ thống PKI chính là việc lộ khóa cá nhân của người dùng. Khóa cá nhân của người dùng được lưu trữ trên các phương tiện khác nhau mà các phương tiện này thông thường chỉ được bảo vệ bởi một password nên khả năng mất an toàn là rất cao. Vấn đề này có thể được giải quyết khi áp dụng sinh trắc học để bảo vệ khóa riêng. 1.6.2. Giả mạo khóa công khai Trường hợp khóa này được bảo vệ bằng chữ ký của CA, tức là kiểm tra được bằng khóa công khai của CA, có nguy cơ kẻ tấn công thay thế khóa của CA trên máy người dùng, sau đó tiến hành thay thế khóa công khai của người dùng bằng khóa giả. 1.7. Tổng quan về OpenCA 1.7.1. Định nghĩa OpenCA là một mô hình PKI mã nguồn mở, được viết bằng Perl, sử dụng phần nhân là OpenSSL và được viết bởi PKI Lab. Hệ thống này được xây dựng với mục đích cung cấp một hạ tầng cơ sở khóa công khai mã nguồn mở với đầy đủ các chức năng quản lý chứng chỉ bao gồm cấp phát, thu hồi, gia hạn chứng chỉ cho người dùng. Phiên bản mới nhất tính đến thời điểm hiện nay (tháng 5 năm 2009) là OpenCA PKI v1.0.2 (ten-ten2) . 1.7.2. Các thành phần cơ bản của OpenCA Hình 1.9 Các thành phần cơ bản của OpenCA Các thành phần cơ bản của OpenCA gồm: 1.7.2.1. Module Pub Module Pub trong OpenCA là giao diện trực tiếp với người sử dụng thực hiện các chức năng sau : Tiếp nhận yêu cầu cấp và thu hồi chứng chỉ của người dùng : để thực hiện chức năng này, Pub thực hiện thu thập các thông tin cơ bản của người dùng đặc biệt là 1 số PIN dùng cho việc xác thực yêu cầu của người dùng. Sau đó gửi yêu cầu đó cho RA. Pub cũng là nơi thực hiện việc cấp các chứng chỉ do CA duyệt thông qua trả về cho người dùng. Pub cung cấp 1 số tiện ích như kiểm tra các chứng chỉ, quản lý các yêu cầu cấp và thu hồi chứng chỉ cho người dùng. Điểm còn hạn chế của module Pub trong OpenCA là chưa có một hệ thống quản lý người dùng hoàn chỉnh. Đồng thời Pub được truy nhập , tiếp nhận yêu cầu và cấp chứng chỉ tự do tuy nhiên với một hệ thống nguồn mở thì đây vẫn còn là một điều chấp nhận được. 1.7.2.2. Module RA Module RA trong OpenCA được sử dụng để thực hiện việc quản lý các yêu cầu cấp và thu hồi các chứng chỉ dùng cho quản trị RA. Chức năng chính của RA : Quản lý và xét duyệt các yêu cầu về cấp và thu hồi chứng chỉ từ Pub rồi gửi lên cho CA : chức năng này cho phép quản trị RA biên soạn lại các yêu cầu cấp chứng chỉ, xác thực thông tin người dùng sử dụng mã PIN của người dùng đó. Duyệt các chứng chỉ do CA trả về cho người dùng. Một chức năng quan trọng của RA là thực hiện việc sinh khóa riêng cho người dùng sau đó sử dụng mã PIN để mã hóa bảo vệ và khóa riêng và gửi lên cho CA. Trong mô hình PKI phổ biến thì RA thường đứng ở vai trò giao tiếp với người dùng. Nhưng trong OpenCA thì module Pub cộng với RA mới tạo thành một RA đúng nghĩa. Việc phân thành hai lớp quản lý như vậy tạo ra sự linh hoạt và mềm dẻo trong việc quản lý quy trình cấp chứng chỉ. 1.7.2.3. Module CA Module CA trong OpenCA thực hiện các chức năng quản lý việc cấp và thu hồi các chứng chỉ. Chức năng chính của CA: Quản lý các yêu cầu cấp phát và thu hồi chứng chỉ do RA gửi lên : ở chức năng này CA hỗ trợ việc duyệt các yêu cầu cấp chứng chỉ đồng thời thực hiện các chức năng như cấp và thu hồi chứng chỉ cho người dùng. Quản lý các danh sách chứng chỉ bị thu hồi. 1.8. Tổng quan về Sinh trắc học 1.8.1. Khái niệm Sinh trắc (Biometric) là đặc tính hay thuộc tính vật lý hay sinh học mà có thể định lượng được. Nó có thể được dùng là phương tiện chứng minh định danh của người dùng. Một vài đặc tính sinh trắc học như: chiều cao, cân nặng, mùi cơ thể, vân tay, mống mắt, khuôn mặt, hình dạng bàn tay hay ngón tay, giọng nói, chữ ký… Hình 1.10 Các thuộc tính sinh trắc học Các thuộc tính sinh trắc được phân loại thành các tập nhỏ hơn và không phải tất cả các thuộc tính này đều phù hợp cho mục đích nhận dạng, thẩm định. Các tiêu chuẩn để đánh giá một thuộc tính sinh trắc có thể được sử dụng cho mục đích này hay không như sau: Tính phổ dụng (Universality): Tất cả mọi người đều phải có đặc tính sinh trắc học này, như: mống mắt, vân tay, khuôn mặt… Tính duy nhất (Uniqueness): Đặc trưng sinh trắc học này của từng người phải khác nhau và là duy nhất. Tính bề vững (Permanence): Những đặc tính sinh trắc học phải khá ổn định trong suốt cuộc đời con người. Tính khả dụng (Collectability): Đặc trưng sinh trắc học này phải được thu thập một cách dễ dàng và khá nhanh chóng cho mục đích nhận dạng. Tính hiệu quả (Performance): Mức độ chính xác phải khá cao sao cho các hệ thống có thể được triển khai tin cậy trong thực tế. Tính chấp nhận được (Acceptability): Các đặc trưng sinh trắc học ._.

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

  • doc2543.doc
Tài liệu liên quan