Tải bản đầy đủ (.pdf) (68 trang)

Đồ án tốt nghiệp: Giải pháp xác thực số potx

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 (2.1 MB, 68 trang )









Đồ án tốt nghiệp

Giải pháp xác thực số










Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
1
MỤC LỤC
LỜI CẢM ƠN 4
MỞ ĐẦU 5
CHƢƠNG I: CÁC KHÁI NIỆM CƠ BẢN 6
1.1 Các khái niệm toán học 6
1.1.1 Số nguyên tố và nguyên tố cùng nhau 6
1.1.2 Đồng dư thức 6


1.1.3 Không gian Z
n
và Z
n
*
7
1.1.4 Phần tử nghịch đảo 7
1.1.5 Hàm băm 8
1.1.5.1 Giới thiệu 8
1.1.5.2 Cấu trúc của hàm băm 9
1.1.5.3 Một số loại hàm băm 10
1.2 Vấn đề mã hóa 15
1.2.1 Khái niệm mã hoá 15
1.2.2 Hệ mã hoá khóa công khai 17
1.3 Vấn đề chữ ký điện tử 18
1.3.1 Giới thiệu 18
1.3.2 Định nghĩa 18
1.3.3 Sơ đồ chữ ký RSA 19
1.4 Xác thực 20
1.4.1 Khái niệm xác thực 20
1.4.2 Các dạng xác thực 20
1.4.2.1 Xác thực thực thể 20
1.4.2.2 Xác thực trách nhiệm văn bản gốc 21
1.4.3 Các phương pháp xác thực 21
1.4.4 Các giao thức xác thực 22
1.4.4.1 Giao thức thử thách và trả lời 22
1.4.4.2 Giao thức mật khẩu được chuyển đổi 22
1.4.4.3 Giao thức mật khẩu sử dụng một lần 22
1.4.4.4 Giao thức chứng chỉ số 23
1.5 Chứng thực điện tử 23

1.5.1 Chứng thực điện tử là gì? 23
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
2
1.5.2 Làm thế nào để có và sử dụng chứng thực điện tử? 23
1.6 Chứng thực chéo 24
CHƢƠNG II: CHỨNG CHỈ SỐ 25
2.1 Vài nét về chứng chỉ số 25
2.1.1 Chứng chỉ số là gì? 25
2.1.2 Chứng chỉ gốc là gì ? 26
2.1.3 Chứng chỉ số làm việc như thế nào ? 26
2.1.4 Tại sao cần một chứng chỉ số ? 26
2.1.5 Chứng chỉ số được áp dụng vào những công việc gì ? 27
2.1.6 Kiểm tra và tạo chữ ký điện tử như thế nào ? 28
2.2 Cơ sở hạ tầng khóa công khai Public Key Infrastructure – PKI 28
2.2.1 PKI là gì ? 28
2.2.2 PKI hoạt động như thế nào ? 30
2.2.3 Thành phần của PKI 31
2.2.4 Phân phối khóa công khai 32
2.3 Thời hạn tồn tại và việc thu hồi chứng chỉ 34
2.4 Nhà cấp chứng chỉ số (Certificate Authority - CA) 35
2.4.1 CA là gì ? 35
2.4.2 Mô hình CA 35
2.4.3 Chữ ký của CA trên chứng chỉ số 37
2.5 Khuôn dạng chứng chỉ X.509 37
2.5.1 Khuôn dạng chứng chỉ số X.509 v1, v2 38
2.5.2 Đặt tên trong X.509 v1, v2 39
2.5.3 Khuôn dạng chứng chỉ số X.509 v3 40
2.5.4 Đặt tên trong khuôn dạng chứng chỉ X.509 v3 42
2.6 Đăng ký đối tƣợng 43

2.7 Quy trình xin cấp một chứng chỉ số 44
CHƢƠNG III: XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ 46
3.1 Chức năng của chƣơng trình 46
3.2 Mô tả hoạt động và một số giao diện của chƣơng trình 46
3.2.1 Đăng ký cấp chứng chỉ 46
3.2.2 Lấy thông tin chứng chỉ 47
3.2.3 Tìm thông tin về chứng chỉ của một người khác 49
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
3
3.2.4 Mã hóa và ký thông điệp 49
3.2.5 Giải mã thông điệp 51
3.2.6 Kiểm tra tính chính xác của chữ ký 52
3.2.7 Thu hồi chứng chỉ 53
3.3 Công cụ hỗ trợ và ngôn ngữ lập trình 54
3.3.1 Ngôn ngữ lập trình php5 54
3.3.2 OpenSSL trong PHP 5 58
3.3.2.1 Giới thiệu 58
3.3.2.2 Khóa và chứng chỉ 58
3.3.2.3 Một số hàm trong OpenSSL 59
3.4 Một số đoạn mã quan trọng của chƣơng trình 60
3.4.1 Tạo chứng chỉ 60
3.4.2 Mã hóa và ký 62
3.4.3 Giải mã 63
3.4.4 Kiểm tra chữ ký 64
3.5 Những hạn chế và hƣớng phát triển 65
3.5.1 Hạn chế của chương trình 65
3.5.2 Hướng phát triển chương trình 65
KẾT LUẬN 66
TÀI LIỆU THAM KHẢO 67











Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
4
LỜI CẢM ƠN
Em xin chân thành cám ơn Ths.Hồ Thị Hương Thơm – người luôn chỉ
bảo, hướng dẫn, cung cấp những tài liệu quý báu trong quá trình học và hoàn
thành đồ án này.
Em xin cám ơn các thầy cô giáo trong khoa công nghệ thông tin – trường
DHDL Hải Phòng và gia đình đã tạo điều kiện giúp đỡ về vật chất cũng như tinh
thần để em có thể học tập tốt và hoàn thành đồ án này.

Sinh viên

Phùng Thế Phƣơng

















Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
5
MỞ ĐẦU
Sự ra đời của internet, sự phát triển nhanh chóng của công nghệ thông tin
đã tạo ra một thay đổi lớn trong các lĩnh vực đời sống của con người. Internet ra
đời, nhu cầu truyền thông tin trên mạng là một nhu cầu tất yếu. Và đặc biệt với
sự ra đời của thương mại điện tử thì nhu cầu này càng rõ rệt và cấp thiết hơn.
Vấn đề đặt ra là phải tạo một phương pháp truyền thông tin an toàn, tránh sự phá
hoại, ăn cắp thông tin hay làm sai lệch thông tin. Cùng với nhu cầu này một loạt
các giải pháp được ra đời. Mã hóa, chữ ký điện tử đảm bảo được tính xác thực,
và an toàn của thông tin nhưng vẫn chưa đủ để xác thực khi người sử dụng các
cặp khóa công khai và bí mật chối bỏ các thông tin về khóa mình đã sử dụng. Từ
lý do đó mà người ta thấy cần phải có một bên thứ ba đứng ra xác nhận các
thông tin về khóa dùng để mã hóa gắn liền với chủ thể sử dụng. Chứng chỉ số ra
đời. Chứng chỉ số là một tệp tin điện tử do một cơ quan, tổ chức cấp trong đó
lưu trữ các thông tin về chủ thể sử dụng và các thông tin về khóa.
Đồ án đề cập đến chứng chỉ số và sử dụng chứng chỉ số để xác thực.
Đồ án gồm 3 chương.
 Chương I: Các khái niệm cơ bản

Trong chương này sẽ đề cập đến một số khái niệm toán học, vấn đề mã
hóa, chữ ký điện tử, xác thực, chứng thực điện tử.
 Chương II: Chứng chỉ số
Trong chương này sẽ trình bày chi tiết về chứng chỉ số.
 Chương III: Xây dựng hệ thống quản lý chứng chỉ số
Trong chương này sẽ giới thiệu việc xây dựng một chương trình hệ
thống quản lý chứng chỉ số viết bằng ngôn ngữ PHP 5.





Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
6
CHƢƠNG I: CÁC KHÁI NIỆM CƠ BẢN
1.1 Các khái niệm toán học
1.1.1 Số nguyên tố và nguyên tố cùng nhau
Số nguyên tố là số chỉ chia hết cho 1 và chính nó.
Ví dụ: 2, 3, 5, 7, 17, … là những số nguyên tố.
Hệ mật mã thường sử dụng các số nguyên tố ít nhất là lớn hơn 10150.
Hai số m và n được gọi là nguyên tố cùng nhau nếu ước số chung lớn
nhất của chúng bằng 1. Ký hiệu: gcd(m,n) = 1.
Ví dụ: 9 và 14 là nguyên tố cùng nhau.
1.1.2 Đồng dư thức
Cho a và b là các số nguyên tố, n là số nguyên dương thì a được gọi là
đồng dư với b theo modulo n nếu n|a-b (tức a - b chia hết cho n, hay khi chia a
và b cho n được cùng một số dư như nhau). Số nguyên n được gọi là modulo của
đồng dư.
Kí hiệu: a ≡ b (mod n)

Ví dụ:
67 ≡ 11 (mod 7), bởi vì 67 (mod 7) = 4 và 11 (mod 7) = 4.
Tính chất của đồng dƣ:
Cho a, a
1
, b, b
1
, c  Z. Ta có các tính chất:
 a≡b mod n nếu và chỉ nếu a và b có cùng số dư khi chia cho n.
 Tính phản xạ: a ≡ a mod n.
 Tính đối xứng: Nếu a ≡ b mod n thì b ≡ a mod n.
 Tính giao hoán: Nếu a ≡ b mod n và b ≡ c mod n thì a ≡ c mod n.
 Nếu a ≡ a
1
mod n, b ≡ b
1
mod n thì a+b ≡ a
1
+ b
1
mod n và
ab ≡a
1
b
1
mod n.


Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng

7
1.1.3 Không gian Z
n
và Z
n
*
Không gian Z
n
(các số nguyên theo modulo n) là tập hợp các số nguyên
{0,1,2,…,n-1}. Các phép toán trong Z
n
như cộng, trừ, nhân, chia đều được thực
hiện theo module n.
Ví dụ:
Z
11
= {0,1,2,3,…,10}
Trong Z
11
: 6 + 7 = 2, bởi vì 6 + 7 = 13≡ 2 (mod 11).
Không gian Z
n
*
là tập hợp các số nguyên pZ
n
, nguyên tố cùng n.
Tức là: Z
n
*
= { p  Z

n
| gcd (n,p) =1}
Φ(n) là số phần tử của Z
n
*
Nếu n là một số nguyên tố thì: Z
n
*
= { p  Z
n
|1≤ p ≤ n - 1}
Ví dụ:
Z
2
= {0,1} thì Z
2
*
= {1} vì gcd(1,2) = 1.
1.1.4 Phần tử nghịch đảo
Định nghĩa:
Cho a  Z
n
. Nghịch đảo của a theo modulo n là số nguyên x  Z
n
sao cho
ax ≡ 1 (mod n). Nếu x tồn tại thì đó là giá trị duy nhất, và a được gọi là khả
nghịch, nghịch đảo của a ký hiệu là a-1.
Tính chất:
 Cho a,b Z
n

. Phép chia của a cho b theo modulo n là tích của a và
b−1 theo modulo n, và chỉ được xác định khi b có nghịch đảo theo
modulo n.
 Cho a Z
n
, a nghịch đảo khi và chỉ khi gcd(a, n) = 1.
 Giả sử d=gcd (a, n). Phương trình đồng dư ax ≡ b mod n có nghiệm
x nếu và chỉ nếu d chia hết cho b, trong trường hợp các nghiệm d
nằm trong khoảng 0 đến n - 1 thì các nghiệm đồng dư theo modulo
n/d.
Ví dụ: 4-1 = 7 (mod 9) vì 4.7 ≡1 (mod 9)
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
8
1.1.5 Hàm băm
1.1.5.1 Giới thiệu
Một hàm băm (hash function) hay một giải thuật băm là một phương
pháp sinh một địa chỉ trong phần bộ nhớ dành cho các khóa được sắp thứ tự. Các
hàm này cung cấp một cách tạo một "vân tay" số nhỏ từ bất kỳ loại dữ liệu nào.
Hàm này cắt và trộn (thay thế và chuyển vị) dữ liệu để tạo một giá trị thường
được gọi là giá trị băm. Giá trị băm thường được biểu diễn trong hệ cơ số 16.
Hàm băm tốt là hàm cho ra ít đụng độ băm (hash collision) trong các miền dữ
liệu trông đợi. Trong các bảng băm và việc xử lý dữ liệu, các đụng độ này dẫn
đến chi phí cao hơn cho việc tìm kiếm các bản ghi trong cơ sở dữ liệu.

Hình 1.1
Hai điều kiện sau đây được người ta cho là hai điều kiện chủ yếu cho một
hàm băm:
1. Hàm băm phải là hàm một phía nghĩa là cho x tính z=h(x) là việc dễ
nhưng ngược lại, biết z tính x là việc cực khó (có thể quy ước dễ

hay khó là có thể tính được trong thời gian đa thức hay không).
2. Hàm băm phải là hàm không va chạm mạnh theo nghĩa sau đây:
không có thuật toán tính được trong thời gian đa thức giả bài toán
“tìm x
1
và x
2
thuộc  sao cho x
1
≠ x
2
và h(x
1
) = h(x
2
)”; nói cách
khác tìm hai văn bản khác nhau có cùng một đại diện là cực kỳ khó.

Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
9
Danh sách các hàm băm:

Hình 1.2
1.1.5.2 Cấu trúc của hàm băm
Hầu hết các hàm băm mật mã đầu có cấu trúc giải thuật như sau:
 Cho trước một thông điệp M có độ dài bất kỳ. Tùy theo thuật toán
được sử dụng chúng ta có thể cần bổ sung một số bit vào thông điệp
này để nhận được thông điệp có dộ dài là bội số của một hằng số
cho trước. Chia nhỏ thông điệp thành từng khối có kích thước bằng

nhau: M
1
, M
2,
,M
s.

 Gọi H là trạng thái có kích thước n bit, f là “hàm nén: thực hiện
thao tác trộn khối dữ liệu với trạng thái hiện hành.
- Khởi gán H
0
bằng một vector khởi tạo nào đó.
- H
1
= f(H
i-1
,M
i
) với I = 1,2,3,….,s.
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
10
 H
s
chính là thông điệp rút gọn của thông điệp M ban đầu.
1.1.5.3 Một số loại hàm băm
Hàm băm MD5:
Hàm băm MD4 (Message Digest 4) được giáo sư Rivest đề nghị vào năm
1990. Vào năm sau, phiên bản cải tiến.
Thông điệp ban đầu x sẽ được mở rộng thành dãy bit X có độ dài là bội số

của 512. Một bit 1 được thêm vào sau dãy bit x, tiếp đến là dãy gồm d bit 0 và
cuối cùng là dãy 64 bit l biểu diễn độ dài của thông điệp x. Dãy gồm d bit 0
được thêm vào sao cho dãy X có độ dài là bội số của 512. Quy định này được
thể hiện bằng thuật toán sau:
Thuật toán xây dựng dãy bit X từ dãy bit x

Hình 1.3
Đơn vị xử lý trog MD5 là các từ 32-bit nên dãy X sẽ được biểu diễn thành
dãy các tư X[i] 32 bit: X=X[0]X[1]………X[N-1] với N là bội số của 16.
Thuật toán MD5:

Hình 1.4
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
11
Đầu tiên bốn biến ABCD được khởi tạo. Những biến này được gọi là
chaining variables.
Bốn chu kỳ biến đổi trong MD5 hoàn toàn khác nhau và lần lượt sử dụng
các hàm F,G,H và I. Mỗi hàm có các tham số X,Y,Y là cá từ 32 bit và kết quả là
một từ 32 bit.
F(X,Y,Z)= (X

Y)

((

X)

Z)
G(X,Y,Z)= (X


Z)

(Y(

Z))
H(X,Y,Z)= X

Y

Z
I(X,Y,Z)= Y

(X

(

Z))
Với quy ước:
X

Y: Phép toán AND trên bit giữa X và Y.
X

Y: Phép toán OR trên bit giữa X và Y.
X

Y: Phép toán XOR trên bit giữa X và Y.

X: Phép toán NOT trên bit của X.

X+Y: Phép cộng (modulo 2
32
).
X<<<s: Các bit của X được dịch chuyển xoay vòng sang trái s vị trí
(0 ≤ s <32).
Định nghĩa các hàm:

Hình 1.5
Với M
j
là M[j] và hằng số t
i
xác định theo công thức:
t
i
=

2
32
|sin(i)|

, I tính bằng radian.
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
12
Chu kỳ biến đổi trong MD5

Hình 1.6

Hình 1.7

Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
13
Hàm băm mật mã SHA:
Trong các hàm băm SHA, chúng ta cần sử dụng thao tác quay phải một
từ, ký hiệu là ROTR, và thao tác dịch phải một từ, ký hiệu là SHR.
Khung thuật toán chung cho hàm băm SHA:

Hình 1.8
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
14


Hình 1.9
Mỗi thuật toán có bảng hằng số phân bố thông điệp tương ứng. Kích
thước bảng hằng số thông điệp (ScheduleRound) của SHA-224 và SHA-256 là
64, kích thước bảng hằng số thông điệp của SHA-384 và SHA-512 là 80.
Trong phương pháp SHA-224 và SHA-256 sử dụng các hàm sau:

Trong phương pháp SHA-384 và SHA-512 sử dụng các hàm sau:
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
15


Hình 1.10: Các tính chất của các thuật toán băm an toàn
1.2 Vấn đề mã hóa
1.2.1 Khái niệm mã hoá
Mã hóa là phương pháp để biến thông tin (phim ảnh, văn bản, hình ảnh )

từ dạng bình thường sang dạng thông tin “khó” thể hiểu được, nếukhông có
phương tiện giải mã. Giải mã là phương pháp để chuyển thông tin đã được mã
hóa về dạng thông tin ban đầu (quá trình ngược của mã hóa).
Ví dụ:
Thông điệp cần mã hoá là chuỗi nhị phân M=1011, hàm mã hoá vàgiải mã
là hàm XOR, với K= 1010.
Mã hóa:

Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
16
Giải mã:

Việc giao dịch thông tin trên mạng ngày càng trở nên phổ biến, vấn đề an
toàn thông tin được đặt ra, làm thế nào để thông tin không bị đánh cắp. Nếu kẻ
cắp lấy được dữ liệu, nhưng “khó” lấy được thông tin thực sự. Điều này có thể
thực hiện bằng cách mã hoá, nghĩa là trước khi gửi thông điệp, thông điệp được
chuyển từ bản rõ sang bản mã, rồi mới gửi đi. Kẻ cắp có thể lấy được bản mã,
nhưng không có được bản rõ (nghĩa là không lấy được nội dung của thông điệp).
Mã hoá tuân theo qui tắc nhất định gọi là Hệ mã hoá. Hiện nay có hai loại
mã hoá:
• Mã hoá đối xứng.
• Mã hoá khoá công khai (phi đối xứng).
Hệ mã hoá được định nghĩa là bộ năm (P,C,K,E,D) trong đó:
P là một tập hữu hạn các bản rõ có thể.
C là một tập hữu hạn các bản mã có thể.
K là một tập hữu hạn các khoá có thể.
E là tập các hàm lập mã.
D là tập các hàm giải mã. Với mỗi k  K, có một hàm lập mã ek  E.
ek : P→C, và một hàm giải mã dk: C→P sao cho dk(ek(x))=x  x  P.

Hệ mã hoá khóa công khai sử dụng một cặp khóa. Một trong hai khóa
được gọi là khóa riêng (Private Key) và phải được giữ bí mật bởi người sở hữu.
Khóa còn lại được gọi là khóa công khai (Public Key), nó được phổ biến cho tất
cả những ai muốn giao dịch với người giữ khóa riêng tương ứng. Cặp khóa này
có liên quan về mặt toán học, và không thể sử dụng các thông tin của khóa công
khai để tìm ra khóa riêng. Theo lý thuyết bất kỳ ai cũng có thể gửi cho người giữ
khóa riêng một thông điệp được mã hóa bằng khóa công khai, và như vậy chỉ có
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
17
người nào sở hữu khóa riêng mới có thể giải mã được. Đồng thời, người sở hữu
khóa riêng cũng chứng minh được tính toàn vẹn của dữ liệu mà anh ta gửi cho
người khác bằng chữ ký điện tử thông qua việc sử dụng khóa riêng để mã hóa.
Bất kỳ ai nhận được dữ liệu đó đều có thể sử dụng khóa công khai tương ứng để
kiểm tra xem nó do ai gửi và có còn toàn vẹn hay không.
1.2.2 Hệ mã hoá khóa công khai
RSA là hệ mã hoá khoá công khai, và độ an toàn của hệ dựa vào bài toán
khó: ”phân tích số nguyên thành thừa số nguyên tố”, sau đây là chi tiết về hệ
mã hoá RSA.
Sơ đồ:
Chọn p, q là số nguyên tố rất lớn.
Tính: n = p * q, Φ(n) = (p-1)*(q-1).
Chọn b là số nguyên tố với Φ(n), để tồn tại phần tử nghịch đảo b-1,
nghĩa là gcd(b,Φ(n)) = 1.
Chọn a là nghịch đảo của b: a*b = 1 mod Φ(n) (nghịch đảo theo
modulo Φ(n)).
+ b là khoá lập mã, công khai.
+ a là khoá giải mã, giữ bí mật.
Lập mã:
Chọn P = C = Z

n
với n = p * q, Z
n
= {0, 1, 2, , n-1}
x  Z
n
→ y = x
b
mod n  Z
n

Giải mã:
y  Z
n
→ x = y
a
mod n  Z
n

Ví dụ: Giả sử ông B cần gửi cho ông A một thông điệp x=8 trên kênh
truyền công cộng. A và B muốn giữ bí mật tài liệu, hai bên thống nhất sử dụng
hệ mã khoá RSA.Sau đây là các bước thực hiện để A và B trao đổi thông điệp.
• Chuẩn bị:
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
18
Lấy p = 3; q=5 (Đây là ví dụ minh họa, nên chọn p,q là hai số nguyên tố
nhỏ để tiện cho việc tính toán).
 n=p*q=3*5=15; Φ(n) = (p-1)*(q-1)=2*4= 8.
Chọn b=7 (thoả mãn gcd(7,8)=1),

 a= b-1mod Φ(n)=7 (thoả mãn 7*7=1 mod 8).
Khóa công khai b=7; n=15.
Khóa bí mật a = 7.
• Quá trình mã hóa:
Cho x= 8; Mã hóa: y = x
b
mod n = 87 mod 15 = 2097152 mod 15 = 2.
• Quá trình giải mã:
Nhận y = 2. Giải mã: x = y
a
mod n = 27 mod 15 = 128 mod 15=8.
1.3 Vấn đề chữ ký điện tử
1.3.1 Giới thiệu
Giống như chữ ký của bạn trên các tài liệu thì chữ ký điện tử cũng có một
ý nghĩa tương tự, đó là dùng chữ ký điện tử để ký lên một e-mail hoặc dữ liệu
điện tử. Chữ ký điện tử được tạo ra và được chứng thực do việc dùng chứng chỉ
số. Ngày nay, trên thế giới đã có nhiều quốc gia đã ban hành những điều luật
công nhận chữ ký điện tử có giá trị pháp lý như những chữ ký trên các văn bản,
giấy tờ trước đây vẫn dùng. Để ký, để tạo nên một giao dịch an toàn thì chứng
chỉ số của bạn là duy nhất.
Chữ ký điện tử mang lại cho bạn nhiều chức năng quan trọng như:
• Tính xác thực.
• An toàn và toàn vẹn dữ liệu.
• Không chối cãi nguồn gốc.
1.3.2 Định nghĩa
Một sơ đồ ký số thông thường gồm 2 thành phần tương ứng với 2 giai
đoạn:
- Thuật toán ký – tương ứng với giai đoạn ký.
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng

19
- Thuật toán xác minh – tương ứng với giai đoạn kiểm tra chữ ký.
Định nghĩa một cách hình thức sơ đồ ký số gồm 5 thành phần:
( P, A, K, S, V )
P là tập các thông điệp.
A là tập hữu hạn chữ ký.
K là tập các khóa.
S là tập hàm ký.
V là tập hợp các hàm kiểm thử chữ ký.
Với mỗi k K thì tồn tại một thuật toán ký sig
k

S và thuật toán xác nhận
là Ver
k

V. Thông điệp x

P => y

A sao cho y=sig
k
(x) và từ x

A và y

A thì ta
có Ver
k
(x,y)=True


y=sig
k
(x)
Sử dụng khóa bí mật kết hợp với hàm giải mã để ký.
Kiểm tra chữ ký bằng cách sử dụng khóa công khai và hàm mã.
1.3.3 Sơ đồ chữ ký RSA
Sơ đồ chữ ký RSA sử dụng thao tác sinh khóa của hệ mã RSA.
1. Tạo khóa:
Chọn hai số nguyên tố lớn p và q khác nhau.
N= p*q.
Φ(N)=(p-1)*(q-1).
Chọn e sao cho (e, Φ(N))=1 và (1<e< Φ(N)).
D=e
-1
mod Φ(N).
Công khai (N,e) và giữ bí mật (D,p,q).
2. Ký:
Thông điệp x

Z
q
ta có: y=sig(x)=x
d
mod n.
Gửi (x,y).
3. Kiểm tra chữ ký:
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
20

Ver(x,y)=True

x=y
e
mod n.
1.4 Xác thực
1.4.1 Khái niệm xác thực
Xác thực là việc xác minh, kiểm tra một thông tin hay một thực thể để
công nhận hoặc bác bỏ tính hợp lệ của thông tin hay thực thể đó. Xác thực luôn
là yêu cầu quan trọng trong các giao tiếp cần có sự tin cậy. Để đơn giản ta xét
mô hình giao tiếp gồm 2 thực thể trao đổi thông tin A và B, họ cùng mục đích
trao đổi một thông tin X nào đó. Khi đó, việc xác thực gồm:
- A cần xác minh B đúng là B và ngược lại
- Cả A và B cần xác minh tính an toàn của thông tin X mà họ trao đổi.
Như vậy, xác thực bao gồm 2 việc chính:
- Xác thực tính hợp lệ của các thực thể tham gia giao tiếp
- Xác thực tính bảo mật của thông tin được trao đổi
Theo các phương pháp truyền thống, chúng ta có thể thấy việc xác thực
thực thể thường được thực thi bằng các giấy tờ như chứng minh thư, giấy phép
lái xe, hoặc các giấy tờ cá nhân khác. Còn việc xác thực tính an toàn của thông
tin trao đổi thường dựa trên chữ ký, con dấu.
1.4.2 Các dạng xác thực
Có hai dạng xác thực là sự xác thực thực thể và sự xác thực trách nhiệm
văn bản gốc.
1.4.2.1 Xác thực thực thể
Trong sự xác thực thực thể, người dùng yêu cầu được chấp nhận là người
chính thức hợp pháp của hệ thống. Dịch vụ xác thực thực thể đem đến sự đảm
bảo sự công nhận hoặc bác bỏ nét nhận dạng của người truy nhập.
Sự xác thực thực thể có thể một phía hoặc nhiều phía. Trong sự xác thực
một phía, chỉ một phía thực hiện sự xác thực tự bản thân mình khi liên lạc,

nhưng trái lại, trong sự xác thực thực thể đồng thời, cả hai bên phải xác thực lẫn
nhau. Khi một Web browser kết nối với một lớp nền bảo vệ (a secure socket
layer – SSL) có thể tới được trang chủ, ví dụ, nó luôn luôn thực hiện xác thực
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
21
một phía máy chủ; còn máy chủ có thể thực hiện có chọn lọc sự xác thực đồng
thời của browser. Sự xác thực đồng thời đóng vai trò quan trọng trong việc ngăn
cản sự tấn công ác ý, mà ở đó, một server lừa đảo lừa một Client (khách hàng)
vào trong một thông tin có cảm giác lộ ra ngoài, hoặc là một khách hàng lừa đảo
truy nhập trái phép vào nguồn thông tin của máy chủ.
1.4.2.2 Xác thực trách nhiệm văn bản gốc
Sự xác thực văn bản gốc cung cấp bằng chứng để một đoạn dữ liệu, cũng
như một thư điện tử, trong thực tế được tạo bởi người sử dụng chính thức. Việc
xác thực này nhằm mục đích chứng tỏ sự không chối cãi được trách nhiệm của
người đã tạo ra tài liệu điện tử đó. Và để chứng minh rằng tài liệu là của người
đó chứ không phải của ai khác. Việc xác thực này cũng đảm bảo phát hiện
những sửa đổi khi tài liệu được truyền trên các kênh truyền thông, đảm bảo tính
đúng đắn,toàn vẹn của tài liệu.
1.4.3 Các phương pháp xác thực
Có nhiều phương pháp xác thực điện tử đã được phát triển. Với mỗi yêu
cầu xác thực lại có những phương pháp khác nhau. Xác thực thực thể có thể sử
dụng các phương pháp nhận dạng sinh học như dấu vân tay, mẫu võng mạc, mẫu
giọng nói, chữ ký tay. Xác thực thông tin có thể sử dụng mật khẩu, đây là
phương pháp hiện đang được sử dụng rộng rãi nhất, chứng chỉ số và chữ ký điện
tử, thẻ thông minh, những phương pháp hiện đang được quan tâm nhất.
- Bằng mật khẩu.
- Bằng chữ ký, Sơ đồ định danh (Công cụ: Chứng chỉ số, Thẻ thông
minh,…).
- Bằng nhận dạng sinh học.

- Xác thực khởi động (Pre boot)
Trên thực tế, đôi khi phải kết hợp nhiều phương pháp xác thực để đảm
bảo tính an toàn đến một mức độ nào đó, bởi mỗi phương pháp xác thực đều có
những ưu và nhược điểm riêng. Xác thực bằng mật khẩu có nhược điểm lớn nhất
là người dùng thường chọn mật khẩu dễ nhớ, do vậy dễ đoán, nên dễ bị tấn
công. Kẻ tấn công có thể có nhiều phương pháp để đạt được mật khẩu như thâm
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
22
nhập vào hệ thống máy tính và đọc file password, dự đoán password, vét cạn các
từ trong từ điển để tìm password, hoặc lừa người dùng để lộ password. Phương
pháp nhận dạng sinh học thì đòi hỏi phải dựa trên hạ tầng thông tin tốt. Hiện nay
chứng chỉ số đang được xem là giải pháp xác thực điện tử hiện đại nhất và triệt
để nhất mà khắc phục các nhược điểm của các phương pháp khác. Chứng chỉ số
phải được dựa trên một hạ tầng là hạ tầng mật mã khóa công khai (PKI), cộng
với các thiết bị lưu trữ có tính năng xử lý như smart card, e-token,…
1.4.4 Các giao thức xác thực
1.4.4.1 Giao thức thử thách và trả lời
Giao thức thử thách và trả lời cho phép người truy nhập tự xác thực mình
với hệ thống bằng cách chứng minh hiểu biết của mình về giá trị mật mã bí mật
mà không yêu cầu người truy nhập tiết lộ bí mật. Hệ thống xác thực đưa ra cho
người truy nhập một số được tạo ra một cách ngẫu nhiên được gọi là thử thách.
Người truy nhập nhập số thử thách và giá trị mật để hàm mật mã tính ra câu trả
lời. Hệ thống xác thực nét nhận dạng của người truy nhập nếu câu trả lời là giá
trị mong đợi. Bởi vì thử thách là một số ngẫu nhiên, giao thức thử thách – trả lời
cung cấp một lá chắn có hiệu quả chống lại sự tấn công lặp lại.
1.4.4.2 Giao thức mật khẩu được chuyển đổi
Trong giao thức này, người truy nhập chế biến mật khẩu của mình qua
hàm băm rồi gửi kết quả tới hệ thống xác thực. Hệ thống so sánh giá trị băm với
giá trị băm chính xác của mình và xác thực nét nhận dạng của người sử dụng

nếu hai giá trị như nhau. Nếu hệ thống lưu giữ mật khẩu thay vì giá trị băm của
chúng, hệ thống sẽ tính giá trị băm của mật khẩu trước khi đưa ra so sánh. Giao
thức mật khẩu được chuyển đổi thể hiện mật khẩu dưới dạng hiện, nên nó dễ bị
tổn thương trước sự tấn công lặp lại.
1.4.4.3 Giao thức mật khẩu sử dụng một lần
Giao thức mật khẩu sử dụng một lần là một dạng quan trọng của giao thức
mật khẩu được chuyển đổi để che chắn chống lại sự tấn công lặp lại được thực
hiện bởi kẻ nghe trộm. Giao thức này yêu cầu người truy nhập và hệ thống xác
thực chia một số bí mật nhỏ n. Người truy nhập băm mật khẩu của mình n lần để
tạo ra mật khẩu sử dụng một lần và xác thực người truy nhập nếu hai kết quả là
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
23
như nhau. Trên cơ sở của sự xác thực thành công, cả hai bên giảm lượng n. Một
kẻ trộm không thể thực hiện việc tấn công lặp lại bởi vì mật khẩu sử dụng một
lần tiếp theo là khác và nó không thể xác định từ giá trị trước đó. Trong giao
thức này, cần phải thay đổi mật khẩu của người dùng và lập lại n khi n tiến tới 0.
1.4.4.4 Giao thức chứng chỉ số
Giao thức chứng chỉ số là một dạng của giao thức thử thách – trả lời mà ở
đó giá trị mật mã bí mật là một khóa riêng và hệ thống xác thực dùng khóa công
khai tương ứng với khóa riêng để xác thực câu trả lời. Chúng ta sẽ nghiên cứu
kỹ vấn đề này ở chương sau.
1.5 Chứng thực điện tử
1.5.1 Chứng thực điện tử là gì?
Chứng thực điện tử là một loại chứng nhận điện tử giống như hộ chiếu,
thẻ hội viên câu lạc bộ…Để chứng tỏ sự hiện diện của mình trên mạng và tạo
được sự tin cậy đối với cá nhân hoặc tổ chức khác trong giao dịch điện tử thì bạn
cần được “tổ chức cấp chứng thực” cấp một chứng thực điện tử. Qua đó, bạn có
thể xuất trình chứng thực điện tử để các tổ chức, cá nhân khác nhận diện và cho
phép bạn tiến hành các giao dịch trực tuyến.

Chứng thực điện tử được sử dụng trong các ứng dụng giao dịch trên các
trang web thương mại điện tử và các ứng dụng của mô hình “chính phủ điện tử”.
Các ứng dụng phổ biến nhất là các dịch vụ hành chính công điện tử: Hộ khẩu,
chứng minh thư điện tử, hải quan điện tử, đăng ký kinh doanh trực tuyến, công
chứng điện tử…Dịch vụ thanh toán điện tử là một hình thức của thương mại
điện tử mà yêu cầu sử dụng chứng thực điện tử là hết sức rõ nét. Chứng thực
điện tử còn được sử dụng trong các ứng dụng thư tín điện tử, chứng thực này
cho phép người sử dụng chữ ký điện tử mã hoá toàn bộ thông tin được gửi đi và
người nhận tin sẽ xác định được nguồn gốc của thư điện tử, biết rằng nội dung
của thư đó có bị thay đổi hay không.
Ở Việt Nam hiện nay, một số chứng thực điện tử đã được triển khai như
chữ ký điện tử, chứng từ điện tử trong hệ thống thanh toán liên ngân hàng, chữ
ký điện tử trong khai báo hải quan điện tử.
1.5.2 Làm thế nào để có và sử dụng chứng thực điện tử?
Giải pháp xác thực số
Đồ án tốt nghiệp – Khoa công nghệ thông tin trường DHDL Hải Phòng
24
Việc cung cấp các chứng thực điện tử cho các tổ chức, doanh nghiệp,
người dùng được thực hiện bởi các hệ thống phân phối. Người dùng có thể yêu
cầu về chứng thực điện tử bằng cách thực hiện yêu cầu trực tuyến hoặc tự thiết
lập các file mô tả đầy đủ các yêu cầu chứng thực, sau đó gửi cho nhà cung cấp
dịch vụ. Từ cơ sở đó, nhà cung cấp dịch vụ sẽ thực hiện các thủ tục chấp nhận.
Chứng thực sau khi được chấp nhận và được tổ chức cấp chứng chỉ (CA -
Certification Authority) tạo ra là một tập tin có cấu trúc đặc biệt, có thể được
chuyển tới cho người dùng trực tuyến từ địa chỉ của nhà cung cấp dịch vụ hoặc
được gửi tới cho người dùng thông qua một phương thức đảm bảo (chỉ có người
dùng đã đăng ký nhận được chứng thực). Chứng thực điện tử có tác dụng và thời
gian tồn tại phụ thuộc vào nhà cung cấp. Sau khi nhận được chứng thực điện tử,
người sử dụng phải cài đặt vào ứng dụng để sau đó có thể sử dụng chúng trong
giao dịch. Chứng thực điện tử với khoá mã riêng được cài đặt tại ứng dụng trung

tâm, khoá mã công cộng được chuyển tải rộng rãi cho người dùng. Người dùng
thường sử dụng một chứng thực điện tử cho mỗi ứng dụng. Việc sử dụng nhiều
chứng thực cho nhiều ứng dụng khác nhau sẽ giúp cho người sử dụng dễ dàng
hơn trong việc quản lý cũng như tăng cường tính độc lập và bảo mật của các ứng
dụng đó.
Hiện nay, Công ty Điện toán và Truyền số liệu-VDC đã ký thoả thuận
hợp tác với Công ty Trust Asia-đại diện Verisign tại khu vực Châu á-Thái Bình
Dương và trở thành công ty đại diện duy nhất tại Việt Nam cung cấp dịch vụ
chứng thực điện tử của Verisign. Khách hàng có thể đăng ký sử dụng dịch vụ
chứng thực điện tử của Verisign thông qua VDC. Với chứng thực điện tử này,
khách hàng sẽ được xác nhận toàn cầu và được bảo vệ nghiêm ngặt khi thực
hiện các giao dịch trực tuyến.
1.6 Chứng thực chéo
Một khía cạnh rất quan trọng trong hoạt động chứng thực điện tử là hoạt
động chứng thực chéo. Chứng thực chéo là quá trình các CA hoặc các root CA
thiết lập quan hệ tin cậy lẫn nhau, nhờ đó cộng đồng những người sử dụng có
thể thực hiện các giao dịch điện tử đối với các đối tác không cùng một CA.

×