XÂY DỰNG HỆ THỐNG KÝ VÀ PHÁT HÀNH HÓA ĐƠN ĐIỆN TỬ

46 1 0
Tài liệu đã được kiểm tra trùng lặp
XÂY DỰNG HỆ THỐNG KÝ VÀ PHÁT HÀNH HÓA ĐƠN ĐIỆN TỬ

Đ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

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ố. Đã khảo sát, phân tích và thiết kế hệ thống khá chi tiết và rõ ràng. 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.

Trang 1

XÂY DNG H THNG KÝ VÀ

Trang 2

MỤC LỤC

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 2

LỜI CẢM ƠN 3

TÓM TẮT NỘI DUNG ĐỒÁN TỐT NGHIỆP 4

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

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

2.2.2 Sơ đồtổng quan của quá trình ký sốvà phát hành hóa đơn 21

2.2.3 Sơ đồtổng quan của quá trình xác thực hóa đơn 23

2.2.4 Biểu đồca sử dụng tổng quát 24

2.3 Phân tích và thiết kếchức năng đăng ký chứng thư số 25

2.3.1 Đặc tảca sử dụng đăng ký chứng thư số 25

2.3.2 Sơ đồhoạt động của chức năng đăng ký chứng thư số 26

2.3.3 Thiết kếgiao diện của chức năng đăng ký chứng thư số 29

2.4 Phân tích và thiết kếchức năng ký và phát hành hóa đơn 31

2.4.1 Đặc tảca sử dụng ký và phát hành hóa đơn 31

Trang 3

2.4.3 Thiết kế giao diện của chức năng ký số và phát hành hóa đơn 35

2.5 Phân tích và thiết kế chức năng xác thực hóa đơn 36

2.5.1 Đặc tả ca sử dụng xác thực hóa đơn 36

2.5.2 Sơ đồ hoạt động của chức năng xác thực hóa đơn 37

2.5.3 Thiết kế giao diện của chức năng xác thực hóa đơn 38

2.6 Biểu đồ lớp 39

2.7 Thiết kế cơ sở dữ liệu 41

2.7.1 Biểu đồ thực thể liên kết (E-R Diagram) 41

2.7.2 Sơ đồ bảng cơ sở dữ liệu 43

CHƯƠNG 3: XÂY DỰNG DỊCH VỤ VÀ ĐÁNH GIÁ HỆ THỐNG 45

3.1 Môi trường triển khai 45

3.2 Biểu đồ mô hình triển khai 45

Trang 4

DANH MỤC HÌNH ẢNH

Hình 1: Số doanh nghiệp sử dụng HĐĐT.[1] 11

Hình 2: Sơ đồ mã truyền tin dựa trên cơ sở mã hóa không khai 14

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

Hình 4: Sơ đồ ký số 17

Hình 5: Kiến trúc cở sở của PKI 18

Hình 6: Ví dụ các trường của một chứng thư 20

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

Hình 8: Sơ đồ tổng quan của quá trình ký số và phát hành hóa đơn 22

Hình 9: Sơ đồ tổng quan của quá trình xác thực hóa đơn 23

Hình 10: Biểu đồ ca sử dụng tổng quát 24

Hình 11:Biểu đồ ca sử dụng đăng ký chứng thư số 25

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

Hình 13: Biểu đồ tuần tự của chức năng đăng ký chứng thư số 28

Hình 14: Giao diện đăng ký chứng thư số 29

Hình 15: Giao diện chọn chứng thư số 29

Hình 16: Giao diện thông báo 30

Hình 17: Biểu đồ ca sử dụng ký và phát hành hóa đơn 31

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

Hình 19: Biểu đồ tuần tự của chức năng ký và phát hành hóa đơn 34

Hình 20: Giao diện ký số và phát hành hóa đơn 35

Hình 21: Giao diện chọn chứng thư số 35

Hình 22: Giao diện thông báo phát hành thành công hóa đơn 36

Hình 23: Biểu đồ ca sử dụng xác thực hóa đơn 36

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

Hình 25: Biểu đồ tuần tự của chức năng xác thực hóa đơn 38

Hình 26: Giao diện danh sách hóa đơn 38

Hình 27: Giao diện thông báo thành công 39

Hình 28: Giao diện thông báo không thành công 39

Hình 29: Biểu đồ lớp 39

Hình 30: Biểu đồ thực thể liên kết 42

Hình 31: Sơ đồ bảng cơ sở dữ liệu 43

Hình 32: Biểu đồ mô hình triển khai 45

Trang 5

DANH MỤC BẢNG

Bảng 1: Các tác nhân của quá trình đăng kí chứng thư số 20

Bảng 2: Các tác nhân của quá trình của quá trình ký số và phát hành hóa đơn 21

Bảng 3: Tác nhân của quá trình xác thực hóa đơn 23

Bảng 4: Các tác nhân tương tác với hệ thống 24

Bảng 5: Đặc tả biểu đồ ca sử dụng đăng ký chứng thư số 26

Bảng 6: Đặc tả biểu đồ ca sử dụng ký và phát hành hóa đơn 32

Bảng 7: Đặc tả biểu đồ ca sử dụng xác thực hóa đơn 37

Bảng 8: Mô tả các phương thức của UserData 40

Bảng 9: Mô tả các phương thức của Company 40

Bảng 10: Mô tả các phương thức của Certificate 40

Bảng 11: Mô tả các phương thức của lớp InvoiceVATE 40

Bảng 12: Mô tả các bảng trong cơ sở dữ liệu 44

Bảng 13: Đặc tả biểu đồ mô hình triển khai 46

Bảng 14: Kịch bản kiểm thử chức năng đăng ký chứng thư số 46

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

Bảng 16: Kịch bản kiểm thử chức năng xác thực hóa đơn 47

Trang 6

3 Service Dịch vụ được triển khai trên server

4 CA Certificate Authority(CA): Cơ quan cấp chứng thư số

5 RA Registration Authority (RA): Cơ quan nhận đăng ký chứng thư

6 EE End Entity(EE): Đối tượng cuối cùng trong sơ đồ dịch vụ

7 RFC

Request For Comment(RFC), là tập hợp những tài liệu

về kiến nghị, đề xuất và những lời bình luận liên quan trực tiếp hoặc gián tiếp đến công nghệ, nghi thức mạng INTERNET

8 PKI Public Key Infrastructure(PKI): Hạ tầng cơ sở khóa

công khai

9 ITU-T

International Telecommunication Union

Telecommunication(ITU-T) : Tổ chức viễn thông quốc

tế thuộc Liên hiệp quốc

10 IETF

Internet Engineering Task Force(IETF): là một tổ chức

tiêu chuẩn mở, phát triển và thúc đẩy các tiêu chuẩn Internet

Trang 7

DANH MỤC CÁC TỪ VIẾT TẮT

1 HĐ ĐT Hóa đơn điện tử 2 ĐATN Đồ án tốt nghiệp

Trang 8

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề

Hóa đơn điện tử trên thế giới đã được sử dụng từ lâu, đặc biệt ở các quốc gia phát triển với điều kiện cơ sở hạ tầng thông tin và trình độ công nghệ phát triển cao Thực tiễn áp dụng cho thấy việc sử dụng HĐĐT giảm thiểu chi phí chung cho toàn xã hội như liên quan trực tiếp đến in ấn, lưu trữ và truyền tải cũng như mất mát hư hỏng so với hoá đơn truyền thống.[1]

Theo dự thảo Nghị định sửa đổi Nghị định 51/2010/NĐ-CP và Nghị định 04/2014/NĐ-CP, đặc biệt trong đó có nêu rõ về lộ trình chuyển đổi từ hóa đơn thường sang sử dụng hóa đơn điện tử của các doanh nghiệp Trước đó, Bộ Tài chính ban hành Quyết định số 1209/QĐ-BTC ngày 23/06/2015 về việc thí điểm sử dụng hóa đơn điện tử có mã xác thực của cơ quan thuế; Quyết định số 2660/QĐ-BTC ngày 14/12/2016 về việc gia hạn thời gian thực hiện Quyết định số 1209/QĐ-BCT ngày 23/06/2015 Việc ban hành Nghị định sửa đổi lần này cũng là một trong những hành động để triển khai thực hiện cải cách thủ tục hành chính, triển khai chính phủ điện tử theo Nghị quyết 36a/NQ-CP ngày 14/10/2015

Hình 1: Số doanh nghiệp sử dụng HĐĐT.[1]

Có thể thấy từ các quy định đã được công bố về kê khai và nộp thuế điện tử, việc bắt buộc doanh nghiệp theo lộ trình chuyển đổi sử dụng HĐĐT cũng nằm trong lộ trình cải cách thủ tục hành chính và xây dựng chính phủ điện tử Bên cạnh đó, Nghị định sửa đổi đảm bảo phù hợp với quy định của Luật kế toán năm 2015, Luật Giao dịch điện tử, Luật Quản lý thuế, Luật Ban hành văn bản quy phạm pháp luật năm 2015, các Luật thuế và pháp luật có liên quan.[1]

Trang 9

Từ năm 2011, thời điểm Thông tư 32/2011 ra đời đã có doanh nghiệp sử dụng hóa đơn điện tử Và theo như hình 1, số lượng doanh nghiệp sử dụng HĐ ĐT tăng mạnh theo thời gian tuy nhiên vẫn chiếm tỷ trọng khiêm tốn trong tổng thể các hình thức hóa đơn hiện đang được sử dụng.[1]

Khi toàn bộ doanh nghiệp đưa vào vận hành sử dụng hóa đơn điện tử thì cơ quan thuế sẽ thu thập được hệ thống cơ sở dữ liệu đầy đủ về hóa đơn của doanh nghiệp, giúp các công tác thanh tra, kiểm toán, tính thuế, truy thu thuế, phân tích rủi ro kinh doanh doanh nghiệp trở nên thuận tiện và dễ dàng hơn Khi doanh nghiệp vận hành sử dụng hóa đơn điện tử, hóa đơn điện tử đã có mã của cơ quan thuế thì cơ sở dữ liệu về hóa đơn của doanh nghiệp được cập nhập tại cơ quan thuế rất nhanh chóng, do đó cơ quan thuế có ngay thông tin về doanh thu, tình hình hàng ngày của doanh nghiệp, kịp thời phát hiện ra những bất thường khi doanh nghiệp xuất hóa đơn Khi nhân viên thuế tiến hành đình chỉ, xử phạt các doanh nghiệp vi phạm pháp luật, trốn thuế, hệ thống sẽ tự động dừng, không cho phép doanh nghiệp đó được xuất hóa đơn Đồng thời dễ dàng áp dụng xuất từng hóa đơn riêng lẻ cho cá nhân kinh doanh, cho các doanh nghiệp bị cưỡng chế về nợ.[1]

Xuất phát từ những vấn đề trên, chúng ta cần xây dựng một hệ thống ký và phát hành hóa đơn điện tử nhằm mục đích tạo điều kiện phát triển kinh tế nói chung và tình hình an ninh xã hội nói riêng

1.2 Mục tiêu và phạm vi của đề tài

Dựa trên cơ sở khảo sát, phân tích, đánh giá hiện trạng sử dụng và quản lí hóa đơn truyền thống giấy hiện nay, quá trình bảo mật thông tin doanh nghiệp nói chung và bảo mật dữ liệu hóa đơn của khách hàng nói riêng đang là vấn đề quan trọng Hoạt động trao đổi thông tin hóa đơn trong môi trường điện tử đòi hỏi những thông tin cá nhân của doanh nghiệp, thông tin của hóa đơn cần được bảo vệ trước các nguy cơ đánh cắp, giả mạo, sửa đổi…, từ đó dẫn đến sự cần thiết phải tích hợp các giải pháp bảo mật an toàn vào hệ thống ký và phát hành hóa đơn điện tử Chữ ký số là một giải pháp hữu hiệu chống giả mạo người gửi thông tin và thay đổi nội dung thông tin trong quá trình gửi, đảm bảo tính toàn vẹn của thông tin Đây cũng là mục tiêu mà đồ án nghiên cứu và áp dụng thử nghiệm

Do đây là một hệ thống lớn, nên phạm vi của đồ án là tập trung vào dây dựng một phần mềm ký và phát hành hóa đơn điện tử khi tiến hành một giao dịch tại một của hàng, hay một doanh nghiệp nhỏ Cụ thể các dịch vụ như sau:

 Tạo hóa đơn: Dịch vụ để người bán hàng tạo hóa đơn

 Phát hành hóa đơn: Dịch vụ để phát hành chính thức hóa đơn điện tử bằng phương pháp ký số

 Thống Kê HĐĐT: Dịch vụ để quản lý tình trạng phát hành và sử dụng hóa đơn

 Các dịch vụ xem thông tin: Xem thông tin công ty và hóa đơn

Trang 10

1.3 Định hướng và giải pháp 1.3.1 Định hướng

Hệ thống triển khai trong các cửa hàng hoặc doanh nghiệp nhỏ, đảm bảo hoạt động ổn đinh, chính xác, đầy đủ các chức năng và yêu cầu của cửa hàng, doanh nghiệp Hệ thống được thiết kế theo dạng dễ triển khai, dễ bảo trì, dễ dàng sử dụng, nhằm mục đích cho các cửa hàng, doanh nghiệp nhỏ có thể đăng ký sử dụng các dịch vụ tùy theo yêu cầu

Hệ thống phải đáp ứng được các chức năng, nhiệm vụ công việc, nghiệp vụ hóa đơn như hóa đơn giấy truyền thống, đem lại tiện lợi trong việc sử dụng hệ thống

1.3.2 Giải pháp

Để hệ thống ký và phát hành hóa đơn điện tử có thể đáp ứng được yêu cầu dễ dàng sử dụng cho các nhân viên trong đơn vị sử dụng, trước khi thiết kế hệ thống, em đã tìm hiểu các nghiệp vụ hóa đơn cơ bản và các vấn đề gặp phải đối với hóa đơn giấy truyền thống Từ đó, thiết kế lại giao diện, chức năng của phần mềm để người dùng dễ tiếp cận, dễ sử dụng

Do đặc thù của môi trường làm việc của các đơn vị phát hành có ít các nhân viên có trình độ công nghệ cao, phần lớn gồm các nhân viên như thủ kho, người bán hàng, kế toán , cho nên để đặt được yêu cầu dễ triển khai, dễ bảo trì thì hệ thống phải được xây dựng trên các nền tảng công nghệ cơ bản, đơn giản, không quá phức tạp Ngoài ra, để tránh trường hợp mất dữ liệu trong quá trình sử dụng do lỗi, hệ thống được trang bị thêm một cơ sở dữ liệu SQLlite cùng với Client Tool nhằm mục đích dự phòng

1.4 Đóng góp và kết quả đạt được

ĐATN đã xác định được vai trò quan trọng của hệ thống ký và phát hành hóa đơn điện tử trong việc hỗ trợ kinh doanh, buôn bán Qua quá trình khảo sát nhu cầu, phân tích yêu cầu, thiết kế hệ thống, ĐATN đã xây dựng được các dịch vụ cơ bản của một hệ thống có chức năng của hệ thống hóa đơn giấy truyền thống và phát huy các thế mạnh và tiện ích của hóa đơn điện tử

Trang 11

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 Cơ sở lý thuyết chữ ký số

2.1.1 Hệ mã hóa công khai

Trong các mô hình mật mã cổ điển, thông thường người gửi và người nhận cùng dùng một phương thức là chọn một khoá bí mật K Sau đó dùng K để mã hoá bản tin theo cách C=E(M,K) và giải mã với M=D(C,K): với M là tin cần gửi, C là bản tin mã hóa của M, E là thuật toán mã hóa, D là thuật toán giải mã Các hệ mật mã cùng thuộc mô hình này được gọi là hệ khoá bí mật

Nhược điểm của hệ mật mã này là phải trao đổi về khoá K giữa người gửi và người nhận trên một kênh an toàn trước khi tiến hành gửi một bản tin đã mã hóa Trong thực tế, đây là việc rất khó thực hiện và chưa đảm bảo an toàn bảo mật khi trao đổi khóa Nhằm giải quyết các hạn chế của hệ khóa bí mật, ý tưởng về một hệ mã hóa công khai được Diffie và Hellman đưa ra vào năm 1976 Việc xây dựng thực tế do Rivesrt, Shamir và Adleman đưa ra lần đầu tiên vào năm 1977, họ đã tạo nên hệ mật mã nổi tiếng RSA

Hình2: Sơ đồmã truyền tin dựa trên cơ sởmã hóa không khai.

Sơ đồ truyền tin bí mật từngười gửi đến người nhận sửdụng mật mã khóa công khai được mô tảtrong hình 2, trong đó:

 M : Bản tin rõcần gửi.

 C : Bản tin sau khi được mã hóa.

 KCB : làkhóa công khai của B (Khóa mã hóa) được lấy trên kênh công khai.

 KRB: là khóa bí mật của B (Khóa giải mã).

 Hàm mã hóa như sau:C = E(M, KCB).

 Hàm giải mã như sau:M= E-1(C, KRB).

Theo sơ đồcủa hệmật khóa công khai ta thấy các ưu điểm là:

 Không cần trao đổikhóa bí mật.

 Không cầnthiết lập một kênh truyền an toàn riêng.

 Biết khóa mã hóa trên kênh công khai nhưng rất khó giải mã, tức là biết KCB

nhưng rất khó suy ra được KRB (độ khóở đây chính là độ phức tạp tính toánhoặc tài nguyên và thời gian tính toán).

Trang 12

Khóa riêng được cá nhân cất giữ bí mật , không bao giờ được phân phối nên khả năng lộ khóa riêng là khó hơn so với hệ mã hóa đối xứng Vì vậy mà hệ mã khóa công khai được sử dụng trên kênh truyền thông công khai như mạng Internet một cách an toàn Khi khóa riêng bị mất hoặc bị lộ, cá nhân sẽ thay đổi cặp khoá riêng và khóa công khai mới tương ứng để thay thế cặp khóa riêng và khoá công khai cũ

Tuy nhiên, việc xây dựng hệ thống chữ ký số dựa trên hệ mã khóa công khai cũng khó thực hiện do tồn tại các điểm yếu như:

 Độ dài chữ ký quá lớn: Quá trình ký trên toàn bộ cả bản tin sẽ sinh ra chữ ký số có độ dài tương đương với bản tin, vì việc thao tác trên các phép toán được thực hiện trên từng bit đối với cả khối văn bản Nếu kích thước của bản tin cần ký là cực lớn sẽ phát sinh vấn đề như: tốn bộ nhớ lưu trữ, tốn thời gian truyền, tốn tài nguyên tính toán,

 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ý Hai điểm yếu nên trên khiến việc ký trực tiếp trên hệ mã hóa công khai rất khó thực hiện Để giải quyết vấn đề này, một giải pháp đưa ra là sử dụng thêm sự hỗ trợ của hàm băm mật mã, tức là thay vì ký trực tiếp vào bản tin, thì ta tiến hành ký vào giá trị băm của bản tin.[5]

2.1.2 Hàm băm

Hàm băm (Hash function) là một giải thuật toán học, đầu vào là khối dữ liệu, và đầu ra ứng với mỗi khối dữ liệu đó một giá trị có độ dài ngắn hơn khối dữ liệu đầu vào Nói một cách chính xác hơn, hàm băm h sẽ tạo ra ánh xạ các xâu bit có độ dài hữu hạn tuỳ ý thành các xâu bit có độ dài m cố định.[6]

 Tính khó va chạm (Chống xung đột): Không có khả năng về tính toán để tìm hai đầu vào khác nhau bất kỳ x1 ≠x2 sao cho : h(x1 ) = h(x2)

Trang 13

Nhờ có những tính chất đặc biệt nêu trên, giá trị băm được sử dụng để so sánh, đối chiếu giữa các khối dữ liệu với nhau một cách đơn giản và dễ dàng 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 Do đó, nhược điểm của việc ký trên bản tin gốc đã được giải quyết, giúp quá trình ký trở nên tiết kiệm tài nguyên tính toán, cải thiện tốc độ ký, tiết kiệm bộ nhớ.[5]

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

2.1.3 Chữ ký số

Trong quá trình làm việc thực tế ngoài cuộc sống, các văn bản giấy tờ có sử dụng chữ ký truyền thống do cá nhân dùng bút “ký” trực tiếp lên giấy, các yêu cầu cơ bản quan trọng của chữ ký đó phải được đảm bảo các yêu cầu sau:

 Chữ hoặc ký tự ngắn gọn thường đại diện cho tên của người ký

 Là đại diện đặc trưng duy nhất của người ký

 Khó giả mạo, bắt chước, sao chép.[6]

Quá trình xây dựng chữ ký điện tử cũng phải thỏa mãn các yêu cầu trên Sau đâu là sơ đồ chữ ký số được xây dựng dựa trên lý thuyết mã hóa công khai và các thuật toán băm được mô tả như hình 4

Trang 14

Hình 4: Sơ đồ ký số

Quá trình tạo chữ ký số ở bên A:

 A tiến hành băm bản tin M bằng hàm băm không khóa (MDC), cho đầu ra là HMDC.

 Mã hóa HMDC bằng một hệ mã khóa công khai với khóa bí mật KRA của A, được đầu ra là chữ ký số DSA của A

 Thực hiệp phép toán ghép bản tin M với chữ ký số DSA được (M|| DSA), sau đó gửi đến B.[5]

Bên B sau khi nhận được (M|| DSA), tiến hành xác thực chữ ký số:

 Tách chữ ký số DSA và bản tin M từ bản tin (M|| DSA)

 Sử dụng khóa công khai của A là KCA để giải mã DSA , đầu ra là mã băm HMDC

của thông báo M gửi từ A

 Tiến hành băm thông báo M theo đúng thuật toán của A để có được mã băm HMDC của thông báo M đã truyền qua kênh mở

 So sánh hai mã băm HMDC và HMDC để xác thực thông báo M.[5]

Trong sơ đồ chữ ký số trên, việc sử dụng hàm băm để xác thực tính toàn vẹn nội dung của thông báo M và hệ mật khóa công khai dùng để xác thực bên gửi A(xác thực tính tránh giả mạo người gửi A)

Các chữ ký số được tạo ra đáp ứng được các yêu cầu sau :

 Tính không thể giả mạo : Nếu A ký thông báo M bằng chữ ký DS(A, M) thì không một ai có thể tạo được cặp [M||DS(A, M)] do đó người nhận được có thể đảm bảo là do A gửi

Trang 15

 Tính xác thực: Nếu bên nhận B nhận được [M||DS(A, M)] được xem là của A thì B có thể kiểm tra được rằng chữ ký có phải là của A gửi đi vì chỉ có A mới có thể tạo được chữ ký này và chữ ký được ghép với M trước khi được gửi đi

 Tính không thể thay đổi: Thông báo M do A gửi đi là không thể thay đổi bởi vì các đặc tính của hàm băm chỉ thay đổi nhỏ cũng đã sinh ra mã băm khác, lúc này cặp [M||DS(A, M)] hoàn toàn bị thay đổi.[5]

2.1.4 Chứng thư số

Việc ký số sử dụng cở sở hệ mã công khai và hàm băm đã giải quyết vấn đề đảm bảo an toàn khi truyền tin trên kênh an toàn Tuy nhiên, vẫn còn tồn tại vấn đề đó là ai sẽ là người phát hành các khóa công khai và khóa bí mật của mỗi cá nhân, và người phát hành này có thực sự đáng tin không Để giải quyết vấn đề này , một giải pháp được đưa ra là sử dụng hà tầng cơ sở khóa công khai PKI (Public Key Infrastructure) Là một giải pháp sử dụng một bên thứ ba có độ tin cậy cao , đã được công nhận tính bảo mật cung cấp và xác thực cá nhân các bên tham gia vào quá trình sử dụng ký số 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]

Hệ thống PKI có nhiều kiến trúc khác nhau, tùy theo từng nhà phát hành , cũng như từng mục đích và ứng dụng mà PKI được thiết kế khác nhau Tuy nhiên nhìn chung, một hệ thống PKI được xây dựng dựa trên kiến trúc PKI cơ sở như hình 5.

Hình 5: Kiến trúc cở sở của PKI Trong đó gồm các thành phần :

 ROOT Certificate Authority (ROOT CA) và Certificate Authority(CA): Cơ quan cấp chứng thư số có chức năng: tạo, phân phát, lưu trữ, quản lý, thu hồi các chứng thư số CA nhận yêu cầu xin cấp phát chứng thư số của các cá nhân, tổ chức, sau đó cấp cho các cá nhân hoăc tổ chức

Trang 16

 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

 End entity(EE): Đối tượng cuối của hệ thống PKI, đây là các cá nhân và tổ chức sau khi được xác minh danh tính, được CA cấp phát cho chứng thư số.[7] Các chứng thư số phổ biến nhất hiện này là X.509 do ITU-T ban hành, được phát triển bởi IETF PKIX X.509 chính thức công bố vào năm 1988, nhiều phiên bản mới đã được để đáp ứng các yêu cầu ngày càng phát triển của các dịch vụ sao cho đơn giản và thuận tiên hơn X.509 định nghĩa nội dung của chứng thư chuẩn, ví dụ như : số phiên bản, số serial, ID chữ ký, tên công bố, … [6]

Sau đây là một số trường cơ bản trong chứng thư X.509 đang được sử dụng phổ biến ngày nay:

 Version: Cho biết phiên bản của chứng thư X.509

 Serial Number: Dãy số nguyên dương, là duy nhất được cấp bởi cơ quan phát hành chứng thư cho chứng thư số

 Signature Algorithm: Chứa thuật toán được CA sử dụng để sinh ra chứng thư

 Issuer: Chứa tên phân biệt , nhận dạng của CA phát hành chứng thư

 Validity: Thời gian hiệu lực của chứng thư

 Subject: Chứa tên của cá nhân , tổ chức được cấp hoặc liên kết với chứng thư

 Public Key: Chứa khóa công khai và các giải thuật liên quan

 Issuer Unique Identifier: được bổ sung để định dạng CA(không bắt buộc)

 Subject Unique Identifier: được bổ sung để định dạng cá nhân , tổ chức được cấp chứng thư (không bắt buộc).[2]

Trang 17

Hình 6: Ví dụ các trường của một chứng thư

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

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

Tác nhân chính của quá trình đăng ký chứng thư số được mô tả trong bảng 1

Tác nhân Vai trò

Đơn vị phát hành Đơn vị phát hành: Là đối tượng phát hành hóa đơn 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

đơn,

Bảng 1: Các tác nhân của quá trình đăng kí chứng thư số

Trang 18

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

Sơ đồ tổng quan của quá trình đăng ký chứng thư số được thể hiện như hình 7.Các bước trong sơ đồ tổng quan của quá trình đăng ký chứng thư số như sau:

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 Nhà cung cấp CA xác minh thông tin và cấp chứng thư cho doanh nghiệp Chứng thư này được import vào thiết bị USB Token

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 Client Tool tự động cập nhật thông tin chứng thư trong USB Token

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

2.2.2 Sơ đồ tổng quan của quá trình ký số và phát hành hóa đơn

Trang 19

Hình 8: Sơ đồ tổng quan của quá trình ký số và phát hành hóa đơn

Sơ đồ tổng quan của quá trình ký số và phát hành hóa đơn được thể hiện như hình 8.Các bước trong sơ đồ tổng quan của quá trình ký số và phát hành hóa đơn như sau: Bước 1: Đơn vị phát hành tạo lập và phát hành hóa đơn (ký số) bằng Client Tool Bước 2.1: Client Tool xác thực hóa đơn đã được ký và đẩy hóa đơn 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

Trang 20

2.2.3 Sơ đồ tổng quan của quá trình xác thực hóa đơn

Tác nhân Vai trò

Đơn vị phát hành Đơn vị phát hành: Là đối tượng phát hành hóa đơn 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

đơn,

Bảng 3: Tác nhân của quá trình xác thực hóa đơn

Hình 9: Sơ đồ tổng quan của quá trình xác thực hóa đơn

Sơ đồ tổng quan của quá trình xác thực hóa đơn (bước 2.1 của quá trình ký số và phát hành hóa đơn) được thể hiện như hình 9 Các bước trong sơ đồ tổng quan của quá trình xác thực hóa đơn như sau:

Bước 1: Đơn vị phát hành xem chi tiết hóa đơn bằng Client Tool

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

Trang 21

Bảng 4: Các tác nhân tương tác với hệ thống

Hình 10: Biểu đồ ca sử dụng tổng quát

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

Trang 22

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

Ca sử dụng đăng ký chứng thư số được phân rã như trong hình 11

Hình 11:Biểu đồ ca sử dụng đăng ký chứng thư số

Trang 23

Ca sử dụng đăng ký chứng thư số được đặc tả trong bảng 5 Tên ca sử dụng Đăng ký chứng thư số

Tác nhân Đơn vị phát hành

Đ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 kết nối USB Token với máy tính

Đảm bảo thành công Client Tool và server lưu chứng thư số

Kích hoạt Đơn vị phát hành chọn Đăng ký chứng thư số

Kịch bản chính 1 Đơ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

2 Client Tool kiểm tra chứng thư số đã chọn 3 Client Tool lưu chứng thư số đã chọn

Kịch bản ngoại lệ 1 3b Hệ thống thông báo chứng thư số đã chọn đã được đăng ký trước đó

Kịch bản ngoại lệ 2 3c Hệ thống thông báo chứng thư đã chọn không thể dùng để ký số

Kịch bản ngoại lệ 3 3d 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

Bảng 5: Đặc tả biểu đồ ca sử dụng đăng ký chứng thư số

2.3.2 Sơ đồ hoạt động của chức năng đăng ký chứng thư số

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

Ngày đăng: 16/05/2024, 15:05

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

Tài liệu liên quan