1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

94 615 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 94
Dung lượng 2,71 MB

Nội dung

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

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

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á

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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:

Trang 10

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

Trang 11

Hình 1.1: Vị trí của SSL trong mô hình TCP/IPGiao 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

Trang 12

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/TLSTó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

Trang 13

- 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ố

Trang 14

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

5 SMTP trên TLS/SSLNntps 56

3 NNTP trên TLS/SSL

Trang 15

4 IRC trên TLS/SSLPop3s 99

5 POP3 trên TLS/SSL 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 Mô tả

Session ID Đị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

Trang 16

Peer certificate Chứng nhân X.509 phiên bản 3 của thực thể ngang hàng.Compression

method Thuật toán dừng để nén dữ liệu trước khi mã hóa

Cipher spec Thông số của các thuật toán mã hóa dữ liệu và MAC

Master secret Khóa mật 48-byte được chia sẻ giữa client và server

Is resumable Cờ vốn biểu thị session có thể được sử dụng để bắt đầu các

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

Khóa ghi server Khóa được sử dụng cho việc mã hóa dữ liệu bởi server và

giải mã bởi clientKhóa ghi client Khóa được sử dụng để mã khóa dữ liệu bởi client và giải

Số chuỗi Mỗi phía duy trì các số chuỗi riêng biệt cho các thông

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

Trang 17

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

Trang 18

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)

Trang 19

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)

Trang 20

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

Trang 21

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

Trang 22

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 SSLCá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

Trang 23

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ệ

Trang 24

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:

Trang 25

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

Trang 26

2.3 Các giao thức con của SSL

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)

2.3.1 Giao thức bản ghi (SSL Record Protocol)

SSL Record Protocol nhận dữ liệu từ các giao thức con SSL lớp cao hơn và xử

lý việc phân đoạn, nén, xác thực và mã hóa dữ liệu Chính xác hơn, giao thức này lấy một khối dữ liệu có kích cỡ tùy ý làm dữ liệu nhập và tạo một loạt các đoạn dữ liệu SSL làm dữ liệu xuất (hoặc còn được gọi là các bản ghi) nhỏ hơn hoặc bằng 16,383 byte

Trang 27

Hình2.3: Mô hình chung về SSL Record ProtocolMục đích của giao thức SSL Record protocol là thu nhận những thông điệp

mà ứng dụng chuẩn bị gửi,phân mảnh dữ liệu cần truyền,đóng gói, bổ sung

header tạo thành 1 đối tượng gọi là bản ghi,bản ghi đó được mã hóa và có thể truyền bằng giao thức TCP

Bước đầu tiên của quá trình chuẩn bị truyền dữ liệu là phân mảnh dữ liệu, tức

là chia nhỏ dòng dữ liệu thành các mảnh kích thước 16KB(hoặc nhỏ hơn).Những mảnh dữ liệu này sau đó có thể được nén trước khi truyền đi

Sau đó bắt đầu quá trình tạo các bản ghi cho mỗi đơn vị dữ liệu bằng cách bổ xung thêm,một số byte cho đủ kích thước quy định của bản ghi nếu kích thước của bản ghi chưa đủ

Cuối cùng là phần MAC,MAC (Message Authentication Code) là mã xác thực thông điệp sử dụng để khi phát dữ liệu trong các phiên SSL

Phần header của mỗi bản ghi chứa 2 thông tin quan trọng đó là độ dài của bản ghi và độ dài của khối dữ liệu thêm vào phần dữ liệu gốc.Phần dữ liệu của 1 bản ghi gồm:

MAC được tính toán dựa trên việc áp dụng hàm băm trên các dữ liệu sau: khóa bí mật,dữ liệu gốc,phần thông tin bổ xung,số thứ tự

Khóa bí mật ở đây có thể là khóa ghi MAC của client hoặc của server tùy thuộc vào ai là người tạo ra gói tin

Sau khi nhận được một gói tin thì bên nhận tự tính lại giá trị MAC và so sánh với giá trị MAC chứa trong gói tin đó.Nếu hai giá trị MAC đó giống nhau có

Trang 28

nghĩa là dữ liệu không bị thay đổi trong quá trình truyền trên mạng.Độ dài của trường MAC phụ thuộc vào phương pháp để tính ra nó

Tiếp theo,phần dữ liệu cộng với MAC sẽ được mã hóa sử dụng phương pháp

mã hóa(đối xứng) đã thỏa thuận trước ví dun DES hoặc triple DES.Như vậy là cả

dữ liệu và MAC đều được mã hóa.Phần dữ liệu đã được mã hóa đó được gắn thêm header bao gồm các trường sau:

Kiểu nội dung(content type-8 bit): xác định dữ liệu nào chứa trong gói tin để quyết định xem giao thức nào ở lớp cao hơn sẽ chịu trách nhiệm sử lý dữ liệu của gói tin đó.Các giá trị có thể của trường này là:change cipher

spec,alert,handshake và application data tham chiếu đến các giao thức tương ứng ở mức cao hơn

Phiên bản chính(major version- 8 bit):phần chỉ số chính của phiên bản SSL đang sử dụng.Ví dụ với SSL 3.0 thì giá trị của trường này là 3

Phiên bản phụ(minor version – 8 bit):phần chỉ số phụ của phiên bản SSL đang

sử dụng.Ví dị với SSL 3.0 thì giá trị này là 0

Compressed length(16 bit): Độ dài byte của plaintext fragment (hoặc nén đoạn nếu nén được sử dụng) Giá trị tối đa là 214 1 2048

Trang 29

Hình 2.4 Các trường trong SSL Record Protocol

Sau khi tính toán xong các trường này,bản ghi đã được tạo xong và sẵn

sàng để gửi đến cho máy đích.Toàn bộ quá trình chuẩn bị bản ghi trước khi gửi được mô tả trong hình 2.4

Hình 2.5: Quá trình tạo một bản ghi của SSL Record Protocol

Như được minh họa trong hình 2.5, một số giao thức con SSL được xếp lớp trên SSL Record Protocol Mỗi giao thức con có thể tham chiếu đến các loại thông báo cụ thể vốn được gửi bằng cách sử dụng SSL Record Protocol Thông

số kỹ thuật SSL 3.0 xác định ba giao thức SSL sau đây:

Trang 30

giá trị là warning(1) và fatal(2) xác định tính nghiêm trọng của thông điệp.Khi 1 trong 2 bên gửi thông điệp có giá trị bit đầu tiên là fatal(2) thì phiên làm việc giữa 2 bên sẽ kết thúc ngay lập tức.Byte tiếp theo của thông điệp chứa mã lỗi xảy

ra trong phiên giao dịch SSL

Alert level types

Co

de

Level type Connection state

1 warnin

g connection or security may be unstable.

2 fatal connection or security may be compromised, or an

unrecoverable error has occurred

Handshake Protocol là bộ giao thức SSL phức tạp nhất.Giao thức này được sử dụng để khởi tạo phiên SSL giữa client và server.Thông điệp của giao thức này chứa rất nhiều loại thông tin,ví dụ các thuật toán mã hóa và các khóa mã mà 2 bên sẽ phải thỏa thuận với nhau.Nhờ giao thức này các bên sẽ xác thực lẫn nhau

và thỏa thuận các tham số cho phiên làm việc sẽ được thiết lập SSL Handshake Protocol là giao thức con SSL chính được sử dụng để hỗ trợ xác thực client và server và để trao đổi một khóa session Do đó SSL Handshake Protocol trình bày tổng quan và được thảo luận trong phần tiếp theo

Sau cùng, ChangeCipherSpec Protocol là giao thức SSL đơn giản nhất.Nó chỉ chứa 1 thông điệp kích thước 1 Byte.Mục đích duy nhất của thông điệp này là làm chuyển trạng thái của 1 phiên từ “đang chờ”(pending) sang “bền

vững”(fixed).Ví dụ khi 2 bên quy ước bộ giao thức nào sẽ sử dụng,cả client và server đều phải gửi thông điệp loại này cho bên đối tác,sau khi đã trao đổi xong thì coi như hai bên đã đồng ý với nhau

Ngoài những giao thức con SSL này, một SSL Application Data Protocol

Trang 31

2.3.2 Giao thức bắt tay (SSL Handshake Protocol)

SSL Handshake Protocol là giao thức con SSL chính được xếp lớp trên SSL

Record Protocol Kết quả, các thông báo thiết lập quan hệ SSL được cung cấp

cho lớp bản ghi SSL nơi chúng được bao bọc trong một hoặc nhiều bản ghi SSL vốn được xử lý và được chuyển như được xác định bởi phương pháp nén và thông số mật mã của session SSL hiện hành và các khóa mật mã của nối kết SSL

Quy trinh thỏa thuận giữa client và server được chia làm 4 pha được thể hiện trong hình 2.6

Trang 32

Hình 2.6: Các pha làm việc của SSL Handshake ProtocolTrong pha thứ 1:một kết nối logic được thiết lập giữa client và server để thỏa thuận các tham số của kết nối.Phía client gửi cho server 1 thông điệp

Trang 33

Pha thứ 4: Thay đổi mã bộ và kết thúc giao thức handshake.Client gửi

Change_cipher_spec,và Finish cho server.Và server cũng gửi lại cho client 2 thông điệp trên để kết thúc

Giao thức SSL sử dụng kết hợp 2 loại mã hoá đối xứng và công khai Sử dụng

mã hoá đối xứng nhanh hơn rất nhiều so với mã hoá công khai khi truyền dữ liệu, nhưng mã hoá công khai lại là giải pháp tốt nhất trong qúa trình xác thực Một giao dịch SSL thường bắt đầu bởi quá trình “bắt tay” giữa hai bên (SSL handshake) Các bước trong quá trình “bắt tay” có thể tóm tắt như sau:

Bước 1: Client sẽ gửi cho server số phiên bản SSL đang dùng, các tham số của thuật toán mã hoá, dữ liệu được tạo ra ngẫu nhiên (đó chính là digital signature)

và một số thông tin khác mà server cần để thiết lập kết nối với client

Bước 2: Server gửi cho client số phiên bản SSL đang dùng, các tham số của thuật toán mã hoá, dữ liệu được tạo ra ngẫu nhiên và một số thông tin khác mà client cần để thiết lập kết nối với server Ngoài ra server cũng gửi certificate của

nó đến client, và yêu cầu certificate của client nếu cần

Bước 3: Client sử dụng một số thông tin mà server gửi đến để xác thực server Nếu như server không được xác thực thì người sử dụng sẽ được cảnh báo và kết nối không được thiết lập Còn nếu như xác thực được server thì phía client sẽ thực hiện tiếp bước 4

Bước 4: Sử dụng tất cả các thông tin được tạo ra trong giai đoạn bắt tay ở trên, client (cùng với sự cộng tác của server và phụ thuộc vào thuật toán được sử dụng) sẽ tạo ra premaster secret cho phiên làm việc, mã hoá bằng khoá công khai (public key) mà server gửi đến trong certificate ở bước 2, và gửi đến server Bước 5: Nếu server có yêu cầu xác thực client, thì phía client sẽ đánh dấu vào

phần thông tin riêng chỉ liên quan đến quá trình “bắt tay” này mà hai bên đều

biết Trong trường hợp này, client sẽ gửi cả thông tin được đánh dấu và

certificate của mình cùng với premaster secret đã được mã hoá tới server

Server sẽ xác thực client Trường hợp client không được xác thực, phiên làm

Trang 34

việc sẽ bị ngắt Còn nếu client được xác thực thành công, server sẽ sử dụng khoá

bí mật (private key) để giải mã premaster secret, sau đó thực hiện một số bước

để tạo ra master secret

Bước 6: Client và server sẽ sử dụng master secret để tạo ra các session key, đó chính là các khoá đối xứng được sử dụng để mã hoá và giải mã các thông tin trong phiên làm việc và kiểm tra tính toàn vẹn dữ liệu

Bước 7: Client sẽ gửi một lời nhắn đến server thông báo rằng các message tiếp theo sẽ được mã hoá bằng session key Sau đó nó gửi một lời nhắn đã được mã hoá để thông báo rằng phía client đã kết thúc giai đoạn “bắt tay”

Bước 8: Server cũng gửi một lời nhắn đến client thông báo rằng các message tiếp theo sẽ được mã hoá bằng session key Sau đó nó gửi một lời nhắn đã được

mã hoá để thông báo rằng server đã kết thúc giai đoạn “bắt tay”

Bước 9: Lúc này giai đoạn “bắt tay” đã hoàn thành, và phiên làm việc SSL bắt đầu Cả hai phía client và server sẽ sử dụng các session key để mã hoá và giải mã thông tin trao đổi giữa hai bên, và kiểm tra tính toàn vẹn dữ liệu

Ý nghĩa của các thông điệp trao đổi trong “quá trình bắt tay”:

Connection(Kết nối):là 1 liên kết client/server logic với những kiểu dịch vụ thích hợp.SSL connection là 1 kết nối điểm nối điểm giữa 2 nút mạng

Session(phiên): là 1 sự kết hợp giữa 1 client và 1 server xác định bằng 1 bộ các tham số ví dụ thuật toán sẽ sử dụng,số hiệu phiên…Khi 1 phiên SSL giữa 1 client và 1 server được thiết lập bằng giao thức SSL handshake protocol thì tất cả các kết nối sau này được thiết lập giữa cặp client/server đó sẽ sử dụng chung bộ tham số đó mà không phải tiến hành thỏa thuận lại

Điều đó có nghĩa là trong 1 phiên SSL giữa 1 client và 1 server có thể có

nhiều kết nối giữa client và server đó.Về lý thuyết cũng có thể có nhiều phiên SSL dùng chung 1 kết nối,nhưng trên thực tế không sử dụng đến khả năng

này.Khái niệm phiên và kết nối liên quan đến nhiều tham số sử dụng trong

Trang 35

thức handshake ngoài việc chọn các phương pháp mã hóa dữ liệu thì 1 loạt các tham số của session State cũng được chọn,session State bao gồm:

Session Indentifier:là định danh cho server tạo ra và gán cho mỗi phiên làm việc với 1 client nhất định

Peer Certificate:Chứng chỉ X.509 của nút còn lại của phiên

Phương pháp nén:xác định phương pháp nén dữ liệu trước khi mã hóa

Mô tả thuật toán CipherSpec:xác định thuật toán để mã hóa dữ liệu(ví dụ thuật toán DES) và thuật toán hash(ví dụ MD5) sẽ sử dụng trong phiên

Master secret: là 1 số bí mật 48 byte được server và client dùng chung

Cờ “is resumable”:cho biết có thể sử dụng phiên này để khởi tạo các kết nối mới hay không

Sequence number(số thứ tự):server và client quản lý 1 cách riêng rẽ các số thứ

tự để đánh số các thông điệp gửi và nhận cho mỗi kết nối

Trang 36

2.4 Đánh giá

2.4.1 Ưu điểm

Ưu điểm chính của giao thức SSL nói riêng và các giao thức bảo mật lớp vận chuyển (Transport layer) nói chung là chúng độc lập với ứng dụng theo nghĩa là chúng có thể được sử dụng để bảo vệ bất kỳ giao thức ứng dụng được xếp lớp lên trên TCP một cách trong suốt Hình 2.3 minh họa một số giao thức ứng dụng điển hình bao gồm NSIIOP, HTTP, FTP, Telnet, IMAP, IRC, và POP3 Tất cả chúng có thể được bảo vệ bằng cách xếp lớn chúng lên trên SSL (mẫu tự S được thêm vào trong các từ ghép giao thức tương ứng chỉ định việc sử dụng SSL) Tuy nhiên, chú ý rằng SSL có một định hướng client-server mạnh mẽ và thật sự

không đáp ứng các yêu cầu của các giao thức ứng dụng ngang hàng.

- Bảo đảm tính riêng tư và toàn vẹn của tất cả dữ liệu được truyền giữa 2 máy tính khi nó ở trong mạng

- Trong suốt với người sử dụng

- An toàn, ổn định, dễ triển khai

2.4.2 Nhược điểm

Thực tế, SSL không cung cấp biện pháp đầy đủ các biện pháp bảo vệ

Có những cuộc tấn công mà SSL trở nên bị vô hiệu :

-Mặc dù dữ liệu trên đường truyền Internet được mã hoá nhưng SSL không bảo vệ dữ liệu được lưu trữ trên đĩa

-Những phần mềm dễ bị tổn thương chính là lỗ hổng cho những kẻ xâm nhập -Những thông tin bị ăn trộm qua trang lưu trữ tạm thời ( Page Cache)

trong chương trình duyệt

-Những cuộc tấn công bằng tay như Capture toàn bộ trang Web, thay đổi nội

dung qua những công cụ Web Proxy

Trang 37

-Ăn trộm thông tin bí mật bên trong bộ nhớ của chương trình duyệt SSL mã hoá dữ liệu trong quá trình truyền dữ liệu trên mạng, nhưng dữ liệu đã được giải

mã lại bên trong bộ nhớ của chương trình duyệt Những kẻ tấn công dùng công

cụ đọc bộ nhớ để xem thông tin

Trang 38

Chương 3 Các ứng dụng sử dụng SSL

3.1 Ứng dụng trong Internet Banking

Một đặc điểm rất quan trọng trong bất kỳ giải pháp Internet Banking nào là phải đảm bảo tính xác thực và an toàn trong giao dịch Điều này phụ thuộc vào nhiều yếu tố khác nhau và với sự tiến bộ của công nghệ, các ngân hàng có thể lựa chọn các giải pháp bảo mật khác nhau cho giải pháp Internet Banking mà mình chọn ứng dụng

Có nhiều phương pháp để giải quyết vấn đề xác thực và bảo mật giao

dịch an toàn như: Sử dụng bàn phím ảo, phương pháp mật khẩu một lần (One Time Password), xác thực hai phương thức (Two Factor Authentication), hay dùng thiết bị khóa phần cứng (Hardware Token), thẻ thông minh (TTM) có chữ

ký số (PKI Smartcard) Các ngân hàng lớn trên thế giới thường sử dụng các giải pháp xác thực và an toàn giao dịch dựa trên hạ tầng khóa công khai (PKI) cùng với sự tham gia của Hardware Token (TTM tích hợp sẵn đầu đọc cổng USB) hay thẻ thông minh (PKI Smartcard)

Giải pháp bảo mật sử dụng chữ ký điện tử giải quyết đồng thời được 4 vấn đề quan trọng trong các giao dịch điện tử là: Xác thực người dùng, bảo mật thông tin giao dịch, toàn vẹn dữ liệu và chống chối bỏ Bên cạnh đó, mỗi khách hàng sẽ được cung cấp một bộ thiết bị gồm: Thẻ Smartcard bên trong có chứa chứng chỉ

số và cặp khóa công khai/ khóa riêng (PrivateKey/PublicKey) và một đầu đọc TTM tiếp xúc Khi khách hàng ở bất kỳ đâu có máy tính nối mạng Internet, họ chỉ thực hiện một việc rất đơn giản là gắn đầu đọc (hỗ trợ cổng USB) vào máy tính, vào trang web Internet Banking của NH và gắn thẻ vào đầu đọc, sau đó khách hàng đăng nhập hệ thống hay thực hiện các giao dịch NH và yêu cầu nhập

Trang 39

được tuân theo chuẩn GlobalPlatform (tên riêng của chuẩn TTM đa ứng dụng),

hệ thống trang web sử dụng giao thức SSL (Security Socket Layer), chứng chỉ Website (Chứng chỉ số dành cho website để kiểm tra sự giả mạo - nếu có) và hỗ trợ mọi trình duyệt như IE, Firefox

Trong giao thức SSL thì RSA là một trong những giải thuật mã hóa bất đối xứng được dùng thông dụng nhất Nó được dùng hàng ngày trong các giao dịch thương mại điện tử qua web browser (SSL), PGP, dùng cho digital signature đảm bảo tính toàn vẹn của các thông điệp khi lưu chuyển trên Internet, phân phối

& cấp phát các secret keys…

RSA được sử dụng rất nhiều trong các giao dịch Internet banking hiện nay:Hoạt động của một kết nối https (SSL):

1 Web browser kết nối với web server và yêu cầu một kết nối an toàn và bảo mật

2 Web server trả về cho web browser site's certificate

3 Web browser kiểm tra các thông tin trong site's certificate xem có thật hay

không (khi certificate không co thật sẽ thấy xuất hiện một cảnh báo, và nếu

muốn cố tự mình cho rằng nó co thật thì click Yes để kết nối, một khi thấy cảnh báo hiện ra mà vẫn cố chấp nhận giao dịch thì web site mà đang kết nối có thể là

web site giả mạo)

4 Web browser lúc này mới tạo ra một session key sau đó dùng server's

public key để mã hóa (asymmetric) và chuyển session key đã được encrypt này tới web server

5 Web server dùng private key của nó để giải mã (asymmetric) và lấy được

session key dùng để mã hóa data (symmetric) giửa web server và web browser

3.2 Ứng dụng trong thương mại điện tử

Trọng tâm của bất kỳ hoạt động TMĐT nào cũng là giao dịch tài chính giữa Web site và người mua hàng Một trong những phương pháp phổ biến nhất để nhận thanh toán từ khách hàng là thông qua thẻ tín dụng trực tuyến Nhưng

Trang 40

bằng việc chấp nhận thông tin thẻ tín dụng của khách hàng qua Web site, thì cũng phải chấp nhận trách nhiệm an ninh cho những thông tin đó

Giao thức chuẩn cho an ninh truyền thông trên Web là SSL (Secure Sockets Layer) Được phát triển bởi Netscape Communications Corporation, giao thức bảo mật SSL cung cấp mã hoá dữ liệu, xác thực máy chủ, xác thực máy khách và tính hợp pháp của e-mail cho các máy sử dụng kết nối TCP/IP, cho phép các ứng dụng máy khách/máy chủ giao tiếp mà không bị nghe trộm, xâm phạm hoặc làm giả e-mail

Hiện nay ,hầu hết các website thương mại điện tử đều ứng dụng SSL để bảo mật cho các giao dịch giữa họ và khách hàng.Để tạo dc một kết nối dạng SSL thì máy chủ web cần phải có thêm một SSL Certificate.Trong quá trình kích hoạt SSL, các nhà quản trị web phải cung cấp một số thông tin đặc trưng cho trang web và cho công ty của họ,sau đó máy chủ sẽ sinh ra một cặp khóa - một private key (khóa riêng ) và một public key (khóa công cộng ).Cặp khóa này dùng để mã hóa dữ liệu truyền giữa khách hàng và máy chủ web.

Sau khi web server tạo ra SSL Certificate,nhà quản trị web phải đăng kí Certificate này với một tổ chức chứng thực.Tổ chức này sẽ cung cấp cho công ty một Certificate Authority(CA),CA này dùng để kiểm tra tính hợp lệ của thông tin website và cho phép trang web sử dụng SSL Khi có CA thì trang web có thể tạo được một kết nối mã hóa giữa máy chủ web và trình duyệt của người dùng.

Một SSL Certificate thường chứa những thông tin của công ty như: tên miền, tên nước Ngoài ra, nó còn chứa các thông tin về thời hạn hiệu lực của

Certificate cũng như các thông tin về tổ chức chứng thực đảm bảo cho website của công ty.

Khi trình duyệt kết nối đến một trang web dc bảo mật,trình duyệt sẽ kiểm tra Certificate của trang web này và bảo đảm 3 yếu tố sau:

+ Certificate này dc cung cấp bởi 1 hãng có uy tín.

Ngày đăng: 09/04/2016, 09:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w