ĐẠI HỌC CÔNG NGHỆ
ĐẠI HỌC QUỐC GIA HÀ NỘI
VŨ VĂN TRIỆU
XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỔ SỬ
DỤNG CÔNG NGHỆ IAIK VÀ SSL LUẬN VĂN TH.S CÔNG NGHỆ THÔNG TIN
Ngưới hướng dẫn:PGS.TS Trịnh Nhật Tiến
Hà Nội 2007
2.2.3.3. Trường signatureValue 54
2.2.3.4. Trường version 54
2.2.3.5. Trường serialNumber 54
2.2.3.6. Trường signature 54
2.2.3.7. Trường issuer 55
2.2.3.8. Trường validity 56
2.2.3.9. Trường subject 56
2.2.3.10. Trường subjectPublicKeyInfo 56
2.2.4. Định dạng PEM của chứng chỉ số 57
2.2.5. Mô hình quản lý chứng chỉ số 58
2.2.5.1. Đối tượng sử dụng 59
2.2.5.2. Thành phần CA 60
2.2.5.3. Thành phần RA 60
2.2.5.4. Kho thông tin 61
2.2.5.5. CRL Ủy quyền 61
2.2.6. Các chức năng quản lý chứng chỉ số 61 3
2.2.6.1. Đăng ký 61
2.2.6.2. Khởi tạo 62
2.2.6.3. Chứng thực 62
2.2.6.4. Phục hồi cặp khóa 62
2.2.6.5. Cập nhật cặp khóa 62
2.2.6.6. Yêu cầu thu hồi 63
2.2.6.7. Chứng thực chéo 63
2.2.6.8. Các chức năng thêm 63
2.2.7. Các giao thức quản lý chứng chỉ số 64
Chương 3. THỬ NGHIỆM XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ 65
3.1. TỔNG QUAN 65
5
CÁC THUẬT NGỮ VIẾT TẮT
CA – Certification Authority
Thc th có thm quyn chng thc, là thc th duy nht trong PKI có chc
p chng ch s.
ASN.1 – Abstract Syntax Notation One
Là mt ngôn ng hình thc mô t i trong mt phm
vi rng gia các các dng Internet, mng thông minh, mng di
n t
BER – Basic Encoding Rules
Lun. Mt luc s dng trong thp k
gin, thô, nhng không có hiu qu.
CRL – Certificate Revocation List
Danh sách các chng ch s b thu hi hay không còn hp l.
DER – Distinguished Encoding Rules
Lut mã hóa phân bit. Lut mã hóa không có s tùy chn s n, thô
u qu. Lut mã hóa DER din gii c các thành phn tùy
chn, ví du dài hay không, la chn các kiu.
Digital Certificate
Chng ch s, là mt cu trúc d lic s d gn các thông
c xác thc ca mng vào mt khóa công khai cng
u cách gi khác: certificate, public key certificate.
Digital Signature
Ch n t, là mt k thut s dng mã khóa công khai cho phép không th
RFC – Requests for Comments
,
1969
, ,
u này khnh ảnh hưởng của cuộc cách mạng công nghệ thông tin là rất
sâu đậm, và để lại dấu ấn trên từng hành vi của mỗi cá nhân hàng ngày, hàng
giờ.
Xã hội số hoá.
Vai trò ch o ca mng nói chung và Internet nói riêng là quá rõ ràng trong
nn kinh t th gii mi. Trên nó, xã hội số hoá c bii tên gi
không gian điều khiển ng ln rng dn. Trong th
gii o này, các phương tiện, nghi thức, quy ước, luật lệ của loài người đang
dần được tái sáng tạo.
An toàn bảo mật.
Mt trong nhng thách thc ln nhi vi s m rng tm ng ca
xã hi s hoá trong thi gian g vấn đề an toàn bảo mật. Nói nôm na là
làm th a các hành vi truy nhp bt hp pháp hoc ch ng các
loi ti phm tin hu này có th d c bi mt xã hi không th
phát trin mà không da trên mt nn tng pháp lut). Chúng tn ti các
d nghe trm, si trái phép thn gi
mo, gian li
u bt ngun t bn cht phân tán ca mng Internet,
p xúc vt lý trc tip v
th gii thc) và thông tin giao dch buc phhuyn qua nhiu trm trung
chuyn không nm trong s kim soát cng
mt giao dch chuyn tin tr giá 1.000.000$ chc s c thc hin
qua mng nm bo là không ai có th xâm nh si hoc
nghe try, nhu cu an toàn bo mt trên kênh truyn tin là
rt thit thc và b thành mt v thi s i gii quyt
tri và có h thng. 9
Chứng chỉ số là mt trong các công c thc hin an toàn và bo mt
Chương 1. CÁC KHÁI NIỆM CƠ BẢN 1.1. HỆ MÃ HÓA KHÓA ĐỐI XỨNG (Symmetric Key Cryptosystems)
1.1.1. Khái niệm mã hóa khóa đối xứng.
m bo tính bí mt, p trong kênh truyn tin cn phc
mã hoá. Mô hình v truyn tin có bo mt có th
Hình 1-1. Mô hình truyền tin có bảo mật
Cơ chế hoạt động:
i phát tin S mun gi mt thông tin X ti nhn R qua mt kênh
truyn tinng th E có th nghe tr ly c thông tin X.
S s dng mt phép mã hoá thông tin X, to ra n mã Y khó có th
c. Y u ni dung ca thông tin X. Khoá là thông s u khin
ca phép bii này. Gic li nhn thu
c thônu X t n mã Y.
Nu bit khóa lp mã, d c khóa gic li, h mã
i là h i xng( trong mt s h i xng,
khóa lp mã và khóa gii mã là trùng nhau) Đối tượng thứ 3: truy cập bất hợp pháp
Mã hóa
Hoán v ban u
Lp 1
Lp 2
Lp 16
i ch 32 -bit
Hoán v c
64-bit plaintext
Dch trái
Dchtrái
Dch trái
Dch trái
Hoán v chn 2
Hoán v chn 2
Hoán v chn 2
Hoán v chn
1
64-bit
ciphertext
DES
13
Trường hợp truyền bị lỗi
Key 00000001 00000001 00000001 00000001 00000001 00000001
00000001 00000001
Plaintext: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
Ciphertext:10011000 10100110 01001101 11101001 11000001 10110011
00100011 10100111 Ciphertext:10011000 10100110 01001001 11101001 11000001 10110011
00100011 10100111
Plaintext: 00110101 10010101 10001101 11010011 11100110 00111100
01101100 01000011
Ta thy rng, ch sai s 1 bit ciphertext trong quá trình truyn, d liu gii mã
ã khác hoàn toàn plaintext ban u.
iu này tuy gây mt s phc tp trong quá trình hiu chnh li, i là
im c mã hoá DES bi vì nu mt thay i nh trong ciphertext
Bước 1 : Mở rộng khoá.
c ca khoá bii trong khong t c
khi s d mã hoá và gii mã cn phi có thao tác chun hoá khoá gi là
m rng khoá (Key Expansion).
c khi mô t hong ca thut toán m rng khoá, c mt s
ký hiu. m khoá m rng theo byte và theo word.
- Nhìn theo byte, ta ký hiu b m khoá là mc 128
byte t L[0] ti L[127].
- Nhìn theo word, ta ký hiu b c 64 word t K[0]
ti K[63].
Chú ý ta s dng ký hiu mng K và L cùng ch ti b m khoá vào,
K[i] = L[2*i] + 256*L[2*i+1]
Gi thi dài ca khoá là T byte, vt toán m rng
t T byte khoá vào b m khoá t L[0] ti L[T-1]. Ký hiu s bit có hiu
lc ca khoá vào là T1, s u vào có hiu lc là T8 =
8/1T
và mt n bit
c tính theo công thc:
TM = 255 mod 2
8(1-T8)+T1
. 15
Thut toán
1. for i = T, T+1, 127 do
L[i] = PITABLE[(L[i-1]+L[i-T]) MOD 255]
2. L[128-T8] = PITABLE[L[128-T8] AND TM]
2. M rng khoá to mng khoá m rng K[0], , K[63].
3. Khi to j = 0.
4. Thc hin 5 ln Mixing round.
5. Thc hin 1 ln Mashing round.
6. Thc hin 6 ln Mixing round.
7. Thc hin 1 ln Mashing round.
8. Thc hin 5 ln Mixing round.
9. Bn mã trong mng R[0], , R[3]. 17
Bước 3: Giải mã.
Gii mã thc hin các thao tác c vi quá trình "mix", "mash" trong quá
trình mã hoá, c ký hiu lt là "R-mix" và "R-mash".
a) Các bước R-mix và R-mash thực hiện như sau:
R-Mix up R[i]:
R[i] = R[i] ROR s[i];
R[i] = R[i]-K[j]-(((R[i-1] AND R[i-2]))-(NOT(R[i-1]) AND R[i3]));
j = j-1;
R-Mixing round:
R-Mix up R[3], R-Mix up R[2], R-Mix up R[1], R-Mix up R[0]
R-Mash R[i]:
R[i] = R[i] - K[R[i-1] AND 63];
R-Mashing round:
R-Mash R[3], R-Mash R[2], R-Mash R[1], R-Mash R[0]
b) Giải mã được thực hiện như sau:
1. Khi to mng R[0], , R[3] cha 64 bit bn mã.
2. M rng khoá to mng K[0], , K[63].
3. Khi to j = 63.
4. Thc hin 5 ln r-mixing round.
i = (i+1) mod 256;
j = (j+S
i
) mod 256;
swap S
i
and S
j
t = (S
i
+S
j
) mod 256
K = S
t
.
K XOR vi bn rõ thì to ra bn mã, K XOR vi bn mã thì to ra bn rõ. 19
1.1.5. Hệ mã hóa IDEA
c xem là hệ mã hoá khối mnh nht hin nay, nó thao tác trên các
khi 64 bit bc khoá vào là 128 bit, s dng cùng thu
mã hoá và gii mã.
Thut toán hong da trên s kt hp ca ba nhóm các phép bii
s. Các phép bii s này d t c v phn cng ln phn m
các phép bii:
+XOR.
+Cng theo module 2
1620
Hình 1-3. Sơ đồ IDEA
3. Cng X
3
vi khoá con th ba.
4. Nhân X
4
vi khoá con th 3.
5. XOR kt qu cc 3.
XOR kt qu cc 4.
6. Nhân kt qu ci khoá con th 5.
7. Cng kt qu cc 7.
8. Nhân kt qu cc 8 vi khoá con th 8.
9. Cng kt qu cc 7 và 9.
10. XOR kt qu cc 1 và 9.
11. XOR kt qu cc 3 và 9.
12. XOR kt qu cc 2 và 10.
13. XOR kt qu cc 4 và 10.
Sau 8 vòng (thc hin 13 , thc hin tip:
1. Nhân X
1
vi khoá con th nht.
2. Cng X
2
vi khoá con th hai.
3. Cng X
3
vi khoá con th ba.
4. Nhân X
4
vi khoá con th
Các khc ni li v to thành bn mã. Các khoá con c
i phi có nhà thm quy
tin trên mng, vi i khá nhiu v n.
Ngoài ra nó còn to ra mm bottleneck (tht nút c trai) trên mng, tt c
các khu liên lc gia mt cp user u phi thông qua S, nên S d b quá ti
gây tc nghn.
23
Cách 3
S dng giao thc i khoá, ví d giao th i khóa Diffie-
Hellman.
Giao thc i khoá Diffie-Hellman
A và B thng nht chn mt s nguyên t p, mt phn t nguyên thy
(primitive element)
{
0
,
1
,
2
p-1
}={1, 2, 3, p-1}
A chn mt s ngu nhiên X
A
B gi bí mt X
B
A tính:
K=
A
X
B
Y )(
p =
BA
XX
p
B tính
K=
B
X
A
Y )(
p =
BA
XX
p
y hai bên A, B tri hai giá tr a ca i bc X
A
và X
B
ca h thng quynh bi tính khó ca bài toán tính logarit ri rc. 24
1.2. HỆ MÃ HÓA KHÓA CÔNG KHAI
1.2.1. Khái niệm mã hóa công khai
Các h mc nghiên cu và phát trin t cui nhng
thp k 70. M bo mc bm b phc tp tính toán. Ý ng
n ca các h mt mã này là xây dng nhng h thng sao cho bit khoá
mã hoá P và thun rc cách
gii mãng là khó do phi khc phc m phc tp tính toán rt l
c khoá gi gii mã p là
khác nhau. Khoá P - khoá công khai , khóa p - khoá riêng và là khoá bí mt.
c gi là khoá công khai, vì vy h thc gi là
h mt mã khoá công khai (Public-Key Cryptosystem-PKC).
H mã khoá công khai c gii quyt hai vn khó khn tn ti
vi mã hoá truyn th i xng): ó là vn qun lý phân phi
khoá và vn ch ký in t. Khác vi mã hoá truyn thng ch s dng mt
khoá cho c hai b phn mã hoá và giy không cn iu
kin nào khác ngoài vic cung cp mt khoá duy nht và bí mt.
Quá trình mã hoá và gii mã vi khoá công khai c mô t trong hình 1-4:
Hình 1-4. Mã hoá dùng khoá công khai
Plaintext
và khoá bí mt z
b
. Thông ip X c mã hoá bi khoá công
khai ca B:
Y=E(Z
b
, X)
Bên nhn thc hin gii mã vi khoá bí mt ca mình:
X=D(z
b
, Y)
ng hp A gi thông ip cho B và mã hoá bng khoá mt ca A
khi truyn i, B có th gii mã thông ip khi s dng khoá công khai ca A.
Ch có A mi có khoá mt ca A mã hoá bn tin y ch có A mi
sinh ra bn tin ó, ta có th coi chng thc cho bn tin. ây chính là
k thut to lp mt ch ký s. 26
ng hp:
Thông điệp được truyền và nhận bí mật:
Khi ó A mã hoá thông ip bng khoá công khai ca B (Z
b
) và gi cho B, B
nhn c thông ip s gii mã nó bng khoá mt z
b
ca B.
za
Za
X
X
Ngun
Mã hóa
Y
Cp khóa
z
b
Z
b
A
B