Ờ Ả Ơ
L I C M N
ệ ố ỗ ự ứ ự ự ệ ồ Sau ba tháng n l c th c hi n, đ án “ Nghiên c u xây d ng h th ng
ự ề ầ ầ ộ ở ồ
PKI d a trên b ph n m m mã ngu n m OpenCA” đã ph n nào hoàn
ự ố ắ ủ ả ậ ượ ự ế thành. Ngoài s c g ng h t mình c a b n thân, em đã nh n đ c s khích
ề ừ ườ ầ ạ ệ ấ
l r t nhi u t phía nhà tr ng, th y cô, gia đình, b n bè
ử ờ ả ơ ấ ớ ắ ứ Em xin g i l i c m n chân thành và sâu s c nh t t i Ths Hoàng Đ c
ườ ữ ầ ị ướ ế ấ ữ ọ
Th , ng i th y đã cho em nh ng đ nh h ng và nh ng ý ki n r t quý báu
ề
v PKI và OpenCA
ỏ ế ơ ắ ớ ầ ạ Em cũng xin t lòng bi t n sâu s c t i th y cô trong khoa và b n bè
ọ ạ ữ ế ỡ ộ ố ệ ọ cùng khoá đã giúp đ em ti n b trong su t nh ng năm h c t i H c Vi n
ậ ậ ỹ K Thu t M t Mã.
ả ơ ữ ườ ộ Xin c m n gia đình và nh ng ng i thân yêu đã luôn đ ng viên,
ế ả ỡ ọ khuy n khích giúp đ con trong m i hoàn c nh khó khăn
ả ơ ạ ộ ỡ ọ
Xin c m n b n bè đã và đang đ ng viên, giúp đ tôi trong quá trình h c
ồ ố ậ
t p và hoàn thành đ án t ệ
t nghi p này
ồ ố ượ ộ ờ Đ án t ệ ủ
t nghi p c a em đ c hoàn thành trong m t th i gian cũng
ươ ắ ẽ ề ế ế ắ ậ ắ ố ồ t ng đ i ng n. Vì v y đ án này ch c ch n s còn nhi u khi m khuy t.
ả ơ ữ ầ ạ ườ ữ ẽ Em xin c m n nh ng th y cô, b n bè và ng i thân s có nh ng góp ý
ể ế ụ ủ ồ ể ể ộ chân thành cho n i dung c a đ án này, đ em có th ti p t c tìm hi u, đi
ự ễ ứ ụ sâu nghiên c u và áp d ng trong th c ti n
1
Ngô Thu H ngằ
Ụ
Ụ
M C L C
Ụ
Ụ
Ắ
Ầ
Ọ
ệ
ệ
ử ụ
ố ứ
ậ
ử ụ
ậ
ứ
ổ
ữ
M C L C
2
..............................................................................................................................
Ụ
Ừ Ế
6
.......................................................................................
DANH M C CÁC T VI T T T
Ẽ
Ụ
DANH M C HÌNH V
10
.......................................................................................................
Ờ
L I NÓI Đ U
10
.....................................................................................................................
Ơ Ở Ậ
ƯƠ
13
NG I: C S M T MÃ H C
...............................................................................
CH
ậ
ậ
1.1.M t mã khoá bí m t
13
..................................................................................................
ề ậ
ớ
ậ
1.1.1.Gi
13
i thi u v m t mã khoá bí m t và các khái ni m có liên quan
...................
ậ
ộ
14
1.1.2.M t vài các thu t toán s d ng trong m t mã khoá đ i x ng
.........................
14
.............................................................................................................
1.1.2.1.DES
1.1.2.2.IDEA
14
............................................................................................................
1.1.2.3. Triple DES
14
...................................................................................................
15
....................................................................................................
1.1.2.4.CAST128
1.1.2.5.AES
15
..............................................................................................................
ậ
16
1.2.M t mã khoá công khai
..............................................................................................
1.2.1.Khái ni mệ
16
...........................................................................................................
ậ
17
1.2.2. Các thu t toán s d ng trong m t mã khoá công khai
.....................................
1.2.2.1. RSA
17
.............................................................................................................
ươ
1.2.2.2.Ph
17
................................................
ng th c trao đ i khoá Diffie Hellman
ố
18
..................................................................................................................
1.3. Ch ký s
2
ữ
ử
ệ
ể
ạ
i Vi
ề
ị
ề
ự
ự ộ
ề
ụ
ự
ị
2.4.1.2. Đ nh danh ngu n g c d li u
ố
2.4.4.Ch ng ch i b
ấ
Ầ
Ủ
Ể
ứ
ệ
ượ ấ
ứ
1.3.1.Quá trình ký
18
.........................................................................................................
ố
ể
19
..............................................................................
1.3.2.Quá trình ki m tra ch ký s
20
1.4. Hàm hash
...................................................................................................................
ệ
...........................................................................................
1.4.1.Khái ni m hàm hash
20
ượ
20
..........................................................................................
c thông báo
1.4.2. Tóm l
ƯƠ
Ề
Ổ
NG II: T NG QUAN V PKI VÀ CA
21
..................................................................
CH
ị
21
..............................................................................................
2.1. L ch s phát tri n PKI
ệ
2.2.Tình hình PKI t
23
......................................................................................
t Nam
ị
25
.............................................
2.3. Các đ nh nghĩa v PKI và các khái ni m có liên quan
25
2.3.1. Các đ nh nghĩa v PKI
.......................................................................................
ệ
2.3.2. Các khái ni m liên quan trong PKI
26
....................................................................
ỉ
ứ
2.3.2.1.Ch ng ch
26
.....................................................................................................
ỉ
ứ
2.3.2.2.Kho ch ng ch
28
..............................................................................................
ỉ
ủ ỏ ứ
28
........................................................................................
2.3.2.3.H y b ch ng ch
ư
2.3.2.4. Sao l u và d phòng khóa
29
..........................................................................
ậ
ậ
2.3.2.5.C p nh t khóa t
30
...........................................................................
đ ng
ử
ị
30
2.3.2.6.L ch s khóa
.................................................................................................
ứ
ự
2.3.2.7.Ch ng th c chéo
31
..........................................................................................
ố ỏ
ỗ ợ ố
2.3.2.8.H tr ch ng ch i b
31
..................................................................................
ờ
2.3.2.9.Tem th i gian
32
...............................................................................................
ầ
32
2.3.2.10.Ph n m m phía Client
...............................................................................
ứ
33
2.4. M c tiêu, ch c năng
................................................................................................
2.4.1. Xác th cự
34
.............................................................................................................
ể
34
......................................................................................
2.4.1.1.Đ nh danh th c th
ự ụ ộ
2.4.1.1.1.Xác th c c c b
34
....................................................................................
ự ừ
34
.......................................................................................
xa
2.4.1.1.2.Xác th c t
ị
ố ữ ệ
ồ
35
....................................................................
2.4.2. Bí m tậ
35
.................................................................................................................
ẹ ữ ệ
2.4.3.Toàn v n d li u
35
................................................................................................
ố
ữ
2.4.3.1.Ch ký s
36
.....................................................................................................
ự
36
2.4.3.2. Mã xác th c thông báo
...............................................................................
ố ỏ
36
....................................................................................................
ơ ả
ạ
36
2.5. Các khía c nh an toàn c b n mà PKI cung c p
.....................................................
ậ
2.5.1. Đăng nh p an toàn
37
............................................................................................
ộ ầ
ậ
37
2.5.2. Đăng nh p m t l n an toàn
..............................................................................
ườ
ố ớ
ố
2.5.3. Trong su t v i ng
38
i dùng cu i
.......................................................................
2.5.4. An ninh toàn di nệ
39
..............................................................................................
Ủ
Ơ Ế
Ệ
ƯƠ
CH
NG IIII: CÁC THÀNH PH N, C CH LÀM VI C C A PKI. CÁC MÔ HÌNH
Ế
40
VÀ CÁC KI U KI N TRÚC C A PKI
.............................................................................
ầ ủ
40
3.1. Mô hình PKI và các thành ph n c a PKI
.................................................................
3.1.1. CA
40
......................................................................................................................
41
.......................................................................................................................
3.1.2.RA
ụ ủ
3.1.2.1.Ch c năng, nhi m v c a RA
41
....................................................................
ầ ủ
3.1.2.2.Thành ph n c a RA
41
.....................................................................................
41
3.1.2.2.1.RA Console
...........................................................................................
3.1.2.2.2.RA Officer
42
.............................................................................................
42
..........................................................................................
3.1.2.2.3.RA Manager
ỉ
42
...............................
c c p phát ch ng ch
3.1.3. CertificateEnabled Client: Bên đ
3
ư
ứ
ỉ
ệ ủ
ự
ữ
i g i.
ộ
ộ
ứ
ầ
ẽ
ấ
ấ
ẽ
ặ
ậ
ế
ứ
ể
ể
ế
ế
ế
ế
ế
Ở
Ự
Ồ
ử
ể
ị
ứ
ủ
ứ
ỉ ố
ứ
ệ
ụ
ộ
ế ế
ậ ữ ệ
43
....................................................................
3.1.4. Data Recipient : Bên nh n d li u
ỉ
ứ
ồ
ữ
43
..........................................................................
3.1.5. Kho l u tr /thu h i ch ng ch
ỗ
ư ế
ạ ộ
43
3.1.6.Chu i ch ng ch ho t đ ng nh th nào
..........................................................
ứ
3.2. Cách th c làm vi c c a PKI
44
....................................................................................
ở ạ
ể ố
3.2.1. Kh i t o th c th cu i
45
......................................................................................
ạ ặ
..................................................................
3.2.2. T o c p khoá công khai/khoá riêng
45
ố ể ị
ườ ử
ụ
46
...................................................
3.2.3. Áp d ng ch ký s đ đ nh danh ng
3.2.4. Mã hóa thông báo
46
...............................................................................................
ố ứ
ề
3.2.5. Truy n khóa đ i x ng.
46
......................................................................................
ể
ườ ử
47
............................................
i g i thông qua m t CA
3.2.6. Ki m tra danh tính ng
ể
ả
3.2.7. Gi
47
i mã thông báo và ki m tra n i dung thông báo.
.........................................
ế
3.3. Các ti n trình trong PKI
48
............................................................................................
ỉ
ầ
3.3.1. Yêu c u ch ng ch
48
.............................................................................................
ử
49
................................................................................................
3.3.1.1. G i yêu c u
3.3.1.2. Các chính sách
49
.............................................................................................
ỉ
ỷ ỏ ứ
50
..............................................................................................
3.3.2. Hu b ch ng ch
50
3.4. Các mô hình PKI
.......................................................................................................
ặ
50
................................
3.4.1. Mô hình phân c p CA ch t ch (strict hierarchy of CAs)
......................
3.4.2.Mô hình phân c p CA không ch t ch (loose hierarchy of CAs)
52
3.4.3.Mô hình ki n trúc tin c y phân tán (distributed trust architecture)
52
....................
53
3.4.4. Mô hình 4 bên (fourcorner model)
....................................................................
3.4.5. Mô hình Web (web model)
55
................................................................................
ườ
ậ ấ
3.4.6.Mô hình tin c y l y ng
56
..................
i dùng làm trung tâm (usercentric trust)
ế
57
3.5.Các ki u ki n trúc PKI
..............................................................................................
ể
3.5.1. Ki n trúc ki u Web of Trust
58
.............................................................................
ơ
ể
3.5.2.Ki n trúc ki u CA đ n (Single CA)
59
..................................................................
ấ
......................................................................................
3.5.3. Ki n trúc CA phân c p
61
ự
62
.........................................
3.5.4. Ki n trúc ki u ch ng th c chéo (Crosscertificate)
63
3.5.5. Ki n trúc Bridge CA(BCA)
...............................................................................
Ự
ƯƠ
CH
NG IV: XÂY D NG MÔ HÌNH PKI D A TRÊN MÃ NGU N M OPENCA
64
..............................................................................................................................................
4.1.L ch s phát tri n OpenCA
64
.......................................................................................
66
4.2. CA
............................................................................................................................
4.2.1.Ch c năng c a CA
66
..............................................................................................
ỉ
ứ
ấ
66
.....................................................................................
4.2.1.1. C p phát ch ng ch
ỉ
ỷ ỏ ứ
4.2.1.2.Hu b ch ng ch
66
........................................................................................
ạ ậ
ỉ
4.2.1.3.T o l p chính sách ch ng ch
67
.....................................................................
ẫ
ướ
ự
67
.....
4.2.1.4.H ng d n th c hi n ch ng ch s (Certification Practice Statement)
ụ ủ
ệ
4.2.2.Nhi m v c a CA
68
..............................................................................................
4.2.3. Các lo i CAạ
68
........................................................................................................
4.2.3.1.Enterprise CA:
68
.............................................................................................
68
..............................................................................................
4.2.3.2.Standalone CA
4.2.4.Các c p CAấ
69
.........................................................................................................
4.2.4.1.Root CA(CA g c)ố
69
........................................................................................
69
4.2.4.2.Subordinate CA(CA ph thu c):
................................................................
ủ
t k chung c a CA
70
............................................................................................
4.3. Thi
ấ ơ ả
4.3.1.Phân c p c b n
71
.................................................................................................
4.3.2.Các giao di nệ
73
......................................................................................................
4
ầ ứ
ấ
ố
ỷ ỏ ứ
ể
ng phát tri n
ệ
ệ
ệ
ệ
ề
ư ệ
ộ
ế
ậ
4.3.2.1.Node
74
.............................................................................................................
4.3.2.2.CA
75
................................................................................................................
75
................................................................................................................
4.3.2.3.RA
4.3.2.4. LDAP
76
...........................................................................................................
4.3.2.5.Pub
76
................................................................................................................
ố ượ
ờ ủ
ng
4.4. Vòng đ i c a các đ i t
76
....................................................................................
ế ế
ư
77
.......................................................................................
4.5. Các l u ý khi thi
t k PKI
ầ ứ
ề
ấ
78
4.5.1. Các v n đ ph n c ng
......................................................................................
ờ
4.5.1.1.Th i gian
78
......................................................................................................
iỗ
78
...........................................................................................................
4.5.1.2.Đĩa l
78
.....................................................................................
4.5.1.3.Theo dõi ph n c ng
4.5.2.An toàn v t lýậ
79
......................................................................................................
ấ
ề ề ạ
4.5.3.Các v n đ v m ng
80
..........................................................................................
ề ề ứ
ỉ
80
.........................................................................................
4.5.4.V n đ v ch ng ch
ể
ỉ
4.5.5.CDPs (Các đi m phân ph i danh sách hu b ch ng ch (CDP))
80
....................
ề ụ ể ề ứ
ụ
ấ
81
4.5.6.Các v n đ c th v ng d ng
.......................................................................
81
...................................................................................................
4.5.6.1.Mail Server
4.5.6.2. Client Netscape
81
............................................................................................
81
4.5.6.3.OpenLDAP
...................................................................................................
Ụ Ụ
PH L C
83
.............................................................................................................................
ườ
83
...................................................................................................
1.Môi tr
1.1.Apache
83
....................................................................................................................
...............................................................................................................
84
1.2. OpenSSL
ụ
85
1.2.1.Công c dòng l nh trong openssl
...................................................................
ẩ
85
...............................................................................
1.2.1.1.Các dòng l nh chu n
ượ
87
c thông báo
.........................................................
1.2.1.2.Các dòng l nh tóm l
1.2.1.3. Các dòng l nh v mã hoá
87
.......................................................................
ư ệ
88
1.2.2.Th vi n SSL/TLS trong OpenSL
..................................................................
1.2.2.1.Miêu tả
88
.....................................................................................................
ữ ệ
ấ
1.2.2.2. C u trúc d li u
88
.....................................................................................
89
.........................................................................................
1.2.2.3. Các file header
ậ
1.2.3. Th vi n m t mã trong OpenSSL
90
.................................................................
ả
1.2.3.1. Miêu t
90
...................................................................................................
ổ
90
................................................................................................
1.2.3.2.T ng quan
ụ
90
1.2.4. B công c OpenSSL
....................................................................................
ổ ậ
ể
1.3.1.Các đi m n i b t
92
............................................................................................
1.3.2.Ki n trúc gói mod_ssl
93
.....................................................................................
ứ
93
1.3.3.Giao th c SSL
................................................................................................
1.4. OpenLDAP
95
............................................................................................................
99
1.5. Các module perl
.....................................................................................................
ẩ
100
2.Các chu n m t mã
......................................................................................................
5
Ừ Ế
Ụ
Ắ
DANH M C CÁC T VI T T T
AES Advanced Encryption Standard
ế ẩ Tiêu chu n mã hóa tiên ti n
API Application Programming Interface
ệ ậ ứ ụ Giao di n l p trình ng d ng
APXS Apache Extention (tool)
ụ ở ộ Công c m r ng Apache
CA Certificate Authority
ứ ề ẩ ự
Th m quy n ch ng th c
CDP: CRL Distribution Point
ể ố Đi m phân ph i CRL
CRL Certificate Revocation List
ỷ ỏ ứ ỉ Danh sách hu b ch ng ch
CRR Certificate Revocation Request
ỷ ỏ ứ ầ ỉ Yêu c u hu b ch ng ch
CPS Certification Pratice Statement
ướ ứ ẫ ỉ
ự
H ng d n th c hành ch ng ch
6
CSR Certificate Signing Request
ứ ầ ỉ
Yêu c u ký ch ng ch
DES Data Encryption Standard
ữ ệ ẩ Tiêu chu n Mã hóa D li u
DN Distingished Name
Tên phân bi tệ
DSO Dynamic Shared Object
ố ượ ẻ ộ Đ i t ng chia s đ ng
Email Electronice mail
ư ệ ử Th đi n t
FTP File Transfer Protocol
ề ậ ứ Giao th c truy n t p tin
HTTP Hypertext Transfer Protocol
ứ ả ề
Giao th c truy n siêu văn b n
HTTPS: Secure Hypertext Transfer Protocol
ứ ề ả Giao th c truy n siêu văn b n an toàn
IDEA: International Data Encryption Algorithm
ữ ệ ố ế ậ Thu t toán mã hoá d li u qu c t
IKE: Internet Key Exchange
ổ Trao đ i khoá Internet
7
IMAP Internet Message Access Protocol
ứ ậ Giao th c truy c p thông báo Internet
ITU: Internet Telecommunication Union
ố ế ễ
Liên minh vi n thông qu c t
LDAP: Lightweight Directory Access Protocol
ứ ậ ư ụ
Giao th c truy c p nhanh các th m c
MAC Message Authentication Code
ự
Mã xác th c thông báo
MD: Message Degist
ượ Tóm l c thông báo
NCSA
OCSP Online Certificate Status Protocol
ứ ứ ạ ỉ
Giao th c tr ng thái ch ng ch
OSI Open System Interconnection
ế ố ệ ố ở Mô hình k t n i các h th ng m
PEM: Privacy Enhanced Mail
ư ư ườ Th riêng t tăng c ng
PGP: Pretty Good Privacy
PKCS: Public Key CryptoGraphy Standards
ẩ ậ Chu n m t mã khoá công khai
8
PKI: Pulic Key Infracstructure
ơ ở ạ ầ C s h t ng khóa công khai
POP: Post Office Protocol
RSA: Rivest Shamir Adleman
SCEP: Simple Certificate Enrollment Protocol
ỉ ơ ứ ứ ả Giao th c đăng ký ch ng ch đ n gi n
SHA: Secure Hash Algorithm
ậ Thu t toán băm
S/MIME Secure Multipurpose Internet Mail Extensions
SMTP Simple Mail Transfer Protocol
ư ơ ứ ả ề
Giao th c truy n th đ n gi n
SPKC Simple Public Key Certificate
ứ ả ơ ỉ Ch ng ch khoá công khai đ n gi n
SSH Secure Shell
TCP/IP Transmission Control Protocol /Internet Protocol
ứ ứ ề ể ề
Giao th c đi u khi n truy n thông/giao th c Internet
TLS Transport layer Security
9
ứ ả ể ả ậ ớ Giao th c đ m b o an toàn l p v n chuy n
Ẽ
Ụ
DANH M C HÌNH V
ậ
ậ
ể
ữ
ỉ
ạ
ệ
ứ
ậ
ậ
ế
ế
ầ
ỗ
ặ
ậ
ậ ấ
ườ
ỗ
ứ
ự
ể
ọ
ậ ...............................................................................................15
Hình 1: M t mã khoá bí m t
Hình 2: M t mã khoá công khai
..........................................................................................16
Hình 3: Quá trình ký số........................................................................................................19
ố.................................................................................20
Hình 4: Quá trình ki m tra ch ký s
ệ
............................................................................24
Hình 5:Mô hình PKI Vi
t Nam hi n nay
............................................................................28
Hình 6: Khuôn d ng ch ng ch X.509v3
.................................................................................37
Hình 7: Ti n trình đăng nh p an toàn
ộ ầ ...................................................................38
Hình 8: Ti n trình đăng nh p an toàn m t l n
Hình 9: Mô hình các thành ph n PKI
..................................................................................40
ỉ...................................................................................................44
ứ
Hình 10: Chu i ch ng ch
ẽ...........................................................................51
ấ
Hình 11: Mô hình phân c p CA ch t ch
ế
Hình 12: Mô hình ki n trúc tin c y phân tán
......................................................................53
ố
...................................................................................................54
Hình 13: Mô hình b n bên
Hình 14: Mô hình Web.........................................................................................................55
Hình 15: Mô hình tin c y l y ng
...................................................56
i dùng làm trung tâm
ậ ........................................................................................................58
Hình 16: Chu i tin c y
ể
ế
................................................................................59
Hình 17: Ki n trúc ki u Web of Trust
ơ .................................................................................................61
ế
Hình 18: Ki n trúc CA đ n
ấ .........................................................................................62
ế
Hình 19: Ki n trúc CA phân c p
ế
..........................................................................63
Hình 20: Ki n trúc ki u ch ng th c chéo
ế
.............................................................................................64
Hình 21: Ki n trúc Bridge CA
ơ ồ
......................................................................70
Hình 22: S đ minh h a rootCA và SubCA
Ờ
Ầ
L I NÓI Đ U
ạ ạ ầ ề ệ ộ
Trong m t vài năm l i đây, h t ng truy n thông công ngh thông tin
ượ ở ộ ườ ử ụ ề ả ự càng ngày càng đ c m r ng khi mà ng i s d ng d a trên n n t ng này
ệ ề ồ ố ớ ị ể
đ truy n thông và giao d ch v i các đ ng nghi p, các đ i tác kinh doanh
ư ệ ạ ầ ộ
ượ ư ữ ạ ả ọ ế
cũng nh vi c khách hàng dùng email trên các m ng công c ng. H u h t
ổ
và trao đ i các thông tin kinh doanh nh y c m và quan tr ng đ c l u tr
ướ ệ ử ự ề ạ ổ ộ d ứ
i hình th c đi n t
ệ ệ ả ả ồ ớ ệ
doanh nghi p này đ ng nghĩa v i vi c chúng ta ph i có bi n pháp b o v . S thay đ i trong các ho t đ ng truy n thông
ệ
ệ ủ ướ ơ ừ ả ệ ổ ứ
t ch c, doanh nghi p c a mình tr ấ
c các nguy c l a đ o, can thi p, t n
10
ặ ạ công, phá ho i ho c vô tình ti ế ộ
t l các thông tin đó.
ơ ở ạ ầ ấ ẩ C u trúc c s h t ng mã hóa khoá công khai cùng các tiêu chu n và
ệ ứ ể ượ ủ ộ ả ụ
các công ngh ng d ng c a nó có th đ c coi là m t gi ợ
ổ
i pháp t ng h p
ộ ậ ể ượ ử ụ ể ả ế ấ ề và đ c l p có th đ c s d ng đ gi i quy t v n đ này.
ủ ế ầ ở ộ PKI đang tr thành m t ph n trung tâm c a các ki n trúc an toàn dành
ổ ứ ượ ộ ọ cho các t ch c kinh doanh. PKI đ ể
c xem là m t đi m tr ng tâm trong
ứ ế ề ả ạ ả ầ ẩ ả nhi u khía c nh qu n lý an toàn. H u h t các giao th c chu n đ m b o an
ệ ố ự ậ ạ ả ườ toàn mail, truy c p Web, m ng riêng o và h th ng xác th c ng i dùng
ề ử ụ ứ ậ ơ ỉ đăng nh p đ n đ u s d ng ch ng ch khóa công khai
ộ ệ ố ệ ừ ả ấ ẩ ừ
PKI b n ch t là m t h th ng công ngh v a mang tính tiêu chu n, v a
ụ ượ ử ụ ở ạ ư ữ ể ứ
mang tính ng d ng đ c s d ng đ kh i t o, l u tr
ệ ử ứ ư ự
ch ng th c đi n t ả
và qu n lý các
ế
cũng nh các mã khoá công khai và cá nhân. Sáng ki n
ờ ổ ứ ủ ệ PKI ra đ i năm 1995, khi mà các t
ự ươ ẩ
ự
d ng các tiêu chu n chung d a trên ph ch c công nghi p và các chính ph xây
ể ỗ ợ ộ ạ ng pháp mã hoá đ h tr m t h
ụ ể ả ậ ạ ạ ờ ượ ặ ầ
t ng b o m t trên m ng Internet. T i th i đi m đó, m c tiêu đ c đ t ra là
ộ ộ ậ ổ ụ ự ả ẩ ợ xây d ng m t b tiêu chu n b o m t t ng h p cùng các công c và lý
ế ườ ử ụ ư ổ ứ ệ thuy t cho phép ng i s d ng cũng nh các t ặ
ch c (doanh nghi p ho c
ợ ể ạ ậ ư ữ ậ ộ ổ phi l i nhu n) có th t o l p, l u tr và trao đ i các thông tin m t cách an
ạ ộ toàn trong ph m vi cá nhân và công c ng.
ể ệ ự ủ
PKI ngày càng th hi n rõ vai trò c a mình trong lĩnh v c an toàn thông
ứ ự ữ ệ ề ấ ộ tin. Hi n nay, có r t nhi u cách th c xây d ng PKI . M t trong nh ng cách
ự ứ ự ồ ở th c xây d ng PKI đó là d a trên mã ngu n m OpenCA
ề ệ ố ự ự ứ ồ Đ tài “Nghiên c u xây d ng h th ng PKI d a trên mã ngu n m
ượ ụ ứ ự ệ ể ớ ở
ự
c th c hi n v i m c đích tìm hi u, nghiên c u và xây d ng OpenCA” đ
ự ề ồ ở ộ ồ PKI d a trên mã ngu n m OpenCA. N i dung đ tài bao g m các khái
ề ậ ệ ệ ổ ớ ni m t ng quan v m t mã, các khái ni m liên quan t i PKI , các mô hình
ủ ề ể ế ầ ượ ề
và các ki u ki n trúc c a PKI. V ph n OpenCA, đ tài nêu lên đ
ở ể ự ứ ủ ề ể ầ đi m, ch c năng c a các ph n m m mã m đ xây d ng nên OpenCA nh ặ
c đ c
ư
11
Apache, OpenSSL, mod_ssl , perl và các module perl
ớ ạ ứ ể ề ề ấ ộ ớ
V i gi ể
i h n v các v n đ tìm hi u và nghiên c u, n i dung tìm hi u
ủ ầ ồ ề
đ tài c a em bao g m ..ph n
ươ ơ ở ậ Ch ậ
ng I: C s m t mã khoá công khai và khoá bí m t
ươ ề ậ ậ ậ Ch ng I trình bày v m t mã khoá bí m t và m t mã khoá công khai
ậ ượ ử ụ ậ ươ cùng các thu t toán đ c s d ng trong m t mã. Ch ng I cũng nêu ra khái
ề ữ ệ ả ố ượ ni m v ch ký s , hàm băm và b n tóm l c thông báo
ươ ề ổ Ch ng II: T ng quan v PKI
ươ ủ ệ ề Ch ệ
ng này trình bày v các khái ni m c a PKI và các khái ni m có
ớ ươ ơ ả ủ ứ ụ liên quan t i PKI. Ch
ữ ạ ươ ụ ủ ấ nh ng khía c nh an toàn mà PKI cung c p. M c đích c a ch ng này nêu lên m c tiêu, ch c năng c b n c a PKI,
ể ng này là th
ấ ề ệ ổ hi n cái nhìn t ng quan nh t v PKI
ươ ệ ủ ầ Ch
ươ ữ ủ ể ế ứ
ng III: Các thành ph n và cách th c làm vi c c a PKI, các mô hình
ổ
ng II đã nêu lên nh ng cái nhìn t ng và các ki u ki n trúc c a PKI. Ch
ấ ề ươ ề ạ quan nh t v PKI, còn ch ơ
ng III khai thác sâu h n v các khía c nh k
ứ ủ ệ ậ ượ ử ụ ỹ
ể
c s d ng trong PKI, cách th c làm vi c c a PKI và các ki u thu t đ
ủ ế ki n trúc, các mô hình c a PKI
ươ ự ự ồ ở Ch ng IV: Xây d ng mô hình PKI d a trên mã ngu n m OpenCA
ươ ế ề ứ ệ ồ Ch ng này trình bày chi ti ụ
t v CA: Bao g m ch c năng, nhi m v ,
ạ ươ ế ế ư các lo i CA . Ch ng này trình bày thi t k chung CA và l u ý khi xây
12
ự ồ ở ự
d ng PKI d a trên ngu n m OpenCA
ƯƠ
Ơ Ở Ậ
Ọ
CH
NG I: C S M T MÃ H C
ậ ượ ử ụ ừ ấ ứ ậ ơ ờ M t mã đã đ c s d ng t r t lâu đ i. Các hình th c m t mã s khai
ượ ấ ừ ả ố ướ ề đã đ c tìm th y t kho ng b n nghìn năm tr c trong n n văn minh Ai
ậ ổ ạ ồ ạ ậ ử ệ ẫ C p c đ i. M t mã đã và đang t n t ị
i hàng nghìn năm l ch s và hi n v n
ượ ử ụ ể ữ ề ặ ậ ệ đang đ ấ ộ
c s d ng r t r ng rãi đ gi bí m t trong truy n tin đ c bi t
ự ự ậ ố ị ề ơ
trong các lĩnh v c quân s , chính tr , an ninh và qu c phòng. M t mã v c
ạ ậ ọ ả ượ
b n đ ậ
c chia thành hai lo i chính là m t mã khóa bí m t (hay còn g i là
ố ứ ậ ậ ậ ọ ố
m t mã đ i x ng) và m t mã khóa công khai (hay còn g i là m t mã phi đ i
ứ
x ng).
ử ụ ề ề ể ể ậ ả Đ có th truy n tin s d ng m t mã thì hai bên truy n tin ph i có khóa
ặ ẫ ộ ế ợ ớ ộ
M t khóa mã hóa là m t m u thông tin đ c bi ệ ượ
t đ ộ
c k t h p v i m t
ể ậ ả ể ạ ỗ thu t toán đ thi hành mã hóa và gi i mã. M i khóa khác nhau có th t o ra
ả ọ ế
các văn b n mã hóa khác nhau, và n u ta không ch n đúng khóa thì không
ở ượ ể ữ ệ th nào m đ c d li u đã mã hóa , cho dù bi ế ượ
t đ ả
c mã hóa văn b n
ứ ạ ử ụ ậ ạ dùng thu t toán gì. S d ng khóa càng ph c t p, mã hóa càng m nh.
ổ ừ ả ể ệ ả ầ ượ Vi c chuy n đ i t b n tin ban đ u thành b n tin mã hoá đ ọ
c g i là
ự ể ổ ả ự
s mã hoá, s chuy n đ i ng ượ ạ ừ ả
i t c l b n tin mã hoá thành b n tin ban
ầ ượ ọ ả đ u đ c g i là gi i mã.
ầ ượ ọ ầ ượ ả ả B n tin ban đ u đ ả
c g i là b n rõ, b n tin ban đ u đ c mã hoá s tr ẽ ở
ộ ơ ế ả ậ ượ ọ ậ thành b n mã. Toàn b c ch bí m t đó đ c g i là m t mã.
ậ ậ
1.1.M t mã khoá bí m t
ớ ề ậ 1.1.1.Gi
ệ
ạ ử ụ ệ
ậ ố ứ ậ
i thi u v m t mã khoá bí m t và các khái ni m có liên quan
ộ
Trong m t mã đ i x ng các bên tham gia liên l c s d ng cùng m t
ể ả ướ ề ự ể khóa đ mã hóa và gi i mã. Tr
13
ậ ộ ỏ ớ ự ể th a thu n v i nhau m t khóa dùng chung (K). Th c th A dùng khóa đó đ c khi truy n tin, hai th c th A và B cùng
ể
K) sau đó g i cho th c th B. Th c th B dùng khóa K,
ự ử ự ể ể ả
mã hóa b n tin (e
K) đ gi
ự ả ể ả ệ
th c hi n phép gi i mã (d i mã mã nh n đ ậ ượ
c
ả ượ ữ ậ Khóa bí m t ph i đ ậ
c d bí m t
ố ứ ử ụ ậ ậ ộ 1.1.2.M t vài các thu t toán s d ng trong m t mã khoá đ i x ng
1.1.2.1.DES
ệ ậ ượ ự ạ ữ ỹ H m t DES đ c xây d ng t ầ
i M trong nh ng năm 70 theo yêu c u
ề ẩ ượ ự ẩ ị ố
ủ
c a Văn phòng Qu c Gia v chu n và đ ố
ủ
c s th m đ nh c a an ninh qu c
ế ợ ả ươ ể ị gia. DES k t h p c hai ph ế
ng pháp thay th và chuy n d ch
ủ ậ ộ ố ỗ ố ộ
DES là m t m t mã kh i. Đ dài c a m i kh i là 64 bit
ể ổ ộ ỉ Khoá dùng trong DES có đ dài t ng th là 64 bit, tuy nhiên ch có 56 bit
ự ự ượ ạ ể ệ th c s đ c dùng, 8 bit còn l i dùng cho vi c ki m tra
ừ ậ ậ ượ ử ụ ấ Đây đã t ng là thu t toán m t mã đ ộ
c s d ng r ng rãi nh t .
1.1.2.2.IDEA
ộ ố
ậ
IDEA là m t thu t toán mã hoá kh i
ừ ố ố ố
IDEA tao thác trên t ng kh i 64 bit, mã kh i 64bit plaintext thành kh i
64bit ciphertext
ậ ộ Đ dài khoá khoá dùng trong thu t toán IDEA là 128 bit
1.1.2.3. Triple DES
ậ ố ố
3DES (Triple DES), là thu t toán mã hóa kh i trong đó kh i thông tin 64
ẽ ượ ầ ượ ằ ầ ậ t mã hóa 3 l n b ng thu t toán mã hóa ớ
DES v i 3 khoá c l n l bit s đ
ẽ ớ ẽ ề ơ ộ
ữ ệ ể ớ ơ
khác nhau. Do đó, chi u dài khóa mã s l n h n và đ an toàn s cao h n
ộ ử
so v i DES do 3DES dùng 3 khóa khác nhau đ mã hóa d li u. B x lý
ự ướ ệ
th c hi n các b c sau :
ứ ể ẽ ầ ữ ệ
Khóa đ u tiên dùng đ mã hóa d li u. Sau đó, khóa th hai s dùng đ ể
14
ả ừ ượ ứ ẽ ố gi ữ ệ
i mã d li u v a đ ầ
c mã hóa. Cu i cùng, khóa th ba s mã hóa l n
ử ủ ứ ạ ậ ộ ộ ả th hai. Toàn b quá trình x lý c a 3DES t o thành m t thu t gi i có đ ộ
ư ậ ộ ả ứ ạ ờ ở
an toàn cao. Nh ng b i vì đây là m t thu t gi ự
i ph c t p nên th i gian th c
ệ ẽ ầ ơ ớ ươ ấ
hi n s lâu h n, g p 3 l n so v i ph ng pháp DES.
ậ ượ ặ ườ ể 1.1.2.4.CAST128
ậ
ộ Là m t thu t toán m t mã đ c đ t tên theo tên ng i phát tri n là
Carlisle Adams và Stafford Tavares
ề Chi u dài khoá là 128 bit
1.1.2.5.AES
ậ ộ ố
AES là m t thu t toán mã hoá kh i
ố ữ ệ ệ ớ ộ AES làm vi c v i kh i d li u 128 bít và ặ
khóa có đ dài 128, 192 ho c
256 bít
15
ậ ậ
Hình 1: M t mã khoá bí m t
ậ 1.2.M t mã khoá công khai
1.2.1.Khái ni mệ
ậ ộ ạ M t mã khóa công khai ậ
là m t d ng m t mã cho 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 bí m tậ
ướ ộ ặ ử ụ ậ tr c đó. Trong m t mã khóa công khai s d ng m t c p khóa là khóa công
ể khai/khóa riêng. Khóa công khai dùng đ mã hóa còn khóa riêng dùng đ ể
ả gi i mã
ố ớ ệ ố ề ể ọ ậ ế
Đi u quan tr ng đ i v i h th ng là không th tìm ra khóa bí m t n u
ỉ ế ch bi t khóa công khai
16
ậ Hình 2: M t mã khoá công khai
ử ụ ậ ậ 1.2.2. Các thu t toán s d ng trong m t mã khoá công khai
1.2.2.1. RSA
ậ Thu t toán RSA đ ượ Ron Rivest, Adi Shamir và Len Adleman mô tả c
ầ ệ ệ ọ ầ
l n đ u tiên vào năm 1977 t i ạ H c vi n Công ngh Massachusetts (MIT).
ậ RSA là m t ộ thu t toán mã hóa khóa công khai.
ệ ạ ậ ầ ớ ợ ữ Thu t toá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
ệ ử ụ ượ ử ụ mã trong vi c s d ng khóa công khai. RSA đang đ ậ
t b c c a lĩnh v c m t
ổ ế
c s d ng ph bi n
ươ ượ ề ệ ả ả ớ trong th ạ
ng m i đi n t ệ ử và đ c cho là đ m b o an toàn v i đi u ki n đ ộ
ủ ớ dài khóa đ l n.
ủ ệ ố ề ủ ự ấ ộ ọ Đ an toàn c a h th ng RSA d a trên 2 v n đ c a toán h c: bài toán
ừ ố ố ố phân tích ra th a s nguyên t các s nguyên l n ớ và bài toán RSA
ộ ự ệ ể ậ ố ơ RSA có t c đ th c hi n ch m h n đáng k so v i ớ DES và các thu tậ
ự ế ườ ử ụ ậ ộ toán mã hóa đ i x ng ố ứ khác. Trên th c t , ng i ta s d ng m t thu t toán
ả ầ ử ỉ ử ụ ố ứ ể mã hóa đ i x ng nào đó đ mã hóa văn b n c n g i và ch s d ng RSA đ ể
ể ả ườ ề ắ ớ ơ mã hóa khóa đ gi i mã (thông th ng khóa ng n h n nhi u so v i văn
b n).ả
ứ ổ
ượ ở 1.2.2.2.Ph
ươ
Ph ươ
ng th c trao đ i khoá Diffie Hellman
ứ
ng th c này đ c phát minh b i Whitfield Diffie và Matty Hellman
ở Standford.
ơ ồ ầ ả ộ
Đây là s đ khoá công khai đ u tiên. Tuy nhiên, đó không ph i là m t
ổ ỉ ự ự
ơ ồ
.
s đ mã hoá khoá công khai th c s , mà ch dùng cho trao đ i khóa
ậ ượ ổ ằ ạ Các khoá bí m t đ ử ụ
c trao đ i b ng cách s d ng các tr m trung gian
ậ ươ ậ ượ riêng tin c y. Ph ng pháp này cho phép các khoá bí m t đ ề
c truy n an
17
ườ ả ậ toàn thông qua các môi tr ng không b o m t.
ả ủ ự ệ ổ Trao đ i khoá DiffieHemall d a trên tính hi u qu c a bài toán logarit
ờ ạ
r i r c
ậ ủ ằ ở ỗ ả ổ Tính b o m t c a trao đ i khoá DiffieHellman n m ch : tính hàm mũ
ộ ố ủ ố ờ ạ ư ễ modulo c a m t s nguyên t là khá d dàng nh ng tính logarit r i r c là
ấ
r t khó
ữ ố
1.3. Ch ký s
ộ ữ ứ ụ ủ ữ ố ậ
M t trong nh ng ng d ng c a m t mã khóa công khai là ch ký s .
ữ ệ ữ ầ ố ượ ộ
Ch ký s là m t ph n d li u đ ớ ả
c đính kèm v i b n tin, dùng đ ể
ạ ậ ự ườ ử ữ ệ ủ ả ử ụ nh n d ng và xác th c ng
ườ ử ử ụ ể ạ ề i g i và d li u c a b n tin, s d ng mã hoá
ộ ả
ộ
i g i s d ng hàm hash m t chi u đ t o ra m t b n khoá công khai. Ng
ừ ữ ệ ủ ườ ử ẽ ộ
mã hash có đ dài 32 bit t ả
d li u c a b n tin. Sau đó, ng
ủ ả ằ ườ ử hoá b n mã hash đó(hashcode) b ng khoá riêng c a ng i g i s mã
ườ
i i g i. Ng
ậ ẽ ạ ừ ữ ệ ả ả nh n s tính toán l i mã hash đó t d li u đó và gi i mã b n mã hash đó
ủ ườ ử ế ố ằ
b ng khoá công khai c a ng i g i. N u hai mã hash đó gi ng nhau, thì
ườ ị ử ổ ắ ằ ể ắ ậ ng ữ ệ
ữ ệ
i nh n có th ch c ch n r ng d li u đó không b s a đ i và d li u
ủ đó đúng là c a ng ườ ử
i g i
1.3.1.Quá trình ký
ầ ượ ề ở ộ Đ u tiên, thông báo đ c tính toán b i hàm băm m t chi u , hàm này s ẽ
ả ề ộ ả ượ tính toán thông báo và tr v m t b n tóm l c thông báo (message digest),
ộ ả ằ ượ ề ả ả
hàm băm m t chi u đ m b o r ng b n tóm l
ấ ỳ ộ ử ổ ẽ ấ ỏ ấ
c thông báo này là duy nh t
ổ
và b t k m t s a đ i dù nh nh t trên thông báo cũng s gây ra thay đ i
ắ ườ ử ẽ ủ ả
cho b n tóm t t này. Sau đó ng i g i s dùng khoá riêng c a mình mã hoá
ắ ộ ượ ữ ố ả
b n tóm t t này. N i dùng sau khi đ c mã hoá chính là ch ký s (digital
ủ ượ ườ ử ữ ố signature) c a thông báo đó đ ở
c ký b i ng i g i. Ch ký s này s đ ẽ ượ
c
ườ ậ ử ớ
g i t i cho ng ớ
i nh n kèm v i thông báo
18
.
Hình 3: Quá trình ký số
ố 1.3.2.Quá trình ki m tra ch ký s
ể
ậ ậ ườ ượ ợ ệ ủ ữ
i nh n nh n đ Khi ng ể ể
c thông báo, đ ki m tra tính h p l c a nó,
ườ ậ ẽ ủ ầ
đ u tiên ng i nh n s dùng khoá công khai c a ng ườ ử ể ả
i g i đ gi i mã ch ữ
ế ố ả ữ ả ượ ả ủ
ký s . K t qu c a quá trình gi ố
i mã ch ký s là b n tóm l c thông báo
ườ ử ạ ườ ề ể ậ ộ ủ
c a ng i g i t o ra. Sau đó, ng
ữ ồ ấ ộ ầ ủ ế ộ ắ t qua n i dung c a thông báo m t l n n a r i l y k t qu i nh n dùng hàm băm m t chi u đ tính
ả ả
toán b n tóm t
ớ ả ượ ừ ượ ả ở đem so sánh v i b n tóm l c thông báo v a đ c gi i mã
ả ố ể qu gi ng nhau thì quá trình ki m tra thành công. Ng ượ ạ
c l ế
ế
trên, n u k t
ể ế
i có th k t
ị ả ạ ậ ặ ộ ổ ị lu n đây là m t thông báo đã b gi m o ho c thông tin đã b thay đ i trên
19
ử quá trình g i đi.
ữ ể ố Hình 4: Quá trình ki m tra ch ký s
1.4. Hàm hash
ệ
1.4.1.Khái ni m hàm hash
ư ề ộ ộ
Hàm hash (hash function) là hàm m t chi u mà khi ta đ a m t kh i d
ấ ỳ ẽ ạ ệ ộ ỗ ộ ộ li u có đ dài b t k qua hàm này thì s t o ra m t chu i bít có đ dài c ố ữ
ố
ở ầ ả ở ầ ế ả ọ ượ ị
đ nh đ u ra. K t qu đ u ra g i là b n tóm l c thông báo (message
digest)
ể ả ẹ ả ự
Hash có th đ m b o tính toàn v n và xác th c
ể ượ ậ ượ ở ạ ữ ệ ầ Thu t toán hash không th đ ị
c d ch ng c tr l i d li u ban đ u vì
ề ậ ộ ậ ượ ọ
v y đ c g i là thu t toán mã hoá m t chi u
ượ c thông báo
1.4.2. Tóm l
ả ượ ượ ố ủ ả ấ ộ B n tóm l c thông báo đ c coi là m t “d u vân tay” s c a b n tin.
ả ượ ượ ạ ừ ữ ệ ủ ả B n tóm l c thông báo đ c t o ra t hàm hash trên d li u c a b n tin.
ậ ượ ể ọ Thu t toán tóm l ặ
c thông báo có hai đ c đi m quan tr ng
ư ư ư ầ ầ ầ ạ Đ u vào nh nhau thì luôn luôn t o ra đ u ra nh nhau nh ng đ u vào
20
ể ờ ạ ư ầ khác nhau thì có th không bao gi t o ra đ u ra nh nhau
ị ượ ả ậ ự ừ ả ượ ể
Không th xác đ nh đ c b n tin th t s t b n tóm l c thông báo
ả ượ ượ ử ụ ả ằ ữ ệ ể ả B n tóm l c thông báo đ ả
c s d ng đ đ m b o r ng d li u b n
ề ổ ố ị tin không b thay đ i trong su t quá trình truy n
ả ượ ượ ủ ằ B n tóm l c thông báo đ c mã hoá b ng khoá riêng c a ng ườ ử
i g i
ữ ố ể ạ
đ t o nên ch ký s
ƯƠ
Ổ
Ề
CH
NG II: T NG QUAN V PKI VÀ CA
ử ể ị 2.1. L ch s phát tri n PKI
ố Vi c ệ Diffie, Hellman, Rivest, Shamir, và Adleman công b công trình
ứ ậ ậ nghiên c u v ổ
ề trao đ i khóa an toàn và thu t toán m t mã hóa khóa công
ứ ổ ổ
ệ ử ố ể ủ ệ ố ớ ự ề ậ khai vào năm 1976 đã làm thay đ i hoàn toàn cách th c trao đ i thông tin
ộ m t. Cùng v i s phát tri n c a các h th ng truy n thông đi n t t c đ
ệ ố ướ ề ầ ổ cao (Internet và các h th ng tr c nó), nhu c u v trao đ i thông tin bí
ậ ở ấ ế ữ ệ ộ m t tr nên c p thi ầ
t. Thêm vào đó m t yêu c u n a phát sinh là vi c xác
ữ ủ ạ ị ườ ậ ị
đ nh đ nh d ng c a nh ng ng
ưở ề ệ ạ ị ượ ườ ứ ự ớ t ắ
ng v vi c g n đ nh d ng ng i tham gia vào quá trình thông tin. Vì v y ý
ệ i dùng v i ch ng th c đ ả
c b o v
ậ ỹ ượ ể ạ ộ ậ
ằ
b ng các k thu t m t mã đã đ ẽ
c phát tri n m t cách m nh m .
ỹ ớ ượ ử ụ
Nhi u ề giao th cứ s d ng các k thu t ậ
ậ m t mã m i đã đ ể
c phát tri n
ớ ự ờ và phân tích. Cùng v i s ra đ i và ph bi n c a
ề ầ ườ ử ụ ở nhu c u v thông tin an toàn và xác th c ng ổ ế ủ World Wide Web, nh ngữ
ấ
ự
i s d ng càng tr nên c p
ỉ ế ầ ứ ươ ụ t. Ch tính riêng các nhu c u ng d ng cho ng m i th
ơ ở ữ ệ ữ ệ ậ ằ thi
đi n tệ ử hay truy c p nh ng c s d li u b ng trình duy t web) cũng đã đ ạ (nh ư giao d chị
ủ
ự ể ẫ ộ ấ
h p d n các nhà phát tri n lĩnh v c này. Taher ElGamal và các c ng s t ự ạ
i
ứ ể ế ậ Netscape đã phát tri n giao th c SSL trong đó bao g m ồ thi t l p khóa , xác
ế ế ượ ạ ụ ụ ể th cự máy chủ. Sau đó, các thi t ch PKI đ ầ
c t o ra đ ph c v nhu c u
21
ề truy n thông an toàn.
ỳ ọ ứ ẹ ớ Các nhà doanh nghi pệ k v ng vào m t ộ th tr ị ườ h a h n m i đã ng
ậ ặ ự ớ ề ắ ầ ữ ậ ộ
ộ ự ủ ể ự ề thành l p nh ng công ty ho c d án m i v PKI và b t đ u v n đ ng các
ủ
chính ph đ hình thành nên khung pháp lý v lĩnh v c này. M t d án c a
ứ ổ ấ ả ề ộ
ể ả ề ậ ữ
American Bar Association đã xu t b n m t nghiên c u t ng quát v nh ng
ộ
ấ
v n đ pháp lý có th n y sinh khi v n hành PKI .Không lâu sau đó, m t
ể ầ vài ti u bang c a ữ
ủ Hoa kỳ mà đi đ u là Utah (năm 1995) đã thông qua nh ng
ề ợ ệ ầ ả ị ườ ự ậ
d lu t và quy đ nh đ u tiên. Các nhóm b o v quy n l i ng i tiêu dùng
ề ệ ặ ấ ư ệ ề ề ả
thì đ t ra các v n đ v b o v quy n riêng t và các trách nhi m pháp lý.
ị ượ ạ ậ
Tuy nhiên, các lu t và quy đ nh đã đ c thông qua l ấ
ố
i không th ng nh t
ế ớ ề ỹ ữ ậ ậ trên th gi i. Thêm vào đó là nh ng khó khăn v k thu t và v n hành
ớ ỳ ọ ơ ấ ự ệ ệ ề ế khi n cho vi c th c hi n PKI khó khăn h n r t nhi u so v i k v ng ban
đ u.ầ
ế ỷ ể ạ ờ ườ ậ ằ ậ ỹ ầ
T i th i đi m đ u th k 21, ng ậ
i ta nh n ra r ng các k thu t m t
ứ ấ ư ượ ự ệ mã cũng nh các quy trình/giao th c r t khó đ c th c hi n chính xác và
ệ ạ ẩ ư ứ ượ ề ầ các tiêu chu n hi n t i ch a đáp ng đ c các yêu c u đ ra.
ị ườ ồ ạ ể Th tr ự ự
ng PKI th c s đã t n t
ượ ừ ữ ủ ữ ậ ỷ quy mô đã đ ỳ ọ
c k v ng t ả ớ
ư
i và phát tri n nh ng không ph i v i
ư
nh ng năm gi a c a th p k 1990. PKI ch a
ả ộ ố ấ ề ượ ỳ ọ gi i quy t đ c ữ
c k v ng. Nh ng PKI thành
ế ượ m t s v n đ mà nó đ
ấ ớ ủ ự ệ ả i nay là các phiên b n do các chính ph th c hi n công nh t t
ỗ ự ữ ệ ẫ ớ ầ ư ượ T i nay, nh ng n l c hoàn thi n PKI v n đang đ c đ u t
ệ ờ ẩ ầ ể ệ ự ẩ ưở và thúc
ả
ng tuy t v i này, các tiêu chu n c n ph i đ y. Và đ hi n th c hoá ý t
ượ ể ở ứ ồ ộ đ ứ
c nghiên c u phát tri n
ự ế ề ầ ả các m c đ khác nhau bao g m: mã hoá,
ế
ấ
truy n thông và liên k t, xác th c, c p phép và qu n lý. Tuy nhiên, h u h t
ừ ưở ở ồ ệ
các công ngh hình thành t ý t ộ ố
ng này đã tr nên chín mu i và m t s đã
ướ ề ạ ậ ạ ẩ ả b c vào giai đo n "lão hoá". Nhi u chu n b o m t trên m ng Internet,
ạ ẳ ch ng h n Secure Sockets Layer/Transport Layer Security (SSL/TLS) và
22
ả ủ ế ế Virtual Private Network (VPN), chính là k t qu c a sáng ki n PKI
ứ ể ộ Quá trình nghiên c u và phát tri n PKI là m t quá trình lâu dài và cùng
ủ ứ ấ ậ ộ ườ ộ ớ
v i nó, m c đ ch p nh n c a ng
ư ớ ề ạ ậ ẩ ố ộ ch m ch p. Cũng gi ng nh v i nhi u tiêu chu n công c ng khác, t i dùng cũng tăng lên m t cách khá
ỷ ệ
l
ườ ấ ậ ẽ ẩ ở ỉ ng
ự ự ủ ượ ứ ụ ả ả ứ ệ
i dùng ch p nh n s tăng lên ch khi các chu n đó tr nên hoàn thi n,
ệ
c kh năng th c s c a nó, và kh năng ng d ng và hi n ch ng minh đ
ả ề ự ự ủ ệ ả ạ ẫ th c hoá c a nó là kh thi (c v khía c nh chi phí l n th c hi n).
ệ 2.2.Tình hình PKI t
ướ ở ệ ộ ố ổ ứ ạ
t Nam
i Vi
ầ ử ụ
c nhu c u s d ng PKI, Tr Vi t nam, có m t s t ể
ch c đã tri n
ạ ộ ụ ứ ự ự ấ ị
ơ ế ướ ự ủ ử ệ khai ho t đ ng cung c p d ch v ch ng th c trong lĩnh v c này. Trong khu
ạ ạ
i h c Ban C Y u chính ph đã xây d ng và th nghi m t ự
v c Nhà n
ộ ố ộ ủ ở ỏ ầ
t ng Trung Tâm c a m t s B , ngành ờ ử ụ
ồ
quy mô nh , đ ng th i s d ng
ộ ố ị ụ ả ậ ướ trong m t s d ch v b o m t và an toàn . Ngân hàng Nhà n ộ
c, B Công
ươ ổ ứ ử ứ ệ Th ng cũng đã t ạ
ch c th nghi m các CA chuyên dùng đáp ng ho t
ệ ụ ộ ộ ộ
đ ng nghi p v n i b
ự ướ ổ ứ Khu v ngoài nhà n ư
c nh các t
ệ ử ứ ộ ố ổ ứ ự
ch ng th c đi n t cho m t s t ấ
ch c VASC, VDC đã cung c p
ầ ử ch c và cá nhân. Nhìn chung, nhu c u s
ở ệ ể ệ ụ
d ng PKI Vi t Nam ngày càng tăng , tuy nhiên vi c tri n khai th c t ự ế
ệ ạ ư ề hi n t i ch a nhi u
ơ ế ủ ậ Ở ệ
Vi t Nam, năm 2007 Ban C Y u Chính ph thành l p Trung tâm
ệ ử ứ ả ấ ớ ự
Ch ng th c đi n t ứ
chuyên dùng v i các ch c năng cung c p , qu n lý
ụ ứ ư ố ự ữ ứ ơ ố ị ộ
ch ng th s và các d ch v ch ng th c ch ký s cho các c quan thu c
ị ệ ố
h th ng Chính tr
ề ậ ộ
ụ ứ ụ ự ữ ệ ố ố ứ
Năm 2008, B Thông tin Truy n thông đã thành l p Trung tâm ch ng
ổ th c ch ký s qu c gia và giao C c ng d ng Công ngh thông tin t
ả ứ ự ố ụ ứ ấ ấ ị
23
ự
ch c, qu n lý, c p phép và cung c p d ch v ch ng th c s cho khu v c
công c ngộ
ệ ệ Hình 5:Mô hình PKI Vi t Nam hi n nay
ụ ứ ữ ự ệ ể ị
Nhìn chung vi c tri n khai d ch v ch ng th c ch ký s ố ở ướ
n c ta còn
ị ố ộ ụ ư ể ậ ạ ị ị ch m, ch a theo k p t c đ phát tri n m ng CNTT và các d ch v giao d ch
ệ ử ế ớ đi n t trên th gi i
ơ ở ạ ầ ữ ầ ộ C s h t ng khoá công khai (PKI) là m t trong nh ng nhu c u thi ế
t
ủ ươ ụ ứ ư ề ế ầ ấ ế
y u c a t ng lai. Nh ng v n đ là h u h t các ng d ng có th đ ể ượ
c
ư ứ ả ằ ỉ ạ ấ ắ ề ả
đ m b o an toàn b ng ch ng ch và khoá nh ng l i r t khó và đ t đ cài
ề ầ ậ ạ ặ
đ t PKI, lý dó là ph n m m trung tâm tin c y có tính linh ho t thì l
ở ầ ụ ủ ể ẩ ả ắ
đ t. Đây là đi m kh i đ u c a OpenCA. M c đích là s n ph m c a h ạ ấ
i r t
ệ
ủ
ở ể ỗ ợ ộ ậ ố ồ ồ ớ ả th ng trung tâm tin c y ngu n m đ h tr c ng đ ng v i các gi i pháp
ợ ướ ươ ố ẻ
t t, r (chi phí h p lý) và mang tính xu h ng trong t ng lai
ự ượ ắ ầ ưở D án OpenCA đ c b t đ u vào năm 1998. Ý t
ượ ể ở ồ ầ ủ ự đ c phát tri n b i Massimiliano Pala. Mã ngu n ban đ u c a d án đ ầ
ng OpenCA ban đ u
ượ
c
ế ớ ủ ề ấ ạ ầ ả ầ vi t v i đo n script r t dài. Khi phiên b n đ u tiên c a ph n m m đ ượ
c
ứ ự ự ề ẫ ấ xây d ng, thì d án OpenSSL v n có tên là SSLeay . R t nhi u ch c năng
24
ỗ ữ ề ị ỏ ứ ề ẫ
v n còn l i và nhi u th khác n a đ u đang b b qua
ệ ề ặ ầ ả ộ ỉ ạ
ầ ấ ơ
Vi c cài đ t ph n m m ban đ u r t đ n gi n và ch có m t vài đo n
ở ạ ể ề ầ ặ ạ ỉ ầ script kh i t o CA. Đ cài đ t nhanh chóng ph n m m, b n ch c n gi
ừ ể ể ệ ả nén gói đó, dùng l nh cd đ chuy n vào gói v a gi ả
i
ử ụ
i nén đó và s d ng
ẽ ế ạ ạ ặ ầ
ệ
l nh “make install”, đo n script sau đó s ch y và ti n hành cài đ t ph n
ứ ề ả ạ ơ ỉ m m CA đ n gi n và t o ra ch ng ch CA
ộ ạ ấ ẽ ượ ệ ạ ặ M t lo t các đo n script đ
ư ậ ủ ự ế ầ ầ ả ặ ơ ấ
c cung c p s giúp cho vi c cài đ t và c u
ư
hình cho h u h t các ph n c a d án. M c dù đ n gi n nh v y, nh ng
ả ề ớ ộ ề ấ ấ ồ ườ gi i pháp này gây ra r t nhi u v n đ v i c ng đ ng ng
ừ ệ ả ạ ầ ầ ộ ủ ầ ề ả
ấ
v n đ n y sinh t vi c nhu c u c n ph i t o ra m t gói đ y đ và t ở
i dùng b i vì các
ố
t
ấ ơ ủ ứ ề ầ ả ả ơ
h n. Phiên b n đ u tiên c a OpenCA r t đ n gi n, nhi u ch c năng đ ượ
c
ủ ế ỉ ượ ự ể ấ ứ ỉ xây d ng ch y u ch đ c dùng đ c p phát ch ng ch , CRL và các
ươ ụ ứ ệ ặ ơ ơ ph ng th c cài đ t thì khá đ n s , không có tính ti n d ng cho b t k ấ ỳ
ể ươ ệ ấ ạ ỉ ớ ti n ích c u hình nào , đo n script ch có th t ng thích v i bash
ế ượ ề ơ ổ ả
Các phiên b n ti p theo đ c b sung thêm nhi u tính năng h n cho d ự
ủ ệ ả ồ
án và do đó phiên b n 0.109 đã bao g m giao di n cho server c a CA, RA
ừ ắ ầ ừ ự ả ầ và Pub. T lúc b t đ u d án và t
ớ ự ủ ộ ượ ự ồ ộ
phát hành phiên b n đ u tiên, đã có m t
ể
ng l n s tham gia c a c ng đ ng Internet đóng góp vào s phát tri n l
ủ ự
c a d án
ệ ị ề 2.3. Các đ nh nghĩa v PKI và các khái ni m có liên quan
2.3.1. Các đ nh nghĩa v PKI
ề ề ề
ị ị
ấ ể ể
PKI có r t nhi u đ nh nghĩa. Đ hi u sâu và rõ v PKI, em xin phép
ượ ư ề ị đ c đ a ra các đ nh nghĩa v PKI
ị Đ nh nghĩa 1:
ơ ở ủ ộ ạ ầ ụ ủ ắ ộ ị
ử ụ ự ệ ệ ặ ằ ỹ ượ PKI là c s c a m t h t ng an ninh r ng kh p, các d ch v c a PKI
ậ
c cài đ t và th c hi n b ng cách s d ng các khái ni m và k thu t đ
ậ ủ
c a m t mã khoá công khai
25
ị Đ nh nghĩa 2
ộ ậ ứ ề ầ ầ ợ ườ PKI là m t t p h p ph n c ng, ph n m m, con ng i, các chính sách
ủ ụ ầ ế ể ạ ữ ư ả ồ ố và các th t c c n thi t đ t o, qu n lý, l u tr , phân ph i và thu h i các
ứ ậ ỉ ự
ch ng ch khoá công khai d a trên m t mã khoá công khai
ị Đ nh nghĩa 3
ạ ầ ậ Trong m t mã khoá công khai, c s ơ ở h t ng khóa công khai là m t cộ ơ
ế ể ứ ấ ộ ị ự đ nh danh
ơ ế ch đ cho m t bên th 3 (CA) cung c p và xác th c
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 ộ ặ khóa công khai/khóa riêng. Các
ườ ượ ặ ạ ự ề ầ ở quá trình này th ng đ ệ ố m t c p
h 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 pân ph i trong ch ng ch khoá công khai
ạ ầ ườ ượ Khái ni m ệ h t ng khóa công khai ể ỉ
c dùng đ ch toàn b h ng đ th
ự ứ ế ề ẩ ồ ố ơ ộ ệ
ồ
th ng bao g m th m quy n ch ng th c cùng các c ch liên quan đ ng
ộ ệ ử ụ ờ ớ ậ ậ th i v i toàn b vi c s d ng các thu t toán m t mã hóa khóa công khai
ổ
trong trao đ i thông tin
ệ 2.3.2. Các khái ni m liên quan trong PKI
ứ ỉ 2.3.2.1.Ch ng ch
ệ ử ụ ố ế ợ ữ ứ ộ ỉ ớ
Ch ng ch là m t tài li u s d ng ch ký s k t h p khoá công khai v i
ộ ị ư ườ ự ể ộ ổ ứ ặ ộ m t đ nh danh th c th (nh ng i, m t t ủ
ch c ho c m t máy ch )
ứ ấ ỳ ộ ề ơ ả ứ ậ ỉ Ch ng ch không ch a b t k m t thông tin bí m t nào. V c b n, nó
ầ ồ bao g m các thành ph n sau
ỉ ứ ứ ầ ế ư ữ
Ch ng ch ch a nh ng thông tin c n thi t nh khoá công khai, ch th ủ ể
ườ ở ữ ộ ố ứ ấ ỉ (ng i s h u) , bên c p ch ng ch và m t s thông tin khác. Tính h p l
ố ủ ượ ứ ữ ằ ấ ả ả ợ ệ
ỉ
c đ m b o b ng ch ký s c a bên c p ch ng ch . ủ
c a các thông tin đ
ườ ỉ ướ ứ ố ế ẽ ể ữ Ng ử ụ
i dùng mu n s d ng ch ng ch tr c h t s ki m tra ch ký s ố
ỉ ế ợ ệ ữ ứ ể ử ụ ứ ỉ trong ch ng ch . N u ch ký đó h p l thì có th s d ng ch ng ch đó
26
ứ ộ ỉ ạ
M t vài lo i ch ng ch
ứ ỉ Ch ng ch khoá công khai X.509
ứ ơ ỉ ả
Ch ng ch khoá công khai đ n gi n (Simple Public Key Certificate
SPKC)
ứ ỉ Ch ng ch Pretty Good Privacy (PGP)
ứ ộ ỉ Ch ng ch thu c tính (Attribute Certificate AC)
ấ ả ứ ề ạ ạ ấ ỉ ệ T t c các lo i ch ng ch này đ u có c u trúc d ng riêng bi ệ
t. Hi n nay
ứ ỉ ượ ử ụ ổ ế ế ầ ch ng ch khoá công khai X.509 đ c s d ng ph bi n trong h u h t các
ệ ố
h th ng PKI.
ứ ỉ Ch ng ch X.509
ứ ượ ố ế ệ ộ ỉ
Ch ng ch X.509 đ ễ
c Hi p h i vi n thông qu c t ầ
ư
(ITU) đ a ra l n
ầ
đ u tiên năm 1998
ữ ứ ầ ầ ồ ỉ ườ ầ
Ch ng ch này g m 2 ph n. Ph n đ u là nh ng tr ơ ả ầ
ng c b n c n thi
ộ ố ứ ứ ả ầ ầ ỉ ườ ứ
ph i có trong ch ng ch , ph n th hai là ph n ch a m t s các tr ế
t
ụ
ng ph ,
ọ ườ ở ộ ườ ườ ượ hay còn g i là tr ng m r ng. Các tr ở ộ
ng m r ng th ng đ c dùng đ ể
ủ ệ ố ứ ữ ầ ổ ị xác đ nh và đáp ng nh ng yêu c u b sung c a h th ng
ả ủ ứ ỉ Version: Phiên b n c a ch ng ch
ứ ủ ố ỉ ị ấ ủ
Serial Number: S serial c a ch ng ch , là đ nh danh duy nh t c a
ứ ị ỉ ch ng ch , có giá tr nguyên
ữ ậ ậ ỉ ủ
Signature Algorithm: Thu t toán c a ch ký : Ch ra thu t toán CA s ử
ứ ể ỉ
ụ
d ng đ ký ch ng ch
ủ ể ứ ỉ
Issuer: Tên ch th phát hành ch ng ch
ờ ạ ủ ứ ỉ Valid from – Valid to: Th i h n c a ch ng ch
27
ủ ể ủ ứ ỉ
Subject: Tên ch th c a ch ng ch
ủ ở ữ ủ ứ ỉ Public Key: Khoá công khai c a ch s h u ch ng ch
ứ ạ ỉ Hình 6: Khuôn d ng ch ng ch X.509v3
ỉ
ứ ế ợ ậ ạ ở ớ ứ
2.3.2.2.Kho ch ng ch
ỉ ượ ấ
Ch ng ch đ ủ
c c p b i CA k t h p khoá công khai v i nh n d ng c a
ự ự ể ế ể ả ị ị th c th B. Tuy nhiên n u th c th A không có kh năng xác đ nh v trí
ứ ệ ễ ả ộ ỉ ơ
ch ng ch này m t cách d dàng thì anh ta cũng không có hi u qu gì h n
ư ượ ạ ứ ệ ớ ỉ so v i vi c ch ng ch này ch a đ c t o ra
ứ ế ả ộ
ả ượ ặ ở ị ẻ ề ể ị ị ỉ ự
Do đó, ph i có m t kho ch ng ch tr c tuy n (online repository), quy mô
ứ
v trí mà A có th xác đ nh v trí ch ng ớ
l n và m m d o và ph i đ c đ t
ề ầ ỉ ể
ch mà anh ta c n đ truy n thông an toàn
ớ ẽ ở ứ ế ỉ
Môt PKI quy mô l n s tr nên vô ích n u không có kho ch ng ch
ỉ
2.3.2.3.H y b ch ng ch
ỉ ắ ủ ỏ ứ
ứ ế ạ ậ ớ ườ CA ký ch ng ch g n k t khóa công khai v i nh n d ng ng i dùng.
28
ườ ự ế ự ệ ẽ ả ỏ Tuy nhiên trong môi tr ng th c t , các s ki n s có lúc đòi h i ph i phá
ế ặ ỏ ắ ự ế ậ ớ ạ
ỏ ự ắ
b s g n k t này. S phá b g n k t c p khoá công khai v i nh n d ng
ự ể ể ộ ủ
c a m t th c th có th là do
ự ạ ậ ổ S thay đ i nh n d ng
ậ ị Khoá bí m t b hacker khám phá ra
ứ ể ữ ả ầ ộ ườ Do đó c n ph i có m t cách th c đ thông báo cho nh ng ng i dùng
ạ ằ ượ ấ còn l ủ ị
i r ng khoá công khai c a đ nh danh này không còn đ
ế ả ơ ượ ứ ọ ữ
n a. C ch c nh báo này trong PKI đ ỷ ỏ
c g i là hu b ch ng ch ậ
c ch p nh n
ỉ
(Certificate Revocation)
ư
ườ ộ ỉ ệ ạ ộ ự
2.3.2.4. Sao l u và d phòng khóa
ấ ỳ ộ
Trong b t k m t môi tr ng PKI đang ho t đ ng , m t t l
ề ử ụ ể ị ấ ậ ủ ộ ườ
ng
i
ờ ạ
dùng có th b m t quy n s d ng khoá bí m t c a mình theo m t th i h n
ụ ỗ ể ặ ỗ ố ị
c đ nh nào đó (ví d m i tháng ho c m i năm ). Nguyên nhân có th là do
ậ ủ ậ ẩ ườ ề ặ ậ ẫ Quên m t kh u: Khoá bí m t c a ng i dùng v n còn v m t v t lý
ư ể nh ng không th truy c p đ ậ ượ
c
ươ ị ỏ ị ỏ ụ ứ ư ẻ ệ ặ Ph ng ti n b h ng hóc: Ví d nh đĩa c ng b h ng ho c th thông
ị minh b gãy
ế ủ ự ươ ệ S thay th c a ph ệ ề
ng ti n: H đi u hành đ ượ ả ạ
c t i l i (ghi đè lên các
ấ ờ ỷ ụ ệ ặ ộ ơ ượ gi y t ộ
u nhi m c c b ) ho c m t mô hình máy tính cũ h n đ c thay
ớ ơ ế ằ ấ ờ ỷ ộ th b ng m t mô hình máy tính m i h n và các gi y t ệ
u nhi m không
ượ ể ướ ị ạ đ c chuy n tr c khi đĩa cũ b format l i
ả ậ ể ả ự ư ự ệ Gi i pháp: Th c hi n sao l u và d phòng khoá bí m t đ gi i mã.
ư ự ệ ầ ế ạ ộ Vi c sao l u và d phòng khoá là mang tính c n thi ầ
t, nó t o nên m t ph n
29
ở ộ ị m r ng trong đ nh nghĩa PKI
ậ
2.3.2.5.C p nh t khóa t
ứ ậ
ỉ ự ộ
đ ng
ờ ộ ữ ứ ạ ố ỉ
ế ằ ỉ ớ ủ ụ ượ ứ ộ ị ế ạ
M t ch ng ch thì có th i gian s ng h u h n. Khi ch ng ch b h t h n
ậ
ọ
c g i là c p c thay th b ng m t ch ng ch m i. Th t c này đ ẽ ượ
s đ
ứ ậ ậ ỉ ậ
nh t khoá hay c p nh t ch ng ch
ề ặ ấ ườ ẽ ườ ấ ệ ấ ả V n đ đ t ra là: Ng i dùng PKI s th ng c m th y b t ti n khi
ả ậ ọ ẽ ườ ủ ậ ph i c p nh t khoá th công và thông th
ủ ứ ệ ậ ặ ậ ỉ ớ ờ ạ
ng thì h s không nh th i h n
ế ạ
ự
ế ạ
h t h n c a ch ng ch ho c khi th c hi n c p nh t khoá khi đã h t h n
ườ ứ ạ ủ ụ ề ặ ả th ơ
ng g p ph i nhi u th t c ph c t p h n
ả ứ ự ặ ộ Gi i pháp: Xây d ng PKI theo cách mà toàn b khoá ho c ch ng ch s ỉ ẽ
ượ ậ ậ ự ộ ự ệ ầ đ c c p nh t hoàn toàn t ủ
đ ng mà không c n có s can thi p nào c a
ườ ng i dùng
ỉ ủ ứ ỗ ườ ử ụ ượ ế ộ M i khi ch ng ch c a ng i s d ng đ ụ
c dùng đ n cho m t m c
ấ ỳ ợ ệ ủ ẽ ượ ờ ế ạ ể ắ đích b t k , th i gian h p l c a nó s đ c ki m tra. Khi s p h t h n thì
ỉ ớ ẽ ượ ạ ỉ ẽ ễ ạ ộ ứ ứ ớ ho t đ ng làm m i ch ng ch s di n ra, ch ng ch m i s đ
ế ứ ủ ượ ể ị ỉ ẽ ượ ự ụ
s đ c s d ng đ thay th ch ng ch cũ và giao d ch c a đ c t o ra và
ầ
c yêu c u
ườ ễ ủ
c a ng ẽ ế ụ
i dùng s ti p t c di n ra
ậ ậ ở ự ộ ố ố ố ớ B i vì quá trình c p nh t khoá t đ ng là nhân t s ng còn đ i v i PKI
ề ặ ộ ườ ạ ầ ộ ị ho c đ ng trong nhi u môi tr ng, do đó, nó t o nên m t ph n đ nh nghĩa
ủ
c a PKI
ị
2.3.2.6.L ch s khóa
ử
ố ử ụ ộ ườ ể Trong su t quá trình s d ng PKI, m t ng ề
i dùng có th có nhi u
ỉ ệ ạ ứ ứ ộ ỉ ứ ậ ợ ấ
ch ng ch cũ và có ít nh t m t ch ng ch hi n t i. T p h p các ch ng ch ỉ
ậ ươ ớ ượ ử ọ ị này v i các khoá bí m t t ứ
ng ng đ c g i là l ch s khoá (key history)
ứ ọ ị ỉ
ử
hay còn g i là l chs khoá và ch ng ch
ộ ị ử ệ ế ấ ọ ở Vi c duy trì toàn b l ch s khoá này r t quan tr ng b i vì n u gi ả ử
s
ự ự ể ể ả ả ờ th c th A mã hoá b n tin cho th c th B trong kho ng th i gian là 5 năm
30
ể ả ự ể ệ ạ ủ ằ ậ thì th c th B không th gi i mã b ng khoá bí m t hi n t i c a mình
ư ự ậ ả ượ ử ả ậ ố ị Cũng gi ng nh s c p nh t khoá, qu n lý l ch s khoá ph i đ ự
c th c
ệ ự ộ ả ắ ầ hi n và duy trì t đ ng trong PKI. PKI c n ph i n m gi ữ ượ ấ ả
c t t c các đ
ự ư ự ử ệ ị ạ ị ợ khoá trong l ch s , th c hi n sao l u và d phòng t i v trí thích h p
ử ấ ạ ầ ộ ở ọ ị ở ộ
Duy trì l ch s khoá r t quan tr ng b i vì nó t o ra m t ph n m r ng
ượ ị trong PKI đ c đ nh nghĩa
ự 2.3.2.7.Ch ng th c chéo
ề ứ
ặ ấ
Đ t v n đ :
ườ ự ế ả ụ ỉ Trong môi tr ng th c t
ạ ộ ự ế ạ ộ ượ ề ể ấ ho t đ ng mà th c t ấ
ộ
, không ph i ch có m t PKI toàn c c duy nh t
ụ
c tri n khai và ho t đ ng, ph c có r t nhi u PKI đ
ườ ồ ộ ườ ụ
v trong các môi tr ng và c ng đ ng ng i dùng khác nhau
ế ớ ạ ộ ố ợ ẽ ả ấ Khi các PKI ho t đ ng ph i h p, liên k t v i nhau, s n y sinh v n đ ề
ể ả ữ ề ế ả ộ ồ là làm th nào đ đ m b o an toàn truy n thông gi a các c ng đ ng ng ườ
i
dùng trong các PKI?
ả Gi i pháp
ự ứ ệ ả ườ Khái ni m ch ng th c chéo đã n y sinh trong môi tr ng PKI đ gi ể ả
i
ệ ế ằ ầ ạ ố ưở ữ quy t nhu c u này nh m t o ra m i quan h tin t ng gi a các PKI không
ướ ệ ớ
có quan h v i nhau tr c đó
ự ứ ế ơ ườ ủ ộ ộ Ch ng th c chéo là c ch cho phép ng
ợ ệ ậ ỉ ủ ứ ườ PKI này xác nh n tính h p l ch ng ch c a ng ồ
i dùng c a m t c ng đ ng
ộ
i dùng khác trong m t
ồ ộ
c ng đ ng PKI khác
ỗ ợ ố
2.3.2.8.H tr ch ng ch i b
ườ ố ỏ
ạ ộ ủ ỗ ộ ườ ủ Trong môi tr ng ho t đ ng c a PKI, m i hành đ ng c a ng
ớ ị ủ ế ọ ộ ườ ả luôn gán v i đ nh danh c a h . N u m t ng i dùng
ủ
ố
i dùng ký s văn b n c a
ườ ấ ằ ẳ ả ị mình, thì có nghĩa ng i dùng đó kh ng đ nh r ng văn b n đó xu t phát t ừ
31
phía mình
ả ằ ả ả ầ ườ ố ỏ ể PKI c n ph i đ m b o r ng ng i dùng đó không th ch i b trách
ệ ơ ế ệ ượ ọ ơ ế ỗ ợ ố
c g i là c ch h tr ch ng
ự
nhi m mà mình đã th c hi n. C ch này đ
ch i bố ỏ
ể ự ệ ượ ế ỗ ợ ơ ố ố ỏ ả ầ Đ th c hi n đ c c ch h tr
ậ ượ ứ ằ ộ ỹ ự ư ầ ấ
c p m t vài các b ng ch ng k thu t đ ch ng ch i b , PKI c n ph i cung
ồ
c yêu c u, nh là xác th c ngu n
ữ ệ ữ ệ ứ ờ ượ ự
ố
g c d li u và ch ng th c th i gian mà d li u đ c ký. Do đó, h tr ỗ ợ
ầ ủ ị ố ỏ ạ ở ộ ố ộ ch ng ch i b t o nên m t ph n c a đ nh nghĩa PKI m r ng
2.3.2.9.Tem th i gian
ộ ụ ố ỗ ợ ệ ọ ị ờ
ố
M t nhân t ố ỏ
quan tr ng trong vi c h tr các d ch v ch ng ch i b là
ờ ử ụ
s d ng tem th i gian an toàn (secure time stamping) trong PKI. Nghĩa là
ả ượ ờ ồ ị ờ ả ượ ậ ngu n th i gian ph i đ c tin c y và giá tr th i gian ph i đ ề
c truy n đi
ể ả ầ ộ ờ ồ ộ m t cách an toàn. Do đó c n ph i có m t ngu n th i gian có th tin t ưở
ng
ượ đ c cho t ấ ả ườ
t c ng i dùng trong PKI
ề ầ 2.3.2.10.Ph n m m phía Client
ủ ế Trong mô hình PKI, ki n trúc máy ch máy khách (serversoftware) thì
ẽ ự ụ ữ ệ ệ
các server s th c hi n nh ng nhi m v sau
ụ ứ ẽ ấ ị ỉ
CA s cung c p các d ch v ch ng ch
ỉ ẽ ư ứ ữ ỷ ỏ ứ ứ ỉ Kho ch ng ch s l u gi ỉ
các thông tin ch ng ch và hu b ch ng ch
ử ự ủ ư ẽ ộ ợ ị ả
Máy ch sao l u và d phòng s qu n lý l ch s khoá m t cách phù h p
ẽ ế ợ ủ ể ờ ờ Máy ch tem th i gian s k t h p các thông tin th i gian có th tin
ưở ượ ớ ệ ả t ng đ c v i các tài li u văn b n
ấ ỳ ề ể ự
ư ụ ư ệ ầ ị ệ
Tuy nhiên, server không th th c hi n b t k đi u gì cho các máy khách
ụ ủ
ế
n u nh máy khách không đ a ra các yêu c u d ch v . Do đó nhi m v c a
máy khách s làẽ
32
ụ ứ ả ư ầ ị ự
Máy khách ph i đ a ra yêu c u các d ch v ch ng th c
ử ứ ả ầ ỉ ỷ ỏ ứ
Máy khách ph i yêu c u ch ng ch và x lý các thông tin hu b ch ng
ỉ ch có liên quan
ả ế ị ử ả ế ầ ầ Máy khách ph i bi t l ch s khoá và ph i bi ậ
t khi nào c n yêu c u c p
ỷ ỏ ậ ặ
nh t khóa ho c hu b khoá
ả ế ầ ầ ả ờ Máy khách ph i bi t khi nào nó c n ph i yêu c u tem th i gian trên văn
b nả
ề ầ ầ ộ ế ế ủ ợ Ph n m m phía client là m t thành ph n thi ầ
t y u c a PKI tích h p đ y
ụ ượ ề ề ế ấ ị ầ
ủ
đ tính năng. N u không có ph n m m này, r t nhi u d ch v đ c cung
ệ ầ ở ả ư
ấ
c p b i PKI g n nh không có hi u qu
ụ ứ
ữ ườ ự ẫ ử ụ i tham gia xác th c l n nhau và s d ng thông
ừ ả 2.4. M c tiêu, ch c năng
PKI cho phép nh ng ng
ch ng ứ các tin t chỉ khóa công khai đ ể mã hóa và gi i mã thông tin trong
ệ ử ượ ễ ổ quá trình trao đ i. PKI cho phép các đi n t đ
ố ỏ ố ả
giao d chị
c di n ra đ m
ẫ
bí m tậ , toàn v nẹ xác th cự l n nhau và ch ng ch i b mà không ả
b o tính
ả ổ ầ
c n ph i trao đ i các thông tin m t t ậ ừ ướ
tr c.
ự ự ứ ị ể
Xác th c: Ch ng minh đ nh danh th c th
ả ằ ể ọ ậ ả ượ Bí m t: Đ m b o r ng không ai có th đ c đ c thông báo ngo i tr ạ ừ
ườ ng ậ
i nh n
ẹ ả ả ằ ườ ậ ậ ượ Toàn v n: Đ m b o r ng ng ẽ
i nh n s nh n đ c thông báo mà
ầ ị ổ ộ
không b thay đ i n i dung ban đ u
ố ỏ ứ ẽ ằ ố ơ ườ ế
Tính ch ng ch i b : C ch này s ch ng minh r ng ng ử
ậ
i nh n/g i
ự ự ử ậ đã th c s g i/nh n thông báo
ố ứ ố ứ ả ậ ụ ậ PKI t n d ng c m t mã đ i x ng và phi đ i v ng đ đ đ t đ ể ể ạ ượ
c
33
ơ ả ữ nh ng tính năng c b n trên
2.4.1. Xác th cự
ề ơ ả ứ ụ ự ạ ấ V c b n, tính xác th c cung c p 2 khía c nh ng d ng chính đó là
ố ữ ệ ự ể ồ ị ị
đ nh danh th c th và đ nh danh ngu n g c d li u
ự ị 2.4.1.1.Đ nh danh th c th
ể
ể ơ ị ể ị ự ự ể ả ị
ự ế ị ườ ể Đ nh danh th c th đ n gi n dùng đ đ nh danh th c th xác đ nh nào
ẽ ạ
ng s t o ự
, đ nh danh th c th thông th đó có liên quan. Do đó, trên th c t
ộ ế ượ ử ụ ể ự ệ ả ụ ể
ra m t k t qu c th mà sau đó đ ạ ộ
c s d ng đ th c hi n các ho t đ ng
ặ ề
khác ho c truy n thông khác
ự ể ồ ộ ị ố ố Đ nh danh th c th bao g m : M t nhân t ề
và nhi u nhân t
ể ứ ể ề ấ ố
ị
Có r t nhi u cách đ ch ng minh đ nh danh. Ta có th chia ra làm b n
ạ lo i sau
ườ ụ ẻ ặ ế ị ầ ứ Cái gì đó ng i dùng có (ví d th thông minh ho c thi t b ph n c ng)
ườ ế ụ ậ ẩ ặ Cái gì đó ng i dùng bi t (Ví d m t kh u ho c PIN)
ườ ặ ắ ớ ườ ụ ấ Cái gì đó là ng i dùng ho c g n v i ng i dùng (ví d d u vân tay
ạ ắ ặ ho c võng m c m t)
ườ ự ụ ệ ự Cái gì đó ng i dùng th c hi n (ví d gõ các ký t nào đó)
ự ượ ể ế ế ư ự ể ị Có hai ki u xác th c đ c bi t đ n nh là đ nh danh th c th , đó là xác
ự ụ ộ ự ừ th c c c b và xác th c t xa
ự ự ộ ể ớ ườ ụ ộ ầ ư ự ụ ộ
2.4.1.1.1.Xác th c c c b
ầ ủ
Xác th c ban đ u c a m t th c th t i môi tr ng c c b h u nh liên
ế ớ ườ ặ ố ị ư ậ ụ ẩ ự
quan tr c ti p t i ng i dùng. Ví d nh m t kh u ho c s đ nh danh cá
ả ượ ử ụ ể ậ ấ ậ ấ ạ nhân (PIN) ph i đ c nh p vào, s d ng d u v n tay đ nh n d ng..
2.4.1.1.2.Xác th c t
ự ủ ự ể ớ ườ ở ể ự ừ
xa
ộ
Xác th c c a m t th c th t i môi tr ng ặ
xa: Nghĩa là có th ho c
ế ớ ự ầ ườ ự ế ầ không c n liên quan tr c ti p t i ng i dùng. Trên th c t ế
, h u h t các h ệ
34
ự ừ ố ứ ạ ớ ườ th ng xác th c t xa ph c t p không hoàn toàn liên quan t i ng i dùng vì
ệ ệ ố ể ả ư ự ự ạ
ấ
r t khó đ b o v h th ng xác th c mà đ a ra các thông tin xác th c nh y
ặ ấ ư ậ ụ ề ẩ ộ ả
c m, ví d nh m t kh u ho c d u vân tay, và truy n trên m t kênh không
an toàn
ị
ố ữ ệ
ồ
2.4.1.2. Đ nh danh ngu n g c d li u
ố ữ ệ ẽ ị
ồ ị ự ể ộ ị Đ nh danh ngu n g c d li u s đ nh danh m t th c th xác đ nh nào đó
ồ ư ạ ộ ữ ệ ượ ư ị ố ủ
nh ngu n g c c a d li u đ
ậ ả ả ị ị c đ a ra. Ho t đ ng đ nh danh này không
ụ
ph i là đ nh danh cô l p, cũng không ph i hoàn toàn là đ nh danh cho m c
ạ ộ ự ệ đích th c hi n các ho t đ ng khác
ậ ả ụ ả ư ủ ữ ệ 2.4.2. Bí m tậ
ị D ch v bí m t đ m b o tính riêng t ể ọ
c a d li u. Không ai có th đ c
ượ ữ ệ ạ ừ ự ậ ượ ụ ể ậ ị đ c d li u ngo i tr th c th nh n. D ch v bí m t đ ầ
c yêu c u khi d ữ
ệ li u khi
ữ ươ ư ệ ầ ượ ư
Đ c l u tr trên ph ứ
ng ti n (nh ph n c ng máy tính) mà ng ườ
i
ợ dùng không h p pháp có th đ c đ ể ọ ượ
c
ượ ự ế ị ể ị ơ ụ ừ Đ c d phòng trên thi t b (ví d băng t ) mà có th b r i vào tay
ườ ợ ng i dùng không h p pháp
ượ ề ạ ượ ả ệ Đ c truy n trên m ng không đ c b o v
ậ ầ ả ượ ậ ậ ả ả ỹ Các k thu t m t mã đ m b o tính bí m t c n ph i đ ớ
ụ
c áp d ng v i
ạ ữ ệ ạ ả ọ m i lo i d li u nh y c m
ẹ ữ ệ
2.4.3.Toàn v n d li u
ẹ ữ ệ ả ằ ự ả ả ổ ị ả
ữ ệ
Toàn v n d li u đ m b o r ng d li u không b thay đ i. S đ m b o
ầ ế ế ấ ỳ ườ ươ ạ ộ
này là m t ph n thi t y u trong b t k môi tr ng th ng m i đi n t ệ ử
ạ ặ ho c lo i hình kinh doanh nào
ể ạ ượ ằ ứ ộ ữ ệ ẹ M c đ toàn v n d li u có th đ t đ c b ng các c ch ch n l ơ ế ẵ ẻ ủ
c a
35
ể ị các bit và mã ki m tra d ch vòng (Cyclic Redundancy Codes CRCs)
ệ ữ ệ ỏ ấ ể ả ẹ ằ ỡ ữ ệ
Đ b o v d li u kh i t n công nh m phá v tính toàn v n d li u,
ậ ỹ ượ ử ụ ậ ậ
các k thu t m t mã đ ả
c s d ng. Do đó, khoá và các thu t toán ph i
ượ ả ượ ể ế ự ữ ể ấ ố đ c tri n khai và ph i đ c bi t gi a các th c th mu n cung c p tính
ẹ ữ ệ ự ể ố ượ ủ ẹ ả ả c đ m b o tính toàn v n c a d ữ
ớ
toàn v n d li u v i th c th mu n đ
li uệ
ể ượ ụ ị ự ự ậ ỹ ẹ ủ
D ch v toàn v n c a PKI có th đ c xây d ng d a trên hai k thu t:
ặ ấ ự ự ụ ư ố
ữ
2.4.3.1.Ch ký s
ượ
M c dù nó đ c dùng cho m c đích cung c p s xác th c, nh ng nó
ượ ử ụ ữ ệ ể ẹ ấ ượ cũng đ c s d ng đ cung c p tính toàn v n cho d li u đ ế
c ký.N u có
ổ ấ ỳ ướ ố ẽ ị ạ ỏ ữ ự
s thay đ i b t k tr ể
c và sau khi ký thì ch ký s s b lo i b khi ki m
ẹ ủ ữ ệ ẽ ễ ệ ệ ậ ấ ị tra , vì v y vi c m t tính toàn v n c a d li u s d dàng b phát hi n
ự
ườ ậ ỹ ố ố ứ ử ụ ụ ộ 2.4.3.2. Mã xác th c thông báo
K thu t này thông th ng s d ng m t mã kh i đ i x ng (ví d DES,
ặ ậ ộ DESCBCMAC) ho c m t hàm băm m t mã (HMACSHA1)
ố
2.4.4.Ch ng ch i b
ố ỏ
ố ả ằ ố ỏ ụ ả ự ụ ể ị ị D ch v ch ng ch i b là d ch v đ m b o r ng th c th không th ể
ố ỏ ể ườ ủ ế ộ ượ ắ ớ ch i b hành đ ng c a mình. Các bi n th th ng đ c nh c t ề
i nhi u
ấ ố ồ ố ườ ố ỏ ằ ố ỏ
nh t là ch ng ch i b ngu n g c (ng ể
i dùng không th ch i b r ng đã
ố ỏ ự ệ ế ặ ậ ặ ộ ộ ả
ử
g i m t tài li u ho c m t văn b n) ho c ch i b s ti p nh n (ng ườ
i
ậ ượ ệ ả ể ố ỏ ằ
dùng không th ch i b r ng đã nh n đ ặ
c văn b n ho c tài li u).
ố ỏ ố ỏ ủ ể ế ộ ố ạ
M t vài các bi n th khác c a tính ch ng ch i b là : Ch i b đã t o
ố ỏ ệ ố ỏ ể ra , ch i b đã chuy n, ch i b vi c tán thành
ơ ả ạ 2.5. Các khía c nh an toàn c b n mà PKI cung c p
ư ị ấ ấ
ộ ơ ở ạ ầ
ơ ở ạ ầ ắ ả ấ ậ ộ
Theo nh đ nh nghĩa trên, PKI cung c p m t c s h t ng an ninh r ng
ộ
ụ
kh p. C s h t ng dành cho các m c đích an ninh ph i ch p nh n m t
ắ ả ấ ợ ơ ả ư nguyên t c nhât quán và ph i cung c p các l i ích c b n nh nhau. C s
36
ộ ổ ứ ắ ả ộ ả
ạ ầ
h t ng an ninh r ng kh p đ m b o an toàn cho toàn b t ch c và t ơ ở
ấ ả
t c
ố ượ ứ ổ ứ ạ các đ i t ụ
ng, ng d ng trong t ch c. Các khía c nh an toàn mà PKI cung
ồ ấ
c p bao g m
ậ
2.5.1. Đăng nh p an toàn
ậ ế ớ ườ ậ Ti n trình đăng nh p liên quan t i ng ủ
ị
i dùng nh p đ nh danh c a
ự ủ ặ ặ mình, (ID c a user ho c username), xác th c thông tin (password ho c giá
ậ ị tr bí m t nào đó).
ế ậ Hình 7: Ti n trình đăng nh p an toàn
ộ ầ ậ 2.5.2. Đăng nh p m t l n an toàn
ự ở ộ ộ ầ ủ ậ ậ Đăng nh p an toàn m t l n là s m r ng c a đăng nh p an toàn. S
ể ế ố ớ ấ ậ đăng nh p này có th k t n i t ề
i r t nhi u các thi ế ị ở
t b ự
ẽ ạ
xa, do đó s lo i
ế ố ầ ề ầ ơ ồ ả ậ ỏ ượ
b đ c y u t c n ph i đăng nh p nhi u l n . S đ hình.. minh h a c ọ ơ
37
ộ ầ ế ậ ch đăng nh p m t l n an toàn
ộ ầ ế ậ Hình 8: Ti n trình đăng nh p an toàn m t l n
ộ ầ ủ ể ậ ớ ậ ế ị Đăng nh p an toàn m t l n cũng đ đ truy c p t i các thi ề
t b , mi n,
ệ ố ứ ụ ủ ầ máy ch , các h th ng và các ng d ng. Tuy nhiên, chúng ta c n chú ý
ự ệ ể ượ ẫ ế ợ ơ ậ
ằ
r ng, s ki n đăng nh p an toàn v n có th đ ớ
c k t h p v i các c ch ế
ứ ụ ệ ể ề ể ậ ki m soát truy c p khác. Do đó, đ ng trên quan đi m v tính ti n d ng thì
ề ấ ượ ộ ầ ậ ố ở ự ệ
s ki n đăng nh p an toàn m t l n là đi u r t đ
ườ ườ ớ ộ ỉ ầ ẩ ả ả ỉ ng i dùng th ậ
ng ch ph i nh m t vài m t kh u và ch c n ph i bi c mong mu n b i vì
ế
t
ộ ầ ủ ụ ậ ớ ể ề ệ ố ể th t c m t l n đ truy c p t ứ
i nhi u h th ng. Đ ng trên quan đi m v
ề ượ ấ ậ ố an ninh thì đây cũng là đi u cũng r t đ ề
ẩ
ở
c mong mu n b i vì các m t kh u
ượ ớ ầ ề ạ ấ ơ đ c truy n qua m ng v i t n su t ít h n
ộ ơ ở ạ ầ ợ ọ ượ L i ích an toàn quan tr ng trong đó là m t c s h t ng đ c thi ế ế
t k
ể ả ụ ộ ả ằ ậ ớ ỉ ầ ườ ố
t t có th đ m b o r ng ng i dùng ch c n đăng nh p t
ẩ ẽ ệ ể ả ậ i máy c c b mà
ạ
ọ
h đang làm vi c. Do đó, m t kh u s không ph i chuy n qua vùng m ng
ượ ủ ủ ư ữ ắ ớ ị ả ậ
c nh ng r i ro l n nh các r i ro b đánh c p m t
ễ ị
d b khai thác, gi m đ
kh u ẩ
ườ 2.5.3. Trong su t v i ng
ố ớ
ấ ố
i dùng cu i
ủ ơ ở ạ ầ ộ ặ ắ ộ ọ
ố ớ ườ ườ ầ ố M t đ c tính r t quan tr ng c a c s h t ng r ng kh p đó là tính
ế ề
t v i dùng cu i. Nghĩa là ng i dùng không c n bi trong su t v i ng
ủ ầ ặ ị ph n header c a gói tin IP ho c các gói Ethernet. Các d ch v c a c s h
38
ơ ở ạ ầ ẽ ượ ể ớ ườ ụ ủ ơ ở ạ
ộ
i dùng trong c s h t ng thông qua m t ầ
t ng s đ c chuy n t i ng
ộ ườ ả ầ ế ấ ả ề ấ ề “h p đen” hoàn toàn. Ng i dùng không c n ph i bi t c v v n đ an t t
ủ ệ ầ ườ ả
ninh và không c n ph i can thi p th công. Ng ầ
i dùng cũng không c n
ế ề ậ ả
ph i bi t v các thu t toán và khoá
ườ ả ầ ế ề ơ ế ơ ơ ạ ầ Ng i dùng cũng không c n ph i bi
ự ườ ả
b o an ninh ra sao. S an toàn không nên gây khó khăn cho ng ả
t v c ch c s h t ng đ m
ể i dùng đ
ở ọ ự ụ ủ ệ ầ ầ ả
c n tr h th c hi n tác v c a mình. An toàn không c n yêu c u ng
ể ả ế ặ ệ ầ ườ ườ
i
ữ
ả
i dùng ph i có nh ng dùng ph i có hi u bi t đ c bi t, không yêu c u ng
ệ ủ ụ ặ
th t c đ c bi t .
2.5.4. An ninh toàn di nệ
ấ ủ ạ ầ ả ắ ọ ợ ộ ả
L i ích quan tr ng nh t c a h t ng an ninh r ng kh p là : Nó đ m b o
ộ ư ệ ệ ậ
ố ượ ế ị ườ ụ ứ ằ
r ng m t công ngh an toàn tin c y, nh công ngh khoá công khai, luôn
ủ ẵ
s n sàng trong môi tr ng các ng d ng, thi t b và các máy ch ng. S l
ể ạ ộ ể ả ụ ả
ấ ữ ệ ữ ậ ị ề
có th ho t đ ng liên t c cùng nhau đ đ m b o an toàn trong khi truy n,
ủ
và truy xu t d li u, các quá trình giao d ch, và truy c p máy ch . ư
l u tr
ư ệ ử ụ ứ ườ ử ế ị Các ng d ng th đi n t ệ
, trình duy t Web, t ng l a và các thi
ơ ở ữ ệ ủ ứ ụ ủ ậ ừ
c p t xa, các máy ch ng d ng, các máy ch file, c s d li u…t t b truy
ấ ả
t c
ể ượ ượ ạ ầ ộ ả
ề
đ u ph i hi u đ ậ ụ
c và t n d ng đ
ấ ườ ượ ấ ớ ượ ữ
nh t. Nh ng môi tr ư ậ ẽ ả
ng nh v y s gi m l ố
c h t ng an ninh theo m t cách th ng
ấ
ả
c r t l n c các v n c đ
ế ủ ườ ớ ấ ề ế ị ụ ề
đ giao ti p c a ng i dùng v i r t nhi u các thi ứ
t b và các ng d ng và
ị ứ ạ ệ ả ế ị ụ các công vi c qu n tr ph c t p các thi ứ
t b và các ng d ng này
ế ủ ế ể ạ ượ ữ ộ ơ ệ M t trong nh ng c ch ch y u đ đ t đ c an ninh toàn di n trong
ả ả ả ượ ử ụ ượ ơ ở ạ ầ
c s h t ng là kh năng đ m b o khoá đ c s d ng, đ ể
c hi u và
ượ ử ẽ ặ ạ ộ ộ ớ ộ đ ủ
c x lý theo m t cách ch t ch thông qua m t ph m vi r ng l n c a
39
ự ể ế ị ổ ứ các th c th và thi t b trong t ch c.
Ơ
Ầ
Ế
CH
Ể
Ế
Ệ
ƯƠ
NG IIII: CÁC THÀNH PH N, C CH LÀM VI C
Ủ
C A PKI. CÁC MÔ HÌNH VÀ CÁC KI U KI N TRÚC
Ủ
C A PKI
ầ ủ 3.1. Mô hình PKI và các thành ph n c a PKI
ầ Hình 9: Mô hình các thành ph n PKI
3.1.1. CA
ứ ự ể ệ ấ ộ ỉ Trong PKI, CA là m t th c th PKI có trách nhi m c p ch ng ch cho
ệ ố ự ể các th c th khác trong h th ng
ổ ứ ứ ự ượ ứ ậ ở ọ T ch c ch ng th c – CA đ c g i là bên th ba tin c y b i vì ng
ố ủ ứ ữ ỉ ưở ườ
i
ự
ng vào ch ký s c a CA trên ch ng ch trong khi th c ố
dùng cu i tin t
40
ạ ộ ữ ệ ầ ế hi n nh ng ho t đ ng mã hoá khoá công khai c n thi t.
ự ằ ứ ự ệ ỉ ấ
CA th c hi n xác th c b ng cách c p ch ng ch cho các CA khác và cho
ệ ố ự ế ể ố ằ ở ỉ ủ th c th cu i trong h th ng. N u CA n m
ỉ ấ ữ ứ ỉ ở ứ ấ PKI và ch c p ch ng ch cho nh ng CA ấ
đ nh c a mô hình phân c p
ượ
c ơ
m c th p h n thì CA này đ
ọ
g i là root CA.
3.1.2.RA
ứ ụ ủ
ệ
ị ứ ố 3.1.2.1.Ch c năng, nhi m v c a RA
ể ượ
ả
Ch c năng qu n tr có th đ c phân ph i cho RA. RA đóng vai trò
ụ ươ ệ ữ trung gian làm nhi m v t ng tác gi a CA và client.
ể ệ ặ ạ ị ự
ệ
RA có th ch u trách nhi m cho vi c gán tên, t o c p khoá, xác th c
ể ố ự ố th c th cu i trong su t quá trình đăng ký
ầ ủ ự ụ ể ệ ậ
ỉ ừ ứ ử ầ ậ RA làm nhi m v nh n các yêu c u c a th c th , xác minh chúng sau
ử
CA, sau đó g i đó g i yêu c u cho CA.Và RA cũng nh n các ch ng ch t
ự ứ ỉ ể ch ng ch cho th c th
ế ậ ở ạ ự ủ ể ậ ạ Thi t l p và xác nh n danh tính c a th c th trong giai đo n kh i t o
ậ ố ớ ườ ử ụ ố ể Phân ph i các bí m t dùng chung t i ng ự
i s d ng cu i đ xác th c
ầ ự ở ạ ự ạ ố tu n t ế
trong su t giai đo n kh i t o tr c tuy n
ự ớ ở ạ ứ ệ ạ ườ Kh i t o quá trình ch ng th c v i CA đ i di n cho ng ố
i dùng cu i
ờ ủ ứ ứ ự ệ ả ỉ ằ
Th c hi n ch c năng qu n lý vòng đ i c a khoá/ch ng ch , chú ý r ng
ứ ứ ấ ồ ỉ ỉ RA không bao gi ờ ượ
đ ứ
ặ
c phép c p ch ng ch ho c thu h i ch ng ch . Ch c
ỉ ở năng này ch có CA
3.1.2.2.Thành ph n c a RA
ồ ầ ầ ủ
RA bao g m 3 thành ph n sau
3.1.2.2.1.RA Console
ộ ủ ượ ặ RA console là m t máy ch (server) đ ể ư
c cài đ t cho RA officer đ đ a
ử ứ ầ ỉ ể ế ố ớ
các yêu c u ch ng ch . Nó có th k t n i v i CA. Server này x lý các yêu
41
ỉ ố ứ ứ ự
ầ
c u ch ng ch s trong quá trình ch ng th c
3.1.2.2.2.RA Officer
ụ ư ự ứ ộ ệ
RA Officer là m t cá nhân th c hi n các tác v nh đăng ký ch ng ch
ứ ặ ớ ồ ỉ ỉ
ấ
ố
s , làm m i ho c thu h i ch ng ch . Sau khi RA Officer xác minh và ch p
ậ ự ể ẽ ầ ầ
ứ ử ẽ ầ ấ ỉ ế
thu n yêu c u, nó s chuy n tr c ti p các yêu c u này lên CA server. Sau
ố
khi CA server x lý yêu c u và c p ch ng ch . RA Officer s phân ph i
ứ ỉ
ch ng ch
3.1.2.2.3.RA Manager
ụ ệ ả ộ ả
RA Manager là m t cá nhân làm nhi m v qu n lý RA Officer và đ m
ộ ủ ụ ứ ự ượ ứ ụ ự ệ ả ằ
b o r ng toàn b th t c ng d ng ch ng th c đ c th c hi n mà không
ự ừ ả ủ ườ ả ẽ ầ ấ có s l a đ o c a con ng i. RA Manager s c n ph i ch p thu n t
ầ ượ ử ở ướ ư ụ các yêu c u đ c x lý b i RA Officer tr ậ ấ ả
t c
ứ
ứ
c khi đ a các ng d ng ch ng
ự ớ th c t i cho CA
ứ 3.1.3. CertificateEnabled Client: Bên đ
ượ ấ
ọ ượ ấ ứ ỉ ỉ
c c p phát ch ng ch
ườ
c c p phát ch ng ch (hay còn g i là PKI client) th Bên đ ầ
ng yêu c u
ứ ể ặ ấ ỉ ượ ỉ ừ ứ CA ho c RA c p phát ch ng ch . Đ có đ c ch ng ch t CA, PKI client
ự ướ ệ
th c hi n các b c sau
ầ ạ ử ặ ặ G i yêu c u t o c p khoá công khai/khóa riêng. CA ho c client có th ể
ứ ự ụ ệ ệ ặ ế ủ th c hi n nhi m v này. C p khóa ch a chi ti t c a client
ượ ạ ử ầ ặ
Sau khi c p khoá đ ứ
ầ
c t o ra, client g i yêu c u cho CA yêu c u ch ng
ch . ỉ
ậ ượ ỉ ừ ứ ứ Sau khi client nh n đ c ch ng ch t ể ử ụ
CA, nó có th s d ng ch ng ch
ủ ượ ư ộ ể ứ
đ ch ng minh danh tính c a chính nó và đ c xem nh m t ng ỉ
ườ ở ữ
i s h u
ứ ỉ ượ ch ng ch đã đ ự
c xác th c
ế ố ấ ả ề ượ ữ ơ ữ
T t c các k t n i gi a client và CA đ u đ c gi ữ
an toàn. H n n a,
ệ ả ả ị client ch u trách nhi m đ m b o an toàn cho khoá riêng
ụ ệ Ví d VPN Client, trình duy t
42
ệ ụ
Làm nhi m v ký và mã hoá
ậ ữ ệ
ụ 3.1.4. Data Recipient : Bên nh n d li u
Ví d Web Server, VPN Gateway
ệ ả ụ
Làm nhi m v xác minh và gi i mã
ứ ư ồ ỉ ữ
3.1.5. Kho l u tr /thu h i ch ng ch
ể ượ ứ ể ệ ậ ố ỉ Đ làm thu n ti n quá trình phân ph i, ch ng ch có th đ c công b ố
ứ ỉ
trong kho ch ng ch .
ỉ ớ ứ ứ ố ỉ ườ ổ ứ Kho ch ng ch phân ph i ch ng ch t i ng i dùng và các t ch c . Kho
ỷ ỏ ứ ứ ứ ứ ỉ ỉ ỉ ch ng ch có ch a ch ng ch , danh sách hu b ch ng ch , danh sách hu
ề ụ ộ ố ứ
ỏ ẩ
b th m quy n và m t s th khác có liên quan t ớ ố ượ
i đ i t ng , ví d nh ỷ
ư
ố ượ ủ
chính sách c a các đ i t ng.
ể ượ ứ ườ ặ ượ ỉ
Ch ng ch có th đ ố ở
c phân ph i b i chính ng i dùng ho c đ c phân
ủ ư ụ ố ằ ử ụ ể ấ ộ ph i b ng m t máy ch th m c mà s d ng LDAP đ truy v n thông tin
ườ ệ ố ỉ ượ ử ụ ứ ệ ố ng i dùng. H th ng phân ph i ch ng ch đ ể ự
c s d ng đ th c hi n các
ụ ệ nhi m v sau
ấ ặ ạ T o và c p phát c p khoá
ợ ệ ủ ứ ằ ự
Ch ng th c tính h p l c a khoá công khai b ng cách ký vào khoá công
khai
ế ạ ồ Thu h i các khoá đã h t h n
ủ ị ố ụ ư ụ
Công b khoá công khai trong máy ch d ch v th m c
ứ
3.1.6.Chu i ch ng ch ho t đ ng nh th nào
ự ỉ ừ ộ ượ ậ ẽ ầ ể ỗ
Khi ta nh n đ ạ ộ
ỉ
ứ
c ch ng ch t ư ế
m t th c th khác, ta s c n ph i s
ỉ ủ ứ ỗ ỉ ể ỗ ượ ả ử
ứ
c ch ng ch c a root CA. Chu i ch ng ứ
ụ
d ng chu i ch ng ch đ thu đ
ỉ ượ ườ ứ ẫ ỉ ch , hay còn đ ọ
c g i là đ
ỉ ẽ ắ ầ ứ ự ự ể ể ỗ ỉ ượ ử ụ ứ
ộ
ng d n ch ng ch , là m t danh sách các ch ng
ớ
c s d ng đ xác th c th c th . Chu i ch ng ch s b t đ u v i ch đ
ỗ ẽ ượ ỉ ủ ứ ứ ự ể ỗ ỉ ch ng ch c a th c th đó, và m i ch ng ch trong chu i s đ
43
ự ượ ứ ứ ỗ ở ị ể
th c th đã đ ỉ ế ế
c xác đ nh b i ch ng ch k ti p trong chu i. Ch ng ch ở
c ký b i
ỉ
ỉ ủ ỉ ủ ứ ứ ế
k t thúc là ch ng ch c a rootCA. Ch ng ch c a root CA luôn luôn đ ượ
c
ủ ấ ả ứ ữ ở ỗ ký b i chính nó. Ch ký c a t ỉ
t c các ch ng ch trong chu i ph i đ
ớ ơ ồ ỉ ủ ứ ọ ườ xác minh cho t i ch ng ch c a root CA. S đ sau minh h a đ ả ượ
c
ẫ
ng d n
ỉ ừ ườ ở ữ ỉ ớ ứ ứ ắ ầ ậ ơ ch ng ch t i s h u ch ng ch t ng ỗ
i rootCA, n i chu i tin c y b t đ u
ứ ỗ ỉ Hình 10: Chu i ch ng ch
ệ ủ
3.2. Cách th c làm vi c c a PKI
ồ ứ
ạ ộ ủ
Các ho t đ ng c a PKI bao g m
ở ạ ự ể ố
Kh i t o th c th cu i
ạ ặ T o c p khoá
ố ể ụ ữ ị Áp d ng ch ký s đ xác đ nh danh tính ng ườ ử
i g i
Mã hoá thông báo
44
ố ứ ề Truy n khoá đ i x ng
ể ườ ử ộ ị
Ki m tra đ nh danh ng i g i thông qua m t CA
ả ủ ộ Gi ể
i mã thông báo và ki m tra n i dung c a nó
ự ể ố
3.2.1. Kh i t o th c th cu i
ể ố ướ ự ể ị ụ ượ ở ạ
c khi các th c th cu i có th tham gia và các d ch v đ Tr c h tr ỗ ợ
ả ượ ự ể ầ ở ạ ở
b i PKI, các th c th này c n ph i đ c kh i t o trong PKI.
ự ủ ể ố ộ Đăng ký th c th cu i là m t quá trình mà trong đó danh tính c a cá
ượ ể ố ự ượ ệ ự nhân đ c xác minh. Quá trình đăng ký th c th cu i đ
ả ượ ự ế ế ầ ượ tuy n. Quá trình đăng ký tr c tuy n c n ph i đ ự
c xác th c và đ ự
c th c hi n tr c
ả
c b o
vệ
3.2.2. T o c p khoá công khai/khoá riêng
ố ạ ặ
ườ ử ả ạ ầ Ng ộ
i dùng mu n mã hoá và g i thông báo đ u tiên ph i t o ra m t
ố ớ ặ ỗ ặ
c p khoá công khai/khoá riêng. C p khoá này là duy nhât đ i v i m i ng ườ
i
dùng trong PKI
ệ ố ể ạ ệ ạ
Trong mô hình PKI toàn di n, có th t o khoá trong h th ng máy tr m
ườ ệ ố ủ ặ ạ ặ ố ị ủ
c a ng i dùng cu i ho c trong h th ng c a CA. V trí t o c p khoá
ượ ố ộ ớ ị ạ ặ đ ọ
c xem là quan tr ng. Các nhân t có tác đ ng t i v trí t o c p khoá bao
ự ệ ấ ả ả ả ợ ồ
g m kh năng, hi u su t, tính đ m b o, s phân nhánh h p pháp và cách
ủ ị ử ụ
s d ng khoá theo ch đ nh
ạ ở ố ớ ệ ạ ệ ị
Cho dù là v trí t o khoá ứ
đâu thì trách nhi m đ i v i vi c t o ch ng
ỉ ự ỉ ượ ế ề ấ ượ ạ ch ch d a vào CA đ c c p quy n. N u khoá công khai đ ở
c t o b i
ả ượ ự ể ể ớ ộ th c th , thì khoá công khai đó ph i đ c chuy n t i CA m t cách an toàn
ộ ượ ạ ỉ ứ
M t khi khoá và ch ng ch có liên quan đ c t o ra, chúng ph i đ
ứ ệ ộ ố ợ ố ỉ ả ượ
c
ầ
phân ph i m t cách thích h p. Vi c phân ph i ch ng ch và khoá yêu c u
ố ử ụ ả ị ụ ạ ồ ộ
ự
d a trên m t vài nhân t , bao g m c v trí t o khoá, m c đích s d ng và
ứ ữ ư ề ố ộ các m i quan tâm khác nh là nh ng ràng bu c v ch c năng, chính sách.
ỉ ượ ạ ứ ể ượ ế ớ Ch ng ch đ c t o ra có th đ ố ự
c phân ph i tr c ti p t i ng
45
ặ ớ ỉ ở ặ ả ụ ẽ ề ho c t ứ
i kho ch ng ch ườ ở ữ
i s h u,
ụ
ộ
xa ho c c hai. Đi u này s ph thu c vào m c
ề ứ ử ụ ế ố đích s d ng khoá và các m i quan tâm v ch c năng. N u khoá đ ượ ạ
c t o
ở ệ ố ượ ư ữ ở h th ng máy khách, thì khoá riêng đã đ c l u tr b i ng
ầ ầ ố khoá riêng, và không c n có yêu c u phân ph i khoá (không áp d ng v i d ườ ở ữ
i s h u
ớ ự
ụ
ế ượ ạ ở ộ ơ phòng khoá). Tuy nhiên, n u khoá đ c t o ra m t n i khác, thì khoá
ả ượ ố ớ ườ ở ữ riêng ph i đ ộ
c phân ph i m t cách an toàn t i ng i s h u khoá đó. Có
ể ượ ử ụ ề ế ơ ể ự ề ấ
r t nhi u c ch có th đ
ế ằ ả ượ ượ ạ ụ ố ph i chú ý r ng, n u khoá đ ầ
ệ
c s d ng đ th c hi n đi u này. Cũng c n
ố
c dùng cho m c đích ch ng ch i c t o ra đ
ầ ượ ạ ạ ị ủ ự ể ỏ
b thì khoá đó c n đ c t o t i v trí máy khách c a th c th
ố ể ị ụ ữ ườ ử i g i.
3.2.3. Áp d ng ch ký s đ đ nh danh ng
ớ ố ượ ộ ể ị ữ
M t ch ký s đ c đính kèm v i thông báo đ xác đ nh danh tính
ườ ử ể ạ ữ ố ng ế
ộ
i g i thông báo đó. Đ t o ra m t ch ký s và đính kèm nó đ n
ư ệ ầ ự
thông báo c n th c hi n nh sau:
ố ị ế ầ ổ ộ ỗ ộ 1. Bi n đ i thông báo ban đ u thành m t chu i có đ dài c đ nh
ể ọ ụ ằ
b ng cách áp d ng hàm băm trên thông báo. Quá trình này có th g i là băm
ố ị ỗ ộ ượ ả ọ ượ thông báo, chu i có đ dài c đ nh đ c xem g i là b n tóm l c thông
báo
ả ượ ủ ằ 2. Mã hóa b n tóm l c thông báo b ng khóa riêng c a ng ườ ử
i g i.
ế ượ ữ ả ủ
K t qu c a tóm l ố
c thông báo đã mã hóa là ch ký s .
ữ ầ ố ớ
3. Đính kèm ch ký s v i thông báo ban đ u
3.2.4. Mã hóa thông báo
ữ ể ả ụ ệ ầ ố ẽ Sau khi áp d ng ch ký s lên thông báo ban đ u, đ b o v nó ta s
ể ố ử ụ ậ
ườ ử ố ứ ướ ượ ậ ỏ ố
ữ
mã hóa. Đ mã hóa thông báo và ch ký s , s d ng m t mã khóa đ i
ườ
i ứ
x ng. Khóa đ i x ng này đ c th a thu n tr i g i và ng ữ
c gi a ng
ỉ ượ ử ụ ộ ầ ệ ậ ả nh n thông báo và ch đ c s d ng m t l n cho vi c mã hóa và gi i mã.
ố ứ ề 3.2.5. Truy n khóa đ i x ng.
ố ứ ữ ố Sau khi mã hóa thông báo và ch ký s , khóa đ i x ng mà đ ượ ử
c s
46
ể ề ế ườ ố ứ ả ậ ầ
ụ
d ng đ mã hóa c n truy n đ n ng i nh n. B n thân khóa đ i x ng cũng
ượ ị ộ ế ườ đ c mã hóa vì lý do an toàn, n u b l ấ ỳ
thì b t k ng i nào cũng có th ể
ả ố ứ ẽ ượ gi i mã thông báo. Do đó, khoá đ i x ng s đ
ườ ậ ỉ ườ ậ ể ả ượ ủ
khai c a ng i nh n. Ch có ng ớ
i nh n m i có th gi ằ
c mã hoá b ng khoá công
ố
c khóa đ i i mã đ
ằ ươ ứ ượ ệ ử ụ
ứ
x ng b ng vi c s d ng khóa riêng t ng ng. Sau khi đã đ c mã hóa,
ẽ ượ ế ườ ậ khóa phiên và thông báo s đ ể
c chuy n đ n ng i nh n thông báo.
ể ộ 3.2.6. Ki m tra danh tính ng i g i thông qua m t CA
ườ ử
ộ ứ ể ậ
ườ ự ể ậ ị ủ
CA đóng vai trò là m t bên th 3 tin c y đ xác minh danh tính c a
ậ
i nh n nh n các th c th đang tham gia trong quá trình giao d ch. Khi ng
ộ ả ườ ữ ể ể ậ ầ ố m t b n mã, ng
ố ủ ữ ự ể ầ theo thông báo đó. D a trên yêu c u đó, CA ki m tra ch ký s c a ng i nh n có th yêu c u CA ki m tra ch ký s đính kèm
ườ
i
ử
g i thông báo.
ả ộ 3.2.7. Gi
i mã thông báo và ki m tra n i dung thông báo.
ậ
ượ ườ ậ ầ ả ể
Sau khi nh n thông báo đã đ c mã hoá, ng i nh n c n gi ả
i mã. B n
ể ượ ỉ ả ố ứ ằ ượ mã ch có th đ c gi i mã b ng khóa đ i x ng đã đ ậ
c mã hoá. Vì v y,
ướ ả ố ứ ả ượ ả tr c khi gi i mã thông báo, khóa đ i x ng ph i đ c gi ằ
i mã b ng khóa
ủ ườ ậ ả ố ứ ố ứ riêng c a ng i nh n. Sau khi đã gi i mã khoá đ i x ng, khoá đ i x ng s
ượ ể ả ữ ớ đ c dùng đ gi ố
i mã thông báo.Ch ký s đính kèm v i thông báo đ ẽ
ượ
c
ả ủ ằ ườ ử ả ượ gi i mã b ng khóa công khai c a ng i g i và b n tóm l
ượ ừ ườ ộ ả ẽ ạ ậ đ c bóc tách ra t nó. Ng i nh n sau đó s t o ra m t b n tóm l c thông báo
ượ
c
ứ ả ượ ể ể thông báo th hai. C hai thông báo băm sau đó đ c so sánh đ ki m tra
ấ ỳ ự ả ạ ủ ề ả xem có b t k s gi m o c a thông báo x y ra trong quá trình truy n tin
ứ ế ỏ không. N u hai thông báo băm trùng khít nhau ch ng t thông báo không b ị
ả ạ ề gi m o trong khi truy n.
ơ ả ủ ệ ử ộ ị Các tiêu chí c b n c a m t giao d ch đi n t :
ố ỏ ấ ả ự ể ố ị Ch ng ch i b : T t c các th c th liên quan trong giao d ch không
ể ừ ố ầ ủ ộ ị th t ch i mình là m t ph n c a giao d ch đó.
ể ả ề ắ ả ộ ơ ế
Truy n tin an toàn: Đây là m t c ch đúng đ n đ đ m b o an toàn
ấ ỳ ự ả ạ ổ ượ ặ ề
thông báo trong truy n tin. B t k s gi m o ho c thay đ i đ c làm trên
47
ả ượ ễ thông báo ph i đ ệ
c phát hi n d dàng.
ư ấ ỳ ự ế ậ Tính riêng t ề
ấ ợ
: B t k s truy nh p b t h p pháp đ n thông báo đ u
ị ừ ố
b t ch i.
ể ị ự ự ự ể ầ ộ ạ
S xác th c: Đ đ nh danh các th c th đang là m t ph n liên l c
ả ị ế ế ả ự trong quá trình giao d ch thì cân ph i bi ể
t đ n c hai th c th .
ộ ị ượ ể ượ ở Tính ràng bu c: Giao d ch nên đ c ki m tra và đ c ký b i các bên
liên quan.
ả ằ ả ấ ả ứ ể ầ ị PKI đ m b o r ng t ợ
t c các giao d ch có th đáp ng các yêu c u h p
ấ ơ ở ạ ầ ằ ườ ế pháp b ng cách cung c p c s h t ng và môi tr ầ
ng c n thi t .
ế
ể ạ ượ ứ ử ụ ứ 3.3. Các ti n trình trong PKI
ụ
Các ng d ng có th đ t đ c các ch c năng an toàn khi s d ng PKI.
ự ứ ẹ ậ
Các ch c năng an toàn đó là tính bí m t, tính toàn v n, tính xác th c và tính
ố ỏ ố ch ng ch i b
ộ ế ệ ầ ỗ ẽ ự
M i m t ti n trình trong PKI s th c hi n các yêu c u an toàn đã đ ượ
c
ề ậ ở
đ c p trên.
ứ
ầ
3.3.1. Yêu c u ch ng ch
ượ ể ỉ ố ừ ườ ử ứ ầ ầ ỉ
c ch ng ch s t Đ có đ CA, ng
ổ ế ể ử ứ ề ấ ẩ ẩ ỉ ỉ ứ
i dùng c n g i yêu c u ch ng
ấ
ầ
ch . Có r t nhi u chu n đ g i yêu c u ch ng ch và chu n ph bi n nh t
ỉ ứ ứ ườ ầ
đó là PKCS#10. Yêu c u ch ng ch ch a các tr ng sau
ệ ủ Tên phân bi t c a CA
ủ ườ Khoá công khai c a ng i dùng
ậ
Tên thu t toán
ố ủ ữ ườ Ch ký s c a ng i dùng
ườ ứ ử ầ ỉ ớ Ng i dùng g i yêu c u ch ng ch PKCS t ộ
i cho CA thông qua m t
48
ế ượ ả ả ườ kênh an toàn. N u kênh này không đ c đ m b o an toàn, thì ng i dùng
ả ủ ằ ầ t ủ
i khoá công khai c a CA và mã hoá yêu c u này b ng khoá công khai c a
CA
ầ
ử
3.3.1.1. G i yêu c u
ầ ứ ỉ ượ ử ớ ằ Yêu c u ch ng ch đ c g i cho t ộ
i CA b ng m t th đi n t
ứ ầ ỉ ả ượ ử ạ PEM (Privacy). Yêu c u ch ng ch ph i đ ư ệ ử ử ụ
, s d ng
ở
ị
c g i trong đ nh d ng PEM b i
ầ ầ ượ ạ ằ ị ị vì yêu c u ban đ u đ c t o ra b ng mã nh phân. Mã nh phân này không
ể ượ ề th đ ằ
c truy n b ng email.
ớ ữ ể ắ ắ ầ ố ỉ
ườ ử ươ ứ ộ ớ ằ
ứ
V i ch ký s trong yêu c u ch ng ch , CA có th ch c ch n r ng
ườ
i ng ng v i khoá công khai. Do đó, ng i g i có m t khoá riêng t ng
ứ ử ượ
g i đ ở ữ
c ch ng minh s h u
ể ư ệ ầ Client cũng có th đ a ra yêu c u khoá thông qua trình duy t Web.
ườ ượ ử ụ ợ Trong tr ng h p này, PKCS#10 đ
ộ ế ố ứ ủ ề ệ ớ ỉ ự
ớ
c s d ng cùng v i SSL. Client th c
ầ
hi n m t k t n i SSL v i máy ch ch ng ch và sau đó truy n yêu c u
ứ ộ ỉ ch ng ch thông qua m t kênh an toàn
3.3.1.2. Các chính sách
ộ ướ ị ổ ứ ể ả Chính sách an toàn đ nh nghĩa m t h ẫ
ng d n cho t ả
ch c đ đ m b o
ắ ử ụ ế ậ an toàn thông tin, các ti n trình và các nguyên t c s d ng m t mã. Chính
ị ổ ứ ả sách đ nh nghĩa t
ư ứ ể ượ ể ầ ố tin khác nh m c ki m soát đ ch c đó qu n lý khoá công khai, khoá riêng và các thông
ấ
gây m t ả
c yêu c u đ qu n lý các nhân t
ư ế an toàn nh th nào
ộ ượ ứ ậ ậ ở ượ ệ ố
M t vài h th ng PKI đ c v n hành b i bên th ba tin c y đ ọ
c g i
ự ứ ề ẩ ươ ạ là th m quy n ch ng th c th ng m i (Commercial Certificate Authorites)
ẽ ầ ộ ị và do đó s yêu c u m t CPS (Certification Pratice Statement). CPS đ nh
ẽ ượ ứ ể nghĩa các chính sách s đ ỗ ợ ư ễ
c tri n khai và h tr nh th nào, ch ng ch s ỉ ẽ
ượ ấ ượ ư ế ấ ậ ồ ị đ c c p phát, đ c ch p nh n và b thu h i nh th nào và khoá công
ẽ ượ ạ ượ ượ ư ế ứ ự khai s đ c t o, đ c đăng ký và đ c ch ng th c nh th nào. CPS
49
ữ ủ ị ị cũng đ nh nghĩa v trí c a nh ng khoá này
ỷ ỏ ứ ỉ
3.3.2. Hu b ch ng ch
ỉ ề
ứ ợ ệ ạ ỗ ộ M i ch ng ch đ u có m t giai đo n h p l ạ
. Giai đo n h p l ợ ệ ủ
c a
ỉ ượ ứ ừ ờ ỉ ượ ấ ứ ớ ch ng ch đ c tính t th i gian ch ng ch đ c c p phát t ứ
i khi ch ng ch
ữ ườ ị ấ ứ ợ ế ạ
h t h n. Tuy nhiên, có nh ng tr ỉ
ng h p, ch ng ch b m t tính h p l ỉ
ợ ệ
ướ ả ế ạ ườ ứ ờ ợ ỉ tr c kho ng th i gian h t h n. Trong tr
ượ ế ụ ử ụ ả ộ đ ng h p này, ch ng ch cũng
ủ
ố
c phép ti p t c s d ng. Tình hu ng này n y sinh khi đ an toàn c a
ư ộ ứ ụ ỉ ị ấ ứ ỉ ch ng ch không còn (ví d nh l khoá). Khi ch ng ch b m t tính h p l ợ ệ
ướ ờ ạ ượ ọ ỷ ỏ ứ ỉ ủ
c a nó tr c th i h n, thì đ c g i là hu b ch ng ch .
ỷ ỏ ẽ ả ượ ứ ị ỉ ề ứ ỉ Ch ng ch b hu b s ph i đ c công khai . Thông tin v ch ng ch b
ỷ ỏ ẽ ượ ủ ứ ố ỉ ườ hu b s đ c công b trên máy ch ch ng ch sao cho ng i dùng có th ị
ể
ượ ả ứ ữ ỉ đ c c nh báo nh ng ch ng ch đó.
ộ ườ ượ ử ụ ử ụ M t cách thông th ng khác cũng hay đ c s d ng đó là s d ng danh
ỉ
ủ ỏ ứ
sách h y b ch ng ch .
3.4. Các mô hình PKI
ẽ ấ
ố ở ặ
3.4.1. Mô hình phân c p CA ch t ch (strict hierarchy of CAs)
Trong mô hình này, có 1 CA đóng vai trò là CA g c trên cùng, phía
ướ ở ộ ở ố d i là các nhánh m r ng và các lá cu i cùng
ư ậ ậ ọ ồ ố RootCA đóng vai trò nh là g c tin c y (hay còn g i là “ngu n tin c y”)
ự ề ể ộ ướ ủ
cho toàn b mi n c a các th c th PKI d i nó. Ở ướ
d i root CA có th ể
50
ặ ớ ộ ọ không có ho c có m t vài l p intermediate CA (hay còn g i là subCA)
ấ ặ ẽ Hình 11: Mô hình phân c p CA ch t ch
ở ầ ủ ể ả ạ ơ ộ ế
RootCA không đ n gi n là đi m kh i đ u c a m t m ng, hay các k t
ủ ự ở ầ ấ ả ự ể ể ậ ố
n i, nó còn là đi m kh i đ u c a s tin c y. T t c các th c th trong
ề ắ ữ ủ ề
mi n đ u n m gi khoá công khai c a CA
ấ ả ự ể ế ậ Trong mô hình này, t t c các th c th trong ki n trúc tin c y rootCA.
ấ ượ ự ế ậ ư S phân c p đ c thi t l p nh sau
ượ ự ấ ứ ự RootCA đ ự
c xây d ng, và t ỉ
c p ch ng ch cho mình (hay t ký cho
mình)
ự ế ẽ ứ ứ ự ạ ỉ RootCA s ch ng th c (t o và ký ch ng ch ) cho các CA tr c ti p d ướ
i
nó
ư ộ ỗ ạ ự ế ướ ứ ự M i m t CA nh trên l i ch ng th c cho CA tr c ti p d i nó
ẽ ứ ứ ầ ự ự ạ ố ể ố
T i m c g n cu i cùng, CA s ch ng th c th c th cu i
ả ượ ự ể ấ ỗ ả ấ M i th c th trong phân c p ph i đ c cung c p b n sao khoá công
ủ ơ ở ạ
ự ấ ả ả ượ ế ố ứ khai c a root CA. Quá trình t o khoá công khai này là c s cho quá trình
ự
c th c t c các k t n i sau đó, do đó, quá trình này ph i đ ch ng th c t
51
ệ ộ
hi n trên m t cách an toàn
ứ ẽ ằ ặ ấ Chú ý r ng trong mô hình phân c p ch t ch đa m c (multilevel strict
ố ượ ự ể ứ ượ ấ hierarchy), các th c th cu i đ ự
c ch ng th c (nghĩa là đ ứ
c c p ch ng
ự ế ỉ ở ư ậ ố ạ ch ) b i CA tr c ti p ngay trên nó, nh ng g c tin c y thì l i là rootCA.
ấ ặ
3.4.2.Mô hình phân c p CA không ch t ch (loose hierarchy of CAs)
ứ ượ ẽ
ặ ẽ ấ Trong mô hình phân c p CA không ch t ch các bên đ ự
c ch ng th c
ể ả ề ườ ậ ẫ ộ
ở
b i cùng m t CA đ gi ế ấ
i quy t v n đ đ ng d n tin c y mà không liên
ớ ấ ỳ ứ ế ả ơ quan t
ụ ự ượ ự ứ ự ể ể ể ồ
i b t k CA m c cao h n, bao g m c root CA. Nghĩa là n u hai
ộ
ự ở
c ch ng th c b i cùng m t th c th (ví d th c th A và th c th B) đ
ể ế ự ự ể ợ ệ ủ ể
CA, thì th c th A và th c th B có th ki m tra tính h p l
ả ạ ộ ườ ầ ự ớ ẫ không c n ph i t o m t đ ứ
ng d n ch ng th c t c a nhau mà
ề ơ ả
i root CA. V c b n,
ủ ể ự ự ể ề ể ấ ậ ộ
th c th A và th c th B cùng thu c v phân c p ch th tin c y c a c
ả ử ằ ể ộ ượ ứ hai. Tuy nhiên, gi ự
s r ng có m t th c th C nào đó đ ủ ả
ự ở
c ch ng th c b i
ứ ự ự ể ả ộ m t CA khác (không ph i CA ch ng th c cho A và B) thì th c th A và B
ộ ườ ự ệ ả ự ứ ẫ ph i th c hi n m t đ ng d n ch ng th c hoàn toàn thông qua rootCA
ướ ỉ ủ ứ ậ tr c khi tin c y ch ng ch c a C
ế ậ 3.4.3.Mô hình ki n trúc tin c y phân tán (distributed trust architecture)
ự ữ ế ẽ ậ ậ ố ề
Ki n trúc tin c y phân tán s phân ph i s tin c y gi a hai hay nhi u
ể ữ ả ể ủ ự
CA. Nghĩa là th c th 1 có th gi b n sao khoá công khai c a CA
1 như
ủ
b n sao khoá công khai c a
ậ ủ ự ể ồ ể ữ ả ngu n tin c y c a mình, th c th 2 có th gi
ư ậ ủ ữ ủ ồ
ủ ư ậ ố ồ ữ
ở
CA2 nh ngu n tin c y c a mình. B i vì nh ng khoá công khai c a nh ng
ệ ố
CA này đóng vai trò nh ngu n tin c y (CA1 là g c(root) c a h th ng
ấ ố ủ ệ ố ứ ự ứ ể ấ
ự
phân c p ch a th c th 1, CA2 là g c c a h th ng phân c p có ch a th c
th 2)ể
ế ế ế ấ ặ ấ ỗ ẽ
N u m i ki n trúc phân c p này là ki n trúc phân c p không ch t ch ,
ế ấ ượ ế ọ ượ ủ
thì c u hình c a ki n trúc đó đ c g i là ki n trúc đ ể
c chia đi m (peered
ở ấ ả ữ ề ể architeture) b i vì t ộ ậ
t c các CA đ u là nh ng đi m hoàn toàn đ c l p
ế ạ ế ế ấ (Không có SubCA trong ki n trúc). Trái l i, n u ki n trúc đó là phân c p đa
ứ ượ ế ọ ế
m c, thì ki n trúc đó đ c g i là ki n trúc hình cây (treed architeture) (chú
ư ể ằ ớ ỗ ạ ý r ng các root CA là các đi m so v i các CA khác nh ng m i root l i đóng
52
ư ề ấ ặ ộ ố ớ
vai trò nh CA c p cao đ i v i m t ho c nhi u SubCA)
ế ậ Hình 12: Mô hình ki n trúc tin c y phân tán
ườ ượ ể ườ ượ Thông th ế
ng thì ki n trúc đ c chia đi m th ng đ
ộ ổ ủ ộ ụ ứ ộ ạ ề
trong m t mi n c a m t t ch c (ví d trong m t công ty), trái l ự
c xây d ng
ế
i, ki n
ế ượ ừ trúc hình cây và ki n trúc lai (hybrid architeture) đ c hình thành t các
ề ủ ổ ứ mi n c a các t ch c khác nhau
ệ ạ ủ ỗ ườ ượ ế ố
Quá trình c a vi c t o k t n i m i root CA thông th ng đ ọ
c g i là
ứ ự ch ng th c chéo (crosscertification)
53
3.4.4. Mô hình 4 bên (fourcorner model)
ố Hình 13: Mô hình b n bên
ủ ậ ọ ườ ố
Trong mô hình này minh h a b n góc c a mô hình tin c y là ng i thuê
ủ ậ bao (subscriber), bên tin c y (relying party), thuê bao c a CA (subscriber’s
ậ ủ CA) và bên tin c y c a CA (relying party’s CA)
ườ ượ ể ị ậ
Mô hình tin c y 4 bên này th ng đ c tri n khai trong các giao d ch
thanh toán đi n tệ ử
ử ụ ỉ ượ ấ ứ Trong mô hình này , thuê bao s d ng ch ng ch đ ủ
ở
c c p b i CA c a
nó
ậ ươ ộ ị Thuê bao và bên tin c y t ng tác và ràng bu c nhau trong các giao d ch
đi n tệ ử
ậ ươ ủ ề ể ớ Bên tin c y t ự
ng tác v i mi n CA (CA domain) c a nó đ xác th c
ỗ ị cho m i phiên giao d ch
ề ươ ợ ệ ấ ầ Mi n CA t ng tác khi có yêu c u xác minh tính h p l ề
/c p quy n
54
phiên giao d chị
3.4.5. Mô hình Web (web model)
ọ ủ ư ụ ộ ệ
Mô hình Web – đúng nh tên g i c a nó, ph thu c vào các trình duy t
ổ ế ư
ẽ ượ ố ượ ặ ẵ ủ Web ph bi n nh Netscape Navigator và Microsoft Internet Explorer. Trong
ộ
c cài đ t s n vào m t ng khoá công khai c a CA s đ mô hình này, s l
ệ ậ ợ
ầ ẽ ườ ưở ư ẽ ị
ố
s các trình duy t. Các khoá này s đ nh nghĩa t p h p các CA mà trình
ệ
ng và xem nh các root cho vi c ệ
i dùng trình duy t ban đ u s tin t ng
ứ ỉ xác minh ch ng ch
Hình 14: Mô hình Web
ệ ề ủ ấ ỗ M i nhà cung c p trình duy t đ u có root c a riêng mình, và nó s ẽ
ự ứ ượ ệ ch ng th c root CA mà đ c nhúng trong trình duy t.
ệ ể ư ữ ệ ể ả ậ ơ Mô hình Web có nh ng u đi m rõ r t đ thu n ti n và đ n gi n kh ả
ự ấ ề ế ầ ượ ộ
năng liên k t. Tuy nhiên, có m t vài s v n đ an toàn c n đ c quan tâm
ụ ở ế ị ể ườ trong mô hình này khi quy t đ nh tri n khai. Ví d , b i vì ng i dùng trình
ệ ự ộ ượ ưở ậ ẵ ợ duy t t đ ng tin t ng vào t p h p các khoá đã đ
ể ị ấ ế ẽ ệ ộ ố c cài s n trong trình
ơ
duy t, nên an toàn s có th b m t n u m t trong s các rootCA đó “r i
ể ạ vào tình tr ng nguy hi m”
ộ ấ ả ượ ữ ề ầ M t v n đ an toàn n a cũng c n ph i đ c quan tâm đó là trong mô
ế ự ồ ấ ể ơ ỳ ủ
ế
hình Web, không có c ch th c th nào có th thu h i b y k khoá c a
ượ ệ ệ ế ộ root đã đ c nhúng trong trình duy t. N u chúng ta phát hi n ra m t trong
55
ữ ể ạ ặ ươ nh ng CA “đang trong tình tr ng nguy hi m” ho c khoá riêng t ứ
ng ng
ị ộ ủ ể ớ ấ ỳ
v i b t k khoá công khai c a root b l ể ế
, thì hi n nhiên là không th ti p
ệ ệ
ụ ử ụ
t c s d ng khoá đó trong hàng tri u các trình duy t web trên th gi ế ớ
i
ậ ấ ườ
3.4.6.Mô hình tin c y l y ng
ậ ấ ườ ỗ Trong mô hình tin c y l y ng i dùng làm trung tâm (usercentric trust)
ườ
i dùng làm trung tâm, m i ng i dùng
ộ ể ế ị ự ệ ả ị ế
ẽ
s ph i ch u trách nhi m tr c ti p và toàn b đ quy t đ nh xem
ứ ỉ ứ ỗ ỉ ườ ụ
d ng ch ng ch nào và t ừ ố h ng ch nào. M i ng ch i c i dùng s gi s sẽ ử
ẽ ữ ộ
m t
ư ủ ọ vòng khoá và vòng khoá này đóng vai trò nh CA c a h . Vòng khoá này
ứ ượ ậ ủ ữ ườ ử ụ ch a các khoá công khai đ c tin c y c a nh ng ng i s d ng khác trong
ồ ượ ể ử ụ ộ
c ng đ ng. Mô hình này đ ể
c Zimmerman phát tri n đ s d ng trong
ươ ể ề ả ậ ch ầ
ng trình phát tri n ph n m m b o m t PGP
ể ị ả ế ị ưở ủ ố Quy t đ nh này có th ch u nh h ộ ố
ng c a m t s các nhân t
ầ ậ ượ ậ ườ ồ ợ
ban đ u t p h p các khoá đ c tin c y thông th ng bao g m các nhân t ặ
, m c dù
ố
ệ ạ ồ là b n bè, gia đình, đ ng nghi p …
ậ ấ ườ Hình 15: Mô hình tin c y l y ng i dùng làm trung tâm
ượ ử ụ ề ầ ộ Mô hình này đ ổ ế
c s d ng r ng rãi trong ph n m m an ninh n i ti ng
56
ườ là Pretty Good Privacy (PGP) [Zimm95, Garf95]. Trong PGP, ng i dùng
ự ạ ướ ệ xây d ng m ng l i tín nhi m (web of trust) đóng vai trò là CA (ký lên
ự ể khoá công khai cho các th c th khác)
ự ủ ệ ườ ế ị ọ Do s tín nhi m c a ng ộ
i dùng trong các h at đ ng và các quy t đ nh,
ậ ấ ườ ể ọ ộ nên mô hình tin c y l y ng i dùng làm trung tâm có th h at đ ng đ ượ
c
ỏ ỹ ư ự ậ ộ ồ ộ trong c ng đ ng đòi h i k thu t và s quan tâm cao đ , nh ng nó không
ự ế ố ớ ộ ề ồ ồ th c t ộ
đ i v i c ng đ ng chung (c ng đ ng mà trong đó nhi u ng ườ
i
ự ể ộ ỉ ế ề ệ ặ
dùng ch có m t chút ho c không có s hi u bi t v các khái ni m PKI hay
ư ậ ữ ệ ơ ộ ườ khái ni m an toàn). H n n a, m t mô hình nh v y thông th ng không
ợ ườ ủ ổ ứ ặ ớ
phù h p v i các môi tr ng c a công ty, t ủ
ch c tài chính ho c chính ph
ể 3.5.Các ki u ki n trúc PKI
ế
ể ể ể ế ể ấ ộ ỗ
Có m t vài ki u ki n trúc mà PKI có th tri n khai đ cung c p “chu i
ừ ộ ế ự ằ ậ
tin c y” t m t khoá công khai đã bi t nh m xác th c thông qua khoá công
ườ ụ ườ ự ọ ớ ụ ể ủ
khai c th c a ng i dùng. Ví d khi ng ứ
i dùng xác th c h v i các ng
ủ ớ ề ứ ụ ẽ ầ ậ ụ
d ng c a v i eGovernment, thì ph n m m ng d ng m t mã s xác minh
ữ ỉ ủ ườ ứ ằ ch ký trong ch ng ch c a ng
ủ ứ ế ạ ả ỉ ử ụ
i dùng b ng cách s d ng khoá công khai
ủ
ủ
c a CA mà t o ra ch ng ch đó. N u khoá c a CA không ph i là khoá c a
ả ượ ứ ẽ ỉ ứ
root, thì ch ng ch ch a nó cũng s ph i đ c xác minh tính h p l
ế ụ ế ứ ứ ỉ ợ ệ ằ
b ng
ỉ khoá công khai mà ký ch ng ch đó. Và ti p t c đ n khi nào ch ng ch trong
ể ượ ỗ ằ ỗ ậ
“chu i tin c y” có th đ
ợ ệ ẽ ự ấ ả ứ ồ tính h p l có nghĩa là s xác th c t ủ
c xác minh b ng khóa c a root. Chu i xác minh
ả ứ
ỉ
t c các ch ng ch ,bao g m c ch ng
57
ườ ỉ ủ
ch c a ng ố
i dùng cu i
ỗ ậ
Hình 16: Chu i tin c y
3.5.1. Ki n trúc ki u Web of
ể Trust
ỗ ế
ố ớ ể
ế ườ ẽ ạ ứ ỉ Đ i v i ki u ki n trúc này, m i ng i dùng s t o và ký ch ng ch cho
ườ ế ạ ầ ể ả ầ ng i mà mình đã bi t. Do đó, không c n phát tri n ph i có h t ng trung
58
tâm
ể ế Hình 17: Ki n trúc ki u Web of Trust
ả ố ớ ổ ứ ạ ộ ệ ấ ỏ Mô hình này ho t đ ng r t hi u qu đ i v i t ch c nh , có s t n t
ệ ướ ố ả ố ớ ổ ứ ớ ư ệ m i quan h tr c đó, nh ng nó không hi u qu đ i v i t ự ồ ạ
i
ặ
ch c l n ho c
ầ ự ượ ự ả ụ ả ả ả ầ ơ
n i mà c n ph i có s đ m b o (ví d ph i xác th c đ c yêu c u tr
ỉ ượ ấ ế ủ ứ ự ạ ướ
c
ỉ ố ớ
c c p phát). S giao ti p c a tr ng thái ch ng ch đ i v i ứ
khi ch ng ch đ
ư ứ ụ ậ ấ ớ ồ ỉ ị
các bên tin c y (ví d nh ch ng ch b thu h i) cũng là r t khó v i mô hình
này
ế ể
3.5.2.Ki n trúc ki u CA đ n (Single CA)
ơ ơ
ả ế ạ ấ ứ ế ấ D ng ki n trúc đ n gi n nh t là single CA. Ki n trúc này c p ch ng ch ỉ
ứ ấ ạ ỗ ỉ ườ và cung c p thông tin tr ng thái ch ng ch cho m i ng i dùng. Khoá công
ơ ả ủ ể ậ ậ ọ ồ khai c a CA là đi m tin c y c b n , hay còn g i là ngu n tin c y, đ ượ
c
ứ ể ả ậ ấ ỉ ườ ố dùng đ đánh giá kh năng ch p nh n ch ng ch . Ng i dùng có m i quan
ọ ế ế ậ ớ ữ ứ ụ ứ ệ ự
h tr c ti p v i CA, vì v y h bi
ượ ử ụ ộ ổ ứ ụ ầ ị ỉ đ c s d ng. Trong m t vài t ỉ ầ
t nh ng ng d ng nào mà ch ng ch c n
ơ ả
ch c ch yêu c u các d ch v PKI c b n.
59
ể ổ ứ ớ ơ ả ủ ị Đi n hình, đó là các t ch c v i h n 3000 tài kho n c a user trong d ch v ụ
ư ụ ứ ể ề ườ ườ th m c. Thay vì tri n khai CA nhi u m c, thì thông th ng ng i ta s ẽ
ể ộ ượ ặ tri n khai m t CA , đ c cài đ t và đóng vai trò là enterprise root
ể ượ ể ạ CA.Enterprise root CA không th đ c di chuy n trong m ng, thay vào đó,
ủ ề ấ ẵ ộ ẽ
s có m t máy tính là thành viên c a mi n và luôn luôn s n sàng c p phát
ỉ ố ớ ủ ứ ấ ườ ị ầ
ch ng ch đ i v i các yêu c u c p phát c a máy tính, ng i dùng, các d ch
ế ị ạ ụ
v và các thi t b m ng
ễ ệ ế ể ả ả ở ị ỉ Ki u ki n trúc single CA d qu n lý b i vì nó vi c qu n tr ch liên
ộ ớ ị ỗ ứ ế ị quan t i m t CA root. Tuy nhiên, n u CA b l ụ
i, thì d ch v ch ng ch s
ể ử ứ ẵ ầ ầ ớ ỉ ỉ ẽ
ứ
không s n sàng đ x lý các yêu c u ch ng ch , các yêu c u làm m i ch ng
ỉ ứ ồ ỉ ớ i khi CA khôi ph c l ụ ạ ượ ị
i đ c d ch
ch hay danh sách thu h i ch ng ch cho t
vụ
ế ấ ườ ỉ ượ ử ụ Ki n trúc phân c p single CA thông th ng ch đ ệ
c s d ng khi vi c
60
ả ấ ơ ị ả
qu n tr là đ n gi n, giá thành th p
ơ ế
Hình 18: Ki n trúc CA đ n
ế ố ở ộ ủ ể ế ạ D ng m r ng c a ki u ki n trúc CA này là k t n i các CA đ h tr ể ỗ ợ
ồ ộ ườ ổ ứ các c ng đ ng ng i dùng khác nhau. Các t ể ế ố
ch c có th k t n i các CA cô
ớ ử ụ ệ ể ể ố ậ
l p thành các PKI l n s d ng m i quan h đi m đi m
ế ấ 3.5.3. Ki n trúc CA phân c p
ế ộ ồ ở ỉ ấ
Ki n trúc mô hình CA phân c p bao g m có m t root CA trên đ nh,
ướ ủ ộ ớ ượ phía d i là m t hay hai l p CA (khoá công khai c a các CA này đ c ký
ở ướ ở
b i root CA) và sau đó là các thuê bao và các RA phía d ỗ
i. M i khoá
ượ ưở ườ ủ đ c tin t ấ ủ
ng nh t c a ng
ự ẩ hình này cho phép s thi hành các chính sách và các chu n thông qua h i dùng là khoá công khai c a root CA. Mô
ạ
61
ứ ả ả ổ ế ể ạ ơ ầ
t ng, t o ra m c đ m b o t ng th cao h n là các ki n trúc đa CA khác.
ế ấ Hình 19: Ki n trúc CA phân c p
ẽ ấ ứ ỉ ư
Trong mô hình này, root CA s c p ch ng ch cho các sub CA nh ng
ấ ỉ ườ ạ ấ ỉ ứ
không c p ch ng ch cho ng i dùng. Các subCA này l ứ
i c p ch ng ch cho
ặ ườ các subCA khác ho c cho ng i dùng
ự ứ ế ể 3.5.4. Ki n trúc ki u ch ng th c chéo (Crosscertificate)
ứ ạ ỗ ỉ Trong mô hình này, m i CA t o ra các ch ng ch cho các CA mà đã xác
ể ở ữ ủ ạ ấ ỉ ỗ
ứ
minh là đã “đ m nh” đ s h u ch ng ch . Trong mô hình phân c p, m i
ườ ư ủ ộ ỉ ng i ch có m t khoá công khai c a root, nh ng trong mô hình này, khoá
ạ ộ ủ ụ ứ ủ ả đó l ủ
i là khoá c a CA c c b c a chúng ch không ph i là khoá c a
62
rootCA.
ự ứ ể ế Hình 20: Ki n trúc ki u ch ng th c chéo
ộ ấ ề ủ ớ ứ ụ ườ M t v n đ c a mô hình này là khó khăn v i ng d ng ng i dùng đ ể
ỉ ữ ứ ỗ ị ườ ở ữ ườ xác đ nh chu i ch ng ch gi a ng i dùng s h u CA không có đ ng liên
ứ ự ế
k t ch ng th c chéo
ặ ớ ấ ả ố ề ặ
ấ ả ể ấ ở Mô hình này ph i đ i m t v i v n đ “ai là root CA” (không ai/ ho c là
ấ
t c các CA), cho phép các CA tr thành c u trúc đi m thay vì phân c p, t
ẽ ạ ứ ự ư ư ố nh ng cũng gi ng nh mô hình Web of Trust, ch ng th c chéo s t o ra
ứ ả ệ ố ả ấ ồ m c b o đ m đ ng nh t cho toàn h th ng
3.5.5. Ki n trúc Bridge CA(BCA)
ượ ế ế ế ế
Bridge CA đ c thi ế ế ể ả
t k đ gi
ế ố ơ ả ạ ấ i quy t các thi u sót trong các ki n trúc
ứ
PKI c b n và t o k t n i các PKI khác nhau. Bridge CA không c p ch ng
ỉ ườ ả ậ ồ ch cho ng i dùng và chúng không ph i là ngu n tin c y. Thay vào đó,
63
ẽ ế ậ ữ ệ ậ ố Bridge CA s thi t l p m i quan h tin c y peer to peer (P2P) gi a các
ườ ẹ ấ ề ấ ả ồ
ộ
c ng đ ng ng ứ
i dùng khác nhau và làm gi m nh v n đ c p phát ch ng
ổ ứ ạ ườ ỉ ữ ch c trong khi đó l i cho phép ng i dùng gi ữ ượ
đ ồ
c ngu n
ch gi a các t
tin c yậ
ế Hình 21: Ki n trúc Bridge CA
ể ẽ ế ấ ầ ộ ậ
Trong ki u ki n trúc này, Bridge CA s cung c p m t cái c u tin c y
ơ ở ạ ầ ứ ự ặ ữ
(thông qua c p ch ng th c chéo) gi a các c s h t ng khoá công khai
ấ ơ ở ạ ầ ự ứ ộ
ề ể ả ỉ ứ ạ
phân c p và c s h t ng khoá công khai ch ng th c chéo. Đ ph c t p
ủ
ủ
c a mô hình này khá cao và có th ph i đi u ch nh các module PKI c a
ườ ố ng i dùng cu i.
ậ ỗ ố ộ ượ ể ệ ệ
M i m t m i quan h tin c y Bridge CA đ ộ ặ
ằ
c th hi n b ng m t c p
ộ ượ ấ ứ ở ỉ
ch ng ch , m t đ c c p phát b i BCA
Ự
Ự
CH
NG IV: XÂY D NG MÔ HÌNH PKI D A TRÊN MÃ
Ồ
ƯƠ
Ở
NGU N M OPENCA
ể 4.1.L ch s phát tri n OpenCA
ử
ị
ơ ở ạ ầ ữ ầ ộ C s h t ng khoá công khai (PKI) là m t trong nh ng nhu c u thi ế
t
64
ủ ươ ụ ứ ư ế ề ấ ầ ế
y u c a t ng lai. Nh ng v n đ là h u h t các ng d ng có th đ ể ượ
c
ứ ư ả ằ ỉ ạ ấ ắ ề ả
đ m b o an toàn b ng ch ng ch và khoá nh ng l i r t khó và đ t đ cài
ề ầ ậ ạ ặ
đ t PKI, lý dó là ph n m m trung tâm tin c y có tính linh ho t thì l
ở ầ ủ ụ ể ẩ ả ắ
đ t. Đây là đi m kh i đ u c a OpenCA. M c đích là s n ph m c a h ạ ấ
i r t
ệ
ủ
ở ể ỗ ợ ộ ậ ố ồ ồ ớ ả th ng trung tâm tin c y ngu n m đ h tr c ng đ ng v i các gi i pháp
ợ ướ ươ ố ẻ
t t, r (chi phí h p lý) và mang tính xu h ng trong t ng lai
ự ượ ắ ầ ưở D án OpenCA đ c b t đ u vào năm 1998. Ý t
ượ ể ở ồ ầ ủ ự đ c phát tri n b i Massimiliano Pala. Mã ngu n ban đ u c a d án đ ầ
ng OpenCA ban đ u
ượ
c
ế ớ ủ ề ạ ấ ầ ầ ả vi t v i đo n script r t dài. Khi phiên b n đ u tiên c a ph n m m đ ượ
c
ứ ự ự ề ấ ẫ xây d ng, thì d án OpenSSL v n có tên là SSLeay . R t nhi u ch c năng
ỗ ữ ề ị ỏ ứ ề ẫ
v n còn l i và nhi u th khác n a đ u đang b b qua
ề ệ ặ ầ ả ộ ỉ ạ
ầ ấ ơ
Vi c cài đ t ph n m m ban đ u r t đ n gi n và ch có m t vài đo n
ở ạ ể ề ặ ầ ạ ỉ ầ script kh i t o CA. Đ cài đ t nhanh chóng ph n m m, b n ch c n gi
ừ ể ể ệ ả nén gói đó, dùng l nh cd đ chuy n vào gói v a gi ả
i
ử ụ
i nén đó và s d ng
ẽ ế ạ ạ ặ ầ
ệ
l nh “make install”, đo n script sau đó s ch y và ti n hành cài đ t ph n
ứ ề ả ạ ơ ỉ m m CA đ n gi n và t o ra ch ng ch CA
ộ ạ ấ ẽ ượ ệ ạ ặ M t lo t các đo n script đ
ư ậ ủ ự ế ầ ầ ặ ả ơ ấ
c cung c p s giúp cho vi c cài đ t và c u
ư
hình cho h u h t các ph n c a d án. M c dù đ n gi n nh v y, nh ng
ả ề ớ ộ ề ấ ấ ồ ườ gi i pháp này gây ra r t nhi u v n đ v i c ng đ ng ng
ừ ệ ả ạ ủ ầ ầ ầ ộ ề ả
ấ
v n đ n y sinh t vi c nhu c u c n ph i t o ra m t gói đ y đ và t ở
i dùng b i vì các
ố
t
ấ ơ ứ ủ ề ả ầ ả ơ
h n. Phiên b n đ u tiên c a OpenCA r t đ n gi n, nhi u ch c năng đ ượ
c
ủ ế ỉ ượ ự ể ấ ứ ỉ xây d ng ch y u ch đ c dùng đ c p phát ch ng ch , CRL và các
ươ ụ ứ ệ ặ ơ ơ ph ng th c cài đ t thì khá đ n s , không có tính ti n d ng cho b t k ấ ỳ
ể ươ ệ ấ ạ ỉ ớ ti n ích c u hình nào , đo n script ch có th t ng thích v i bash
ế ượ ề ổ ơ ả
Các phiên b n ti p theo đ c b sung thêm nhi u tính năng h n cho d ự
ủ ệ ả ồ
án và do đó phiên b n 0.109 đã bao g m giao di n cho server c a CA, RA
ừ ắ ầ ừ ự ầ ả và Pub. T lúc b t đ u d án và t
ớ ự ủ ộ ượ ự ồ ộ
phát hành phiên b n đ u tiên, đã có m t
ể
ng l n s tham gia c a c ng đ ng Internet đóng góp vào s phát tri n l
65
ủ ự
c a d án
4.2. CA
ầ ướ ệ ề ầ Trong ph n tr c, em đã nêu ra khái ni m v CA, trong ph n này, em
ượ ề ậ ụ ể ơ ề xin phép đ c đ c p c th h n v CA
ứ ủ 4.2.1.Ch c năng c a CA
ỉ
4.2.1.1. C p phát ch ng ch
ự ứ
ườ ỉ ố ứ ể ằ ấ ấ
CA xác th c ng ể
i dùng b ng cách c p phát ch ng ch s . Đ có th có
ượ ứ ườ ệ ầ ướ đ ỉ ố ủ
c ch ng ch s c a CA, ng ự
i dùng c n th c hi n các b c sau
ủ ặ ạ T o ra c p khoá riêng/khoá công khai c a mình
ặ ượ ạ ườ ầ ả Khi c p khoá đã đ c t o, ng i dùng c n ph i đăng ký khoá công khai
ớ ủ
c a mình v i CA
ườ ầ ấ ỉ ớ ứ ử Ng i dùng g i yêu c u c p ch ng ch t i cho RA
ẽ ể ườ RA s ki m tra danh tính ng ể
i dùng. Khi đã ki m tra xong, RA s ẽ
ể ầ
chuy n yêu c u đó cho CA
ỉ ằ ử ứ ứ ỉ ủ
CA ký ch ng ch b ng khoá riêng c a mình và g i ch ng ch cho RA.
ứ ẽ ể ậ ỉ ườ RA s chuy n ch ng ch mà đã nh n đ ượ ừ
c t CA cho ng i dùng đã
đăng ký
ỷ ỏ ứ
4.2.1.2.Hu b ch ng ch
ứ ỉ ề ợ ệ ạ ỗ ộ ỉ
M i ch ng ch đ u có m t giai đo n h p l . Tuy nhiên, trong m t s ộ ố
ườ ợ ệ ướ ứ ể ợ ợ ệ tr ỉ
ng h p mà ch ng ch có th không h p l tr ạ
c giai đo n h p l là
ự ộ ự ủ ể Có s l khoá riêng c a th c th
ủ ự ụ ư ự ự ể ổ ộ Có s thay đ i thông tin thu c tính c a th c th , ví d nh tên th c th ể
ự ặ ố ệ ủ
ho c m i quan h c a th c th v i t ể ớ ổ ứ
ch c
ự ộ Có s l ủ
khóa c a CA
66
ự ỷ ỏ ứ ầ ả ỉ
Do đó, c n ph i có s hu b ch ng ch
ộ ươ ể ử ụ ỷ ỏ ứ ứ ể M t vài các ph ng th c mà CA có th s d ng đ hu b ch ng ch ỉ
g mồ
Các c chơ ế
ử ụ ố ị ế ế ơ ơ ỳ ỷ ỏ ứ
C ch công b đ nh k : C ch này s d ng danh sách hu b ch ng
ỷ ỏ ứ ộ ỉ ỉ ch . Danh sách hu b ch ng ch là m t danh sách
ế ế ấ ấ ơ ơ ồ ứ
C ch truy v n online: C ch truy v n online bao g m có giao th c
ợ ệ ủ ứ ứ ạ ỉ ị tr ng thái ch ng ch và giao th c xác đ nh tính h p l c a các phiên giao
ự ượ ử ụ ể ư ồ ế
ị
d ch tr c tuy n: OCSP đ
ứ ỉ ị ợ ệ ủ ự ế ị ch . Giao th c xác đ nh tính h p l ứ
c s d ng đ đ a ra các thông tin thu h i ch ng
ượ
c c a các phiên giao d ch tr c tuy n đ
ợ ệ ự ể ử ụ
s d ng đ xác minh tính h p l ế
tr c tuy n
ạ ậ
ỉ
4.2.1.3.T o l p chính sách ch ng ch
ứ ứ
ộ ậ ỉ ậ ọ
ượ ạ ậ ủ ụ ứ ứ ể ả ở ỉ ắ
ợ
Chính sách ch ng ch là m t t p h p các lu t hay còn g i là các quy t c
ỉ ố ớ
c t o l p b i CA đ ch ra kh năng ng d ng c a ch ng ch đ i v i đ
ộ ườ ụ ể ặ ậ ứ ụ m t nhóm ng i c th ho c t p các ng d ng
ứ ụ ủ ể ỉ ị M c đích chính c a các chính sách ch ng ch là đ xác đ nh chính sách
ộ ổ ứ an toàn mà m t t ả
ch c ph i tuân theo
ỉ ố ướ ứ ệ ẫ ự
4.2.1.4.H ng d n th c hi n ch ng ch s (Certification Practice
Statement)
ẫ ự ẽ ượ ỉ ố ẽ ướ ứ ứ ự ỉ H ng d n th c hành ch ng ch s s ch ra ch ng th c s đ ự
c th c
ư ế ẽ ệ ệ ả ủ ụ ạ ộ hi n nh th nào. Tài li u này s miêu t
ượ ứ ị ỉ ẽ ượ ự ể đ c đ nh nghĩa trong chính sách ch ng ch s đ các th t c, ho t đ ng mà đã
ệ
c tri n khai, th c hi n
ư ế
nh th nào
ủ ụ ẽ ộ ỉ ổ CPS s ch ra các chính sách và các th t c mà m t công ty , t ứ
ch c
ể ấ ứ ả ả ỉ
ph i tuân theo đ c p phát và qu n lý ch ng ch
ể ượ ư ứ ư ặ CA có th đ ậ
c xem nh bên th ba tin c y nh VeriSign ho c Thawte
67
ủ ự ể ể ặ ộ ho c có th là m t th c th bên trong c a m t t ộ ổ ứ
ch c
ệ ụ ủ
4.2.2.Nhi m v c a CA
ậ ấ ỉ ừ ứ ầ ấ ườ Ch p nh n các yêu c u c p ch ng ch t ng ứ
i dùng, máy tính , ng
ặ ụ
d ng ho c thi ế ị
t b
ự ị ườ ụ ứ ầ ị Xác th c đ nh danh ng ỉ
i dùng, máy tính, d ch v yêu c u ch ng ch
ứ ạ ỉ ườ ầ T o ch ng ch cho ng i yêu c u
ỉ ử ụ ố ứ ủ Ký s ch ng ch s d ng khoá riêng c a mình
4.2.3. Các lo i CAạ
ạ ạ ượ ệ ằ ơ ả
Có hai lo i CA c b n . Các lo i CA đ c phân bi ị
t b ng v trí mà
ữ ứ ư ỉ chúng l u tr ch ng ch
4.2.3.1.Enterprise CA:
ữ ả ứ ủ ư ỉ Enterprise CA l u tr b n sao c a ch ng ch CA trong Active Directory.
ỉ ể ứ ụ ậ ạ ẫ ố ỉ ứ
Lo i CA này t n d ng các m u ch ng ch đ công b ch ng ch và danh
ẽ ồ ứ ồ ỉ ự ộ ớ ấ ỳ sách thu h i ch ng ch . Enterprise CA s h i đáp t đ ng t i b t k yêu
ề ơ ả ứ ề ậ ỉ ấ
ầ
c u ch ng ch nào. Đi u này v c b n cho phép các client truy c p và l y
ượ ứ ư ữ ứ ỉ ụ ộ ủ ỉ đ ỉ
c ch ng ch và l u gi ứ
ch ng ch trong kho ch ng ch c c b c a mình.
ể ặ ượ ử ụ ể ấ Chính vì đ c đi m này, nên EnterpriseCA không đ c s d ng đ c p phát
ứ ỉ ổ ứ ch ng ch cho các client bên ngoài t ch c
ượ ấ ư Enterprise CA đ c c u hình nh Domain Controller
4.2.3.2.Standalone CA
ư ữ ụ ộ ộ ỉ Standalone CA l u gi ứ
c c b thông tin trên ch ng ch , trong m t folder
ụ ể ẻ ậ ộ chia s mà ta có th truy c p thông qua Web. Standalone CA ph thu c vào
ườ ả ậ ị ừ ầ ố ỉ ng ấ
i qu n tr có ch p thu n hay t ứ
ch i yêu c u ch ng ch . Standalone
68
ượ ử ụ ể ấ ứ ỉ ườ CA đ c s d ng đ c p phát ch ng ch cho ng i dùng bên ngoài t ổ ứ
ch c
4.2.4.Các c p CAấ
4.2.4.1.Root CA(CA g c)ố
ứ ấ ượ ư ẩ ề Root CA là CA m c cao nh t đ c xem nh th m quy n đ i v i t
ộ ượ ệ ụ
các CA ph thu c đ c đ t ặ ở ướ
d ố ớ ấ ả
t c
ứ
ụ ấ
i nó. RootCA làm nhi m v c p ch ng
ỉ ấ ả ụ ộ ch cho t t c các CA ph thu c.
ớ ự ạ ứ ỉ RootCA khác v i các CA khác là nó t t o ch ng ch cho chính mình.
ộ ưở ấ
Trong mô hình phân c p, khi m t client tin t ả
ng root CA, thì nó cũng ph i
ưở ụ tin t ng các CA ph thu c đ ộ ượ ặ ở ướ
c đ t d i root CA
ụ ộ 4.2.4.2.Subordinate CA(CA ph thu c):
ượ ứ Subordinate CA (SubCA CA con): là CA đ ự ở
c ch ng th c b i CA cha.
ứ ứ ự ấ ằ ỉ CA cha ch ng th c CA con b ng cách c p phát và ký ch ng ch cho CA
con.
ụ ạ ấ ộ ế
Có hai lo i CA ph thu c trong ki n trúc phân c p là Intermediate CA
và Issuing CA
Intermediate CA:
ộ ượ ặ ụ ữ Intermediate CA là CA ph thu c đ c đ t gi a root CA và các CA ph ụ
ộ ứ ủ ứ ấ ỉ
thu c khác. Ch c năng c a Intermediate CA là c p phát ch ng ch cho CA
m c láứ
ứ Issuing CA (CA m c lá):
ở ứ ứ ủ ấ ấ Issuing CA là CA ấ
m c th p nh t. Ch c năng c a Issuing CA là c p
ứ ỉ ườ ế ị ạ phát ch ng ch cho các máy tính khác, ng i dùng, các thi t b m ng, server
ầ ị ụ
và các d ch v yêu c u CA
69
ở ế ộ Issuing CA luôn luôn ch đ online
ơ ồ ọ Hình 22: S đ minh h a rootCA và SubCA
ế ế
ưở ủ
ủ ệ ầ ầ ồ 4.3. Thi
Ý t
ạ ộ ậ ở ồ t k chung c a CA
ự
ng đ u tiên c a d án bao g m ba ph n chính: Giao di n web
ơ ở ữ ằ
b ng Perl, mã ngu n m OpenSSL trong ho t đ ng m t mã và c s d
ẫ ượ ế ệ ệ ơ ệ ẩ ả
li u. Khái ni m đ n gi n này cho đ n nay v n đ ầ
c coi là kh u hi u . G n
ư ấ ả ể ượ ự ệ ệ nh t ạ ộ
t c các ho t đ ng có th đ c th c hi n thông qua giao di n web.
ệ ượ ấ ướ ệ ấ Chúng ta có sáu giao di n đ c c u hình tr ề
c và có r t nhi u giao di n có
ể ạ ượ ừ ầ ỳ th t o đ c t ộ
chúng, tu thu c vào nhu c u
ỗ ợ ệ ố Hi n nay OpenCA h tr các nhân t sau
ệ Giao di n Public (Public interface )
ệ Giao di n LDAP (LDAP interface )
ệ Giao di n RA (RA interface )
70
ệ Giao di n CA (CA interface )
SCEP
OCSP
ố ớ ọ ệ
L c IP đ i v i các giao di n :(IPfilters for interfaces)
ậ ự ụ ậ ẩ Đăng nh p d a vào c m m t kh u : (Passphrase based login)
ứ ự ẻ ậ ồ ỉ Đăng nh p d a trên ch ng ch (bao g m th thông minh): ( Certificate
based login (including smartcards))
ỷ ỏ ỉ ự ứ ố ị Hu b ch ng ch d a trên s đ nh danh cá nhân : (PIN based
revocation)
ỷ ỏ ữ ứ ố ỉ ự
Hu b ch ng ch d a trên ch ký s : (Digital signature based
revocation)
CRL issuing
ơ ở ạ ầ ế ế ượ OpenCA đ c thi
ử ụ ể ộ ộ ỉ ử
t k cho c s h t ng phân tán. Nó không ch x lý
ự
m t CA offline và m t RA online, mà s d ng nó, chúng ta có th xây d ng
ấ ổ ể ớ ứ ề ặ ộ ỉ ộ
m t phân c p t ng th v i ba ho c nhi u m c. OpenCA không ch là m t
ả ươ ứ ụ ệ ỏ gi ỏ
i pháp nh cho các ph ng ti n nghiên c u nh và trung bình. M c đích
ỗ ợ ạ ớ ể ấ ổ ứ ớ ư ủ
c a nó là h tr tính linh ho t l n nh t có th cho các t ch c l n nh các
ườ ạ ọ ố tr ng đ i h c, các công ty đa qu c gia
4.3.1.Phân c p c b n
ấ ơ ả
ơ ả ưở ộ ổ ứ ủ ấ ỗ Ý t ng c b n c a m i PKI X.509 là m t t
ơ ở ữ ệ ế ẽ ề ộ ệ
ch c phân c p rõ r t.
ố ắ
Đi u này s hình thành nên m t cây c s d li u n u chúng ta c g ng
ế ạ
t o ra ki n trúc PKI phân tán
71
Figure 1.1. Database oriented view
ổ ữ ệ ư ậ ữ ậ ơ ở ữ ệ
Trao đ i d li u gi a các c s d li u cô l p nh v y có th đ
ơ ở ữ ệ ệ ự ộ ệ ố ử ụ ự ế ể ượ
c
ư
đ ng n u ta s d ng h th ng c s d li u phân tán , nh ng th c hi n t
ơ ở ữ ệ ệ ố ấ ỉ trong OpenCA thì h th ng c s d li u phân tán ch có duy nh t m t c
ộ ơ ở ữ ệ ự ự ế ậ ở ữ ệ
s d li u trong cây . N u ta th c s có m t c s d li u cô l p (ví d ộ ơ
ụ
ộ ổ ữ ệ ệ ể ả ả
ượ ứ ấ ả ọ m t CA offline) thì ta ph i có công ngh đ trao đ i d li u và qu n lý các
ệ
c gói g n trong giao di n node trong phân c p. Ch c năng qu n lý này đ
ượ ọ ế ế ư đ ả
c g i là node hay qu n lý node. Do đó, thi t k Open CA nh sau
72
ơ ồ S đ hình 2
ườ ủ ỗ Thông th ậ
ơ ở ạ ầ
ng thì m i server trong c s h t ng c a trung tâm tin c y
ơ ở ữ ệ ủ ự ụ ấ ằ
ề
đ u có c s d li u c a riêng nó nh m m c đích an ninh. S phân c p này
ầ ố ủ ậ là ph n c t lõi c a trung tâm tin c y
ơ ả ủ ạ ầ ể 4.3.2.Các giao di nệ
ế ượ
t đ
Sau khi ta bi ố
c h t ng c b n c a OpenCA, ta cũng có th mu n
ế ệ ọ ổ bi t CA, RA, LDAP và giao di n công khai hay còn g i là c ng web là gì.
ỗ ợ ấ ả ệ ầ ầ OpenCA h tr t ề
t c các thành ph n ph n m m thông quan giao di n web
73
ơ ồ ậ ổ ỹ ỉ S đ hình 1.3: T ng quan k thu t hoàn ch nh
ỗ ợ ấ ả ệ OpenCA h tr t t c các giao di n sau
Node (for node management)
CA
RA
LDAP
Pub
SCEP
4.3.2.1.Node
ệ ơ ở ữ ệ ử ả ấ ả Giao di n này qu n lý c s d li u và x lý t ấ
ứ
t c các ch c năng xu t
ể ượ ắ ầ ậ ươ ứ ơ ở ữ ệ
và nh p. C s d li u có th đ c b t đ u theo ph
ấ ả ư ả ả ạ ể ạ ạ
t o ra t t c các b ng nh ng b n thân OpenCA thì l ng th c mà OpenCA
ơ i không th t o ra c
74
ở ệ ủ ấ ả ậ ỗ ở ữ ệ
s d li u cho chính nó b i khác bi t c a m i hãng s n xu t.Vì v y chúng
ộ ơ ở ữ ệ ủ ề ầ ậ ầ ớ ta c n m t c s d li u v i các quy n truy c p đ y đ và m t c s d ộ ơ ở ữ
ệ ự ứ ệ ệ ớ ộ ồ li u m i. Giao di n này bao g m m t vài các ch c năng cho vi c d phòng
ộ ệ ố ụ ồ ự ư ả ệ và ph c h i nh ng chúng ta ph i có m t h th ng d phòng riêng bi t cho
ế ặ ỉ ủ ứ ả ơ ị
ể ự ự ệ ở khoá riêng và ch ng ch c a CA. Đây không ph i là c ch m c đ nh trong
ứ OpenCA đ d phòng khoá riêng. Chúng tôi không th c hi n nó b i vì th
ấ ấ ằ ườ ả nh t chúng tôi th y r ng đây không ph i là cách an toàn thông th ng đ
ử ụ ứ ế ầ ể
ạ
ự
d phòng khoá riêng và th hai là h u h t CA s d ng HSMs và do đó b n
ế ượ ự ắ ệ ộ
ầ
c n m t chi n l c d phòng đúng đ n và khác bi t
ể ượ ử ệ ệ ạ ấ ằ ậ
Vi c xu t và nh p cũng có th đ c x lý b ng giao di n này. B n có
ộ ớ ể ấ ắ ồ th c u hình các quy t c khác nhau không đ ng b v i các node trên các
ứ ặ ấ ơ ơ ấ
m c cao h n ho c th p h n trong phân c p.
4.3.2.2.CA
ệ ấ ả ể ạ ứ ầ Giao di n CA có t ạ
t c các ch c năng mà b n c n có đ t o ra các
ỷ ỏ ứ ứ ỉ ỉ ch ng ch và danh sách hu b ch ng ch
ồ ấ ả ể ử ụ ứ ể CA cũng bao g m t ổ
t c các ch c năng ta có th s d ng đ thay đ i
ư ệ ộ ạ ể ấ
c u hình thông qua m t giao di n web. Nh ng l ổ ấ
i không th thay đ i c u
ệ hình thông qua giao di n web khác
ủ ộ ử ộ ử ớ ồ
ể ượ ử ụ ộ ử ể ạ ữ ứ ạ ỉ CA cũng là l p ngoài c a b x lý lô. OpenCA bao g m các b x lý lô
ể ấ
r t m nh đ t o ch ng ch . Nh ng b x lý lô này có th đ c s d ng đ
ỉ ố ự ộ ừ ệ ố ứ
ạ
t o ra ch ng ch s t đ ng t h th ng ERP(Enterprise Resource Planning
ụ ư ệ ố ọ ồ ị H th ng h ach đ nh ngu n tài nguyên) ( ví d nh SAP, HIS, NIS)
ử ả ấ ả ạ ầ 4.3.2.3.RA
ủ RA c a OpenCA có kh năng x lý t t c các lo i yêu c u (request).
ồ ọ ọ ử ấ ầ ạ ầ ậ ỉ
ư ệ ử ử ẻ ầ ớ Bao g m có ch n l c, ch nh s a yêu c u, ch p thu n yêu c u, t o khoá
ườ
i riêng v i th thông minh, xoá các yêu c u sai và g i th đi n t cho ng
75
dùng
4.3.2.4. LDAP
ệ ượ ự ể ầ ả Giao di n LDAP đ
ề ầ ế ở ứ ề ấ LDAP. Đi u này là c n thi c xây d ng đ phân tách hoàn toàn ph n qu n lý
ự ự
t b i vì có r t nhi u ch c năng mà th c s là
ệ ườ ỉ ớ ả ộ ị ườ ử ụ riêng bi t cho ng i qu n tr LDAP, ch v i m t vài ng ớ
i s d ng m i
ứ ầ
c n thi ế ớ
t t i ch c năng này
4.3.2.5.Pub
ệ ồ ấ ả ữ ế ườ Giao di n Public bao g m t t c nh ng chi ti t mà ng ầ
i dùng c n. Bao
g mồ
ứ ầ ạ ỉ
T o ra các yêu c u ký ch ng ch cho Microsoft Internet Explorer
ứ ầ ạ ỉ T o ra các yêu c u ký ch ng ch cho Molilla 1.1 và Netscape
Communitor và Navigato
ạ ộ ậ ụ ầ
ể ạ ườ ế ế ả ườ T o ra các yêu c u đ c l p cho các client và khoá riêng ( ví d cho
ầ
t làm th nào đ t o ra yêu c u ị
i qu n tr server ng i mà không bi ng
và khoá riêng)
ậ ị ừ ạ
Nh n PEM đ nh d ng theo PKCS #10 t server
ỉ ứ
Ký ch ng ch
Ký vào CRLs
ỗ ợ ươ ứ ồ ỉ H tr hai ph ứ
ng th c thu h i ch ng ch khác nhau
ứ ế ỉ Tìm ki m ch ng ch
ứ ể ỉ ườ Ki m tra ch ng ch ng ệ
i dùng trong trình duy t ( Microsoft Internet
Explorer và Netscape Communicator và Navigator 4.7x)
ố ượ ng
76
ờ ủ
4.4. Vòng đ i c a các đ i t
ố ượ
ờ ủ
Vòng đ i c a các đ i t ng
ề ạ ố ượ ủ ự ẫ ầ Đôi khi có s nh m l n v tr ng thái c a các đ i t ng OpenCA. S ơ
ờ ủ ấ ả ể ể ẽ ạ ồ
đ sau đây s giúp b n có th ki m tra vòng đ i c a t t c các đ i t ố ượ
ng
OpenCA.
ờ ủ ơ ồ ứ ỉ
S đ 1.4. Vòng đ i c a các ch ng ch
ư
4.5. Các l u ý khi thi
ế ế
t k PKI
ấ ươ ề ờ ợ ư ư ế Ch ng này đ a ra r t nhi u l ạ
i g i ý mà chúng ta nên l u tâm n u b n
77
ế ế ệ ố ầ ầ thi t k h th ng PKI l n đ u tiên. .
ầ ứ ề ấ 4.5.1. Các v n đ ph n c ng
ờ 4.5.1.1.Th i gian
ộ ấ ủ ệ ố ề ớ ữ ấ ờ
ủ ạ M t trong nh ng v n đ l n nh t c a h th ng PKI đó là th i gian. Có
ườ
i hai lo i máy tính khác nhau đó là online và offline. Theo logic c a ng
ả ườ ế ố ạ ị
qu n tr thông th ng Khi máy tính k t n i vào m ng thì máy tính s s ẽ ử
ủ ờ ỏ ặ ộ ụ
d ng máy ch th i gian (time server). M t câu h i đ t ra là timeserver có
ưở ả ể ấ đáng tin t ng không không? Timeserver có th làm n y sinh ra hai v n đ
ứ ự ự ừ ứ ấ ờ ề
ồ
timeserver và th hai là ngu n sau. Th nh t là tem th i gian th c s t
ự ự ủ ờ ế ố ớ th i gian c a timeserver có th c s đáng tin không? K t n i t
ể ượ ệ ườ ả ả ầ có th đ c đ m b o an toàn theo công ngh đ i timeserver
ố
ng h m (tunnel) gi ng
ự ư ư ề ấ ự ồ ế ầ ờ nh IPSec nh ng v n đ th c s
ề ử ụ ồ ồ ệ ậ ờ timeserver đ u s d ng đ ng h sóng radio, nh n tín hi u th i gian đ là ngu n th i gian. H u h t các
ượ
c
ừ ạ ấ ễ ị ả ạ ề ệ ở t tr m truy n sóng radio. Tín hi u này r t d b gi ấ
m o b i vì nó r t
ự ự ủ ạ ờ ồ ượ ế
y u. Do đó ngu n th i gian c a m ng là th c s không đ c an toàn
iỗ
4.5.1.2.Đĩa l
ầ ổ ế ứ ề ấ ỏ ườ ầ
Các ph n h ng hóc v ph n c ng ph bi n nh t th ng liên quan t ớ
i
ậ ạ ỗ ự ạ ấ ả ộ
b ph n làm làm l nh và các l i đĩa. B n nên d phòng t
ặ ệ ỉ ượ ấ quan trong, đ c bi ứ
t là các ch ng ch đã đ c c p phát ALL. Không bao gi ữ ệ
t c các d li u
ờ
ượ ứ ấ ả ặ ồ ỉ đ ạ
c đánh m t ch ng ch ho c là b n ph i thu h i CA hoàn toàn. .
4.5.1.3.Theo dõi ph n c ng
ầ ứ
ạ ườ ủ ự ế ể ạ Thông th ng b n có th quan sát tr c quan n u laptop c a b n b
ạ ộ ạ ộ ư ư ộ ị ng ng ho t đ ng. M t máy tính offline b ng ng ho t đ ng cũng có th ị
ể
ượ ư ậ ự ự ệ ằ đ ầ
c phát hi n b ng s quan sát tr c quan nh v y. Tuy nhiên, thành ph n
ạ ộ ủ ư ị ạ ộ ấ online c a PKI b ng ng ho t đ ng thì l ể ở
i là m t v n đ b i vì các thông
ỉ ượ ấ ớ ư ứ ẵ ọ tin quan tr ng không s n sàng, nh là các ch ng ch đ c c p phát m i và
ư ậ ỷ ỏ ữ ứ ể ố ỉ danh sách hu b ch ng ch . Nh ng tình hu ng nh v y cũng có th làm
ị ả ụ ủ ạ ư ệ ế gi m các d ch v c a b n nh SCEP. N u giao di n công khai c a c s
ậ ủ ạ ẽ ị ả ả ấ ị ủ ơ ở
ố ớ
ề
ạ ầ
h t ng an toàn b suy gi m, thì v n đ tin c y c a b n s b gi m đ i v i
78
ườ ươ ng ủ ạ
i dùng c a b n trong t ng lai.
4.5.2.An toàn v t lýậ
ủ ế ạ ạ ồ ộ ố
N u CA offline c a b n bao g m m t máy tính xác tay và b n mu n
ả ự ể ể ộ ỗ ầ ả
đ m b o s ki m soát kép và không có m t đi m l
ươ ử ụ ộ ả
ạ
i nào thì b n c n ph i
ữ tuân theo ph ng pháp sau : S d ng m t “két “ module IT và hai két d
ứ ả ệ ậ ệ ộ ộ li u. M t két module IT có m t UPC mà có cùng m c b o v v t lý nh ư
ắ ộ ượ ử ụ ể m t két s t (ngăn ) Két này đ c s d ng đ cho phép máy tính xác tay đó
ừ ả ượ ề ề ờ ạ ộ
không ng ng ho t đ ng, do đó gi m đ ẵ
ấ
c th i gian và v n đ v tính s n
ả ằ ấ ả ẽ ề ể ả sàng. T t c ba két đó s có hai khoá . Đi u này đ m b o r ng ki m soát
ẽ ự ự ơ ẻ ệ ậ ằ ặ ả truy c p kép b ng chia s khoá. Vi c cài đ t cũng s th c s đ n gi n và
ả ệ
hi u qu
ổ ứ ủ ự ự ễ ể
ổ ứ ủ ữ ệ ướ ầ T ch c c a các két là th c s d dàng. Ta có th phân tách passphrase
ể c và sau. T ch c c a d li u và máy tính có th CA thành hai ph n là tr
nh sauư
ủ ồ ớ Két module IT bao g m máy tính xách tay (v i khoá riêng c a CA) và
ướ ủ ụ ậ ẩ ầ
ph n tr c c a passphrase (c m m t kh u)
ữ ệ ự ầ ầ ồ ồ Két d li u đ u tiên bao g m các ph n d phòng (bao g m các ph n d ầ ự
ủ ụ ậ ẩ ầ
phòng khoá riêng) và ph n sau c a c m m t kh u
ữ ệ ứ ả ầ ồ ướ ủ ụ ầ Ngăn d li u th hai bao g m c ph n tr ậ
c và ph n sau c a c m m t
kh u ẩ
ự ổ ứ ẳ ằ ữ ệ ế ả ị S t ộ
ch c này đ m b o r ng n u m t ngăn d li u b phá thì cũng s ẽ
ư ạ ớ ơ ở ạ ầ ư ậ ự ả không làm h h i t
ữ ệ ừ ế ẽ ấ ộ ả
ấ
i c s h t ng. S phân c p nh v y cũng đ m b o
ạ ộ
ằ
r ng n u m t m t ngăn d li u thì cũng s không làm ng ng ho t đ ng
ồ ạ ạ ầ ấ ộ ủ
c a b n. Chúng ta c n hai ngăn t n t i và m t m t ngăn thì cũng có th ể
ậ ượ ấ ấ ờ ch p nh n đ ắ
ộ
c ít nh t trong m t th i gian ng n
ầ ư ưở ơ ả ứ ủ ố ớ ằ
C n l u lý r ng đây là ý t
ử ụ ữ ữ ượ ồ ứ ủ
trung bình. Nh ng CA có m c r i ro cao nên s d ng nh ng l ữ
ng c b n đ i v i nh ng CA có m c r i ro
ứ
c đ ph c
79
ể ấ ậ ượ ể ơ ề ơ ộ ỏ ị ạ
t p h n đ có th ch p nh n đ c nhi u h n m t ngăn b phá h ng.
ề ề ạ ấ
ứ ế ầ ộ ư ấ ả ụ ị 4.5.3.Các v n đ v m ng
ủ
M t PKI mang đ y đ ch c năng n u nh t t c các d ch v mà nó
ấ ạ ộ ữ ứ ề ỉ cung c p đ u hoàn toàn ho t đ ng. Nghĩa là không ch nh ng th nh
ư ậ ả ấ ộ ư
ề
OCSP và SCEP mà c các gateway công c ng cũng nh v y. R t nhi u
ườ ẽ ủ ế ư ằ ạ ộ ng
ủ ứ ư ự ế ầ ầ ộ
i nghĩ r ng s đ n u nh OCSP và m t CDP duy trì ho t đ ng
ụ
nh ng th c ra đó là không đ . Lý do đ u tiên là h u h t các ng d ng
ề ứ ể ấ ạ ộ không hi u OCSP. V n đ th hai là CDP đang ho t đ ng ch h tr ỉ ỗ ợ
ự ế ấ ỉ ỗ ợ ề ứ ụ ấ ậ
LDAP, b t lu n trên th c t có r t nhi u ng d ng ch h tr HTTP. PKI
ạ ộ ạ ộ ủ ế ầ ỉ
ẽ
s không ho t đ ng đ y đ n u ch có CDP đang ho t đ ng. Không ai có
ể ả ỉ ớ ỉ ủ ứ ứ ườ ồ ạ th t ặ
i ch ng ch m i ho c ch ng ch c a ng i dùng đang t n t i trong
ạ ư ậ ẽ ỉ ượ ư ạ ộ
c an toàn, nh ng nó không ho t đ ng
tr ng thái nh v y. PKI s ch đ
đ y đầ ủ
ỉ
4.5.4.V n đ v ch ng ch
ấ
ầ ề ề ứ
ồ ề ớ ấ ấ Ph n này bao g m hai nhóm v n đ l n là CDP và các v n đ c th
ề ụ ể ề ứ ẽ ượ ụ ụ ấ ề ứ
v ng d ng. Tuy nhiên thì các v n đ c th v ng d ng s đ ề ụ ể
ả
c th o
ậ ướ ề ẫ ầ
lu n trong ph n khác trong h ng d n v CA
ố ỉ 4.5.5.CDPs (Các đi m phân ph i danh sách hu b ch ng ch (CDP))
ộ ộ ỷ ỏ ứ
ặ ỉ ể
ướ M t vài PKI tr ứ
c đây không có CDP ho c ch có m t CDP. Các ng
ỉ ượ ử ụ ứ ả ạ ụ
d ng an toàn ph i xác minh tr ng thái ch ng ch đ
ườ ầ ở ộ ủ ư ế ẽ ể
ụ
d ng nh th s ki m tra tr ng CDP trong ph n m r ng c a ch ng ch ữ ứ
c s d ng. Nh ng ng
ỉ
ứ
ể ồ ượ ể ể
đ tìm ra ngu n xác minh có th dùng đ ố
c. Ngày nay, đi m phân ph i
ỷ ỏ ứ ỉ ượ ộ danh sách hu b ch ng ch không đ ồ
c coi là m t ngu n cho CRL. Nó có
ể ượ ệ ộ ồ th đ c xem là m t responder OCSP (bên h i đáp OCSP). CDP hi n nay là
ứ ể ề ạ ỉ
nhi u đi m tr ng thái ch ng ch
ỏ ầ ứ ầ ượ ỗ ợ ứ Câu h i đ u tiên là các giao th c nào c n đ c h tr . Giao th c ph
ế ấ ả ượ ỗ ợ bi n nh t là LDAP và HTTP ph i luôn đ c h tr . HTTP đ ổ
ượ ỗ ợ ở
c h tr b i
ư ấ ả ế ị ư ộ ế ị ỉ ỗ ợ ầ
g n nh t t c các thi t b , nh ng m t vài thi t b ch h tr LDAP thay vì
ặ ệ ả ạ HPPT, đ c bi ộ
t trong m t vài gi i pháp m ng. Thêm vào đó còn có OCSP
ứ ể ủ ứ ạ ộ ỉ
80
ấ ố ơ ấ ế ố ứ ề ệ ạ ớ và HTTPS. OCSP là giao th c đ xác minh tr ng thái c a m t ch ng ch .
ậ
t h n r t nhi u so v i các k t n i m ng ch m Giao th c này có hi u su t t
ộ ượ ạ ặ ớ ứ ớ ỉ ị ế
n u b n có m t l ỷ ỏ
ề
ng l n các cài đ t v i nhi u ch ng ch ( b hu b ).
ỗ ợ ạ ớ ộ ồ ỉ ậ
HTTPS ch đôi khi h tr b n v i m t ngu n tin c y
ạ ầ ứ ế ầ ậ ạ ỏ Câu h i th hai là c n bao nhiêu CDP v t lý mà b n c n. N u b n thi ế
t
ậ ẽ ể ả ả ả ấ ắ
ụ ủ ư ầ ị ộ
ế ộ ạ ầ
k m t h t ng kh chuy n thì ph i có kh năng ch p nh n s ng t m t
ố
t vài d ch v c a các thành ph n nh cable, router, switch, và server. Cách t
ộ ộ ể ố ớ ụ ộ ế ấ ỉ ạ nh t là nên có CDP c c b n u ch có m t b k t n i t i m ng trung tâm.
ề ế ả ầ ọ Tuy nhiên, không ph i m i chi nhánh đ u c n CDP riêng, vì n u các máy
ọ ệ ố ủ ầ ế ệ ố
tính c a h (h th ng mail, h th ng file) là Offline không c n thi ả
t ph i
có CDP online.
ề ụ ể ề ứ ụ ấ 4.5.6.Các v n đ c th v ng d ng
4.5.6.1.Mail Server
ắ ầ ắ ầ ế ể ế ả ậ ặ
N u b t đ u nghĩ đ n b o m t Mail thì đi m b t đ u là S/MIME ho c
ỉ ử ụ ữ ầ ả ị PGP. Đ u tiên nh ng nhà qu n tr ch s d ng IMAPS và POPS. Sau đó h ọ
ủ ượ ề ố ắ ả ậ nghĩ v các máy ch đ ể
c b o m t và c g ng tri n khai SMTP thông qua
ỉ ượ ấ ể ượ ử ụ ứ ở TLS. Các ch ng ch đ c c p b i OpenCA có th đ c s d ng cho SMTP
ư ứ ứ ở ỉ ỉ ể
qua TLS b i vì các ch ng ch có th đóng vai trò nh ch ng ch Client và
ứ ứ ể ộ ỉ ch ng ch Server. M t SMTP Server có th dùng 2 giao th c cho SMTP qua
ể ử ụ ở ộ ỉ ơ ứ ứ ầ ộ TLS. Nó có th s d ng m t ch ng ch đ n ch a ph n m r ng cho các
ứ ặ ộ ỉ ể
Client và Server TLS, ho c cũng có th dùng 2 ch ng ch : m t cho Client,
ộ m t cho Server.
4.5.6.2. Client Netscape
ẩ Các Client Netscape cũ không tuân theo các chu n RFC.
4.5.6.3.OpenLDAP
ư ự ề ệ ầ ở ủ
ồ
OpenLDAP là ph n m m mã ngu n m , nh ng vi c th c thi TLS c a
ủ ẽ ể ế ả ấ ố nó không ph i là t t nh t. Nó s không ki m tra tên ti p theo c a ch th
ẽ ể ủ ợ ớ ủ ể
ặ ị
ủ ế
mà nó s ki m tra tên chung c a ch th mà phù h p v i tên DNS ho c đ a
ề ẽ ỉ ỗ ế ủ ể ủ ỉ ử ụ ứ ch IP. Đi u này s gây ra l i n u ch th c a ch ng ch s d ng tên
81
ỗ ợ ữ ở ộ clients Netscape cũ. OpenLDAP không h tr nh ng m r ng chung
ươ ướ Ch ng V: Đánh giá và h ể
ng phát tri n
5.1. Đánh giá
ế
ệ ố ự ự ứ ồ ậ
K t lu n
Nghiên c u và xây d ng h th ng PKI d a trên mã ngu n OpenCA là
ộ ấ ầ ượ ề ẻ ự ệ ớ
m t v n đ còn m i m và luôn c n đ c hoàn thi n. Mô hình PKI d a
ượ ự ừ ấ ề ồ ồ
trên mã ngu n OpenCA đ c xây d ng t r t nhi u mã ngu n khác bao
ồ
g m Apache, OpenSSL, mod_ssl, perl và các module perl. Quá trình nghiên
ệ ố ự ự ể ồ ứ
c u, xây d ng và phát tri n h th ng PKI d a trên mã ngu n OpenCA là
ự ấ ậ ủ ầ ả ộ ườ ử ụ m t quá trình lâu dài và c n ph i có s ch p nh n c a ng ỷ
i s d ng. T
ẽ ượ ệ ở ề ẩ ệ ườ
l
ng i dùng s đ ệ
c tăng khi các chu n v công ngh tr nên hoàn thi n
ứ ượ ứ ụ ự ả ả ơ
h n, ch ng minh đ ệ
c kh năng ng d ng và hi n th c hoá là tính kh thi
ụ ứ ự ụ ệ ệ ậ ị Hi n nay, vi c áp d ng m t mã khoá công khai và d ch v ch ng th c
ệ ử ể ả ạ ộ ệ ử ả ị đi n t đ đ m b o an toàn thông tin trong các ho t đ ng giao d ch đi n t
ả ượ ề ố ấ là gi i pháp đ c nhi u qu c gia trên th gi ế ớ ử ụ Ở ệ
i s d ng. Vi t Nam, v n
ự ế ư ề ể ặ ộ ề
đ trên tuy đã có s ti n tri n, nh ng còn g p nhi u khó khăn. M t vài năm
ở ạ ộ ố ơ ạ ộ ị ơ ữ ầ tr l i đây, m t s đ n v , c quan cũng đã có nh ng ho t đ ng ban đ u
ệ ố ự ứ ứ ể ệ ậ ỹ nghiên c u công ngh , xây d ng h th ng k thu t, phát tri n các ng
ụ ứ ệ ử ự ử ệ ị ệ ể ấ
ụ
d ng và th nghi m cung c p d ch v ch ng th c đi n t . Vi c tri n khai
ệ ử ự ứ ụ ị ộ ự ầ ư ầ ấ
các d ch v cung c p ch ng th c đi n t yêu c u m t s đ u t lâu dài và
ớ ạ ế ả ư ầ ấ nghiêm túc m i mang l ố
i k t qu nh mong mu n. Ph n khó khăn nh t
82
ụ ể ị ở ổ ứ ự ệ ậ ổ trong tri n khai d ch v này là khâu t ch c th c hi n và thay đ i nh n
ứ ủ ườ ụ ứ ữ ủ ự ố ị th c c a con ng i. Tính pháp lý c a ch ký s và d ch v ch ng th c
ệ ử ề ượ ặ ệ ở ệ đi n t ộ ấ
cũng là m t v n đ đang đ c đ t ra. Hi n nay, Vi t Nam đã ban
ộ ố ư ệ ề ậ ậ ự
hành m t s các đi u lu t trong lĩnh v c này nh Lu t công ngh thông tin
ệ ử ậ ị ban hành ngày 29/6/2006, Lu t giao d ch đi n t ban hành ngày 29/11/2005,
ậ ộ ữ ố ổ ứ Lu t n i dung ch ký s ban hành ngày 15/2/2007..Các t ch c, cá nhân
ụ ứ ử ụ ệ ử ầ ả ượ ự ấ ị
cung c p và s d ng d ch v ch ng th c đi n t c n ph i đ ả
c qu n lý,
ụ ấ ị ề ờ ồ
đ ng th i có quy n , nghĩa v nh t đ nh.
ộ ơ ở ạ ầ ệ ế ẽ ế ự
Ngoài ra n u m t c s h t ng có công ngh y u thì s không có s
ưở ạ ề ữ ụ ủ ấ ị ườ tin t ng và nhà cung c p d ch v và nh ng e ng i v tâm lý c a ng i
ơ ở ạ ầ ệ ể ạ ở dùng này cũng là các tr ng i trong vi c tri n khai c s h t ng an ninh
ắ ộ
r ng kh p
Ụ Ụ
PH L C
ườ
1.Môi tr
ầ ể
ng phát tri n
ồ
ề ả ầ ở ộ ề
Ph n m m mã ngu n m OpenCA không ph i là m t...Ph n m m
ồ ượ ự ề ề ấ ầ ồ ở ở
ngu n m OpenCA đ c d a trên r t nhi u ph n m m ngu n m khác bao
ồ
g m : Apache, OpenSSL, mod_ssl, perl, OpenLDAP và các module perl và.
ầ ượ ề ề ồ Ph n này em xin phép đ ầ
c trình bày v các ph n m m ngu n m đ ở ượ ử c s
ể ự
ụ
d ng đ xây d ng nên OpenCA
1.1.Apache
Apache HTTP SERVER PROJECT
ộ ự ỗ ự ể ự ể D án Apache HTTP Server là m t s n l c đ phát tri n và duy trì
ủ ệ ệ ề ạ ộ ồ m t mã ngu n HTTP cho các máy ch hi n đ i dành cho các h đi u hành
ủ ự ụ ư ệ ạ ấ hi n đ i nh Unix và Window NT. M c đích c a d án này là cung c p
ủ ở ộ ụ ệ ệ ả ấ ộ m t máy ch m r ng, hi u qu và an toàn làm nhi m v cung c p các
83
ộ ớ ụ ệ ẩ ồ ị
d ch v http đ ng b v i các tiêu chu n HTTP hi n nay
ự ượ ữ ả ộ ở ườ D án HTTP đ c qu n lý chung b i m t nhóm nh ng ng i tình
ệ ế ắ ớ ườ ử ụ nguy n trên kh p th gi ữ
i, nh ng ng i s d ng Internet và Web đ ể
ủ ự ể ệ ề truy n thông, xây d ng, phát tri n máy ch và các tài li u có liên quan.
ữ ườ ệ ượ ọ Nh ng ng i tình nguy n này đ c g i là nhóm Apache (Apache Group).
ơ ữ ườ ử ụ ưở ồ H n n a, có hàng trăm ng i s d ng cũng đóng góp ý t ng, mã ngu n và
ự ệ tài li u cho d án.
1.2. OpenSSL
ự ỗ ự ể ộ ồ ợ ở ớ
ằ
OpenSSL là s n l c h p tác nh m phát tri n b mã ngu n m v i
ủ ượ ể ứ ầ
đ y đ tính năng, đ
ứ ở ộ ượ ữ ả ồ 3) và giao th c TSL(version 1) đ c tri n khai trên giao th c SSL (version 2 và version
ườ
i c qu n lý b i c ng đ ng nh ng ng
ế ớ ử ụ ể ế ố ệ ể tình nguy n trên toàn th gi i s d ng Internet đ k t n i và phát tri n b ộ
ệ OpenSSL và các tài li u có liên quan
ư ề ế ầ ầ H u h t các ph n m m nh IMAP&POP, Samba, OpenLDAP, FTP,
ữ ể ệ ề ầ ầ ề
Apache và nh ng ph n m m khác đ u yêu c u công vi c ki m tra tính xác
ự ườ ử ụ ướ ử ụ ụ ị ủ
th c c a ng i s d ng tr c khi cho phép s d ng các d ch v này.
ề ả ự ư ệ ặ ườ ử ụ ị
Nh ng m c đ nh vi c truy n t i s xác minh thông tin ng i s d ng và
ẩ ậ ở ạ ể ượ ả ọ m t kh u (password) ầ
d ng văn b n thu n túy nên có th đ ặ
c đ c ho c
ộ ườ ẽ ả ậ ả ỹ ổ ở
thay đ i b i m t ng ư
i khác. K thu t mã hóa nh SSL s đ m b o tính an
ớ ỹ ữ ệ ủ ề ẹ ậ toàn và nguyên v n c a d li u, v i k thu t này thông tin truy n trên
ở ạ ể ể ố ượ ộ ượ ạ
m ng d ng đi m n i đi m đ c mã hóa. M t khi OpenSSL đã đ c cài
ể ử ụ ụ ứ ư ộ ặ
đ t trên Linux server chúng ta có th s d ng nó nh m t công c th ba
ứ ụ cho phép các ng d ng khác dùng tính năng SSL
ụ ậ ộ ộ ứ ể ạ OpenSSL là m t b công c m t mã tri n khai trên giao th c m ng SSL
ẩ ậ và TLS và các chu n m t mã có liên quan
ươ ể ử ụ ệ ộ Ch ứ
ụ
ng trình OpenSSL là m t công c dòng l nh đ s d ng các ch c
ủ ủ ậ ừ ư ệ
năng m t mã c a các th vi n crypto c a OpenSSL t nhân.
ư ệ ứ ấ ậ ứ
OpenSSL có các th vi n cung c p các ch c năng m t mã cho các ng
84
ư ụ
d ng nh an toàn webserver
ụ ệ 1.2.1.Công c dòng l nh trong openssl
ệ ẩ
1.2.1.1.Các dòng l nh chu n
ỗ asnlparse: phân tích chu i ASN.1
ả
ca: Qu n lý CA
ả ộ Ciphers: Miêu t b mã hoá
ệ ậ cms: ti n tích (Cú pháp thông báo m t mã)
ỷ ỏ ứ ả ỉ crl: Qu n lý danh sách hu b ch ng ch (CRL)
ể ổ
crl2pkcs7: Chuy n đ i CRL thành PKCS37
ả ượ dgst: Tính toán b n tóm l c thông báo
ả ố dh: Qu n lý cá tham s DiffieHellman
ả ạ ố dhparam: T o và qu n lý các tham s DiffieHellman
ữ ệ ả dsa: Qu n lý d li u DSA
ạ ả ố dasparam: T o và qu n lý tham s DSA
ử ườ ec: X lý khoá (đ ng cong Elliptic)
ạ ố ecparam: T o và thao tác tham s EC
ằ ậ enc: Mã hoá b ng m t mã
ạ ố gendh: T o các tham s DiffieHellman
ạ ừ ố gendsa: T o khoá riêng t các tham s
ạ ặ ố genpkey: T o khoá riêng ho c các tham s
85
ạ genrsa: T o khoá riêng RSA
ỉ ự ứ ứ ế ệ ạ
ocsp: Ti n ích giao th c tr ng thái ch ng ch tr c tuy n
ạ ượ passwd: T o các password đ c hash
ữ ệ ả pkcs12: Qu n lý d li u PKCS#12
ữ ệ ả pkcs7: Qu n lý d li u PKCS#7
ả pkey: Qu n lý khoá riêng và khoá công khai
ả ậ ố
pkeyparam: Qu n lý tham s thu t toán khoá công khai
ệ ậ ọ ộ ậ
pkeyutl: Ti n ích h at đ ng m t mã thu t toán khoá công khai
ạ ẫ rand: T o các bytes ng u nhiên
ứ ầ ả ỉ req: Qu n lý yêu c u ký ch ng ch PKCS#10 X.509
ả rsa: Qu n lý khoá RSA
ệ ả ệ
rsautl: Ti n ích RSA cho vi c ký, xác minh, mã hoá và gi i mã
ế ố ờ s_time: Máy th i gian k t n i SSL
ữ ệ ả sess_id: Qu n lý d li u phiên SSL
ử smime: X lý mail S/MIME
ậ ố ộ
speed: Đo t c đ thu t toán
ệ ạ
spkac: Ti n ích t o và in SPKAC
ụ ấ ề ờ ts: Công c c p quy n tem th i gian
ứ ỉ verify: Xác minh ch ng ch X.509
ả version:Thông tin phiên b n OpenSSL
86
ứ ả ỉ ữ ệ
x509: Qu n lý d li u ch ng ch X.509
ượ
c thông báo
ệ
ượ
1.2.1.2.Các dòng l nh tóm l
c MD2
md2: tóm l
ượ md5:Tóm l c MD5
ượ mdc2: tóm l c MDC2
ượ rmdl160: tóm l c RMD160
ượ sha: Tóm l c SHA
ượ sha1: Tóm l c SHA1
ượ sha224 :Tóm l c SHA224
ượ sha256 :Tóm l c SHA256
ượ sha384 :Tóm l c SHA384
ượ sha512: Tóm l c SHA512
ệ
ề
1.2.1.3. Các dòng l nh v mã hoá
base64: mã hoá Base 54
bf bfcbc bfcfb bfecb bfofb : Mã Blowfish
cast castcbc : Mã CAST
cast5cbc cast5cfb cast5ecb cast5ofb :Mã CAST5
des descbc descfb desecb desede desedecbc desedecfb desedeofb
desofb :Mã DES
des3 desx desede3 desede3cbc desede3cfb desede3ofb :Mã 3DES
idea ideacbc ideacfb ideaecb ideaofb :Mã IDEA
87
rc2 rc2cbc rc2cfb rc2ecb rc2ofb :Mã RC2
rc4 :Mã RC4
rc5 rc5cbc rc5cfb rc5ecb rc5ofb :Mã RC5
ư ệ 1.2.2.Th vi n SSL/TLS trong OpenSL
1.2.2.1.Miêu tả
ư ệ ứ ể
Th vi n ssl trong OpenSSL tri n khai giao th c SSL và TLS.
ư ệ ẽ ượ ầ ở ạ Đ u tiên th vi n s đ c kh i t o
ố ượ ượ ạ ư ộ ơ ấ ế ậ Sau đó đ i t ng SSL_CTX đ c t o ra nh m t c c u thi ế
t l p k t
ề ẽ ấ ọ ỳ ớ ứ ậ ố
n i TLS/SSL. S có r t nhi u tu ch n liên quan t ỉ
i ch ng ch , thu t toán
ể ượ ố ượ ặ có th đ c cài đ t trong đ i t ng này
ộ ế ố ạ ượ ạ ể ượ Khi m t k t n i m ng đ c t o ra, nó có th đ c gán cho đ i t ố ượ
ng
ượ ạ ố ượ SSL. Sau khi đ i t c t o ra t ng SSL đ
ộ ế ố ẽ ế ợ ữ ạ ầ ừ SSL_new, SSL_set_fd ho cặ
ớ ố
SSL_set_bio, nh ng thành ph n này s k t h p m t k t n i m ng v i đ i
t ngượ
ắ ượ ự Sau khi b t tay TLS/SSL đ ệ
c th c hi n nh ờ SSL_accept ho cặ
ượ ử ụ ể ọ SSL_connect. SSL_read và SSL_write đ
ế ố ể ượ ử ụ ể ế trên k t n i TLS/SSL. SSL_shutdow có th đ ữ ệ
c s d ng đ đ c và ghi d li u
ế
c s d ng đ k t thúc k t
ố
n i TLS/SSL
ấ
1.2.2.2. C u trúc d li u
ư ệ ứ ủ ả
ữ ệ
ệ
Ch c năng hi n có c a th vi n ssl trong OpenSSL gi i quy t đ ế ượ
c
ữ ệ ấ
c u trúc d li u sau
SSL_METHOD
ộ ấ ả ứ ươ ứ ộ Đây là m t c u trúc miêu t ch c năng/ph ư ệ
ng th c th vi n n i ssl
ượ ử ụ ộ ộ
n i b . Nó đ ể ạ
c s d ng đ t o SSL_CTX
88
SSL_CIPHER(SSL Cipher)
ấ ắ ữ ậ ặ ệ C u trúc này n m gi thông tin thu t toán cho phép mã hoá đ c bi t mà
ủ ứ ầ ẵ ượ ấ là ph n lõi c a giao th c SSL/TLS. Các phép mã hoá s n có đ c c u hình
trên SSL_CTX
SSL_CTX (SSL Context)
ộ ấ ữ ả ụ ượ ạ ặ ở Đây là m t c u trúc ng c nh toàn c c đ c t o b i server ho c client
ồ ạ ỗ ươ ủ ế ắ ờ
trong m i th i gian t n t i ch ữ
ng trình và nó n m gi a ch y u các giá tr ị
ủ ấ ặ ị ị ượ ạ ế ố m c đ nh c a c u trúc SSL, các giá tr mà đ c t o cho khi k t n i sau đó
SSL_SESSION (SSL Session)
ứ ấ ế ủ ệ Đây là c u trúc ch a chi ti ế ố
t phiên TSL/SSL hi n có c a k t n i:
ứ ỉ SSL_CIPHER, ch ng ch client và server, khoá
SSL (SSL Connection)
ấ ượ ạ ặ ỗ ở Đây là c u trúc SSL/TLS chính , đ c t o b i server ho c client m i khi
ế ậ ầ ấ ự ự ố ế ố ượ
k t n i đ c thi t l p. Đây th c s là ph n c u trúc c t lõi trong SSL API.
ụ ỗ ườ ớ ạ ứ
M i khi ch y ng d ng th ố ấ
ng phân ph i c u trúc này t ấ
i các c u trúc
khác
1.2.2.3. Các file header
ư ệ ữ ứ
ấ
Th vi n ssl trong OpenSSL cung c p nh ng file header C sau, có ch a
ữ ệ ứ ẫ ấ các m u cho c u trúc d li u và ch c năng
ứ ầ ố
ssl.h: Đây là file header chung cho SSL/TLS API, nó có ch a ph n c t
ủ lõi bên trong c a SSL API
ệ ớ ứ ỉ
ssl2.h: Đây là file header con ch có quan h v i giao th c SSLv2
ệ ớ ứ ỉ
ssl3.h: Đây là file header con ch có quan h v i giao th c SSLv3
ệ ớ ứ ỉ ssl23.h: Đây là file header con ch có quan h v i giao th c SSLv2 và
89
SSLv3
ệ ớ ứ ỉ
tlsl.h: Đây là file header con ch có quan h v i giao th c TLSv1
ư ệ ậ 1.2.3. Th vi n m t mã trong OpenSSL
1.2.3.1. Miêu t
ả
ộ ố ượ ư ệ ậ ấ ớ Th vi n m t mã trong OpenSSL cung c p m t s l ậ
ng l n các thu t
ượ ử ụ ẩ ủ ề ấ ị ậ
toán m t mã đ c s d ng trong r t nhi u chu n c a Internet. Các d ch v ụ
ượ ư ệ ấ ở ượ ử ụ ụ ủ ở đ c cung c p b i th vi n này đ c s d ng b i các công c c a SSL,
ượ ử ụ ể ổ TLS và S/MIME và chúng cũng đ c s d ng đ b sung cho SSH,
ẩ ậ OpenPGP và các chu n m t mã khác
ổ
1.2.3.2.T ng quan
ư ệ
ư ệ ộ ố ổ ồ Th vi n libcrypto bao g m m t s các th vi n con b sung cho các
ậ ẻ thu t toán riêng l
ậ ồ ố ứ
Tính năng này bao g m mã hoá đ i x ng, m t mã khoá công khai và s ự
ứ ử ậ ả ẫ ậ ạ ố ỉ tho thu n khoá, x lý ch ng ch , hàm hash m t mã và t o ra s ng u nhiên
gi l pả ậ
ộ ụ
1.2.4. B công c OpenSSL
ụ ộ ồ B công c OpenSSL bao g m
ự ượ libssl.a: Xây d ng trên SSLv2 và SSLv3 và các code đ ầ
c yêu c u trên
ộ ả
c SSLv2 và SSLv3 và TLSv1 trong m t server và client
ư ệ ư ệ libcrypto.a : Th vi n mã hóa chung. Trong th vi n này thông th ườ
ng
bao g mồ
ậ
+M t mã
ế ộ ế ư ệ ể ủ ủ ồ libdes: Th vi n c a des. Bao g m 15 ch đ /bi n th c a DES (các
ế ộ ủ ả phiên b n khóa 1,2 và 3 c a các ch đ ecb, cgc, cfb và ofb)
Mã hóa RC4
90
ế ộ Mã hóa RC2: Có 4 ch đ khác nhau là ecb, cbc, cfb và ofb
ế ộ Mã hóa Blowfish: Có 4 ch đ khác nhau là ecb, cbc, cfb và ofb
ế ộ Mã hóa IDEA: Có 4 ch đ khác nhau là ecb,cbc,cfb và ofb
ượ +Tóm l c thông báo
ậ ượ ậ Các thu t toán tóm l c thông báo MD5 và MD2, SHA và thu t toán
ượ tóm l c thông báo SHA1
ượ Tóm l c thông báo MDC2.
+ Khóa công khai
ạ ả T o/mã hóa/gi i mã RSA
Không có gi ớ ạ ố ượ
i h n s l ng bit
ả ạ
T o/gi i mã/mã hóa DSA
Không có gi ớ ạ ố ượ
i h n s l ng bit
ạ ổ T o/trao đ i khóa DiffieHellman
ớ ạ ề ố ượ Không có gi i h n v s l ng bit
ứ ỉ + Ch ng ch X.509v3
ả ứ ừ ị Mã hóa/gi ỉ
i mã ch ng ch X.509 thành/t ự
ASN1 nh phân và PEM d a
ỗ ợ ằ ộ ị trên mã hóa nh phân ASCII h tr mã hóa b ng m t khóa riêng. Ch
ể ạ ể ạ ứ ứ ầ ỉ
trình đ t o ra các yêu c u ch ng ch RSA và DSA và đ t o ra ch ng ch ươ
ng
ỉ
RSA và DSA
1.3.Mod_ssl
91
ạ ủ ế ợ ủ Mod_ssl” k t h p tính linh ho tt c a Apache và tính an toàn c a openssl
ấ ậ ấ ạ Mod_ssl cung c p tính năng m t mã r t m nh cho Apache 1.3 thông qua
ở ự ỡ ủ ứ ồ ộ hai giao th c SSL và TLS b i s giúp đ c a b OpenSSL và ngu n m ở
ự ừ SSL/TLS, d a trên SSLeay t Eric A.Young và Tim J.Hudson
ượ ạ ở Gói mod_ssl đ c t o ra vào tháng 4/1998 b i Ralf S. Engelschall và
ượ ượ ể ử ụ ự ể ở ầ
đ u tiên đ c đ c phát tri n b i Ben Laurie đ s d ng trong d án
ApacheSSL HTTP server
ổ ậ
ể
1.3.1.Các đi m n i b t
ổ ậ ủ ể ặ Các đ c đi m n i b t c a mod_ssl
ề ầ ồ ở Là ph n m m mã ngu n m
ượ ươ ạ ươ ể ử ụ
Có th s d ng đ ả ụ
c cho c m c đích th ng m i và phi th ạ
ng m i
ạ
Tính năng mã hoá m nh trên toàn th gi ế ớ
i
ỗ ợ ứ H tr các giao th c SSLv2 và SSLv3 và TLSv1
ỗ ợ ả H tr cho c phép mã hoá RSA và DiffieHellman
ỗ ợ ầ ủ H tr đ y đ DSO
ỗ ợ H tr cho OpenSSL và RSArefUS
ố ớ ụ ử ả ậ ẩ Nâng cao kh năng x lý c m m t kh u đ i v i khoá riêng
ự ự ứ ả ỉ Ch ng ch X.509 d a vào xác th c cho c phía client và server
ỗ ợ ứ ồ ỉ H tr danh sách thu h i ch ng ch X.509
ỗ ợ ủ ề ả ỗ ỉ ố ắ
ố ớ
H tr kh năng tái đi u ch nh đ i v i m i URL c a các tham s b t
tay SSL
ự ứ ể ổ ươ ệ ể ậ B sung bi u th c Boolean d a trên ph ng ti n ki m soát truy c p
92
ụ ứ ả ơ ế ự ố ớ Các ng d ng đ n gi n và thi t th c đ i v i Apache
ơ ế ấ ầ ủ ợ Tích h p đ y đ trong các c ch c u hình Apache 1.3
ể ự ấ ự ệ ợ ổ B sung s tích h p trong giao di n ki u t ủ
c u hình c a Apache
ỗ ợ ự ạ ứ ả ỉ H tr s t o ch ng ch X.509v3 (c RSA và DSA)
ế 1.3.2.Ki n trúc gói mod_ssl
ồ ộ ổ ồ Gói mod_ssl bao g m module SSL và b ngu n Apache có b sung API
ể ử ụ ế ể ở ộ ề ệ m r ng (EAPI) .Đây là đi u ki n tiên quy t đ có th s d ng mod_ssl.
ể ử ụ ầ ố ỉ
ở ộ ư ứ ở Hay nói cách khác, chúng ta ch có th s d ng mod_ssl khi ph n c t lõi
ụ
ủ
c a Apache có ch a API m r ng. Nh ng b i vì khi chúng ta áp d ng
ở ộ ầ mod_ssl cho source Apache, ph n API m r ng cũng đ ượ ự ộ
c t đ ng thêm
vào.
ứ
1.3.3.Giao th c SSL
ứ ầ ượ ể ở Giao th c SSL ban đ u đ c phát tri n b i Netscape, SSL đã đ ượ
c
ậ ộ ế ớ ể ế ố ự ấ ch p nh n r ng rãi trên toàn th gi ạ ậ
i đ xác th c và t o l p k t n i mã hóa
93
ữ gi a client và server
ứ ứ ạ ướ ứ Giao th c SSL ch y trên giao th c TCP/IP và d ứ ứ
i giao th c m c ng
ư ủ ỗ ợ ộ
ỗ ợ ự ớ ự
ụ
d ng nh HTTP, IMAP . Nó cho phép m t máy ch h tr SSL xác th c
ớ
chính nó v i máy client h tr SSL, cho phép client xác th c chính nó v i
ủ ả ế ậ máy ch , và cho phép c hai máy thi ộ ế ố
t l p m t k t n i mã hóa
ỗ ợ ử ụ ứ ề ậ ấ ậ Giao th c SSL h tr s d ng r t nhi u các thu t toán m t mã khác
ể ử ụ ạ ộ ự ự ư
ế ậ ứ ề ỉ nhau, đ s d ng trong các ho t đ ng nh xác th c server, xác th c client,
ể ỗ ợ t l p các khóa phiên. Client và server có th h tr truy n ch ng ch và thi
ụ ộ ộ ố ư ả các b mã hóa khác nhau, ph thu c vào các nhân t nh phiên b n SSL mà
ỗ ợ chúng h tr , chính sách công ty…
ỗ ợ ứ ậ ậ ồ Các thu t toán m t mã mà giao th c SSl h tr bao g m :
DES : Data Encryption Standard
DSA: Digital Signature Algorithm
KEA: Key Exchange Algorithm
MD5: Message Digest Algorithm
RC2 & RC4:Rivest encryption ciphers
RSA:
SHA1:Secure Hash Algorithm
TripleDES
ự
Xác th c server
ứ ượ ứ ứ ầ ữ ạ ặ Giao th c SSL là giao th c đ c đ t gi a giao th c t ng m ng h ướ
ng
ướ ế ố ứ ầ ụ ụ ứ ụ ớ h ng k t n i (ví d TCP/IP) v i giao th c t ng ng d ng (ví d HTTP) .
ế ố ữ ấ ằ SSL cung c p tính năng k t n i an toàn gi a client và server b ng các cho
ố ể ả ự ẫ ử ụ ẹ ả ữ
phép xác th c l n nhau, s d ng ch ký s đ đ m b o tính toàn v n, và
94
ể ả ả ậ
mã hoá đ đ m b o tính bí m t
ượ ế ế ể ỗ ợ ậ ứ
Giao th c này đ c thi t k đ h tr các thu t toán c th đ ụ ể ượ ử c s
ượ ố ậ
ụ
d ng cho m t mã, tóm l ữ
c, và ch ký s .
1.4. OpenLDAP
ể
ệ ệ ố ề ố ự ớ Hi n nay, đ xây d ng các h th ng l n, đi u t ả
ọ
i quan tr ng là ph i
ữ ệ ể ừ ể ợ ể ữ làm cách nào có th tích h p d li u đ t
ả ủ ợ ườ ử ụ ệ ố
h th ng khác nhau. Trong đó, tích h p tài kho n c a ng đó có th dùng chung gi a các
ấ
i s d ng là v n
ế ề ầ
đ c n thi t
ữ ấ ố nh t trong nh ng cái “t ọ
i quan tr ng” trên
ộ ệ ố ả ớ ỗ M t h th ng v i kho ng 5 6 module khác nhau, m i module l ạ ượ
c i đ
ế ế ộ ề ả ườ thi t k trên m t n n t ng khác nhau ( có ng i dùngOracle + AS Portal,
ặ ặ ặ ớ ớ
ộ ệ ố ườ ầ ậ ho c DB2 v i WebSphere, ho c MySQL v i phpnuke, ho c Wíndow,
ớ
i dùng khác nhau. V y thì v i Linux, ), do đó c n có m t h th ng ng
ỗ ườ ử ụ ậ ả ầ ộ ộ m i module, ng ẩ
i s d ng c n ph i có m t User Name, m t m t kh u
ấ ệ ề ề khác nhau, đó là đi u gây nhi u b t ti n và khó khăn
ể ợ ượ ườ ệ ố ữ ể
Làm cách nào đ có th tích h p đ c ng i dùng gi a các h th ng trên?
95
ả ờ Câu tr l i đó là LDAP
ứ ậ LDAP (Lightweight Directory Access Protocol ) giao th c truy c p nhanh
ị ụ ư ụ
các d ch v th m c
ư ụ ứ ạ ậ ộ LÀ m t giao th c tìm, truy c p các thông tin d ng th m c trên server
ứ ạ ể ậ ị ụ ư ụ
Nó là giao th c d ng Client/Server dùng đ truy nh p d ch v th m c
ụ ướ ạ ặ ị LDAP ch y trên TCP/IP ho c các d ch v h ế ố
ng k t n i khác.
ủ ể ặ ấ ộ ị Là m t mô hình thông tin cho phép xác đ nh c u trúc và đ c đi m c a
ư ụ
thông tin trong th m c
ộ ị ượ Là m t không gian tên cho phép xác đ nh cách các thông tin đ c tham
ế chi u và t ổ ứ
ch c
ế ộ ị ổ
M t mô hình các thao tác cho phép xác đ nh các tham chi u và phân b
ữ ệ
d li u
ở ộ ứ ộ Là m t giao th c m r ng
ở ộ ộ Là m t mô hình thông tin m r ng
Ở ể ầ ầ ừ ư ụ ư đây chúng ta c n tránh hi u nh m t "th m c" nh trên Windows là
ư ụ ệ ố ẹ ể ệ ả folder hay directory, đó là th m c theo nghĩa h p đ qu n lý h th ng t p
ừ ư ụ ấ ơ ộ tin. T th m c trong LDAP mang ý nghĩa r ng h n, nó bao hàm các c u
ữ ệ ạ ệ ư ụ ụ ụ ộ ừ ủ trúc d li u d ng li t kê theo th m c (hay m c l c) m t "t khoá" c a
ế ữ ệ ứ ắ ư ệ ể ệ ằ ấ ỉ ấ
dân th vi n nh m ám ch cách th c s p x p d li u đ ti n truy xu t nh t
ộ ổ ườ M t cách t ng quát mà nói, LDAP th ng phân chia theo O (Organisation
ể ộ ổ ứ
t ch c) và các OU (Organisation Unit phân b ). Trong các OU có th có
ữ ữ nh ng OU con và trong các OU có các CN (Common Name), nh ng nhóm
ườ ượ ọ ọ ị
giá tr này th ng đ c g i là DN (Distinguished Name tên g i phân bi ệ
t).
ộ ạ ị ứ ỗ ị ườ ượ ọ M i giá tr ch a trong LDAP thu c d ng tên:giá tr , th ng đ c g i là
ỗ ượ ư ộ ệ ậ LDAP Attribute (vi ế ắ
t t t là attr, m i attr đ c nh n di n nh m t LDAP
96
Object
ứ ụ ể ẩ ấ ố ữ
LDAP có tiêu chu n th ng nh t gi a các ng d ng phát tri n LDAP.
ượ ư Đây là lý do LDAP đ ộ
c a chu ng cho
ụ ư ụ ấ ủ ả ộ ầ ủ ị
B n ch t c a LDAP là m t ph n c a d ch v th m c X.500. LDAP
ấ ượ ự ế ế ư ộ ư ứ th c ch t đ c thi ẹ
t k nh m t giao th c nh nhàng, dùng nh gateway
ả ờ ữ tr l ầ ủ
i nh ng yêu c u c a X.500 server
ự ế ộ ậ ẩ ượ ế ư X.500 th c t là m t t p các chu n. X500 đ c bi ộ
t nh là m t
ạ ớ ử ụ ầ heavyweight. Nó yêu c u client và server liên l c v i nhau s d ng theo mô
ủ ầ ẩ ợ ộ
ế ế ớ ư ứ ạ ẩ ớ hình OSI . Mô hình 7 t ng c a OSI là m t mô hình chu n phù h p trong
ở t k v i giao th c m ng, nh ng khi so sánh v i chu n TCP/IP thì nó tr thi
nên không còn h p lýợ
ứ ụ ấ ậ ơ ọ
97
ộ ệ ố ườ ấ ườ ậ ộ LDAP đóng vai trò r t quan tr ng trong ng d ng truy nh p đ n. Có
ậ
ể
i y có th truy c p i đăng nh p vào m t h th ng, ng nghĩa là m t ng
ớ ủ ị ự ạ ụ ầ ả t i các máy ch , d ch v , tài nguyên mà không c n ph i xác th c l i. Ngoài
ượ ạ ặ ệ ế ở ộ ra, LDAP đ c t o ra đ c bi ự
ọ
t cho hành đ ng “đ c”. B i th , xác th c
ườ ằ ươ ệ ệ ấ ố ng i dùng b ng ph ng ti n “look up” LDAP nhanh, hi u su t, ít t n tài
ả ấ ả ơ ơ ườ ơ ở ữ ệ nguyên,đ n gi n h n là 1 truy v n tài kho n ng i dùng trên c s d li u
ộ ự ỗ ự ự ể ằ ợ ộ D án OpenLDAP là m t s n l c h p tác nh m phát tri n b mã
ể ượ ụ ứ ủ ở ồ ụ
ngu n m LDAP c a các ng d ng và các công c phát tri n đ ợ
c tích h p
ầ ủ
đ y đ các tính năng và
ự ượ ở ộ ữ ả ồ ườ ệ D án đ c qu n lý b i c ng đ ng nh ng ng i tình nguy n trên th ế
ớ ườ ử ụ ể ể ộ gi ữ
i, nh ng ng ề
i s d ng Internet đ truy n thông, phát tri n b mã
ồ ở
ngu n m LDAP
ổ ậ ể ặ OpenLDAP 2.0 có các đ c đi m n i b t sau
ỗ ợ ỗ ợ ớ ự H tr LDAPv3: OpenLDAP 2.0 h tr ơ
l p an toàn và xác th c đ n
(Simple Authentication and Sercurity LayerSASL), TSL và SSL
ỗ ợ ủ ứ ỗ ợ ế ệ ế
H tr IPv6: OpenLDAP h tr th h ti p theo c a giao th c IPv6
ệ ố ề ử ụ
ể
LDAP trên IPC: OpenLDAP có th truy n tin trong h th ng s d ng
ề ẽ ườ IPC (interprocess communication). Đi u nay s làm tăng c ng tính năng an
ừ ề ằ ạ ầ toàn b ng cách ngăn ng a các yêu c u truy n thông thông qua m ng
ệ ả ậ ậ ườ ậ ể ế ố C p nh t C API: C i thi n cách ng i l p trình có th k t n i và s ử
ủ ư ụ ụ
d ng các máy ch th m c LDAP
ậ ệ ố ủ ậ ố ể
C ng c cho server Standalone LDAP: Bao C p nh t h th ng ki m
soát truy c p ậ
ộ ư ệ ụ ủ ượ B th vi n và công c c a OpenLDAp đ c chia thành các gói sau
ư ứ ệ ầ ế ể ậ +openldap Ch c các th vi n c n thi t đ v n hành máy ch ủ
98
ụ ứ openLDAp và các ng d ng client
ụ ứ ệ ể ề ỉ +openldaclients: Ch c các công c dòng l nh đ xem xét và đi u ch nh
ư ụ các th m c trong LDAP server
ệ ầ ế ể ấ ậ ứ
+openldapservers: Ch a các ti n ích c n thi t đ c u hình và v n hành
ủ
máy ch LDAP
1.5. Các module perl
Table 3.1. External Perl modules
Module Version Comment
ầ ượ ự
ạ ể
ử ụ Authen::SASL 2.04
Đ c yêu c u b i Net::LDAP đ xác th c SASL
authentication N u b n không s d ng SASL thì
ạ
b n không c n t
ượ ầ
CGI::Session
Convert::ASN1 3.95
0.18 ở
ế
ầ ớ
i nó
ệ
ể ử
Đ c yêu c u đ x lý phiên làm vi c
???
ượ ầ Digest::HMAC 1.01 ở
Đ c yêu c u b i Authen::SASL
ầ ủ Digest::MD5 2.24
Là thành ph n c a Perl
ầ ượ Digest::SHA1 2.02
ở
Đ c yêu c u b i chính OpenCA
ở ầ ườ i dùng Encode::Unicode ??? ượ
Đ c yêu c u b i OpenCA dành cho ng
ướ
n c ngoài
IO::Socket::SSL 0.92 ???
IO::stringy 2.108 ???
ượ ầ ả MIME::Base64 2.20 Đ c yêu c u cho mã hoá và g ii mã Base64
ượ ầ MIME::Lite 3.01
ể ử
Đ c yêu c u đ x lý mail OpenCA
ể ử ượ ầ MIMEtools 5.411 Đ c yêu c u đ x lý mail OpenCA
ượ ầ MailTools 1.58 ể ử
Đ c yêu c u đ x lý mail OpenCA
ầ ượ NetServer 0.86 ấ ọ
ả
Đ c yêu c u cho OpenCA daemon Phiên b n
này r t quan tr ng
ở ượ ầ Parse::RecDescent 1.94 Đ c yêu c u b i X500::DN
URI 1.23 ???
ử ụ ả ượ ỉ c ch nh s a ử ở X500::DN 0.28 Chúng tôi s d ng phiên b n đ
đây
ượ ử ụ Đ c s d ng cho XML Parsing XML::Twig 3.09
99
ệ libintlperl 1.10 Đây là giao di n cho nhân viên i18n
ệ ủ Module
Perlldap Version Comment
0.28 Giao di n LDAP c a Perl
2.Các chuẩn mật mã
ậ ẩ ệ
ơ ả ề ị ữ ể ẩ ạ ấ ị PKCS là chu n m t mã khoá công khai do phòng thí nghi m RSA phát
ữ tri n. Chu n PKCS cung c p nh ng đ nh nghĩa c b n v đ nh d ng d
ể ể ệ ậ ề ả
li u và thu t toán n n t ng đ tri n khai PKI
ậ ẩ PKCS#1(Encryption Standard) : Chu n m t mã RSA
ẩ ượ ế ẩ PKCS#2: Chu n này đ c liên k t thành chu n PKCS#1
ẩ ổ
PKCS#3 (DiffieHellman Key Agreement Standard): Chu n trao đ i
ả ươ ự ệ ổ khóa DiffieHellman. Miêu t ph ng pháp th c hi n trao đ i khoá Diffie
Hellman
ẩ ượ ế ẩ PKCS#4: Chu n này đ c liên k t thành chu n PKCS#1
ẩ ữ ệ
PKCS#5 (Passwordbased Encryption Standard): Chu n mã hoá d li u
ẩ ả ươ ạ ự
d a vào password. Chu n này mô t ph ng pháp mã d ng xâu bát phân s ử
ậ ượ ừ ể ượ ụ
d ng khoá bí m t đ c tính t password đ sinh ra xâu bát phân đ c mã
ể ượ ử ụ ệ ể ề
c s d ng đ mã hoá khoá riêng trong vi c truy n
hoá. PKCS#5 có th đ
khoá bí m tậ
ẩ ứ
PKCS#6 (Extended Certificate Syntax Standard): Chu n cú pháp ch ng
ỉ ở ộ ở ộ ứ ẩ ỉ ị ch m r ng. Chu n này đ nh nghĩa cú pháp ch ng ch X.509 m r ng
ẩ PKCS#7 (Cryptographic Message Syntax Standard): Chu n cú pháp
ể ữ ệ ậ ẩ ổ ị ượ thông báo m t mã. Chu n này xác đ nh cú pháp t ng th d li u đ c mã
ộ ố ự ữ ư ụ ấ ố ọ ị ạ
hoá ví d nh ch ký s . PKCS#7 cung c p m t s l a ch n đ nh d ng
ư ặ ố ượ thông báo nh thông báo không mã hoá ho c ký s , thông báo đ c mã hoá,
100
ượ ả ố ố thông báo đ c ký s và thông báo có c ký s và mã hoá
ẩ PKCS#8 (Private Key Information Syntax Standard): Chu n cú pháp
ẩ ị thông tin riêng. Chu n này đ nh nghĩa cú pháp thông tin khoá riêng và cú
ượ pháp khoá riêng đ c mã hóa
ữ ạ ộ PKCS#9 (Selected Attribute Types):Nh ng lo i thu c tính đ
ữ ẩ ạ ọ ộ ị ượ ự ch n. Chu n này đ nh nghĩa nh ng lo i thu c tính đ ượ ự
c l a
ọ ử ụ
c l a ch n s d ng
ỉ ở ộ ứ ệ ố trong ch ng ch m r ng PKCS#6, thông đi p ký s PKCS#7, thông tin
ữ ầ ộ ỉ ứ
khoá riêng PKCS#8 và yêu c u ch ng ch PKCS#10. Nh ng thu c tính
ứ ỉ ượ ạ ộ ỉ ư ả ở ồ ị ch ng ch đ ỉ
c ch rõ
ượ ữ ậ ẩ ầ ờ ộ đây g m có đ a ch th , lo i n i dung, b n tóm
ứ
c thông báo, th i gian ký, m t kh u yêu c u và nh ng thu c tính ch ng l
ỉ ở ộ
ch m r ng
ẩ PKCS#10 (Certification Request Syntax Standard): Chu n cú pháp yêu
ứ ứ ầ ỉ ị ỉ
ỉ ồ ứ ệ ậ ộ ầ
ầ
c u ch ng ch . PKCS#10 đ nh nghĩa cú pháp yêu c u ch ng ch . Yêu c u
ỳ t, khoá công khai và t p các thu c tính tu ch ng ch g m có tên phân bi
ứ ữ ủ ự ể ầ ọ ỉ
ch n, ch ký c a th c th yêu c u ch ng ch
ệ ẩ PKCS#11(Cryptographic Token Interface Standard): Chu n giao di n th ẻ
ệ ậ ứ ụ ậ ẩ ị bài m t mã. Chu n này xác đ nh giao di n l p trình ng d ng (API) cho
ự ứ ứ ệ thi ế ị ườ
t b ng i dùng ch a thông tin mã hoá và th c hi n ch c năng mã hoá.
ẩ
ạ ổ ị PKCS#12 (Personal Information Exchange Syntax Standard): Chu n cú
ậ
ẩ
pháp trao đ i thông tin cá nhân. Chu n này đ nh nghĩa d ng thông tin nh n
ệ ậ ặ ồ ỉ
ở ộ ứ ệ ề ẩ ỉ ứ
di n cá nhân bao g m khoá riêng, ch ng ch , bí m t đ c tính khác nhau và
ậ
m r ng. Chu n PKCS#12 làm cho vi c truy n ch ng ch và khóa bí m t
ượ ậ ườ ử ụ ể ắ
g n kèm đ ệ
c thu n ti n, giúp ng ể
i s d ng có th chuy n thông tin
ệ ậ ừ ế ị ế ị nh n di n cá nhân t thi t b này sang thi t b khác
ẩ PKCS#13 (Elliptic Curve Cryptography Standard): Chu n mã đ ườ
ng
ệ ạ ố ườ ồ cong Elliptic. PKCS#13 bao g m vi c t o tham s đ ng cong Elliptic và
ệ ự ạ ữ ể ậ ố ị ki m tra hi u l c, t o khoá và công nh n giá tr , ch ký s và mã hoá khoá
101
ả ậ ư
công khai cũng nh tho thu n khoá
PKCS#14 (PseudoRandom Number Generation Standard): Chu n t o s ẩ ạ ố
ả ẫ ượ ử ụ ơ ả ề ậ gi ng u nhiên. Nhi u hàm m t mã c b n đ c s d ng trong PKI nh
ữ ệ ử ụ ậ ả ậ ư
ẫ
ạ
t o khoá và tho thu n khoá bí m t DiffieHellman s d ng d li u ng u
ữ ệ ế ẫ ạ ẫ nhiên. Tuy nhiên, n u d li u ng u nhiên l i không ng u nhiên mà đ
ọ ừ ậ ể ị ượ ậ ả ch n t t p giá tr có th tiên đoán đ ượ
c
ậ
c thì hàm m t mã không b o m t
ượ ạ ố ả ủ ầ ề ố ẫ đ c đ y đ . Do đó t o s gi ng u nhiên an toàn là đi u t ọ
i quan tr ng
ậ ả trong b o m t PKI
102
ẻ ẩ ẫ ậ PKCS#15: Chu n m u thông tin th bài m t mã