Thiết kế hệ thống ký và phát hành hóa đơn điện tử sử dụng chữ ký số

MỤC LỤC

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Cơ sở lý thuyết chữ ký số

     Tốc độ ký chậm: Vì lý do ký trên toàn bộ từng bit của bản tin, thêm vào đó là việc tính toán trên mật mã công khai là lớn hơn so với mật mã đối xứng, cho nên thời gian quá trình ký số là lớn và tỉ lệ thuận với độ dài của bản tin cần ký. Các hàm băm được dùng cho các sơ đồ chữ ký số kết hợp với việc đảm bảo tính toàn vẹn của dữ liệu, khi đó bản tin được băm và giá trị băm này (được xem như đại diện cho bản tin) sẽ được ký thay vì được ký trực tiếp lên bản tin gốc. Giải pháp này cấp phát cho mỗi cá nhân người sử dụng trong hệ thống một cặp khóa công khai và khóa bí mật tương ứng, cặp khóa này được đóng gói thêm các thông tin liên quan và được gọi là chứng thư số.[5][6].

     Registration Authority (RA): Cơ quan nhận đăng ký chứng thư số, có mục đích tiếp nhận các yêu cầu cấp phát chứng thư của cá nhân tổ chức, đồng thời xác minh danh tính pháp lí cho các cá nhân tổ chức, sau đó gửi yêu cầu lên CA để xin cấp phát chứng thư, sau đó gửi về cho người dùng.

    Hình 3: Ví dụ về hàm băm trên thuật toàn SHA1.
    Hình 3: Ví dụ về hàm băm trên thuật toàn SHA1.

    Sơ đồ tổng quan giải pháp

      Bước 1: Đơn vị phát hành hóa đơn (Doanh nghiệp) gửi thông tin đăng ký chứng thư cho nhà cung cấp CA. Bước 2: Doanh nghiệp cài đặt phần mềm Client Tool trên hệ điều hành Windows và kết nối USB Token với máy tính. Bước 3: Client Tool kiểm tra thông tin của chứng thư như nhà cung cấp, tên chủ chứng thư, ngày sử dụng, ngày hết hạn,.

      Nếu chứng thư hợp lệ, Client Tool sẽ cập nhật chính thức thông tin chứng thư lên server. Bước 2.2: Sau khi phát hành hóa đơn, Client Tool gửi(qua email, qua sms,…) thông tin hóa đơn cho khách hàng của đơn vị phát hành. Bước 3: Khách hàng có thể sử dụng các thông tin hóa đơn nhận được để tra cứu hóa đơn trên server.

      Tác nhân này có các ca sử dụng đăng ký chứng thư số, ký số và phát hành hóa đơn, thay thế điều chỉnh, xác thực hóa. Bước 2: Client Tool gọi đến thư viện Verify Sign của C# để xác thực hóa đơn đã được ký số. Bước 3: Thư viện Verify Sign kiểm tra xác thực hóa đơn và trả kết quả cho Client Tool.

      Biểu đồ ca sử dụng tổng quát rút gọn, chỉ tập trung vào các chức năng liên quan đến quá trình ký số và phát hành hóa đơn, được thể hiện trong hình 10. Trong biểu đồ này có ba chức năng áp dụng giải pháp chữ ký số là: đăng ký chứng thư số, ký số, phát hành hóa đơn và xác thực hóa đơn.

      Hình 7: Sơ đồ tổng quan của quá trình đăng ký chứng thư số.
      Hình 7: Sơ đồ tổng quan của quá trình đăng ký chứng thư số.

      Phân tích và thiết kế chức năng đăng ký chứng thư số .1 Đặc tả ca sử dụng đăng ký chứng thư số

        Điều kiện đầu vào Đơn vị phát hành đăng nhập thành công vào Client Tool. Đơn vị phát hành chọn chứng thư số muốn đăng ký từ danh sách chứng thư trong USB Token. Hệ thống thông báo chứng thư số đã chọn đã được đăng ký trước đó.

        Hệ thống thông báo chứng thư đã chọn đã bị thu hồi hoặc không còn hiệu lực. Biểu đồ hoạt động và biểu đồ trình tự của chức năng đăng ký chứng thư số lần lượt được thể hiện các trong hình 12 và hình 13. Bước 1: Đơn vị phát hành xem danh sách chứng thư số có trong USB Token.

        Bước 2: Đơn vị phát hành chọn một chứng thư để đăng ký với Client Tool. Bước 4: Đơn vị phát hành kiểm tra chứng thư đã được đăng ký trước đó hay chưa. Bước 5.2: Đơn vị phát hành kiểm tra chứng thư có thể dùng để ký được không.

        Giao diện đăng ký chứng thư số: Gồm chứng thư số mà đơn vị phát hành hóa đơn đã đăng ký với hệ thống, một nút để cập nhật/đăng ký chứng thư mới. Giao diện chọn chứng thư số: Gồm một danh sách các chứng thư số có trong USB Token, một nút để xác nhận sau khi chọn chứng thư và một nút để hủy thao tác chọn chứng thư.

        Hình 12: Biểu đồ hoạt động của chức năng đăng ký chứng thư số.
        Hình 12: Biểu đồ hoạt động của chức năng đăng ký chứng thư số.

        Phân tích và thiết kế chức năng ký và phát hành hóa đơn .1 Đặc tả ca sử dụng ký và phát hành hóa đơn

          Điều kiện đầu vào - Đơn vị phát hành đã đăng nhập thành công vào Client Tool. Kịch bản chính Đơn vị phát hành chọn chứng thư dùng để ký số từ danh sách chứng thư trong USB Token. Đơn vị phát hành nhập sai mã PIN nhưng vẫn trong số lần quy định, quay lại bước 2.

          Đơn vị phát hành nhập sai mã PIN quá số lần quy định, hệ thống tạm khóa USB Token. Biểu đồ hoạt động và biểu đồ trình tự của chức năng đăng ký chứng thư số lần lượt được thể hiện các trong hình 18 và hình 19. Bước 4: Đơn vị phát hành kiểm tra chứng thư có hợp lệ để ký số không.

          Bước 5.2: Đơn vị phát hành gọi phương thức tạo chữ ký số trong phạm vi USB Token. Bước 7.2.1: Nếu việc đăng nhập không thành công vì sai mã PIN, USB Token kiểm tra nếu số lần nhập sai mã PIN vẫn trong số lần quy định thì lặp lại bước 6.2. Nếu hết số lần quy định mà vẫn nhập sai mã PIN thì chuyển sang bước 8.2.1.

          Thiết kế của giao diện ký số và phát hành hóa đơn được thể hiện trong hình 20. Giao diện ký và phát hành hóa đơn: Gồm một khu vực để hiển thị danh sách các hóa đơn mới tạo lập, một nút để phát hành(quá trình phát hành chứ quá trình ký số) hóa đơn, một nút để xóa hóa đơn tạo lập và một nút để tạo hóa đơn tạo lập.

          Hình 18: Biểu đồ hoạt động của chức năng ký và phát hành hóa đơn.
          Hình 18: Biểu đồ hoạt động của chức năng ký và phát hành hóa đơn.

          Phân tích và thiết kế chức năng xác thực hóa đơn .1 Đặc tả ca sử dụng xác thực hóa đơn

            Điều kiện đầu vào Đơn vị phát hành đăng nhập thành công vào hệ thống. Biểu đồ hoạt động và biểu đồ trình tự của chức năng xác thực hóa đơn lần lượt được thể hiện các trong hình 24 và hình 25. Giao diện danh sách hóa đơn: Gồm một danh sách các hóa đơn xếp theo thứ tự và cạnh mỗi hóa đơn có một nút để xem chi tiết hóa đơn.

            Hình 24: Biểu đồ hoạt động của chức năng xác thực hóa đơn.
            Hình 24: Biểu đồ hoạt động của chức năng xác thực hóa đơn.

            XÂY DỰNG DỊCH VỤ VÀ ĐÁNH GIÁ HỆ THỐNG

              Kịch kiểm thử của các chức năng đăng ký chứng thư số, chức năng ký, phát hành hóa đơn và chức năng xác thực hóa đơn được mô tả lần lượt trong các bảng 14, 15, 16. Kết quả Nếu chứng thư số đã chọn chưa được đăng ký trước đó và hợp lệ dùng để ký, hệ thống lưu chứng thư số vào cơ sở dữ liệu, đẩy lên thông tin chứng thư lên server và hiển thị thông báo cập nhật/đăng ký chứng thư thành công. Nếu chứng thư số đã chọn đã được đăng ký trước đó hoặc đã bị thu hổi hoặc không thể dùng để ký, hệ thống hiển thị thông báo cập nhật/đăng ký chứng thư số không thành công.

              Kết quả Nếu mật khẩu nhập đúng và chứng thư số đã chọn hợp lệ để ký, hệ thống hiển thị thông báo đã ký và phát hành hóa đơn. Nhược điểm: Do việc phát triển hệ thống ký và phát hành hóa đơn điện tử trong một khoảng thời gian ngắn, các chức năng còn cơ bản, chưa đáp ứng các nhu cầu nâng cao đối với nhu cầu sử dụng của các doanh nghiệp lớn. Tuy nhiên, trong thời gian tới, nếu tiềm năng của hệ thống ký và phát hành hóa đơn điện tử theo hướng tích cực, em sẽ phát triển thêm các chức năng nhằm đáp ứng nhu cầu của doanh nghiệp lớn.

              Nghiên cứu và nắm vững lý thuyết mật mã cơ sở và chữ ký số như hệ mã khóa công khai, hàm băm, sơ đồ chữ ký số, PKI và chứng thư số để xây dựng chức năng nhằm đảm bảo an toàn của hệ thống chữ ký số. Xõy dựng lập trỡnh được giải pháp chữ ký số vào khâu kí xác nhận của quá trình phát hành hóa đơn điện tử trên nền tẩng application desktop, thông qua thư viện System.Security.Cryptography. Do thời gian ngắn, trong phạm vi của ĐATN và kiến thức, kỹ năng của bản thân còn nhiều hạn chế nên trong phạm vi đồ án tốt nghiệp không thể nghiên cứu chuyên sâu hơn, các chức năng nghiệp vụ của hệ thống vẫn còn ở mức cho cửa hàng và doanh nghiệp nhỏ.

              Nghiệp vụ hóa đơn trong công việc thực tế rất phức tạp với nhiều vấn đề phát sinh và có tính đặc thù đối với từng cửa hàng hoặc doanh nghiệp, do đó hệ thống còn cần tiếp tục xây dựng và hoàn thiện hơn nữa. Môi trường xây dựng, thử nghiệm mới chỉ có trên desktop và hệ điều hành Windows, do đó cần phát triển trên các nền tảng khác như web và hệ điều hành phổ biến khác (MacOS, iOS, Android…) để mang lại một hệ sinh thái cho người dùng sử dụng một cách đơn giản và dễ dàng.

              Bảng 15: Kịch bản kiểm thử chức năng ký và phát hành hóa đơn.
              Bảng 15: Kịch bản kiểm thử chức năng ký và phát hành hóa đơn.