Chương 3 THỬ NGHIỆM XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ
3.4. Cơng cụ hỗ trợ PKI :IAIK
3.4.1. Giới thiệu chung về IAIK
Sử dụng ngơn ngữ Java để phát triển các ứng dụng mạng và bảo mật là sự lựa chọn hàng đầu cho các nhà phát triển phần mềm. Đặc biết trong lĩnh vực bảo mật, ngồi các API cơ bản tronng package java.security.*, java cịn hỗ trợ thêm các API mở rộng JCE(Java Cryptography Extension) nằm trong package
javax.security.* . Tuy nhiên bản thân JCE của java chưa phải hỗ trợ hồn tồn đầy đủ cho việc phát triển các ứng dụng bảo mật. Ví dụ JCE khơng hỗ trợ cho việc tạo file pkcs12. Vì vậy đã cĩ rất nhiều tổ chức khác nhau phát triển các Crypto tookit dựa trên JCE của java tạo thành các bộ Crypto tookit hồn chỉnh như:
Cryptix : (http://www.cryptix.org/)
IAIK (Institute for Applied Information Processing and Communication) http://jce.iaik.tugraz.at/
Bouncycastle: http://www.bouncycastle.org/
Trong số các Crypto tookit trên : IAIK là một trong các tookit hỗ trợ đầy đủ nhất các chuẩn về bảo mật và PKI. Các lĩnh vực mà IAIK hỗ trợ :
Communication and Messaging Security( iSaSiLk -được phát triển dựa trên đặc tả SSL của Netscape .)
Public Key Infrastructure XML Security
3.4.2. Sử dụng IAIK xây dựng hệ thống
Để xây dựng hệ thống quản lý và cung cấp chứng chỉ số, chúng ta sử dụng chủ yếu IAIK-JCE. JCE của java (The Java Cryptography Extension) kế thừa từ JCA (Java Cryptography Architecture-Kiến trúc về mật mã của Java) và thêm vào một số đặc tính mới để phục vụ cho việc mã hĩa và trao đối khĩa. Trong các bộ JDK version từ 1.4 trở lên JCE đã được tích hợp sẵn và được coi như là các thư viện chuẩn trong các bộ JDK này.
IAIK-JCE bao gồm các đặc điểm và thành phần chính như sau:
1) IAIK-JCE API cài đặt lại tồn bộ JCE của Sun. Bao gồm 3 gĩi chính
package javax.crypto package javax.crypto.spec package javax.crypto.interfaces
Mở rộng các provider về security (nhưng vẫn tuân theo các chuẩn về kiến trúc của JCA)
2) IAIK-JCE hỗ trợ hầu hết các cấu trúc cơ bản trong ASN.1 (Abstract Syntax Notation One)
BOOLEAN INTEGER BITSTRING OCTETSTRING NULL OBJECTIDENTIFIER ENUMERATED SEQUENCE SET SEQUENCE OF SET OF UTCTime GeneralizedTime
3) IAIK-JCE hỗ trợ những chuẩn sau về PKCS (Public-Key Cryptography Standards)
PKCS#1: RSA Encryption Standard : Chuẩn mã hĩa RSA
PKCS#3: Diffie Hellman Key Agreement Standard: Chuẩn thỏa thuận khĩa Diffie Hellman
PKCS#5: Password-Based Encryprion Standard :Chuẩn mã hĩa mật khẩu PKCS#7: Cryptographic Message Syntax Standard
PKCS#8: Private-Key Information Syntax Standard : Chuẩn lưu trữ khĩa mật
PKCS#9: Selected Attribute Types
PKCS#10: Certification Request Syntax Standard: Chuẩn về yêu cầu chứng chỉ số
PKCS#12: Personal Information Exchange Syntax Standard
4) Về chuẩn X.509
Certificate/crl API
Kế thừa JCA certificate/crl API về việc tạo mới chứng chỉ số Hỗ trợ X.509 public key certificates
Hỗ trợ X.509 certificate revocation lists (CRLs), delta CRLs and indirect CRLs
Hỗ trợ X.509 qualified certificates Hỗ trợ X.509 attribute certificates
Cài đặt tồn bộ X.509 certificate and crl extensions Cài đặt tồn bộ private Netscape cert extenions
Cài đặt tồn bộ qualified, attribute, and OCSP certificate extensions Cài đặt giao thức OCSP Online Certificate Status Protocol, version 2.01
o Hỗ trợ client và server trong việc tạo, ký , kiểm tra các yêu cầu/trả lời trong giao thức OCSP.
o Cài đặt tồn bộ phần mở rộng của giao thức OCSP
o Hỗ trợ giao thưc OCSP qua HTTP
o Các cơng cụ phục vụ cho việc tạo các response về danh sách thu hồi trong giao thức OCSP
5) Random Number Generators
IAIK-JCE hỗ trợ rất nhiều kiểu sinh các số ngẫu nhiên theo chuẩn ANSI X9.17, FIPS PUB 186-2.