Tựa đề: Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Phần mềm có sử dụng chứng chỉ số - Dùng chứng chỉ số với các dịch vụ web và mail
Tác giả: Lê, Mỹ Tú
Từ khóa: Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Phần mềm có sử dụng chứng chỉ số - Dùng chứng chỉ số với các dịch vụ web và mail
Ngày phát hành: 2007
Tóm tắt: Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Phần mềm có sử dụng chứng chỉ số - Dùng chứng chỉ số với các dịch vụ web và mail
62 trang |
Chia sẻ: banmai | Lượt xem: 1896 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Phần mềm có sử dụng chứng chỉ số - Dùng chứng chỉ số với các dịch vụ web và mail, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ch−¬ng tr×nh KC-01:
Nghiªn cøu khoa häc
ph¸t triÓn c«ng nghÖ th«ng tin
vµ truyÒn th«ng
§Ò tµi KC-01-01:
Nghiªn cøu mét sè vÊn ®Ò b¶o mËt vµ
an toµn th«ng tin cho c¸c m¹ng dïng
giao thøc liªn m¹ng m¸y tÝnh IP
B¸o c¸o kÕt qu¶ nghiªn cøu
PhÇn mÒm cã sö dông chøng chØ sè
QuyÓn 8A: “Dïng chøng chØ sè víi c¸c dÞch vô
Web vµ Mail”
Hµ NéI-2004
B¸o c¸o kÕt qu¶ nghiªn cøu
PhÇn mÒm cã sö dông chøng chØ sè
QuyÓn 7A: “Dïng chøng chØ sè víi c¸c dÞch vô
Web vµ Mail”
Chñ tr× nhãm thùc hiÖn:
PGS. TS. Lª Mü Tó
Môc lôc
Ch−¬ng I. Giao thøc Secure Socket Layer 1
1. Giíi thiÖu 1
2-Giao thøc SSLv3 1
2.1-TÇng giao thøc SSLv3 Record 2
2.2-SSLv3 Handshake protocol 5
2.3-Change cipher spec vµ Alert protocol 9
Ch−¬ng II. Sö dông chøng chØ sè víi dÞch vô Web 12
1-Cµi ®Æt chøng chØ ®−îc cÊp cho tr×nh duyÖt 12
1.1-Cµi ®Æt chøng chØ cho tr×nh duyÖt Internet Explorer 12
1.1.1-B−íc 1: Cµi ®Æt tiÖn Ých trî gióp 12
1.1.2-B−íc 2: Cµi ®Æt chøng chØ cho Internet Explorer 13
1.2-Cµi ®Æt chøng chØ cho tr×nh duyÖt Netscape 21
2-CËp nhËt CTL vµ CRL tõ Public Database Server 28
3-Cµi ®Æt thiÕt lËp cÊu h×nh phÇn mÒm E-shop cã sö dông chøng chØ
®−îc cÊp trªn Apache server
29
3.1-Cµi ®Æt phÇn mÒm E-shop 29
3.2- ThiÕt lËp cÊu h×nh E-shop cã sö dông chøng chØ trªn Apache server 30
4-Sö dông https truy nhËp tíi E-shop 30
4.1- Sö dông tr×nh duyÖt Internet Explorer truy nhËp tíi E-Shop 30
4.1.1-Tr−êng hîp chøng chØ cña client vµ server ch−a bÞ huû bá 31
4.1.2-Tr−êng hîp mét trong hai chøng chØ bÞ huû bá 33
4.2- Sö dông tr×nh duyÖt Netscape truy nhËp tíi E-Shop 33
4.2.1-Tr−êng hîp chøng chØ cña client vµ server ch−a bÞ huû bá 33
4.2.2-Tr−êng hîp mét trong hai chøng chØ bÞ huû bá 36
Ch−¬ng III. Sö chøng chØ sè víi dÞch vô Mail 38
1. Giíi thiÖu 38
2. §−a chøng chØ sè vµo Outlook 38
3. Sö dông chøng chØ sè ®Ó x¸c thùc vµ m· ho¸ th− ®iÖn tö trªn
Outlook
48
4. CËp nhËt danh s¸ch c¸c chøng chØ ®· huû bá 57
Ch−¬ng I
Giao thøc Secure Socket Layer
1. Giíi thiÖu
Secure Sockets Layer (SSL) lµ mét giao thøc cã thÓ ®−îc ®Æt ë gi÷a giao thøc
tÇng m¹ng kÕt nèi ®Þnh h−íng tin t−ëng (TCP/IP) vµ tÇng giao thøc øng dông
(FTP, HTTP, telnet ...). SSL cung cÊp dÞch vô truyÒn th«ng cã b¶o mËt gi÷a client
vµ server b»ng viÖc cho phÐp client vµ server x¸c thùc lÉn nhau sö dông ch÷ ký sè
vµ b¶o mËt th«ng tin trao ®æi qua l¹i b»ng c¸ch m· hãa c¸c th«ng tin ®ã.
Giao thøc nµy ®−îc thiÕt kÕ ®Ó cã thÓ trî gióp mét lo¹t c¸c thuËt to¸n sö dông
cho viÖc m· hãa, hµm b¨m vµ ch÷ ký sè. Giao thøc SSL cã ba phiªn b¶n:
-SSLv2: ®©y lµ phiªn b¶n ®Çu tiªn cña giao thøc SSL do Netscape
Corporation thiÕt kÕ, ch−a cã trî gióp chain certificate.
-SSLv3: ®©y lµ phiªn b¶n SSL version 3.0 do Netscape Corporation thiÕt
kÕ, ®· cã trî gióp chain certificate vµ ®−îc suport cho tÊt c¶ c¸c tr×nh duyÖt phæ
th«ng.
-TLSv1: ®©y lµ giao thøc Transport Layer Security version 1.0, dùa trªn c¬
së cña SSLv3, ®−îc thiÕt kÕ bëi IETF (Internet Engineering Task Force) nh−ng
hiÖn nã ch−a ®−îc support cho tÊt c¶ c¸c tr×nh duyÖt th«ng dông (ch¼ng h¹n
Netscape lµ kh«ng cã giao thøc nµy).
Chó ý:
-Mét ®Æc ®iÓm quan träng cña SSLv3 vµ TLSv1 lµ cã trî gióp viÖc n¹p chuçi c¸c
certificate (certificate chain). Víi ®Æc ®iÓm ®−îc bæ sung nµy sÏ cho phÐp server
vµ client cã thÓ thùc hiÖn viÖc x¸c thùc lÉn nhau mµ cã thÓ ®èi t−îng thùc hiÖn
x¸c thùc kh«ng cÇn ph¶i cµi c¸c intermediate issuers.
-TLSv1 dùa trªn nÒn t¶ng lµ SSLv3 trong ®ã cã bæ sung phÇn block padding cho
c¸c thuËt to¸n m· khèi, chuÈn ho¸ thø tù c¸c message vµ bæ sung thªm c¸c th«ng
b¸o trong phiªn liªn l¹c.
-C¸c phiªn b¶n trªn còng nh− c¸c thuËt to¸n m· ho¸, thuËt to¸n trao ®æi kho¸,
hµm b¨m hoµn toµn cã thÓ ®−îc chØ ra cô thÓ khi thiÕt lËp cÊu h×nh sö dông SSL
cho Web server (Apache server), vµ mét sè tr×nh duyÖt (trong c¸c tr×nh duyÖt phæ
th«ng IE kh«ng cã thuéc tÝnh nµy).
Víi nhu cÇu thùc tÕ hiÖn nay SSLv2 Ýt ®−îc sö dông. Bªn c¹nh ®ã do cã sù t−¬ng
øng gi÷a SSLv3 vµ TLSv1, h¬n n÷a hiÖn t¹i trong thùc tÕ TLSv1 ch−a ®−îc tÝch
hîp cho mét sè tr×nh duyÖt phæ th«ng (Netscape ch¼ng h¹n) nªn trong phÇn nµy
chóng t«i chØ tr×nh chi tiÕt vÒ giao thøc SSLv3 (®èi víi TLSv1 hoµn toµn t−¬ng
tù).
2-Giao thøc SSLv3
Giao thøc SSLv3 gåm hai thµnh phÇn Handshake protocol vµ Record protocol.
SSLv3 Record protocol cung cÊp c¬ chÕ b¶o mËt víi c¸c thuËt to¸n m· ho¸ nh−
DES, RC4,... vµ lµ giao thøc kÕt nèi tin t−ëng víi viÖc sö dông hµm kiÓm tra
MAC trong qu¸ tr×nh trao ®æi d÷ liÖu. Cßn SSLv3 Handshake protocol thùc hiÖn
viÖc x¸c thùc ®èi t¸c, trao ®æi c¸c gi¸ trÞ secure sö dông cho SSLv3 Record
1
protocol. Toµn bé giao thøc SSLv3 vµ mèi liªn hÖ cña nã víi tÇng øng dông vµ
tÇng TCP cã thÓ m« t¶ nh− s¬ ®å d−íi ®©y:
H×nh 1.
D−íi ®©y chóng t«i sÏ tr×nh bµy tuÇn tù chi tiÕt c¸c tiÕn tr×nh ®−îc thùc hiÖn khi
sö dông giao thøc SSLv3.
2.1-TÇng giao thøc SSLv3 Record
Giao thøc SSLV3 Record lµ mét tÇng giao thøc. §èi víi mçi tÇng giao thøc nãi
chung, mét gãi d÷ liÖu sÏ bao gåm c¸c tr−êng ®é dµi, m« t¶ vµ néi dung d÷ liÖu.
SSLv3 Record nhËn d÷ liÖu cÇn göi tõ tÇng trªn ph©n nhá thµnh tõng block, nÐn
d÷ liÖu, bæ sung d÷ liÖu kiÓm tra, m· ho¸ vµ göi. Khi nhËn d÷ liÖu vÒ tiÕn tr×nh
®−îc thùc hiÖn ng−îc l¹i: gi¶i m·, kiÓm tra, gì nÐn vµ s¾p xÕp l¹i råi göi lªn tÇng
trªn. Cô thÓ cã thÓ diÔn gi¶i c¸c giai ®o¹n trong giao thøc nµy nh− sau:
TCP Frame
Frame Frame Frame
Application Data
Ph©n m¶nh d÷ liÖu
NÐn d÷ liÖu
M· ho¸ vµ MAC
ChuyÓn xuèng tÇng TCP
H×nh 2.
Trong ®ã Application data cã thÓ lµ d÷ liÖu cña SSL handshake protocol, SSL
change Cipher Spec, SSL Alert protocol hoÆc d÷ liÖu cña c¸c øng dông kh¸c nh−
HTTP, Telnet, ... §Ó ph©n biÖt ®−îc tõng lo¹i d÷ liÖu ®ã trong mçi frame d÷ liÖu
2
cña SSL record ®Òu cã phÇn header ®Ó ph©n biÖt. Cô thÓ mçi frame d÷ liªu cã cÊu
truc nh− sau:
enum {
change_cipher_spec(20), alert(21),
handshake(22), application_data(23), (255)
}ContentType;
struct{
ContentType type;
ProtocolVersion version;
uint16 length;
opaque fragment[SSLPlaintext.length];
} SSLPlaintext;
Trong ®ã:
type chÝnh lµ phÇn header chØ ra lo¹i d÷ liÖu g×.
version phiªn b¶n SSL.
length ®é dµi d÷ liÖu thËt theo byte (lín nhÊt lµ 214-1).
fragment d÷ liÖu.
• NÐn vµ gì nÐn d÷ liÖu:
Sau khi nhËn ®−îc d÷ liÖu tõ tÇng trªn, giao thøc SSL record sÏ thiÕt lËp nªn c¸c
frame d÷ liÖu cã cÊu tróc lµ c¸c SSLPlaintext. C¸c frame nµy sÏ ®−îc thùc hiÖn
nÐn b»ng thuËt to¸n nÐn ®−îc thiÕt lËp bëi handshake protocol t¹o thµnh c¸c
frame d÷ liÖu t−¬ng øng ®−îc goi lµ SSLCompressed cã cÊu tróc nh− sau:
struct{
ContentType type;
ProtocolVersion version;
uint16 length;
opaque fragment[SSLCmpressed.length];
} SSLCompressed;
Trong ®ã
type vµ version gi÷ nguyªn tõ SSLPlaintext.
length ®é dµi SSLCompressed.fragment theo byte, kh«ng qu¸ 214-1 +1024
(tøc lµ thuËt to¸n nÐn kh«ng ®−îc lµm t¨ng thªm ®é dµi cña d÷ liÖu thËt qu¸ 1024
byte).
fragment d÷ liÖu nÐn.
T−¬ng øng khi gì nÐn d÷ liÖu nÕu ®é dµi d÷ liÖu nhËn ®−îc l¬n h¬n 214-1 bytes
th× sÏ xuÊt hiÖn th«ng b¸o lçi.
• Thùc hiÖn m· ho¸ vµ MAC
§Ó b¶o vÖ d÷ liÖu trªn ®−êng truyÒn giao thøc SSL sö dông thuËt to¸n m· ho¸ vµ
MAC ®−îc ®Þnh nghi· trong CipherSpec hiÖn t¹i. §èi víi mçi phiªn liªn l¹c sau
khi thùc hiÖn xong giai ®o¹n handshake hai bªn sÏ thiÕt lËp ®−îc thuËt to¸n m·
ho¸ chung, vµ tÝnh ®−îc c¸c thuéc tÝnh cho hµm MAC. ThuËt to¸n m· ho¸ vµ
hµm MAC sÏ thùc hiÖn biÕn ®æi cÊu tróc SSLCompressed thµnh SSLCiphertext.
Khi nhËn ®−îc SSLCiphertext qu¸ tr×nh gi¶i m· sÏ thùc hiÖn thao t¸c ng−îc l¹i.
SSLCiphertext cã cÊu tróc nh− sau:
struct{
ContentType type;
3
ProtocolVersion version;
uint16 length;
select (CipherSpec.cipher_type){
case stream: GenericStreamCipher;
case block: GenericBlockCipher;
}fragment;
}SSLCiphertext;
Trong ®ã:
type, version gi÷ nguyªn tõ SSLCompressed.
length ®é dµi theo byte cña SSLCiphertext.fragment (kh«ng qu¸
214+2048).
fragment d÷ liÖu sau khi m· ho¸ SSLCompressed.fragment, bao gåm c¶
MAC.
-Tr−êng hîp kh«ng m· ho¸ hoÆc dïng thuËt to¸n m· dßng:
stream-cipher struct{
opaque content[SSLCompressed.length];
opaque MAC[CipherSpec.hash_size];
}GenericStreamCipher;
stream_cipher: tªn thuËt to¸n m· ho¸.
Víi MAC ®−îc sinh nh− sau:
hash(MAC_write_secret+pad_2+
hash(MAC_write_secret+pad_1+seq_num+
SSLCompressed.type+SSLCompressed.length+
SSLCompressed.fragment))
pad_1 gi¸ trÞ 0x36 ®−îc lÆp l¹i 48 lÇn víi MD5, 40 lÇn víi SHA.
pad_2 gi¸ trÞ 0x5c ®−îc lÆp l¹i 48 lÇn víi MD5, 40 lÇn víi SHA.
seq_num sè thø tù cña frame ®ang xö lý.
hast tªn thñ tôc thùc hiÖn hµm hash ®−îc ®Þnh nghÜa trong CihperSpec.
Chó ý:
Hµm hash ®−îc thùc hiÖn tr−íc khi m· ho¸ tøc lµ khi thñ tôc m· ho¸ thùc hiÖn d÷
liÖu ®Çu vµo cã c¶ kÕt qu¶ cña hµm hash.
-Tr−êng hîp m· khèi:
Víi tr−êng hîp m· khèi cÊu tróc cña GenericBlockCipher nh− sau:
block_cipher struct{
opaque content[SSLCompressed.length];
opaque MAC[CipherSpec.hash_size];
uint8 padding[GenericBlockCipher.padding_length];
uint8 padding_length;
} GenericBlockCipher;
padding bæ sung ®Ó ®é dµi cña plaintext chia hÕt cho ®é dµi cña block m·
khèi ®−îc dïng.
4
padding_length ®é dµi cña padding.
Chó ý:
-Còng nh− ®èi víi tr−êng hîp dïng m· dßng, ®èi víi tr−êng hîp dïng m· khèi
d÷ liÖu ®Çu vµo khi m· mét frame bao gåm c¶ kÕt qu¶ hµm MAC.
-Gi¸ trÞ khëi ®Çu cña IV dïng cho frame d÷ liÖu ®Çu tiªn ®−îc t¹o trong qu¸ tr×nh
thiÕt lËp phiªn liªn l¹c (Handshake), cßn khi thùc hiÖn m· ho¸ c¸c frame tiÕp
theo, IV sÏ lµ block cuèi cïng cña ciphertext cña frame tr−íc nã.
§èi víi c¸c lo¹i d÷ liÖu cña c¸c øng dông sö dông SSL nh− HTTP, Telnet, ...
chung ta kh«ng quan t©m. D−íi ®©y chóng t«i sÏ tr×nh bµy chi tiÕt ®Þnh d¹ng cña
c¸c lo¹i d÷ liÖu trong giai ®o¹n thiÕt lËp phiªn liªn l¹c (Handshake, change
Cipher Spec, Alert protocols).
2.2-SSLv3 Handshake protocol
C¸c tham sè mËt m· liªn quan ®Õn mét phiªn liªn l¹c ®−îc thùc hiÖn
th«ng qua SSLv3 Handshake Protocol, nã n»m ngay bªn trªn SSL Record Layer.
Khi SSL client vµ SSL server b¾t ®Çu mét phiªn liªn l¹c chóng cÇn thèng nhÊt vÒ
phiªn b¶n cña giao thøc sÏ ®−îc dïng, lùa chän thuËt to¸n m· ho¸ cho phiªn liªn
l¹c, cã thÓ cã hoÆc kh«ng viÖc x¸c thùc lÉn nhau, vµ sö dông thuËt to¸n m· ho¸
kho¸ c«ng khai ®Ó sinh kho¸ chung cho phiªn liªn l¹c ®ã.
Cã thÓ m« pháng giai ®o¹n thùc hiÖn thiÕt lËp phiªn liªn l¹c bëi s¬ ®å d−íi ®©y:
ServerClient
Change CipherSuit vµ kÕt thóc giai
®o¹n Handshake
Client göi certificate nÕu ®−îc yªu
cÇu
Server göi certificate vµ yªu cÇu
Client göi l¹i certificate nÕu ®−îc
thiÕt lËp x¸c thùc client
ThiÕt lËp protocol version, ID phiªn,
thuËt to¸n m· ho¸, ph−¬ng ph¸p
nÐn, trao ®æi gi¸ trÞ random
Finished
ChangeCipherSpec
Finished
ChangeCipherSpec
Certificate Verify
Certificate
ServerHelloDone
Certificate Request
Certificate
ServerHello
ClientHello
TÊt c¶ c¸c messages trao ®æi qua l¹i gi÷a server vµ client ph¶i ®−îc biÓu diÔn
theo mét cÊu tróc ®Þnh tr−íc. §Þnh d¹ng cña cÊu tróc d÷ liÖu trong giai ®o¹n
handshake nh− sau:
5
enum {
hello_request(0),client_hello(1),server_hello(2),certificate(11),
server_key_exchange(12),certificate_request(13),
server_hello_done(14),certificate_verify(15),
client_key_exchange(16),finished(20),(255)
}
struct {
HandshakeType mstype;
uint24 length;
select (HandshakeType) {
case hello_request: HelloRequest;
case client_hello: ClientHello;
case server_hello: ServerHello;
case certificate: Certificate;
case server_key_exchange: ServerKeyExchange;
case certificate_request: CertificateRequest;
case server_hello_done: ServerHelloDone;
case certificate_verify: CertificateVerify;
case client_key_exchange: ClientKeyExchange;
case finished: Finished;
}
Cô thÓ qu¸ tr×nh thùc hiÖn SSLv3 Handshake qua c¸c b−íc trao ®æi d÷ liÖu
gi÷a client/server nh− sau:
• Hello Messages.
-Khi mét client cã nhu cÇu kÕt nèi tíi server, server sÏ göi mét message gäi lµ
Hellorequest tíi client ®ã. D−íi ®©y lµ ®Þnh d¹ng cña gãi Hellorequest:
struct { } Hello;
-NhËn ®−îc helllorequest, Client göi clienthello gåm: protocol version, mét gi¸
trÞ random, Session ID, danh s¸ch c¸c thuËt to¸n m· ho¸, danh s¸ch c¸c mode
nÐn d÷ liÖu. ®Þnh d¹ng cña gãi clienthello:
struct {
uint32 gmt_unix_time;
opaque random_bytes[28];
}
opaque SesionID;
uint8 CipherSuite[2];
enum {null(0),(255)} CompressionMethod;
struct {
ProtocolVersion client_version;
Random random;
SessionID session_id;
CipherSuite cipher_suites;
CompressionMethod compression_methods;
} ClientHello;
Trong ®ã:
random_bytes: 28 byte sinh tõ bé sinh random.
6
gmt_unix_time: thêi gian hiÖn hµnh.
client_version: phiªn b¶n SSL clietn dïng.
session_id: sè ID cña phiªn liªn l¹c
cipher_suites: danh s¸ch c¸c thuËt to¸n m· ho¸ client cã.
compression_methods: danh s¸ch c¸c thuËt to¸n nÐn client cã.
-Sau khi nhËn ®−îc clienthello, server sÏ göi tr¶ lêi b»ng gãi d÷ liÖu gäi lµ
serverhello gåm protocol version, gi¸ trÞ sinh ngÉu nhiªn, Session ID, danh s¸ch
c¸c thuËt to¸n m· ho¸ trong danh s¸ch clienthello mµ nã cã vµ c¸c chÕ ®é nÐn.
§Þnh d¹ng cña gãi ServerHello:
struct {
ProtocolVersion server_version;
Random random;
SesionID sesion_id;
CipherSuite cipher_suite;
CompressionMethod compression_method;
}ServerHello
Trong ®ã mét sè tham sè cÇn chó ý sau:
cipher_suites: mét thuËt to¸n m· ho¸ ®−îc chän tõ danh s¸ch c¸c thuËt
to¸n cña client göi sang.
compression_methods: mét thuËt to¸n nÐn ®−îc chän trong c¸c thuËt to¸n
client göi sang.
• Server Certificate
Server göi tiÕp server certificate (cã c¶ danh s¸ch c¸c chain certificate, còng cã
thÓ lµ null trong tr−êng hîp server kh«ng cã certificate). §Þnh d¹ng cña gãi
Certificate:
opaque ASN.1Cert
struct {
ASN1.Cert certificate_list;
}Certificate;
• Server Key Exchange message
Trong tr−êng hîp kh«ng cã certificate, hoÆc cã certificate nh−ng chØ sö dông ®Ó
ký (DSS certificate, signing-only RSA certificate) hoÆc FORTEZZA KEA key
exchange ®−îc dïng, server sÏ göi ServerKeyExchange:
struct{
select(KeyExchangeAlgorithm){
case diffie_hellman:
ServerDHParams params;
Signature signature_params;
case rsa:
ServerRSAParams params;
Signature signature_params;
case fortezza_kea:
ServerFortezzaParams params;
};
7
}ServerKeyExchange;
Chó ý:
-BiÕn params lµ mét kiÓu cÊu tróc trong ®ã l−u c¸c tham sè thùc hiÖn thùc hiÖn
mét thuËt to¸n trao ®æi kho¸ c«ng khai nµo ®ã. Ch¼ng h¹n víi Diffie-Hellman
params gåm p, g, vµ tham sè kho¸ c«ng khai cña server g^x mod p.
-Signature ë ®©y chØ lµ mét cÊu tróc chØ ra thuËt to¸n b¨m vµ kÕt qu¶ sö dông
hµm b¨m c¸c gi¸ trÞ random cña client, server vµ params cña server. Ch¼ng h¹n
víi dsa:
Signature lµ SHA(ClientHello.random + ServerHello.random +
ServerParams).
• Certificate Request
Sau ®ã Server sÏ göi tiÕp CertificateRequest víi ®Þnh d¹ng nh− sau:
struct {
ClientCertificateType certificate_types ;
DistinguishedName certificate_authorities ;
} CertificateRequest;
Trong ®ã ClientCertificateType liÖt kª c¸c kiÓu certificate (rsa_sign, dss_sign, ...)
mµ server cã thÓ chÊp nhËn. DistinguishedName lµ danh s¸ch c¸c DN cña c¸c
certificate ®−îc server chÊp nhËn lµ certificate authority (CA certificate).
• Server hello done
§©y lµ message th«ng b¸o hÕt giai ®o¹n göi serverhello, ®Þnh d¹ng cña goi nµy
nh− sau:
struct{ } ServerHelloDone;
• Client certificate
Client chØ ®−îc phÐp göi gãi d÷ liÖu nµy sau khi ®· nhËn ®−îc gãi
ServerHelloDone vµ nã còng chØ ®−îc göi nÕu server cã yªu cÇu certificate. NÕu
kh«ng cã mét certificate nµo t−¬ng øng víi mét trong c¸c kiÓu certificate, vµ do
mét CA nµo ®ã trong CertificateRequest server göi cho th× client sÏ göi th«ng
b¸o no_certificate, khi ®ã tuú thuéc vµo viÖc cã yªu cÇu hay kh«ng yªu cÇu x¸c
thùc client mµ server ®−a ra khuyÕn c¸o hoÆc b¸o lçi trong qu¸ tr×nh handshake.
Tr−êng hîp nÕu client cã certificate nã sÏ ®−îc göi trong gãi cã ®Þnh d¹ng
certificate chóng t«i ®· nªu ë trªn.
• Client key exchange message
Gãi nµy ®−îc göi tõ client víi ®Þnh d¹ng nh− sau:
struct {
select (KeyExchangeAlgorithm) {
case rsa: EncryptedPreMasterSecret;
case difie_hellman: ClientDiffieHellmanPublic;
case fortezza_kea: FortezzaKeys;
}
}ClientKeyExchange;
Trong ®ã:
8
- NÕu rsa ®−îc chän EncryptedPreMasterSecret sÏ lµ kÕt qu¶ m· ho¸ kho¸ c«ng
khai RSA (víi c¸c tham sè kho¸ cña server) cña ®Çu vµo lµ 48 byte (46 byte
random sinh bëi client, 2 byte chØ version cao nhÊt cña giao thøc mµ client
®−îc support)
- NÕu DH ®−îc chän, ClientDiffieHellmanPublic lµ thµnh phÇn c«ng khai cña
client (g^y mod p).
- NÕu fortezza_kea ®−îc chän, FortezzaKey lµ mét cÊu tróc chØ ra ®Çy ®ñ c¸c
thµnh cÇn cho cho viÖc thiÕt lËp kho¸ riªng cña phiªn liªn l¹c ®ã.
• Certificate verify
§©y lµ gãi d÷ liÖu th«ng b¸o qu¸ tr×nh x¸c thùc lÉn nhau gi÷a client vµ server.
• Finished
KÕt thóc giai ®o¹n Handshake (gãi d÷ liÖu nµy chØ ®−îc trao ®æi ngay sau khi
qu¸ tr×nh thèng nhÊt thuËt to¸n m· ho¸ kÕt thóc).
2.3-Change cipher spec vµ Alert protocol
• Change cipher spec protocol
Giao thøc nµy chØ bao gåm mét message trong ®ã thùc hiÖn chøc n¨ng th«ng b¸o
viÖc thiÕt lËp c¸c thuéc tÝnh mËt m· cho phiªn liªn l¹c ®· hoµn thµnh. Message
nµy chØ cã mét byte duy nhÊt víi gi¸ trÞ lµ 1.
struct{
enum{change_cipher_Spec(1),(255)} type;
}ChangeCipherSpec;
Change cipher spec message ®−îc göi tõ c¶ m¸y client lÉn m¸y server ®Ó th«ng
b¸o cho bªn nhËn biÕt b¾t ®Çu tõ c¸c frame d÷ liÖu tiÕp theo sÏ ®−îc m· ho¸ bëi
CipherSpec vµ kho¸ võa thiÕt lËp ®−îc. Client göi message ngay sau khi göi xong
KeyExchange message, cßn server göi ngay sau khi nhËn vµ xö lý xong
KeyExchange tõ client.
• Alert protocol
Mét trong nh÷ng kiÓu d÷ liÖu ®−îc suport bëi SSL record layer lµ kiÓu alert
(message th«ng b¸o). C¸c alert message truyÒn t¶i c¸c th«ng b¸o lçi trong qu¸
tr×nh thiÕt lËp còng nh− trao ®æi d÷ liÖu cña mét phiªn liªn l¹c. Còng nh− c¸c lo¹i
message kh¸c, alert message còng ®−îc m· ho¸ vµ nÐn.
CÊu tróc cña alert message nh− sau:
enum {warning(1),fatal(2),(255)} AlertLevel;
enum {
close_notify(0),
unexpected_message(10),
bad_record_mac(20),
decompression_failure(30),
handshake_failure(40),
no_certificate (41),
bad_certificate(42),
unsuported_certificate(43),
certificate_revoked(44),
9
certificate_expired(45),
certificate_unknow(46),
illegal_parameter(47),
(255)
} AlertDescription;
struct {
AlertLevel level;
AlertDescription description;
} Alert;
Qu¸ tr×nh tÝnh kho¸ cho phiªn liªn l¹c:
NÕu mäi b−íc trong qu¸ tr×nh handshake ®Òu tr«i ch¶y, server/client sÏ thùc hiÖn
xong b−íc x¸c thùc lÉn nhau vµ hai bªn thiÕt lËp ®−îc thuËt to¸n m· ho¸, thuËt
to¸n MAC vµ gi¸ trÞ "mÇm kho¸" chung sö dông cho phiªn liªn l¹c ®ã.
C¸c thuéc tÝnh mËt m· sau khi thiÕt lËp gi÷a hai m¸y sÏ ®−îc l−u vµo CipherSpec
dïng trong suèt phiªn liªn l¹c ®ã. CÊu tróc cña CipherSpec nh− sau:
enum {stream,block} CipherType;
enum {true, false} IsExportable;
enum {nul, rc4, rc2, des, 3des, des40, fortezza} BulkCipherAlgorithm;
enum {null, md5, sha1} MACAlgorithm;
struct {
BulkCipherAlgorithm bulk_cipher_algorithm;
MACAlgorithm mac_algorithm;
CipherType cipher_type;
IsExportable is_exportable;
uint8 hash_size;
uint8 key_masterial;
uint8 IV_size;
} CipherSpec;
Gi¸ trÞ mÇm kho¸ ®−îc ®Æt vµo biÕn pre_master_secret (tr−êng hîp thuËt to¸n
trao ®æi kho¸ RSA ®−îc dïng, gi¸ trÞ mÇm kho¸ ®−îc server gi¶i m· tõ biÕn
EncryptPreMasterSecret, nÕu thuËt to¸n DH ®−îc chän gi¸ trÞ mÇm kho¸ sÏ lµ
g^x.y mod p, ...), tõ gi¸ trÞ kho¸ ban ®Çu nµy qu¸ tr×nh tÝnh kho¸ cho phiªn liªn
l¹c ®−îc thùc hiÖn trªn mçi m¸y nh− sau:
-ChuyÓn pre_master_key thµnh master_secret b»ng c¸ch:
master_secret=MD5(pre_master_secret + SHA('A' +pre_master_secret +
ClientHello.random + ServerHello.random)) +
MD5(pre_master_secret + SHA('BB' +pre_master_secret +
ClientHello.random + ServerHello.random)) +
MD5(pre_master_secret + SHA('CCC' +pre_master_secret +
ClientHello.random + ServerHello.random)) ;
-ChuyÓn ®æi tõ master_secret thµnh keys vµ MAC secrets: tõ master_secret sÏ
®−îc b¨m thµnh c¸c gi¸ trÞ kho¸, IV vµ MAC secret sö dông cho c¸c thuéc tÝnh
®−îc chØ ra trong CipherSpec hiÖn t¹i.
key_block=
MD5(master_secret + SHA('A' +pre_master_secret +
ClientHello.random + ServerHello.random)) +
10
MD5(master_secret + SHA('BB' +pre_master_secret +
ClientHello.random + ServerHello.random)) +
MD5(master_secret + SHA('CCC' +pre_master_secret +
ClientHello.random + ServerHello.random)) + ....;
cho ®Õn khi key_block ®ñ cho nh÷ng thuéc tÝnh ®−îc chØ trong CipherSpec, tøc lµ
®ñ ®Ó lÊp ®Çy c¸c biÕn:
client_write_MAC_secret[CipherSpec.hash_size]
server_write_MAC_secret[CipherSpec.hash_size]
client_write_key[CipherSpec.key_masterial]
server_write_key[CipherSpec.key_masterial]
client_write_IV[CipherSpec.IV_size]
server_write_IV[CipherSpec.IV_size]
NÕu ®èi víi c¸c thuËt to¸n m· ho¸ none-export, th× qu¸ tr×nh tÝnh kho¸, IV vµ
MAC secret ®Õn ®©y lµ kÕt thóc. Cßn ®èi víi c¸c thuËt to¸n m· ho¸ exportable th×
qu¸ tr×nh tÝnh kho¸ cÇn thªm mét b−íc n÷a:
filnal_client_write_key=MD5(client_write_key +
ClientHello.random +
ServerHello.random));
filnal_server_write_key=MD5(server_write_key +
ClientHello.random +
ServerHello.random));
vµ IV th× ®−îc tÝnh nh−:
client_write_IV=MD5(ClientHello.random + ServerHello.random);
server_write_IV=MD5(ClientHello.random + ServerHello.random);
11
Ch−¬ng II
Sö dông chøng chØ sè víi dÞch vô Web
Sau khi ®−îc cÊp chøng chØ ng−êi sö dông cã thÓ dïng nã cho nhiÒu môc ®Ých
kh¸c nhau. Trong ch−¬ng nµy chóng t«i tr×nh bµy viÖc sö dông chøng chØ ®−îc cÊp
trªn øng dông Web. Cô thÓ lµ viÖc sö dông mét chøng chØ thiÕt lËp mét øng dông
th−¬ng m¹i ®iÖn tö ë møc ®Ò m« (E-shop) trªn Apache server ®Ó mäi ng−êi sö
dông chØ cã thÓ truy cËp ®Õn nã qua https, vµ cµi ®Æt mét chøng chØ vµo tr×nh duyÖt
Internet Explorer trªn m«i tr−êng Windows, mét chøng chØ cho Netscape trªn
Linux, ®Ó ng−êi sö dông cã thÓ dïng mét trong hai tr×nh duyÖt trªn truy cËp ®Õn E-
Shop b»ng c¸ch sö dông https.
1-Cµi ®Æt chøng chØ ®−îc cÊp cho tr×nh duyÖt
1.1-Cµi ®Æt chøng chØ cho tr×nh duyÖt Internet Explorer
1.1.1-B−íc 1: Cµi ®Æt tiÖn Ých trî gióp
C¸c chøng chØ hÖ thèng MyCA cÊp cho ng−êi dïng hiÖn t¹i ®Òu sö dông thuËt to¸n
ch÷ ký sè RSA víi sè modulo 1024 bÝt (®©y còng chÝnh lµ ®é dµi kho¸ c«ng khai
cña ng−êi dïng), tuy nhiªn ®èi víi øng dông Internet Explorer 5.0 (hoÆc phiªn b¶n
thÊp h¬n) chØ cho phÐp cµi ®Æt c¸c chøng chØ víi ®é dµi kho¸ c«ng khai kh«ng qu¸
512 bÝt. V× vËy ®Ó cã thÓ cµi ®Æt ®−îc chøng chØ ®· ®−îc cÊp cho tr×nh duyÖt IE,
ng−êi sö dông cÇn cµi ®Æt phÇn mÒm hç trî tr−íc. TiÖn Ých thùc hiÖn viÖc cµi ®Æt
phÇn mÒm hç trî lµ tÖp ie5dom.exe ®−îc cung cÊp cïng ch−¬ng tr×nh sinh kho¸
(trong ®Üa mÒm thø nhÊt).
§Ó cµi ®Æt ng−êi sö dông chØ cÇn nh¾p ®óp chuét vµo tÖn tÖp ie5dom.exe, khi ®ã
trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 1.
H×nh 1
Ng−êi sö dông chän nót lÖnh "Yes", qu¸ tr×nh n©ng cÊp ®−îc tiÕn hµnh vµ kÕt thóc
khi trªn mµn h×nh xuÊt hiÖn th«ng b¸o nh− h×nh 2.
H×nh 2
12
Ng−êi sö dông chän nót lÖnh "Yes" ®Ó kÕt thóc qu¸ tr×nh cµi ®Æt, m¸y tÝnh sÏ ®−îc
khëi ®éng l¹i ®Ó tiÖn Ých ®· cµi cã hiÖu lùc.
1.1.2-B−íc2: Cµi ®Æt chøng chØ cho Internet Explorer
Gi¶ sö ng−êi sö dông ®−îc cÊp chøng chØ ®−íi ®Þnh d¹ng PKCS12 lµ tÖp
2000001.p12. §Ó cµi ®Æt chøng chØ cho Internet Explorer, ng−êi sö dông chän vµo
tÖp nµy, råi nhÊn chuét ph¶i.
H×nh 3
Chän chøc n¨ng "Install PFX", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 4.
13
H×nh 4
Ng−êi sö dông chän "Next", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 5.
H×nh 5
14
Ng−êi sö dông chän "Next", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 6.
H×nh 6
Ng−êi sö dông nhËp mËt khÈu (lµ mËt khÈu do trung t©p cung cÊp khi trung t©m
CA thùc hiÖn viÖc chuyÓn ®æi ®Þnh d¹ng cña chøng chØ tr−íc khi cÊp cho ng−êi sö
dông). Chän "Next", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 7.
15
H×nh 7
Ng−êi sö dông chän "Next", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 8.
H×nh 8
16
Ng−êi sö dông chän "Finish", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 9 (cã
thÓ ph¶i ®îi trong Ýt gi©y, tïy thuéc vµo tèc ®é m¸y tÝnh).
H×nh 9
Ng−êi sö dông chän "Yes", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i th«ng b¸o qu¸
tr×nh cµi ®Æt chøng chØ ®· kÕt thóc.
H×nh 10
Sau khi cµi ®Æt nÕu ng−êi sö dông më tr×nh duyÖt IE, chän menu /Tools/Internet
Options, chän tab "contents" råi chän nót lÖnh "Certificate" sÏ thÊy xuÊt hiÖn
chøng chØ võa ®−îc cµi ®Æt trong môc
17
H×nh 11
Muèn xem l¹i th«ng tin vÒ chøng chØ cña m×nh ng−êi sö dông chän nót lÖnh
"View", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 12.
18
H×nh 12
Cïng víi viÖc cµi ®Æt chøng chØ cña ng−êi sö dông, c¸c chøng chØ cña CA (khi sö
dông m« h×nh chain CA) còng ®ång thêi ®−îc cµi ®Æt, nÕu chän tab "Trust Root
Certificate Authorities" sÏ thÊy xuÊt hiÖn RootCA ph¸t hµnh ra chøng chØ cña
ng−êi sö dông nh− h×nh 13 (ë ®©y chøng chØ cña ng−êi sö dông ®−îc RootCA ký
nªn trong danh s¸ch chØ cã mét CA ®−îc cµi ®Æt ®ã lµ Root CA).
19
H×nh 13
Néi dung chøng chØ cña Root CA sÏ ®−îc l−u vµo Registry (trong môc
/system/certificates/Root/Certificate).
Sau khi cµi ®Æt xong c¸c chøng chØ, ng−êi sö dông cÇn thiÕt lËp cÊu h×nh cho IE:
Chän menu Tools/Internet Options/Advanced, hép héi tho¹i xuÊt hiÖn nh− h×nh 14.
20
H×nh 14
Trong môc "Settings" chän "Use SSL 3.0" (hoÆc "Use TLS 1.0"), råi nhÊn "OK".
1.2-Cµi ®Æt chøng chØ cho tr×nh duyÖt Netscape
Qu¸ tr×nh cµi ®Æt chøng chØ cho Netscape theo c¸c b−íc sau:
-Trªn menu cña tr×nh duyÖt Netscape chän chøc n¨ng "Security", hép héi tho¹i
xuÊt hiÖn nh− h×nh 15
21
H×nh 15
-Chän "Yours" trong môc "Yours Certificates", råi chän "Import a Certificate",
trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 26
H×nh 26
-Ng−êi sö dông nhËp mËt khÈu ®Ó truy nhËp tíi c¬ së d÷ liÖu l−u chøng chØ cña
Netscape (mËt khÈu nµy ng−êi sö dông thiÕt lËp b»ng c¸ch sö dông môc Passwords
trong hép héi tho¹i 15), chän "OK", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh−
h×nh 17.
22
H×nh 21
-Ng−êi sö dông chän tÖp chøng chØ cÇn cµi ®Æt (ë ®©y lµ tÖp 2000002.p12), råi
nhÊn "OK", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 18.
H×nh 18
-Ng−êi sö dông gâ mËt khÈu (lµ mËt khÈu do trung t©m cung cÊp khi thùc hiÖn cÊp
chøng chØ cho ng−êi sö dông), nhÊn "OK" trªn mµn h×nh xuÊt hiÖn hép héi tho¹i
nh− h×nh 19
23
H×nh 19
-Ng−êi sö dông nhËp tªn chøng chØ (tªn nµy chØ cã ý nghÜa khi hiÓn thÞ trong danh
môc c¸c chøng chØ ®−îc cµi ®Æt), nhÊn "OK" hép héi tho¹i xuÊt hiÖn nh− h×nh 20
th«ng b¸o viÖc cµi ®Æt chøng chØ ®· thµnh c«ng.
H×nh 20
-Sau khi cµi ®Æt xong chøng chØ, ta thÊy chøng chØ võa ®−îc cµi ®Æt xuÊt hiÖn trong
danh s¸ch c¸c chøng chØ ®· ®−îc cµi ®Æt nh− h×nh 21.
24
H×nh 21
-Ng−êi sö dông nót lÖnh "view" trªn mµn h×nh sÏ xuÊt hiÖn hép héi tho¹i hiÓn thÞ
th«ng tin vÒ chøng chØ võa ®−îc cµi ®Æt.
H×nh 22
25
-NÕu dõng ë ®©y khi chän nót lÖnh "Verify" trong h×nh 21 sÏ xuÊt hiÖn th«ng b¸o:
H×nh 23
-§Ó chøng chØ cã hiÖu lùc, ng−êi sö dông cÇn thiÕt lËp thuéc tÝnh cho Netscape
chÊp nhËn Root CA võa cµi lµ Certificate Authority, b»ng c¸ch: trong h×nh 21 chän
môc "Signers", khi ®ã hép héi tho¹i h×nh 21 cã d¹ng nh− h×nh 24.
26
H×nh 24
-Trong danh s¸ch c¸c chøng chØ cña CA chän Root CA-MyCA Group, råi chän nót
lÖnh "Edit" trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 25
H×nh 25
27
-Ng−êi sö dông check vµo c¸c lùa chän trong môc "This Certificate belong to a
Certifying Authority" råi nhÊn "OK".
-§Õn ®©y nÕu chän nót lÖnh "Verify" trªn h×nh 23 sÏ cã th«ng b¸o nh− h×nh 26.
H×nh 26
2-CËp nhËt CTL vµ CRL tõ Public Database Server
§Ó cËp nhËt CRL, t¶i c¸c CTL cña ng−êi kh¸c (sö dông cho môc ®Ých b¶o mËt
Mail ch¼ng h¹n), hoÆc t¶i chuçi c¸c chøng chØ cña c¸c CA tÇng trªn, ng−êi sö dông
cã thÓ dïng trang publicdatabase.
§Ó truy cËp ®−îc tíi publicdatabase ng−êi sö dông cÇn thiÕt lËp cÊu h×nh trªn m¸y
cña m×nh nh− sau:
-§èi víi tr−êng hîp ng−êi sö dông dïng m«i tr−êng Linux cÇn bæ sung
thªm dßng:
200.1.1.1 publicdatabase
vµo tÖp /etc/hosts
-§èi víi ng−êi sö dông dïng m«i tr−êng Windows cÇn bæ sung dßng :
200.1.1.1 publicdatabase
vµo tÖp c:\Windows\hosts
Trong ®ã 200.1.1.1 lµ ®Þa chØ IP cña m¸y Public Database Server.
Khi truy cËp tíi trang giao diÖn chÝnh cña trang
publicdatabase xuÊt hiÖn nh− h×nh 27
28
H×nh 27
Qui tr×nh sö dông c¸c chøc n¨ng trªn trang Publicdatabase chóng t«i ®· tr×nh bµy
kü trong ch−¬ng 4 tµi liÖu vÒ hÖ thèng ph¸t hµnh vµ qu¶n lý chøng chØ sè theo m«
h×nh tËp trung.
3-Cµi ®Æt thiÕt lËp cÊu h×nh phÇn mÒm E-shop cã sö dông chøng chØ
®−îc cÊp trªn Apache server.
E-shop lµ mét bé ch−¬ng tr×nh nguån mang tÝnh m« pháng viÖc thùc hiÖn mua b¸n
hµng hãa th«ng qua mét trang Web (th−¬ng m¹i ®iÖn tö) trªn m«i tr−êng Linux,
toµn bé phÇn mÒm l−u trªn mét tÖp eshopcom.zip. Sau khi gì nÐn tÖp
eshopcom.zip ta ®−îc th− môc eshop.com trong ®ã cã toµn bé c¸c tÖp ch−¬ng tr×nh
m« pháng qu¸ tr×nh mua b¸n trªn web, vµ giao diÖn ®Ó thùc hiÖn qu¸ tr×nh ®ã.
Qu¸ tr×nh cµi ®Æt vµ thiÕt lËp E-shop ®−îc tiÕn hµnh th«ng qua c¸c b−íc sau:
3.1-Cµi ®Æt phÇn mÒm E-shop
Mét sè yªu cÇu vÒ phÇn mÒm khi thiÕt lËp E-shop:
-ViÖc trao ®æi vµ l−u tr÷ d÷ liÖu khi ch−¬ng tr×nh thùc hiÖn ®−îc t¸c gi¶ cña phÇn
mÒm sö dông hÖ qu¶n trÞ c¬ së d÷ liÖu MySQL, do ®ã ®Ó ch−¬ng tr×nh cã thÓ ch¹y
®−îc cÇn cµi ®Æt MySQL.
-B¶n chÊt cña bé ch−¬ng tr×nh lµ t¹o nªn mét trang Web trªn Web server, do ®ã
cÇn cµi ®Æt Apache server.
§Ó khëi t¹o E-shop cÇn thùc hiÖn:
-Gì nÐn tÖp eshopcom.zip ®−îc th− môc eshop.com
-T¹o c¬ së d÷ liÖu trªn MySQL b»ng c¸ch chuyÓn th− môc hiÖn hµnh thµnh
..../eshop.com/db vµ ch¹y lÖnh:
mysqladmin create eshop
-Khëi t¹o c¬ së d÷ liÖu eshop b»ng c¸ch thùc hiÖn lÖnh:
mysql eshop < eshop.sql
29
Qu¸ tr×nh cµi ®Æt ch−¬ng tr×nh E-shop kÕt thóc, ®Ó sö dông ch−¬ng tr×nh cÇn thiÕt
lËp cÊu h×nh trªn Apache server.
3.2- ThiÕt lËp cÊu h×nh E-shop cã sö dông chøng chØ trªn Apache server
Sau khi cµi ®Æt phÇn mÒm E-shop, ®Ó thiÕt lËp c¬ chÕ chØ cho phÐp c¸c browser
truy nhËp ®Õn th«ng qua kªnh b¶o mËt https, gi¶ sö ng−êi muèn thiÕt lËp eshop ®·
®¨ng ký vµ ®−îc cÊp chøng chØ dïng cho Web server víi ID lµ 2000003. Khi ®ã
cÇn thùc hiÖn c¸c b−íc thiÕt lËp nh− sau:
-Thùc hiÖn viÖc kÕt nèi tíi Public Database Server cña hÖ thèng ®Ó dowload
c¸c CRL do c¸c CA cña hÖ thèng ph¸t hµnh (nÕu muèn kiÓm so¸t ®−îc tÝnh hîp lÖ
cña tÊt c¶ c¸c chøng chØ cña ng−êi dïng trong toµn bé hÖ thèng th× cÇn t¶i tÊt c¶
c¸c CRL cña c¸c CA vÒ). ViÖc t¶i CRL th«ng qua Public Database Server chóng
t«i ®· tr×nh bµy trong môc 7.2. Sau khi cã tÖp CRL, chuyÓn c¸c tÖp nµy vµo th−
môc:
/etc/httpd/conf/ssl.crl/RootCA.crl
(ë ®©y chóng t«i chØ tr×nh bµy viÖc sö dông mét tÖp CRL do Root CA ph¸t
hµnh)
-ChuyÓn tÖp l−u kho¸ riªng (®−îc sinh bëi phÇn mÒm sinh kho¸ vµ sinh tÖp
yªu cÇu) vµo th− môc:
/etc/httpd/conf/ssl.key/2000003.key
-ChuyÓn chøng chØ ®−îc hÖ thèng MyCA cÊp, RootCA.crt, chain.crt (nÕu lµ
nonroot CA cÊp chøng chØ) vµo th− môc:
/etc/httpd/conf/ssl.crt/2000003.crt
/etc/httpd/conf/ssl.crt/RootCA.crt
/etc/httpd/conf/ssl.crt/chain.crt
-Thùc hiÖn viÖc thiÕt lËp E-shop trªn Apache nh− sau:
DocumentRoot /homme/Thuchv/eshop.com/
ServerName eshop.com
ErrorLog logs/eshop /error.log
CustomLog logs/eshop/access.log common
SSLEngine on
SSLProtocol +SSLv3 +TLSv1
SSLCertificateFile /etc/httpd/conf/ssl.crt/2000003.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/2000003.key
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/chain.crt
SSLCACertificateFile /etc/httpd/conf/ssl.crt/RootCA.crt
SSLCACertificatePath /etc/httpd/conf/ssl.crt/
SSLCARevocationFile /etc/httpd/conf/ssl.crl/RootCA.crl
SSLVerifyClient require
SSLVerifyDepth 10
-Khëi ®éng l¹i Apache b»ng c¸ch thùc hiÖn lÖnh:
/etc/rc.d/init.d/httpd restart
4-Sö dông https truy nhËp tíi E-shop
4.1- Sö dông tr×nh duyÖt Internet Explorer truy nhËp tíi E-Shop
30
4.1.1-Tr−êng hîp chøng chØ cña client vµ server ch−a bÞ huû bá
§Ó kÕt nèi ®−îc E-shop, trong tÖp c:\windows\hosts cÇn ®−îc bæ sung dßng sau:
200.1.1.1 eshop.com
Sau khi thùc hiÖn viÖc cµi ®Æt c¸c chøng chØ vµ thiÕt lËp cÊu h×nh cho IE, ®Ó kÕt nèi
tíi E-Shop trªn Apache Server sö dông https, trªn mµn h×nh Internet Explorer xuÊt
hiÖn khuyÕn c¸o nh− hép héi tho¹i 28.
H×nh 28
Chän "Ok", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 29
H×nh 29
Ng−êi sö dông chän chøng chØ cña m×nh ®Ó Server x¸c thùc (nÕu kh«ng muèn x¸c
thùc client th× cÇn bá môc SSLVerifyClient trong tÖp cÊu h×nh cña Apache Server,
khi ®ã hép héi tho¹i trªn sÏ kh«ng xuÊt hiÖn), råi nhÊn "OK", trªn mµn h×nh xuÊt
31
hiÖn hép héi tho¹i nh− h×nh 30. Th«ng b¸o vÒ qu¸ tr×nh x¸c thùc chøng chØ gi÷a
Server vµ browser.
H×nh 30
Chän "Yes", trong qu¸ tr×nh lµm viÖc, mçi khi cã sù thay ®æi trang truy nhËp trªn
Server sÏ cã hép héi tho¹i khuyÕn c¸o xuÊt hiÖn nh− h×nh 31, muèn cho hép héi
tho¹i nµy kh«ng xuÊt hiÖn check vµo môc: " In the future, do not show this
warning".
H×nh 31
Cuèi cïng trang https://eshop.com sÏ hiÓn thÞ trªn mµn h×nh IE nh− h×nh 32.
32
H×nh 32
4.1.2-Tr−êng hîp mét trong hai chøng chØ bÞ huû bá
-Tr−êng hîp chøng chØ cña client ®· bÞ huû bá, qu¸ tr×nh kÕt nèi tíi server
sÏ kh«ng thùc hiÖn ®−îc, trªn mµn h×nh IE xuÊt hiÖn th«ng b¸o "The page
cannot be displayed" (chó ý r»ng th«ng b¸o nµy chØ xuÊt hiÖn khi thuéc
tÝnh SSLVerifyClient ®−îc thiÕt lËp lµ require).
-Tr−êng hîp ng−îc l¹i, nÕu chøng chØ cña server ®· bÞ huû bá vµ tÖp CRL
cã th«ng tin vÒ viÖc chøng chØ cña server ®· ®−îc huû bá cµi ®Æt cho client th× qu¸
tr×nh lµm viÖc gi÷a client vµ Server vÉn thùc hiÖn ®−îc tuy nhiªn trong qu¸ tr×nh
kÕt nèi sÏ kh«ng thùc hiÖn x¸c thùc server.
4.2- Sö dông tr×nh duyÖt Netscape truy nhËp tíi E-Shop
4.2.1-Tr−êng hîp chøng chØ cña client vµ server ch−a bÞ huû bá
Sau khi thùc hiÖn viÖc cµi ®Æt chøng chØ, ®Ó kÕt nèi tíi E-Shop trªn Apache Server
sö dông https, ng−êi sö dông ch¹y tr×nh duyÖt Netscape, më trang
https://eshop.com.
33
H×nh 33
Trªn mµn h×nh Netscape xuÊt hiÖn hép héi tho¹i nh− h×nh 34, th«ng b¸o vÒ chøng
chØ trªn server.
H×nh 34
NÕu ng−êi sö dông muèn xem th«ng tin vÒ chøng chØ cña server th× chän vµo môc
"More Info", hép héi tho¹i nh− h×nh 35 xuÊt hiÖn
34
H×nh 35
Tõ hép héi tho¹i 34 chän "Continue", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh−
h×nh 36, ®Ó ng−êi sö dông chän chøng chØ lµm viÖc víi server.
H×nh 36
35
Chän "Continue", trªn mµn h×nh xuÊt hiÖn hép héi ®Ó ng−êi sö dông nhËp mËt
khÈu ®Ó truy nhËp c¬ së d÷ liÖu cña Netscape
H×nh 37
Ng−êi sö dông nhËp mËt khÈu råi chän "OK", trªn mµn h×nh xuÊt hiÖn hép héi
tho¹i th«ng b¸o qu¸ tr×nh x¸c thùc ®· kÕt thóc:
H×nh 38
Khi chuyÓn tõ trang web sö dông chÕ ®é b¶o mËt sang trang web kh«ng sö dông
chÕ ®é b¶o mËt trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 39
H×nh 39
4.2.2-Tr−êng hîp mét trong hai chøng chØ bÞ huû bá
NÕu chøng chØ cña client bÞ huû bá, khi thùc hiÖn kÕt nèi tíi server qu¸ tr×nh ®−îc
thùc hiÖn tõ hép héi tho¹i 34 ®Õn hép héi tho¹i 37. Tuy nhiªn qu¸ tr×nh kÕt nèi ®Õn
server cã sö dông chÕ ®é b¶o mËt sÏ kh«ng thµnh c«ng víi hép héi tho¹i th«ng
b¸o:
36
H×nh 40
NÕu chøng chØ cña server bÞ huû bá, khi mét client (®· cËp nhËt CRL trong ®ã
chøng chØ cña server ®· bÞ huû bá) kÕt nèi ®Õn server cã sö dông chÕ ®é b¶o mËt sÏ
kh«ng thµnh c«ng, trªn mµn h×nh xuÊt hiÖn th«ng b¸o:
H×nh 41
37
Ch−¬ng III
Sö dông chøng chØ sè víi dÞch vô Mail
1. Giíi thiÖu
Mét trong nh÷ng øng dông quan träng cña chøng chØ sè ®ã lµ m· ho¸ vµ x¸c thùc
th− ®iÖn tö. Ng−êi sö dông cã thÓ cµi chøng chØ sè (cña m×nh) ®· ®−îc ph¸t hµnh tõ
mét Trung t©m cÊp chøng chØ sè vµo mét hÖ mail nµo ®ã ®Ó thùc hiÖn trao ®æi th−
®iÖn tö cã b¶o mËt víi mét ng−êi dïng kh¸c mµ cïng chung hÖ thèng CA. Trong
ch−¬ng nµy chóng t«i nh»m giíi thiÖu c¸ch sö dông chøng chØ sè ®−îc cÊp bëi hÖ
thèng MyCA trªn Outlook Express.
Gi¶ thiÕt r»ng b¹n ®· cã mét tµi kho¶n ng−êi dïng ®−îc cÊp trªn m¸y Server, vµ
b¹n ®· ®−îc cÊp mét chøng chØ sè t−¬ng øng víi tµi kho¶n ®ã (nhÊt thiÕt ®Þa chØ
email ®¨ng ký trong chøng chØ sè ph¶i trïng víi ®Þa chØ email cña tµi kho¶n trªn
m¸y Server).
ThiÕt lËp hÖ thèng cña chóng t«i nh− sau:
• Mét m¸y cµi Windows 2000 Advanced Server vµ Exchange Server 2000.
• 2 m¸y Windows 98.
Trªn m¸y Server t¹o 2 tµi kho¶n ng−êi dïng lµ user1 vµ user2 cã ®Þa chØ email lµ
user1@myca.org vµ user2@myca.org. Trªn 2 m¸y windows 98 lÇn l−ît tõng m¸y
t¹o ®Þa chØ email t−¬ng øng víi ®Þa chØ email ®−îc cÊp trªn Server. Nh− vËy, 2
ng−êi dïng trªn 2 m¸y cã thÓ göi th− cho nhau b×nh th−êng (kh«ng x¸c thùc vµ m·
ho¸). §Ó cã thÓ göi th− b¶o mËt gi÷a 2 ng−êi sö dông nµy th× hä cÇn ph¶i cã chøng
chØ sè mµ ®−îc cÊp cïng mét hÖ thèng CA nµo ®ã.
Sö dông hÖ thèng cÊp chøng chØ MyCA ®Ó ph¸t hµnh 2 chøng chØ sè cho 2 ng−êi
sö dông cã ®Þa chØ email lÇn l−ît lµ user1@myca.org vµ user2@myca.org. 2 ng−êi
dïng nµy ®em chøng chØ cña m×nh cµi vµo Outlook. §Õn ®©y hä cã thÓ göi th− cã
m· ho¸ vµ x¸c thùc cho nhau. D−íi ®©y chóng t«i sÏ tr×nh bµy chi tiÕt nh÷ng viÖc
lµm nµy.
2. §−a chøng chØ sè vµo Outlook
Ch¹y Outlook, giao diÖn ch−¬ng tr×nh nh− H×nh 1.
38
H×nh 1
§Ó cµi chøng chØ sè cña b¹n vµo Outlook (chó ý lµ b¹n ph¶i chuyÓn ®æi chøng chØ
theo ®Þnh d¹ng PKCS#12 nÕu chøng chØ sè ®−îc cÊp tõ hÖ thèng CA do ng−êi
dïng sinh kho¸), ë giao diÖn chÝnh cña Outlook chän Tools => Options =>
Security, khi ®ã xuÊt hiÖn hép tho¹i nh− H×nh 2.
39
H×nh 2
Víi hép tho¹i nµy b¹n chän Digital IDs..., xuÊt hiÖn hép tho¹i nh− H×nh 3.
40
H×nh 3
Trong môc Personal cña hép tho¹i Certificate Manager ë trªn ch−a cã chøng chØ
nµo ®−îc cµi vµo Outlook. Chän Import... xuÊt hiÖn hép tho¹i nh− H×nh 4.
41
H×nh 4
Chän Next> ®Ó tiÕp tôc, xuÊt hiÖn hép tho¹i nh− H×nh 5.
H×nh 5
42
Hép tho¹i yªu cÇu chän tÖp chøng chØ cña b¹n. Chän Browse... ®Ó chØ ra tÖp chøng
chØ, nh−ng chó ý r»ng tÖp chøng chØ nµy víi ®Þnh d¹ng PKCS#12. Trong vÝ dô cña
chóng t«i th× ng−êi dïng cã tÖp chøng chØ lµ 2000017.p12 ®Æt trong th− môc
d:\tiendq\test\user1\genkey, ®−îc thÓ hiÖn trong H×nh 6 vµ H×nh 7.
H×nh 6
H×nh 7
Chän Next> ®Ó tiÕp tôc, xuÊt hiÖn hép tho¹i nh− H×nh 8.
43
H×nh 8
Hép tho¹i yªu cÇu b¹n vµo mËt khÈu gi¶i m· tÖp chøng chØ (vµo ®óng mËt khÈu khi
b¹n chuyÓn ®æi ®Þnh d¹ng PKCS#12). Chän Next> ®Ó tiÕp tôc, xuÊt hiÖn hép tho¹i
nh− H×nh 9.
44
H×nh 9
Hép tho¹i yªu cÇu lùa chän n¬i l−u tr÷ chøng chØ cña b¹n, ë ®©y chän môc
Automatically select the certificate store based on the type of certificate. Chän
Next> ®Ó tiÕp tôc, xuÊt hiÖn hép tho¹i nh− H×nh 10.
45
H×nh 10
Chän Finish ®Ó kÕt thóc, nÕu thµnh c«ng sÏ xuÊt hiÖn hép tho¹i nh− H×nh 11.
H×nh 11
Chän OK, nh− vËy b¹n ®· hoµn thµnh c«ng viÖc cµi chøng chØ sè vµo Outlook. §Ó
kiÓm tra l¹i ®iÒu nµy, b¹n vµo Tools => Options =>Security => Digital IDs...
xuÊt hiÖn hép tho¹i Certificate Manager trong môc Personal xuÊt hiÖn dßng m«
t¶ chøng chØ cña b¹n. VÝ dô, chóng t«i cµi chøng chØ cña user1 nh− H×nh 12.
46
H×nh 12
§Ó hiÓn thÞ chi tiÕt néi dung chøng chØ b¹n chän View, khi ®ã xuÊt hiÖn hép tho¹i
cã d¹ng nh− H×nh 13.
47
H×nh 13
§Õn ®©y b¹n cã thÓ thùc hiÖn göi th− ®iÖn tö cã x¸c thùc vµ m· ho¸ víi mét ng−êi
sö dông kh¸c còng ®· cµi chøng chØ sè cña hä trªn Outlook. Chó ý r»ng chøng chØ
sè cña b¹n vµ ng−êi sö dông kia ph¶i ®−îc cÊp cïng mét hÖ thèng CA, ë ®©y
chóng t«i ®ang sö dông hÖ thèng MyCA ®Ó cÊp chøng chØ sè, CA ph¸t hµnh chøng
chØ cã tªn lµ RootCA1411.
3. Sö dông chøng chØ sè ®Ó x¸c thùc vµ m· ho¸ th− ®iÖn tö trªn Outlook
Trong môc nµy chóng t«i sÏ tr×nh bµy øng dông chøng chØ sè ®Ó x¸c thùc vµ m·
ho¸ th− ®iÖn tö trªn Outlook, víi ®iÒu kiÖn lµ b¹n ®· thùc hiÖn cµi ®Æt thµnh c«ng
chøng chØ sè cña m×nh vµo Outlook (®· tr×nh bµy ë trªn). VÊn ®Ò ®Æt ra lµ b¹n ch−a
cã kho¸ c«ng khai cña ®èi t¸c ®Ó m· ho¸, ng−îc l¹i ®èi t¸c cña b¹n còng ch−a cã
kho¸ c«ng khai cña b¹n ®Ó thùc hiÖn viÖc kiÓm tra ch÷ ký. §Ó gi¶i quyÕt vÊn ®Ò
nµy, lÇn ®Çu tiªn b¹n göi th− ®iÖn tö cho ®èi t¸c chØ thùc hiÖn ký lªn néi dung ®ã
vµ chó ý r»ng néi dung th− kh«ng yªu cÇu b¶o mËt, ®ång thêi trong Outlook ph¶i
®Æt tuú chän göi chøng chØ cña b¹n kÌm theo. Khi nhËn ®−îc th− cña b¹n, ®èi t¸c
sÏ cã chøng chØ sè cña b¹n, vµ sau ®ã ®èi t¸c göi chøng chØ sè cña hä b»ng c¸ch
t−¬ng tù nh− b¹n ®· lµm. §Õn ®©y b¹n vµ ®èi t¸c cã thÓ thùc hiÖn göi th− cã x¸c
thùc vµ m· ho¸ cho nhau. C«ng viÖc nµy sÏ ®−îc tr×nh bµy chi tiÕt d−íi ®©y.
48
H×nh 14
Trong H×nh 14, môc Other People trong hép tho¹i Certificate Manager kh«ng
cã chøng chØ cña ®èi t¸c mµ b¹n cÇn trao ®æi th− ®iÖn tö mËt. LÇn ®Çu tiªn b¹n göi
chøng chØ cña m×nh cho ®èi t¸c b»ng c¸ch ký lªn bøc th− (chän Sign), vµ sau ®ã
chän Send ®Ó göi. Chó ý trªn Outlook c¶ bªn göi vµ bªn nhËn ph¶i ®−îc ®Æt 2 tuú
chän: Include my digital ID when sending signed messages vµ Add the
senders' certificates to my address book nh− H×nh 15. Hép tho¹i cßn cho phÐp
thiÕt lËp thuËt to¸n m· ho¸ (ë ®©y chóng t«i ®Æt lµ DES).
49
H×nh 15
Trong vÝ dô cña chóng t«i, ®èi t¸c cÇn göi cã ®Þa chØ email lµ user2@myca.org nh−
H×nh 16.
50
H×nh 16
Chän Send vµ sau ®ã chän Send/Recv. Khi ®ã ®èi t¸c më Outlook, nhËn ®−îc mét
th− trong Inbox nh− H×nh 17.
51
H×nh 17
Më th− nhËn ®−îc tõ user1, xuÊt hiÖn hép tho¹i nh− H×nh 18.
H×nh 18
52
Ngoµi nh÷ng th«ng tin vÒ ng−êi göi vµ nhËn th× cã thªm môc Security: Digitally
signed and verified, tøc lµ bøc th− nµy ®· ®−îc ký tõ ng−êi göi vµ ®−îc kiÓm tra
lµ ®óng. Muèn xem néi dung th−, chän Continue, sÏ hiÓn thÞ néi dung th− nh−
H×nh 19.
H×nh 19
Sau ®ã ®èi t¸c sÏ göi chøng chØ cña hä cho b¹n nh− b¹n ®· tõng lµm ë trªn. §Ó
kiÓm tra r»ng chøng chØ cña ®èi t¸c ®· cã trong Outlook hay ch−a b¹n chän môc
Other People cña hép tho¹i Certificate Manager, môc nµy chøa chøng chØ cña
c¸c ®èi t¸c cña b¹n. VÝ dô nh− H×nh 20.
53
H×nh 20
§Õn ®©y c¶ 2 bªn ®Òu cã chøng chØ cña nhau, vµ cã thÓ thùc hiÖn göi th− cã x¸c
thùc vµ b¶o mËt cho nhau. VÝ dô b¹n cã thÓ so¹n mét th− ®iÖn tö nh− H×nh 21.
54
H×nh 21
Chó ý, ®Ó göi th− cã x¸c thùc vµ m· ho¸ b¹n chän c¶ 2 tuú chän Sign vµ Encrypt.
Chän Send vµ Send/Recv, ®Ó göi tíi ®èi t¸c cña b¹n. Bªn nhËn nhËn ®−îc th−,
hiÓn thÞ néi dung cã d¹ng nh− H×nh 22.
55
H×nh 22
§Ó xem néi dung th−, chän Continue (gi¶i m·), khi ®ã xuÊt hiÖn néi dung th− cã
d¹ng nh− H×nh 23.
56
H×nh 23
§©y lµ bøc th− göi cã x¸c thùc vµ m· ho¸ (trong môc Security: Digital signed
and verified; Encrypted).
4. CËp nhËt danh s¸ch c¸c chøng chØ ®· huû bá
Mét ng−êi dïng cã thÓ huû bá chøng chØ cña m×nh (víi rÊt nhiÒu lý do), ®Ó huû bá
mét chøng chØ b¹n cã thÓ tham kh¶o ch−¬ng 6. Do vËy, th«ng th−êng mçi phiªn
lµm viÖc b¹n nªn cËp nhËt l¹i danh s¸ch c¸c chøng chØ ®· bÞ huû bá do CA cña b¹n
ph¸t hµnh, ®iÒu nµy gióp b¹n cã thÓ biÕt ®−îc tr¹ng th¸i chøng chØ cña ®èi t¸c
(chøng chØ ®· bÞ huû bá hay ch−a?), b¹n tham kh¶o ch−¬ng 7. Khi ®· lÊy ®−îc
danh s¸ch c¸c chøng chØ huû bá (gi¶ sö tÖp chain.crl) th× c¸c b−íc thùc hiÖn cËp
nhËt vµo Outlook t−¬ng tù nh− ®èi víi viÖc cµi mét chøng chØ vµo Outlook, chóng
t«i sÏ kh«ng tr×nh bµy l¹i ë ®©y.
Trong môc nµy chóng t«i gi¶ sö r»ng ng−êi sö dông cã tªn user1 víi ®Þa chØ email
lµ user1@myca.org ®· huû bá chøng chØ. Tr−íc khi lµm viÖc, ng−êi sö dông user2
tiÕn hµnh cËp nhËt danh s¸ch c¸c chøng chØ bÞ huû bá do hÖ thèng CA cña m×nh
ph¸t hµnh. Ng−êi sö dông user2 sö dông Outlook so¹n th− vµ göi th− cã x¸c thùc
vµ m· ho¸ cho user1, sau chän Send ®Ó göi cho user1 th× sÏ xuÊt hiÖn th«ng b¸o
nh− H×nh 24.
57
H×nh 24
Outlook th«ng b¸o lµ chøng chØ cña user1 ®· bÞ huû bá, user2 sÏ kh«ng thÓ thùc
hiÖn göi th− cã x¸c thùc vµ b¶o mËt cho user1 ®−îc n÷a. Chó ý r»ng, user2 vÉn cã
thÓ göi th− kÌm theo ch÷ ký cho user1 bëi chøng chØ cña user2 ch−a bÞ huû bá nªn
user1 vÉn cã thÓ kiÓm tra ch÷ ký cña user2.
Ng−îc l¹i, khi user1 göi th− cã x¸c thùc vµ m· ho¸ cho user2 th× ®iÒu g× sÏ x¶y ra
khi mµ chøng chØ cña user1 ®· bÞ huû bá?. Khi nhËn ®−îc th− cña user1, user2
hiÓn thÞ néi dung sÏ cã d¹ng nh− H×nh 25.
58
H×nh 25
Trong môc Security: cã th«ng b¸o Digitally signed - signing digital ID is
revoked, tøc lµ bøc th− nµy ®· ®−îc ký bëi mét chøng chØ ®· huû bá. Chó ý r»ng,
nÕu user1 göi th− chØ chän Encrypt (mµ kh«ng ký lªn th− ®ã) th× user2 vÉn ®äc
®−îc b×nh th−êng (tøc lµ gi¶i m· ®−îc), bëi chøng chØ cña user2 ch−a bÞ huû bá.
59
Các file đính kèm theo tài liệu này:
- 543316.pdf