Tải bản đầy đủ (.ppt) (43 trang)

Đồ án an toàn mạng và bảo mật mạng mã hóa an toàn thông tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (574.26 KB, 43 trang )

An Toàn Thông Tin
Khoa MMT & TT
Đại học CNTT
06520027 Hồ Thanh Bình
06520031 Võ Khải Hoàng Ca
06520061 Nguyễn Quốc Cường
06520062 Trần Huy Cường
06520069 Đỗ Quang Đạt
06520090 Nguyễn Xuân Đức
06520118 Hoàng Trường Giang
06520212 Cao Văn Huỳnh
06520422 Đinh Xuân Thắng
06520434 Bùi Trung Thành
06520546 Huỳnh Thanh Tùng
06520569 Võ Quốc Việt
06520576 Nguyễn Văn Vỉnh
06520370 Phan Duy Quốc
Mục lục


Tổng quan về mã hoá

Kĩ thuật mã hoá chung

Ứng dụng thực tiễn

Các công cụ mã hoá
Tổng quan về mã hoá

Mã hoá là gì: Mã hoá là một tiến trình biến đổi thông
tin, sử dụng các thuật toán nhằm mục đích không


cho người khác có thể nắm bắt được nếu thiếu một
vốn thông số nhất định (key) để dịch ngược.

Đi kèm với mã hoá là giải mã.

Có rất nhiều loại thuật toán mã hoá cho dữ liệu máy
tính, chúng được gọi tên theo thuật toán và có thể so
sánh trực tiếp với nhau, ví dụ mã hoá 128-bit, Triple-
DES, 2048-bit RSA.

Trong cùng một loại, dĩ nhiên một phép mã hoá
2048-bit RSA sẽ mạnh mẽ hơn phép mã hoá 1024-bit
RSA.
Tổng quan về mã hoá

Nhưng như vậy không có nghĩa là một phép mã hoá với
độ dài dãy bit lớn được xem là an toàn.

Điều đó cho thấy một thuật toán mã hoá cực mạnh sẽ chỉ
hữu ít nếu được sử dụng ở đúng những nơi cần thiết,
không phải lúc nào cũng là tối ưu.

Với sự phát triển mạnh mẽ của mình, hầu hết các kênh
thông tin đều lấy Internet làm nền tảng để phát triển.
Điều tất yếu sẽ nảy sinh là vấn đề An toàn thông tin, một
ngày nào đó, bạn bỗng nhận ra rằng, thông tin của bạn
đang bị theo dõi.

Để vừa đảm bảo thông tin luôn kết nối, vừa đảm bảo yếu
tố bảo mật của thông tin thì phương pháp tốt nhất là mã

hoá thông tin.
Tổng quan về mã hoá

Mật mã hóa được sử dụng phổ biến để đảm bảo an toàn cho
thông tin liên lạc. Các thuộc tính được yêu cầu là:

Bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội
dung của thông tin chứa đựng trong dạng đã mật mã hóa của
nó. Nói khác đi, nó không thể cho phép thu lượm được bất kỳ
thông tin đáng kể nào về nội dung của thông điệp.

Nguyên vẹn: Người nhận cần có khả năng xác định được thông
tin có bị thay đổi trong quá trình truyền thông hay không.

Xác thực: Người nhận cần có khả năng xác định người gửi và
kiểm tra xem người gửi đó có thực sự gửi thông tin đi hay
không.
Kĩ thuật mã hoá chung

Các kĩ thuật mã hoá đều sử dụng các khoá (key) làm tác
nhân thực hiện việc khoá mã, thông thường khoá được thể
hiện bằng độ dài của khoá tính theo bit, số bits càng lớn
thì tính bảo mật của phép mã hoá càng cao, có thể hiểu
nôm na một khoá là một mật khẩu. Thông thường, để an
toàn thì các khoá thường có độ dài 128bits, nghĩa là
phương pháp tấn công vét cạn sẽ phải dò 2
128
trường
hợp.
Kĩ thuật mã hoá chung


Có 3 kĩ thuật mã hoá chính:
1. Mã hoá đối xứng (Symmetric-key algorithms) - AES,
IDEA, DES
2.Mã hoá bất đối xứng (Asymmetric cryptography -
Public key cryptography) - RSA
3. Mã hoá một chiều (hàm băm):
Kĩ thuật mã hoá chung
I. Mã hoá đối xứng (Symmetric-key algorithms) - AES, IDEA,
DES

Là các thuật toán mã hoá và giải mã trong đó các khoá
(key) dùng cho việc mã hoá và giải mã có quan hệ ràng
buộc với nhau (về mặt toán học) hoặc là như nhau.

Hạn chế của mã hoá đối xứng là khi trao đổi, khoá mã
phải được 2 bên nắm giữ, do vậy việc bảo vệ an toàn
cho khoá mã là một việc hết sức khó khăn. Do tính chất
này, để tránh rườm ra, người ta phân phối mã khoá này
bằng phương pháp mã hoá bất đối xứng khi có một
phiên giao dịch, lúc đó ít nhiều sẽ dễ dàng quản lý mã
khoá hơn thông thường.
Mã hoá đối xứng

Để đảm bảo việc thông tin liên lạc được an toàn trong
một nhóm n người thì bắt buộc số lượng chìa khoá phải
là n(n-1)/2. Do tính chất này, để tránh rườm ra, người ta
phân phối mã khoá này bằng phương pháp mã hoá bất đối
xứng khi có một phiên giao dịch, lúc đó ít nhiều sẽ dễ
dàng quản lý mã khoá hơn thông thường.


Ví dụ:
Ngày xưa, khi chưa có máy tính, người ta đã vận dụng
phương pháp mã hoá đối xứng bằng một miếng bìa có
đục lỗ theo ý của người viết mã (đóng vai trò là key), áp
miếng bìa lên một mặt giấy, các kí tự từ văn bản gốc sẽ lần
lượt được ghi lên giấy qua các lỗ hổng,
Mã hoá đối xứng
sau khi hoàn tất, các khoảng trống trên mặt giấy sẽ
được điền các kí tự ngẫu nhiên. Có thể nhận xét
ngay, việc giải mã thông tin đó hầu như là không thể
nếu không có miếng bìa (key) để tra ngược lại.

Ngày nay người ta sử dụng nhiều thuật toán thao tác
trên bit (xor, shift) để biến đổi thông tin cần được mã
hoá, các phép toán này được thực hiện hàng chục
vòng lặp (các giai đoạn monkey around) khiến cho
việc dịch ngược là vô cùng khó khăn nếu không có
key.
Mã hoá bất đối xứng
II. Mã hoá bất đối xứng (Public key cryptography) - RSA
Mã hoá bất đối xứng là kĩ thuật mã hoá sử dụng một
cặp khoá dùng để mã hoá và giải mã thông tin. Khoá
được dùng để mã hoá gọi là khoá công khai (public
key), khoá dùng để giải mã thông tin là khoá riêng tư
(private key). Để trao đổi thông tin, một chỉ cần
public hoá mã khoá công khai của mình (Public key),
người khác dựa vào mã public đó để mã hoá thông
điệp cần được gửi.
Mã hoá bất đối xứng


Với cách thức này, khái niệm chữ kí điện tử ra đời,
khi một thông tin (chữ kí) đã được mã hoá bằng một
khoá công khai (public key), để thử xem đó có phải là
chữ kí của bạn hay không, bạn có thể mã hoá chúng
bằng khoá riêng tư, sau đó giải mã bằng khoá công
khai của chính bạn, nếu thông tin không bị sai lệch
thì đó chính là chữ kí của bạn.
Mã hoá một chiều
III. Mã hoá một chiều (hàm băm):
Tên gọi của nó đã gợi lên ý niệm là chuỗi mã hoá
không thể bị dịch ngược lại. Người ta đã chứng minh
được rằng, mỗi chuỗi đã mã hoá chỉ có thể là ánh xạ
của duy nhất một chuỗi chưa mã hoá nhập vào ; có
nghĩa là một mật khẩu chỉ có thể được mã hoá ra một
chuỗi duy nhất và ngược lại.
Các thuật toán mã hoá một chiều được dùng nhiều
trong quá trình xác thực, lưu mật khẩu, thông tin thẻ
tín dụng… Nền tảng của loại này có thể xếp vào cùng
loại với mã hoá đối xứng.
Mã hoá một chiều

Theo nhận xét được ghi trong chuẩn FIPS 180-2:
1) Cho một giá trị băm nhất định được tạo nên bởi một
trong những thuật giải SHA, việc tìm lại được đoạn dữ
liệu gốc là không khả thi.
2) Việc tìm được hai đoạn dữ liệu nhất định có cùng
kết quả băm tạo ra bởi một trong những thuật giải
SHA là không khả thi. Bất cứ thay đổi nào trên đoạn
dữ liệu gốc, dù nhỏ, cũng sẽ tạo nên một giá trị băm

hoàn toàn khác với xác suất rất cao.
Mã hoá một chiều

Trong giao dịch điện tử, chìa khoá chính là mật khẩu
mà người sử dụng đã chọn lựa sẽ được dùng để mã
hoá thông tin của khách hàng, còn mật khẩu sẽ được
mã hoá theo hàm băm một chiều, các hackers hay
thậm chí là admin của trang giao dịch dù có lấy được
dữ liệu lưu trên máy chủ cũng không thể nào dịch
ngược nếu không biết được mật khẩu (key) của user.
Mã hoá một chiều

Các thuật toán nổi tiếng được sử dụng nhiều nhất là MD-
5 (Message-Digest algorithm 5) và các thuật toán SHA
(SHA-1, SHA-2). Mọi ứng dụng từ các forum như IPB, VBB
cho đến Yahoo! đều ứng dụng trong việc mã hoá mật khẩu
của users.

MD5 chuyển đổi thông tin có chiều dài bất kì thành một chuỗi
có độ dài 128 bit không đổi với xác suất khác biệt cao, được
biểu diễn bằng 32 số mã hex.
- MD5("The quick brown fox jumps over the lazy dog")
= 9e107d9d372bb6826bd81d3542a419d6
- MD5("The quick brown fox jumps over the lazy eog")
= ffd93f16876049265fbaef4da268dd0e
- MD5("") = d41d8cd98f00b204e9800998ecf8427e
Mã hoá một chiều

MD5 rất khó để có thể giải mã ngược chiều. Hiện nay
cách đơn giản và hiệu quả nhất của việc giải mã MD5

là dựng các databases của các giá trị mã hoá MD5,
trước tiên hackers cung cấp các công cụ cho phép
người dùng xem mã MD5 của một chuỗi người dùng
nhập vào, kết quả sẽ được trả về đồng thời nó cũng
được lưu vào DB trong máy chủ, dần dần tạo nên một
khối DB khổng lồ.
Mã hoá một chiều

Ở thuật toán MD5 cải tiến, ngoài giá trị nhập vào của
người dùng (thường là password) máy tính sẽ tạo
thêm một mã ngẫu nhiên (random salt) được sinh và
lưu ở máy chủ để “trộn” 2 lần vào chuỗi nhập của
người dùng sau đó mới MD5 kết quả cuối cùng.
return md5( md5( $salt ) . $md5_once_password );
Ứng dụng thực tiễn
IV. Ứng dụng thực tiễn

Trong việc mã hoá truyền thông trên Internet, nổi bật
hiện nay là giao thức SSL (Secure Socket Layer), áp
dụng cả 3 kĩ thuật mã hoá trên.

SSL là giao thức đa mục đích được thiết kế để tạo ra các
giao tiếp giữa hai chương trình ứng dụng trên một cổng
định trước (socket 443) nhằm mã hoá toàn bộ thông tin
đi/đến, mà ngày nay được 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.
Ứng dụng thực tiễn

Chúng ta chỉ phân tích cơ chế để hiểu rõ thêm ứng

dụng của các kĩ thuật mã hoá vào giao thức này.

Đ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ỳ
SSL

Để dễ hiểu, phần này sẽ trình bày qua ví dụ cụ thể: Alice trao
đổi thông tin với Bob sử dụng khoá công khai.
Type_of_key{message} có nghĩa là message được mã hóa hoặc
giải mã bằng với loại thuật toán đang dùng (Type_of_key).
Alice cần chắc chắn là mình sẽ nói chuyện với Bob mà không
phải là một ai khác. Alice sẽ tiến hành xác thực (authenticate)
Bob. Bob có một cặp khóa gồm một khoá công khai (public
key) và một khóa riêng (private key). Bob cho Alice biết trước
khoá công khai (public key) của mình (sẽ nói sau bằng cách
nào). Alice sẽ tạo ra một thông điệp ngẫu nhiên (random
message) và gởi nó đến Bob:
SSL
A->B Random_message

Bob dùng khóa riêng (private key) của mình để mã hóa
thông điệp vừa nhận được và gởi trả lại cho Alice:
B->A private_Bob(Random_message)

Alice nhận được message từ Bob, dùng khoá công khai

(public key) của Bob để giải mã message này và sau đó so
sánh message vừa giải mã được với Random_message đã
gởi đi. Nếu giống nhau, Alice có thể tin chắc rằng mình
đang nói chuyện với Bob.
SSL

1. Digest
Thay vì phải mã hóa toàn bộ message nhận được từ Alice,
Bob có thể xây dựng một bản tóm tắt (digest) của message
bằng hàm băm một chiều (hash one-way), sau đó mã hóa
digest bằng khóa riêng (private key) của mình và gởi cho
Alice. Alice sẽ dùng khoá công khai (public key) của Bob
để giải mã digest do Bob gởi tới và tính digest của
message đã được gởi đi, sau đó so sánh hai digest này với
nhau. Nếu trùng nhau, có nghĩa Alice có thể tin chắc là
mình đang nói chuyện với Bob.
SSL

Digest thực chất là chỉ là một số nguyên (integer). Hai
thuật toán phổ biến được dùng để tạo digest là MD5 hash
128bit, SHA hash 160 bit. Ai đó có được digest của Bob
cũng không thể nào suy luận ra được message nguyên
bản(original) vì digest chỉ là giá trị hash một chiều. Hai
message khác nhau sẽ có digest khác nhau, khả năng trùng
nhau xấp xỉ là 0.
SSL

2. Chữ kí điện tử (digital signature)

×