Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
2,13 MB
Nội dung
Giải pháp xác thực số MỤC LỤC LỜI CẢM ƠN MỞ ĐẦU CHƢƠNG I: CÁC KHÁI NIỆM CƠ BẢN 1.1 Các khái niệm toán học 1.1.1 Số nguyên tố nguyên tố 1.1.2 Đồng dư thức 1.1.3 Không gian Zn Zn* 1.1.4 Phần tử nghịch đảo 1.1.5 Hàm băm 1.1.5.1 Giới thiệu 1.1.5.2 Cấu trúc hàm băm 1.1.5.3 Một số loại hàm băm 10 1.2 Vấn đề mã hóa 15 1.2.1 Khái niệm mã hoá 15 1.2.2 Hệ mã hố khóa cơng khai 17 1.3 Vấn đề chữ ký điện tử 18 1.3.1 Giới thiệu 18 1.3.2 Định nghĩa 18 1.3.3 Sơ đồ chữ ký RSA 19 1.4 Xác thực 20 1.4.1 Khái niệm xác thực 20 1.4.2 Các dạng xác thực 20 1.4.2.1 Xác thực thực thể 20 1.4.2.2 Xác thực trách nhiệm văn gốc 21 1.4.3 Các phương pháp xác thực 21 1.4.4 Các giao thức xác thực 22 1.4.4.1 Giao thức thử thách trả lời 22 1.4.4.2 Giao thức mật chuyển đổi 22 1.4.4.3 Giao thức mật sử dụng lần 22 1.4.4.4 Giao thức chứng số 23 1.5 Chứng thực điện tử 23 1.5.1 Chứng thực điện tử gì? 23 Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số 1.5.2 Làm để có sử dụng chứng thực điện tử? 23 1.6 Chứng thực chéo 24 CHƢƠNG II: CHỨNG CHỈ SỐ 25 2.1 Vài nét chứng số 25 2.1.1 Chứng số gì? 25 2.1.2 Chứng gốc ? 26 2.1.3 Chứng số làm việc ? 26 2.1.4 Tại cần chứng số ? 26 2.1.5 Chứng số áp dụng vào cơng việc ? 27 2.1.6 Kiểm tra tạo chữ ký điện tử ? 28 2.2 Cơ sở hạ tầng khóa cơng khai Public Key Infrastructure – PKI 28 2.2.1 PKI ? 28 2.2.2 PKI hoạt động ? 30 2.2.3 Thành phần PKI 31 2.2.4 Phân phối khóa cơng khai 32 2.3 Thời hạn tồn việc thu hồi chứng 34 2.4 Nhà cấp chứng số (Certificate Authority - CA) 35 2.4.1 CA ? 35 2.4.2 Mơ hình CA 35 2.4.3 Chữ ký CA chứng số 37 2.5 Khuôn dạng chứng X.509 37 2.5.1 Khuôn dạng chứng số X.509 v1, v2 38 2.5.2 Đặt tên X.509 v1, v2 39 2.5.3 Khuôn dạng chứng số X.509 v3 40 2.5.4 Đặt tên khuôn dạng chứng X.509 v3 42 2.6 Đăng ký đối tƣợng 43 2.7 Quy trình xin cấp chứng số 44 CHƢƠNG III: XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ 46 3.1 Chức chƣơng trình 46 3.2 Mô tả hoạt động số giao diện chƣơng trình 46 3.2.1 Đăng ký cấp chứng 46 3.2.2 Lấy thông tin chứng 47 3.2.3 Tìm thơng tin chứng người khác 49 Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số 3.2.4 Mã hóa ký thông điệp 49 3.2.5 Giải mã thông điệp 51 3.2.6 Kiểm tra tính xác chữ ký 52 3.2.7 Thu hồi chứng 53 3.3 Cơng cụ hỗ trợ ngơn ngữ lập trình 54 3.3.1 Ngôn ngữ lập trình php5 54 3.3.2 OpenSSL PHP 58 3.3.2.1 Giới thiệu 58 3.3.2.2 Khóa chứng 58 3.3.2.3 Một số hàm OpenSSL 59 3.4 Một số đoạn mã quan trọng chƣơng trình 60 3.4.1 Tạo chứng 60 3.4.2 Mã hóa ký 62 3.4.3 Giải mã 63 3.4.4 Kiểm tra chữ ký 64 3.5 Những hạn chế hƣớng phát triển 65 3.5.1 Hạn chế chương trình 65 3.5.2 Hướng phát triển chương trình 65 KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số LỜI CẢM ƠN Em xin chân thành cám ơn Ths.Hồ Thị Hương Thơm – người bảo, hướng dẫn, cung cấp tài liệu quý báu trình học hoàn thành đồ án Em xin cám ơn thầy cô giáo khoa công nghệ thông tin – trường DHDL Hải Phịng gia đình tạo điều kiện giúp đỡ vật chất tinh thần để em học tập tốt hồn thành đồ án Sinh viên Phùng Thế Phƣơng Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số MỞ ĐẦU Sự đời internet, phát triển nhanh chóng công nghệ thông tin tạo thay đổi lớn lĩnh vực đời sống người Internet đời, nhu cầu truyền thông tin mạng nhu cầu tất yếu Và đặc biệt với đời thương mại điện tử nhu cầu rõ rệt cấp thiết Vấn đề đặt phải tạo phương pháp truyền thơng tin an tồn, tránh phá hoại, ăn cắp thông tin hay làm sai lệch thông tin Cùng với nhu cầu loạt giải pháp đời Mã hóa, chữ ký điện tử đảm bảo tính xác thực, an tồn thơng tin chưa đủ để xác thực người sử dụng cặp khóa cơng khai bí mật chối bỏ thơng tin khóa sử dụng Từ lý mà người ta thấy cần phải có bên thứ ba đứng xác nhận thông tin khóa dùng để mã hóa gắn liền với chủ thể sử dụng Chứng số đời Chứng số tệp tin điện tử quan, tổ chức cấp lưu trữ thông tin chủ thể sử dụng thông tin khóa Đồ án đề cập đến chứng số sử dụng chứng số để xác thực Đồ án gồm chương Chương I: Các khái niệm Trong chương đề cập đến số khái niệm tốn học, vấn đề mã hóa, chữ ký điện tử, xác thực, chứng thực điện tử Chương II: Chứng số Trong chương trình bày chi tiết chứng số Chương III: Xây dựng hệ thống quản lý chứng số Trong chương giới thiệu việc xây dựng chương trình hệ thống quản lý chứng số viết ngôn ngữ PHP Đồ án tốt nghiệp – Khoa cơng nghệ thơng tin trường DHDL Hải Phịng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số CHƢƠNG I: CÁC KHÁI NIỆM CƠ BẢN 1.1 Các khái niệm toán học 1.1.1 Số nguyên tố nguyên tố Số nguyên tố số chia hết cho Ví dụ: 2, 3, 5, 7, 17, … số nguyên tố Hệ mật mã thường sử dụng số nguyên tố lớn 10150 Hai số m n gọi nguyên tố ước số chung lớn chúng Ký hiệu: gcd(m,n) = Ví dụ: 14 nguyên tố 1.1.2 Đồng dư thức Cho a b số nguyên tố, n số nguyên dương a gọi đồng dư với b theo modulo n n|a-b (tức a - b chia hết cho n, hay chia a b cho n số dư nhau) Số nguyên n gọi modulo đồng dư Kí hiệu: a ≡ b (mod n) Ví dụ: 67 ≡ 11 (mod 7), 67 (mod 7) = 11 (mod 7) = Tính chất đồng dƣ: Cho a, a1, b, b1, c Z Ta có tính chất: a≡b mod n a b có số dư chia cho n Tính phản xạ: a ≡ a mod n Tính đối xứng: Nếu a ≡ b mod n b ≡ a mod n Tính giao hoán: Nếu a ≡ b mod n b ≡ c mod n a ≡ c mod n Nếu a ≡ a1 mod n, b ≡ b1 mod n a+b ≡ a1 + b1 mod n ab ≡a1b1 mod n Đồ án tốt nghiệp – Khoa cơng nghệ thơng tin trường DHDL Hải Phịng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số 1.1.3 Không gian Zn Zn* Không gian Zn (các số nguyên theo modulo n) tập hợp số nguyên {0,1,2,…,n-1} Các phép toán Zn cộng, trừ, nhân, chia thực theo module n Ví dụ: Z11 = {0,1,2,3,…,10} Trong Z11: + = 2, + = 13≡ (mod 11) Không gian Zn* tập hợp số nguyên pZn, nguyên tố n Tức là: Zn* = { p Zn | gcd (n,p) =1} Φ(n) số phần tử Zn* Nếu n số nguyên tố thì: Zn* = { p Zn |1≤ p ≤ n - 1} Ví dụ: Z2 = {0,1} Z2*= {1} gcd(1,2) = 1.1.4 Phần tử nghịch đảo Định nghĩa: Cho a Zn Nghịch đảo a theo modulo n số nguyên x Zn cho ax ≡ (mod n) Nếu x tồn giá trị nhất, a gọi khả nghịch, nghịch đảo a ký hiệu a-1 Tính chất: Cho a,b Zn Phép chia a cho b theo modulo n tích a b−1 theo modulo n, xác định b có nghịch đảo theo modulo n Cho a Zn, a nghịch đảo gcd(a, n) = Giả sử d=gcd (a, n) Phương trình đồng dư ax ≡ b mod n có nghiệm x d chia hết cho b, trường hợp nghiệm d nằm khoảng đến n - nghiệm đồng dư theo modulo n/d Ví dụ: 4-1 = (mod 9) 4.7 ≡1 (mod 9) Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số 1.1.5 Hàm băm 1.1.5.1 Giới thiệu Một hàm băm (hash function) hay giải thuật băm phương pháp sinh địa phần nhớ dành cho khóa thứ tự Các hàm cung cấp cách tạo "vân tay" số nhỏ từ loại liệu Hàm cắt trộn (thay chuyển vị) liệu để tạo giá trị thường gọi giá trị băm Giá trị băm thường biểu diễn hệ số 16 Hàm băm tốt hàm cho đụng độ băm (hash collision) miền liệu trông đợi Trong bảng băm việc xử lý liệu, đụng độ dẫn đến chi phí cao cho việc tìm kiếm ghi sở liệu Hình 1.1 Hai điều kiện sau người ta cho hai điều kiện chủ yếu cho hàm băm: Hàm băm phải hàm phía nghĩa cho x tính z=h(x) việc dễ ngược lại, biết z tính x việc cực khó (có thể quy ước dễ hay khó tính thời gian đa thức hay khơng) Hàm băm phải hàm không va chạm mạnh theo nghĩa sau đây: khơng có thuật tốn tính thời gian đa thức giả tốn “tìm x1 x2 thuộc cho x1 ≠ x2 h(x1) = h(x2)”; nói cách khác tìm hai văn khác có đại diện khó Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số Danh sách hàm băm: Hình 1.2 1.1.5.2 Cấu trúc hàm băm Hầu hết hàm băm mật mã đầu có cấu trúc giải thuật sau: Cho trước thơng điệp M có độ dài Tùy theo thuật tốn sử dụng cần bổ sung số bit vào thông điệp để nhận thơng điệp có dộ dài bội số số cho trước Chia nhỏ thông điệp thành khối có kích thước nhau: M1, M2, ,Ms Gọi H trạng thái có kích thước n bit, f “hàm nén: thực thao tác trộn khối liệu với trạng thái hành - Khởi gán H0 vector khởi tạo - H1 = f(Hi-1,Mi) với I = 1,2,3,….,s Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số Hs thông điệp rút gọn thông điệp M ban đầu 1.1.5.3 Một số loại hàm băm Hàm băm MD5: Hàm băm MD4 (Message Digest 4) giáo sư Rivest đề nghị vào năm 1990 Vào năm sau, phiên cải tiến Thông điệp ban đầu x mở rộng thành dãy bit X có độ dài bội số 512 Một bit thêm vào sau dãy bit x, tiếp đến dãy gồm d bit cuối dãy 64 bit l biểu diễn độ dài thông điệp x Dãy gồm d bit thêm vào cho dãy X có độ dài bội số 512 Quy định thể thuật toán sau: Thuật toán xây dựng dãy bit X từ dãy bit x Hình 1.3 Đơn vị xử lý trog MD5 từ 32-bit nên dãy X biểu diễn thành dãy tư X[i] 32 bit: X=X[0]X[1]………X[N-1] với N bội số 16 Thuật tốn MD5: Hình 1.4 Đồ án tốt nghiệp – Khoa cơng nghệ thơng tin trường DHDL Hải Phịng 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số 3.2.7 Thu hồi chứng Khi muốn thu hồi chứng bạn ấn vào chữ “Thu Hồi” trang chủ Một form để bạn nhâp thông tin chứng muốn thu hồi: Hình 3.10 Nếu chứng tồn form hiển thị thông tin chứng chỉ: Hình 3.11 Đồ án tốt nghiệp – Khoa cơng nghệ thơng tin trường DHDL Hải Phịng 53 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số Bạn nhập số serial chứng cần thu hồi ấn vào nút continue chứng thu hồi 3.3 Công cụ hỗ trợ ngơn ngữ lập trình 3.3.1 Ngơn ngữ lập trình php5 PHP 5.0 thức cơng bố vào ngày 13/7/2004 kiện gây nhiều ý cộng đồng nhà phát triển PHP ngơn ngữ lập trình sử dụng phổ biến để xây dựng trang web động với 16.251.453 tên miền, 1.346.521 địa IP, tính đến ngày 18/7/2004 PHP 5.0 có cải tiến vượt bậc so với PHP 4.x trước Cho đến nay, PHP coi cập nhật đáng kể vòng năm trở lại giữ mạnh vốn có PHP kể từ thời PHP/FI 2.0 tốc độ tính hiệu (Tham khảo lịch sử phát triển PHP Wikipedia địa http://vi.wikipedia.org/wiki/PHP thông tin khác PHP website cộng đồng PHP Việt Nam địa http://www.phpvietnam.net) Trở lại năm 1998, việc đưa Zend Engine vào lõi PHP Engine đem đến sức mạnh vượt trội PHP Mặc dù PHP thu hút số lượng người dùng đông đảo hạn chế khơng cung cấp thêm công cụ để xây dựng website Sáu năm sau đó, cộng đồng thực nghiêm túc xem xét lại tồn cố hữu PHP khiến nhà phát triển gặp nhiều khó khăn xử lý số vấn đề Trong số đó, nhà phát triển nhấn mạnh đến việc hỗ trợ lập trình hướng đối tượng PHP cách nửa vời, thư viện mở rộng MySQL không hỗ trợ giao thức máy khách MySQL 4.1 mới, hỗ trợ XML chắp vá hỗn độn PHP đời cải thiện vấn đề quan trọng (được viết lại hoàn toàn) kết thực ấn tượng Tuy nhiên, chưa phải tất tốt đẹp mà PHP mang đến Trong viết này, đề cập đến đặc điểm bật PHP Những đặc điểm cho phép phát triển mã lệnh ngắn hơn, đẹp động Hỗ trợ mạnh lập trình hƣớng đối tƣợng Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng 54 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số Mặc dù tính hỗ trợ đối tượng tuyên bố từ PHP 4, nhiên cộng đồng nhà phát triển nhanh chóng nhận non nớt chúng Với PHP 5, nhà phát triển từ có tay phương tiện lập trình hướng đối tượng hoàn thiện (PHP cho phép làm việc bình thường với kiểu lập trình cấu trúc) Có thể liệt kê số đặc điểm: Mơ hình đối tượng hoàn toàn dựa nguyên mẫu mơ hình Java Hàm tạo dựng thống _construct(): tạo điều kiện để di chuyển lớp từ phân cấp lớp sang phân cấp lớp khác Hàm hủy _destruct(): tạo điều kiện để ghi lại thơng tin phục vụ cho việc tìm lỗi, đóng kết nối liệu thực cơng việc giải phóng tài ngun khác Các thuộc tính phương thức public, protected, private: cho phép định nghĩa tính hữu hình thuộc tính lớp Điều quan trọng để hỗ trợ tính kế thừa tính bao gói lập trình hướng đối tượng Giao diện (Interface): tính lấy từ mơ hình Java nhằm hỗ trợ đa kế thừa Các lớp trừu tượng Cấu trúc gợi nhắc kiểu lớp (class hints) Các thuộc tính phương thức static Các thuộc tính phương thức Final 10 Một loạt phương thức hỗ trợ mạnh khác auto loading, reflection, xử lý lỗi ngoại lệ (exceptions), nhân đối tượng (object cloning), toán tử instanceof Thêm vào đó, đối tượng đồng thời gán lẫn truyền theo tham chiếu (reference handle) thay theo giá trị, nhờ lập trình viên khơng cịn phải sử dụng rải rác kí hiệu & xun suốt chương trình Các tính ngơn ngữ mở đường cho lập trình viên PHP sử dụng tối ưu sức mạnh mô hình thiết kế (pattern) Thƣ viện mở rộng MySQL đƣợc viết lại hoàn toàn Đồ án tốt nghiệp – Khoa cơng nghệ thơng tin trường DHDL Hải Phịng 55 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số Hệ quản trị CSDL MySQL song hành với PHP hình với bóng, PHP có khả hỗ trợ nhiều hệ CSDL khác Tuy nhiên, kết hợp đem đến thành công vang dội cho hai sản phẩm lạc hậu mô đun mở rộng để PHP làm việc với MySQL lại trở ngại khơng cho phép tận dụng tính hấp dẫn MySQL 4.1 cao Nhóm phát triển PHP viết thư viện mở rộng hoàn toàn mới, mạnh để hỗ trợ MySQL 4.1 5.x, mang tên MySQLi (MySQL Improved) Các tính bao gồm: Câu lệnh biên dịch trước Tham số xuất nhập có giới hạn Kết nối SSL Hàm đa truy vấn MySQLi tận dụng hỗ trợ lập trình hướng đối tượng PHP để cung cấp giao diện hướng đối tượng với MySQL Trên hết, MySQL cho phép dùng chọn lọc (subselects), chuyển tác (transactions) liệu (replication) Bộ cơng cụ XML tƣơng tác PHP cải tiến hỗ trợ XML với thư viện XML mở rộng sau: Làm việc với thể thống Được chuẩn hóa thư viện XML nhất: libxml2 Tuân thủ hoàn toàn đặc tả W3 Xử lý liệu hiệu Cung cấp công cụ xử lý XML mạnh Thêm vào đó, để tiếp tục trì tính dễ dàng PHP việc xây dựng ứng dụng web, người ta đưa vào thư viện XML cho phép đọc thay đổi dễ dàng tài liệu XML Mô đun mở rộng SimpleXML cho phép tương tác với thơng tin có văn XML thể thông tin mảng hay đối tượng, dùng vịng lặp để duyệt qua chúng, biên tập chúng chỗ cách gán giá trị vào biến Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng 56 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số Nếu bạn biết trước định dạng tài liệu, ví dụ phân tách file RSS, liệu cấu hình dùng SimpleXML tiện Nếu thích dùng DOM, bạn hứng thú với mô đun mở rộng DOM PHP 5, mô đun viết lại cải tiến nhiều so với PHP Hệ CSDL nhúng SQLITE Sự gắn kết hoàn hảo với MySQL lợi lớn cho PHP 4.x, nhiên nhiều ứng dụng web lại không cần nhiều đến khả hệ quản trị CSDL mạnh Do đó, việc phân phối kèm hệ CSDL nhúng SQLite cho phép nhà phát triển có thêm công cụ sẵn sàng để lưu trữ truy vấn liệu phương thức SQL mà không cần cài đặt hệ CSDL riêng biệt SQLite xử lý xác truy cập khóa chặn (locking) truy cập đồng thời (concurrent), hai vấn đề cộm xử lý file liệu phẳng (flat file) tự tạo SQLite đủ mạnh để xử lý phần lớn nhu cầu lưu trữ thao tác liệu thông thường Nó hỗ trợ: Chuyển tác (transactions): Truy vấn (Subqueries) Kiểm sốt tồn vẹn tham chiếu (triggers) Nhiều tính cao cấp liên quan đến CSDL hỗ trợ View SQLite tương thích với phần lớn tính chuẩn SQL92, nhiên 3.0 chưa hỗ trợ chuyển tác lồng nhau, ràng buộc khóa ngoại, hỗ trợ kiểm sốt toàn vẹn tham chiếu cách đầy đủ Bạn chí viết hàm cho người sử dụng tự định nghĩa PHP gọi chúng bên SQLite Đây tính bật từ trước đến có mơ đun mở rộng liên quan đến CSDL PHP Cơ chế xử lý lỗi sáng sủa với Exceptions PHP cung cấp mơ hình kiểm tra lỗi hồn tồn khác so với PHP Nó có tên xử lý lỗi ngoại lệ Với lỗi ngoại lệ, nhà phát triển giải phóng khỏi việc phải kiểm tra giá trị trả lại tất hàm Thay vào đó, bạn tách biệt luận lý lập trình xử lý lỗi đặt chúng nằm bên cạnh khối mã Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng 57 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số Lỗi ngoại lệ thường thấy ngơn ngữ lập trình hướng đối tượng Java C++ Hiện tại, có số mơ đun mở rộng PHP sử dụng lỗi ngoại lệ, điều thực đồng Tuy nhiên, bạn sử dụng lỗi ngoại lệ cho đoạn mã PHP Bản thực thi SOAP cao cấp SOAP thành phần chủ yếu lĩnh vực dịch vụ web phát triển nhanh Hỗ trợ SOAP PHP cấp trung bình, khơng việc có gói SOAP mà cịn chỗ gói quan trọng viết PHP thay C nên chậm Với PHP 5, cuối có mơ đun mở rộng cho SOAP viết C Hiện tại, mô đun thực thi phần lớn, tất đặc điểm nêu SOAP 1.2 Trong tương lai, mô đun cải thiện nhiều Hiện tại, so với NET hay Java hỗ trợ SOAP PHP bị xếp chiếu 3.3.2 OpenSSL PHP 3.3.2.1 Giới thiệu Trong PHP đặc biệt hỗ trợ thư viện openssl với nhiều hàm hỗ trợ việc mã hóa sinh cặp khóa cơng khai bí mật tạo chứng số Để sử dụng thư viện openssl để tạo chứng sinh khóa cần phải cài đặt hợp lệ openssl.cnf hệ thống Php tìm tới openssl.cnf sử dụng nhóm logic Môi trường biến openssl_conf ssleay_conf, thiết lập sử dụng đường dẫn cấu hình file File openssl.cnf tìm thấy miền chứng nhận mặc định định cấu hình thời gian cho opensl.dll biên dịch Thông thường mặc định đường dẫn c:\usr\local\ssl\openssl.cnf Để sử dụng thư viện openssl cần phải cấu hình lại file php.ini Bỏ dấu ”;” trước ;extension=php_openssl.dll 3.3.2.2 Khóa chứng Đồ án tốt nghiệp – Khoa cơng nghệ thơng tin trường DHDL Hải Phịng 58 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số Chứng chỉ: Trả lại giá trị X.509 sử dụng hàm openssl_x509_read() Chuỗi có định dạng file://path/to/cert.pem; Chuỗi bao gồm nội dung chứng mã hóa PEM Khóa cơng khai /khóa bí mật: Lấy giá trị khóa nhờ openssl_get_privatekey() hàm openssl_get_publickey() Với khóa cơng khai định dạng X.509 Chuỗi có định dạng file://path/to/file.pem Chuỗi bao gồm nội dung chứng /khóa, mã hóa PEM Với khóa bí mật bạn sử dụng cú pháp array($key, $passphrase) $key sử dụng lấy từ file từ nội dung ký hiệu văn $passphrase khóa cho khóa bí mật, có, khơng có 3.3.2.3 Một số hàm OpenSSL openssl_csr_export_to_file: Tạo chứng lưu vào file openssl_csr_export: Tạo chứng chuỗi openssl_csr_get_public_key: Trả lại giá trị khóa cơng khai từ chứng openssl_csr_get_subject: Trả lại thông tin chủ thể chứng openssl_csr_sign: Ký sinh chứng openssl_error_string: Trả lại thơng báo lỗi openssl openssl_free_key: Gải phóng khóa openssl_get_privatekey: Tên hiệu openssl_pkey_get_private() openssl_get_publickey: Tên hiệu openssl_pkey_get_public() openssl_open: Mở liệu mã hóa openssl_pkcs7_decrypt: Giải mã thơng điệp mã hóa theo định dạng pkcs7 Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng 59 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giải pháp xác thực số openssl_pkcs7_encrypt: Mã hóa thông điệp theo định dạng pkcs7 openssl_pkcs7_sign: Ký thông điệp theo định dạng pkcs7 openssl_pkcs7_verify: Xác thực chữ ký theo định dạng pkcs7 openssl_pkey_free: Giải phóng khóa bí mật openssl_pkey_get_details: Trả lại mảng với mơ tả khóa (bits, pkey, type) openssl_pkey_get_private: Lấy khóa bí mật openssl_pkey_get_public: Trích khóa công khai từ chứng chuẩn bị sử dụng openssl_pkey_new: Sinh khóa bí mật openssl_private_decrypt: Giải mã với khóa bí mật openssl_private_encrypt: Mã hóa với khóa bí mật openssl_public_decrypt: Giải mã với khóa cơng khai openssl_public_encrypt: Mã hóa với khóa cơng khai openssl_sign: Sinh chữ ký openssl_verify: Xác thực chữ ký openssl_x509_check_private_key: Kiểm tra khóa bí mật có phù hợp với chứng openssl_x509_export_to_file: Tạo chứng lưu vào file openssl_x509_export: Tạo chứng chuỗi openssl_x509_free: Giải phóng chứng openssl_x509_parse: Tính tốn chứng trả lại giá trị mảng openssl_x509_read: Tính toán chứng trả lại nguồn định danh cho 3.4 Một số đoạn mã quan trọng chƣơng trình 3.4.1 Tạo chứng