Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 110 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
110
Dung lượng
2,33 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đào Minh Ngọc NGHIÊN CỨU ỨNG DỤNG SINH TRẮC HỌC TRONG VIỆC ĐẢM BẢO AN TOÀN CHO HỆ THỐNG GIAO DỊCH ĐIỆN TỬ LUẬN VĂN THẠC SĨ Hà Nội - 2009 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đào Minh Ngọc NGHIÊN CỨU ỨNG DỤNG SINH TRẮC HỌC TRONG VIỆC ĐẢM BẢO AN TOÀN CHO HỆ THỐNG GIAO DỊCH ĐIỆN TỬ Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thông tin Mã số: 60 48 05 LUẬN VĂN THẠC SĨ NGƢỜI HƢỚNG DẪN KHOA HỌC TS HỒ VĂN HƯƠNG Hà Nội – 2009 MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH DANH MỤC CÁC CHỮ VIẾT TẮT MỞ ĐẦU Chƣơng 1: TỔNG QUAN VỀ AN TỒN, BẢO MẬT THƠNG TIN VÀ CƠ SỞ LÝ THUYẾT MẬT MÃ 1.1 Thƣơng mại điện tử 1.1.1 Giới thiệu thƣơng mại điện tử 1.1.2 Khảo sát tình hình thƣơng mại điện tử Việt Nam 1.2 Nhu cầu bảo mật an tồn thơng tin cho TMĐT 1.2.1 Khảo sát thực trạng PKI giới Việt Nam 1.2.2 Khảo sát thực trạng PKI số nƣớc giới 1.2.3 Khảo sát thực trạng PKI Việt Nam 1.3 Cơ sở lý thuyết mật mã 10 1.3.1 Khái niệm mã hóa 10 1.3.2 Định nghĩa hệ mã hóa 10 1.3.3 Những yêu cầu hệ mã hóa 11 1.3.4 Mã hóa khóa đối xứng 11 1.3.5 Mã hóa khóa cơng khai 12 1.3.6 Thuật toán băm 14 1.4 Chữ ký số 15 1.4.1 Khái niệm chữ ký số 15 1.4.2 Sơ đồ chữ ký số 16 1.4.3 Các cách công chữ ký điện tử 18 1.5 Kết chƣơng 19 Chƣơng 2: CƠ SỞ HẠ TẦNG KHĨA CƠNG KHAI VÀ MẬT MÃ SINH TRẮC 20 2.1 Cơ sở hạ tầng khóa cơng khai 20 2.1.1 Khái niệm PKI 20 2.1.2 Các dịch vụ phạm vi ứng dụng PKI 20 2.1.3 Các thành phần PKI 20 2.1.4 Mơ hình hệ thống PKI 21 2.1.5 Các chức thuộc tính yêu cầu PKI 21 2.1.6 Hệ thống cung cấp quản lý chứng thƣ 26 2.1.7 Các mơ hình triển khai hệ thống CA 29 2.1.8 Đánh giá phân tích 34 2.2 Mật mã sinh trắc học 2.2.1Sinh trắc học 2.2.2Các khái niệm sinh trắc học vân tay 2.2.3Nhận dạng sinh trắc học 2.3 Thuật tốn mã hóa sinh trắc học 2.3.1Xử lý hình ảnh nhận dạng 2.3.2Sự tƣơng quan 2.3.3Những yêu cầu hệ thống 2.3.4Thiết kế hàm lọc 2.3.5Độ an toàn hàm lọc 2.3.6Bộ lọc tạm thời 2.3.7Thiết kế lọc an tồn 2.3.8Q trình đăng ký/xác thực 2.4 Kết chƣơng Chƣơng 3: ỨNG DỤNG SINH TRẮC TRONG ĐẢM BẢO AN TOÀN CHO HỆ THỐNG GIAO DỊCH ĐIỆN TỬ 3.1Khảo sát thực trạng việc bảo vệ khóa bí mật na 3.1.1Các thiết bị Token 3.1.2Các thiết bị SafeNet iKey 3.1.3Biostik 3.2Các cách ứng dụng sinh trắc học vào PKI 3.2.1Ứng dụng sinh trắc để thẩm 3.2.2Ứng dụng khóa cá nhân từ 3.2.3Ứng dụng sinh trắc học để 3.3Các giải pháp tích hợp sinh trắc học vào PKI 3.3.1 Tích hợp đặc trƣng sinh trắc ngƣời dùng chứng thƣ số X509 3.3.2Giải pháp dùng mật mã sin 3.4Đề xuất mơ hình BioPKI 3.5Các pha làm việc BioPKI 3.5.1Quá trình đăng ký 3.5.2Quá trình ứng dụng chữ ký 3.6Phƣơng hƣớng triển khai KẾT LUẬN TÀI LIỆU THAM KHẢO PHỤ LỤC DANH MỤC HÌNH Hình 2-4 Sơ đồ tạo chữ ký 17 Hình 2-5 Sơ đồ xác thực chữ ký 17 Hình 2-7 Mơ hình hệ thống PKI 21 Hình 2-6 Mơ hình chứng thƣ số 23 Hình 2-8 Mơ hình kiến trúc phân cấp 30 Hình 2-9 Mơ hình kiến trúc mạng lƣới 31 Hình 2-10 Mơ hình kiến trúc Cầu liên kết 33 Hình 2-15 Các đặc trƣng tổng thể: đƣờng chuẩn số đếm đƣờng vân 39 Hình 2-16 Đặc trƣng hƣớng vân tay 39 Hình 2-17 Một số ảnh vân tay 40 Hình 2-19 Biểu diễn điểm minutiae 42 Hình 2-20 Tổng quan q trình đăng ký mã hóa sinh trắc học 51 Hình 2-21 Tổng quan q trình xác thực mã hóa sinh trắc học 52 Hình 2-22 Xử lý ảnh trình đăng ký 53 Hình 2-23 Giải thuật liên kết khóa 54 Hình 2-24 Xử lý ảnh trình xác thực 56 Hình 2-25 Giải thuật khơi phục khóa 57 Hình 3-1 Hệ thống PKI 62 Hình 3-2 Cấu trúc chứng thƣ X509 63 Hình 3-3 Giải pháp tích hợp đặc trƣng sinh trắc vào X509 65 Hình 3-4 Biểu đồ làm việc PKI chƣa kết hợp hệ thống sinh trắc 67 Hình 3-5 Biểu đồ làm việc PKI kết hợp hệ thống sinh trắc 67 Hình 3-6 Giải pháp dùng mật mã sinh trắc để bảo vệ khóa bí mật 69 Hình 3-7 Mơ hình tích hợp sinh trắc vào hệ thống PKI 70 Hình 3-8 Quá trình đăng ký 72 Hình 3-9 Etoken liệu lƣu trữ 72 Hình 3-10 Sơ đồ tạo chữ ký sử dụng dấu vân tay để xác thực 73 Hình 3-11 Sơ đồ xác thực chữ ký BIOPKI 74 Hình 3-12 Quá trình khởi tạo CA 76 API CA CNTT CSDL HSM LDAP PKI RA RSA 10 Sub CA 11 TMĐT MỞ ĐẦU Ngày nay, hệ thống sở hạ tầng khóa cơng khai (PKI – Public Key Infrastructure) sở quan trọng để triển khai giao dịch điện tử mạng PKI tiêu chuẩn cơng nghệ ứng dụng đƣợc coi giải pháp tổng hợp giải tốn đảm bảo an tồn thơng tin xã hội đại Tuy nhiên, nhƣợc điểm lớn PKI vấn đề đảm bảo an tồn cho khóa bí mật ngƣời dùng lƣu trữ nhƣ sử dụng Nền tảng hệ thống PKI hệ thống mật mã khóa cơng khai: tức cặp khóa cơng khai khóa bí mật để thực trình xác thực Song quyền truy cập đến khóa bí mật lại chủ yếu đƣợc bảo vệ mật khẩu, mà thực tế mật có nguy bị lộ, nhƣ bị đánh cắp chƣơng trình virus, mã độc hại Hơn nữa, PKI bị hạn chế khong có đấu hiệu đặc trƣng để nhận biết chủ sở hữu chứng thƣ số việc xác thực chứng thƣ số dựa vào số serialnumber quan chứng thực (CA) cấp Tất vấn đề đƣợc giải cách đơn giản hơn, kết hợp đặc điểm sinh trắc chủ sở hữu khóa vào hệ thống PKI Việc làm tạo nên chế xác thực định danh mạnh mật truyền thống Về nguyên tắc, giải pháp tƣơng đối hoàn thiện cho vấn đề bảo vệ an tồn sử dụng khóa bí mật Hệ thống kết hợp hệ thống PKI sinh trắc hay gọi BioPKI Để thực hóa ý tƣởng này, luận văn tập trung tìm hiểu nghiên cứu sở hạ tầng khóa công khai sinh trắc Nội dung luận văn “Nghiên cứu ứng dụng sinh trắc học việc đảm bảo an toàn cho hệ thống giao dịch điện tử” gồm có phần mở đầu, ba chƣơng phần kết luận Chƣơng 1: Tổng quan an tồn, bảo mật thơng tin sở lý thuyết mật mã Giới thiệu thƣơng mại điện tử, thực trạng thƣơng mại điện tử Việt Nam nhu cầu cấp thiết bảo mật an tồn thơng tin Sau giới thiệu sở lý thuyết mật mã Chƣơng 2: Cơ sở hạ tầng khóa cơng khai mật mã sinh trắc học Chƣơng trình bày sở hạ tầng khóa cơng khai mật mã sinh trắc học Chƣơng 3: Ứng dụng sinh trắc đảm bảo an tồn thơng tin giao dịch điện tử Đề xuất giải pháp tích hợp sinh trắc vào hệ thống PKI đƣa mơ hình hoạt động cho hệ thống BioPKI Chƣơng 1: TỔNG QUAN VỀ AN TOÀN, BẢO MẬT THÔNG TIN VÀ CƠ SỞ LÝ THUYẾT MẬT MÃ 1.1 Thƣơng mại điện tử 1.1.1 Giới thiệu thƣơng mại điện tử Sự phát triển nhƣ vũ bão CNTT tác động mạnh mẽ to lớn đến mặt đời sống kinh tế xã hội Ngày nay, CNTT trở thành động lực quan trọng phát triển Cùng với phát triển máy tính điện tử, truyền thơng phát triển kéo theo đời mạng máy tính, từ mạng cục bộ, mạng diện rộng mạng tồn cầu Internet xa lộ thơng tin Việc thông tin chuyển sang dạng số nối mạng làm thay đổi chuyển hoá kinh tế, dạng thể chế, mối quan hệ chất hoạt động kinh tế xã hội có ảnh hƣởng sâu sắc đến hầu hết lĩnh vực hoạt động đời sống ngƣời, có hoạt động thƣơng mại Ngƣời ta tiến hành hoạt động thƣơng mại nhờ phƣơng tiện điện tử, thƣơng mại điện tử(TMĐT) Theo nghĩa hẹp, TMĐT việc mua bán hàng hoá dịch vụ thông qua phƣơng tiện điện tử, Internet mạng viễn thông khác Theo nghĩa rộng TMĐT đƣợc hiểu giao dịch tài thƣơng mại phƣơng tiện điện tử nhƣ: trao đổi liệu điện tử; chuyển tiền điện tử hoạt động gửi rút tiền thẻ tín dụng Trên thực tế, hoạt động thƣơng mại thông qua mạng Internet làm phát sinh thuật ngữ TMĐT Đặc trƣng TMĐT Các bên tiến hành giao dịch TMĐT không tiếp xúc trực tiếp với khơng địi hỏi phải biết từ trƣớc Các giao dịch thƣơng mại truyền thống đƣợc thực với tồn khái niệm biên giới quốc gia, TMĐT đƣợc thực thị trƣờng khơng có biên giới (thị trƣờng thống toàn cầu) TMĐT trực tiếp tác động tới mơi trƣờng cạnh tranh tồn cầu Trong hoạt động giao dịch TMĐT có tham ba chủ thể, có bên khơng thể thiếu đƣợc ngƣời cung cấp dịch vụ mạng, quan chứng thực Đối với thƣơng mại truyền thống mạng lƣới thơng tin phƣơng tiện để trao đổi liệu, TMĐT mạng lƣới thơng tin thị trƣờng Phân loại thƣơng mại điện tử TMĐT đƣợc phân loại theo tính cách ngƣời tham gia: Người tiêu dùng C2C (Consumer-To-Comsumer): Ngƣời tiêu dùng với ngƣời tiêu dùng C2B (Consumer-To-Business): Ngƣời tiêu dùng với doanh nghiệp C2G (Consumer-To-Government): Ngƣời tiêu dùng với phủ Doanh nghiệp B2C (Business-To-Consumer): Doanh nghiệp với ngƣời tiêu dùng B2B (Business-To-Business): Doanh nghiệp với doanh nghiệp B2G (Business-To-Government): Doanh nghiệp với phủ B2E (Business-To-Employee): Doanh nghiệp với nhân viên G2C (Government-To-Consumer): Chính phủ với ngƣời tiêu dùng G2B (Government-To-Business): Chính phủ với doanh nghiệp G2G (Government-To-Government): Chính phủ với phủ Các hình thức hoạt động TMĐT chủ yếu thƣ điện tử, toán điện tử (trao đổi liệu điện tử tài chính, tiền mặt Internet, túi tiền điện tử, giao dịch ngân hàng số hóa ), trao đổi liệu điện tử, truyền nội dung, bán lẻ hàng hóa hữu hình 1.1.2 Khảo sát tình hình thƣơng mại điện tử Việt Nam Thƣơng mại điện tử đƣợc ứng dụng rộng rãi doanh nghiệp với hiệu ngày tăng Kết điều tra với 1600 doanh nghiệp nƣớc Bộ Công Thƣơng năm 2008 cho thấy, hầu hết doanh nghiệp triển khai ứng dụng thƣơng mại điện tử mức độ khác Đầu tƣ cho thƣơng mại điện tử đƣợc trọng mang lại hiệu rõ ràng cho doanh nghiệp[1] Một điểm sáng ứng dụng thƣơng mại điện tử doanh nghiệp tỷ lệ đầu tƣ cho phần mềm tăng trƣởng nhanh, chiếm 46% tổng đầu tƣ cho công nghệ thông tin doanh nghiệp năm 2008, tăng gấp lần so với năm 2007 Trong đó, đầu tƣ cho phần cứng giảm từ 55,5% năm 2007 xuống 39% vào năm 2008 Sự dịch chuyển cấu đầu tƣ cho thấy doanh nghiệp bắt đầu trọng đầu tƣ cho phần mềm ứng dụng để triển khai thƣơng mại điện tử sau ổn định hạ tầng công nghệ thông tin Doanh thu từ thƣơng mại điện tử rõ ràng có xu hƣớng tăng qua năm 75% doanh nghiệp có tỷ trọng doanh thu từ thƣơng mại điện tử chiếm 5% tổng doanh thu năm 2008 Nhiều doanh nghiệp quan tâm bố trí cán chuyên trách thƣơng mại điện tử Các số thống kê cho thấy, đến thời điểm cuối năm 2008 nhiều doanh nghiệp Việt Nam nhận thức rõ tầm quan trọng thƣơng mại điện tử 82 Hình 4-3 Thơng tin chứng thƣ số Hình 4-4 Thơng báo sau u cầu chứng thƣ số 83 Hình 4-5 Giao diện cấu hình OpenCA Server Hình 4-6 Giao diện cấu hình OpenCA Server 84 Hình 4-7 Danh sách yêu cầu cấp chứng thƣ số Cấu trúc X509 OpenSSL OpenCA OpenCA::X509 0.9 Perl module - Part of CPAN distribution OpenCA-X509 0.9.8 • NAME • SYNOPSIS • DESCRIPTION • FUNCTIONS o sub new () - Create a new instance of the Class o sub initCert () - Use a new certificate o sub getParsed () - Get an hash structure from certificate o sub status () - Get certificate status o sub getPEM () - Get certificate in PEM format o sub getDER () - Get certificate in DER format o sub getTXT () - Get certificate in TXT format 85 NAME OpenCA::X509 - Perl extension for basic handling x509 Certificates SYNOPSIS use OpenCA::X509; DESCRIPTION This module contains all functions needed for handling of X509 certificates It requires some parameters to be passed such as a reference to a OpenCA::OpenSSL instance This module provides an interface to X509 structures, no specific crypto functions are performed (see the OpenCA::OpenSSL module for this) When not said different, default operational format is PEM FUNCTIONS sub new () - Create a new instance of the Class This function creates an instance of the module If you provide a certificate it will be parsed and stored in local variable(s) for later usage The function will return a blessed reference Accepted parameters are: SHELL - Reference to an initialized OpenCA::OpenSSL instance; CERTIFICATE - Certificate to stored in structure(*); INFILE FORMAT - Certificate file(*); - Format of the provided certificate, one of PEM|DER|NET(*); (- Optional parameter EXAMPLE: $x509 = new OpenCA::X509( SHELL=>$crypto, CERTIFICATE=>$self->{cert}); sub initCert () - Use a new certificate You can use a new certificate without having to get a new module reference Accepted parameters are: CERTIFICATE - Certificate data to be stored; 86 FORMAT - Provided certificate's format, one of PEM|DER|NET(*); EXAMPLE: if( not $x509->initCert( CERTIFICATE=>$self->{cert} ) ) { print "Error in storing certificate!"; } sub getParsed () - Get an hash structure from certificate By calling this function you can retrieve a reference to the parsed certificate (PERL hash) This structure will include, for example: $ret->{SERIAL} $ret->{DN} $ret->{EMAIL} $ret->{CN} $ret->{OU} $ret->{O} $ret->{C} $ret->{ISSUER} $ret->{NOT_BEFORE} $ret->{NOT_AFTER} $ret->{PK_ALGORITHM} $ret->{MODULUS} $ret->{EXPONENT} EXAMPLE: my $self->{parsedItem} = $x509->parseCertificate(); print $self->{parsedItem}->{SERIAL}; foreach $ou ( @{ $self->{parsedItem}->{OU} } ) { print "OU=$ou, "; } 87 sub status () - Get certificate status Get certificate status using provided OpenCA::CRL initialized reference as argument Returned status can be Valid, Revoked, Expired and Unknown Accepted arguments: CRL - Crl to check certificate status; The returned structure is: $status->{STATUS}; $status->{REVOKATION_DATE}; $status->{EXPIRATION_DATE}; EXAMPLE: my $status = $x509->status( CRL=>$crl ); print $status->{STATUS}; sub getPEM () - Get certificate in PEM format Get certificate in PEM format EXAMPLE: $pem = $x509->getPEM(); sub getDER () - Get certificate in DER format Get certificate in DER format EXAMPLE: $der = $x509->getDER(); sub getTXT () - Get certificate in TXT format Get certificate in TXT format EXAMPLE: $der = $x509->getTXT(); OpenCA::OpenSSL • NAME • SYNOPSIS • DESCRIPTION • FUNCTIONS o sub new () - Creates a new Class instance o sub setParams () - Set internal module variables 88 o sub errno () - Get last command errno value o sub errval () - Get last command errval value o sub genKey () - Generate a private Key o sub genReq () - Generate a new Request o sub genCert () - Generate a certificate from a request o sub crl2pkcs7 () - Convert a crl and/or certs into pkcs7 structure o sub dataConvert () - Convert data to different format o sub issueCert () - Issue a certificate o sub revoke () - Revoke a certificate o sub issueCrl () - Issue a CRL o sub SPKAC () - Get SPKAC infos o sub pkcs7Certs () - Get PKCS7 structure certificate(s) o sub getDigest () - Get a message digest o sub updateDB () - Updates the OpenSSL index.txt • Exportable constants NAME OpenCA::OpenSSL - Perl Crypto Extention to OpenSSL SYNOPSIS use OpenCA::OpenSSL; DESCRIPTION This Perl Module implements an interface to the openssl backend program It actually uses the openssl command and it is not fully integrated as PERL/C mixture Passing parameters to functions should be very simple as them have no particular order and have, often, self-explaining name Each parameter should be passed to the function like this: ( NAME=>VALUE, NAME=>VALUE, ); FUNCTIONS sub new () - Creates a new Class instance This functions creates a new instance of the class It accepts only one parameter: the path to the backend command (openssl) This is due because if it cannot find the openssl command it 89 will return an uninitialized class (default value is /usr/bin/ openssl which may not fit many distributions/OSs) EXAMPLE: my $openssl->new OpenCA::OpenSSL( $path ); sub setParams () - Set internal module variables This function can handle the internal module data such as the backend path or the tmp dir Accepted parameters are: SHELL - Path to the openssl command CONFIG - Path to the openssl config file TMPDIR - Temporary files directory STDERR - Where to redirect the STDERR file ( - Optional parameters; EXAMPLE: $openssl->setParams( SHELL=>'/usr/local/ssl/bin/openssl', CONFIG=>$ca/stuff/openssl.cnf, TMPDIR=>'/tmp', STDERR=>'/dev/null' ); sub errno () - Get last command errno value This functions returns last operation's errno value Non zero value means there has been an error EXAMPLE: print $openssl->errno; sub errval () - Get last command errval value This functions returns last operation's errval value This value usually has a brief error description EXAMPLE: 90 print $openssl->errval; sub genKey () - Generate a private Key This functions let you generate a new private key Accepted parameters are: BITS - key lengh in bits(*); OUTFILE - Output file name(*); ALGORITHM - Encryption Algorithm to be used(*); PASSWD - Password to be used when encrypting(*); ( - Optional parameters; EXAMPLE: my $key = $openssl->genKey( BITS=>1024 ); sub genReq () - Generate a new Request This function generate a new certificate request Accepted parameters are: OUTFILE - Output file(*); KEYFILE - File containing the key; PASSWD - Password to decript key (if needed) (*); DN - Subject list (as required by openssl, see the openssl.cnf doc on policy); SUBJECT - DN string (use this instead of passing separate attributes list)(*); ( - Optional parameters; EXAMPLE: my $req = $openssl->genReq( KEYFILE=>"00_key.pem", DN => [ "madwolf@openca.org","Max","","","" ] ); my $req = $openssl->genReq( KEYFILE=>"00_key.pem", SUBJECT => "CN=Madwolf, O=OpenCA, C=IT" ); 91 sub genCert () - Generate a certificate from a request This function let you generate a new certificate starting from the request file It is used for self-signed certificate as it simply converts the request into a x509 structure Accepted parameters are: OUTFILE - Output file(*); KEYFILE - File containing the private key; REQFILE - Request File; PASSWD DAYS ( - Password to decrypt private key(*); - Validity days(*); - Optional parameters; EXAMPLE: $cert = $openssl->genCert( KEYFILE=>"priv_key.pem", REQFILE=>"req.pem", DAYS=>"720" ); sub crl2pkcs7 () - Convert a crl and/or certs into pkcs7 structure This function converts certificates (optional) and a crl (also optional) into a pkcs7 structure It is used to build strucutures to load certificates/crls into some browsers Accepted parameters are: DATA - PEM|DER formatted CRL(*); INFORM - Input crl format (DER|PEM) (*); INFILE - Input crl file (*); OUTFILE - Output pkcs7 file (*); CERTSLIST - List of files containing certificates to be added to the pkcs7 structure (*); ( EXAMPLE: - Optional parameters; 92 $pkcs7 = $openssl->crl2pkcs7( DATA=>$crl->getPEM(), CERTSLIST=>[ "cert1.pem", "cert2.pem" ]); sub dataConvert () - Convert data to different format This functions will convert data you pass to another format Ir requires you to provide with the data's type and IN/OUT format Accepted parameters are: DATA - Data to be processed; INFILE - Data file to be processed (one of DATA and INFILE are required and exclusive); KEYFILE - file with the priv key (* PEM to PKCS12 only) Not needed if key is presented in DATA or INFILE too DATATYPE - Data type ( CRL | CERTIFICATE | REQUEST ); OUTFORM - Output format (PEM|DER|NET|TXT)(*); INFORM - Input format (PEM|DER|NET|TXT)(*); OUTFILE - Output file(*); PASSWD - priv key password (* PKCS12 to PEM only) omitting the PASSWD leads into an unencrypted priv key ALGO des,des3 or idea Default is des3 encryption for priv key P12PASSWD PKCS12 export password (* only needed for PKCS12) NOKEYS extract only the certificate (* PKCS12 to PEM only) No need for the PASSWD parameter with this option CACERT - CA-certificate to add if OUTFORM is PKCS#12 (*) - Optional parameters; EXAMPLES: # PEM file to TXT format print $openssl->dataConvert( INFILE=>"crl.pem", OUTFORM=>"TXT" ); # PEM file to PKCS12 format, priv key will be des3 encrypted print $openssl->dataConvert( INFILE=>"crl.pem", DATATYPE=>'CERTIFICATE', OUTFORM=>"PKCS12", 93 PASSWD=>$pem_pass, P12PASSWD=>$export_pass ); # PKCS12 data to PEM formated certificate (no key) print $openssl->dataConvert( DATA=>$pkcs12_cert, DATATYPE=>'CERTIFICATE', INFORM=>"PKCS12", NOKEYS=>1, P12PASSWD=>$export_pass ); sub issueCert () - Issue a certificate This function should be used when you have a CA certificate and a request (either DER|PEM|SPKAC) and want to issue the certificate Parameters used will override the configuration values (remember to set to appropriate value the CONFIG with the setParams func) Accepted parameters are: REQDATA REQFILE - Request; - File containing the request (one of REQDATA, REQFILE or REQFILES are required); REQFILES - An array ref to an array of files that contain the request OUTDIR - What directory to put the files from REQFILES (This is required iff you use REQFILES.) INFORM PRESERVE_DN CA_NAME look at the OpenSSL docs for adding support of multiple CAs to the conf file)(*); CAKEY CACERT DAYS START_DATE END_DATE PASSWD 94 EXTS - Extentions to be used (configuration section of the openssl.cnf file)(*); REQTYPE ( - Request type (NETSCAPE|MSIE)(*); - Optional parameters; EXAMPLE: $openssl->issueCert( REQFILE=>"myreq", INFORM=>SPKAC, PRESERVE_DN=>Y, CAKEY=>$ca/private/cakey.pem, CACERT=>$ca/cacert.pem, PASSWD=>$passwd, REQTYPE=>NETSCAPE ); sub revoke () - Revoke a certificate This function is used to revoke a certificate Accepted parameters are: CAKEY - CA private key file(*); CACERT - CA certificate file(*); PASSWD - Password to decrypt priv CA key(*); INFILE - Input PEM formatted certificate filename(*); ( - Optional parameters; EXAMPLE: if( not $openssl->revoke( INFILE=>$certFile ) ) { print "Error while revoking certificate!"; } sub issueCrl () - Issue a CRL This function is used to issue a CRL Accepted parameters are: CAKEY - CA private key file; 95 CACERT - CA certificate file; PASSWD - Password to decrypt priv CA key(*); DAYS - Days the CRL will be valid for(*); EXTS - Extentions to be added ( see the openssl.cnf pages for more help on this )(*); EXTFILE - Extensions file to be used (*); OUTFILE - Output file(*); OUTFORM - Output format (PEM|DER|NET|TXT)(*); ( - Optional parameters; EXAMPLE: print $openssl->issueCrl( CAKEY=>"$ca/private/cakey.pem", CACERT=>"$ca/cacert.pem", DAYS=>7, OUTFORM=>TXT ); sub SPKAC () - Get SPKAC infos This function returns a text containing all major info about an spkac structure Accepted parameters are: - spkac data ( SPKAC = ) (*); SPKAC INFILE - An spkac request file (*); OUTFILE ( - Output file (*); - Optional parameters; EXAMPLE: print $openssl->SPKAC( SPKAC=>$data, OUTFILE=>$target ); sub pkcs7Certs () - Get PKCS7 structure certificate(s) This function returns a PEM formatted (file or ret value) contained in the pkcs7 structure Accepted parameters are: PKCS7 - pkcs7 data (*); INFILE - A pkcs7 (signature?) file (*); 96 OUTFILE - Output file (*); ( - Optional parameters; EXAMPLE: print $openssl->pkcs7Cert( PKCS7=>$data, OUTFILE=>$target ); sub getDigest () - Get a message digest This function returns a message digest Default digest algorithm used is MD5 Accepted parameters are: DATA - Data on which to perform digest; ALGORITHM - Algorithm to be used(*); ( - Optional parameters; EXAMPLE: print $openssl->getDigest( DATA=>$data, ALGORITHM=>sha1); sub updateDB () - Updates the OpenSSL index.txt This functions updates the index.txt file and returns the output of the command in the form: =Expired Accepted parameters are: CAKEY - CA private key file; CACERT - CA certificate file; PASSWD - Password to decrypt priv CA key(*); OUTFILE - Output file(*); ( - Optional parameters; EXAMPLE: $ret = $openssl->updateDB(); ...ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đào Minh Ngọc NGHIÊN CỨU ỨNG DỤNG SINH TRẮC HỌC TRONG VIỆC ĐẢM BẢO AN TOÀN CHO HỆ THỐNG GIAO DỊCH ĐIỆN TỬ Ngành: Công nghệ thông tin... văn tập trung tìm hiểu nghiên cứu sở hạ tầng khóa cơng khai sinh trắc Nội dung luận văn ? ?Nghiên cứu ứng dụng sinh trắc học việc đảm bảo an toàn cho hệ thống giao dịch điện tử? ?? gồm có phần mở đầu,... mật mã sinh trắc học Chƣơng trình bày sở hạ tầng khóa công khai mật mã sinh trắc học Chƣơng 3: Ứng dụng sinh trắc đảm bảo an tồn thơng tin giao dịch điện tử Đề xuất giải pháp tích hợp sinh trắc