Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.88 MB, 27 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
Giao dịch điện tử ra đời giúp cho các lĩnh vực khoa học và đời sông phát
<small>triển mạnh mẽ hơn. Ngày nay, giao dịch điện tử dang được phát triển mạnh mẽ,</small>
được ứng dụng cho nhiều lĩnh vực khác nhau và ngày càng khăng định được vai trị của mình.Tuy nhiên, có nhiều vấn đề nảy sinh với các giao dịch điện tử, như thông tin giao dịch bị thay đối, bị đánh cắp, bị giả mạo... Các van dé này dẫn đến giao
<small>dịch khơng thực hiện chính xác, thơng tin khơng được bảo đảm tính tồn vẹn, tính</small>
xác thực và cũng có thể gây thiệt hại cho các bên thực hiện giao dịch. Do đó, cần
phải có các giải pháp để bảo đảm an tồn cho giao dịch điện tử.
<small>Thơng tư 180/2010/TT-BTC của Bộ Tài Chính cơng nhận tính pháp lý của</small>
hình thức giao dịch điện tử sử dụng chữ ký số giữa người nộp thuế và cơ quan Thuế. Như vậy, khi kê khai, nộp tờ khai và nộp thuế qua mạng có dùng chữ ký số,
các hồ sơ thuế điện tử có giá trị tương đương như các hồ sơ thuế được gửi trực tiếp tới cơ quan thuế.
Hình thức nộp thuế qua mạng được thực hiện theo Chỉ thị số 24/CT-TT ngày
05/08/2014 của Thủ tướng Chính phủ về tăng cường cải cách và thủ tục hành chính trong lĩnh vực thuế, hải quan. Quyết định số 1201/QĐ-TCT ngày 06/08/2014 của
Tổng cục Thuế ban hành kèm theo kế hoạch đây mạnh cải cách thủ tục hành chính
<small>tạo thuận lợi cho doanh nghiệp và người dân.</small>
Dựa trên nền tảng mật mã học, chữ ký số (Digital signature) đã được nghiên cứu và ứng dụng khá rộng rãi trong thương mại điện tử và nhiều lĩnh vực khác. Chữ ký số có khả năng bảo đảm tính tồn vẹn và xác thực dữ liệu, và khi kết hợp với chứng chỉ số giúp xác định được danh tính của cá nhân, cơng ty, tô chức trong việc
<small>xác thực các bên tham gia giao dịch trên Internet.</small>
Đề tài "Nghiên cứu về chữ ký số và ứng dụng trong hệ thong nộp thuế qua mạng" nhằm nghiên cứu và thử nghiệm các kỹ thuật, các giao thức bảo đảm an toàn giao dịch, an toàn dữ liệu trên đường truyền và ứng dụng trong hệ thống nộp thuế
<small>qua mạng.</small>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><small>Luận văn được trình bày thành 3 chương như sau:</small>
Chương 1. Tổng quan về chữ ký số và ứng dụng
Chương này tập trung nghiên cứu khái qt lý thuyết chữ kí số. Trình bày định nghĩa và vai trò chữ ký số. Trong đó sẽ có cái nhìn tổng quan về chữ kí số và ứng dụng chữ ký số.
Chương 2. Cơ sở mã hóa cho chữ ký số
Chương này nghiên cứu cụ thé về cơ sở hạ tang cơ bản dé tạo chữ ký số.
Trong đó nghiên cứu cụ thê về mã hố khóa cơng khai dùng trong tạo chữ ký số - từ đó đánh giá dé chọn ra giai thuat tối ưu hon, hạ tầng khố cơng khai PKI, hàm băm,
kỹ thuật tạo chữ ký số
Chương 3. Ứng dụng chữ ký số trong hệ thống nộp thuế qua mạng
Chương này sẽ ứng dụng Nộp thuế điện tử qua mạng, cài đặt chữ ký số cho các chứng từ trong hệ thống Nộp thuế qua mạng
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><small>1.1.1 Khái niệm chữ ký điện tw</small>
Chữ ký điện tử (electronic signature) khơng phải là hình thức số hóa chữ ký
viết tay rồi kèm theo một thơng điệp mà là thông tin đi kèm theo dữ liệu (văn bản:
word, excel, pdf...; hình ảnh; video...) nhằm mục đích xác định người chủ của dữ
<small>liệu đó.</small>
Chữ ký số là một chuỗi dữ liệu liên kết với một văn bản hay một thông điệp
và thực thé tạo ra văn ban hay thơng điệp đó. Chữ ký số trên một văn bản điện tử có thê hiểu như là chữ ký tay được đóng dấu trên văn bản giấy. Chữ ký số là dạng chữ ký đảm bảo an tồn, duy nhất và khơng thê giả mạo.
Các thuật toán chữ ký số cho phép xác định nguồn gốc, bảo đảm tính tồn
vẹn dữ liệu của thơng điệp được truyền di, đồng thời nó cũng bảo đảm tính khơng
<small>phủ nhận của thực thể đã ký thơng điệp.</small>
Một so đồ chữ ký số là một bộ 5 (P, A, K, S, V) thỏa mãn những điều kiện sau:
<small>1) P là tập hữu hạn các thơng điệp có thé</small>
4) Với mỗi khoá KE Z tồn tại một thuật toán ký sigx © S và một thuật tốn
<small>xác minh very © V. Mỗi sigx: P > A và verg: P x A > {TRUE, FALSE} là những</small>
<small>ham sao cho mỗi thơng điệp x © P và mỗi chữ ký y © A thoả mãn phương trình dưới</small>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><small>Với mỗi K © K hàm sigg và verx là các hàm thời gian đa thức, verg sẽ là hàm cơng</small>
khai, sigx là hàm bí mật. Người thứ ba khơng thé dé dang tính tốn dé giả mạo chữ
ký của người gửi trên thơng điệp x. Điều đó có nghĩa là nếu cho trước x thì chỉ có
người nhận mới có thé tính được chữ ký y để xác minh xem ver(x,y) có bang TRUE
<small>hay khơng.</small>
<small>Tính tồn vẹn: thơng tin khơng thể bị thay đổi mà khơng bị phát hiện</small>
Tính khơng thé chối bỏ: người gửi hoặc nhận sau này không thé chối bỏ việc
<small>đã gửi hoặc nhận thông tin.</small>
Khả năng xác định nguồn gốc: người gửi (hoặc người nhận) có thé khang định
<small>thơng tin là của người gửi.</small>
Có hai cách chính dé phân loại chữ ký số.
Cách 1: Phân loại theo khả năng khôi phục thông điệp gốc. 1). Chữ ký có thé khơi phục thơng điệp gốc:
2). Chữ ký không thể khôi phục thông điệp gốc:
<small>Cách 2: Phân loại chữ ký theo mức an toàn.</small>
1). Chữ ký “không thé phủ nhận”: 2). Chữ ký “một lần”:
<small>1.2.1 Quá trình ký</small>
Q trình ký thơng điệp được minh họa trên Hình 1.3, gồm các bước sau:
Bước 1: Dùng giải thuật băm dé tính bản tóm lược của thơng điệp cần truyền
đi. Kết quả ta được một bản tóm lược.
Bước 2: Sử dụng khóa riêng của người gửi dé mã hóa bản tóm lược thu được
ở bước 1. Thơng thường ở bước này ta dùng giải thuật RSA. Kết quả thu được gọi
là chữ ký điện tử của thông điệp ban đầu.
Bước 3: Mã hóa ban tóm lược bằng khóa riêng dé tạo ra chữ ký. Sau khi đã tạo chữ ký, mọi sự thay đổi trên thông điệp sẽ bị phát hiện trong giai đoạn kiểm tra.
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">Ngoài ra, chữ ký này bảo đảm người nhận tin tưởng thông điệp này xuất phát từ
<small>người gửi chứ không phải là ai khác.</small>
Bước 4: Gộp chữ ký số vào thông điệp ban đầu và gửi đến người nhận.
<small>"Thông điệp dữ liệu</small>
<small>Khoa bí mật</small>
<small>Giắn với thơng</small>
<small>điệp dữ liệu</small>
<small>"Thơng điệp dữ liệuđược ký sơ</small>
<small>Hình 1.1 Q trình tạo chữ ký số</small>
Quá trình kiểm tra chữ ký số được minh họa trên Hình 1.4, gồm các bước
Đánh số bước tương tự ở trên. Tach thông điệp ban đầu va chữ ky số.
Dùng khóa cơng khai của người gửi (khóa này được thơng báo đến mọi
người) để giải mã chữ ký số của thông điệp.
Dùng giải thuật (MD5 hoặc SHA) băm thông điệp ban đầu.
So sánh 2 chuỗi băm kết quả thu được ở 2 bước trên. Nếu trùng nhau, ta kết
luận thông điệp này không bị thay đổi trong q trình truyền và thơng điệp này là
<small>của người gui.</small>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><small>ma "Thông điệp dŒ liệu</small>
<small>duoc ky sé</small>
<small>Kha c6ng khai Qs" Cc Tach</small>
<small>Th6ng diép da& liệu:</small>
<small>Hình 1.2 Q trình kiếm tra chữ ký số</small>
<small>1.3.1 Xác thực các văn bản và giao dịch điện tw</small>
<small>1.3.2.2 Xác thực thông điệp trong các giao thức bảo mật PGP</small>
Chữ ký số tạo ra một bước tiến lớn trong các giao dịch thương mại điện tử,
bảo đảm tính an tồn và tin cậy trong truyền thơng trên mạng.
Chương 1 đã trình bày tổng quan về khái niệm chữ ký số, phân loại, vai trị, lợi ích khi áp dụng chữ ký số trong truyền thông trên Internet.
Chương 1 cũng mô tả cụ thé quy trình thực hiện ký và ứng dụng trong các lĩnh vực cụ thể của chữ ký SỐ.
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><small>2.1.1 Giới thiệu chung</small>
Mã hóa dữ liệu là sử dụng một phương pháp biến đổi dữ liệu từ dạng bình thường sang một dạng khác, mà một người khơng có thâm quyền, khơng có phương
tiện giải mã thì khơng thé đọc hiểu được.
Giải mã dữ liệu là quá trình ngược lại, là việc sử dụng một phương pháp biến
đổi dữ liệu đã được mã hóa về dạng thơng tin ban đầu. Có thé mơ tả quy trình thực
<small>hiện mã hóa dữ liệu và giải mã dữ liệu như Hình 2.1.</small>
<small>Khóa mã hóa « Hệ thơng quản lý > Khóa giải mã</small>
<small>waa. k mA mã hé Dữ liệu</small>
<small>Dữ liệu gốc Mã hóa Dữ liệu mã hóa Giải mã sốc</small>
<small>_— (Bản mã) |</small>
<small>Hình 2.1 Quy trình thực hiện mã hóa dữ liệu và giải ma dữ liệu</small>
Sau đây là một số khái niệm và kí hiệu liên quan về van đề mã hóa dữ liệu :
- E (Encryption - Mã hóa): Là quá trình chuyền đổi dữ liệu gốc thành dữ liệu được mã hóa sao người khác khơng thé đọc hiểu.
- D (Decryption - Giải mã): Là quá trình ngược lại của mã hóa, biến đơi dữ liệu đã được mã hóa thành dạng gốc ban đầu.
- M (Message - Thông điệp), bản sốc hay ban rõ (Plaintext): Là tệp dữ liệu
<small>chưa được mã hóa hoặc đã được giải mã.</small>
<small>- C (Ciphertext -Bản đã mã hóa, bản mã): Tép dữ liệu đã được mã hóa.</small>
- K (Key - Khóa): Là dãy các bít 0, 1, thường được biéu diễn dạng xâu ký tự,
<small>- KP (Public Key - Khóa cơng khai, KS (Private Key — Khóa riêng)</small>
<small>Theo quy ước, khi mã hóa thì C = E(M) va khi giải mã thi M = D(C) =D(E(M)).</small>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><small>2.1.1.1 Mã hóa khóa cơng khai</small>
<small>Mã hóa khóa cơng khai (Public key cryptography) là một dạng mã hóa cho</small>
phép người sử dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa
dùng chung bí mật trước đó. Điều này được thực hiện bằng cách sử dụng một cặp
<small>khóa có quan hệ tốn học với nhau là khóa cơng khai và khóa riêng.</small>
Hệ thống mã hóa khóa cơng khai có thê sử dụng với các mục đích:
<small>Mã hóa: Q trình thực hiện như minh họa trên Hình 2.2.</small>
Tạo chữ ký SỐ: Quá trình thực hiện như minh họa trên Hình 2.3.
<small>Khi A muốn truyền tin cho B, A sẽ sử dụng khóa KP của B dé mã hóa bản tin</small>
<small>và gửi bản mã tới cho B, B sẽ sử dụng khóa bí mật của mình đê giải mã và đọc bản</small>
<small>Hình 2.2 Mơ hình mã hóa dựa trên mã khóa khóa cơng khai</small>
Văn ban mã hóa = E(KP, Văn bản gốc) ,Văn bản gốc = D(KS, E(KP,Văn ban
<small>Hình 2.3 Mơ hình tạo chữ ký số mã khóa khóa cơng khai</small>
Văn bản mã hóa = E(KS,Văn bản gốc) ,Văn bản gốc = D(KS, E(KP,Văn bản
<small>2.1.2 Hàm băm</small>
<small>Trong ngành mật mã học, một hàm băm mật mã (Cryptographic hash</small>
function) là một hàm băm với một số tính chất bảo mật nhất định để phù hợp việc sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng, chăng hạn như chứng
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">thực (authentication) và kiểm tra tính tồn vẹn của thông điệp (message integrity). Một hàm băm nhận đầu vào là một xâu ký tự (hay thơng điệp) có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định, đơi khi được gọi là bản tóm lược
<small>(message digest).</small>
<small>Trong lĩnh vực mã hóa thơng tin, mã băm được xem như đặc trưng thu gon</small>
của một chuỗi bit tùy ý và dùng dé nhận ra chuỗi bit đó. Hàm băm chính là cơng cụ để tạo ra chữ ký số và bảo đảm an tồn đữ liệu.
<small>2.2 Thuật tốn mã hóa RSA</small>
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện công nghệ Massachusetts (MIT). Tên của thuật toán lấy từ 3 chữ cái đầu của tên 3 tác giả.
<small>Trong mật mã học, RSA là một thuật toán mã hóa khóa cơng khai. Đây là</small>
thuật tốn đầu tiên phù hợp với việc tạo ra chữ kí điện tử đồng thời với việc mã hóa. Nó đánh dấu một sự tiễn bộ vượt bậc của lĩnh vực mật mã hoc trong việc sử dụng khóa cơng khai. RSA đang được sử dụng phổ biến trong thương mại điện tử và
được cho là bảo đảm an toàn với điều kiện độ dài khóa đủ lớn.
<small>Thuật tốn RSA sử dụng một cặp khóa: khóa cơng khai và khóa riêng.</small>
<small>2.2.2 Thuật tốn RSA</small>
<small>2.2.2.1 Q trình tạo khóa</small>
<small>Cặp khóa cua RSA được sinh theo phương pháp sau:[6]</small>
- Bước 1: Chon 2 số nguyên tô đủ lớn p và q với p, g, 2 số này là ngẫu nhiên
<small>và độc lập với nhau</small>
<small>- Bước 2: Tính: n = pq</small>
- Bước 3: Tinh: O(n) = (p-1)(q-1) với Ø(m)là giá trị ham số Ơle
- Bước 4: Chon một số ngẫu nhiên e với 1<e<@(n), sao cho gcd(e, Ø(m)) = 1
Kết thúc q trình tạo khóa ta có KP = {e, n} là khóa cơng khai, cịn KS = {d, n} được gọi là khóa riêng. Các số nguyên t6 p, q sẽ bị xóa khi kết thúc q trình
<small>tạo khóa.</small>
<small>2.2.2.2 Q trình mã hóa</small>
Khi A muốn gửi cho B thơng điệp một cách bí mật, thì trước hết A cần phải
<small>thực hiện theo các bước như sau:</small>
<small>- Bước 1: Nhận khóa cơng khai KP = (n, e) từ B</small>
<small>2.2.3. Độ an toàn cua hệ mật mã RSA</small>
Ta nhận thấy hệ mật mã RSA có khóa cơng khai (n, e) đã biết và giả sử có bản
mã c= m®mod n cũng được cơng khai, vậy thi từ đó chúng ta có thé tìm được
<small>thơng điệp. Vậy nên việc giữ bí mật khóa riêng có đảm bảo an tồn được hay khơnglà do độ khó của việc tính @(n).</small>
<small>2.3 Thuật toán băm MDS, SHA1</small>
<small>2.3.1 Thuật toán MDS</small>
Thuật toán MDS được Ron Rivest đưa ra năm 1991, trong đó đầu vào cần có những khối 512 bít, được chia thành 16 khối con 32 bít. Đầu ra của thuật tốn là một thiết lập của 4 khối 32 bít dé tạo thành một ham Bam 128 bít duy nhất.
Chúng ta có 4 hàm phi tuyến, mỗi hàm này được dùng cho mỗi vòng lặp:
<small>FŒX,Y,Z)=(X A Y) v (AX) AZ)G(X,Y,Z)=(X AZ) v (Y a (AZ))H(X,Y,Z)=X®@® Y ®Z</small>
<small>I(X,Y,Z)= Y ® (X v(—⁄2)</small>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">với A là AND, v là OR, ¬ là NOT, ® là XOR và X, Y, Z được thiết kế sao cho chúng độc lập và ngang bằng nhau.
<small>2.3.2 Thuật toán SHAI</small>
Năm 1995, tổ chức NIST cùng NSA đã thiết kế ra thuật toán hàm băm an toàn (SHA) sử dụng cho chuẩn chữ ký số DSS. SHA được thiết kế dựa trên những nguyên tac của MD4/MD5, tạo ra 160-bit giá trị băm.
Ham băm SHA-1 với giá trị băm có kích thước là 160 bít, được dùng dé tính giá trị băm của thơng điệp có kích thước tối đa là bít.
SHA-1 xác lập bốn hàm phi tuyến như sau:
<small>ƒ#(ŒX.Y,Z)=(X A Y) Vv (AX) A Z) với 0<t< 19#(ŒX.Y,Z)=X ®Y OZ với 20<t<39</small>
<small>#(ŒX.Y,Z)=(X A Y)v(XA Z)v(Y A Z) với 40<t<59</small>
<small>#@Œ.,Y,Z)=X ®Y OZ với 60 <t< 79.</small>
<small>2.3.3. Tính bao mật của ham bam</small>
<small>2.4.1.1 Quá trình tạo khóa</small>
Cho n=p*q, trong đó p, q là các số nguyên tố. Đặt P = A = Zạ, ta có định nghĩa sau: K = {(n,p,q,e,d):n = p*q,pva q là các số nguyên tố, p khác q, ed=
<small>khai và p, q, d là bí mật.</small>
<small>2.4.1.2 Q trình tạo chữ ký</small>
Với K = {(n,p, q,e,đ):n = p * q,p và q là các số nguyên tố }, ta có: y =sigx(x) = x* mod n
Nếu: 0er„(x,y) =true © x = yỶ(mod n) với x, y € Z, thì thơng điệp đã
<small>ký là xác thực. [6]</small>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"><small>2.5.1 Giới thiệu PKI</small>
PKI (Public Key Infastructure) là hạ tầng cơ sở khóa cơng khai. PKI là cơ chế để cho một bên thứ 3 (nhà cung cấp chứng chỉ số) cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin. Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa cơng khai/khóa riêng. Các q trình này thường được thực hiện bởi một phần mềm đặt tại trung tâm và các phần mềm phối hợp khác tại các địa điểm của người dùng. Khóa cơng khai thường
được phân phối trong chứng thực khóa cơng khai (chứng chỉ số).
Các thành phan co ban của một hệ thống PKI gồm: e Tổ chức chứng thực (Certificate Authority)
<small>e Trung tâm đăng ký (Registration Authority)</small>
e Hệ thống lưu trữ (Certificate Repository và Archive)
<small>e May chủ an ninh</small>
e_ Thực thé cuối (PKI-enabled applications va PKI users)
<small>Mơ hình và hoạt động của PKI:</small>
<small>May khách hỗ trợ chứng chi Người nhận dữ liệu</small>
<small>(VPN Client, trình duyệt) Ù (Máy chủ web, VPN Gateway)</small>
<small>Ký, mã hóa kiểm tra, giải hóa</small>
<small>Hình 2.4 Mơ hình xây dựng PKI cơ bản</small>
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">- PKI cung cấp một cặp khóa, trong đó có một khóa là khóa cơng khai (Public key) dé có thé sử dụng dịch vụ, khóa cịn lại là khóa riêng (Private key) ma người sử dụng phải giữ bí mật. Hai khóa này có liên quan mật thiếtđến nhau, sao
<small>cho một thơng điệp được mã hóa bởi khóa mã hóa cơng khai thì chỉ giải mã được</small>
<small>bởi một khóa riêng tương ứng.</small>
Chứng chỉ X.509 v3 là định dang chứng chỉ được sử dụng phô biến và được hầu hết các nhà cung cấp sản phẩm PKI triển khai.
<small>Chứng chỉ công khai X.509 được Hội viễn thông quốc (ITU) đưa ra lần đầu</small>
<small>tiên 1988 như là một bộ phận của dịch vụ thư mục X.500. Chứng chỉ X.509 được sử</small>
dụng dé chứng thực cho thông tin chủ thé và khóa cơng khai của các tổ chức, cá nhân. Khn dạng chứng chỉ X509 có các thành phần cơ bản như sau:
- Phiên bản (Version); Số hiệu (Certificate Serial Number); Tên thuật toán
<small>ký (Signature Algrithm ID); Tên CA phát hành (Issuer); Thời gian hợp lệ (Validity</small>
Period); Chủ thể (Subject);Théng tin về khố cơng khai của chủ thé (Subject
Public-key Information); Tên duy nhất của người phát hành (Issuer unique identifier); Tên duy nhất của chủ thể (Subject unique indentifier); (Extensions): Chứa các thông tin
bổ sung cần thiết mà người thao tác CA muốn đặt vào chứng nhận.
Chương 2 đã trình bày khát quát về mã hóa, khái niệm về hệ thống mã hố khố cơng khai. Chương cũng trình bày chi tiết hệ thống mã hố khố cơng khai,
<small>thuật tốn mã hố, giải mã,giới thiệu vê hàm băm.</small>
</div>