1. Trang chủ
  2. » Thể loại khá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 ThS. Công nghệ thông tin: 60 48 05

102 26 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 102
Dung lượng 3,04 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ử .2 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 .8 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 35 2.2.1 Sinh trắc học 35 2.2.2 Các khái niệm sinh trắc học vân tay 36 2.2.3 Nhận dạng sinh trắc học 42 2.3 Thuật toán mã hóa sinh trắc học 43 2.3.1 Xử lý hình ảnh nhận dạng .43 2.3.2 Sự tƣơng quan .43 2.3.3 Những yêu cầu hệ thống 44 2.3.4 Thiết kế hàm lọc 45 2.3.5 Độ an toàn hàm lọc 47 2.3.6 Bộ lọc tạm thời 47 2.3.7 Thiết kế lọc an toàn 49 2.3.8 Quá trình đăng ký/xác thực 51 2.4 Kết chƣơng 58 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Ử 59 3.1 Khảo sát thực trạng việc bảo vệ khóa bí mật 59 3.1.1 Các thiết bị Token 59 3.1.2 Các thiết bị SafeNet iKey 59 3.1.3 Biostik 60 3.2 Các cách ứng dụng sinh trắc học vào PKI 60 3.2.1 Ứng dụng sinh trắc để thẩm định ngƣời dùng .60 3.2.2 Ứng dụng khóa cá nhân từ sinh trắc học .61 3.2.3 Ứng dụng sinh trắc học để bảo vệ khóa cá nhân 61 3.3 Các giải pháp tích hợp sinh trắc học vào PKI .61 3.3.1 Tích hợp đặc trƣng sinh trắc ngƣời dùng chứng thƣ số X509 62 3.3.2 Giải pháp dùng mật mã sinh trắc để bảo vệ khóa bí mật 68 3.4 Đề xuất mơ hình BioPKI .69 3.5 Các pha làm việc BioPKI 71 3.5.1 Quá trình đăng ký 71 3.5.2 Quá trình ứng dụng chữ ký số .73 3.6 Phƣơng hƣớng triển khai .75 KẾT LUẬN 78 TÀI LIỆU THAM KHẢO .79 PHỤ LỤC 81 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 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 DANH MỤC CÁC CHỮ VIẾT TẮT 1API Application Programming Interface 2CA Certification Authority 3CNTT Công nghệ thông tin 4CSDL Cơ sở liệu 5HSM High Security Module 6LDAP Leightweight Directory Access Protocol 7PKI Public Key Infrastructure 8RA Registration Authority Rivest Shamir Adleman RSA 10 9Sub CA Subordinate CA 11 9TMĐT Thƣơng mại điện 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 Chính phủ  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ử hoạt động sản xuất kinh doanh sẵn sàng ứng dụng thƣơng mại điện tử mức cao thời gian tới Các tổ chức đào tạo quy đẩy mạnh giảng dạy thƣơng mại điện tử Kết điều tra cho thấy đến thời điểm cuối năm 2008, Việt Nam có 49 trƣờng triển khai hoạt động đào tạo thƣơng mại điện tử, gồm 30 trƣờng đại học 19 trƣờng cao đẳng Trong số 30 trƣờng đại học giảng dạy thƣơng mại điện tử, trƣờng thành lập khoa thƣơng mại điện tử, 19 trƣờng giao cho khoa kinh tế – quản trị kinh doanh phụ trách giảng dạy thƣơng mại điện tử 10 trƣờng giao cho khoa công nghệ thông tin phụ trách giảng dạy môn học này, trƣờng thành lập môn thƣơng mại điện tử Trong số 19 trƣờng cao đẳng giảng dạy thƣơng mại điện tử, trƣờng thành lập khoa thƣơng mại điện tử, trƣờng giao cho khoa kinh tế phụ trách giảng dạy thƣơng mại điện tử trƣờng giao cho khoa công nghệ thông tin phụ trách dạy mơn học này, có trƣờng cao đẳng thành lập môn thƣơng mại điện tử Vấn đề bảo vệ liệu cá nhân bƣớc đầu đƣợc quan tâm Bên cạnh nét bật trên, năm 2008 cịn chứng kiến chuyển biến có ý nghĩa lớn phát triển thƣơng mại điện tử Việt Nam giai đoạn tới Trong thƣơng mại điện tử, giao dịch đƣợc thực hoàn toàn môi trƣờng mạng, đối tác không cần phải gặp mặt trực tiếp, nên nhu cầu thông tin cá nhân lớn Giao dịch thƣơng mại điện tử doanh nghiệp Việt Nam thời gian gần tăng nhanh, khối lƣợng thông tin trao đổi ngày nhiều Tuy nhiên, vi phạm liên quan đến thông tin cá nhân ngày nhiều hơn, gây tâm lý e ngại cho cá nhân, tổ chức tham gia giao dịch thƣơng mại điện tử Thanh toán điện tử tiếp tục phát triển nhanh vào sống Nếu nhƣ năm 2007 đƣợc đánh giá năm đánh dấu bƣớc phát triển nhanh chóng tồn diện tốn điện tử, năm 2008 năm toán điện tử khởi sắc thực vào sống Đối với hệ thống tốn tầm quốc gia, sau nhiều năm tích cực triển khai, ngày tháng 11 năm 2008 Ngân hàng Nhà nƣớc Việt Nam thức đƣa vào vận hành Hệ thống toán điện tử liên ngân hàng giai đoạn II Hiện nay, Ngân hàng Nhà nƣớc Việt Nam đẩy mạnh công tác kết nạp thành viên mới, mở rộng phạm vi hoạt động Hệ thống Dịch vụ tốn thẻ có năm phát triển tích cực Đến hết năm 2008, tổ chức ngân hàng phát hành khoảng 13,4 triệu thẻ tốn, tăng 46% so với năm 2007 Tồn hệ thống ngân hàng lắp đặt đƣa vào sử dụng 7.051 máy ATM, tăng 46% so với năm 2007, số lƣợng máy POS đạt 24.000 Hệ thống toán hai liên minh thẻ lớn nƣớc Banknetvn Smartlink với 90% thị trƣờng thẻ tồn quốc đƣợc kết nối liên thơng 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} ## Serial Number ## Subject DN $ret->{EMAIL} ## Subject e-mail $ret->{CN} ## Subject CN $ret->{OU} ## Subject OU (list) $ret->{O} ## Subject Organization $ret->{C} ## Subject Country $ret->{ISSUER} ## Issuer DN $ret->{NOT_BEFORE} ## Not Before Date $ret->{NOT_AFTER} ## Not After Date (Expiration) $ret->{PK_ALGORITHM} ## Algorithm used (RSA,DSA, ) $ret->{MODULUS} ## Modulus (Size in bits) $ret->{EXPONENT} ## 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) (*); OUTFORM - Output pkcs7 structure format (DER|PEM) (*); INFILE - Input crl file (*); OUTFILE - Output pkcs7 file (*); CERTSLIST - List of files containing certificates to be added to the pkcs7 structure (*); (*) - Optional parameters; EXAMPLE: 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 - Input format (PEM|DER|NET|SPKAC)(*); PRESERVE_DN - Preserve DN order (Y|N)(*); CA_NAME - CA sub section to be used (take a look at the OpenSSL docs for adding support of multiple CAs to the conf file)(*); CAKEY - CA key file; CACERT - CA certificate file; DAYS - Days the certificate will be valid(*); START_DATE END_DATE PASSWD - Starting validity date (YYMMDDHHMMSSZ)(*); - Ending validity date (YYMMDDHHMMSSZ)(*); - Password to decrypt priv CA key(*); 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 INFILE - spkac data ( SPKAC = ) (*); - 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();

Ngày đăng: 23/09/2020, 21:10

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w