MỤC LỤC
LỜI MỞ ĐẦU
1. Tính cấp thiết của đề tài
Ngày nay, với sự phát triển mạnh mẽ của Công nghệ Thông tin, việc sử dụng
thông tin trên mạng Internet ngày càng được mở rộng và hiệu quả trên tất cả các
ngành nghề, các lĩnh vực. Tuy nhiên, bên cạnh đó người sử dụng cũng phải đối mặt
với những nguy cơ mất mát, rị rỉ thơng tin, bị xâm hại các quyền riêng tư khi truy
cập mạng. Đây là một trong những lý do khiến người sử dụng lo ngại. đặc biệt là
các cơ quan nhà nước.
Nhận thức được lợi ích và tầm quan trọng của công nghệ thông tin và truyền
thơng trong việc duy trì và thúc đẩy sự phát triển bền vững, trong những năm vừa
qua lĩnh vực công nghệ thơng tin nói chung và hoạt động ứng dụng cơng nghệ
thơng tin nói riêng đã phát triển nhanh chóng, mạnh mẽ và ngày càng sâu rộng
trong mọi mặt của đời sống kinh tế xã hội. Các hoạt động có thể kể đến như: Các
hoạt động thương mại điện tử; các hoạt động hành chính cơng phổ biến như gửi
nhận thư điện tử, các hệ thống hỗ trợ quản lý điều hành trên mạng. Chính vì những
vấn đề thực tiễn trên, nhóm em đã chọn đề tài: “Nghiên cứu ứng dụng các thuật
tốn mã hóa, chữ ký điện tử xây dựng hệ thống trao đổi thơng tin an tồn trên
mơi trường mạng” nhằm nâng cao việc xác thực và an tồn thơng tin trong các
hoạt động trao đổi thơng tin của các cơ quan, tổ chức trong các ứng dụng trên mơi
trường mạng.
2. Kết cấu đề tài
Ngồi phần mở đầu, kết luận, bài tìm hiểu của nhóm gồm 2 chương:
Chương 1: Tổng quan về an tồn thơng tin
Chương 2: Xây dựng hệ thống thơng tin an tồn
1
Chương 1
TỔNG QUAN VỀ AN TỒN THƠNG TIN
1.1. Một số khái niệm cơ bản
1.1.1. Khái niệm về an tồn thơng tin
Thông tin được lưu trữ bởi các sản phẩm và hệ thống CNTT là một tài
nguyên quan trọng cho sự thành cơng của tổ chức đó, là tài sản của một cá nhân
hay tổ chức. Các thông tin cá nhân lưu trữ trong hệ thống thông tin cần được giữ bí
mật, bảo vệ và khơng bị thay đổi khi khơng được phép. Trong khi các sản phẩm và
hệ thống CNTT thực hiện các chức năng của chúng, các thông tin cần được kiểm
soát để đảm bảo chúng được bảo vệ chống lại các nguy cơ, ví dụ như việc phổ biến
và thay đổi thông tin không mong muốn và trái phép, nguy cơ mất mát thông tin.
1.1.2. Khái niệm về đảm bảo an tồn thơng tin
Đảm bảo an tồn thơng tin là đảm bảo an toàn kỹ thuật cho hoạt động của
các cơ sở hạ tầng thơng tin, trong đó bao gồm đảm bảo an toàn cho cả phần cứng và
phần mềm hoạt động theo các tiêu chuẩn kỹ thuật do nhà nước ban hành; ngăn
ngừa khả năng lợi dụng mạng và các cơ sở hạ tầng thông tin để thực hiện các hành
vi trái phép gây hại cho cộng đồng, phạm pháp hay khủng bố; đảm bảo các tính
chất bí mật, tồn vẹn, chính xác, sẵn sàng phục vụ của thông tin trong lưu trữ, xử lý
và truyền tải trên mạng.
1.2. Thực trạng và nhu cầu về an toàn thơng tin tại Việt Nam
Theo thống kê của Bkav, tính từ đầu năm 2012 đến nay, mỗi ngày có tới 6
website tại Việt Nam bị tấn công, tương ứng với hơn 2.000 website bị hack mỗi
năm. Đã có 175 website của các cơ quan, doanh nghiệp tại Việt Nam bị hacker xâm
nhập, trong đó có 24 trường hợp gây ra bởi hacker trong nước, 151 trường hợp do
hacker nước ngoài. Hầu hết nguyên nhân của các vụ hack này là do website tồn tại
nhiều lỗ hổng.
2
Những thông tin trên cho thấy việc lựa chọn giải pháp và đầu tư cho an tồn
thơng tin là vấn đề cần được các cơ quan nhà nước chú trọng đầu tư, bên cạnh đó là
việc hồn thiện hành lang chính sách và pháp lý trong lĩnh vực này để việc ứng
dụng CNTT thực sự có hiệu quả.
1.3. Tổng quan về kỹ thuật mật mã
Kỹ thuật mật mã đóng vai trò thiết yếu trong việc giải quyết vấn đề an tồn
thơng tin. Bảng 1.1 liệt kê một số kỹ thuật và cơng nghệ để giải quyết u cầu xác
thực, tồn vẹn, bí mật, chống chối bỏ trong an tồn và bảo mật thông tin.
Bảng 1.1. Một số kỹ thuật và cơng nghệ giải quyết u cầu an tồn và bảo mật
u cầu
Bí mật
Xác thực
Cơng nghệ - Kỹ thuật
Mã hóa và giải mã dựa vào khóa
Sử dụng tên và mật khẩu của người dùng, đặc điểm sinh
trắc học, ký số và kiểm tra chữ ký số dựa vào khóa
Tin cậy
Ký số và kiểm tra chữ ký số dựa vào khóa
Chống chối bỏ
Ký số và kiểm tra chữ ký số dựa vào khóa
Tồn vẹn
Tóm lược thơng báo
Trao quyền
Áp dụng chính sách kiểm soát truy nhập và quản lý
quyền hạn
Kiểm toán
Lưu nhật ký và sử dụng cơng cụ kiểm tốn
1.3.1. Các hệ mật mã
Hệ mật 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 khóa cơng khai và hệ mật khóa đối xứng. Hệ mật khóa
đối xứng sử dụng cùng một khóa khi mã hóa và giải mã, được minh hoạ trong Hình
1.1. Độ an tồn của hệ mật này phụ thuộc chính vào sự bí mật của khóa.
3
Hình 1.1. Hệ mật khóa đối xứng đảm bảo tính bí mật và xác thực
Hệ mật khóa cơng khai sử dụng một cặp khóa (khóa riêng và khóa cơng khai), một
khóa được sử dụng để mã hóa và khóa cịn lại được sử dụng để giải mã, được minh
hoạ trong dưới đây:
Hình 1.2. Hệ mật khố cơng khai
4
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 này gồm có: Mã hóa/giải mã, chữ ký, trao đổi khóa.
Các thuật tốn mật mã:
- Tóm lược thơng báo (MD2-4-5, SHA, SHA1, SHA2,…): chuyển thơng
báo rõ có độ dài khơng xác định thành thơng báo mã có độ dài xác định.
- Mật mã khóa bí mật (DES, IDEA, RC2-4-5, Triple-DES, AES,…): sử
dụng cùng một khóa cho mã hóa và giải mã.
- Mật mã khóa cơng khai (DSA, RSA,…): sử dụng một khóa để mã hóa và
một khóa khác để giải mã.
Khi A muốn truyền thông với B, thủ tục được tiến hành như sau:
1. A tạo ra một cặp khóa {KUa, KRa} và truyền thơng báo cho B gồm KUa và
tên của A (IDA).
2. B tạo ra khóa bí mật Ks và gửi cho A sau khi mã hóa với khóa cơng
khai của A.
3. A tính tốn DKRa[EKUa[Ks]] để khơi phục lại khóa bí mật. Chỉ A có
khóa riêng nên giải mã được khóa bí mật. Chỉ A và B biết khóa bí mật Ks.
Nếu kiểm sốt được kênh truyền thơng, đối tượng E có thể dàn xếp cuộc
truyền thơng mà khơng bị phát hiện, theo hình thức sau đây:
1. A tạo ra một cặp khóa {KUa, KRa} và truyền thơng báo cho B gồm có KUa
và tên của A (IDA).
2. E chặn lấy thông báo, tạo ra một cặp {KUe KRe} và truyền KUe || IDA cho
B.
3. B sinh ra một khóa bí mật Ks và truyền EKUe[Ks] cho A.
4. E chặn lấy thông báo, biết được Ks bằng cách tính DKRe[EKUe[Ks]]. E
truyền EKUa[Ks] cho A.
5. A và B không biết E đã làm giả Ks và dùng Ks để trao đổi các thông báo.
Không mất nhiều thời gian, E có thể can thiệp vào kênh truyền thơng, nghe
trộm và giải mã tất cả các thơng báo vì biết Ks.
- Lược đồ phân phối khóa bí mật đảm bảo tính bí mật và xác
thực:
2. A sử dụng khóa cơng khai của B để mã hóa thơng báo (1) gửi cho B có
chứa tên của A (IDA) và một nonce N1 để nhận dạng giao dịch này.
2. B gửi thơng báo (2) cho A. Thơng báo được mã hóa bằng KUa, có
chứa N1 của A và nonce mới N2 do B sinh ra. Do chỉ có B mới có
5
thể giải mã thông báo (1) nên sự xuất hiện của N1 trong thông báo
(2) đảm bảo A đang liên lạc với B.
3. A trả lại N2, được mã hóa bằng khóa cơng khai của B để đảm bảo rằng B
đang liên lạc với A.
4. A chọn một khóa bí mật Ks và gửi thông báo (3) M=
EKUb[EKRa[Ks]] cho B. Việc mã hóa thơng báo với khóa cơng khai
của B đảm bảo chỉ có B mới có thể đọc. Việc mã hóa với khóa riêng
của A đảm bảo chính A đã gửi thơng báo.
5. B tính tốn DKUa[EKRb[M]] để khơi phục khóa bí mật.
1.3.2. Chữ ký số
Chữ ký số là dữ liệu để xác định nguồn gốc và tính tồn vẹn của thơng báo.
Người gửi sử dụng khóa riêng của mình để ký số thơng báo hay tạo chữ ký số cho
thông báo được gửi đi. Người nhận sử dụng khóa cơng khai của người gửi để kiểm
tra nguồn gốc thông báo và xác định thông báo không bị thay đổi trên đường
truyền.
Chữ ký số tương tự như chữ ký viết tay và phải có một số tính chất sau:
- Có khả năng kiểm tra chữ ký số và thời gian ký số
- Có khả năng xác thực các nội dung tại thời điểm ký số.
- Thành viên thứ 3 có thể kiểm tra chữ ký số để giải quyết các tranh
chấp. Dựa vào các tính chất cơ bản này, chữ ký số có các yêu cầu sau:
- Phải là một mẫu bít phụ thuộc vào thơng báo được ký số.
- Phải sử dụng một thông tin duy nhất của người gửi để ngăn chặn tình trạng
làm giả và chối bỏ.
- Được tạo ra dễ dàng.
- Khó có thể làm giả chữ ký số bằng cách tạo ra một thông báo mới cho
một chữ ký số hiện có, hoặc tạo ra một chữ ký số giả mạo cho một thông
báo cho trước.
- Trong thực tế, cần lưu giữ một bản sao của chữ ký số.
1.3.3. Phân phối khóa cơng khai
Nhiều kỹ thuật phân phối khóa cơng khai được đưa ra như khai báo công
khai, thư mục công khai, trung tâm quản lý khóa cơng khai và chứng chỉ khóa cơng
6
khai. Một giải pháp lựa chọn khác là sử dụng chứng chỉ khóa cơng khai. Các thành
viên trao đổi khóa thơng qua chứng chỉ khóa cơng khai mà khơng cần liên lạc với
cơ quan quản lý khóa cơng khai. Khi cần sử dụng khóa cơng khai, các thành viên
kiểm tra chứng chỉ do cơ quan quản lý phát hành.
1.3.4. Chứng chỉ khóa cơng khai
Chứng chỉ khóa cơng khai là sự gắn kết khóa cơng khai của một thực thể
(con người, thiết bị phần cứng, dịch vụ) với một hoặc nhiều thuộc tính nhận dạng
thực thể, được một cơ quan chứng thực (Certification Authority - viết tắt là CA)
phát hành.
Việc sử dụng khóa cơng khai có trong chứng chỉ hồn tồn rất đơn giản
nhưng việc công bố và quản lý các chứng chỉ gặp rất nhiều vấn đề như phát hành,
hủy bỏ, kiểm tra tình trạng trực tuyến, thư mục lưu trữ, chứng thực chéo. Những
vấn đề này được giải quyết thơng qua hạ tầng khóa cơng khai.
1.3.5. Hạ tầng khóa công khai
Các thành phần cơ bản của PKI X509 gồm phía nhà cung cấp (cơ quan
chứng thực, cơ quan đăng ký, hệ thống quản lý và phân phối chứng chỉ) và phía
người dùng (các ứng dụng PKI). Mơ hình cấp phát chứng chỉ khóa cơng khai của
PKI X509 được minh họa trong hình dưới đây.
Hình 1.3. Mơ hình cấp phát chứng chỉ của PKI X50
7
1.4. Một số cơ sở mật mã phục vụ an tồn thơng tin
1.4.1. Lược đồ mã RSA-OAEP
1.4.1.1. Hàm mã hố RSAES-OAEP
RSAES-OAEP - ENCRYPT((n, e), M,L)
Các lựa chọn:
Đầu vào:
Đầu ra:
Các lỗi:
Giả thiết:
Hash là hàm băm (hLen ký hiệu độ dài theo byte của đầu ra
hàm băm)
MGF là hàm sinh mặt nạ
(n, e) là khố cơng khai RSA của người nhận (k ký hiệu độ
dài theo byte của RSA modulo n).
M là thơng báo được mã hóa, chuỗi byte có độ dài mLen với
mLen ≤ k –2hLen-2.
L là nhãn tùy chọn liên quan đến thông báo, giá trị mặc định
của L là chuỗi rỗng nếu không được cung cấp.
C bản mã, chuỗi byte có độ dài k.
“thơng báo q dài”, “nhãn q dài”.
Khố cơng khai RSA (n, e) là hợp lệ.
8
Hình 1.4. Thuật tốn mã hóa EME-OAE
1.4.1.2. Hàm giải mã RSAES-OAEP
RSAES-OAEP-DECRYPT(K, C,L)
Các lựa chọn:
Đầu vào:
Đầu ra:
Các lỗi:
Hash là hàm băm (hLen ký hiệu độ dài theo byte của đầu ra
hàm băm). MGF là hàm sinh mặt nạ
K là khoá riêng RSA của người nhận (k ký hiệu độ dài theo
byte của RSA-modulo n).
C là bản mã cần được giải mã, chuỗi byte có độ dài k, với k ≥
2hLen + 2.
L là nhãn tùy chọn liên quan đến thông báo, giá trị mặc định
của L là chuỗi rỗng nếu không được cung cấp.
M thơng báo, một chuỗi byte có độ dài mLen với mLen ≤ k –
2hLen -2
“Lỗi giải mã”
9
1.4.1.3. Yêu cầu tham số an toàn cho hệ mật RSA
Số mũ công khai e phải được chọn với các ràng buộc sau:
a) Chọn trước khi tạo số mũ bí mật.
b) Là số nguyên dương lẻ sao cho 65537 ≤ e < 2nlen-2x security_strength.
Hai số nguyên tố p, q phải được chọn với ràng buộc:
a) p-1 và q-1 phải nguyên tố cùng nhau với e.
b) Mỗi một trong bốn số p-1, p+1, q-1 và q+1 phải có ước nguyên tố lớn hơn
2security_strength+20.
c) x 2nlen/2-1 ≤ p, q ≤ 2nlen/2-1.
Số mũ bí mật d phải được chọn sau khi tạo p và q với các ràng buộc:
a) d > 2nlen/2.
b) d ≡ e-1 (mod lcm(p-1,q-1)).
1.4.2. Thuật toán mã khối AES
1.4.2.1. Giới thiệu thuật toán AES
AES là thuật toán hướng byte. Đơn vị thông tin được xử lý trong thuật toán
là byte. Chúng được xem như một phần tử của trường Galois GF(28) với phép ⊕ và
phép nhân •
Mỗi byte có thể được biểu diễn theo nhiều cách khác nhau. Ở dạng nhị phân
là {b7 b6 b5 b4 b3 b2 b1 b0} ở dạng hệ cơ số 16 là { h1 h0}, ở dạng đa thức có các
hệ số nhị phân là . Ví dụ, một byte được biểu diễn ở dạng nhị phân là {01100011},
ở dạng đa thức: x6+ x5+ x+ 1 hoặc ở dạng hexa là {63}.
⊕ Phép cộng trên GF(28) như sau:
{a7 a6 a5 a4 a3 a2 a1 a0 } ⊕ {b7 b6 b5 b4 b3 b2 b1 b0 }={c7 c6 c5 c4 c3 c2 c1 c0 } với
ci=ai ⊕ bi ,0 ≤ i ≤7
• Phép nhân trên GF(28) như sau:
a(x)•b(x)=a(x) x b(x) mod ( x8 + x4 +x3 +x +1 )
10
1.4.2.2. Cấu trúc bên trong của AES
Số lượng các vòng phụ thuộc vào kích cỡ khóa được chọn, ví dụ kích cỡ
khóa 128 bit-10 vịng, 192bit-12 vịng, và 256 bit - 14 vòng. Mỗi vòng gồm nhiều
tầng khác nhau. Các tầng cho q trình mã hóa và giải mã như sau:
* Mã hóa
Tầng thay thế byte (ByteSub)
Tầng thay thế byte gồm 16 S-box có các tính chất sau:
Các S-box giống hệt nhau. Là thành phần phi tuyến duy nhất trong AES,
nghĩa là: ByteSub(Si) + ByteSub(Sj)≠ByteSub(Si+Sj),
S-box của AES được xây dựng dựa trên ánh xạ nghịch đảo trên trường
GF(28). Trong cài đặt bằng phần mềm, các S-box thường được thực hiện như một
bảng tra.
Lược đồ tạo khóa (Keyschedule)
Các khóa con được tính một cách đệ quy từ 128/192/256 bit khóa gốc đầu
vào. Mỗi vịng mã hóa/giải mã, sử dụng một khóa con cộng với một khóa con ở
phần bắt đầu của thuật tốn AES. Như vậy, số khóa con=số vịng +1. Tương ứng
với mỗi kích cỡ khóa đầu vào có một lược đồ khóa. Với khóa 128 bit có số khóa
con là 11, khóa 192 bit có số khóa con là 13 và khóa 256 bit có số khóa con là 15.
* Giải mã
AES không dựa vào cấu trúc Feistel nên mọi biến đổi phải thực hiện ngược
khi giải mã. Với biến đổi MixColumn có InvMixColumns cho q trình giải mã,
với biến đổi ShiftRows, với ByteSub có InvByteSub. Tầng cộng khóa cũng phải
thực hiện với các khóa con có thứ tự ngược lại.
InvMixColumns: sử dụng đa thức d(x)={0b}x3+ {0d}x2 +{09}x+{0e}
InvShiftRows: tất cả các hàng trong ma trận trạng thái được dịch vịng theo
hướng ngược lại.
InvByteSub: Vì S-box là song ánh nên chúng ta có thể xây dựng một ánh xạ
ngược sao cho Ai=S-1(Bj). Ánh xạ này được dùng khi giải mã. Nó thường được lưu
trữ ở dạng một bảng tra.
Lược đồ khóa cho giải mã: Mọi khóa con phải được sử dụng theo thứ tự
ngược lại. Trong thực tế, cả khi mã hóa và giải mã, chúng ta vẫn sử dụng cùng một
lược đồ khóa. Điều này dẫn đến việc phải tính tốn các khóa con trước khi mã hóa
11
khối đầu tiên.
1.4.2.3. Một số yêu cầu đảm bảo an toàn khi ứng dụng mã khối AES
Hệ mã khối AES có vai trị quan trọng và được sử dụng nhiều trong các hệ
thống an toàn và bảo mật. Tuy nhiên, ta cần tuân thủ một số yêu cầu về cài đặt hiệu
quả và chọn lựa chế độ làm việc cho AES nhằm đảm bảo an toàn khi ứng dụng.
Yêu cầu cài đặt hiệu quả AES trong thực tế:
Cách cài đặt trực tiếp là cách khá tốt đối với các bộ vi xử lý 8-bit, nhưng
không hiệu quả với các bộ vi xử lý 32-bit hoặc 64-bit. Đối với các bộ vi xử lý (hoặc
thiết bị có tài nguyên nhỏ), việc cài đặt tối ưu cần chú ý vấn đề sau:
S-box: có thể lưu bảng tra đơn (1 S-box 8 bit) hoặc tính tốn qua các phép
tính số học trên GF(28).
- Biến đổi MixColumns: có thể tính phép nhân một phần tử với các hằng số
0x09, 0x03, 0x0b, 0x0d, 0x0e có thể được tính thơng qua các phép nhân với
hằng số 0x02, 0x01. Cụ thể:
a.0x03
= (0x02.a) +(0x01.a) = (0x02.a) ^ a
a.0x09
= (((a.0x02).0x02).0x02) + (0x01.a)= (((a.0x02).0x02).0x02)^a
a.0x0b
= (((a.0x02).0x02).0x02) + (a.0x02) + (a.0x01)
= (((a.0x02).0x02).0x02) ^ (a.0x02) ^ a
Lựa chọn chế độ làm việc cho AES: Mỗi chế độ làm việc của mã khối đều có
những ưu nhược điểm riêng, cần tìm hiểu và lựa chọn áp dụng.
12
Chương 2
XÂY DỰNG HỆ THỐNG THƠNG TIN AN TỒN
2.1. Giới thiệu
Hiện nay đã có nhiều cơng cụ (phần mềm, giải pháp) hỗ trợ người dùng
trong việc xác thực và mã hố thơng tin. Tuy nhiên các cơng cụ này chủ yếu được
cung cấp từ các nhà cung cấp chữ ký số hoặc phần mềm miễn phí dùng để cài đặt
tại máy PC của người dùng để sử dụng cho các ứng dụng cài đặt tại máy. Việc tích
hợp với các ứng dụng khác, đặc biệt là các ứng dụng web chưa được chú trọng.
Giải pháp xác thực tài liệu trên môi trường mạng: Là việc xây dựng hệ thống
xác thực (ký số) tài liệu trong trao đổi văn bản trên mơi trường mạng. Giải pháp
được xây dựng cho phép tích hợp trên các chức năng gửi nhận tài liệu của các ứng
dụng web bằng việc sử dụng chứng chỉ số cho máy chủ và chứng chỉ số của tổ
chức, cá nhân tham gia vào hệ thống.
2.2. Sơ đồ kiến trúc hệ thống xác thực tài liệu trên môi trường mạng
Từ những nghiên cứu trong chương 1 về hiểm họa đối với ứng dụng web,
đặc biệt đối với các ứng dụng trong các hoạt động cần được coi trọng và đảm bảo
tính xác thực, tồn vẹn cho các tài liệu (văn bản) trao đổi qua mạng. Hình 2.1 mơ tả
q trình xác thực tài liệu truyền nhận giữa máy chủ và máy trạm.
Hình 2.1. Mơ hình xác thực tài liệu trên môi trường mạng
13
Các thành phần trong của sơ đồ:
a) Thiết bị eToKen
Hình 2.2. Thiết bị eToKen và thành phần của eToKen
Trong hình:
- Dữ liệu: Là dữ liệu được tạo ra bởi các ứng dụng của người dùng.
- Chứng chỉ: Lưu trữ chứng chỉ số được cấp bởi tổ chức cấp chứng chỉ cho
người dùng.
- Khóa: Bao gồm một khóa cơng khai (public key), một khóa riêng (private
key) và khóa bảo vệ (secret key).
b) Ứng dụng phía máy trạm bao gồm: Là giao diện được tích hợp trong mỗi chức
năng có u cầu ký số hoặc xác thực của ứng dụng.
c) Thư viên mật mã: Cung cấp các lớp, các phương thức cho phép tương tác với
modul tích hợp trên trình duyệt để thực thi các chức năng theo yêu cầu của chương
trình.
d) Chứng chỉ số cho máy chủ
Sử dụng chứng chỉ SSL, nhằm đảm bảo thông tin trên kênh truyền cho ứng
dụng web. Khi đó mọi dữ liệu trao đổi giữa người dùng và website sẽ được mã hóa
(ở phía người gửi) và giải mã (ở phía người nhận) bởi cơ chế SSL mạnh mẽ nhất
hiện nay. Nếu website không sử dụng chứng chỉ số SSL, mọi dữ liệu nhập vào
website từ người dùng sẽ được truyền đi nguyên bản trên Internet. Khi đó, nguy cơ
dữ liệu bị xâm nhập trong quá trình trao đổi dữ liệu giữa người dùng và website sẽ
rất cao.
e) Các Dịch vụ phía máy chủ
Thực hiện xác thực tài liệu; dịch vụ Upload tài liệu cho phép máy trạm thực
hiện tải tải liệu đã được ký số hoặc mã hóa lên server phục vụ cho q trình phân
phối tài liệu của ứng dụng (mạng văn phòng điện tử liên thông).
14
2.3. Phân tích thiết kế hệ thống
2.3.1. Các chức năng cần thiết cho yêu cầu của hệ thống
STT
1
1.1
1.2
1.3
2
2.1
2.2
2.3
3
3.1
3.2
3.3
Tên chức năng
Chức năng tại máy trạm
Mô tả chi tiết
Để tạo giao diện tích hợp với ứng
Cung cấp giao diện cho người
dụng cho phép người dùng thực hiện
dùng
các thao tác cần thiết
Ghép nối với thư viện mật mã để
thực
Ghép nối với thư viện mật mã
hiện ký số, mã hóa theo yêu cầu của
chương trình
Ghép nối với thiết bị eToKen
Ghép nối với thiết bị eToKen khi có
yêu cầu về khóa và chứng chỉ lưu trữ
trong eToKen
Chức năng tại máy chủ
Tạo giao diện giao tiếp với Tạo giao diện để tải tài liệu trước khi
máy trạm
xử lý
Kiểm tra tính đúng đắn của tài liệu
Kiểm tra, xác thực tài liệu
được gửi cũng như chứng chỉ người
gửi
Thực hiện Upload tài liệu lên Upload tài liệu lên thư mục hoặc
máy chủ
CSDL trên máy chủ
Thư viện mật mã
Các phương thức đọc eToKen Các phương thức đọc eToKen
Các phương thức ký số
Các phương thức ký số
Các phương thức mã hóa
Các phương thức mã hóa
2.3.2. Lựa chọn ngơn ngữ lập trình và công cụ thiết kế
- Visual Studio 2010 và.NET Framework 4
Visual Studio là bộ cơng cụ hồn chỉnh cho phép xây dựng, triển khai các
ứng dụng cho máy để bàn lẫn các ứng dụng web. Visual Studio hỗ trợ nhiều ngơn
ngữ lập trình từ C, C++, C#, C#.net, VB..; với Visual Studio 2010 Ultimate SP1 hỗ
trợ .NET Framework 4 và Siverlight 5 cần thiết để xây dựng ứng dụng trong giải
15
pháp này.
Trên cơ sở mơ hình xác thực và bảo mật đã giới thiệu trong mục 2.2, việc phân tích
thiết kế hệ thống cần thực hiện các nội dung sau:
+ Phân tích thiết kế thư viện mật mã cài đặt phía máy trạm và sử dụng tại
máy chủ.
+ Phân tích thiết kế dịch vụ phía máy chủ.
+ Thiết kế cơng cụ ký số trên web.
2.3.2.1. Thư viện mật mã
Thư viện mật mã trong mơ hình này được xây dựng trên cơ sở các tiêu chuẩn
bắt buộc áp dụng về chữ ký số và dịch vụ chứng thực chữ ký số được quy định tại
Quyết định sô: 59/2008/QĐ-BTTTT ngày 31/12/2008 của Bộ Thông tin và Truyền
thông và các tiêu chuẩn về an tồn thơng tin theo quy định tại Thơng tư số
01/2011/TT-BTTTT ngày 04/01/2011 của Bộ trưởng Bộ Thông tin và Truyền
thông.
Thư viện mật mã bao gồm các hàm, thủ tục cho phép giao tiếp với thiết bị
eToken và các hàm, thủ tục ký số, xác thực văn bản như hình Hình 2.3 dưới đây:
16
Hình 2.3. Lược đồ ký số văn bản
2.3.2.2. Dịch vụ phía máy chủ
Để nâng cao tính an tồn thơng tin, mơ hình xác thực và bảo mật tài liệu thiết
kế theo mơ hình client- server trên mơi trường web, trong đó q trình ký số hoặc
mã hóa được thực thi tại máy trạm (client), máy chủ (server) chỉ làm nhiệm vụ
cung cấp giao diện tại trình duyệt và đẩy dữ liểu lên server.
Thiết kế dịch vụ phía server như sau:
17
Dịch vụ WebService với phương thức Upload cho phép ứng dụng sử dụng để đưa
dữ liệu file lên máy chủ một cách an tồn. Thuật tốn được mơ tả như sau:
- Đầu vào: tệp dữ liệu từ máy trạm được chọn.
- Đầu ra: đường dẫn tệp dữ liệu trên máy chủ.
- Các bước thực hiện:
B1) Đọc dữ liệu từ tệp dữ liệu từ máy trạm được chọn.
B2) Thử Ghi dữ liệu vào biến writer (BinaryWriter) và đẩy lên máy chủ.
B3) Nếu q trình tại B2 thành cơng thì trả về đường dẫn tệp dữ liệu trên máy chủ,
nếu không được thì trả về đường dẫn rỗng.
2.3.3. Cơng cụ ký số trên web
Việc thiết kế công cụ ký số đảm bảo các yêu cầu sau:
- Cho phép người dùng lựa chọn văn bản để ký (văn bản định dạng.pdf)
- Khi thực hiện lệnh ký số cho văn bản ứng dụng tự động giao tiếp với thiết
bị eToken và thư viện mật mã đã cài đặt tại máy trạm để thực hiện ký văn
bản.
- Kết quả trả về tệp văn bản được ký và tự động đẩy lên máy chủ.
- Thông báo cho người dùng kết quả đã thực hiện.
Mô tả chương trình:
Đầu vào:
- Tệp văn bản cần ký.
- Thiết bị eToken.
- Thao tác, lệnh từ người dùng.
Đầu ra:
- Tệp văn bản được ký.
- Đẩy tệp văn bản ký lên máy chủ.
- Thông báo cho người dùng kết quả thực hiện.
Các bước:
B1: Kiểm tra độ tin cậy (ứng dụng phải được tin cậy với trình duyệt bằng cách sử
dụng chứng chỉ để ký cho ứng dụng và cài đặt tại máy trạm. Nếu khơng tin cậy thì
cho thơng báo và kết thúc.
B2: Cho phép người dùng duyệt tệp văn bản, nếu tệp văn bản không đúng định
18
dạng thì yêu cầu duyệt lại tệp văn bản.
B3: - Kiểm tra thiết bị eToken, nếu hợp lệ (đã kết nối và nhập đúng mã thì thực
hiện ký tệp văn bản. Đẩy tệp văn bản đã ký lên máy chủ.
- Thơng báo ký thành cơng
Trong đó tệp “KySo.xap” là tệp biên dịch từ ứng dụng Siverlight để cung cấp giao
diện ký số cho ứng dụng web.
Cài đặt thư viện tại máy trạm
Để ứng dụng Siverlight hoạt động được trên máy trạm cần thực hiện các yêu cầu
sau:
- Cài đặt thư viện mã hóa (cung cấp các hàm đã xây dựng);
Bước 1: Mở tệp setup.exe trong thư mục cài đặt để tiến hành cài đặt bộ thư viện
cho ứng dụng.
Nhấn Next để thực hiện bước tiếp theo.
Bước 2: Chọn thư mục chứa chương trình trong ơ Folder nếu cần thay đổi thư mục
chứa chương trình. Nhấn Next để thực hiện bước tiếp theo.
Bước 3: Nhấn Close để đóng lại và kết thúc cài đặt
- Cài đặt chứng thư số tại máy trạm: Chứng thư này chính là chứng thư đã ký
cho giao diện trên trình duyệt để đảm bảo tính tin cậy giữa trình duyệt và
máy chủ;
- Cài đặt trình điều khiển (Driver) cho thiết bị eToken (thiết bị lưu chứng
thư số).
19
KẾT LUẬN
Để nghiên cứu ứng dụng các thuật toán mã hóa, chữ ký điện tử xây dựng hệ
thống trao đổi thơng tin an tồn trên mơi trường mạng, bài tìm hiểu tập trung
nghiên cứu các vấn đề sau:
Nghiên cứu, tìm hiểu một số khái niệm về an tồn thơng tin, đánh giá thực
trạng và nhu cầu về an tồn thơng tin.
Để xây dựng giải pháp đáp ứng được yêu cầu trong thực tế, bài tìm hiểu tập
trung tổng hợp, phân tích một số cơ sở mật mã cần thiết để áp dụng trong việc bảo
mật thông tin trên môi trường mạng theo tiêu chuẩn nhà nước đã quy định (đối với
mã hoá phi đối xứng và chữ ký số, áp dụng lược đồ RSA-OAEP theo chuẩn
PKCS#1 phiên bản 2.1; đối với mã hóa đối xứng áp dụng thuật tốn mã khối AES).
Trên cơ sở các nghiên cứu về mặt lý thuyết, bài tìm hiểu tập trung nghiên
cứu, xây dựng hệ thống xác thực tài liệu trong trao đổi văn bản trên mơi trường
mạng. Với thời gian và trình độ cịn hạn chế, trong bài tìm hiểu này khơng tránh
khỏi sơ suất. Nhóm em rất mong nhận được sự đóng góp ý kiến của các Thầy Cơ để
bài tìm hiểu được hoàn thiện hơn.
20