Giới thiệu một số kỹ thuật để mã hóa dữ liệu Trong SQL Server 2000 bạn có thể tự tạo các hàm của riêng mình hoặc sử dụng các DLL ngoài để mã hoá dữ liệu.. Giới thiệu một số kỹ thuật để
Trang 1Seminar :
Phương pháp mã hóa bằng mật khẩu
nhằm bảo mật dữ liệu
Thành viên nhóm:
1 Đặng Thanh Qui 09520623
2 Trần Tấn Sang 09520628
3 Lê Thị Ánh Tuyết 10520641
Trang 2Nội dung chính
1 Tại sao cần mã hóa dữ liệu?
2 Giới thiệu một số kỹ thuật để mã hóa
dữ liệu
3 Kỹ thuật mã hóa bằng mật khẩu
4 Phương pháp giải mã
5 Hack dữ liệu đã mã hóa bởi mật khẩu
Trang 3Nội dung chính
1 Tại sao cần mã hóa dữ liệu?
2 Giới thiệu một số kỹ thuật để mã hóa
dữ liệu
3 Kỹ thuật mã hóa bằng mật khẩu
4 Phương pháp giải mã
5 Hack dữ liệu đã mã hóa bởi mật khẩu
Trang 41 Tại sao cần mã hóa dữ liệu trong SQL
Server?
Mã hoá là một phương pháp quan trọng nhằm bảo mật dữ liệu.
Thực tế cho thấy, sự cố về an ninh xảy ra với CSDL có thể ảnh hưởng nghiêm trọng đến danh tiếng của công ty và quan hệ với khách hàng.
Những dữ liệu nhạy cảm như số CMT, số thẻ tín dụng, mật khẩu… cần phải được bảo vệ trước vô vàn mối nguy hiểm tấn công hiện nay.
Trang 5Nội dung chính
1 Tại sao cần mã hóa dữ liệu?
2 Giới thiệu một số kỹ thuật để mã hóa
dữ liệu
3 Kỹ thuật mã hóa bằng mật khẩu
4 Phương pháp giải mã
5 Hack dữ liệu đã mã hóa bởi mật khẩu
Trang 62 Giới thiệu một số kỹ thuật để mã hóa
dữ liệu
Trong SQL Server 2000 bạn có thể tự tạo các hàm của riêng mình hoặc sử dụng các DLL ngoài để mã hoá dữ liệu.
Từ SQL Server 2005 trở lên, các hàm và phương thức này được mặc định cho phép sẵn.
Từ SQL Server 2005 trở lên cung cấp các kỹ thuật sau để
mã hoá dữ liệu
Trang 72 Giới thiệu một số kỹ thuật để mã hóa
dữ liệu
Mã hoá bằng mật khẩu
Mã hoá khoá đối xứng
Mã hoá khoá không đối xứng
Mã hoá chứng nhận
Trang 8Nội dung chính
1 Tại sao cần mã hóa dữ liệu?
2 Giới thiệu một số kỹ thuật để mã hóa
dữ liệu
3 Kỹ thuật mã hóa bằng mật khẩu
4 Phương pháp giải mã
5 Hack dữ liệu đã mã hóa bởi mật khẩu
Trang 93 Kỹ thuật mã hóa bằng mật khẩu
“Mã hoá bằng mật khẩu” là phương pháp mã
hoá dữ liệu cơ bản thông qua mật khẩu Dữ liệu
có thể được giải mã nếu nhập đúng mật khẩu
đã sử dụng khi mã hoá
Dùng hàm EncryptByPassPhrase để thực hiện
mã hóa
Ví dụ: select EncryptedData =
EncryptByPassPhrase(‘matkhau', '123456789' )
Trang 103 Kỹ thuật mã hóa bằng mật khẩu
Kết quả của Encryptbypassphrase sau mỗi lần thực
thi hàm là khác nhau
Ví dụ: select EncryptedData = EncryptByPassPhrase('MAK', '123456789' )
1 EncryptedData
0x01000000CBB7EE45B5C1460D6996B149CE16B76C7F7CD598DC56364D106B05D47B930093
(1 row(s) affected)
2 EncryptedData
0x010000005E884D30C8FF7E4723D4E70A03B0B07F877667BAF1DA9BE1E116434842D11B99
(1 row(s) affected)
3 EncryptedData
0x01000000C508FB0C4FC7734B47B414D2602A71A338417DD685229173684D319334A084CD
Tuy nhiên, khi bạn giải mã dữ liệu thì nó vẫn ra kết
quả như ban đầu trước khi mã hoá
Trang 11Nội dung chính
1 Tại sao cần mã hóa dữ liệu?
2 Giới thiệu một số kỹ thuật để mã hóa
dữ liệu
3 Kỹ thuật mã hóa bằng mật khẩu
4 Phương pháp giải mã
5 Hack dữ liệu đã mã hóa bởi mật khẩu
Trang 124 Phương pháp giải mã
Dữ liệu có thể được giải mã nếu nhập đúng mật
khẩu đã sử dụng khi mã hoá
Dùng hàm DecryptByPassPhrase để thực hiện
giải mã
Ví dụ: select convert(varchar(100),DecryptByPassPhrase(‘matk',
0x01000000CBB7EE45B5C1460D6996B149CE16B76C7F7CD598DC 56364D106B05D47B930093))
Trang 134 Phương pháp giải mã
SQL Server sẽ trả lại giá trị NULL nếu mật khẩu giải
mã bị sai
Ví dụ:
• select EncryptedData = EncryptByPassPhrase(‘matkhau1', '123456789' )
EncryptedData 0x01000000CBB7EE45B5C1460D6996B149CE16B76C7F7CD598DC56364D106B05D47B930093
• select convert(varchar(100),DecryptByPassPhrase(‘matkhau2',
0x01000000CBB7EE45B5C1460D6996B149CE16B76C7F7CD598DC56364D106B0 5D47B930093))
NULL
(1 row(s) affected)
Trang 14Mời xem Demo
Kỹ thuật mã hóa bằng mật khẩu
&
Phương pháp giải mã
Trang 15Nội dung chính
1 Tại sao cần mã hóa dữ liệu?
2 Giới thiệu một số kỹ thuật để mã hóa
dữ liệu
3 Kỹ thuật mã hóa bằng mật khẩu
4 Phương pháp giải mã
5 Hack dữ liệu đã mã hóa bởi mật khẩu
Trang 165 Hack dữ liệu đã mã hóa bởi mật khẩu
Như ta đã biết, mã hoá bằng mật khẩu là một
phương pháp mã hoá dữ liệu cơ bản chỉ sử dụng đến mật khẩu và có thể giải mã với cùng mật khẩu đó
Giờ hãy giả dụ chúng ta quên mất mật khẩu đã
đặt và cần phải khôi phục lại dữ liệu như ban đầu
Việc truy tìm lại mật khẩu và dữ liệu đã bị mã
hoá được thực hiện bằng một thủ tục
Trang 175 Hack dữ liệu đã mã hóa bởi mật khẩu
Thủ tục truy tìm
use master
go select getdate() as StartingTime
go declare @myencryptedtext varbinary(max) set @myencryptedtext=0x01000000F75D553409C74570F6DDBCADA5 3FD489DDD52D9277010050565ADF30F244F8CC
print @myencryptedtext exec hack_encryption @encryptedtext=@myencryptedtext
go select getdate() as EndingTime go
Về cơ bản, thủ tục này lặp lại tất cả khả năng hợp lý
có thể xảy ra của các ký tự ASCII có độ dài trên 6 ký
tự để tìm ra mật khẩu và sử dụng nó để giải mã dữ liệu
Trang 185 Hack dữ liệu đã mã hóa bởi mật khẩu
Một số lưu ý:
• Thủ thục và các hàm chỉ có thể hack đối với mật khẩu dài 6
ký tự.
• Thủ tục và hàm này có thể chiếm rất nhiều CPU để lấy lại
dữ liệu và tìm lại mật khẩu
• Tạo ra một thủ tục sẽ không giúp gì nhiều khi dữ liệu đã
được mã hoá nằm trong một bảng Vì vậy chúng ta phải thay đổi thủ thục này thành một hàm vô hướng (demo sẽ trình bày rõ)
Trang 19Mời xem Demo
Hack dữ liệu đã mã hóa bởi mật khẩu
Trang 20KẾT THÚC
Cảm ơn cô và các bạn đã lắng nghe!