Tải bản đầy đủ (.doc) (94 trang)

Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.5 MB, 94 trang )

Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Mục lục
Danh mục các từ viết tắt...............................................................................iii
Danh mục các bảng biểu và hình vẽ.............................................................iii
Chương 1............................................................................................................1
Tìm hiểu tổng quan về Web và SSL..................................................................1
1.1 Giới thiệu chung về web..........................................................................1
1.2 Tổng quan về SSL....................................................................................1
1.2.1.Tổng quan về giao thức SSL.............................................................1
1.2.2. Lịch sử phát triển của giao thức SSL...............................................2
1.2.3. Khái niệm về giao thức SSL............................................................4
1.2.4. Cấu trúc của giao thức SSL..............................................................6
1.3 Tầm quan trọng của SSL Certificates (chứng chỉ số)............................11
Chương 2..........................................................................................................12
Cách thức làm việc của giao thức SSL............................................................12
2.1 Hoạt động của giao thức SSL.................................................................12
2.2 Nhiệm vụ của SSL.................................................................................18
2.3 Các giao thức con của SSL....................................................................20
2.3.1. Giao thức bản ghi (SSL Record Protocol).....................................20
2.3.2. Giao thức bắt tay (SSL Handshake Protocol)................................25
2.4 Đánh giá.................................................................................................30
2.4.1. Ưu điểm.........................................................................................30
2.4.2. Nhược điểm....................................................................................30
Chương 3..........................................................................................................32
Các ứng dụng sử dụng SSL..............................................................................32
3.1 Ứng dụng trong Internet Banking..........................................................32
3.2 Ứng dụng trong thương mại điện tử.......................................................33

Học viện Kỹ thuật Mật Mã


i


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Chương 4..........................................................................................................36
Lỗi liên quan đến chứng chỉ khi thực thi SSL.................................................36
4.1 Web browser không nhận ra các chứng chỉ ký bởi một CA..................36
4.2 Chứng chỉ hết hạn..................................................................................42
Chương 5..........................................................................................................43
Bảo mật website với SSL certificate của VeriSign.com.................................43
5.1 Tạo file Request Certificate...................................................................43
5.2 Xin SSL Certificate từ VeriSign.com....................................................52
5.3 Cấu hình Trusted Root Certification Authority.....................................62
5.4 Import SSL Certificate cho Web Server................................................70
5.5 Kiểm tra kết quả.....................................................................................77
*Tại sao lại sử dụng SSL Certificate của Verisign.com?.............................78
Kết luận:..........................................................................................................85
TÀI LIỆU THAM KHẢO............................................................................87

Học viện Kỹ thuật Mật Mã

ii


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Danh mục các từ viết tắt
SSL: Secure Socket Layer
PIN: Personal identification number

HTTP: Hyper Text Transport Protocol
IMAP: Internet Messaging Access Protocol
FTP: File Transport Protocol
IANA: Internet Asigned Numbers Authority
CA: Certificate authority
MAC: Message Authentication Code

Danh mục các bảng biểu và hình vẽ
Hình 1.1 Vị trí của SSL trong mô hình TCP/IP
Hình 1.2 Cấu trúc của giao thức SSL/TLS
Hình 2.1 Từng bước thành lập một kết nối SSL
Hình 2.2 Kết nối SSL
Hình 2.3 Mô hình chung về SSL Record Protocol
Hình 2.4 Các trường trong SSL Record Protocol
Hình 2.5 Quá trình tạo một bản ghi của SSL Record Protocol
Hình 2.6 Các pha làm việc của SSL Handshake Protocol
Bảng 1.1 Các số cổng được gán cho các giao thức ứng dụng chạy trên
TLS/SSL.
Bảng 1.2 Các thành phần thông tin trạng thái Session SSL
Bảng 1.3 Các thành phần thông tin trạng thái nối kết SSL

Học viện Kỹ thuật Mật Mã

iii


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Lời nói đầu
Hiện nay, nước ta đang trong giai đoạn tiến hành công nghiệp hóa, hiện đại

hóa đất nước. Công nghệ thông tin được xem là ngành công nghiệp mũi nhọn
được ưu tiên trong quá trình phát triển. Tin học đã và đang đóng góp rất nhiều
cho xã hội trong mọi mặt của đời sống xã hội.
Cùng với sự phát triển mạnh mẽ của công nghệ thông tin thì thương mại điện
tử cũng đã có những bước phát triển mới đáp ứng yêu cầu phát triển của kinh tế
thế giới. Một vấn đề quan trọng trong thương mại điện tử đó là việc bảo vệ bí
mật nội dung thông tin. Ngày càng có nhiều phương tiện biện pháp ra đời phục
vụ cho quá trình bảo vệ thông tin. Ngày nay, các ứng dụng mã hóa và bảo mật
thông tin đang được sử dụng ngày càng phổ biến không chỉ trong thương mại
điện tử mà trong rất nhiều các lĩnh vực khác nhau trên Thế giới, như các lĩnh vực
an ninh, quân sự, quốc phòng, v.v….
Ứng dụng mã hóa và bảo mật thông tin trong các hệ thống thương mại điện tử,
giao dịch chứng khoán,… đã trở nên phổ biến trên thế giới và sẽ ngày càng trở
nên quen thuộc với người dân Việt Nam. Tháng 7/2000, thị trường chứng khoán
lần đầu tiên được hình thành tại Việt Nam; các thẻ tín dụng bắt đầu được sử
dụng, các ứng dụng hệ thống thương mại điện tử đang ở bước đầu được quan
tâm và xây dựng. Do đó, nhu cầu về các ứng dụng mã hóa và bảo mật thông tin
trở nên rất cần thiết.
Giao thức SSL ra đời đã đáp ứng được nhu cầu cầu bảo mật thông tin khi
truyền trên kênh truyền công cộng. SSL là các giao thức đa mục đích được thiết
kế để tạo ra các giao tiếp giữa hai chương trình ứng dụng trên một cổng định
trước nhằm mã hoá toàn bộ thông tin đi/đến, mà ngày nay được sử dụng rộng rãi
cho giao dịch điện tử như truyền số hiệu thẻ tín dụng, mật khẩu, số bí mật cá
nhân trên Internet.

Học viện Kỹ thuật Mật Mã

iv



Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Vì vậy, em xin làm về đề tài: “Tìm hiểu về lỗi liên quan đến chứng chỉ khi
thực thi SSL” và từ đó đưa ra giải pháp tốt ưu nhất. Đồ án: “Tìm hiểu về lỗi liên
quan đến chứng chỉ khi thực thi SSL” bao gồm các nội dung chính sau:
Chương 1: Tìm hiểu tổng quan về Web và SSL
Chương 2: Cách thức làm việc của giao thức SSL
Chương 3: Tìm hiểu các ứng dụng sử dụng SSL
Chương 4: Lỗi liên quan đến chứng chỉ khi thực thi SSL
Chương 5: Bảo mật Web site với SSL Certificate của VeriSign.com

Học viện Kỹ thuật Mật Mã

v


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Lời cảm ơn
Em xin đặc biệt cám ơn Thạc Sỹ Trần Quang Kỳ- Giảng Viên Khoa An Toàn
Thông Tin, giáo viên đã định hướng đồ án và hướng dẫn cho em hoàn thành đồ
án của mình.
Em xin chân thành cám ơn các thầy cô giáo trong Khoa An Toàn Thông Tin –
Học viện Kỹ thuật Mật Mã đã tạo mọi điều kiện tốt nhất cho em trong quá trình
học tập và nghiên cứu.
Tuy đã hết sức cố gắng học tập theo sự chỉ dẫn của thầy giáo nhưng vì thời
gian có hạn và kinh nghiệm trong việc tự nghiên cứu còn chưa phong phú, nên
đồ án không tránh khỏi nhiều sai sót. Kính mong nhận được nhiều ý kiến đóng
góp của các thầy cô giáo cùng các bạn sinh viên trong trường để đồ án của em
ngày càng hoàn thiện hơn.


Học viện Kỹ thuật Mật Mã

vi


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Chương 1
Tìm hiểu tổng quan về Web và SSL
1.1 Giới thiệu chung về web
Ngày nay, khi Internet được phổ biến rộng rãi, các tổ chức, cá nhân đều có
nhu cầu giới thiệu thông tin của mình trên xa lộ thông tin cũng như thực hiện các
phiên giao dịch trực tuyến. Vấn đề này sinh là khi phạm vi ứng dụng của các ứng
dụng web ngày càng mở rộng thì khả năng xuất hiện lỗi và bị tấn công càng cao,
trở thành đối tượng cho nhiều người tấn công với các mục đích khác nhau. Đôi
khi, cũng chỉ đơn giản là để thử tài hoặc đùa giỡn với người khác.
Cùng với sự phát triển không ngừng của Internet và các dịch vụ trên Internet,
số lượng các vụ tấn công trên Internet cũng tăng theo cấp số nhân. Trong khi các
phương tiện thông tin đại chúng ngày càng nhắc nhiều đến những khả năng truy
cập thông tin của Internet, thì các tài liệu chuyên môn bắt đầu đề cập nhiều đến
vấn đề đảm bảo và an toàn dữ liệu cho các máy tính được kết nối vào mạng
Internet.
Với những công cụ tự tìm lỗ hổng tuy giúp rất nhiều cho những nhà lập trình
Web nhưng vẫn không thể ngăn chặn toàn bộ vì công nghệ Web đang phát triển
nhanh chóng (chủ yếu chú trọng đến yếu tố thẩm mĩ, yếu tố tốc độ…) nên dẫn
đến nhiều khuyết điểm mới phát sinh. Sự tấn công không nằm trong khuôn khổ
vài kĩ thuật đã phát hiện, mà linh động và tăng lên tùy vào những sai sót của nhà
quản trị hệ thống cũng như của những người lập trình ứng dụng.
1.2 Tổng quan về SSL

1.2.1.Tổng quan về giao thức SSL
SSL (Secure Socket Layer ) là giao thức đa mục đích được thiết kế để tạo ra
các giao tiếp giữa hai chương trình ứng dụng trên một cổng định trước (socket
Học viện Kỹ thuật Mật Mã

1


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

443) nhằm mã hoá toàn bộ thông tin đi/đến, mà ngày nay được sử dụng rộng rãi
cho giao dịch điện tử như truyền số hiệu thẻ tín dụng, mật khẩu, số bí mật cá
nhân (PIN) trên Internet.
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). Trong khi SSL có thể sử dụng để hỗ trợ các giao dịch an toàn cho rất
nhiều ứng dụng khác nhau trên Internet, thì hiện nay SSL được sử dụng chính
cho các giao dịch trên Web.
SSL là giao thức tầng (layered protocol), bao gồm 4 giao thức con sau:
+ Giao thức SSL Handshake
+ Giao thức SSL Change Cipher Spec
+ Giao thức SSL Alert
+ Giao thức SSL Record Layer
Giao thức SSL record xác định các định dạng dùng để truyền dữ liệu. Giao
thức SSL handshake (gọi là giao thức bắt tay) sẽ sử dụng SSL record protocol để
trao đổi một số thông tin giữa server và client vào lấn đầu tiên thiết lập kết nối
SSL.
1.2.2. Lịch sử phát triển của giao thức SSL

Ngày nay, việc mua bán, giao dich hàng trên mạng không còn gì là mới mẻ
nữa. Có rất nhiều web site trên khắp thế giới có thể cho phép giao dịch thương
mại điện tử. Giao dich trên mang tiếp tục phát triển không ngừng vì thế mà bảo
mật cho các giao dịch trên mạng bắt đầu trở nên quan trọng trong kinh doanh,
các tổ chức, các cá nhân.
May mắn thay, một giao thức truyền tin mà được cung cấp bảo mật đã được
triển khai vô cùng rộng rãi. Đó chính là giao thức bảo mật quan trọng trong lớp
Học viện Kỹ thuật Mật Mã

2


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

vận chuyển nó có tầm quan trọng cao đối với sự bảo mật của các trình ứng dụng
trên web đó là hai giao thức SSL/ TLS.
Nói chung, có một số khả năng để bảo vệ bằng mật mã lưu lượng dữ liệu
HTTP. Ví dụ, vào những năm 1990, tập đoàn CommerceNet đã đề xuất S-HTTP
mà về cơ bản là một cải tiến bảo mật của HTTP. Một phần thực thi của S-HTTP
đã làm cho có sẵn công cộng trong một phiên bản được chỉnh sửa của trình duyệt
Mosaic NCSA mà những người dùng phải mua (trái với trình duyệt Mo NCSA
"chuẩn" có sẵn công cộng và miễn phí trên Internet).
Tuy nhiên, cùng thời điểm Netscape Communication đã giới thiệu SSL và một
giao thức tương ứng với phiên bản đầu tiên của Netscape Navigator, Trái với tập
đoàn CommerceNet, Netscape Communications đã không tính phí các khách
hàng của nó về việc thực thi giao thức bảo mật của nó. Kết quả, SSL trở thành
giao thức nổi bật để cung cấp các dịch vụ bảo mật cho lưu lượng dữ liệu HTTP
1994 và S-HTTP lặng lẽ biến mất.
Sercure Socket Layer (SSL) hiện nay là giao thức bảo mật rất phổ biến trên
Internet trong các hoạt động thương mại điện tử (E-Commerce). Việt Nam đang

trên đường hội nhập với nền công nghệ thông tin thế giới, vì vậy các hoạt động
giao dịch trên mạng ở Việt Nam cũng sẽ phát triển hơn, khi đó vấn đề bảo mật
trở nên quan trọng, và việc triển khai SSL là điều cần thiết để bảo mật cho những
công việc đó.
Cho đến bây giờ, có ba phiên bản của SSL:
1. 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.
2. 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ề
Học viện Kỹ thuật Mật Mã

3


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

bảo mật của SSL, Microsoft cũng đã giới thiệu giao thức PCT (Private
Communication Technology) cạnh tranh trong lần tung ra Internet Explorer đầu
tiên của nó vào năm 1996.
3. SLL 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ó (mặc
dù phiên bản riêng của nó vẫn hỗ trợ PCT cho sự tương thích ngược).
Thông số kỹ thuật mới nhất của SSL 3.0 đã được tung ra chính thức vào
tháng 3 năm 1996. Nó được thực thi trong tất cả các trình duyệt chính bao gồm

ví dụ Microsoft Internet Explorer 3.0 (và các phiên bản cao hơn), Netscape
Navigator 3.0 (và các phiên bản cao hơn), và Open. SSL 3.0 đã được điều chỉnh
bởi IETF TLS WG. Thực tế, thông số kỹ thuật giao thức TLS 1.0 dẫn xuất từ
SSL3.0.
1.2.3. Khái niệm về giao thức SSL

Học viện Kỹ thuật Mật Mã

4


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Hình 1.1: Vị trí của SSL trong mô hình TCP/IP
Giao thức SSL (Secure Socket Layer) tổ hợp nhiều giải thuật mã hóa nhằm
đảm bảo quá trình trao đổi thông tin trên mạng được bảo mật. Việc mã hóa dữ
liệu diễn ra một cách trong suốt, hỗ trợ nhiều giao thức khác chạy trên nền giao
thức TCP.
Việc kết nối giữa một Web browser tới bất kỳ điểm nào trên mạng Internet đi
qua rất nhiều các hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các
thông tin trên đường truyền. Không một ai kể cả người sử dụng lẫn Web server
có bất kỳ sự kiểm soát nào đối với đường đi của dữ liệu hay có thể kiểm soát
được liệu có ai đó thâm nhập vào thông tin trên đường truyền. Để bảo vệ những
thông tin mật trên mạng Internet hay bất kỳ mạng TCP/IP nào, SSL đã kết hợp
những yếu tố sau để thiết lập được một 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.
Với việc sử dụng SSL, các Web site có thể cung cấp khả năng bảo mật thông
tin, xác thực và toàn vẹn dữ liệu đến người dùng. SSL được tích hợp sẵn vào các
browser và Web server, cho phép người sử dụng làm việc với các trang Web ở
chế độ an toàn. Khi Web browser sử dụng kết nối SSL tới server, biểu tượng ổ
khóa sẽ xuất hiện trên thanh trạng thái của cửa sổ browser và dòng “http” trong
hộp nhập địa chỉ URL sẽ đổi thành “https”. Một phiên giao dịch HTTPS sử dụng
cổng 443 thay vì sử dụng cổng 80 như dùng cho HTTP.
Học viện Kỹ thuật Mật Mã

5


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

1.2.4. Cấu trúc của giao thức SSL
Cấu trúc của SSL và giao thức SSL tương ứng được minh họa trong hình 1.2
(Cấu trúc SSL và giao thức SSL). 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. Về khả năng, nó có thể
cung cấp các dịch vụ bảo mật cho các giao thức ứng dụng tùy ý dựa vào TCP
chứ không chỉ HTTP.

Hình 1.2: Cấu trúc của giao thức SSL/TLS
Tóm lại, Giao thức SSL cung cấp sự bảo mật truyền thông vốn có ba đặc tính

cơ bản:
- Các bên giao tiếp (nghĩa là client và server) có thể xác thực nhau bằng cách
sử dụng mật mã khóa chung.
- Sự bí mật của lưu lượng dữ liệu được bảo vệ vì nối kết được mã hóa trong
suốt sau khi một sự thiết lập quan hệ ban đầu và sự thương lượng khóa session
đã xảy ra.
Học viện Kỹ thuật Mật Mã

6


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

- Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ vì
các thông báo được xác thực và được kiểm tra tính toàn vẹn một cách trong suốt
bằng cách sử dụng MAC.
Tuy nhiên, điều quan trọng cần lưu ý là SSL không ngăn các cuộc tấn công
phân tích lưu lượng. Ví dụ, bằng cách xem xét các địa chỉ IP nguồn và đích
không được mã hóa và các sô cổng TCP, hoặc xem xét lượng dữ liệu được
truyền, một người phân tích lưu lượng vẫn có thể xác định các bên nào đang
tương tác, các loại dịch vụ đang được sử dụng, và đôi khi ngay cả dành được
thông tin về các mối quan hệ doanh nghiệp hoặc cá nhân. Hơn nữa, SSL không
ngăn các cuộc tấn công có định hướng dựa vào phần thực thi TCP, chẳng hạn
như các cuộc tấn công làm tràn ngập TCP SYN hoặc cưỡng đoạt session
Để sử dụng sự bảo vệ SSL, cả client lẫn server phải biết rằng phía bên kia
đang sử dụng SSL. Có ba khả năng để giải quyết vấn đề này:
- Sử dụng các số cổng chuyên dụng được dành riêng bởi Internet Asigned
Numbers Authority (IANA). Trong trường hợp này, một số cổng riêng biệt phải
được gán cho mọi giao thức ứng dụng vốn sử dụng SSL.
- Sử dụng số cổng chuẩn cho mọi giao thức ứng dụng và để thương lượng các

tùy chọn bảo mật như là một phần của giao thức ứng dụng (bây giờ được chỉnh
sửa đôi chút).
- Sử dụng một tùy chọn TCP để thương lượng việc sử dụng một giao thức bảo
mật, chẳng hạn như SSL trong suốt giai đoạn thiết lập nối kết TCP thông thường.
Sự thương lượng dành riêng cho ứng dụng của các tùy chọn bảo mật (nghĩa là
khả năng thứ hai) có khuyết điểm là đòi hỏi mọi giao thức ứng dụng được chỉnh
sửa để hiểu tiến trình thương lượng. Ngoài ra, việc xác định một tùy chọn TCP
(nghĩa là khả năng thứ ba) là một giải pháp tốt, nhưng đó không được thảo luận
nghiêm túc cho đến bây giờ. Thực tế, các số cổng riêng biệt đã được dành riêng
và được gán bởi IANA cho mọi giao thức ứng dụng vốn có thể chạy trên SSL
hoặc TLS (nghĩa là khả năng thứ nhất). Tuy nhiên, hãy chú ý việc sử dụng các số
Học viện Kỹ thuật Mật Mã

7


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

cổng riêng biệt cũng có khuyết điểm là đòi hỏi hai nối kết TCP nếu client không
biết những gì mà server hỗ trợ. Trước tiên, client phải nối kết với cổng an toàn
và sau đó với cổng không an toàn hay ngược lại. Rất có thể các giao thức sau này
sẽ hủy bỏ phương pháp này và tìm khả năng thứ hai. Ví dụ, SALS (Simple
Authentication và Security Layer) xác định một phù hợp để thêm sự hỗ trợ xác
thực vào các giao thức ứng dụng dựa vào kết nối. Theo thông số kỹ thuật SALS,
việc sử dụng các cơ chế xác thực có thể thương lượng giữa client và server của
một giao thức ứng dụng đã cho.
Các số cổng được gán bởi IANA cho các giao thức ứng dụng vốn chạy trên
SSL/TLS được tóm tắt trong bảng 1.1 và được minh họa một phần trong hình
2.3. Ngày nay, "S" chỉ định việc sử dụng SSL được thêm (hậu tố) nhất quán vào
các từ ghép của các giao thức ứng dụng tương ứng (trong một số thuật ngữ ban

đầu, S được sử dụng và được thêm tiền tố một cách không nhất quán và một số
từ ghép).
Bảng 1.1: Các số cổng được gán cho các giao thức ứng dụng chạy trên
TLS/SSL.
Từ
khóa
Nsiiop
https
Smtps
Nntps
Ldaps

Cổ
ng
26
1
44
3
46
5
56
3
63

Học viện Kỹ thuật Mật Mã

Mô tả
Dịch vụ tên IIOP trên
TLS/SSL
HTTP trên TLS/SSl

SMTP trên TLS/SSL
NNTP trên TLS/SSL
LDAP trên TLS/SSL

8


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

6
Ftps98
FTP (dữ liệu) trên TLS/SSL
data
9
99 FTP (Điều khiển) trên
Ftps
0
TLS/SSL
99
Tenets
TELNET trên TLS/SSL
2
99
Imaps
IRC trên TLS/SSL
4
99
Pop3s
POP3 trên TLS/SSL
5

Nói chung, một session SSL có trạng thái và giao thức SSL phải khởi tạo và
duy trì thông tin trạng thái ở một trong hai phía của session. Các phần tử thông
tin trạng thái session tương ứng bao gồm một session ID, một chứng nhận ngang
hàng, một phương pháp nén, một thông số mật mã, một khóa mật chính và một
cờ vốn chỉ định việc session có thể tiếp tục lại hay không, được tóm tắt trong
bảng 1.2. Một session SSL có thể được sử dụng trong một số kết nối và các
thành phần thông tin trạng thái nối kết tương ứng được tóm tắt trong bảng 1.3.
Chúng bao gồm các tham số mật mã, chẳng hạn như các chuỗi byte ngẫu nhiên
server và client, các khóa mật MAC ghi server và client, các khóa ghi server và
client, một vector khởi tạo và một số chuỗi. Ở trong hai trường hợp, điều quan
trọng cần lưu ý là các phía giao tiếp phải sử dụng nhiều session SSL đồng thời
và các session có nhiều nối kết đồng thời.
Bảng 1.2 Các thành phần thông tin trạng thái Session SSL
Thành Phần
Session ID

Mô tả
Định danh được chọn bởi server để nhận dạng một trạng thái
session hoạt động hoặc có thể tiếp tục lại.

Học viện Kỹ thuật Mật Mã

9


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Peer certificate
Compression
method

Cipher spec
Master secret

Chứng nhân X.509 phiên bản 3 của thực thể ngang hàng.
Thuật toán dừng để nén dữ liệu trước khi mã hóa

Thông số của các thuật toán mã hóa dữ liệu và MAC
Khóa mật 48-byte được chia sẻ giữa client và server.
Cờ vốn biểu thị session có thể được sử dụng để bắt đầu các
Is resumable
nối kết mới hay không.
Bảng 1.3 Các thành phần thông tin trạng thái nối kết SSL

Thành Phần
Mô tả
Ngẫu nhiên server Các chuỗi byte được chọn bởi server và client cho mỗi
và client
nối kết.
Khóa mật MAC
Khóa mật được sử dụng cho các hoạt động MAC trên dữ
ghi server
liệu được ghi bởi server.
Khóa mật MAC
Khóa mật được sử dụng cho các hoạt động MAC trên dữ
ghi client
liệu được ghi bởi client.
Khóa được sử dụng cho việc mã hóa dữ liệu bởi server và
Khóa ghi server
giải mã bởi client
Khóa được sử dụng để mã khóa dữ liệu bởi client và giải

Khóa ghi client
mã bởi server.
Initialization
Trạng thái khởi tạo cho một mật mã khối trong chế độ
vector
CBC.
Mỗi phía duy trì các số chuỗi riêng biệt cho các thông
Số chuỗi
báo được truyền và được nhận cho mỗi nối kết.
Giao thức SSL gồm hai phần chính, SSL Record Protocol và một số giao thức
con SSL được xếp lớp trên nó:
- Record OK được xếp lớp trên một dịch vụ lớp 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 và cung cấp sự xác
thực nguồn gốc thông báo, sự bí mật dữ liệu và dữ liệu.
Học viện Kỹ thuật Mật Mã

10


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Các dịch vụ toàn vẹn (bao gồm nhưng thứ như chống xem lại).
Các giao thức con SSL được xếp lớp trên SSL Record Protocol để cung cấp sự
hỗ trợ cho việc quản lý session SSL và thiết lập nối kết.
Giao thức con SSL quan trọng nhất là SSL Handshake Protocol. Lần lượt giao
thức này là một giao thức xác thực và trao đổi khóa vốn có thể được sử dụng để
thương lượng, khởi tạo và đồng bộ hóa các tham số bảo mật và thông tin trạng
thái tương ứng được đặt ở một trong hai điểm cuối của một session hoặc nối kết
SSL.
Sau khi SSL Handshake Protocol đã hoàn tất, dữ liệu ứng dụng có thể được

gửi và được nhận bằng cách sử dụng SSL Record Protocol và các tham số bảo
mật được thương lượng và các thành phần thông tin trạng thái.
1.3 Tầm quan trọng của SSL Certificates (chứng chỉ số)
Chứng chỉ số có vai trò rất quan trọng trong các giao dịch trực tuyến như: đặt
hàng, thanh toán, trao đổi thông tin,….đặc biệt là trong các lĩnh vực thương mại
điện tử, sàn giao dịch vàng và chứng khoán, ngân hàng điện tử, chính phủ điện
tử. Khi được sử dụng, mọi dữ liệu trao đổi giữa người dùng và website sẽ được
mã hóa (ở phía người gửi) và giải mã (ở phía người nhận) bởi cơ chế SSL mạnh
mẽ nhất hiện nay.
Nếu website không sử dụng chứng chỉ số, mọi dữ liệu sẽ được truyền đi
nguyên bản. Khi đó, nguy cơ dữ liệu bị xâm nhập trong quá trình trao đổi dữ liệu
giữa người gửi và người nhận sẽ rất cao. Một hậu quả trước mắt là khách hàng sẽ
không tin tưởng, và dẫn đến không sử dụng dịch vụ của website đó.
VeriSign® là thương hiệu uy tín nhất trên toàn thế giới hiện nay trong lĩnh
vực cung cấp chứng chỉ số. Một website có gắn biểu tượng “VeriSign Secured
Seal” sẽ gia tăng mức độ tin cậy từ phía khách hàng lên rất nhiều lần.

Học viện Kỹ thuật Mật Mã

11


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Chương 2
Cách thức làm việc của giao thức SSL
2.1 Hoạt động của giao thức SSL
Điểm cơ bản của SSL được thiết kế độc lập với tầng ứng dụng để đảm bảo
tính bí mật, an toàn và chống giả mạo luồng thông tin qua Internet giữa hai ứng
dụng bất kỳ, thí dụ như webserver và các trình duyệt khách (browsers), do đó

được sử dụng rộng rãi trong nhiều ứng dụng khác nhau trên môi trường Internet.
Toàn bộ cơ chế hoạt động và hệ thống thuật toán mã hoá sử dụng trong SSL
được phổ biến công khai, trừ khoá chia xẻ tạm thời (session key) được sinh ra tại
thời điểm trao đổi giữa hai ứng dụng là tạo ngẫu nhiên và bí mật đối với người
quan sát trên mạng máy tính. Ngoài ra, giao thức SSL còn đỏi hỏi ứng dụng chủ
phải được chứng thực bởi một đối tượng lớp thứ ba (CA) thông qua giấy chứng
thực điện tử (digital certificate) dựa trên mật mã công khai (thí dụ RSA).

Học viện Kỹ thuật Mật Mã

12


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Biểu đồ dưới đây sẽ chỉ ra một cách đơn giản với từng bước quá trình thiết lập
kết nối SSL giữa máy khách (client – dùng một đường dẫn web browser) và máy
chủ (server – dùng một SSL web server)

Học viện Kỹ thuật Mật Mã

13


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Hình 2.1. Từng bước thành lập một kết nối SSL

Học viện Kỹ thuật Mật Mã


14


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Như bạn thấy trên hình, quá trình thiết lập kết nối SSL bắt đầu bằng việc trao
đổi các tham số mã hoá và sau đó xác nhận các server một cách tuỳ ý (dùng gia
thức SSL Handshake). Nếu “bắt tay” (Handshake) thành công, cả hai chiều đều
chấp nhận bộ mã hoá chung và các khoá mã hoá, thì dữ liệu ở tầng ứng dụng
(thông thường dùng HTTP, nhưng cũng có thể là một giao thức khác) có thể
được gửi thông qua đường hầm (tunnel) mã hoá (dùng SSL Record Layer).
Trong thực tế, tiến trình trên còn phức tạp hơn một chút. Để tránh những cái
“bắt tay” không cần thiết, một số tham số mã hoá được giữ lại. Các thông báo
được gửi đi. Bộ mã hoá cũng có thể được thay đổi. Tuy nhiên, bất chấp các đặc
điểm kĩ thuật đó, cách thức phổ biến nhất của tiến trình này làm việc thực sự như
trên.
Giao thức SSL dựa trên hai nhóm con giao thức là giao thức “bắt tay”
(handshake protocol) và giao thức “bản ghi” (record protocol). Giao thức “bắt
tay” xác định các tham số giao dịch giữa hai đối tượng có nhu cầu trao đổi thông
tin hoặc dữ liệu Giao thức “bản ghi” xác định khuôn dạng cho tiến hành mã hoá
và truyền tin hai chiều giữa hai đối tượng đó.
Khi hai ứng dụng máy tính, thí dụ giữa một trình duyệt web và máy chủ web,
làm việc với nhau, máy chủ và máy khách sẽ trao đổi “lời chào” (hellos) dưới
dạng các thông điệp cho nhau với xuất phát đầu tiên chủ động từ máy chủ, đồng
thời xác định các chuẩn về thuật toán mã hoá và nén số liệu có thể được áp dụng
giữa hai ứng dụng. Ngoài ra, các ứng dụng còn trao đổi “số nhận dạng/khoá theo
phiên” (session ID, session key) duy nhất cho lần làm việc đó. Sau đó ứng dụng
khách (trình duyệt) yêu cầu có chứng thực điện tử (digital certificate) xác thực
của ứng dụng chủ (web server).
Sau khi kiểm tra chứng chỉ điện tử của máy chủ (sử dụng thuật toán mật mã

công khai, như RSA tại trình máy trạm), ứng dụng máy trạm sử dụng các thông
tin trong chứng chỉ điện tử để mã hoá thông điệp gửi lại máy chủ mà chỉ có máy
chủ đó có thể giải mã. Trên cơ sở đó, hai ứng dụng trao đổi khoá chính (master
Học viện Kỹ thuật Mật Mã

15


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

key) - khoá bí mật hay khoá đối xứng - để làm cơ sở cho việc mã hoá luồng
thông tin/dữ liệu qua lại giữa hai ứng dụng chủ khách. Toàn bộ cấp độ bảo mật
và an toàn của thông tin/dữ liệu phụ thuộc vào một số tham số: (i) số nhận dạng
theo phiên làm việc ngẫu nhiên; (ii) cấp độ bảo mật của các thuật toán bảo mật
áp dụng cho SSL; và (iii) độ dài của khoá chính (key length) sử dụng cho lược
đồ mã hoá thông tin.
Sau đây ta xem xét một cách khái quát cơ chế hoạt động của SSL để phân tích
cấp độ an toàn của nó và các khả năng áp dụng trong các ứng dụng nhạy cảm,
đặc biệt là các ứng dụng về thương mại và thanh toán điện tử...

Hình 2.2: Kết nối SSL
Các bước thực hiện trao đổi xác thực và các thông tin cần thiết để thiết lập
đường hầm giữa Client và Server như sau:
Bước 1: Client gửi message ClientHello cho Server để bắt đầu khởi tạo phiên
giao dịch. Message này gồm các thông tin sau :

Học viện Kỹ thuật Mật Mã

16



Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Version : Xác định phiên bản mới nhất của giao thức SSL mà phía Client hỗ
trợ.
RandomNumber : Một số ngẫu nhiên có độ dài 32 bytes dùng để tính khóa
cho phiên giao dịch khi trao đổi dữ liệu.
SessionID: Để xác định phiên giao dịch này.
CipherSuites : Danh sách các thuật toán mã hóa mà Client có thể hỗ trợ
CompressionMethods : Xác định các thuật toán nén dữ liệu mà Client có thể
hỗ trợ.
Bước 2 - ServerHello : Khi nhận được Message ClientHello, Server sẽ trả
lời lại Client với Message ServerHello.Message này gồm các thông tin sau:
Version : phiên bản giao thức SSL được chọn sử dụng trong giao tiếp
RandomNumber : Một số ngẫu nhiên có độ dài 32 bytes dùng để tính khóa
cho phiên giao dịch khi trao đổi dữ liệu.
SessionID: Để xác định phiên giao dịch này.
CipherSuite : Thuật toán mã hóa mà Server chọn để sử dụng.
CompressionMethod: Thuật toán nén dữ liệu mà Server chọn để sử dụng.
Bước 3-ServerKeyExchange : Server gửi thông tin về khóa chung của nó
bằng thông điệp ServerKeyExchange -Message này chứa thông tin về Public key
của Server.Public key của Server sẽ được Client sử dụng để xác thực Server.
Bước 4-ServerHelloDone : Server kết thúc phần của nó trong quá trình thỏa
thuận bằng thông điệp ServerHelloDone -Đây là message mà Server muốn nói
với Client là nó đã gửi xong thông tin khởi tạo giao dịch. Bản thân thông điệp
không chưa thông tin nào khác, vì chỉ khi client nhận được thông điệp này nó
mới tiến hành chuyển sang phần thiết lập phiên trao đổi thông tin an toàn.
Bước 5-ClientKeyExchange : Client gửi thông tin khóa của phiên giao
dịch (đã được mã hóa bằng public key của server) trong thông điệp
ClientKeyExchange -Message này chứa thông tin về khóa của Client. Message

này được mã hóa bằng chính Public key của Server. Chính sự mã hóa này bảo vệ
Học viện Kỹ thuật Mật Mã

17


Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

thông tin về khóa của Client đồng thời xác thực Server. Vì chỉ có Server mới có
thể giải mã được Message này.
Bước 6-ChangeCipherSpec : Message này Client gửi để đánh dấu các
bên bắt đầu sử dụng các dịch vụ và thông tin an toàn.
Bước 7-Finished: Client gửi message này để báo cho Server biết quá
trình giao dịch có thành công không . Message này bao gồm các thông tin sau :
Thông tin về khóa.
Nội dung của các message bắt tay SSL trước được trao đổi bởi hệ thống.
Bước 8- ChangeCipherSpec: Message này được gửi bởi Server nó cũng
giống như cái gửi bởi Client. Cấu trúc của chúng như sau :

Bước 9-ServerFinished : Server gửi message này. Cấu trúc của nó cũng
giống như là cái message mà Client gửi.
2.2 Nhiệm vụ của SSL
SSL không phải là một giao thức đơn lẻ, mà là một tập các thủ tục đã được
chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau:

Học viện Kỹ thuật Mật Mã

18



Đề tài: Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL

Xác thực server: Cho phép người sử dụng xác thực được server muốn kết nối.
Lúc này, phía browser sử dụng các kỹ thuật mã hoá công khai để chắc chắn rằng
certificate và public ID của server là có giá trị và được cấp phát bởi một CA
(certificate authority) trong danh sách các CA đáng tin cậy của client. Điều này
rất quan trọng đối với người dùng. Ví dụ như khi gửi mã số credit card qua mạng
thì người dùng thực sự muốn kiểm tra liệu server sẽ nhận thông tin này có đúng
là server mà họ định gửi đến không.
Xác thực Client: Cho phép phía server xác thực được người sử dụng muốn kết
nối. Phía server cũng sử dụng các kỹ thuật mã hoá công khai để kiểm tra xem
certificate và public ID của server có giá trị hay không và được cấp phát bởi một
CA (certificate authority) trong danh sách các CA đáng tin cậy của server không.
Điều này rất quan trọng đối với các nhà cung cấp. Ví dụ như khi một ngân hàng
định gửi các thông tin tài chính mang tính bảo mật tới khách hàng thì họ rất
muốn kiểm tra định danh của người nhận.
Mã hoá kết nối: Tất cả các thông tin trao đổi giữa client và server được mã
hoá trên đường truyền nhằm nâng cao khả năng bảo mật. Điều này rất quan trọng
đối với cả hai bên khi có các giao dịch mang tính riêng tư. Ngoài ra, tất cả các dữ
liệu được gửi đi trên một kết nối SSL đã được mã hoá còn được bảo vệ nhờ cơ
chế tự động phát hiện các xáo trộn, thay đổi trong dữ liệu. ( đó là các thuật toán
băm – hash algorithm).
Trong giao thức SSL có sự kết hợp của mật mã đối xứng và bất đối xứng. Các
thuật toán mật mã bất đối xứng như: RSA, và thuật toán Diffie-Hellman. Các
hàm băm như MD5, SHA1. Các thuật toán mật mã đối xứng được hỗ trợ là RC2,
RC4, 3DES.
Các chứng chỉ khóa công khai được sử dụng cho việc xác thực và bảo vệ khóa
mật mã đối xứng. các trung tâm chứng thực đặc biệt xác minh các chứng chỉ số
của người dùng bằng một chữ ký số. SSL hỗ trợ các chứng chỉ số thỏa
mãn chuẩn X.509.

Học viện Kỹ thuật Mật Mã

19


×