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..
Trang 2LỜI CÁM ƠN
Chúng em rất cám ơn thầy Võ Ngọc Hà Sơn đã giúp đỡ chúng em hoàn thành đề tàithực tập lần này và cám ơn công ty TNHH Minh Ý đã trợ giúp chúng em trong việc đithực tập, công ty đã tạo điều kiện tốt nhất để chúng em được khảo sát thực tế môitrường làm việc bên ngoài là như thế nào
Trong quá trình thực tập chúng em còn nhiều thiếu sót và đề tài thực sự không hoànchỉnh như mong muốn của thầy, mong thầy bỏ qua cho chúng em, chúng em rất cám
ơn thầy và công ty
Trang 3NHẬN XÉT CỦA ĐƠN VỊ THỰC TẬP
…… , ngày……tháng……năm…
Người hướng dẫn Xác nhận của đơn vị thực tập NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 4
Phần đánh giá của giáo viên hướng dẫn: Thái độ làm việc:
Kỹ năng làm việc:
Mức độ hòan thành đề tài
Hình thức trình bày:
Điểm số: Bằng số……… Bằng chữ:
TP Hồ Chí Minh, ngày……tháng……năm……
Giáo viên hướng dẫn MỤC LỤC CHƯƠNG I: GIỚI THIỆU ĐƠN VỊ THỰC TẬP VÀ ĐỀ TÀI NGHIÊN CỨU 10
1 GIỚI THIỆU VỀ CÔNG TY TNHH MINH Ý 10
2 MÔ HÌNH HỆ THỐNG MẠNG TẠI ĐƠN VỊ 11
Trang 53 CÁC ỨNG DỤNG MẠNG TẠI ĐƠN VỊ 11
4 MỤC TIÊU ĐỀ TÀI 12
5 GIỚI THIỆU ĐỀ TÀI 12
CHƯƠNG II: TÌM HIỂU CHUNG VỀ SECURE SOCKETS LAYER (SSL) VÀ TRANSPORT LAYER SECURITY (TLS) : 13
1 TỔNG QUAN SSL: 13
1.1 SSL là gì ? 13
1.2 Tại sao sử dụng SSL 14
2 CẤU TRÚC CỦA SSL 15
3 GIAO THỨC SSL RECORD 16
4 GIAO THỨC CHANGE CIPHER SPEC 18
5 GIAO THỨC SSL ALERT 18
6 CÁC LOẠI MÃ HÓA 20
6.1 Mã hóa đối xứng 20
6.2 Mã hóa bất đối xứng 21
6.3 Hàm băm 21
7 SSL HANDSHAKE 22
7.1 Giai đoạn 1 Thiết lập khả năng bảo mật 23
7.2 Giai đoạn 2 Xác thực Server và trao đổi khóa 25
7.3 Giai đoạn 3 Xác thực Client và trao đổi khóa 26
7.4 Giai đoạn 4 Kết thúc 27
8 GIỚI THIỆU CHỨNG CHỈ KHÓA CÔNG KHAI 28
9 TRANSPORT LAYER SECURITY (TLS) 29
9.1 Version Number 29
9.2 Message Authentication Code 29
9.3 Hàm tính số ngẫu nhiên 30
9.4 Mã cảnh báo 32
9.5 Cipher suite 33
Trang 69.6 Các dạng client certificate 33
9.7 Certificate Verify và Finished Message 33
9.8 Tính toán mã hóa 33
9.9 Phần đệm 34
10 ỨNG DỤNG PHỔ BIẾN CỦA SSL 34
CHƯƠNG III: GIỚI THIỆU PHƯƠNG PHÁP TẤN CÔNG SSL 36
CHƯƠNG IV:TRIỂN KHAI SSL CHO WEBSERVER 38
*TÀI LIỆU THAM KHẢO DANH MỤC HÌNH ẢNH Hình 1: Cơ cấu tổ chức bộ máy điều hành 10
Hình 2: Mô hình hệ thống mạng tại đơn vị 11
Hình 3: Hoạt động của SSL Record Protocol 17
Hình 4: Cấu trúc SSL ChangeSpec 18
Hình 5: Cấu trúc SSL Alert 19
Trang 7Hình 6: Các thuật toán mã hóa đối xứng 20
Hình 7: Sơ đồ mã hóa bất đối xứng để bảo mật thông tin 21
Hình 8: Cách hoạt động của hàm băm 21
Hình 9: Cơ chế giao thức SSL Handshake 23
Hình 10: Message Authentication Code 30
Hình 11: Hàm tính số ngẫu nhiên 31
Hình 12: Các giao thức ứng dụng được kết hợp với SSL 34
Hình 13 36
Hình 14 36
Hình 15 36
Hình 16 37
Hình 17 37
Hình 18 38
Hình 19 38
Hình 20 39
Hình 21 39
Hình 22 40
Hình 23 40
Hình 24 41
Hình 25 41
Hình 26 42
Hình 27 42
Hình 28 43
Hình 29 43
Hình 30 44
Hình 31 44
Trang 8Hình 32 45
Hình 33 45
Hình 34 46
Hình 35 46
Hình 36 47
Hình 37 47
Hình 38 48
Hình 39 48
Hình 40 49
Hình 41 49
Hình 42 50
Hình 43 50
Hình 44 51
LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP Thời gian Nội dung thực hiện và kết quả đạt được
Tuần 1
Từ ngày
17/6
-Tìm hiểu công việc chính của phòng IT trong công ty:
+ Quan sát được 1 số máy bị lỗi truy cập dữ liệu, IT kiểm tra và phát hiện máy bị lỗi chương trình phải xóa đi cài lại
+ Lỗi không thể in văn bản it sữa chữa cho nhân viên ngay
Trang 9- Quan sát tìm hiểu hệ thống của công ty.
- Tìm hiểu mô hình hoạt động
-Tìm hiểu các ứng dụng và hệ thống bảo mật của công ty đangdùng
1 GIỚI THIỆU VỀ CÔNG TY TNHH MINH Ý :
-Công ty TNHH Minh Ý được thành lập vào ngày 09/06/2001, Giám Đốc là ông:Phù Chung
Địa chỉ: 1084/38 Lê Đức Thọ, P.13, Q.Gò Vấp, TP.HCM.
Sứ mệnh
Trang 10-Công ty TNHH Minh Ý mang đến cho mọi người, mọi nhà sự thỏa mãn về giá trịcủa cuộc sống.
Tầm nhìn
-Trở thành công ty cung cấp các thiết bị điện, điện tử, điện máy, tin học và viễnthông tầm cỡ quốc gia
Giá trị cốt lõi
-Mọi hoạt động đều hướng tới khách hàng
-Năng động, sáng tạo, chuyên nghiệp, tận tâm, minh bạch, hiện đại
-Người lao động được quyền phấn đấu, cống hiến làm việc hết mình, được quyềnhưởng thụ đúng với chất lượng, kết quả, hiệu quả của cá nhân đóng góp, đượcquyền tôn vinh cá nhân xuất sắc, lao động giỏi
Triết lý kinh doanh
-An toàn, hiệu quả, bền vững và chuẩn mực
-Đoàn kết, hợp tác, chia sẻ, không li kị lẫn nhau và trách nhiệm xã hội
-Khách hàng là thượng đế Sự thỏa mãn và vui lòng của khách hàng là thành côngcủa Công ty TNHH Minh Ý
Slogan: Nâng cao giá trị cuộc sống đúng với chuẩn mực.
-Đến với Công ty TNHH Minh Ý, Quý khách sẽ hài lòng về chất lượng sản phẩm,
dịch vụ và phong cách phục vụ chuyên nghiệp, nhiệt tình với tiêu chí: Nâng cao
giá trị cuộc sống đúng với chuẩn mực.
Lĩnh vực họat động
-Dịch vụ viễn thông, tin học
-Các thiết bị viễn thông, tin học
Mô hình tổ chức:
Hình 1: Cơ cấu tổ chức bộ máy điều hành
2 MÔ HÌNH HỆ THỐNG MẠNG TẠI ĐƠN VỊ :
đơn vị
Trang 113 CÁC ỨNG DỤNG MẠNG TẠI ĐƠN VỊ :
-Các ứng dụng phổ biến:
+Unikey 4.0 (bộ gõ tiếng việt Unikey 4.0)
+Cisco Clean Access Agent
+Shortcut for MDT
+7-Zip ( chương trình nén và giải nén)
+SCCM Client
+IpXfer Trend Micro OfficeScan Client
+Adobe Reader 10 ( chương trình đọc file PDF)
-Các ứng dụng Microsoft:
+Internet Explorer 8 ( trình duyệt web internet explorer version 8.0)
+Microsoft Office Communicator 2007 R2 (OCS) ( chương trình chat nội bộMicrosoft Office Communicator) và Microsoft Office 2007 Standard
+MSXML 6.0 Parser and SDK
+NET Framework 2.0 và NET Framework 4
4 MỤC TIÊU ĐỀ TÀI :
-Triển khai SSL cho Website cho công ty để cung cấp khả năng bảo mật thông tin vàxác thực thông tin
5 GIỚI THIỆU ĐỀ TÀI :
Trang 12-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 điqua 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 tintrê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ạngInternet 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ườigử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 Website 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ácbrowser 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ấthiệ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
CHƯƠNG II :TÌM HIỂU CHUNG VỀ SECURE SOCKETS LAYER (SSL)
VÀ TRANSPORT LAYER SECURITY (TLS)
1 TỔNG QUAN SSL:
1.1 SSL là gì ?
Trang 13-Được phát triển bởi Netscape, ngày nay giao thức Secure Sockets 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 tingiữ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ênnhư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ớiphiê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ợ chorấ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 giaothứ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 khiSSL 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 nhautrên Internet, thì hiện nay SSL được sử dụng chính cho các giao dịch trên Web
-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ẩnhoá để thực hiện các nhiệm vụ bảo mật sau:
+ 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ằngcertificate 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ấtquan 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 xemcertificate 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àyrấ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ácthô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 địnhdanh 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 đượcgử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áthiện các xáo trộn, thay đổi trong dữ liệu (đó là các thuật toán băm – hash algorithm)
1.2 Tại sao sử dụng SSL?
Trang 14-Ngày nay việc bảo mật thông tin là yếu tố quan trọng để quyế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 triển nhanh chóng của công nghệ đã mang lại nhiều tiện ích cho người dùng nhưng đồng thờ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 hiệ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 tin 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ể luôn luôn chắc rằng bạn đang trao đổi thông tin với đúng đốitượ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 đọctrộ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
-Chú ý rằng, cả xác thực và mã hóa đều là tùy chọn, và phụ thuộc vào cipher suites(các bộ mã hóa) được đàm phán giữa 2 đối tượng
-Một ví dụ rõ ràng nhất mà trong đó bạn nên sử dụng SSL là trao đổi thông tin giaodịch qua mạng (e-commerce).Trong trao đổi e-commerce, thật dại dột khi giả định rằngbạn có thể chắc chắn về định danh của server mà bạn đang trao đổi thông tin Ai đó cóthể dễ dàng tạo ra 1 Website giả hứa hẹn các dịch vụ tuyệt vời, chỉ để cho bạn nhậpvào đó số tài khoản SSL cho phép bạn, client, xác thực về định danh của server Nócũng cho phép server xác thực định danh của client,mặc dù trong các giao tác Internet,việc này hiếm khi được làm
-Một khi client và server đã hài lòng với định danh của mỗi bên đối tác SSL cungcấp tính bảo mật và tính toàn vẹn thông qua các thuật toán mã hóa mà nó sử dụng.Điều này cho phép các thông tin nhạy cảm, như số tài khoản,được truyền đi 1 cách antoàn trên Internet
-Trong khi SSL cung cấp tính xác thực, tính bảo mật và toàn vẹn dự liệu, nó khôngcung cấp non-repudiation (tính không từ chối) Non-repudiation có nghĩa là khi 1 đốitượng gửi đi 1 message, thì sau đó không thể phủ nhận việc mình đã gửi message đó.Khi 1 chữ kí số tương đương được liên kết với 1 message, việc trao đổi này sau đó cóthể được chứng minh SSL 1 mình nó không cung cấp non-repudiation
2.KIẾN TRÚC CỦA SSL:
Trang 15-SSL được thiết kế để dùng TCP cung cấp 1 dịch vụ bảo mật đầu cuối-đến-đầu cuốiđáng tin cậy SSL không phải là một giao thức đơn mà là 2 lớp giao thức,như minh họadưới đây.
-SSL Record Protocol cung cấp các dịch vụ bảo mật cơ bản cho nhiều giao thức khácnhau ở các lớp trên Trong thực tế, Hyper Text Transfer Protocol (HTTP), cung cấpdịch vụ trao đổi cho tương tác Web client/server, có thể hoạt động trên đỉnh của SSL
Ba giao thức lớp trên được định nghĩa như là các phần của SSL: Handshake Protocol,Change Cypher Spec Protocol và Alert Protocol.Các giao thức mang tính đặc trưng-SSL này được dùng trong phần quản lý trao đổi SSL và được xét đến trong phần sau
-Hai khái niệm SSL quan trọng là SSL session (phiên SSL) và SSL connection (kếtnối SSL), được định nghĩa như sau:
Connection (kết nối): 1 kết nối là 1 transport _ trong định nghĩa mô hình
phân lớp OSI_ cung cấp 1 loại dịch vụ thích hợp Với SSL, những kết nốinhư vậy là những mối quan hệ ngang hàng.Các kết nối thì trao đổi nhanhchóng Mỗi kết nối gắn với 1 phiên
Session (phiên): 1 phiên SSL là 1 liên kết giữa 1 client và 1 server Các phiên
được tạo ra bằng Handshake Protocol (giao thức bắt tay) Các phiên địnhnghĩa 1 tập các tham số bảo mật bằng mật mã,có thể được chia sẻ giữa nhiềukết nối Các phiên được dùng để tránh những đàm phán tốn kém_về các tham
số bảo mật mới_cho mỗi kết nối
-Giữa bất kì 1 cặp của nhóm nào (các ứng dụng như HTTP trên client hay server),
có thể có nhiều kết nối bảo mật về lý thuyết, có thể có nhiều phiên đồng thời giữa cácnhóm, nhưng đặc trưng này không được dùng trong thực tiễn
-Thực sự có nhiều trạng thái gắn với mỗi phiên Một khi 1 phiên được thành lập, cótrạng thái hoạt động hiện thời cho cả đọc và ghi, (như nhận và gửi ) Thêm vào đó,trong suốt quá trình Handshake Protocol, trạng thái treo đọc và ghi được tạo ra Dựatrên kết luận thành công của Handshake Protocol, các trạng thái treo trở thành trạngthái hiện thời
SSL Handshake
Protocol
SSL ChangeCypherSpec Protocol
SSL Alert
SSL Record Protocol
TCPIP
Trang 16-Một trạng thái phiên được định nghĩa bởi các thông số sau (các định nghĩa lấy từđặc trưng SSL):
+Session Identifier: 1 chuỗi byte bất kì được chọn bởi server để nhận dạng trạng
thái phiên là hoạt động (active) hay phục hồi lại (resumable)
+Peer certificate: một chứng chỉ X509.v3 Thành phần này của trạng thái có thể
+Master secret: 48 byte bí mật được chia sẻ giữa client và server.
+Is resumable: một cờ chỉ ra rằng phiên này có thể được dùng để khởi tạo các
kết nối khác hay không
-Một trạng thái kết nối được định nghĩa bởi các tham số sau:
+Server and client random: các chuỗi byte được chọn bởi server và client cho
mỗi kết nối
+Server write MAC secret: khóa bí mật được sử dụng bởi phép tính MAC trên
dữ liệu, được gửi bởi server
+Client write MAC secret: khóa bí mật được sử dụng bởi phép tính MAC trên
dữ liệu, được gửi bởi client
+Server write key: khóa mã hóa quy ước cho dữ liệu được mã hóa bởi server và
giải mã bởi client
+Client write key: khóa mã hóa quy ước cho dữ liệu được mã hóa bởi client và
giải mã bởi server
+Initialization vectors: khi 1 khối mã trong mode CBC được dùng, một vector
khởi tạo (IV) được duy trì cho mỗi key Phần này được khởi tạo trước tiên bởi SSLHandshake Protocol Sau đó, khối mã hóa cuối cùng từ mỗi record được để dành lại đểdùng làm IV cho record sau
+Sequence number: mỗi bên duy trì các sequence number riêng cho mỗi
message được truyền hoặc được nhận trong mỗi kết nối Khi 1 bên gửi hoặc nhận mộtchange cypher spec message, sequence number thích hợp được thiết lập về 0.Sequence number không thể vượt quá 264-1
3.GIAO THỨC SSL RECORD :
-SSL Record Protocol cung cấp 2 dịch vụ cho kết nối SSL:
+Confidentiality (tính cẩn mật): Handshake Protocol định nghĩa 1 khóa bí mật
Trang 17được chia sẻ, khóa này được sử dụng cho mã hóa quy ước các dữ liệu SSL.
+Message integrity (tính toàn vẹn thông điệp): Handshake Protocol cũng địnhnghĩa 1 khóa bí mật được chia sẻ, khóa này được sử dụng để hình thành MAC (mãxác thực message)
Hình 3: Hoạt động của SSL Record Protocol
-Bước đầu tiên là 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à 214 byte (16384 byte) hoặc ít hơn
-Tiếp theo, nén được áp dụng 1 cách tùy chọn Nén phải là không mất mát thông
tin 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,ngườ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ớinhững block ngắn, có thể do định dạng quy ước, thuật toán nén thực sự làm chooutput dài hơn input) Trong SSLv3 (cũng như phiên bản hiện tại của TLS), không
có thuật toán nén nào được chỉ rõ, vì vậy thuật toán nén mặc định là null
-Bước xử lí kế tiếp là tính toán MAC (mã xác thực message) trên dữ liệu đã được
nén Để thực hiện cần dùng đến1 khóa bí mật được chia sẻ Phép tính được địnhnghĩa như sau:
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ẻ.
Trang 18 hash: thuật toán băm mã hóa, MD5 hoặc SHA-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 SHA-1
pad_2: byte 0x5c (0101 1100) được lặp lại 48 lần cho MD5 và 40 lần cho
SHA-1
seq_num: sequence number cho message này
SSLCompressed.type: giao 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
Compressed Length (16 bit): chiều dài theo byte của phân mảnh plaintext
(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à 214+2048
4 GIAO THỨC SSL CHANGE CIPHER SPEC:
-Giao thức SSL Change Cipher Spec là giao thức đơn giản nhất trong ba giaothức đặc trưng của SSL mà sử dụng giao thức SSL Record Giao thức này baogồm một message đơn 1 byte giá trị là 1 Mục đích chính của message này là sinh
ra trạng thái tiếp theo để gán vào trạng thái hiện tại, và trạng thái hiện tại cập nhậtlại bộ mã hóa để sử dụng trên kết nối này
Hình 4: cấu trúc SSL ChangeSpec
Trang 195 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ênkia Như với những ứng dụng khác sử dụng SSL, alert messages được nén và mã hóa,được chỉ định bởi trạng thái hiện tại
-Mỗi message trong giao thức này gồm 2 bytes Byte đầu tiên giữ giá trị cảnh báo(1)hoặc nguy hiểm(2) để thông báo độ nghiêm ngặt của message Nếu mức độ là nguyhiểm, SSL 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ể tiếp tụcnhưng sẽ không 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ứamột mã chỉ ra cảnh báo đặc trưng.Đầu tiên, chúng ta liệt kê những cảnh báo đó màluôn ở mức nguy hiểm:
+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 input 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
+illegal_parameter: một trường trong một handshake message thì vượt khỏi dãy hoặc
trái với những trường khác
-Phần còn lại của cảnh báo thì như sau:
+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ướckhi 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 thí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ỗ trợ.
+ertificate_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 hiện trong quá trình xử ký
certificate làm cho nó không thể chấp nhận
Hình 5: cấu trúc SSL alert
Trang 206 CÁC LOẠI MÃ HÓA:
-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ọndù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í
6.1 Mã hóa đố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êngử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…
-Tuy nhiên bạn có thể sử dụng một giải pháp thông minh hơn đó là Public KeyInfrastructure (PKI) giải pháp được sử dụng kết hợp với mật mã đối xứng trong quátrình truyền thông tin keys Việc truyền thông tin key bằng việc sử dụng một mã hoá
để truyền với sử dụng một phiên truyền thông tin duy nhất Hiểu, sử dụng và triển khai
sử dụng PKI không đơn giản và có nhiều giải pháp của nhiều nhà sản xuất khác nhau
Hình 6: Các thuật toán mã hóa đối xứng
Trang 216.2 Mã hóa bất đối xứng (Public key) :
-Mã hoá bất đố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ã
Hình 7: Sơ đồ mã hóa bất đối xứng để bảo mật thông tin
6.3 Hàm băm (hash function):
-Hàm băm là một phương thức mật mã nhưng nó không phải là một thuật toán mãhoá Đúng như vậy, băm chỉ sử dụng một chứng chỉ số duy nhất được biết đến với tênnhư "hash value – giá trị hash", "hash – băm", Message Authentication Code (MAC),fingerprint – vân tay, hay một đoạn message Dữ liệu đầu vào của bạn có thể là mộtfile, một ổ đĩa một quá trình truyền thông tin trên mạng, hay một bức thư điện tử.Thông số hash value được sử dụng để phát hiện khi có sự thay đổi của tài nguyên Nói
Trang 22cách khác, hàm băm sử dụng nó để phát hiện ra dữ liệu có toàn vẹn trong quá trình lưutrữ hay trong khi truyền hay không.
Hình 8: Cách hoạt động của hàm băm
• Thuộc tính kháng đụng độ mạnh (strong collision resistance): không thể tìm
được cặp M và M’ sao cho H(M) = H(M’)
Thuật toán hashing thường được sử dụng:
• Secure Hash Algorithm (SHA-1) với - 160-bit
• Message Digest 5 (MD5) với —128-bit
• Message Digest 4 (MD4) với —128-bit
• Message Digest 2 (MD2) với —128-bit
7.GIAO THỨC SSL HANSHAKE:
-SSL Handshake Protocol là một phần quan trọng của SSL, nó cung cấp badịch vụ cho các kết nối SSL giữa client và server Handshake Protocol cho phépclient/server thống nhất về phiên bản giao thức, xác thực mỗi bên bằng cách thi hànhmột MAC và thoả thuận về một thuật toán mã hoá và các khoá lập mã cho việc bảo vệcác dữ liệu gửi đi trong một SSL record trước khi giao thức ứng dụng truyền đi hay
Trang 23nhận được byte dữ liệu đầu tiên.
Hình 9: Cơ chế giao thức SSL Handshake
Trang 247.1 Thiết lập khả năng bảo mật:
-Giai đoạn này được dung để bắt đầu một kết nối logic và thiết lập khả năng bảo mật
mà sẽ liên kết với nó Việc trao đổi thì được khởi tạo bởi client bằng việc gửi mộtclient_hello message với những thông số sau đây:
+Version: version SSL mới nhất mà client biết.
+Random: một cấu trúc sinh ra ngẫu nhiên từ client, bao gồm một nhãn thời gian
32 bit và 28 bytes sinh bởi một bộ sinh số ngẫu nhiên an toàn Những giá trị này phục
vụ cho lần này và sử dụng suốt quá trình trao đổi khóa để ngăn tấn công lập lại
+Session ID: một ID của phiên có chiều dài thay đổi được.SessionID khác 0
nghĩa là client muốn cập nhật tham số của một kết nối đang tồn tại hay tạo một kết nốimới trên phiên này.SessionID = 0 chỉ ra rằng client muốn thiết lập một kết nối mớitrên một phiên mới
+CipherSuite: đây là 1 danh sách mà chứa những bộ biên dịch của những thuật
Trang 25toán mã hóa được hỗ trợ bởi client, tham khảo theo thứ tự giảm dần Mỗi thành phầntrong danh sách (mỗi bộ mã hóa) định nghĩa cả một khóa trao đổi và một CipherSpec,những thông số này sẽ được bàn đến sau.
+Compression Method: đây là danh sách của những phương thức nén mà client
hỗ trợ
-Sau khi gửi client_hello message, client chờ nhận server_hello message mà chứacùng thông số với client_hello message Với server_hello message, những thỏa thuậnkèm theo được áp dụng Trường Version chứa version thấp hơn được đề nghị bởiclient và cao nhất được hổ trợ bởi sever.Trường Random được sinh ra bởi server và độclập với trường Random của client Nếu trường SessionID của client khác 0, thì giá trịtương tự được dùng bởi server, ngược lại thì trường SessionID của server chứa giá trịcủa một phiên mới Trường CipherSuite chứa bộ mã hóa chọn bởi server từ những đềxuất của client Trường Compression chứa phương thức nén chọn bởi server từ những
đề xuất của client
-Thành phần đầu tiên của thông số Cipher Suite là phương thức trao đổi khóa (ví dụnhư bằng cách nào những khóa mã hóa cho việc mã hóa thông thường và MAC đượctrao đổi ) Những phương thức trao đổi khóa sau được hỗ trợ:
+RSA: khóa bí mật được mã hóa với khóa công khai RSA của bên nhận Một
public-key certificate cho khóa bên nhận phải được tạo sẵn
+Fixed Diffie-Hellman: đây là sự trao đổi khóa Diffie-Hellman trong certificate
của server chứa các thông số công khai Diffie-Hellman được ký bởi CertificateAuthority (CA) Nghĩa là certificate khóa công khai chứa các thông số khóa công khaiDiffie-Hellman Client chứa sẵn các thông số khóa công khai Diffie- Hellman đó trongcertificate nếu chứng thực client được yêu cầu hoặc trong một message trao đổikhóa.Phương thức này mang lại kết quả một khóa bí mật cố định giữa hai đầu, dựa trêntính toán Diffie- Hellman sử dụng khóa công khai cố định
+Ephemeral Diffie-Hellman: Phương pháp được sử dụng để tạo khóa ephemeral
(tạm thời,1 lần)– khóa tạm thời Trong trường hợp này, khóa công khai Diffie-Hellmanđược trao đổi,được ký sử dụng khóa bí mật RSA hoặc DSS của bên gửi.Bên nhận cóthể sử dụng khóa công khai tương ứng để xác minh chữ ký Certificate được sử dụng
để xác thực khóa công khai Điều này như là sự bảo đảm nhất của ba lựa chọn Hellman bởi vì nó là kết quả của sự tạm thời và khóa xác thực
Trang 26Diffie-+Anonymous Diffie-Hellman: thuật toán Diffie-Hellman cơ bản được sử dụng,
không chứng thực.Nghĩa là mỗi lần một bên gửi thông số Diffie-Hellman công khaicủa nó cho bên kia thì không xác thực.Điều này gần như là có thể bị tấn công bởi tấncông Man-in-the-middle ,trong đó kẻ tấn công điều khiển cả nhóm anonymous Diffie-Hellman
Fortezza: phương pháp định nghĩa cho lược đồ Fortezza.
7.2 Xác thực server và trao đổi khóa :
-Server bắt đầu giai đoạn này bằng cách gửi certificate của nó nếu nó cần được xácthực; thông điệp chứa một hoặc một chuỗi certificate(chứng thực) X.509 Thông điệpchứng thực được yêu cầu cho bất kì một phương pháp trao đổi khóa nào được thỏathuận, ngoại trừ anonymous Diffie-Hellman Chú ý rằng nếu fixed Diffie-Hellmanđược dùng, thì thông điệp chứng thực có chức năng như là thông điệp trao đổi khóacủa server vì nó chứa các tham số Diffie-Hellman công khai của server
-Sau đó một thông điệp server_key_exchange được gửi đi nếu nó được yêu cầu.Nókhông được yêu cầu trong 2 trường hợp sau:
(1) Server đã gửi một certificate với các tham số fixed Diffie-Hellman
(2) Trao đổi khoá RSA được dùng
-Thông điệp server_key_exchange cần cho các trường hợp sau:
+Anonymous Hellman: Nội dung thông điệp bao gồm hai giá trị
Diffie-Hellman toàn cục(một số nguyên tố và một số nguyên tố cùng nhau với số đó) cùngvới khóa Diffie- Hellman của server
+Ephemeral Hellman: nội dung thông điệp bao gồm 3 tham số
Diffie-Hellman cung cấp cho anonymous Diffie-Diffie-Hellman, cùng với một chữ kí của các tham
số này
+Trao đổi khóa RSA, mà theo đó server sử dụng RSA nhưng có một khóa chữ
kí chỉ của RSA Theo đó, client không thể gửi đi cách đơn giản một khóa bí mật được
mã hóa với khóa công khai/bí mật RSA phụ và sử dụng thông điệpserver_key_exchanged để gửi khóa công khai Nội dung thông điệp bao gồm hai tham
số của khóa công khai RSA phụ(số mũ và số dư) cùng với một chữ ký của các tham sốnày
+Fortezza: một vài chi tiết thêm về chữ kí được đảm bảo Như thường lệ, một
chữ kí được tạo ra bởi việc lấy mã băm của một thông điệp và mã hóa nó với khóa bímật của bên gửi
Trong trường hợp này mã băm được định nghĩa:
Trang 27Hash (ClientHello.random||ServerHello.random||ServerParams)
-Vì vậy mã băm bao gồm không chỉ các thông số Diffie-Hellman hay RSA,mà còn
có hai số ngẫu nhiên từ thông điệp hello khởi tạo.Điều này đảm bảo chống lại tấn côngreplay và misrepresentation(giả dạng).Trong trường hợp chữ kí DSS,mã băm đượcbiểu diễn sử dụng giải thuật SHA-1
-Trong trường hợp chữ kí RSA,cả mã băm MD5 và SHA-1 đều được tính toán, và
sự nối nhau của hai mã băm(36 byte) được mã hoá với khóa bí mật của server
-Kế đến, một nonanonymous server (server không dung anonymous Diffie-Hellman)
có thể yêu cầu một certificate từ client Một thông điệp certificate_request bao gồm haithông số certificate_type và certificate_authorities
-Kiểu certificate chỉ ra giải thuật khóa công khai, và nó dùng:
+RSA,chỉ dùng chữ kí
+DSS,chỉ dùng chữ kí
+RSA cho Diffie-Hellman thích hợp, trong trường hợp này chữ kí được dùngchỉ để xác thực,bằng cách gửi dùng certificate được kí với RSA
+DSS cho fixed Diffie-Hellman, một lần nữa,chỉ dùng để xác thực
+RSA cho ephemeral Diffie-Hellman
+DSS cho ephemeral Diffie-Hellman
+Fortezza
-Thông số thứ 2 của thông điệp certificate_request là một danh sách các tên của những
CA đặc biệt được chấp nhận Thông điệp cuối cùng trong giai đoạn 2, và là một phầnluôn được yêu cầu, là thông điệp Server_done, mà được gửi cho server để chỉ ra điểmcuối của thông điệp cuối của server_hello và các message đi kèm Sau khi gửi thôngđiệp, server sẽ chờ hồi đáp của client Thông điệp này không có tham số
7.3Xác thực client và trao đổi khóa:
-Trong khi nhận thông điệp server_done, client sẽ xác nhận xem server cung cấpmột chứng chỉ hợp lệ hay chưa nếu được yêu cầu và kiểm tra xem các thông số củaserver_hello được chấp nhận hay không Nếu tất cả đều thoả mãn, client gửi một haynhiều message trở lại cho server Nếu server yêu cầu một certificate,client bắt đầu giaiđoạn này bằng cách gửi 1 thông điệp certificate Nếu khống có certificate phù hợp nàohợp lệ, client gửi một cảnh báo no_certificate thay thế
-Kế đến là thông điệp client_key_exchange phải được gửi đi trong giai đoạn này