Đượ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ế.
86 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 3690 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận Nghiên cứu sử dụng công nghệ bảo mật ssl/tls, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠ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