Tải bản đầy đủ (.pdf) (86 trang)

luận văn '''' nghiên cứu sử dụng công nghệ bảo mật ssl tls''''

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 (820.36 KB, 86 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ



Đặng Thị Huê



NGHIÊN CỨU SỬ DỤNG CÔNG NGHỆ BẢO MẬT
SSL/TLS



KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành : Công nghệ thông tin
Cán bộ hướng dẫn: PGS.TS. Trịnh Nhật Tiến







HÀ NỘI - 2005

Trang i


Lời cảm ơn


Em xin gửi lời cảm ơn chân thành tới thầy giáo hướng dẫn PGS.TS Trịnh
Nhật Tiến đã tận tình hướng dẫn, cho em những định hướng và ý kiến quý báu cùng
sự trực tiếp chỉ bảo của chị Trương Thị Thu Hiền đã giúp em hoàn thành tốt luận văn
tốt nghiệp.
Em chân thành cảm ơn tất cả các thầy cô trong Trường Đại Học Công Nghệ -
Đại Học Qu
ốc Gia Hà Nội đã nhiệt tình giảng dạy và giúp đỡ em trong quá trình học
tập tại trường.
Con xin gửi đến Bố Mẹ và gia đình tình thương yêu và lòng biết ơn. Bố Mẹ
và gia đình luôn là nguồn động viên của con và là chỗ dựa vững chắc cho cuộc đời
con. Tôi xin cảm ơn các bạn cùng lớp đã động viên và giúp đỡ tôi trong thời gian thực
hiện luận văn này.
Vì thời gian có hạn, khoá luận tốt nghiệ
p của em không tránh khỏi khiếm
khuyết. Rất mong nhận được sự góp ý của thầy cô và các bạn
Hà Nội, ngày 06 tháng 06 năm 2005.
Sinh viên
Đặng Thị Huê




Trang ii

Tóm tắt
Được thiết kế bởi Netscape bao gồm các cơ chế bảo mật trong các sản phẩm
trình duyệt để tạo ra truyền thông an toàn trên mạng, SSL (Secure Sockets Layer) hiện
đang là giao thức bảo mật được sử dụng phổ biến trên Internet nhất là trong các hoạt
động thương mại điện tử. Ban đầu, SSL được thiết kế kết hợp cùng với giao thức
HTTP được sử dụng bởi các Web server và browser, nhưng bây giờ nó đã là mộ

t thành
phần quan trọng trong mọi loại truyền thông Internet bảo mật. Việt Nam đang trên
đường hội nhập với nền công nghệ thông tin thế giới, các hoạt động giao dịch trên
mạng ở Việt Nam cũng sẽ diễn ra sôi nổi, khi đó vấn đề bảo mật trở nên quan trọng,
việc triển khai SSL là điều cần thiết. Tuy nhiên đến nay hầu hết các website ở Việt
Nam đều chưa sử d
ụng SSL trong các giao dịch của mình. Trong khoá luận này, em
tiến hành nghiên cứu chi tiết về giao thức bảo mật SSL và cách triển khai chúng trên
Internet Information Service (IIS) và Windows Server Enterprise 2003. Chúng tôi hy
vọng rằng với khoá luận này sẽ đem đến cái nhìn cụ thể hơn về SSL và bảo mật mạng,
tầm quan trọng của nó cũng như ứng dụng trong thực tế.


Trang iii
MỤC LỤC

Chương 1 MỘT SỐ VẤN ĐỀ VỀ BẢO MẬT 5
1.1 Vấn đề an toàn mạng 5
1.1.1 Giao thức bảo mật ngăn cách (tách rời) 5
1.1.2 Bảo mật đặc tả ứng dụng 6
1.1.3 Bảo mật với các giao thức trung tâm 7
1.1.4 Giao thức bảo mật song song 8
1.2 Vấn đề mã hoá 9
1.2.1 Khái niệm mã hoá 9
1.2.2 Hệ mã hoá đối xứng 10
1.2.3 Hệ mã hoá phi đối xứng 10
1.2.4 Chứng chỉ khoá công khai 11
1.3 Vấn đề ký số 12
1.4 Vấn đề xác thực số 13
Chương 2 KHE CẮM AN TOÀN (SSL) 16

2.1 Tổng quan về SSL 16
2.1.1 Lịch sử SSL 16
2.1.2 Cơ bản về SSL 16
2.1.3 SSL và ứng dụng thương mại điện tử 19
2.2 Giao thức bản ghi (Record Protocol) 20
2.3 Giao thức ChangeCipherSpec 23
2.4 Giao thức cảnh báo (Alert Protocol) 23
2.4.1 Kiểu Closure Alert 24
2.4.2 Kiểu Error Alert 24
2.5 Giao thức bắt tay (Handshake Protocol) 25
2.5.1 Giai đoạn 1 : Các thông điệp Hello cho kết nối logic 28
• 1. Thông điệp HelloRequest 28
• 2. Thông điệp ClientHello 28
2.5.2 Giai đoạn 2 : Xác thực Server và trao đổi khoá 30


Trang iv
• 4. Thông điệp ServerCertificate 30
• 5. Thông điệp ServerKeyExchange 32
• 6. Thông điệp CertificateRequest 34
• 7. Thông điệp ServerHelloDone 36
2.5.3 Giai đoạn 3 : Xác thực Client và trao đổi khoá 36
• 8. Thông điệp ClientCertificate 36
• 9. Thông điệp ClientKeyExchange 37
• 10. Thông điệp CertificateVerify 38
2.5.4 Giai đoạn 4 : Kết thúc kết nối bảo mật 40
• 11. Thông điệp ChangeCipherSpec 40
• 12. Thông điệp Finished 41
2.5.5 Xác thực Server, xác thực client 42
2.5.5.1 Xác thực Server 42

2.5.5.2 Xác thực Client 43
2.6 Bảo mật của SSL 45
2.6.1 Các hệ mã hoá sử dụng với SSL 45
2.6.2 Bảo mật của SSL 46
2.7 Ưu điểm và hạn chế của SSL/TLS 48
2.7.1 Ưu điểm của SSL 48
2.7.2 Hạn chế của SSL 49
2.7.2.1 Các giới hạn giao thức cơ bản 49
2.7.2.2 Giới hạn công cụ 51
2.7.2.3 Các giới hạn môi trường 51
2.7.3 Tối ưu hoá SSL 52
2.7.3.1 Công nghệ tăng tốc giao dịch SSL 53
2.7.3.2 Tăng tốc SSL với vấn đề duy trì website (Web site persistence) 55
2.7.3.3 Tăng tốc SSL và content switch 55
2.7.3.4 Quá trình phát triển của bộ tăng tốc SSL 56
2.7.3.5 Bộ tăng tốc SSL của SonicWALL 56
2.7.3.6 Các đặc điểm nổi bật và lợi ích của SonicWALL SSL Offloader 57
2.7.3.7 Các phương án triển khai 59
Chương 3 BẢO MẬT TẦNG GIAO VẬN (TLS) 61
3.1 Giới thiệu tổng quan 61


Trang v
3.2 Thông điệp giao thức cảnh báo 62
3.3 Xác thực thông điệp 63
3.4 Sinh nguyên liệu khoá 64
3.5 Xác nhận chứng chỉ 67
3.6 Thông điệp Finished 67
3.7 Các bộ mã cơ sở 68
Chương 4 SỬ DỤNG GIAO THỨC SSL/TLS 69

Tài liệu tham khảo 77



Trang vi
Danh sách hình vẽ
Hình 1. Vị trí SSL trong mô hình giao thức bảo mật tách rời 5

Hình 2 Bảo mật có thể được gắn trực tiếp vào giao thức ứng dụng 6
Hình 3. IPSec 7
Hình 4. Giao thức ứng dụng sử dụng Kerberos 8
Hình 5. SSL tính toán một mã thông điệp 14
Hình 6. Vị trí SSL trong mô hình OSI 17
Hình 7. Vị trí giao thức bản ghi trong giao thức SSL 21
Hình 8. Các giai đoạn thi hành của giao thức bản ghi 21
Hình 9. Cấu trúc một thông điệp SSL Record 22
Hình 10. Thông điệp ChangeCipherSpec 23
Hình 11. Định dạng thông điệp Alert 24
Hình 12. Vị trí giao thức bắt tay 25
Hình 13. Tiến trình bắt tay 26
Hình 14. Thông điệp Certificate 31
Hình 15. ServerKeyExchange mang các tham số Diffie-Hellman 32
Hình 16. ServerKeyExchange mang các tham số RSA 33
Hình 17. ServerKeyExchange sử dụng Fortezza 33
Hình 18. Server ký một hàm băm của các tham số ServerKeyExchange 34
Hình 19. Thông điệp CertificateRequest 35
Hình 20. Thông điệp ServerHelloDone 36
Hình 21. Thông điệp ClientKeyExchange với RSA 37
Hình 22. Thông điệp ClientKeyExchange với Diffie-Hellman 38
Hình 23. Thông điệp ClientKeyExchange với Fortezza 38

Hình 24. CertificateVerify 39
Hình 25. Thông điệp Finished 41


Trang vii
Hình 26. Thông điệp Finish bao gồm một hàm băm 42
Hình 27. Quá trình xác thực server 43
Hình 28. Quá trình xác thực client 45
Hình 29. Một bộ tăng tốc trực tuyến 54
Hình 30. TLS sử dụng HMAC để sinh đầu ra giả ngẫu nhiên 65
Hình 31. Hàm giả ngẫu nhiên của TLS sử dụng cả MD5 và SHA 66
Hình 32. TLS sử dụng PRF để tạo ra master secret và nguyên liệu khoá 67
Hình 33. TLS sử dụng PRF cho các thông điệp Finished 68
Danh sách bảng biểu
Bảng 1. Giá trị các kiểu chứng chỉ 35

Bảng 2. Sự khác biệt giữa SSL v3.0 và TLSv1.0 61
Bảng 3. Các thay đổi trong giao thức cảnh báo 62
Bảng 4. Các bước sinh một đầu ra giả ngẫu nhiên 64


Trang viii

Bảng chú giải một số cụm từ viết tắt

CA Certificate Authority (Tổ chức cấp chứng chỉ)
Client Máy khách
HTTP HyperText Transfer Protocol (Giao thức truyền siêu văn bản)
IETF Internet Engineering Task Force
LDAP Lightweight Directory Access Protocol

MAC Message Authentication Code (Mã xác thực thông điệp)
Server Máy chủ
SSL Secure Sockets Layer (Khe cắm an toàn)
TCP/IP Transfer Control Protocol/Internet Protocol
TLS Transport Layer Security (Bảo mật tầng giao vận)







Giới thiệu Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 1
Giới thiệu
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 (Secure Sockets Layer) đã kết hợp những
yếu tố sau để thiết lập được một giao dịch an toàn : đó là 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.Tuy nhiên, mặt trái của SSL là làm chậm lại hiệu nǎng thực hiện
của ứng dụng. Mức sử dụng tài nguyên hệ thống CPU đòi hỏi trong tiến trình mã hoá
và gi
ải mã cho một trang SSL có thể cao hơn từ 10 đến 100% so với các trang không
được bình thường. Nếu máy chủ có lưu lượng các trang SSL cao, có thể chúng ta phải
cân nhắc tới việc sử dụng thêm một bộ tǎng tốc SSL phần cứng.
Đề tài luận văn đề cập đến thuộc lĩnh vực an toàn, xác thực và bảo mật thông
tin trên mạng. An toàn thông tin là một yêu cầu rất quan trọng trong việc truyền dữ
liệu trên mạng đặc bi
ệt là với các giao dịch thương mại điện tử, còn xác thực là một
trong những mục tiêu trọng tâm của các website học tập trực tuyến. Những hậu quả do
rò rỉ thông tin gây ra là rất lớn và khó có thể lường hết được. Ngày nay, dù ở Việt
Nam, các nhà quản trị mạng đã bắt đầu quan tâm tới lĩnh vực này, nhưng thực sự vẫn
chưa có nhiều nghiên cứu được tiến hành chi tiế
t và việc ứng dụng còn là rất hạn chế.
Với xu thế phát triển hiện nay, trên con đường hội nhập với nền công nghệ thông tin
của thế giới, chúng ta cần có những hiểu biết sâu sắc và toàn diện về an toàn và bảo
mật thông tin.
Từ những vấn đề nêu trên, luận văn đã thực hiện việc tiến hành những nghiên
cứu chi tiết về một công nghệ bảo mật và xác thự
c mạng hiện nay đang được sử dụng
rất phổ biến là Secure Sockets Layer (SSL), giao thức bảo mật tầng giao vận. Đồng
thời cũng đưa ra giới thiệu công nghệ tăng tốc SSL, được sử dụng nhằm tăng hiệu
Giới thiệu Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 2
năng của Website. Với khoá luận này, em muốn mang lại cái nhìn chi tiết hơn về công
nghệ bảo mật SSL, hy vọng rằng nó sẽ được áp dụng rộng rãi ở Việt Nam trong một

tương lai không xa.
Nội dung khoá luận được trình bày bao gồm các phần sau :
Chương 1 trình bày một số phương pháp bảo mật mạng cùng với các khái
niệm cơ bản về mã hoá, xác thực, ký số… Có bốn phương pháp bảo mật mạng.
Phương pháp th
ứ nhất là thêm vào một giao thức (SSL) giữa tầng TCP/IP và HTTP, đó
là phương pháp bảo mật mạng tách rời, nó yêu cầu những thay đổi rất nhỏ ở giao thức
bên trên và bên dưới nó. Phương pháp thứ hai là bảo mật đặc tả ứng dụng. Phương
pháp này thêm trực tiếp các dịch vụ bảo mật vào trong giao thức (Secure HTTP).
Phương pháp bảo mật thứ ba là bảo mật với các giao thức trung tâm, tức là các dịch vụ
bảo m
ật được thêm trực tiếp vào giao thức mạng trung tâm, tất cả các dịch vụ bảo mật
sẽ trở thành một phần tuỳ chọn của bản thân Internet Protocol, đây chính là kiến trúc
IPSEC. IPSEC cũng có rất nhiều tiện ích giống SSL, nó độc lập với giao thức ứng
dụng. Và phương pháp bảo mật cuối cùng là bảo mật song song. Ví dụ phổ biến về
phương pháp này là giao thức Kerberos. Giao thức Kerberos làm việc như mộ
t bộ
công cụ mà các giao thức khác có thể sử dụng cho các dịch vụ bảo mật, nhưng bản
thân nó không phải là giải pháp bảo mật hoàn toàn.
Chương 2 giới thiệu về hoạt động của SSL. SSL là giao thức đa mục đích
được phát triển bởi Netscape, có thể hỗ trợ cho rất nhiều ứng dụng. SSL hoạt động bên
trên TCP/IP và bên dưới các ứng dụng tầng cao hơn như HTTP, LDAP…SSL cho
phép một server có hỗ trợ
SSL tự xác thực với một client cũng hỗ trợ SSL, cho phép
client tự xác thực với server và cho phép cả hai bên thiết lập một kết nối được mã hoá.
Điều này là rất quan trọng với cả hai bên khi có những giao dịch mang tính riêng tư.
Ngoài ra dữ liệu còn được bảo vệ nhờ cơ chế tự động phát hiện các xáo trộn hay thay
đổi trong thông điệp. Ngày nay, SSL được sử dụng rộng rãi như nền tảng bảo m
ật cho
các Website bán hàng qua mạng thanh toán bằng thẻ tín dụng, các trang tài chính ngân

hàng, giao dịch chứng khoán, các dịch vụ của chính phủ như thuế, an ninh xã hội, quân
đội….Tuy nhiên việc triển khai SSL cũng còn nhiều hạn chế do sự bảo hộ và kiểm
soát chặt chẽ của chính phủ Mỹ.
Tiếp theo là mô tả cấu trúc và phương pháp làm việc của các giao thức Record
Protocol, ChangeCipherSpec Protocol, Alert Protocol, Handshake Protocol.
Giới thiệu Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 3
Record Protocol nhận dữ liệu từ tầng trên gửi xuống, 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 đ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ại cho
tầng trên.
ChangeCipherSpec Protocol bao gồm duy nhất một thông điệp, được sử dụng
để client báo cho server biết rằng các b
ản ghi sau này sẽ được bảo vệ với các bộ mã
hoá và các khoá đã thoả thuận.
Alert Protocol được sử dụng để báo hiệu một lỗi hay một cảnh báo xảy ra
trong quá trình truyền thông giữa hai bên. Cũng như các loại thông điệp khác, thông
điệp Alert cũng được mã hoá và nén.
Handshake Protocol là một phần quan trọng của SSL, nó cho phép
client/server thống nhất về phiên bản SSL sử dụng, xác thực mỗi bên bằng cách thi
hành một MAC (mã xác thực thông điệ
p), thoả thuận về thuật toán mã hoá và các khoá
lập mã cho việc bảo vệ dữ liệu gửi đi trong một SSL Record trước khi dữ liệu được gửi
đi.
Phần tiếp theo giới thiệu về cách server xác thực client và ngược lại client xác
thực server, các hệ mã hoá được sử dụng với SSL và mức độ bảo mật của SSL
Hạn chế lớn nhất của SSL với người dùng hiện nay là do tốc độ truy c
ập vào

các Website sử dụng SSL còn chậm, trung bình chậm hơn đến 50% tốc độ thông
thường khi không sử dụng SSL. Điều này sẽ gây tác dụng không tốt với người sử dụng
do phải chờ đợi quá lâu, họ dễ dàng bỏ sang truy cập các Website khác, hoặc nôn nóng
khởi tạo lại kết nối. Để khắc phục nhược điểm trên, ngoài một số phương pháp tối ưu
hoá như giảm số l
ượng hình ảnh trên trang web, sử dụng các phần mềm tăng tốc, hiện
nay hãng SonicWall đã cho ra một sản phẩm gọi là SSL Accelerator hay SSL offloader
dùng để tăng hiệu năng của trang Web. Bộ tăng tốc SSL có thể tăng tốc độ thực hiện
các giao dịch SSL lên đến 50 lần.
Chương 3 tiếp tục giới thiệu về một phiên bản khác của SSLv3.0 là TLS. TLS
về cơ bản là giống SSL nhưng có một số cải ti
ến đáng kể. Trong chương này, chúng ta
sẽ chỉ đi nghiên cứu về các phần mà TLS khác với SSL như các thông điệp cảnh báo,
cách xác thực thông điệp, quá trình sinh nguyên liệu khoá, xác nhận chứng chỉ, nội
dung thông điệp Finished và các bộ mã được sử dụng với TLS.
Giới thiệu Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 4
Phần cuối của luận văn là phần giới thiệu về cách cấu hình IIS và Apache sử
dụng bảo mật SSL với các website.
Với khoá luận này, chúng tôi muốn giới thiệu về một cơ chế bảo mật (SSL)
trong thương mại điện tử, tầm quan trọng cũng như những lợi ích của nó, hy vọng sẽ
mang lại một cái nhìn đúng đắn và sâu sắc hơn về vai trò của b
ảo mật và xác thực qua
mạng cũng như xu hướng phát triển của nó trong tương lai.
Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 5

Chương 1 MỘT SỐ VẤN ĐỀ VỀ BẢO MẬT
1.1 Vấn đề an toàn mạng
Giao thức SSL cung cấp bảo mật hiệu quả cho các phiên giao dịch Web,
nhưng nó không phải là phương pháp duy nhất. Kiến trúc mạng dựa trên các tầng giao
thức, mỗi tầng dựa trên các dịch vụ bên dưới chúng. Có nhiều tầng giao thức khác
nhau có thể hỗ trợ các dịch vụ bảo mật, và mỗi cái lại có những thuận lợi và khó khăn
khác nhau. Như chúng ta thấy, các nhà thiết kế ra SSL đã chọn phương pháp là tạo ra
một tầ
ng giao thức hoàn toàn mới cho việc bảo mật. Nó có thể bao gồm các dịch vụ
bảo mật trong giao thức ứng dụng hoặc thêm chúng vào nhân một giao thức mạng.
Một lựa chọn khác là các ứng dụng có thể dựa trên các giao thức song song cho một
vài dịch vụ bảo mật. Tất cả các tuỳ chọn này đã được đề cập đến trong việc bảo mật
các giao dịch Web, và các giao thức thực tế tồn t
ại trong mỗi tuỳ chọn.
1.1.1 Giao thức bảo mật ngăn cách (tách rời)
Các nhà thiết kế SSL quyết định tạo ra một giao thức ngăn cách cho bảo mật.
Trong thực tế, họ đã thêm vào một tầng trong kiến trúc giao thức của Internet.

Hình 1. Vị trí SSL trong mô hình giao thức bảo mật tách rời

Bên trái hình 1 minh hoạ các giao thức trong cho các truyền thông Web. Bên
dưới cùng là Internet Protocol (IP). Giao thức này chịu trách nhiệm hỗ trợ định tuyến
các thông điệp truyền trên mạng từ nguồn đến đích của chúng. Transmission Control
Protocol (TCP) dựa trên các dịch vụ của IP để bảo đảm rằng truyền thông là tin tưởng
được. Trên cùng là Hypertext Transfer Protocol. Bên phải của hình 1, SSL thêm sự
bảo mật bằng cách thực thi như một giao thức bảo mật riêng biệt, thêm nó vào giữa
HTTP và TCP. Làm việc như m
ột giao thức mới, SSL yêu cầu rất ít sự thay đổi trong
Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS



Đặng Thị Huê Trang 6
các giao thức bên trên và bên dưới. Giao diện ứng dụng HTTP với SSL gần giống như
với TCP khi không có bảo mật.
Bên cạnh việc yêu cầu những thay đổi rất nhỏ để có thể thi hành được, phương
pháp này còn có những tiện ích quan trọng khác: nó cho phép SSL hỗ trợ các ứng dụng
khác ngoài HTTP. Mục đích chính của việc phát triển SSL là bảo mật Web, nhưng
SSL cũng được sử dụng để thêm vào sự bảo mật cho các ứng dụ
ng Internet khác, bao
gồm Net News Transfer Protocol (NNTP) và File Transfer Protocol (FTP).
1.1.2 Bảo mật đặc tả ứng dụng
Một phương pháp khác là thêm trực tiếp vào các dịch vụ bảo mật vào trong
giao thức ứng dụng. Thực tế, chuẩn HTTP có bao gồm một vài thuộc tính bảo mật khá
sơ bộ, tuy nhiên các thuộc tính bảo mật đó không cung cấp một sự bảo vệ đầy đủ cho
các giao dịch thương mại điện tử thực sự
. Trong khi Netscape đang thiết kế SSL, một
nhóm các nhà thiết kế giao thức khác cũng đang làm việc trên một thể hiện của HTTP
được biết đến như là Secure HTTP. Hình 2 minh họa kiến trúc giao thức này. Chuẩn
Secure HTTP được xuất bản bởi IETF như là một giao thức thực nghiệm, và một vài
sản phẩm cũng đã hỗ trợ chúng. Tuy nhiên, nó chưa được ưa chuộng như SSL, và hiện
nay khó mà có thể tìm thấy Secure HTTP bất kỳ n
ơi nào trên Internet.

Hình 2 Bảo mật có thể được gắn trực tiếp vào giao thức ứng dụng
Một trong những bất lợi của việc thêm sự bảo mật vào trong một ứng dụng cụ
thể là các dịch vụ bảo mật sẽ chỉ có giá trị trong ứng dụng đó. Ví dụ, không giống như
SSL, nó không thể bảo mật cho NNTP, FTP, hay các giao thức ứng dụng khác với
Secure HTTP. Một trong những bất tiệ
n của phương pháp này còn là do nó liên kết các
dịch vụ bảo mật một cách chặt chẽ với ứng dụng. Mỗi khi giao thức ứng dụng thay

đổi, các thi hành bảo mật phải được quan tâm cẩn thận, và các chức năng bảo mật của
Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 7
giao thức phải được thay đổi thích hợp. Một giao thức tách rời như SSL cách ly các
dịch vụ bảo mật từ giao thức ứng dụng, cho phép mỗi dịch vụ tập chung vào giải quyết
các vấn đề của riêng nó một cách có hiệu quả nhất.
1.1.3 Bảo mật với các giao thức trung tâm
Phương pháp bảo mật tách rời của SSL có thể tiến thêm một bước xa hơn nếu
các dịch vụ bả
o mật được thêm trực tiếp vào một giao thức mạng trung tâm. Đây chính
là phương pháp của kiến trúc IP Security, tất cả các dịch vụ bảo mật sẽ trở thành một
phần tuỳ chọn của bản thân Internet Protocol. Hình 3 thể hiện kiến trúc của IPSEC.

Hình 3. IPSec
Kiến trúc của IPSEC cũng có rất nhiều tiện ích giống như SSL. Nó độc lập với
các giao thức ứng dụng, và bất kỳ giao thức nào cũng có thể sử dụng nó. Trong phần
lớn các trường hợp, ứng dụng không cần thay đổi tất cả để tận dụng được các tiện ích
của IPSEC. Tuy nhiên, đặc tính này tạo ra một thách thức, đó là IPSEC phải đủ linh
hoạt để hỗ tr
ợ tất cả các ứng dụng. Sự phức tạp này có thể là một nhân tố lớn trì hoãn
sự phát triển và triển khai IPSEC.
Một hạn chế khác của phương pháp IPSEC là nó cung cấp quá nhiều sự liên hệ
giữa các dịch vụ bảo mật và ứng dụng. IPSEC hướng tới việc thừa nhận rằng các yêu
cầu bảo mật là một chức năng của hệ thống, và tất cả các ứ
ng dụng bên trong hệ thống
cần các dịch vụ bảo mật tương tự nhau. Phương pháp SSL cung cấp sự liên hệ giữa các
ứng dụng và bảo mật, nhưng nó cũng cho phép tương tác giữa cả hai. Hoạt động bên
trong của một ứng dụng như HTTP không cần thay đổi khi sự bảo mật được thêm vào,

và đặc biệt là ứng dụng có thể tạo ra quyết định có sử dụng SSL hay không. Hoạt độ
ng
Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 8
đó tạo sự dễ dàng cho các ứng dụng có thể chọn các dịch vụ bảo mật phù hợp nhất với
mình.
Bất kể những trở ngại này, IPSEC thêm vào các công cụ bảo mật mới khá hiệu
quả trên Internet, vào không còn nghi ngờ gì khi thấy sự triển khai rộng rãi của nó.
Tuy nhiên, giao thức SSL cũng có nhiều tiện ích quan trọng và sự triển khai của nó
cũng được hy vọng sẽ tăng lên trong tương lai.

1.1.4 Giao thức bảo mật song song
Ví dụ phổ biến nhất về phương pháp này là giao thức Kerberos được phát triển
bởi Học viện công nghệ Massachusetts. Các nhà nghiên cứu đã phát triển Kerberos
cung cấp sự xác thực và điều khiển truy cập tài nguyên trong một môi trường phân tán.
Giao thức Kerberos làm việc như là một bộ công cụ mà các giao thức khác có thể sử
dụng cho các dịch vụ bảo mật. Ví dụ, một giao thức truy nhập từ xa như
Telnet có thể
sử dụng Kerberos để bảo mật định danh người dùng của nó.

Hình 4. Giao thức ứng dụng sử dụng Kerberos
Trong những ngày đầu phát triển trình duyệt Web, một vài thử nghiệm kết hợp
việc hỗ trợ Kerberos với HTTP, mặc dù công việc này chưa bao giờ hoàn thành. Thay
vào đó, hiện nay có một vài thử nghiệm kết hợp Kerberos với TLS. Trong các ứng
dụng như vậy, Kerberos cung cấp một kỹ thuật trao đổi khoá tin tưởng cho TLS. Mặc
dù chú ý rằng riêng Kerberos không thể là một giải pháp bảo mật hoàn toàn. Nó không
truy cập tới các thông tin thực được trao đổi bởi các tổ chức truyền thông. Không có sự
truy cập này, Kerberos không thể cung cấp các dịch vụ lập mã và giải mã.

Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 9
1.2 Vấn đề mã hoá
1.2.1 Khái niệm mã hoá
Mã hóa có lẽ là kĩ thuật được dùng lâu đời nhất trong an toàn truyền thông.
Hiện nay có nhiều phương pháp mã hóa khác nhau, mỗi phương pháp có ưu, nhược
điểm riêng. Tùy theo yêu cầu của môi trường ứng dụng mà người ta có thể lựa chọn
dùng phương pháp bảo mật nào. Có những môi trường cần phải an toàn tuyệt đối bất
kể thời gian và chi phí. Có những môi trường lại cần giải pháp dung hòa giữa bảo mật
và chi phí
Các thông đi
ệp cần chuyển đi và cần được bảo vệ an toàn gọi là bản rõ
(plaintext), và được ký hiệu là P. Nó có thể là một dòng vào các bít, các file, âm thanh
số hoá, Bản rõ được dùng để lưu trữ hoặc để truyền đạt thông tin. Trong mọi trường
hợp bản rõ là thông điệp cần mã hoá.
 Quá trình xử lý một thông điệp trước khi gửi được gọi là quá trình mã hoá
(encryption).
 Thông điệp đã được mã hoá được gọi là bản mã (ciphertext) ký hiệ
u là C.
 Quá trình xử lý ngược lại từ bản mã thành bản rõ được gọi là quá trình giải
mã (decryption).
 Hệ mật mã là tập hợp các thuật toán, các khóa nhằm che dấu thông tin tin
cũng như làm rõ nó. Hệ mật mã được định nghĩa là bộ năm (P,C,K,E,D)
trong đó:
− P là tập hữu hạn các bản rõ có thể
− C là tập hữu hạn các bản mã có thể
− K là tập hữu hạn khóa có thể
− E là tập các hàm lập mã


D là tập các hàm giải mã. Với mỗi k ∈ K có một hàm lập mã E
k

E(E
k
:P→ C) và một hàm giải mã D
k
∈ D (D
k
: C→ P) sao cho
D
k
(E
k
(x)) = x,

x ∈P
Hiện nay các hệ mật mã được phân làm hai loại chính là: hệ mật mã đối xứng
và hệ mật mã phi đối xứng (hay còn gọi là hệ mật mã khóa công khai)
Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 10
1.2.2 Hệ mã hoá đối xứng
Phương pháp mã hoá đối xứng còn được gọi là phương pháp mã hoá khoá bí
mật. Với phương pháp này thì người gửi và người nhận sẽ dùng chung một khoá để mã
hoá và giải mã dữ liệu. Trước khi mã hoá dữ liệu để truyền đi trên mạng thì hai bên
gửi và nhận phải có khoá và phải thống nhất thuật toán dùng để mã hoá và giải mã
Nhược điểm chính của phương pháp mã hoá này là làm thế nào để hai bên gửi

và nhận có
được khoá đúng vì khóa được truyền trên môi trường mạng thì không có
tính bảo mật cao, nhưng nó cũng có ưu điểm là tốc độ mã hoá và giải mã rất nhanh.
Phương pháp này được sử dụng nhiều để truyền dữ liệu trong phiên làm việc của SSL.
Lập mã khoá bí mật sử dụng thuật toán mã hoá Data Encrytion Standard (DES), triple-
strength (3DES), Rivest Cipher 2 (RC2), và RC4…
1.2.3 Hệ mã hoá phi đối xứng
Mã hoá phi đối xứng (hay còn gọi là mã hoá khoá công khai) đã giải quyết
được vấn đề của mã hoá khoá bí mật là sử
dụng hai khoá : khoá công khai (public key)
và khoá riêng (private key). Khoá công khai được gửi công khai trên mạng, trong khi
đó khoá riêng được giữ kín. Khoá công khai và khoá riêng có vai trò trái ngược nhau,
một khoá dùng để mã hoá và khoá kia dùng để giải mã.
Giả sử B muốn gửi cho A một thông điệp bí mật sử dụng phương pháp mã hoá
khoá công khai. Ban đầu A có cả khoá riêng và khoá công khai. A sẽ giữ khoá riêng ở
nơi an toàn và gửi khoá công khai nhận được của A. Sau đó A sẽ giải mã thông điệp
bằng khoá riêng của mình. Ngược lại nếu A muốn gửi thông
điệp cho B thì A phải mã
hoá thông điệp bằng khoá công khai của B.
Tới đây nảy sinh vấn đề : “giả mã khoá công khai”. Làm sao để A có thể tin
được rằng đây là khoá công khai của B. Vì một hacker (kẻ tấn công) có thể tự sinh ra
một cặp khoá công khai và khoá riêng, sau đó đưa cho A khoá công khai này và nói
đấy là khoá công khai của B. Như thế mọi thông tin A truyền đi đều bị hacker đọc
được nếu A dùng khoá công khai giả. Vấn đề này sẽ trở nên một cách đơn giản nế
u A
tin tưởng một nhân vật thứ 3, gọi là C. Khi đó A chỉ tin tưởng những khoá công khai
nào được C chứng nhận. Những khoá công khai đã được C chứng nhận được gọi là
chứng chỉ khoá công khai (public key certificate) hay chứng chỉ số (digital certificate).
Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS



Đặng Thị Huê Trang 11
Phương pháp này sử dụng thuật toán mã hoá Rivest Shamir Adleman (RSA)
và DiffieHellman(DH). Vì phương pháp mã hoá này rất chậm nên chỉ được sử dụng để
mã hoá những mẩu dữ liệu nhỏ.
1.2.4 Chứng chỉ khoá công khai
Chứng chỉ khoá công khai (public key certificate) dùng để làm cho hai bên
client và server xác định chính xác đối tượng của mỗi bên cần giao tiếp vì nhờ có
chứng chỉ khoá công khai mà các đối tượng tham gia trong quá trình trao đổi dữ liệu
tin cậy khoá công khai mà mình đang sử dụng. Như ví dụ đã nêu trên, giả sử C t
ạo ra
khoá công khai và khoá riêng. C yêu cầu được giao tiếp với A và gửi khoá công khai
cho B. Như vậy B sẽ giao tiếp với C nhưng lại tưởng là đang giao tiếp với A.
Một chứng chỉ khoá công khai được tạo ra bởi một tổ chức tin cậy, tổ chức
này được gọi là Ceriticate Authority (CA). Một khi khoá công khai đã được CA chứng
nhận thì có thể dùng khoá đó để trao đổi dữ liệu trên mạng với mức độ bảo mậ
t cao.
Cấu trúc của một chứng chỉ khoá công khai :
• Issuer : tên của CA tạo ra chứng chỉ
• Period of validity : ngày hết hạn của chứng chỉ
• Subject: bao gồm những thông tin về thực thể được chứng nhận
• Public key : thông tin chính mà chứng chỉ cung cấp là khoá công khai. Tất cả
các trường khác được cung cấp để kiểm tra tính hợp lệ của khoá này.
• Signature : được tạo bởi khoá riêng của CA và đảm bảo giá trị của chứng ch
ỉ.
Nhiều chứng chỉ có thể liên kết với nhau, có nghĩa là một CA có thể tạo ra một
chứng chỉ cho một CA khác. Chứng chỉ đầu tiên luôn là của người gửi, sau đó là đến
chứng chỉ của thực thể tạo ra chứng chỉ của người gửi. Cuối cùng của chứng chỉ trong
mối liên hệ là root CA. Một root CA là một CA công khai có độ tin cậy cao. Thông tin
về những root CA được lưu trong trình duy

ệt Web. Thông tin này bao gồm khoá công
khai của CA. Những CA được biết đến nhiều hiện nay như là VeriSign Entrust, và
GTECyberTrust.
Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 12
1.3 Vấn đề ký số
Chữ ký điện tử (digital signature) là đoạn dữ liệu ngắn, được đính kèm với văn
bản gốc để chứng thực tác giả của văn bản và giúp người nhận kiểm tra tính toàn vẹn
của nội dung văn bản gốc.
Chữ ký điện tử được tạo ra bằng cách áp dụng thuật toán băm một chiều trên
văn bản gốc để tạo ra v
ăn bản đại diện (message digest) hay còn gọi là fingerprint, sau
đó mã hóa bằng khoá riêng, tạo ra chữ ký số đính kèm với văn bản gốc để gửi đi. Khi
nhận, văn bản được tách làm 2 phần, phần văn bản gốc được tính lại fingerprint để so
sánh với fingerprint cũ cũng được phục hồi từ việc giải mã chữ ký số.
Các bước mã hoá :
Dùng giải thuật băm (hashing) thông điệp cần truyề
n đi. Kết quả ta được một văn bản
đại diện. Văn bản đại diện thường có chiều dài nhỏ hơn nhiều so với thông điệp ban
đầu. Dùng giải thuật MD5 ta được văn bản đại diện có chiều dài 128 bit, dùng giải
thuật SHA ta có chiều dài 160 bit.
Sử dụng khoá riêng của người gửi mã hoá văn bản đại diện thu được ở bước 1. Thông
thường ở bước này ta dùng giả
i thuật RSA. Kết quả thu được gọi là chữ ký điện tử
(digital signature) của thông điệp ban đầu.
Gộp chữ ký điện tử vào thông điệp ban đầu. Công việc này gọi là “ký nhận” (signing)
vào thông điệp. Khi đã ký nhận vào thông điệp, ta đảm bảo thông tin gửi đi sẽ không
bị thay đổi - đảm bảo tính toàn vẹn dữ liệu (integrity) – vì mọi sự thay đổi trên thông

điệp ta gửi
đi sẽ bị phát hiện trong giai đoạn kiểm tra. Ngoài ra việc ký nhận này đảm
bảo người nhận tin tưởng được rằng thông điệp này xuất phát từ người gửi chứ không
phải ai khác vì chỉ người gửi mới có được khoá riêng.
Các bước kiểm tra :
Dùng khoá công khai của người gửi (khoá này được thông báo đến mọi người) giải mã
chữ ký điện tử của thông điệp.
Dùng giải thuậ
t (MD5 hoặc SHA) băm thông điệp đính kèm.
So sánh kết quả thu được ở bước 1 và bước 2. Nếu trùng nhau, ta kết luận
thông điệp này không bị thay đổi trong quá trình truyền và thông điệp này là của người
gửi.
Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 13
Ghi chú : Chữ ký điện tử được sử dụng để tạo chứng chỉ số. A gửi đến CA
của một tổ chức thứ ba đáng tin cậy (trusted third – party) một yêu cầu ký chứng chỉ
(certificate signing request), trong đó có khoá công khai. CA sẽ ký nhận vào đó và sinh
ra chứng chỉ số gửi về cho A. A sẽ thông báo chứng chỉ của mình trên mạng. Giả sử B
muốn gửi cho A một thông báo thì công việc đầu tiên B sẽ lấ
y chứng chỉ của A và
kiểm tra xem chứng chỉ này có hợp lệ không. Quá trình kiểm tra này diễn ra như mô tả
ở trên. Nếu hợp lệ B sẽ lấy khoá công khai trong chứng chỉ số để mã hoá dữ liệu và
gửi cho A.
1.4 Vấn đề xác thực số
Xác thực là một thủ tục nhằm kiểm tra các thông báo nhận được xem chúng có
đến từ một người gửi hợp lệ và có bị sửa đổi hay không. Xác thực cũng có thể kiểm tra
trình tự và tính đúng lúc. Mã xác thực thông điệp (Message Authentication Code)
được xem như là một checksum (kiểm tra tổng thể, cuối cùng) để kiểm tra dữ liệu có

bị thay đổi trong quá trình truyền hay không.
Để tính toán (hay kiểm tra) mã xác thực thông điệp, hệ thống sử d
ụng một
hàm băm hai lớp. Nó bắt đầu với một giá trị đặc biệt được gọi là MAC write secret,
theo sau là phần đệm (padding-phần dữ liệu bổ sung), một dãy số tuần tự 64 bit, một
giá trị 16 bit với chiều dài nội dung, và cuối cùng là nội dung của nó. Padding là một
byte đơn giá trị 001100110, được lặp lại 48 lần cho MD5 và 40 lần cho SHA. Trong
lớp thứ hai, hệ thống sử dụng MAC write secret, padding và đầu ra c
ủa hàm băm trước
đó. Lúc này, padding là giá trị nhị phân 01011100, lặp lại 48 lần cho MD5 và 40 lần
cho SHA. Kết quả là giá trị MAC xuất hiện trong thông điệp SSL. Hình 5 minh hoạ
tiến trình cho một mã xác thực thông điệp MD5.

Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 14

Hình 5. SSL tính toán một mã thông điệp
Hai giá trị đặc biệt sử dụng trong tính toán này là MAC write secret và số tuần
tự. Số tuần tự là một giá trị đếm số các thông điệp mà các bên trao đổi. Giá trị của nó
được thiết lập là 0 với mỗi thông điệp ChangeCipherSpec, và nó tăng thêm một cho
mỗi thông điệp SSL Record Layer theo sau trong một phiên.
Mã xác thực thông điệp có các đặc tính :
 Rất khó có khả năng tìm lại thông điệp ban
đầu khi biết được văn bản đại
diện của nó.
 Một sự thay đổi nhỏ trên thông điệp ban đầu sẽ dẫn đến sự thay đổi trên
MAC.
 Không có khả năng tìm thấy 2 thông điệp có cùng một MAC.

Nhưng gửi một thông điệp kèm theo MAC của nó vẫn chưa thể đảm bảo rằng
việc truyền dữ liệu đã có tình toàn vẹn dữ liệu vì ngườ
i thứ ba có thể đón nhận thông
điệp truyền đi, thay đổi dữ liệu của nó đồng thời tính lại MAC kèm theo. Như thế
người nhận cũng không thể biết được dữ liệu đã bị thay đổi trong quá trình truyền trên
mạng. Để giải quyết vấn đề này, có thể sử dụng một trong hai cách sau :
 MAC của thông điệp ban đầu cộng thêm khoá phiên (là khoá bí mật – secret
key - được dùng để mã hoá dữ
liệu trong các phiên làm việc) và băm lại một
Chương 1 - Một số vấn đề về bảo mật Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 15
lần nữa. Kết quả tạo thành gọi là HMAC. Do khoá phiên chỉ có hai bên trao
đổi dữ liệu biết được nên đảm bảo được rằng mọi sự thay đổi trên thông
điệp ban đầu sẽ bị phát hiện. Thông thường khoá phiên được thiết lập bằng
giải thuật Dellfi-Hellman hoặc RSA.
 MAC của thông điệp ban đầu được mã hoá bằng khoá riêng. Vì khoá riêng
chỉ có người gửi có nên không thể giả mạo.
Hai giải thuật thông dụ
ng để tạo MAC là MD5 và SHA (Secure Hash
Algorithm).
Chương 2 - Khe cắm an toàn Nghiên cứu sử dụng công nghệ SSL/TLS


Đặng Thị Huê Trang 16

Chương 2 KHE CẮM AN TOÀN (SSL)
2.1 Tổng quan về SSL
Trong các giao dịch điện tử trên mạng và trong các giao dịch thanh toán trực

tuyến, thông tin/dữ liệu trên môi trường mạng Internet phi an toàn thường được bảo
đảm bởi cơ chế bảo mật thực hiện trên tầng vận tải có tên SSL (Secure Socket Layer)
và TLS (Transport Layer Security-được bổ sung từ SSL phiên bản 3.0) - một giải pháp
kỹ thuật hiện nay được sử dụng khá phổ biến trong các hệ điều hành mạng máy tính
trên Internet. Trong chương này, chúng ta sẽ tìm hiểu SSL là gì, làm việc th
ế nào, các
thuộc tính và hoạt động của chúng
2.1.1 Lịch sử SSL
SSL 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 443) nhằm mã hoá toàn bộ
thông tin đi/đến, mà ngày nay được đượ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. Giao thức
SSL được hình thành và phát triển đầu tiên năm 1994 bởi nhóm nghiên cứu Netscape
dẫn dắt bởi Elgammal và ngày nay đã trở thành chuẩn bảo mật thực hành trên mạng
Internet. Phiên bản SSL hiện nay là 3.0 và vẫn đang được hoàn thiện, bổ sung. Tương
tự như SSL, một giao thức khác có tên là PCT – Private Communication Technology
được đề xướng bởi Microsoft hiện nay cũng được sử dụng rộng rãi trong các mạng
máy tính chạy trên hệ điều hành WindowNT. Ngoài ra, một chuẩn của IETF (Internet
Engineering Task Force) có tên là TLS (Transport Layer Security) dựa trên SSL cũng
được hình thành và xuất bản dưới khuôn khổ nghiên cứu của IETF Internet Draff được
tích hợp và hỗ trợ trong sản phẩm của Netscape.

2.1.2 Cơ bản về SSL
Điểm cơ bản của SSL là đượ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ế và
hệ thống thuật toán mã hoá s
ử dụng trong SSL được phổ biến công khai, trừ khoá

×