1
®¹i häc th¸I nguyªn
Trêng ®¹i häc c«ng nghÖ th«ng tin & truyÒn th«ng
BÁO CÁO
AN NINH MẠNG
§Ò tµi :
TÌM HIỂU VỀ SSL VÀ ỨNG DỤNG TRÊN WEB SEVER
GVHD : Th.S NGUYỄN ĐỨC BÌNH
Sinh viên thực hiện :
NGUYỄN CÔNG LONG
ĐỖ VĂN TRUYỀN
Lớp : An Ninh Mạng N02
Th¸i Nguyªn, th¸ng 05 n¨m 2012
2
MỤC LỤC
LỜI NÓI ĐẦU…………………………………………………………………….2
I. Giới thiệu về SSL…………………………………………………………… 3
I.1 Lịch sử phát triển của giao thức SSL……………………………………………………3
I.1.1 Tại sao sử dụng SSL?………………………………………………………………3
I.1.2 Giao thức SSL là gì?……………………………………………………………… 4
I.1.3 Các phiên bản của SSL………………………………………………………… 4
I.2 Cấu trúc của giao thức SSL…………………………………………………………… 5
I.2.1 Giao
thức
SSL
Record
………………………………………………………………6
I.2.2 Giao
thức
SSL Change Cipher Spec……………………………………………… 8
I.2.3 Giao
thức
SSL A
l
er
t……………………………………………………………………………… 9
I.2.4 Giao
thức
SSL
Handshake………………………………………………………………….10
I.3 Các thuật toán mã hóa dùng trong SSL………………………………………………… 12
II. Ứng dụng của SSL………………………………………………………………… 13
II.1 Các ứng dụng phổ biến của SSL………………………………………………………. 13
II.2 Ứng Dụng SSL Trên Web Server………………………………………………………14
II.2.1 Web Server ? ……………………………………………………………………….14
II.2.2 Giải Pháp Bảo Vệ Web Server…………………………………………………… 16
II.2.3 Quy Trình Và Cài Đặt SSL…………………………………………………………18
III. Demo …………………………………………………………………………………. 19
TÀI LIỆU THAM KHẢO…………………………………………………………………… 20
3
LỜI NÓI ĐẦU
-Như chúng ta đã biết thì kể từ khi Internet ra đời. Cùng theo đó lĩnh vực công nghệ tin không
ngừng phát triền, kèm theo Mạng Internet mang lại rất nhiều tiện ích hữu dụng cho người sử
dụng, một trong các tiện ích phổ thông của Internet là hệ thống thư điện tử (email), trò chuyện
trực tuyến (chat), máy truy tìm dữ liệu (search engine), các dịch vụ thương mại và chuyển ngân,
và các dịch vụ về y tế giáo dục như là chữa bệnh từ xa hoặc tổ chức các lớp học ảo. Chúng cung
cấp một khối lượng thông tin và dịch vụ khổng lồ trên Internet.
- Nguồn thông tin khổng lồ kèm theo các dịch vụ tương ứng chính là hệ thống các trang
Web liên kết với nhau và các tài liệu khác trong WWW (World Wide Web).
=>Đó là một kênh trao đổi thông tin rất hữu ích và nhanh chong . Song tất cả không phải là
toàn mỹ , nghĩa là mọi thông tin khi bạn trao đổi thông qua Internet có thể bị bên thứ 3 tác
động vào hay là lộ mất mát thông tin…vv
Để khắc phục những hạn chế đó người ta đã phát triển nên các giao thức giúp phần nào hạn chế
điều đó. Trong đó biết tới một giao thức góp phần tối ưu công việc bảo mật thông tin trên nền
World Wide Web. Đó là giao thức SSL (viết tắt Secure Sockets Layer)
Hôm nay nhóm em xin trình bày những hiểu biết về giao thức SSL cũng như ứng dụng của nó
trên Web Server.
4
“ Tìm hiểu SSL và ứng dụng trên web sever ”
Đề tài có th ể còn nhi ều thi ếu sót m ong
Thầy và
các bạn đóng góp
ý
kiến để
đề
tài được hoàn
t
h
i
ện
hơn.Chúng em xin
cảm ơn
sự
hướng dẫn
của
Thầy Ths. Nguyễn Đức Bình
đã
g
i
úp chú ng em
hoàn thành đề
t
à
i
này.
Tìm hiểu SSL và ứng dụng trên Web Sever
I. Giới thiệu về SSL
I.1 Lịch sử phát triển của giao thức SSL
I.1.1 Tại sao sử dụng SSL?
- Như chúng ta đ ã biết công ngh ệ thông tin ngày càng phát tri ển và thay đ ổi hàng ngày hàng gi ờ. Đồng
thời cùng v ới sự ra đời của Internet, thì đã góp ph ần tăng thêm m ột kênh truy ền tải thông tin.
- Ngày nay
việc
bảo mật thông
t
i
n
là
yếu tố quan trọng để qu yết
đ
ị
nh
sự
sống còn của một tổ chức ,một
công ty
hay
doanh nghiệp
. Với
sự phát
t
r
i
ển nhanh chóng của công nghệ đã mang
lại
nhiều
t
i
ệ
n
ích
cho
ng
ườ
i
dùng như ng
đồng
t
hờ
i
cũng đặt
ra
một nhu cầu hết sức cấp thiết
về sự
an toàn
và
bảo mật
.Và SSL
chính
là giải
pháp tốt nh ất
h
i
ện
nay
đáp ứng nh ững nhu cầu đó
và nó
được
coi
như
là “lá
chắn cuối cù
ng
”
trong bảo mật thư ơng mại điện
t
ử.
- Việc
truyền các thông
t
i
n nhạy cảm trên mạng rất không an toàn
vì
những vấn đề
sau:
+ Bạn
không thể
l
uôn
l
uô
n
chắc rằng bạn đang trao
đổ
i
thông
t
i
n
với
đúng đối tượng cần trao
đổi.
+ Dữ liệu
mạng có thể
bị
chặn
,vì vậy
dữ
liệu
có thể
bị 1
đối tượng thứ
3
khác đọc
t
r
ộm
,
thường được biết
đến
như attacker
.
+
Nếu attacker có thể chặn dữ
liệu,
attacker có thể sửa đổi dữ
liệu
trước
khi
gửi nó đến
ng
ườ
i
nhận.
- Như vậy SSL được đã được phát triển nhằm
giải
quyết tri ệt để các vấn đề
t
r
ên
I.1.2 Giao thức SSL là gì?
- SSL (Secure Sockets Layer) là giao thức an ninh thông tin mạng được sử dụng rộng rãi nhất
hiện nay nhằm mã hóa và cung cấp một kênh an toàn giữa các máy tính trên Internet hoặc mạng
5
nội bộ. SSL thường được sử dụng khi một trình duyệt web cần kết nối bảo mật đến một máy
chủ web.
- Được phát triển bởi Netscape, ngày nay giao thức Secure Socket Layer (SSL) đã được sử
dụng rộng rãi trên World Wide Web trong việc xác thực và mã hoá thông tin giữa client và
server. Tổ chức IETF (Internet Engineering Task Force ) đã chuẩn hoá SSL và đặt lại tên là
TLS (Transport Layer Security). Mặc dù là có sự thay đổi về tên nhưng TSL chỉ là một phiên
bản mới của SSL. Phiên bản TSL 1.0 tương đương với phiên bản SSL 3.1. Tuy nhiên SSL là
thuật ngữ được sử dụng rộng rãi hơn.
- SSL được thiết kế như là một giao thức riêng cho vấn đề bảo mật có thể hỗ trợ cho rất nhiều
ứng dụng. Giao thức SSL hoạt động bên trên TCP/IP và bên dưới các giao thức ứng dụng tầng
cao hơn như là HTTP (Hyper Text Transport Protocol), IMAP ( Internet Messaging Access
Protocol) và FTP (File Transport Protocol).
=> Để đảm bảo tính bảo mật thông tin trên internet hay bất kì mạng TCP/IP nào thì SSL
(Secure Socket Layer) ra đời kết hợp với những yếu tố sau để thiết lập giao dịch an toàn:
*Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu kia của kết nối. Cũng
như vậy, các trang Web cũng cần phải kiểm tra tính xác thực của người sử dụng.
*Mã hoá: đảm bảo thông tin không thể bị truy cập bởi đối tượng thứ ba. Để loại trừ việc
nghe trộm những thông tin “ nhạy cảm” khi nó được truyền qua Internet, dữ liệu phải được mã
hoá để không thể bị đọc được bởi những người khác ngoài người gửi và người nhận.
*Toàn vẹn dữ liệu: đảm bảo thông tin không bị sai lệch và nó phải thể hiện chính xác thông
tin gốc gửi đến.
I.1.3 Các phiên bản của SSL
- Giao
thức
SSL
ban đầu được phát
t
r
i
ể
n
bở
i
N
e
t
sc
ape
.
Ngày nay
Visa,
MasterCard, American
E
xpr
es
s
cũng
như nh
i
ều
công ty
giải
pháp
t
à
i
chính
hàng đầu khác trên thế
giới đã
và
đang ứng dụng
SSL
trong thương
mại
điện
t
ử.
- Cho đến bây giờ, có ba phiên bản của SSL:
* SSL 1.0: được sử dụng nội bộ chỉ bởi Netscape Communications. Nó chứa một số
khiếm khuyết nghiêm trọng và không bao giờ được tung ra bên ngoài.
* SSL 2.0: được kết nhập vào Netscape Communications 1.0 đến 2.x. Nó có một số
điểm yếu liên quan đến sự hiện thân cụ thể của cuộc tấn công của đối tượng trung gian.
Trong một nỗ lực nhằm dùng sự không chắc chắn của công chúng về bảo mật của SSL,
Microsoft cũng đã giới thiệu giao thức PCT cạnh tranh trong lần tung ra Internet Explorer
6
đầu tiên của nó vào năm 1996.
*SSL 3.0: Netscape Communications đã phản ứng lại sự thách thức PCT của Microsoft
bằng cách giới thiệu SSL 3.0 vốn giải quyết các vấn đề trong SSL 2.0 và thêm một số tính
năng mới. Vào thời điểm này, Microsoft nhượng bộ và đồng ý hỗ trợ SSL trong tất cả các
phiên bản phần mềm dựa vào TCP/IP của nó .
I.2 Cấu trúc của giao thức SSL
SSL
được
t
h
i
ế
t
kế
để dùng
TCP
cung cấp
1
dịch
vụ
bảo mật đầu
c
uố
i
-
đến
-
đầu
cuối
đáng
t
i
n
cậy.SSL
không ph ải
là
một
g
i
ao
thức đơn mà
là 2
l
ớ
p g
i
ao
t
hức
,
như
m
i
nh
họa
dướ
i
đây:
Hình 5:
Chồng
g
i
ao
thức
SS
L
- Theo hình này, SSL ám chỉ một lớp (bảo mật) trung gian giữa lớp vận chuyển (Transport
Layer) và lớp ứng dụng (Application Layer). SSL được xếp lớp lên trên một dịch vụ vận
chuyển định hướng nối kết và đáng tin cậy, chẳng hạn như được cung cấp bởi TCP.
-
SSL
Record
P
r
o
t
oco
l
cung cấp các dịch
vụ
bảo mật cơ bản cho nhiều
g
i
ao
thức khác nhau
ở
các
l
ớ
p
trên.Trong
t
hực
tế, Hyper
T
ex
t
Transfer
Pro
t
oco
l
(HTTP),cung
cấp dịch
vụ
trao đổi cho
tương tác Web
c
li
en t
/
s
er
v
er
,c
ó thể
hoạt
động trên
đ
ỉ
nh
của
SSL.Ba
g
i
ao
thức
l
ớ
p
trên đ ược
đ
ị
nh
nghĩa như
là
các phần của
SSL:
Hand shake
Pr
o
t
oco
l,
Change Cypher Spec Protocol và
Alert
Protocol.Các
g
i
ao
thức mang
t
í
nh đặc
t
r
ưn
g
-
SS
L
này được dùng trong
phần
qu ản
lý
trao đổi
SSL
- Như vậy có ta thấy SSL có 2 lớp giao thức hay 4 thành phần con của SSL:
+ SSL Handshake Protocol.
7
+ SSL Change Cipher Spec Protocol.
+ SSL Alert Protocol.
+ SSL Record Protocol.
II.2.1 Giao Thức SSL Record Protocol.
SSL
Record
P
r
o
t
oco
l
cung cấp
2
dịch
vụ
cho kết nối
S
SL
:
+
Confidentiality (tính cẩn
m
ật
)
:
Handshake Protocol
đ
ị
nh nghĩa
1
khóa
bí
mật được chia
sẻ,
khóa này được
sử
dụng cho mã hóa quy ước các dữ
liệu
SS
L.
+
Message integrity (tính
toàn vẹn thông
đi
ệp
)
:
H
and sh
a
k
e
Pr
ot
oco
l
cũng định nghĩa
1
khóa
bí
mật được
chi
a
sẻ,
khóa này được sử dụng để hình thành
MAC
(mã
xác
thực
message).
- Hình
sau
chỉ
ra toàn bộ hoạt động của
SSL
Record Pro
t
oco
l
.SS
L
Record
Protocol
nhận
1
message ứng dụng
sắp
được truyền đi,phân mảnh d ữ
liệu
thành
nhiều block,nén dữ
liệu 1
cách
tùy chọn,áp dụng
vào 1 MAC,mã hóa,thêm
vào heade r,và truyền khối kết quả thu được trong
1
segment
TCP.Dữ liệu
nhận
được
được
giải
mã,kiểm tra
,giải
nén, sắp xếp
lại và
phân
p
hố
i
đến ng
ườ
i
sử
dụng
ở
l
ớ
p
cao
hơn.
8
Phân mảnh :Mỗi
message của
l
ớ
p
bên trên được phân mảnh thành các block ,mỗi block
là 2
14
byte
(16384 byte) hoặc ít
hơn.
Nén:
Nén phải
là
không mất mát thông
t
i
n
và
có thể không
làm
tăng
chiều
dài
nộ
i
dung nhiều hơn
1024 byte
(Dĩ
nhi
ên,n g
ườ
i
ta mong muốn nén
làm co
lại
dữ
liệu
hơn
là
nới
rộng dữ
liệu.Tuy
nhiên
,với
những block ngắn,có thể ,do định dạng quy ước,thuật toán nén
thực sự làm cho
ou tput
dà
i
hơn
input).Trong
SSLv3
(cũng như
ph
i
ên bản
h
i
ện
tại của
TLS),không
có thu ật toán nén nào được
chỉ
rõ,vì vậy
t
hu ật
t
oán
nén mặc định
là null.
Tính toán MAC
(mã
xác
thực message) trên d ữ
liệu
đã được nén.Đ ể thực h
i
ện cần dùng
đến1
khóa
bí
mật được chia sẻ.Phép
t
í
nh được định nghĩa như
s
au
:
hash(MAC_write_secret || pad_2 || hash(MAC_write_secret || pad_1 ||seq_num
||SSLCompressed.type || SSLCompressed.length || SSLCompressed.fragment))
trong
đó:
+
||
:
phép nố
i
/
hoặc
.
+MAC_write_secret
:
khóa
bí
mật được chia
sẻ.
+ hash
:
thuật toán băm mã hóa
,
MD5
hoặc
SH
A
-1.
+ pad_1
:
byte 0x36 (0011 0110) được
l
ặp
lại
48 lần (384 bit) cho
MD5 và 40
lần
(320
bit) cho
SH
A
-1.
+ pad_2
:
byte
0x5c
(0101 1100) được
l
ặp
lại
48 lần cho
MD5 và 40
lần cho
SH
A
-1.
+seq_num: sequence number cho message nay
+SSLCompressed.type
:
g
i
ao
thức
ở
l
ớ
p
trên được dùng để
xử lí
phân mảnh
này.
+SSLCompressed.length
:
chiều
dà
i
của phân mảnh đã được
nén.
+SSLCompressed.fragment
:
phân mảnh đã được nén (nếu nén không được
d
ùn g
,
phân mảnh
ở dạng
plaintext).
Mã
hóa theo phương
pháp mã
hóa
đối xứng:Mã
hóa có
t
hể
không
làm
tăng chiều dài nội
dung hơn
1024 byte,vì
vậy
chiều dài tổng cộng không vượt quá 2
14
+20 48.
Các
t
huậ
t
toán mã hóa
sau được cho
phép:
Block
cipher
(Mã
hóa
khối)
Stream cipher
(Mã
hóa
luồng)
T
hu
ật
t
oán
Kích
thước
khóa
T
hu
ật
t
oán
Kích
thước
khóa
AE
S
128,25
6
RC4-
40
40
IDE
A
128
RC4-128
128
RC2-
40
40
DES-
40
40
DE
S
56
3DE
S
168
Fortezz
a
80
9
Cuối
cùng của
xử lí
SS
L
Record
Protocol là
gắn
thêm
vào1
head e
r
,bao gồm các mục
sau:
Content Type (8
bit):
g
i
ao
thức
l
ớ
p
trên được dùng đ ể
xử lí
phân mảnh
đi kèm.
Major Version (8
bit):
chỉ ra
ph
i
ên bản
SSL
tối đa được
dùn g
.
Ví
dụ
,
SSLv3,giá
trị này
là 3.
Minor Version (8 bit)
:
chỉ ra
ph
i
ên
bản tối
t
h
i
ểu
được dùng.Ví
dụ
,
SSLv3 ,giá
trị này
là 0.
Compressed Length (16 bit)
:
chiều
dà
i
theo byte của phân mảnh
pl
a
i
nt
ext
(hoặc chiều dài
theo byte
của
phân mảnh đã nén nếu nén đư ợc
dùng).Gía trị lớn
nhất
là 2
14
+2048.
I.2.2 Giao thức SSL Change Cipher Spec Protocol
Giao
thức
SSL
Change Cipher Spec
là
g
i
ao
thức đơn
g
i
ản
nhất trong ba
g
i
ao
thức đặc trưng
của
SSL
mà
sử dụng
g
i
ao
thức
SSL
Record
. Giao
thức này bao gồm một message đơn
1
byte
g
i
á
trị
là 1.
Mục đích chính của
m
es
s
ag
e
này
là
sinh
ra
trạng
t
há
i
t
i
ếp
theo để gán vào trạng
t
há
i
hiện tại,và
trạng
t
há
i
hiện
t
ạ
i
cập nhật
lại
bộ mã hóa để
sử
dụng trên kết nối
này.
I.2.3 Giao thức SSL Alert
Giao
thức
SSL
Alert
được dùng để truyền cảnh báo
liên
kết
SSL
với
đầu
cuối
bên
kia.Như
với
nh ững ứng
dụng
khác
sử
dụng
SSL,
a
l
er
t
messages được nén
và
mã
hóa
,
được
chỉ
định
bở
i
trạng
t
h
á
i
hiện
t
ại
.
Mỗi
message trong
g
i
ao
thức này gồm
2
bytes
.B
y
t
e
đầu
t
i
ên
giữ
g
i
á
trị cảnh báo(1) hoặc nguy
hiểm(2) để
t
h
ông báo độ nghiêm ngặt của message.N ếu mức độ
là
nguy
hi
ểm
,SS
L
lập tức chấp dứt
kết nối.Những kết
nố
i
cùng
phiên
khác vẫn có thể
t
i
ếp
tục nhưng sẽ khôn g kết nối nào khác trên
phiên này được
khởi
tạo
thêm.Byte thứ hai chứa
một
mã
chỉ ra
cảnh báo đặc trưng.Đầu
t
i
ên
,
chúng ta
liệt
kê nh ững cảnh báo đó mà
l
uô
n
ở
mức nguy hiểm
(
được
định
nghĩa từ những thông số
SS
L):
10
unexpected_message
:
message không thích
hợp
bad_record_mac: MAC không chính xác
decompression_failure
:
việc giải
nén nh ận
i
nput
không thích
hợp(ví
dụ như không thể
giải
nén hoặc
giải
nén lớn
hơn độ dài
t
ố
i
đa cho
phép).
handshake_failure
:
bên
gửi
không thể thương
l
ư
ợ
ng một bộ chấp nhận được của các
thông số bảo
mật
được đưa ra từ những
lựa
chọn có
sẵn
11
illegal_parameter
:
một trường trong một hand shake message
thì vượt khỏi dãy hoặc trái
với
những
t
r
ườ
ng
khác
Phần còn
lại
của cảnh báo thì như s au
:
close_notify
:
thông báo cho bên nh ận rằng bên gửi sẽ không gửi thêm message nào n ữa trong
kết
nối
này.Mỗi nhóm thì được yêu cầu gửi một
close_notify
cảnh báo trước
khi
kết thúc
phần ghi của một kết
nối.
no_certificate
:
có thể được gửi để trả
lời
cho một
yêu cầu certificate
nếu không
certificate
t
h
í
ch
hợp nào
có sẵn.
bad_certificate
:
certificate
nhận được thì không hợp
lệ(ví
dụ như chứa một chữ
ký không
xác minh)
unsupported_certificate
:
dạng
certificate
nhận được thì không hỗ
t
r
ợ
.
certificate_revoked
:
certificate đã
bị
thu hồ
i
bở
i
nhà cung
cấp.
certificate_expired
:
certificate
đã hết hạn đăng
k
ý
.
certificate_unknown
:
một số phát
sinh
không nói rõ xuất
h
i
ện trong quá
t
r
ì
nh
xử ký
certificate làm cho
nó
không thể chấp
nhận.
I.2.4 Giao Thức SSL Ha
ndsh
a
ke
Giao thức này cho phép server
và
client chứng thực
với nhau và
thư ơng
lượng
cơ chế mã hóa
,
thu ật toán
MAC và
khóa mật mã được
sử
dụng để bảo
vệ
dữ
liệu
được gửi
t
r
ong
SSL
record.Giao thức
SSL
Hand shake thường được
sử
dụng trước
khi
dữ
liệu
của ứng d ụng được truyền
đi.
Cơ chế giao thức SSL Handshake:
1) Client sẽ gửi cho server số phiên bản SSL đang dùng, các tham số
của thuật toán mã hoá, dữ liệu được tạo ra ngẫu nhiên (đó chính là
digital signature) và một số thông tin khác mà server cần để thiết lập
kết nối với client.
2) Server gửi cho client số phiên bản SSL đang dùng, các tham số của
thuật toán mã hoá, dữ liệu được tạo ra ngẫu nhiên và một số thông tin
khác mà client cần để thiết lập kết nối với server. Ngoài ra server cũng
gửi certificate của nó đến client, và yêu cầu certificate của client nếu
cần.
3) Client sử dụng một số thông tin mà server gửi đến để xác thực
server. Nếu như server không được xác thực thì người sử dụng sẽ được
cảnh báo và kết nối không được thiết lập. Còn nếu như xác thực được
server thì phía client sẽ thực hiện tiếp bước 4.
13
4) Sử dụng tất cả các thông tin được tạo ra trong giai đoạn bắt tay ở
trên, client (cùng với sự cộng tác của server và phụ thuộc vào thuật
toán được sử dụng) sẽ tạo ra premaster secret cho phiên làm việc, mã
hoá bằng khoá công khai (public key) mà server gửi đến trong
certificate ở bước 2, và gửi đến server.
5) Nếu server có yêu cầu xác thực client, thì phía client sẽ đánh dấu
vào phần thông tin riêng chỉ liên quan đến quá trình “bắt tay” này mà
hai bên đều biết. Trong trường hợp này, client sẽ gửi cả thông tin được
đánh dấu và certificate của mình cùng với premaster secret đã được mã
hoá tới server.
6) Server sẽ xác thực client. Trường hợp client không được xác thực,
phiên làm việc sẽ bị ngắt. Còn nếu client được xác thực thành công,
server sẽ sử dụng khoá bí mật (private key) để giải mã premaster secret,
sau đó thực hiện một số bước để tạo ra master secret.
7) Client và server sẽ sử dụng master secret để tạo ra các session key,
đó chính là các khoá đối xứng được sử dụng để mã hoá và giải mã các
thông tin trong phiên làm việc và kiểm tra tính toàn vẹn dữ liệu.
8) Client sẽ gửi một lời nhắn đến server thông báo rằng các message
tiếp theo sẽ được mã hoá bằng session key. Sau đó nó gửi một lời nhắn
đã được mã hoá để thông báo rằng phía client đã kết thúc giai đoạn “bắt
tay”.
9) Server cũng gửi một lời nhắn đến client thông báo rằng các message
tiếp theo sẽ được mã hoá bằng session key. Sau đó nó gửi một lời nhắn
đã được mã hoá để thông báo rằng server đã kết thúc giai đoạn “bắt
tay”.
10) Lúc này giai đoạn “bắt tay” đã hoàn thành, và phiên làm việc SSL
bắt đầu. Cả hai phía client và server sẽ sử dụng các session key để mã
14
hoá và giải mã thông tin trao đổi giữa hai bên, và kiểm tra tính toàn vẹn
dữ liệu
I.3 Các thuật toán mã hóa dùng trong SSL
- Các thuật toán mã hoá (cryptographic algorithm -cipher) là các hàm để
mã hoá và giải mã thông tin.
- Giao thức SSL hỗ trợ rất nhiều các thuật toán mã hoá, sử dụng trong
quá trình xác thực server và client, truyền tải các certificates và thiết lập
các khoá của từng phiên giao dịch
- Client và server có thể hỗ trợ các bộ mật mã (cipher suite) khác nhau
tuỳ thuộc vào phiên bản SSL đang dùng, chính sách về độ dài khoá cảm
thấy chấp nhận được - điều này liên quan đến mức độ bảo mật của thông
tin, ….
Một số thuật toán SSL sử dụng :
- DES (Data Encryption Standard)
- DSA (Digital Signature Algorithm):
- MD5 (Message Digest algorithm):
- RSA: là thuật toán mã hoá công khai dùng cho cả quá trình xác
thực và mã hoá dữ liệu được Rivest, Shamir, and Adleman phát
triển.
- RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL
dựa trên thuật toán RSA.
- RC2 and RC4:
- SHA-1 (Secure Hash Algorithm):
- Các thuật toán trao đổi khoá như KEA, RSA key exchange được sử
dụng để 2 bên client và server xác lập khoá đối xứng mà họ sẽ sử dụng
trong suốt phiên giao dịch SSL. Và thuật toán được sử dụng phổ biến là
RSA key exchange
- Các phiên bản SSL 2.0 và SSL 3.0 hỗ trợ cho hầu hết các bộ mã hoá.
Người quản trị có thể tuỳ chọn bộ mã hoá sẽ dùng cho cả client và
15
server. Khi một client và server trao đổi thông tin trong giai đoạn bắt tay
(handshake), họ sẽ xác định bộ mã hoá mạnh nhất có thể và sử dụng
chúng trong phiên giao dịch SSL.
II. Ứng dụng của SSL
II.1 Các ứng dụng phổ biến của SSL
Tuy
đến nay vẫn còn tồn
t
ạ
i
một số
lỗ
hổng có thể
bị
khai thác nhưng
SSL
vẫn
là
g
i
ao thức bảo mật cao nh ất
mà
chưa một
g
i
ao thức bảo mật nào có thể
thay thế
vai
trò của nó
.
Nó phổ
b
i
ến đến mức nếu thấy tên một
g
i
ao
thức
có
hậu tố
“s”
t
h
ì
ng
ườ
i
ta biết ngay
g
i
ao
thức ứng d ụng đó được kết hợp kèm
với
SSL.
Sau đây
là
một số po rt phổ
biến
của những ứng dụng
đi
kèm
SSL
được
IANA(Internet Assigned Numbers Authority)
công nhận
:
Hình 1
- Ngoài
một số ứng dụng phổ biến hiện nay của
SSL
như bảo mật trong
Remote Des ktop
Pro
t
oco
l
cho kết
nối Terminal Service, Http cho Outlook
Name
Port
Description
Nsiiop
261
Dịch vụ IIOP
trên
T
LS
/
SS
L
Https
443
HTTP trên TLS/SSL
Smtps
465
SMTP trên TLS/SSL
Nntps
563
NNTP trên TLS/SSL
Ldaps
636
LDAP trên TLS/SSL
Ftps-data
989
FTP-
dữ
liệu
trên
T
LS
/
SS
L
Ftps
990
FTP-
điều khiển trên
T
LS
/
S
SL
Telnets
992
TELNET trên TLS/SSL
Imaps
994
IRC trên TLS/SSL
16
Web Access hay Smtp/Imap/Pop3 cho mail ,
ứng dụng quan trọng của
SSL
mà
không thể không nhắc
t
ớ
i
là SSL VPN
- Đó là lý
do
t
ạ
i
sao không
chỉ
các nhà cung cấp thiết
bị
mạng ph ần
cứng
đang đua nhau trong
việc
phát
t
r
i
ển
các sản phẩm hổ trợ
SSL
VPN
mà
cả
nh ững nhà cung cấp
t
h
i
ết
bị
mạng
“mềm”
như Microsoft cũng đưa nó
vào sản
phẩm
Windows Server 2008 và Windows Vista Service Pack 1
của m
ì
nh
với cơ
chế
Secure Socket Tunneling Protocol (SSTP).
II.2 Ứng Dụng SSL Trên Web Server
II.2.1 Web Server ?
- Web Server (Máy phục vụ Web): máy tính mà trên đó cài đặt phần
mềm phục vụ Web, đôi khi người ta cũng gọi chính phần mềm đó là
Web Server. Tất cả các Web Server đều hiểu và chạy được các file *.htm
và *.html.
- Máy Web Server là máy chủ có dung lượng lớn, tốc độ cao, được
dùng để lưu trữ thông tin như một n hàng dữ liệu, chứa những website
đã được thiết kế cùng với những thông tin liên quan khác. (các mã
Script, các chương trình, và các file Multimedia).
- Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có
thể có một Domain Name.
- Khi máy tính của bạn kết nối đến một Web Server và gửi đến yêu cầu
truy cập các tông tin từ một trang Web nào đó, Web Server Software sẽ
nhận yêu cầu và gửi lại cho bạn những thông tin mà bạn mong muốn.
17
Hình 2
- Server phải hoạt động liên tục 24/24 giờ, 7 ngày một tuần và 365 ngày
một năm, để phục vụ cho việc cung cấp thông tin trực tuyến.
-Có nhiều loại Web Server khác nhau, nhưng chủ yếu trên thị trường chỉ
thường sử dụng Apache và IIS (Internet Information Server của
Microsoft).
Hình 3
18
II.2.2 Giải Pháp Bảo Vệ Web Server
- Truyền thông HTTP được định nghĩa cho máy chủ Web nói chung,
thông thường là các trang thông tin.
- Một số phương pháp cho Web Server an toàn hơn(hình vẽ):
Hình 4
Tuy nhiên nếu đang nghĩ đến việc chạy một trang điện tử hoặc các dịch vụ Web khác yêu
cầu phiên giao dịch an toàn thì bạn cần phải mã hóa dữ liệu được truyền thông giữa máy chủ
Web và các máy khách của nó.
Trường hợp thường được sử dụng nhất đó là Secure Sockets Layer
(SSL), SSL sử dụng mã hóa khóa công khai để bảo vệ thông tin bí mật của
người dùng (như là thẻ tín dụng, số tài khoản ngân hàng) vẫn được truyền
tải trên Web. Trong bài viết này sẽ giới thiệu 2 phương pháp:
+ Cách cài đặt SSL trên máy chủ Internet Information Services (IIS)
Web trên Win Server.( Xin một chứng chỉ cho web)
+ Cách cài đặt SSL trên máy chủ Apache Web Server trên hệ điều
hành CenTos( Tự tạo một chứng chỉ web)
19
II.2.3 Quy Trình Và Cài Đặt SSL
II.2.3.1 Quy trình cài đặt
1. Chọn 1 Server Cho ứng dụng
2. Tạo 1 CSR(Certificate Signing Request)(tùy theo Server đã
chọn mà có cách thức tạo khác nhau)
* Ở bước này 1 Private Key sẽ được tạo ra cùng lúc với
CSR.
3. Đăng kí tạo SSL Certificate từ 1 CA(Certificate Authority).
( ví dụ xin chứng chỉ free :)
4. Cài đặt SSL tùy theo yêu cầu của từng Server.
Trong đó thì :
CSR-Certificate Signing Request:Là một block Text được mã hóa
được lấy từ server mà ta sẽ dùng Certificate. Nó chứa những thông tin
xác thực như :organization name, common name (domain name),
locality, and country và publickey và một private key sẽ được tạo cùng
lúc tạo CSR .
Nội dung 1 CSR thường là :
20
+ Định dạng của SCR : Hấu hết các CSR được mã hóa theo Base64
BEGIN CERTIFICATE REQUEST
MIIByjCCATMCAQAwgYkxCzAJBgNVBAYTAlVTMRMwEQYDVQQ
IEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV
3MRMwEQYDVQQKEwpHb29nbGUgSW5jMR8w
HQYDVQQLExZJbmZvcm1hdGlvbiBUZWNobm9sb2d5MRcwFQYDVQ
QDEw53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQ
AwgYkCgYEApZtYJCHJ4VpVXHfVIlstQTlO4qC03hjX+ZkPyvdYd1Q4+
qbAeTwXmCUKYHThVRd5aXSqlPzyIBwieMZrWFlRQddZ1IzXAlVRD
WwAo60KecqeAXnnUK+5fXoTI/UgWshre8tJ+x/TMHaQKR/cIWPhqaQh
sJuzZbvAdGA80BLxdMCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4
GBAIhl4PvFq+e7ipARgI5ZM+GZx6mpCz44DTo0JkwfRDf+BtrsaC0q68e
Tf2XhYOsq4fkHQ0uA0aVog3f5iJxCa3Hp5gxbJQ6zV6kJ0TEsuaaOhEko9
sdpCoPOnRBm2i/XRD2D6iNh8f8z0ShGsFqjDgFHyF3o+lUyj+UC6H1Q
W7bn
END CERTIFICATE REQUEST
21
Certificate Authorety ( CA ):
- Là tổ chức cấp phát chữ kí điện tử.Nó giữ lại những thông tin nó ban
hành và những thông tin để phát hành chữ kí điện tử đó.
-Tính phí hoặc free:
+ Free : StartCom,Cacert ,các trial cua các CA, Godaddy
(Opensource)
+ Tinh phí
:Verisign,Comodo,DigiCert,Entrust,GlobalSign,Godady
II.2.3.1 Cài đặt SSL
Như ở mục trên đã trình bày xin đưa ra 2 phương pháp cài đặt SSL
trên 2 loại Web erver phổ biến đó là IIS và Apache
+ Cách cài đặt SSL trên máy chủ Internet Information Services
(IIS) Web trên Win Server.( Xin một chứng chỉ cho web)
+ Cách cài đặt SSL trên máy chủ Apache Web Server trên hệ điều
hành CenTos.( Tự tạo một chứng chỉ web)
III. Demo
* Cài đặt SSL máy chủ IIS.
* Cài đặt SSL máy chủ Apache.
22
Tài Liệu Tham Khảo
1.Cryptography and Network Security Principles and Practices, Fourth
Edition –By William Stallings
2.Security Cryptographic Principles, Algorithms and Protocols
–
By
Man Young Rhee
3. MCP 70-299: Implementing and Administering Security in a
Microsoft Windows Server 2003 Network
4. (BlackHat-DC-09-Marlinspike-Defeating-
SSL.pdf)
5. />