ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN TƯ THỤC
NGHIÊN CỨU ỨNG DỤNG CHỮ KÝ SỐ
TRONG QUÁ TRÌNH GỬI NHẬN TÀI LIỆU ĐIỆN TỬ
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội – 2016
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN TƯ THỤC
NGHIÊN CỨU ỨNG DỤNG CHỮ KÝ SỐ
TRONG QUÁ TRÌNH GỬI NHẬN TÀI LIỆU ĐIỆN TỬ
Ngành: Công nghệ Thông tin
Chuyên ngành: Hệ thống Thông tin
Mã số: 60480104
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Nguyễn Hữu Ngự
Lời đầu tiên, em xin gửi lời biết ơn sâu sắc đến PGS.TS Nguyễn Hữu
Ngự và TS Hồ Văn Hương đã tận tình hướng dẫn, chỉ bảo, giúp đỡ em trong
suốt quá trình làm luận văn.
Em cũng xin gửi lời cảm ơn đến các thầy cô giáo trong Khoa Công nghệ
Thông tin, Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã truyền đạt
những kiến thức và giúp đỡ em trong suốt quá trình học tập, nghiên cứu.
Và cuối cùng tôi xin gửi lời cảm ơn tới các đồng nghiệp, gia đình và bạn
bè những người đã ủng hộ, động viên tạo mọi điều kiện giúp đỡ để tôi có
được kết quả như ngày hôm nay.
Hà Nội, tháng 11 năm 2016
Nguyễn Tư Thục
2.3. Hệ mật mã khóa công khai .............................................................. 10
2.3.1. Khái quát hệ mật mã khóa công khai ........................................ 10
2.3.2. Ưu nhược điểm của hệ mật mã khóa công khai......................... 11
2.3.3. Thuật tóa RSA .......................................................................... 11
2.4. Hàm băm ......................................................................................... 15
2.4.1. Khái niệm ................................................................................. 15
2.4.2. Đặc tính của hàm băm .............................................................. 15
2.4.3. Một số tính chất cơ bản của hàm băm ....................................... 16
2.4.4. Vai trò của hàm băm ................................................................. 16
2.5. Chữ ký số ........................................................................................ 16
2.5.1. Khái niệm ................................................................................. 16
2.5.2. Cách tạo chữ ký số.................................................................... 17
2.5.3. Sơ đồ chữ ký số ........................................................................ 18
2.5.4. Một số chữ ký phổ biến ............................................................ 19
2.5.4.1 Chữ ký RSA......................................................................... 19
2.5.4.2. Chữ ký Elgamal .................................................................. 20
2.5.4.3. Chữ ký DSS ........................................................................ 23
2.5.5. Ưu điểm và ứng dụng của chữ ký số ......................................... 24
2.5.5.1. Xác định nguồn gốc ............................................................ 24
2.5.5.2. Tính toàn vẹn ...................................................................... 24
2.5.5.3. Tính không thể phủ nhận .................................................... 24
2.5.5.4. Ứng dụng của chữ ký số...................................................... 24
2.5.6. Phân phối khóa công khai ......................................................... 25
2.5.7. Chứng thư số ............................................................................ 25
2.5.7.1. Các phiên bản chứng thư số ................................................ 26
2.5.8. Hạ tầng khóa công khai ............................................................ 30
DANH MỤC CÁC TỪ VIẾT TẮT
Chữ viết tắt
ATTT
AES
CNTT
Ý nghĩa
An toàn thông tin
Advanced Encryption Standard – Chuẩn mã hóa nâng cao
Công nghệ thông tin
CA
Certificate Authority – Cơ quan chứng thực số
DDoS
Distributed denial of service – Từ chối dịch vụ
DES
Data Encryption Standard- Chuẩn Mã hóa Dữ liệu
DS
Digital Signature – Chữ ký số
SSL
Secure Socket Layer - Giao thức an ninh thông tin
TMĐT
URL
Thương mại điện tử
Uniform Resource locator - Liên kêt dân địa chỉ web
DANH MỤC CÁC BẢNG
Bảng 1.1 Tổng hợp số liệu thống kê ATTT Việt Nam 2015 ............................... 5
Bảng 3.1 Danh sách các doanh nghiệp được cấp phép ...................................... 38
DANH MỤC CÁC HÌNH VẼ
Hình 2.1 Mật mã đối xứng ................................................................................. 8
Hình 2.2 Mã hóa khóa công khai ...................................................................... 10
Hình 2.3 Sơ đồ biểu diễn thuật toán RSA ......................................................... 12
Hình 2.4 Minh họa hàm băm ............................................................................ 15
Hình 2.5 Lược đồ tạo và kiểm tra chữ ký số ..................................................... 18
Hình 2.6 X.509 version 3 ................................................................................. 27
quá trình giao dịch điện tử đó. Bảo đảm ATTT là bảo đảm tính bí mật, bảo đảm
tính toàn vẹn, bảo đảm tính xác thực và bảo đảm tính sẵn sàng của thông tin.
Việc bảo đảm ATTT được dựa trên cơ sở về mã hóa thông tin, cơ sở khoa học
mật mã phục vụ ATTT, trong đó những vấn đề liên quan đến thuật toán băm,
thuật toán mã hóa và chữ ký số là các cơ sở chính để thực hiện đề tài.
Được sự đồng ý của thầy hướng dẫn và nhận thấy tính thiết thực của vấn
đề, tôi chọn đề tài: “Nghiên cứu ứng dụng chữ ký số trong quá trình gửi
nhận tài liệu điện tử”.
2. Mục đích của luận văn
Luận văn tìm hiểu các vấn đề về bảo đảm an toàn trong giao dịch điện tử,
các cơ sở khoa học trong bảo đảm an toàn bảo mật dữ liệu như các hệ mã hóa dữ
liệu, hàm băm, ký số.
Nghiên cứu các giải pháp mã hoá để bảo mật thông tin và những phương
pháp, kỹ thuật tạo chữ kí số trên các tài liệu, văn bản điện tử.
Đánh giá thực trạng ứng dụng chữ ký số trong gửi nhận văn bản điện tử
đối với các tổ chức, nghiên cứu hạ tầng khóa công khai PKI và các vấn đề liên
quan đến chứng thư số.
Xây dựng giải pháp ứng dụng chữ ký số trong quá trình gửi nhận văn bản
điện tử trên hệ thống quản lý văn bản và điều hành tại Văn phòng Chính phủ.
3. Đối tượng và phạm vi nghiên cứu
Hệ mã hóa RSA, chữ ký số RSA, hạ tầng khóa công khai PKI cũng như
các vấn đề liên quan đến chứng thư số; hệ thống quản lý văn bản và điều hành là
đối tượng nghiên cứu chính của luận văn nhằm xây dựng ứng dụng chữ ký số
trong gửi nhận tài liệu điện tử.
Phạm vi nghiên cứu: Luận văn nghiên cứu ứng dụng chữ ký số trong quá
trình gửi nhận văn bản điện tử với các định dạng như .docx, pdf trên hệ thống
quản lý văn bản và điều hành đang được dùng tại các cơ quan hành chính nhà
nước.
1
nhận văn bản điện tử trên hệ thống quản lý văn bản và điều hành.
2
Chương 1. Giao dịch điện tử và các vấn đề bảo đảm an toàn trong giao dịch
điện tử
1.1. Giao dịch điện tử
Giao dịch điện tử là giao dịch được thực hiện bằng phương tiện điện tử.
Ngày nay với nền tảng của công nghệ thông tin hiện đại, giao dịch điện tử cũng
phát triển nhanh chóng, thu hút được sự quan tâm sâu rộng của các quốc gia, các
tổ chức quốc tế và các khối liên kết kinh tế; góp phần quan trọng làm thay đổi
cách thức kinh doanh, giao dịch truyền thống, phong cách sống, học tập, làm
việc của con người; thúc đẩy mạnh mẽ sự tăng trưởng kinh tế, tăng cường hiệu
quả hoạt động và khả năng cạnh tranh của các tổ chức, doanh nghiệp; tạo ra
nhiều ngành nghề sản xuất, kinh doanh, dịch vụ mới như công nghiệp công nghệ
thông tin, dịch vụ thương mại điện tử, dịch vụ tài chính – ngân hàng trực tuyến,
dịch vụ thư điện tử, dịch vụ chữa bệnh qua mạng, giáo dục đào tạo từ xa... Giao
dịch điện tử cũng thúc đẩy “tin học hóa” hoạt động của các cơ quan nhà nước,
giúp cho quá trình gửi nhận các văn bản được thực hiện nhanh chóng, kịp thời
và chính xác; cho phép mọi người dân có thể dễ dàng tiếp cận các dịch vụ công
cũng như giám sát hoạt động của các cơ quan Nhà nước.
1.2. An toàn thông tin
An toàn thông tin là sự bảo vệ thông tin, hệ thống thông tin tránh bị truy
nhập, sử dụng, tiết lộ, gián đoạn, sửa đổi hoặc phá hoại trái phép nhằm đảm bảo
tính nguyên ven, tính bảo mật và tính khả dụng của thông tin.
An toàn thông tin liên quan đến hai khía cạnh đó là an toàn về mặt vật lý
và an toàn về mặt kỹ thuật.
Mục tiêu cơ bản của an toàn thông tin [8]:
Nguy cơ mất an toàn thông tin do sử dụng e-mai.
Nguy cơ mất an toàn thông tin trong quá trình truyền tin.
Nguy cơ bị các cuộc tấn công mạng, v.v...
1.4. Thực trạng mất an ninh an toàn trong giao dịch điện tử
Giao dịch điện tử là một hoạt động mang lại hiệu quả cao, song một khi
gặp rủi ro thì những thiệt hại đối với các tổ chức, doanh nghiệp cũng không nhỏ.
Theo đánh giá tổng thể, tình hình bảo đảm an toàn thông tin của Việt Nam
đã có những chuyển biến tích cực rõ rệt [1]. Chỉ số an toàn thông tin Việt Nam
năm 2015 (VNISA Index 2015) đã tăng từ mức 39% vào năm 2014 lên 46,4%
vào năm 2015.
Tuy nhiên vẫn còn nhữn bất cập, tồn tại về an toàn thông tin như: Việt
Nam tiếp tục nằm trong danh sách các quốc gia có tỉ lệ lây nhiễm phần mềm độc
hại cao trên thế giới. Chỉ số này của Việt Nam năm 2015 ước tính vào khoảng
64,36%, mặc dù tỉ lệ này có giảm so với năm 2014 nhưng là không đáng kể.
Trong năm 2015, Việt Nam phát hiện 38.177 cuộc tấn công mạng, tăng
gấp 2 lần so với năm 2014, trong đó có 5.600 cuộc tấn công lừa đảo
4
(Phishing), 22.200 cuộc tấn công cài phần mềm độc hại (Malware) và 10.377
cuộc tấn công thay đổi giao diện (Deface), trong số đó có 212 cuộc tấn công
thay đổi giao diện vào các hệ thống có tên miền “.gov.vn”
Bảng 1.1 Tổng hợp số liệu thống kê ATTT Việt Nam 2015
TT
Nội dung
Năm 2015
Qua mạng
39 %
49 %
5
Qua các thiết bị đa phương tiện
77 %
77 %
> 19.000 cuộc
Tấn công mạng
6
Tổng số cuộc tấn công
38.177 cuộc
7
Tổng số cuộc tấn công thay đổi giao
diện
10.377 cuộc
8
3.95 %
Thư rác
12 Tỷ lệ thư rác phát tán từ Việt Nam
6.1 %
4.5 %
1.5. Các giải pháp bảo đảm An toàn thông tin.
Để đảm bảo ATTT trong giao dịch điện tử chúng ta cần có những giải
pháp phù hợp, hiện nay có nhiều giải pháp cho vấn đề ATTT trong giao dịch
điện tử như:
Giải pháp nền tảng:
5
+ Giảm thiểu nguy cơ từ cơ sở hạ tầng kỹ thuật: Xác định nguồn và
nguyên nhân gây mất ATTT và ứng dụng các giải pháp kỹ thuật tương ứng.
+ Trong sạch và nâng cao chất lượng nguồn nhân: lựa chọn nhân lực quản
trị và vận hành hệ thống, đào tạo và nâng cao ý thức người sử dụng.
+ Hành lang pháp lý: chính sách ATTT; xây dựng và áp dụng các chế tài,
Mật mã được sử dụng để bảo vệ tính bí mật của thông tin khi thông tin
được truyền trên các kên truyền thông công cộng như các kênh bưu chính, điện
thoại, mạng tuyền thông máy tính, mạng Internet, v.v...[2]
Mật mã gắn liền với quá trình mã hóa; tức là gắn với các cách thức để
chuyển đỗi thông tin từ dạng có thể nhận thức được thành dạng không thể nhận
thức được, làm cho thông tin trở thành dạng không thể đọc được. Các thuộc tính
yêu cầu của mật mã hóa là tính bí mật, tính nguyên vẹn, tính xác thực, tính không
bị từ chối và tính chống lặp lại. Mã hóa được sử dụng chủ yếu để đảm bảo tính bí
mật của các thông tin, chứng thực khóa công khai, chữ ký số, v.v..
Một hệ mã bao gồm 5 thành phần (P, C, K, E, D) [2], trong đó:
- P là tập hữu hạn các bản rõ (dữ liệu trước khi mã hóa)
- C là tập hữu hạn các bản mã (dữ liệu sau khi mã hóa)
- K là tập hữu hạn các khóa (khóa công khai, khóa bí mật)
- E là tập các hàm lập mã.
- D là tập các hàm giải mã
Với khóa lập mã ke K có hàm lập mã:
e
ke
E,e
ke:
( eke ( x )) x , x P
(2.3)
Ở đây x là bản rõ, eke(x) là bản mã.
Quá trình mã hóa được tiến hành bằng cách áp dụng hàm lập mã E lên
bản rõ P, vốn được biểu diễn dưới dạng số, để trở thành thông tin đã mã hóa C.
Quá trình giải mã được tiến hành ngược lại: áp dụng hàm giải D lên thông
tin C để được thông tin đã giải mã P.
7
Hệ mật mã chính là hệ thống cung cấp các kỹ thuật mã hóa và giải mã dữ
liệu, được phân loại thành hệ mật mã khóa đối xứng và hệ mật mã khóa công
khai.
2.2. Hệ mật mã khóa đối xứng
2.2.1. Khái quát hệ mật mã khóa đối xứng
Hệ mật mã khóa đối xứng là hệ mật mã chỉ dùng một khóa duy nhất cho
cả hai quá trình mã hóa và giải mã. Hệ mật mã này có đặc điểm là có thời gian
mã hóa và giải mã tương đối nhanh. Do yậy, hệ mật mã khóa đối xứng thường
được sử dụng để mã hóa những dữ liệu lớn.
Có hai thuật toán được sử dụng chủ yếu trong việc tạo khóa bí mật trong
hệ mật mã khóa đối xứng:
- Loại thứ nhất tác động trên bản rõ theo từng nhóm bits. Từng nhóm bits
này được gọi với một cái tên khác là khối (Block) và thuật toán được áp dụng
128 bits cho đến 256 bits. AES là một thuật toán có tốc độ mã hóa và giải mã
nhanh, có khả năng chống được nhiều phương pháp tấn công như vét cạn, kẻ tấn
công đứng giữa, v.v...
2.2.2. Ưu nhược điểm của hệ mã hóa đối xứng
Ưu điểm:
- Có thể thiết kế để đạt tốc độ cao.
- Khóa dùng chung cho mã hóa khóa đối xứng tương đối ngắn.
- Được xem như thành phần cơ bản có thể triển khai để xây dựng các kỹ
thuật mã hóa khác, bao gồm khởi tạo các số ngẫu nhiên, các hàm băm, các thuật
toán tính toán.
- Có thể được kết hợp để tạo ra các thuật toán mã hóa mạnh hơn.
Nhược điểm:
- Trong quá trình truyền thông giữa hai người, khóa phải được giữ bí mật
cho cả hai phía.
- Trong hệ thống mạng lớn, số lượng khóa cần được quản lý nhiều. Do
vậy việc quản lý khóa một cách hiệu quả đòi hỏi sự dụng một bộ phận tin cậy
thứ ba (TTP: Trusted Third Party).
- Khóa bí mật cần được thay đổi thường xuyên.
9
- Kỹ thuật chữ ký số được phát triển từ cơ chế mã hóa khối đối xứng đòi
hỏi sử dụng các khóa lớn cho các hàm xác nhận công khai hoặc là sủ dụng một
TTP.
2.3. Hệ mật mã khóa công khai
2.3.1. Khái quát hệ mật mã khóa công khai
Khác với hệ mật mã khóa đối xứng, hệ mật mã khóa công khai sử dụng
một cặp khóa có liên quan với nhau về mặt toán học để mã hóa và giải mã thông
hoạt và hiệu quả hơn, người sử dụng chỉ cần bảo vệ khoá bí mật.
Đặc trưng nổi bật của hệ mã hóa công khai là cả khóa công khai và dữ
liệu mã hóa (ciphertext) đều có thể giử đi trên một kên truyền thông tin không
an toàn.
Mục đích chính của hệ mật khóa công khai là phân phối khóa và ký số.
Các ứng dụng của hệ mật mã này gồm có: Mã hóa/giải mã, chữ ký, trao đổi
khóa.
Một số hệ mã hóa khóa công khai phổ biến như: RSA, Rabin, Elgaml,
v.v...
2.3.2. Ưu nhược điểm của hệ mật mã khóa công khai
Ưu điểm:
- Chỉ có khóa riêng thì cần được giữ bí mật, tuy nhiên việc xác nhận các
khóa công khai cần được đảm bảo.
- Việc quản trị các khóa trên mạng đòi hỏi sự tồn tại duy nhất một thành
phần tin cậy.
- Cặp khóa riêng và công khai có thể được sử dụng trong thời gian dài.
- Nhiều mô hình khóa công cộng được phát triển hình thành nên các kỹ
thuật chữ ký số hiệu quả. Khóa được sử dụng cho hàm kiểu công khai thì nhỏ
hơn rất nhiều so với dùng khóa đối xứng.
- Trong một mạng lớn, số lượng khóa cần thiết được quan tâm ít hơn so
với việc dùng khóa đối xứng.
Nhược điểm:
- Tốc độ cho các phương thức mã hóa công khai chậm hơn so với các mô
hình khóa đối xứng.
- Kích thước khóa lớn hơn nhiều so với cơ chế mã hóa đối xứng.
2.3.3. Thuật toán RSA
Các đặc điểm chính trong thuật toán mã hóa RSA
nhất là 100), sau đó tính:
n = p * q; Ф(n) = (p -1) * (q -1) (2.9)
- Chọn ngẫu nhiên 1 số e sao cho 1 < e < Ф(n), với e là số nguyên
tố cùng nhau với Ф(n).
- Tính số nghịch đảo d của e đối với Ф(n): 1 < d < Ф(n), ed =
1(mod Ф(n)).
Ở đây d là số mũ bí mật; e là số mũ công khai.
- Cặp KU = {e, n} được gọi là khoá công khai.
- Cặp KR = {d, n} được gọi là khoá bí mật.
Mã hóa:
Khi bên gửi muốn gửi thông điệp M cho bên nhận với yêu cầu cần bảo
mật thông tin. Bên gửi yêu cầu Bên nhận gửi khoá công khai KU = {e, n}. Bên
gửi dùng khoá công khai KU này để mã hoá thông điệp M thành C theo công
thức: C = Me mod n, sau đó Bên gửi gửi C cho Bên nhận.
Giải mã:
Để giải mã bản mã C, Bên nhận dùng khoá bí mật KR = {d, n} để có thể
khôi phục lại dữ liệu gốc ban đầu do Bên gửi gửi đến thông qua phép toán M =
Cd mod n.
Đặc trưng của hệ RSA
- Không cần phải thiết lập một kênh bảo vệ phức tạp để truyền khóa như
trong hệ mã bí mật.
- Cặp khóa công khai được tạo ra theo một phương pháp đặc biệt có quan
hệ với nhau và được chọn trong nhiều khóa có thể (trong đó nếu khóa này dùng
để mã hóa thi khóa kia dùng để giải mã).
- Ứng với một cặp p, q có thể chọn được nhiều bộ khóa công khai (n; e; d)
- Mọi người trong hệ thống nếu nhận được bản mật C thì cũng không thể
biết được bản rõ P. Với việc chỉ biết khóa mã hóa ke và căn cứ vào các thông tin
về thuật toán thì không thể tìm ra khóa giải mã kd trong thời gian chấp nhận
được (kể cả dùng hệ thống hiện đại nhất để tinh toán).
Độ an toàn của hệ mã hóa RSA [8]:
200
4.000.000 năm
300
5.1015 năm
500
4.1025 năm
Thuật toán RSA sử dụng hai khóa có liên quan với nhau về mặt toán học,
cho nên kẻ tấn công nếu biết được khóa công khai cũng chưa chắc có thể tìm
được khóa bí mật. Tuy nhiên, vẫn có những phương pháp tấn công đối với thuật
toán RSA:
- Vét cạn: không gian khóa của RSA là rất lớn vì vậy tấn công theo hướng
này là không thể thực hiện được.
- Phương pháp phân tích toán học: Phân tích n là một số nguyên lớn thành
2 thừa số nguyên tố p và q. Tuy nhiên, việc phân tích một số nguyên lớn ra số
nguyên tố là rất khó khăn, với tốc độ của máy tính hiện nay cũng không thể đáp
ứng được việc phân tích số nguyên tố lớn trong thời gian đa thức nếu các số p, q
được chọn là lớn. Thời gian phân tích xem bảng 2.1.
- Xác định trực tiếp Ф(n) không thông qua p và q.
- Xác định trực tiếp d không thông qua Ф(n).
Ứng dụng RSA:
- Nếu dữ liệu trong thông điệp x thay đổi hay bị xóa để thành thông điệp
x’ thì h(x’) #h(x). Cho dù chỉ có một sự thay đổi nhỏ hay chỉ là xóa đi một bit dữ
liệu của thông điệp thì giá trị băm cũng vẫn thay đổi.
Điều này có nghĩa là: hai thông điệp hoàn toàn khác nhau thì giá trị hàm
băm cũng hoàn toàn khác nhau. Nội dung của thông điệp gốc không thể bị suy
ra từ giá trị hàm băm. Nghĩa là với thông điệp x thì dễ dàng tính được z = h(x),
nhưng lại không thể tính suy ngược lại được x nếu chỉ biết giá trị hàm băm h(x).
2.4.3. Một số tính chất cơ bản của hàm băm
- Có thể áp dụng với thông báo đầu vào có độ dài bất kỳ.
- Tạo ra giá trị băm y = h(x) có độ dài cố định.
- h(x) dễ dàng tính được với bất kỳ giá trị của x.
- Tính một chiều: với mọi đầu ra y cho trước không thể tìm được x’ sao
cho h(x’) bằng giá trị y cho trước.
- Tính chống xung đột yếu: với mọi dữ liệu đầu vào x1 cho trước không
thể tìm được bất kỳ giá trị x2 nào (x2 ≠ x1) mà h(x2) = h(x1).
- Tính chống xung đột mạnh: không thể tính toán để tìm được 2 dữ liệu
đầu vào x1 và x2 phân biệt sao cho chúng có cùng giá trị băm (h(x2) = h(x1)).
2.4.4. Vai trò của hàm băm
- Bảo vệ tính toàn vẹn và phát hiện xâm nhập thông điệp được gửi qua
mạng bằng cách kiểm tra giá trị băm của thông điệp trước và sau khi gửi nhằm
phát hiện những thay đổi cho dù là nhỏ nhất.
- Được dùng trong quá trình tạo chữ kí số trong giao dịch điện tử.
Một số hàm băm thông dụng:
Các hàm băm dụng MD (MD2, MD4, MD5) do Rivest đề xuất. Giá trị
băm theo các thuật toán này có độ dài cố định là 128 bit.
Hàm băm an toàn SHA, SHA1, SHA2 . Giá trị băm theo thuật toán này có
độ dài cố định là 160 bit.
2.5. Chữ ký số