Nghiên cứu phát triển hệ thống xử lý chứng từ chứa chữ ký số tại ngân hàng BIDV

98 402 0
Nghiên cứu phát triển hệ thống xử lý chứng từ chứa chữ ký số tại ngân hàng BIDV

Đ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

Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức MỤC LỤC MỤC LỤC L I C M ĐO N L I C M N NH MỤC C C K HIỆU, C C CH NH MỤC C C VI T TẮT NG NH MỤC C C H NH V , ĐỒ TH MỞ ĐẦU CHƯ NG 1: CH K SỐ VÀ C C ỨNG ỤNG THỰC TIỄN 10 1.1 Tổng quan chữ ký điện tử 10 1.2 Giới thiệu Chữ ký số 13 1.2.1 Phân lo i chữ ký số 15 1.2.2 Cơ sở hình thành chữ ký số 17 1.2.3 Ứng dụng, vai trò chữ ký số 23 1.2.4 Cấp phát xác thực chứng thư số 25 CHƯ NG 2: C C THUẬT TO N TẠO VÀ X C THỰC CH K SỐ 31 2.1 Một số hệ mật mã khóa thông dụng 31 2.1.1 Hệ mã khóa bí mật 32 2.1.2 Hệ mã khóa công khai 35 2.2 Hàm b m mật mã 37 2.2.1 Thuật toán M 37 2.2.2 Thuật toán M 39 2.2.3 Chuẩn b m an toàn SHS 41 2.3 Thuật toán RS 43 2.3.1 Cơ sở hình thành – tưởng 44 2.3.2 Mô tả thuật toán 46 2.3.3 Một số vấn đề thuật toán RS 47 2.3.4 Đánh giá độ an toàn thuật toán RS 49 2.3.5 Đánh giá chung thuật toán RS 50 2.4 Thuật toán ElGamal 51 2.4.1 Mô tả thuật toán 52 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức 2.4.2 Đánh giá thuật toán Elgamal 53 2.4.3 Thám mã hệ Elgamal 55 2.5 Thuật toán S 59 2.5.1 Mô tả thuật toán 59 2.5.2 Đánh giá thuật toán 62 2.5.3 Thám mã hệ S 65 CHƯ NG 3: P ỤNG THỰC HIỆN CHƯ NG TR NH QU N L CHỨNG TỪ CHỨ CH K SỐ TẠI I V 69 3.1 Phân tích tr ng, mô hình nghiệp vụ t i 69 3.2 Phân tích yêu cầu nghiệp vụ hệ thống 70 3.2.1 Mô tả yêu cầu chung 70 3.2.2 Yêu cầu cụ thể 74 3.2.2.1 Chức n ng phân quyền 74 3.2.2.2 Chức n ng quản lý tham số 74 3.2.2.3 Các chức n ng hệ thống 76 3.2.2.4 Báo cáo 77 3.2.3 Thiết kế atabase 77 3.3 Phát triển chương trình 84 3.4 Kết đ t 94 K T QU VÀ ÀN LUẬN 96 A Kết luận 96 B Các vấn đề tồn t i luận v n 96 C Hướng phát triển luận v n 97 TÀI LIỆU TH M KH O 98 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức L IC M O N Tác giả luận v n xin cam đoan công trình nghiên cứu riêng tác giả luận v n đúc kết từ trình nghiên cứu từ việc tập hợp nguồn tài liệu, kiến thức học đến việc tự thu thập thông tin liên quan liên hệ thực tế t i đơn vị công tác Các số liệu, kết nêu luận v n trung thực chưa công bố công trình khác Tác giả luận v n xin cam đoan giúp đỡ cho việc thực Luận v n cảm ơn thông tin trích dẫn Luận v n rõ nguồn gốc Tác giả luận v n xin chịu trách nhiệm nghiên cứu H cv t c ệ P ạm Tuấ u ạt v Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức L I CẢM N Trước tiên, tác giả luận v n xin gửi lời cảm ơn đến tất quý thầy cô giảng d y chương trình đào t o th c s , Viện Công Nghệ Thông Tin Truyền Thông, Đ i học ách Khoa Hà Nội, người truyền đ t cho tác giả kiến thức hữu ích để làm sở cho tác giả thực tốt luận v n Với lòng kính trọng biết ơn, tác giả luận v n xin bày tỏ lời cảm ơn tới TS Nguyễn Hữu Đức khuyến khích, tận tình hướng dẫn thời gian thực luận v n Mặc dù trình thực luận v n có giai đo n không thuận lợi thầy hướng dẫn, bảo cho tác giả luận v n nhiều kinh nghiệm thời gian thực đề tài Tác giả luận v n xin gửi lời cảm ơn đến Phòng phát triển phần mềm, Trung tâm Công nghệ thông tin, Ngân hàng thương m i cổ phần đầu tư phát triển Việt Nam - BIDV nơi tác giả công tác giúp đỡ trình thu thập liệu thông tin luận v n Sau tác giả luận v n xin gửi lời biết ơn sâu sắc đến gia đình t o điều kiện tốt cho tác giả luận v n suốt trình học thực luận v n o thời gian có h n kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận v n nhiều thiếu, mong nhận ý kiến góp ý Thầy/Cô b n học viên H cv t c ệ P ạm Tuấ u v ạt Luận v n th c s k thuật NH MỤC C C C GVHD: TS Nguyễn Hữu Đức HIỆU C C CH v tt t ễ gả VI T T T ộ du g NSD Người sử dụng KH Khách hàng: Là tổ chức ( ao gồm Công ty, doanh nghiệp, đơn vị HCSN) ký kết hợp đồng Tiền gửi với I V KSV Kiểm soát viên GDV Giao dịch viên PDF Portable Document Format CKS Chữ ký số BIDV Ngân hàng TMCP Đầu tư Phát triển Việt Nam DSAP Digital Signature Authentication Program - Là chương trình xử lý chứng từ chứa chữ ký số nhận từ khách hàng TTCNTT Trung tâm Công nghệ Thông tin Ngân hàng TMCP Đầu tư Phát triển Việt Nam CA Certificate Authority – Nhà cung cấp chứng thực số SKC Symmtric Key Crytosystem – Hệ mật mã khóa đối xứng PKI Public Key Infrastructure – Hệ thống mật mã khóa công khai hay phi đối xứng PKC Public Key Cryptosystem – xem PKI GCD Greatest Common Divisor – Ước chung lớn Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức NH MỤC C C ẢNG ảng 1: Ví dụ RS 45 ảng 2: So sánh thời gian t o khóa, t o chữ ký xác nhận chữ ký S RSA 63 ảng 3: Mô hình xử lý nghiệp vụ t i 69 ảng 4: Luồng xử lý nghiệp vụ hệ thống 70 ảng 5: ảng Sys_param 78 ảng 6: ảng Log_User 78 ảng 7: ảng Log_Service 79 ảng 8: ảng Exception_time 79 ảng 9: ảng ranch 80 ảng 10: ảng S_SEQ 80 ảng 11: ảng OCUMENT_TYPE 80 ảng 12: ảng C _PROVI ER 81 ảng 13: ảng CUSTOMER 81 ảng 14: ảng R NCH_CUSTOMER 82 ảng 15: ảng CUSTOMER_SERI L 82 ảng 16: ảng OCUMENT_S P 83 ảng 17: ảng OCUMENT_FILE 83 ảng 18: Phương thức nhận yêu cầu xử lý từ NS 85 ảng 19: Phương thức để xác thực chứng từ chứa CKS 86 ảng 20: Lớp lưu thông tin CKS chứng từ 88 ảng 21: Phương thức xác thực thông tin CKS 89 ảng 22: Phương thức kiểm tra CKS tài liệu P F 91 ảng 23: Phương thức kiểm tra CKS tài liệu Excel 92 ảng 24: Phương thức kiểm tra CKS bị thu hồi chưa 93 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức NH MỤC C C H NH V Ồ TH nh 1: Mô hình chung chữ ký điện tử 11 nh 2: Mô tả việc t o kiểm tra chữ ký (wiki) 14 nh 3: Mô tả ho t động hàm b m 22 nh 4: Quy trình cấp phát Chứng thực số 27 nh 5: Quy trình thẩm định chứng thực số 28 nh 6: Sơ đồ ES 33 nh 7: Sơ đồ giải thuật sinh mã ES với cấu trúc 16 vòng lặp 33 nh 8: Sơ đồ nguyên lý ho t động mật mã khóa công khai 36 nh 9: Sơ đồ thuật toán M 38 nh 10: Sơ đồ giải thuật M 40 nh 11: Sơ đồ SH -1 42 nh 12: Ví dụ RS 45 nh 14: Mô tả thuật toán S 61 nh 15: Thời gian t o khóa RS S 64 nh 16: Thời gian t o chữ ký RS S 64 nh 17: Thời gian xác nhận chữ ký RS S 65 nh 18: Form tải chứng từ 94 nh 19: Form quản lý chứng từ 94 nh 20: Thông tin chi tiết chứng từ 95 nh 21: áo cáo chi tiết chứng từ 95 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức MỞ ẦU Trong đời sống hàng ngày, chữ ký (viết tay) v n hàng ngày thường thấy đ i diện mặt “bản quyền” “tán đồng, thừa nhận” nội dung v n Chẳng h n việc ký vào phiếu nhận tiền từ ngân hàng, hợp đồng mua bán, chuyển nhượng, thừa kế, tố tụng… Thông thường chữ ký viết tay v n dùng để xác nhận người ký Vậy yếu tố làm nên “sức thuyết phục” nó? Về mặt lý tưởng [7] : - Chữ ký chứng thể người ký có chủ định ký v n - Chữ ký thể “chủ quyền”, làm cho người nhận v n biết người ký v n - Chữ ký “tái sử dụng”, tức phần v n mà chép sang v n khác - V n ký thay đổi - Chữ ký giả m o thứ chối bỏ (người ký v n phủ định việc ký v n người khác t o chữ ký đó) Trên thực tế, việc t o mô hình “lý tưởng” không dễ việc ký v n giấy giả m o chữ ký, nhiên với khả n ng kiểm định sát việc xác thực chữ ký đ t kết xác định Tuy nhiên đồng hành với phát triển vượt bậc công nghệ thông tin, dẫn đến việc xử lý thông tin số trở nên ngày phổ biến kéo theo việc xác thực thông điệp, chứng từ, giao dịch điện tử ngày trở nên cần thiết Xu hướng quốc tế hóa toàn cầu hóa ảnh hưởng đến phát triển giới Việc trao đổi thông tin từ yêu cầu nhanh gọn, xác đặc biệt phải an toàn Việc trao đổi thông tin, chứng thực thông tin theo phong cách truyền thống làm giảm tốc độ, xác thông tin Những công Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức việc mang tính chất thủ công gây chậm trễ thiếu an đoàn việc trao đổi thông tin Chính vậy, với phát triển công nghệ thông tin, việc ứng dụng chữ ký số (CKS) - hình thức chữ ký điện tử vào giao dịch nội bộ, giao dịch thương m i, trao đổi thông tin doanh nghiệp ngày sâu rộng Việc ứng dụng CKS đem l i cho doanh nghiệp, tổ chức nhiều lợi ích như: tiết kiệm chi phí giấy tờ, thời gian luân chuyển ho t động quản lý công v n, giấy tờ đồng thời đảm bảo toàn vẹn liệu chứng chống chối bỏ trách nhiệm nội dung ký, giúp cho doanh nghiệp yên tâm với giao dịch điện tử môi trường Internet Hiện chữ ký số doanh nghiệp sử dụng rộng rãi việc kê khai thuế, kê khai Hải quan, trao đổi email… Với mục tiêu đặt vậy, nội dung, kết nghiên cứu luận v n trình bày ba chương sau:  Chương Chữ ký số ứng dụng thực tiễn  Chương Các giải thuật để t o kiểm tra chữ ký số  Chương p dụng thực chương trình quản lý chứng từ chứa chữ ký số t i Ngân hàng TMCP đầu tư phát triển Việt Nam - BIDV Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức CHƯ NG 1: CH SỐ VÀ C C ỨNG ỤNG THỰC TIỄN Trong chương tác giả giới thiệu tổng quan chữ ký số ứng dụng thực tiễn chữ ký số để từ nêu mục đích luận văn đưa hướng giải pháp, ứng dụng 1.1 Tổ g qua c ký đ ệ tử Chữ ký điện tử (Electronic signature) thông tin kèm theo liệu (v n bản, hình ảnh, video…) nhằm mục đích xác định người chủ liệu để người nhận kiểm tra tính vẹn toàn liệu gốc Chữ ký điện tử chữ ký tay thông thường có mục đích chung để xác định nguồn gốc cùa “dữ liệu”, nhiên chúng có số điểm khác nhau, điểm khác biệt tính đảm bảo an toàn Với chữ ký tay thông thường, việc kiểm tra dựa cách so sánh với chữ ký xác thực khác (chữ ký mẫu) Đây điểm yếu chữ ký tay, lẽ chữ ký tay dễ bị giả m o, không an toàn Nhằm mục đích t ng tính xác thực cao, chữ ký điện tử kiểm tra nhờ dùng thuật toán kiểm tra chữ ký điện tử, việc ng n chặn giả m o chữ ký cách an toàn xác Hiện nay, tất nước phát triển phát triển, m ng máy tính ngày đóng vai trò thiết yếu l nh vực ho t động toàn xã hội nhu cầu bảo mật thông tin đặt lên hàng đầu Điển hình việc mã hóa bảo mật thông tin số doanh nghiệp, dùng chữ ký số xác thực email trao đổi thông tin, kiểm soát truy cập vào sàn thương m i điện tử đơn đặt hàng, ngân hàng điện tử, mua sắm trực tuyền… mà vai trò chủ yếu chữ ký số điện tử Trên thực tế, chữ ký điện tử không thực cho giao dịch điện tử m ng Internet mà qua hệ thống m ng viễn thông di động Đặc biệt, nhiều nước giới không triển khai ứng dụng chữ ký điện tử m ng máy tính mà áp dụng m ng điện tho i di động để thực giao 10 Luận v n th c s k thuật 3.3 GVHD: TS Nguyễn Hữu Đức P át tr ể c ươ g trì Trong phần này, tác giả không trình bày hết nội dung chương trình mà đưa phần xử lý nội dung CKS để bám sát vào nội dung đề tài Do chương trình xây dựng web, dựa mô hình ba lớp MVC công cụ Rational pplication eveloper, nên phần nhận request từ phía thao tác NS xử lý t i servlet: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType(Constants.TEXT_CONTENT_TYPE); String output = null; String docNo = StringUtils.trimToEmpty(request.getParameter("doc_no")); if ("verify".equals(action) && checkPermission(docNo)) { output = DSAPUtils.verifyDSAP(docNo, currentUser.get_UserName()); writeLog(request, "Xác thực hồ sơ " + docNo + " " + output); } else if ("importSalary".equals(action) && checkPermission(docNo)) { output = DSAPUtils.import2OApp(docNo, currentUser.get_UserName(), currentUser.get_BrCode()); writeLog(request, "Đẩy vào chương trình khác " + docNo + " " + output); } else if ("process".equals(action)) { output = dao.processDoc(docNo, currentUser.get_UserName()); writeLog(request, "Nhận xử lý " + docNo + " " + output); } else if ("finish".equals(action)) { output = dao.finishDoc(docNo, currentUser.get_UserName()); writeLog(request, "Kết thúc xử lý " + docNo + " " + output); } else if ("markErrorContent".equals(action)) { output = dao.markErrorContentDoc(docNo, currentUser.get_UserName()); writeLog(request, "Đánh đấu lỗi nội dung " + docNo + " " + output); } else { 84 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức output = Constants.NO_PERMISSION; } response.getWriter().write(output); } ả g 18: P ươ g t ức y u cầu xử ý từ NS Ở đây, ta quan tâm đến phần xác thực chữ ký số Hàm xác thực CKS verify S P đặt class S PUtils package vn.bidv.dsap.util chương trình public static String verifyDSAP(String docNo, String user) { try { Collection dtos = dao getDocumentFileByDocNo(docNo); byte[] primaryFile = null; for (DocumentFileDTO dto : dtos) { byte[] bytes = getFile(dto); if (dto.getIsPrimary() == 1) { primaryFile = bytes; } DSAPSignatureInfo dsapSignatureInfo = DSAPSignature.verify( bytes, dto.getExtendtionType(), user); if (dsapSignatureInfo != null) { dao.updateVerifyDocumentFile(Integer.toString(dto.getId()), dto.getMd5hexStore(), (dsapSignatureInfo.getX509Certificate().getSerialNumber()).toString(), dsapSignatureInfo.getX509Certificate().getNotAfter(), dsapSignatureInfo.getState(), dsapSignatureInfo.getErrorDesc(), docNo); } else { dao.updateVerifyDocumentFile(Integer.toString(dto.getId()), dto.getMd5hexStore(), null, null, Constants.SignatureCode.NO_SIGN, null, docNo); } } int contentValid = 0; String contentInfo = "Thành công!"; 85 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức int docType = dao.getDocumentType(docNo); if (docType == Constants.DSAP_SALARY_TYPE) { SalaryFile sal = new SalaryFile(primaryFile); if (sal.getSalaryDTOs() == null || sal.getSalaryDTOs().size() < 1) { contentValid = 1; contentInfo = "File lương không hợp lệ!"; } else { contentInfo = sal.getValidateContent(); // xac thuc noi dung if (!Constants.RETURN_SUCESS.equals(contentInfo)) { contentValid = 1; if (contentInfo.length() > 500) { contentInfo = contentInfo.substring(500) + " "; } } else { contentInfo = "Thành công! Tổng số tiền " + Utils.formatMoney(sal.getTotalAmount()) + "/Tổng số ghi: " + sal.getSalaryDTOs().size(); } } } contentInfo = contentInfo == null ? "" : (contentInfo.length() > 999 ? contentInfo.substring(0,999) : contentInfo); dao.updateVerifyDSAP(docNo, contentValid, contentInfo); } catch (IOException e) { return e.toString(); } return Constants.RETURN_SUCESS; } ả g 19: P ươ g t ức để xác t 86 c c ứ g từ c ứa C S Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức Trong phương thức trên, ta thấy sử dụng phương thức verify từ class S PSignature nằm package vn.bidv.dsap.signature trả kiểu (DSAPSignatureInfo) định ngh a package vn.bidv.dsap.signature S PSignatureInfo định ngh a sau: public class DSAPSignatureInfo { private X509Certificate x509Certificate; private boolean isValidate; private Calendar dateSign; private String errorDesc; private int state; public DSAPSignatureInfo() { // TODO Auto-generated constructor stub isValidate = true; } public void setX509Certificate(X509Certificate x509Certificate) { this.x509Certificate = x509Certificate; try { x509Certificate.checkValidity(new Date()); } catch (Exception e) { // TODO: handle exception this.isValidate = false; this.state = 103; System.err.println("expire date"); } } public X509Certificate getX509Certificate() { return x509Certificate; } public void setIsValidate(boolean isValidate) { this.isValidate = isValidate; } 87 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức public boolean getIsValidate() { return isValidate; } public void setDateSign(Calendar dateSign) { this.dateSign = dateSign; } public Calendar getDateSign() { return dateSign; } public void setErrorDesc(String errorDesc) { this.errorDesc = errorDesc; } public String getErrorDesc() { return errorDesc; } public int getState() { return state; } public void setState(int state) { this.state = state; } } ả g 20: Lớp ưu t ô g t C S tro g c ứ g từ Ta thấy, chương trình sử dụng lớp X509Certificate thư viện java.security.cert ịch vụ xác thực X509 định d ng chứng sử dụng phổ biến hầu hết nhà cung cấp sản phẩm PKI triển khai Tiếp đến, xem định ngh a phương thức verify class S PSignature: 88 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức public static DSAPSignatureInfo verify(byte[] bytes, String extention, String user) throws RemoteException { DSAPSignatureInfo dsapSignatureInfo = null; if (Constants.PDF_EXTENDTION_TYPE.equals(extention)) { dsapSignatureInfo = PDFSignature.getDSAPSignatureInfo(bytes); } else { dsapSignatureInfo = XLSXSignature.getDSAPSignatureInfo(bytes); } if (dsapSignatureInfo != null && dsapSignatureInfo.getIsValidate()) { if (checkRevoke(dsapSignatureInfo.getX509Certificate() getSerialNumber(), user)) { dsapSignatureInfo.setState(102); dsapSignatureInfo.setIsValidate(false); } } return dsapSignatureInfo; } ả g 21: P ươ g t ức xác t ct ô gt C S Ta thấy, chương trình có khả n ng cho phép xác thực CKS hai lo i file pdf (Portable Document Format) Excel, nên việc kiểm tra chữ ký tách làm hai phần tách biệt dựa theo đuôi mở rộng file cần xác thực, việc xây dựng hai lớp P FSignature XLSXSignature package vn.bidv.dsap.signature Tương ứng với chúng hai hàm lấy thông tin CKS xây dựng sau: public class PDFSignature { public static DSAPSignatureInfo getDSAPSignatureInfo(byte[] docPdf) { try { BouncyCastleProvider provider = new BouncyCastleProvider(); Security.addProvider(provider); Certificate certChain[]; PdfReader reader = new PdfReader(docPdf); AcroFields af = reader.getAcroFields(); ArrayList signatureNameNames = af.getSignatureNames(); String signatureName = ""; 89 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức Iterator it = signatureNameNames.iterator(); while (it.hasNext()) { DSAPSignatureInfo dsap = new DSAPSignatureInfo(); try { signatureName = (String) it.next(); PdfPKCS7 pk = af.verifySignature(signatureName); if (pk == null) { dsap.setIsValidate(false); dsap.setState(Constants.SignatureCode.INVALID_SIGN); dsap.setErrorDesc("Chữ ký điện tử không đúng!"); } dsap.setDateSign(pk.getSignDate()); if (!pk.verify()) { dsap.setIsValidate(false); dsap.setErrorDesc("Chứng từ thay đổi sau ký!"); dsap.setState(Constants.SignatureCode.INVALID_SIGN); } certChain = pk.getSignCertificateChain(); X509Certificate cert = ((X509Certificate[]) certChain)[0]; dsap.setX509Certificate(cert); } catch (Exception e) { System.err.println("PDF Digital signature exception: " + e.toString()); } return dsap; } } catch (Exception e) { System.err.println("PDF e.toString()); } return null; 90 Digital signature exception: " + Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức } } ả g 22: P ươ g t ức k ểm tra C S tr tà ệu P F public class XLSXSignature { public static DSAPSignatureInfo getDSAPSignatureInfo(byte[] xlsx) { OOXMLProvider.install(); try { InputStream pdfInput = new ByteArrayInputStream(xlsx); List signatureParts = OOXMLSignatureVerifier.getSignatureParts(new ByteArrayInputStream(xlsx)); for (PackagePart signaturePart: signatureParts) { DSAPSignatureInfo dsap = new DSAPSignatureInfo(); try{ Document signatureDocument = OOXMLSignatureVerifier.loadDocument(signaturePart); NodeList signatureNodeList = signatureDocument.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature"); Node signatureNode = signatureNodeList.item(0); KeyInfoKeySelector keySelector = new KeyInfoKeySelector(); DOMValidateContext domValidateContext = new DOMValidateContext(keySelector, signatureNode); domValidateContext.setProperty("org.jcp.xml.dsig.validateManifests", Boolean.TRUE); OOXMLURIDereferencer dereferencer = new OOXMLURIDereferencer(pdfInput); domValidateContext.setURIDereferencer(dereferencer); XMLSignatureFactory xmlSignatureFactory = xmlSignature = XMLSignatureFactory.getInstance(); XMLSignature 91 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức xmlSignatureFactory.unmarshalXMLSignature(domValidateContext); if(!DSAPSignature.checkValidate(xmlSignature, domValidateContext)) { //throw IHTKKException.createException("IHTKK-0502", "Chữ ký điện tử không đúng"); dsap.setIsValidate(false); dsap.setErrorDesc("Sai chữ ký điện tử!"); dsap.setState(Constants.SignatureCode.INVALID_SIGN); } else { System.err.println("Chữ ký hợp lệ"); } dsap.setX509Certificate(keySelector.getCertificate()); } catch(Exception ex){ ex.printStackTrace(); } pdfInput.close(); return dsap; } } catch (Exception e) { System.err.println("XLSX Digital signature exception: " + e.toString()); } return null; } …… } ả g 23: P ươ g t ức k ểm tra C S tr tà ệu Excel Đối với lớp P FSignature, để xác thực CKS, tác giả có sử dụng thư viện itextpdf-5.5.2.jar, lớp XLSXSignature, tác giả l i sử dụng thư viện xmlsec-1.4.4.jar để thực xác thực CKS IText thư viện xử lý file định d ng pdf miễn phí mã nguồn mở hàng đầu nay, viết ngôn ngữ java runo Về sau thư viện phát triển phiên dành cho NET, có tên 92 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức Itextsharp Với itext, ta tích hợp vào ứng dụng để : t o file pdf, xử lý cắt, ghép file pdf, đặc biệt việc ký xác thực CKS file pdf Vấn đề cuối sau kiểm tra CKS ký chứng từ có xác so với đ ng ký khách hàng với I V không, việc kiểm tra đồng thời xem CKS có bị nhà cung cấp C thu hồi hay chưa Việc kiểm tra thu hồi thực hàm checkRevoke lớp S PSignature Thông thường, với nhà cung cấp C , họ có danh sách chứa thông tin CKS bị thu hồi công bố cách sẵn sàng thông qua đường dẫn URI cụ thể tùy C ựa vào đó, ta kiểm tra xem liệu CKS mà chương trình nhận bị thu hồi hay chưa public static boolean checkRevoke(BigInteger serialNumer, String user) throws RemoteException { String output = ""; DSAPWebserviceProxy ws = new DSAPWebserviceProxy(DBConnector getSystemPros().get( Constants.SystemProperties.DSAP_WEBSERVICE_URL)); String input = "203" + user + "" + serialNumer.toString() + ""; output = ws.submit(input); boolean result = "0" equals(Utils.getTag(output, "", "")) ? false : true; return result; } ả g 24: P ươ g t ức k ểm tra C S bị t u c ưa Như vậy, việc xác thực CKS chương trình đảm bảo cho NS xác định được, liệu CKS tài liệu mà khách hàng gửi đến có so với họ đ ng ký hay không, đồng thời giúp NS xác định CKS bị C thu hồi hay chưa 93 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức Điều đảm bảo điều nòng cốt chương trình giúp đ t mục đích chương trình 3.4 t đạt ưới số hình ảnh lấy từ chương trình sau thực phát triển Wepsphere pplication Server Ả Ả 17: Form tả c ứ g từ 18: Form 94 ý c ứ g từ Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức Ả Ả 19: T ô g t c 20: áo cáo c 95 t t c ứ g từ t t c ứ g từ Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức T QUẢ VÀ ÀN LUẬN t u A Luận v n tốt nghiệp tác giả với đề tài: “Nghiên cứu phát triển hệ thống xử lý chứng từ chứa chữ ký số t i Ngân hàng I V” hoàn thành Đề tài giải vấn đề sau: - Tìm hiểu khái niệm, tính chất, vai trờ chữ ký điện tử nói chung chữ ký số nói riêng - Tìm hiểu thuật toán, phương pháp phổ biến dùng để xây dựng xác thực chữ ký số - p dụng thực tế vào chương trình quản lý chứng từ chứa chữ ký số Ngân hàng TMCP đầu tư phát triển Việt Nam - BIDV Các kết đ t đề tài: - Đề tài đưa khái niệm bản, tính chất ứng dụng chữ ký số vào thực tiễn Cùng với việc trình bày số phương pháp phổ biến việc t o kiểm tra chữ ký số, việc đánh giá so sánh phương pháp - Tác giả dựa vào toán cụ thể t i nơi công tác, phân tích yêu cầu áp dụng với lý thuyết tìm hiểu để xây dựng chương trình quản lý chứng từ chứa chữ ký số t i ngân hàng I V Kết cho thấy đáp ứng chương trình nghiệp vụ ngân hàng đ t kết mong muốn B Các vấ đề cò tồ tạ tro g u v Mặc dù tác giả cố gắng với tất nỗ lực thân, giúp đỡ tận tình cán hướng dẫn kiến thức thời gian có h n nên việc xây dựng ứng dụng khó kh n sau: - Có nhiều thư viện có khả n ng sử dụng để lấy thông tin xác thực chữ ký từ định d ng v n khác Chính thư viện có ưu 96 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức nhược điểm riêng so với thư viện khác, cần thực tìm hiểu thêm để lựa chọn thư viện thích hợp để tối ưu hóa việc xác thực chữ ký số chương trình - Việc đẩy chứng từ số vào chương trình phải qua bước “thủ công” qua giao dịch viên đẩy vào chương trình, chưa có khả n ng mở rộng ph m vi sử dụng chương trình khách hàng trực tiếp thông qua kênh trực tiếp tải lên chứng từ số nhằm rút gọn bước trung gian từ khách hàng gửi chứng từ cho giao dịch viên để thực tải chứng từ C Hướ g p át tr ể u v Do điều kiện cá nhân h n chế, nên vấn đề nghiên cứu “Xử lý chứng từ chứa chữ ký số t i ngân hàng I V” khuôn khổ luận v n dừng l i việc nghiên cứu phát triển để đáp ứng yêu cầu ban đầu từ phía ban nghiệp vụ Vì vậy, nghiên cứu vấn đề tập trung triển khai theo hướng sau: - Tìm hiểu thêm thư viện phương pháp xác thực chữ ký số lo i tài liệu chứng từ điện tử cho việc xử lý đ t độ xác cao tốc độ xử lý nhanh thuận tiện cho việc lập trình - Tìm hiểu để t ng khả n ng tích hợp chương trình S P với chương trình khác cho việc tải lên chứng từ xử lý chứng từ đ t hiệu cao nhất, giảm bước trung gian không cần thiết đ t mục đích cuối mong muốn tài liệu chứng từ khách hàng tải lên 97 Luận v n th c s k thuật GVHD: TS Nguyễn Hữu Đức TÀI LIỆU TH M [1] MENEZES, P V N OORSCHOT, pplied Cryptography”, CRC Press, 1996 N HẢO S V NSTONE, “Handbook of [2] Chaum, David (1983) "Blind signatures for untraceable payments" [3] Chaum, David; van Heyst, Eugene (1991) "Group signatures" [4] Carlisle Adams, Steve Lloyd Understanding PKI: Concepts, Standards, and Deployment Considerations, Second Edition November 06, 2002 [5] Dimitrios Poulakis, Some Lattice Attacks on DSA and ECDSA, November 10, 2010 [6] D J Guan, RSA Cryptosystem andFactorization, August 25, 2003 [7] Ph m Huy Điển , Mã hóa thông tin 2003 [8] Đặng ình Phương, Luận v n cao học – Đ i học khoa học tự nhiên TP.Hồ Chí Minh - Nghiên cứu kiến trúc xây dựng hệ thống chứng thực tập trung [9] TS Lê Đức Phong, Cryptographic protocols 2009 [10] TS.Nguyễn Đ i Thọ, ộ môn M ng & Truyền thông Máy tính Khoa Công nghệ Thông tin Slide giảng N TOÀN MẠNG [11] TS Nguyễn Khanh V n, Giáo trình Cơ sở an toàn thông tin [12] William Stallings, Cryptography and Network Security Principles and Practices, Fourth Edition, November 16, 2005 [13] Trang Web : http://vi.wikipedia.org/wiki/Chữ_ký_số [14] Burt Kaliski,RSA Laboratories, The Mathematics of the RSA Public-Key Cryptosystem [15] Ngô uy Kiên, Các phương pháp phân lo i chữ ký số, 05/2014 98 ... TMCP Đầu tư Phát triển Việt Nam DSAP Digital Signature Authentication Program - Là chương trình xử lý chứng từ chứa chữ ký số nhận từ khách hàng TTCNTT Trung tâm Công nghệ Thông tin Ngân hàng TMCP... qua chứng thực khóa công khai Quá trình sử dụng chữ ký số bao gồm trình: tạo chữ ký kiểm tra chữ ký [13] Một sơ đồ chữ ký số thường chứa hai thành phần thuật toán ký thuật toán xác minh Ngoài chứa. .. kết nghiên cứu luận v n trình bày ba chương sau:  Chương Chữ ký số ứng dụng thực tiễn  Chương Các giải thuật để t o kiểm tra chữ ký số  Chương p dụng thực chương trình quản lý chứng từ chứa chữ

Ngày đăng: 26/07/2017, 21:03

Mục lục

  • danh muc ky kieu, chu viet tat

  • danh muc hinh ve, do thi

  • ket qua va ban luan

  • tai lieu tham khao

Tài liệu cùng người dùng

Tài liệu liên quan