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

Tiểu luận môn Mã hóa an toàn dữ liệu Trình bày công nghệ SSL

21 507 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 21
Dung lượng 109,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tiểu luận môn Mã hóa an toàn dữ liệu Trình bày công nghệ SSLViệ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 thông tin trên đường truyền. Không ai có thể kiểm soát được đườ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 hay không. Để bảo vệ thông tin mật trên Internet hay bất kỳ mạng TCPIP 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:

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Khoa Công Nghệ Thông Tin

-o0o -BÁO CÁO MÔN HỌC

Tên đề tài: Trình bày công nghệ SSL

Sinh viên thực hiện: Phạm Ngọc Việt

Giáo viên : PGS.TS.Trịnh Nhật Tiến

Hà Nội, tháng 12 năm 2011

Mục lục

Trang 2

1 Giới thiệu về SSL 3

a Thực trạng vấn đề 3

b Giao thức SSL 3

2 Mục đích của SSL 5

3 Giao thức SSL 5

a Giao thức SSL Record 5

b Giao thức SSL Handshake 6

4 Cơ chế làm việc của SSL 6

5 Tính bảo mật của SSL 14

6 Ưu điểm và hạn chế của SSL 15

a Ưu điểm 15

b Hạn chế 16

7 Các hệ mã hóa sử dụng trong SSL 19

8 Hệ mã hóa Elgamal 20

Trang 3

1 Giới thiệu về SSL

a Thực trạng vấn đề

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 thông tintrên đường truyền Không ai có thể kiểm soát được đườ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 hay không

Để bảo vệ thông tin mật trên Internet hay bất kỳ mạng TCP/IP nào, SSL đã kết hợpnhữ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 Ngược lại, 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ã hóa: đả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 “mật” khi nó được truyền qua Internet, dữliệu phải được mã hóa để không thể bị đọc được bởi người khác ngoài người gửi

và người nhận

Toàn vẹn dữ liệu: bảo đảm 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ôngtin, 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áctrình duyệt 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 server sử dụng kết nối SSL tới server, dòng “http” trongthanh URL sẽ chuyển thành “https” Một phiên giao dịch sử dụng cổng 443 thay vì

Trang 4

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ụgiữa webserver và các trình duyệt khách (browsers), do đó được sử dụng rộng rãitrong nhiều ứng dụng khác nhau trên môi trường Internet

Toàn bộ cơ chế và hệ thống mã hoá dùng trong SSL được phổ biến côngkhai, trừ khoá phiên (Session key) được sinh ra tại thời điểm trao đổi giữa hai ứngdụng là 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 đối tượng thứ

ba (CA) thông qua chứng chỉ điện tử (digital certificate) dựa trên mật mã công khai(Elgamal)

Vị trí của SSL trong mô hình OSI

Trang 5

2 Mục đích của SSL

- Khả năng an toàn: SSL được sử dụng để thiết lập kết nối an toàn giữa hai

nhóm

- Khả năng tương tác giữa các phần tử: Các nhà lập trình độc lập có thể phát

triển các ứng dụng sử dụng SSL 3.0, sau khi trao đổi các tham số mật mã

mà không phải biết mã chương trình của các ứng dụng khác

- Khả năng mở rộng: SSL cung cấp một framework, trong đó các phương

pháp mã hoá và mã hoá khóa công khai kết hợp chặt chẽ với nhau

về, tiến trình được thực hiện ngược lại: giải mã, kiểm tra, giải nén và sắp xếp lạirồi gửi lên tầng trên

Hình 2 Vị trí giao thức Bản ghi trong giao thức SSL

Trang 6

SSL định nghĩa 4 giao thức tầng cao khác nhau mà Record Layer có thể hỗ trợ: ChangeCipherSpec protocol (20), Alert protocol (21), Handshake protocol (22), Application protocol data (23).

b Giao thức SSL Handshake

SSL Handshake Protocol là phần quan trọng của SSL, nó cung cấp ba dịch

vụ cho các kết nối SSL giữa client và server Handshake Protocol cho phép

client/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ành một MAC, thoả thuận về mã hoá và các khoá lập mã cho việc bảo vệ các dữ liệu gửi đi

Giao thức bắt tay (Handshake Protocol) bao gồm một dãy các thông điệp được trao đổi bởi client và server Hình 8 minh hoạ sự trao đổi các thông điệp handshake cần thiết để thiết lập một kết nối logic giữa client và server

Để hiểu kỹ hơn về SSL Handshake, xem phần cơ chế làm việc của SSL

4 Cơ chế làm việc của SSL

Giao thức SSL sử dụng kết hợp 2 loại mã hóa khóa công khai và mã hóa khóa bí mật Sử dụng mã hóa khóa bí mật nhanh hơn rất nhiều so với mã hóa khóa công khai khi truyền dữ liệu, nhưng mã hóa khóa công khai lại là giải pháp tốt nhất trong quá 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” có thể tóm tắt như sau:

1 Client gửi tới server số phiên bản SSL của client, tham số của hệ mã hoá,sinh dữ liệu ngẫu nhiên (đó là digital signature) và các thông tin khác màserver cần để thiết lập kết nối với client

2 Server gửi tới client số phiên bản SSL của server đang dùng, tham số của hệ

mã hoá, sinh dữ liệu ngẫu nhiên và các thông tin khác mà client cần để thiếtlập kết nối với server có dùng SSL Server cũng gửi chứng chỉ của mình tớiclient, nếu client yêu cầu tài nguyên của server mà cần xác thực, thì nó yêucầu chứng chỉ của client

Trang 7

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

4 Sử dụng các thông tin được tạo ra trong giai đoạn bắt tay ở trên, client (cùngvới sự cộng tác của server và phụ thuộc vào thuật toán được sử dụng) tạo ra

Premaster Secret cho phiên làm việc Nó mã hoá bằng khoá công khai mà

server gửi đến trong chứng chỉ ở bước 2, tiếp theo gửi tới server

5 Nếu server có yêu cầu xác thực client (tuỳ chọn trong quá trình bắt tay),client sẽ ký trên dữ liệu, dữ liệu này là duy nhất đối với quá trình bắt tay vàđều được lưu trữ bởi client và server Trong trường hợp này, client sẽ gửi cả

dữ liệu được ký, chứng chỉ số của mình cùng với Premaster Secret đã

được mã hoá tới server

6 Nếu server yêu cầu xác thực client, server cố gắng xác thực client Nếuclient không được xác thực, phiên làm việc sẽ bị ngắt Nếu client được xác

thực, server sẽ sử dụng khoá riêng để giải mã Premaster Secret, sau đó tạo

ra Master Secret.

7 Client và server sử dụng Master Secret để tạo ra các Session Key, đó là các

khoá đối xứng được dùng để mã hoá - giải mã các thông tin trong phiên làmviệc và kiểm tra tính toàn vẹn dữ liệu (thay đổi về dữ liệu giữa thời điểmgửi và nhận)

8 Client gửi thông điệp tới server thông báo rằng các thông điệp tiếp theo sẽ

được mã hoá bằng session key Sau đó gửi kèm theo thông điệp riêng biệt

xác định quá trình bắt tay phía client đã kết thúc

9 Server cũng gửi một lời nhắn đến client thông báo rằng các thông điệp tiếp

theo sẽ được mã hóa bằng session key Sau đó gửi kèm theo thông điệp

riêng biệt xác định quá trình bắt tay phía server đã kết thúc

Trang 8

10 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, cũng như kiểm tra tính toàn vẹn dữ liệu.Hình sau minh hoạ sự trao đổi các thông điệp “bắt tay” cần thiết để thiết lậpmột kết nối logic giữa client và server:

Trang 9

Để dễ hiểu ta lấy ví dụ trình bày một phiên làm việc của SSL: Phèo trao đổi thông tin với Nở.

Phèo chắc chắn rằng mình sẽ nói chuyện với Nở mà không phải là một ai khác Phèo sẽ tiến hành xác thực Nở Nở có một cặp khóa gồm khóa chung và khóa riêng Nở cho Phèo biết trước khóa chung của mình Phèo tạo ra một thông điệp ngẫu nhiên (random message) và gửi nó cho Nở

Nở dùng khóa riêng của mình để mã hóa thông điệp vừa nhận được và gửi trả lại cho Phèo

Phèo nhận được thông điệp từ Nở, dùng khóa chung của Nở để giải mã thông điệp này và so sánh thông điệp vừa giải mã được với thông điệp ngẫu nhiên đã gửi đi Nếu giống nhau, Phèo có thể tin chắc rằng mình đang nói chuyện với Nở

*) Bản đại diện (digest)

Thay vì phải mã hóa toàn bộ thông điệp nhận được từ Phèo, Nở có thể xây dựng một bản đại diện cho thông điệp bằng hàm băm một chiều, sau đó mã hóa bản đại diện này bằng khóa riêng của mình và gửi cho Phèo Phèo sẽ dùng khóachung của Nở để giải mã bản đại diện do Nở gửi tới và tính đại diện cho thông điệp đã được gửi đi, sau đó so sánh 2 đại diện này, nếu giống nhau, Phèo có thể tin chắc rằng mình đang nói chuyện với Nở

Bản đại diện thực chất chỉ là một số nguyên Hai thuật toán phổ biến được dùng để tạo đại diện là MD5 băm 128 bit, SHA băm 160 bit Ai có được bản đạidiện của Phèo cũng không thể nào suy ra được nguyên bản vì bản đại diện này chỉ là giá trị một chiều Hai thông điệp khác nhau có bản đại diện khác nhau, khả năng trùng xấp xỉ bằng 0

*) Chữ ký điện tử

Theo cách ở trên thì Nở đã kí thông điệp do Phèo gửi tới, nhỡ ai đó thay đổi thông điệp này thì sao? Vì vậy cần thay đổi như sau:

Phèo -> Nở: Chào! Có phải Nở không?

Nở -> Phèo: Phèo, mình là Nở đây.

{digest[Phèo, mình là Nở đây.] khóa riêng của Nở}

Như bạn thấy Nở không hề kí thông điệp của Phèo Thay vào đó, Nở sẽ gởi một mesage khác(không bị mã hóa) và digest của của message này (đã được mãhóa bằng khóa riêng của Nở) đến cho Phèo Phèo chỉ tin tưởng vào chính mình

Trang 10

Phèo dễ dàng thẩm tra Nở bằng cách dùng khóa chung của Nở giải mã digest nhận được, sau đó tính digest của message nhận từ Nở và so sánh hai digest nàyvới nhau Digest mà Nở gởi tới Phèo chính là một chữ kí điện tử Nó kí cho message "Phèo, Mình là Nở đây!" để đảm bảo chắc chắn là message này không

bị ai đó thay đổi gì khi đến Phèo Nếu thay đổi Phèo sẽ biết ngay qua việc thẩm tra digest

*) Trao khóa chung

Nở trao khóa chung của mình cho Phèo bằng cách nào? Bạn hãy xem thử giao thức sau:

Phèo -> Nở: Xin chào!

Nở -> Phèo: Chào, Mình là Nở Đây là khóa chung của mình!

Phèo -> Nở: Hãy đưa bằng chứng đi!

Nở -> Phèo: Phèo, Mình là Nở đây!

digest[Phèo, Mình là Nở đây!]}khóa-riêng-của-Nở

Với cách này thì ai cũng có thể giả mạo Nở và trao khóa chung của họ cho Phèo, làm cho Phèo tưởng lầm là mình đang nói chuyện với Nở

Để giải quyết vấn đề này, Phèo và Nở có thể dùng giấy chứng nhận điện tử

*) Giấy chứng nhận điện tử (digital certificate)

Giấy chứng nhận điện tử dùng để chứng nhận khóa chung của một cá nhân nào đó Một giấy chứng nhận điện tử thường bao gồm các thứ sau:

+Tên cơ quan cấp giấy chứng nhận (issuer's name)

+ Tên thực thể(entity) được cấp giấy chứng nhận(còn được gọi là đối tượng subject)

+ Khóa chung của subject

Trang 11

+ Tem thời gian(time-stamps) cho biết thời gian có hiệu lực của giấy chứng nhận

Chỉ có các cơ quan có thẩm quyền Certificate Authority (thường được gọi tắt là CA) mới được phép cấp giấy chứng nhận Giấy chứng nhận được kí bằng khóa riêng của người cấp CA cũng được tổ chức theo dạng cây "hierarchy" tương tự như domain-name Dĩ nhiên bạn cũng có thể tạo ra một CA mới cho riêng cho mình

Chúng ta hãy xem giao thức mới này:

Phèo -> Nở: Xin chào!

Nở -> Phèo: Chào, Mình là Nở Đây là giấy chứng nhận của mình!

Phèo -> Nở: Hãy đưa bằng chứng đi!

Nở -> Phèo: Phèo, Mình là Nở đây!

{digest[Phèo, Mình là Nở đây!]}khóa-riêng-của-Nở

Ai đó dùng giấy chứng nhận của Nở để giả mạo Nở sẽ bị Phèo phát hiện ngay!Phèo -> Bá Kiến Xin chào

Bá Kiến -> Phèo Chào, Mình là Nở Đây là giấy chứng nhận của mình!

Phèo -> Bá Kiến Hãy đưa bằng chứng đi!

Bá Kiến -> Phèo ???

Bá Kiến không biết khóa riêng của Nở nên không thể xây dựng được message

để Phèo có thể tin mình là Nở

*) Trao đổi khóa bí mật (secret-key)

Sau khi Phèo đã xác thực mình đang nói chuyện với Nở, Phèo sẽ gởi cho Nởmột message đã bị mã hóa bằng khóa chung của Nở:

Phèo -> Nở {khóa bí mật}khóa-chung-của-Nở

Trang 12

Bằng cách này, chỉ có Nở mới có thể giải mã message trên và lấy được khóa

bí mật bởi vì chỉ có Nở mới biết được khóa riêng để giải mã Trao đổi khóa bí mật bằng công nghệ khóa chung cực kì an toàn Không một ai ngoại trừ Phèo

và Nở biết được khóa bí mật Khóa bí mật này còn được biết đến với cái tên là khóa phiên(session key) Kể từ đây Phèo và Nở sẽ dùng khóa phiên để trao đổi

dữ liệu cho nhau Khóa phiên được tạo ra trong mỗi phiên kết nối SSL và hoàn toàn bí mật(chỉ có Phèo và Nở biết) nên rất an toàn Công nghệ chuyên chở khóa phiên bằng khóa chung và dùng khóa phiên như một khóa đối xứng bí mật

để trao đổi dữ liệu cho nhau còn được biết đến với cái tên là mã hóa dùng khóa lai ghép(hybrid), tức là kết hợp cả hai phương pháp mã hóa dùng khóa đối xứng

và khóa chung-khóa riêng, hay thuật toán mã hóa đối xứng kết hớp với bất đối xứng

Đây là giao thức mới:

Phèo -> Nở: Xin chào!

Nở -> Phèo: Chào, Mình là Nở Đây là giấy chứng nhận của mình!

Phèo -> Nở: Hãy đưa bằng chứng đi!

Nở -> Phèo: Phèo, Mình là Nở đây!

{digest[Phèo, Mình là Nở đây!]}khóa-riêng-của-Nở

Phèo -> Nở: Ok Nở, Đây là {khóa bí mật}khóa-chung-của-Nở

Nở -> Phèo: {message 1}khóa-bí-mật

Nở -> Phèo: {message 2}khóa-bí-mật

*) Tấn công man-in-the-middle

Giao thức trên chưa phải là an toàn tuyệt đối Bá Kiến ngồi giữa Phèo và Nở

có thể chơi trò tấn công man-in-the-middle như sau:

Phèo -> Bá Kiến: Xin chào!

Trang 13

Nở -> Bá Kiến: Chào, Mình là Nở Đây là giấy chứng nhận của mình!

Bá Kiến->Phèo: Chào, Mình là Nở Đây là giấy chứng nhận của mình!

Phèo -> Bá Kiến: Hãy đưa bằng chứng đi!

Bá Kiến -> Nở: Hãy đưa bằng chứng đi!

Nở -> Bá Kiến: Phèo, Mình là Nở đây!

{digest[Phèo, Mình là Nở đây!]}khóa-riêng-của-Nở

Bá Kiến -> Phèo: Phèo, Mình là Nở đây!

{digest[Phèo, Mình là Nở đây!]}khóa-riêng-của-Nở

Phèo -> Bá Kiến: Ok Nở, đây là {khóa bí mật}khóa-chung-của-Nở

Bá Kiến -> Nở: Ok Nở, đây là {khóa bí mật}khóa-chung-của-Nở

Nở -> Bá Kiến: {some message}khóa-bí-mật

Bá Kiến -> Phèo: sửa đổi[{some message}khóa-bí-mật]

Bá Kiến sẽ chuyển tiếp dữ liệu giữa Phèo và Nở cho đến khi họ trao đổi khóa bí mật Tại thời điểm này Phèo nghĩ rằng mình đang nói chuyện với Nở nên tin tưởng hoàn toàn vào các message do Phèo gởi tới Thực chất không phải

là như vậy Bá Kiến mặc dù không biết khóa bí mật nhưng hoàn toàn có thể thêm hoặc sửa đổi gì đó trên các dữ liệu được gởi từ Nở đến Phèo

*) Mã xác thực thông điệp (MAC)

Để ngăn chặn cuộc tấn công man-in-the-middle trên, Phèo và Nở có thể dùng thêm mã xác thực thông điệp (Message Authentication code) thường đượcgọi tắt là MAC Thuật toán tạo MAC khá đơn giản:

Code:

MAC = Digest[some message, khóa bí mật]

Trang 14

Bá Kiến không biết khóa bí mật nên không tài nào tính đúng giá trị digest của message Thậm chí nếu Bá Kiến có cắt xén random các message thì tỉ lệ thành công là rất thấp vì dữ liệu digest vô cùng lớn Ví dụ, nếu dùng MD5, Phèo và Nở có thể gởi kèm MAC 128bit trong các message Bá Kiến cần trúng giá trị MAC nếu muốn tấn công man-in-the-middle với khả năng thành công là 1/18.446.744.073.709.551.616.

Đây là toàn bộ giao thức:

Phèo -> Nở: Xin chào!

Nở -> Phèo: Chào, Mình là Nở Đây là giấy chứng nhận của mình!

Phèo -> Nở: Hãy đưa bằng chứng đi!

Nở -> Phèo: Phèo, Mình là Nở đây!

{digest[Phèo, Mình là Nở đây!]}khóa-riêng-của-Nở

Phèo -> Nở: Ok Nở, đây là {khóa bí mật}khóa-chung-của-Nở

{some message, MAC}khóa-bí-mật

5 Tính bảo mật của SSL

Mức độ bảo mật của SSL phụ thuộc chính vào độ dài khoá hay phụ thuộcvào việc sử dụng phiên bản mã hoá 40bit và 128bit Phương pháp mã hoá 40bitđược sử dụng rộng rãi không hạn chế ngoài nước Mỹ, phiên bản mã hoá 128bit chỉđược sử dụng trong nước Mỹ và Canada Theo luật pháp Mỹ, các mật mã “mạnh”được phân loại vào nhóm “vũ khí” (weapon) và do đó khi sử dụng ngoài Mỹ (coinhư là xuất khẩu vũ khí) phải được phép của chính phủ Mỹ hay phải được cấp giấyphép của Bộ Quốc phòng Mỹ (DoD)

Đây là lợi điểm cho quá trình thực hiện các dịch vụ thương mại và thanhtoán điện tử trong Mỹ và các nước đồng minh phương Tây, là điểm bất lợi cho việc

sử dụng các sản phẩm cần có cơ chế bảo mật và an toàn trong giao dịch điện tử nói

Ngày đăng: 21/10/2014, 16:37

HÌNH ẢNH LIÊN QUAN

Hình 2. Vị trí giao thức Bản ghi trong giao thức SSL - Tiểu luận môn Mã hóa an toàn dữ liệu Trình bày công nghệ SSL
Hình 2. Vị trí giao thức Bản ghi trong giao thức SSL (Trang 5)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w