ỨNG DỤNG MÃ HÓA MẬT KHẨU

Một phần của tài liệu Xây dựng hệ thống e office phục vụ quản lý theo tiêu chuẩn iso (Trang 44 - 49)

2.5.1. Giải pháp

Phần này, tôi ứng dụng hàm băm MD5 để biến mật khẩu người dùng thành một chuỗi có độ dài 128 bit (gồm 32 ký tự hecxa). Và từ chuỗi này không thể nào lần trở lại mật khẩu. Có nghĩa là việc giải mã là không thể hoặc phải mất một khoảng thời gian vô tận.

Giải pháp này nhằm mã hóa để đảm bảo an toàn cho mật khẩu của người dùng sử dụng hệ thống. Tức là, khi có ai đó xâm nhập vào cơ sở dữ liệu của hệ thống thì

Chọn 2 số nguyên tố p và q

M

Khoá công khai KU = {e,n} Khoá bí mật KR = {d,n} Tính n = pq Tính Φ(n) = (p-1)(q-1) Chọn e < n C = Me mod n M = Cd mod n Tính d = e-1 mod Φ(n) M

- 26 -

cũng không thể nào biết được mật khẩu người dùng vì chuỗi mật khẩu đó đã được biến đổi thành một chuỗi khác.

2.5.2. Vận dụng vào hệ thống

Khi tạo mật khẩu người sử dụng, chuỗi mật khẩu đó được mã hóa bằng hàm MD5 (có sẵn trong VS 2008) để tạo thành chuỗi gồm dãy các byte. Sau đó, chuyển các byte trên thành các ký tự hecxa; các ký tự này chính là mật khẩu đã được mã hóa bằng MD5 và lưu vào cơ sở dữ liệu.

Khi đăng nhập vào hệ thống, người sử dụng gõ mật khẩu của mình. Hệ thống sẽ kiểm tra mật khẩu người dùng đó bằng cách dùng MD5 mã hóa mật khẩu đó thành chuỗi ký tự hecxa và so sánh với chuỗi ký tự hecxa trong cơ sở dữ liệu của người dùng đó. Nếu trùng khớp thì được đăng nhập vào hệ thống, nếu sai thì không đúng mật khẩu và phải đăng nhập lại.

Sau đây là đoạn mã chương trình thể hiện quá trình mã hóa chuỗi đầu vào dùng hàm MD5:

2.6. ỨNG DỤNG CHỮ KÝ ĐIỆN TỬ

public string Mahoa(string text) {

// chuyển chuỗi đầu vào thành dãy các byte

System.Text.UTF8Encoding ue = new System.Text.UTF8Encoding(); byte[] bytes = ue.GetBytes(text);

// mã hóa ra thành dãy các byte

System.Security.Cryptography.MD5CryptoServiceProvider md5 =

new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] hashBytes = md5.ComputeHash(bytes);

// chuyển dãy các byte thành các ký tự hecxa (hệ 16)

string hashString = "";

for (int i = 0; i < hashBytes.Length; i++) {

hashString += Convert.ToString(hashBytes[i], 16).PadLeft(2, '0');

}

return hashString.PadLeft(32, '0'); }

- 27 -

2.6.1. Giải pháp

Phần này tôi đề xuất giải pháp ứng dụng chữ ký điện tử trong hệ thống thể hiện qua quá trình gửi và nhận file dựa vào thuật toán băm MD5 và thuật toán mã hóa RSA.

43. Quá trình ký và gửi file văn bản

- Từ file cần gửi ban đầu, chương trình sẽ sử dụng hàm băm MD5 để mã hóa thành chuỗi ký tự dài 128 bit, hash value (gọi là bản tóm lược).

- Chương trình sử dụng thuật toán RSA để mã hóa khóa riêng (private key) của người gửi và bản tóm lược hash value thành một dạng khác (giá trị băm ở dạng mật mã) gọi là chữ ký điện tử.

- Kết hợp file ban đầu với chữ ký điện tử thành một thông điệp đã ký và gửi đi cho người nhận.

Hình 1.1. Sơ đồ mô tả quá trình ký và gửi file văn bản

44. Quá trình nhận file văn bản

File ban đầu

Bản tóm lược (M) Hàm băm MD5

Khóa bí mật

của người gửi

Mã hóa RSA Kết hợp file và CKĐT Thông điệp đã ký Chữ ký điện tử S = Md mod n   Gửi đi  KR(d,n)

- 28 -

Sau khi người nhận đăng nhập vào hệ thống và nhận file. Hệ thống sẽ tách thông điệp đã ký thành ra file và chữ ký điện tử. Lúc này sẽ có 2 quá trình kiểm tra:

45. Kiểm tra thông điệp đến có đúng người gửi hay không?

- Sử dụng thuật toán RSA để giải mã chữ ký điện tử bằng khóa công khai của người gửi.

- Nếu giải mã không được thì file nhận được không đúng người gửi. - Ngươc lại thì file nhận được đúng người gửi và có được Bản tóm lược 1.

46. Kiểm tra file có bị thay đổi hay không?

- Từ file được tách ra, sử dụng hàm băm MD5 mã hóa thành Bản tóm lược 2. - Kiểm tra Bản tóm lược 1 và Bản tóm lược 2 có giống nhau hay không? Nếu giống nhau thì file nhận được là vẹn toàn (không bị thay đổi hay tác động), ngược lại là file đã bị thay đổi.

Hình 1.2. Sơ đồ mô tả quá trình nhận file văn bản

2.6.2. Vận dụng vào hệ thống

Tách file và CKĐT Thông điệp nhận

Hàm băm MD5

Bản tóm lược 2 (M) File ban đầu

Giải mã được? Khóa công khai

của người gửi Giải mã RSA

Không đúng người gửi Chữ ký điện tử

 

Bản tóm lược 1

M = Se mod n Giống nhau? Đúng người gửi Không Không File là toàn vẹn

File bị thay đổi

- 29 -

Để vận dụng giải pháp này trong quá trình gửi và nhận file của hệ thống, tôi giới thiệu tổng quan một số bước để xây dựng các hàm và thuật toán chính như sau:

- Để xử lý kích thước khóa có độ đài đủ lớn và trong thuật toán RSA có cả hàm mũ... nên cần xây dựng các hàm xử lý số lớn với các phép toán cơ bản: cộng, trừ, nhân, chia, modulo…

- Xây dựng thuật toán phát sinh số nguyên tố, thuật toán chọn e, chọn d - Sử dụng khóa riêng (n, d) để tính toán chữ ký S = Md mod n

- Sử dụng khóa công khai của người gửi (n, e) để tính toán lại M = Se mod n - Xây dựng các hàm gửi và nhận file...

2.7. ĐÁNH GIÁ KẾT QUẢ

Việc ứng dụng vấn đề mã hóa trên vào hệ thống phục vụ quản lý tại khoa Công nghệ Thông tin, trường Đại học Bách khoa, đại học Đà Nẵng có thể đáp ứng được các yêu cầu sau:

-Tính bảo mật: Hệ thống có thể kiểm tra dữ liệu đăng nhập bằng thuật toán mã hóa MD5 đảm bảo độ tin cậy tuyệt đối. Mật khẩu được mã hóa và lưu vào cơ sở dữ liệu nên không thể biết được mật khẩu của các thành viên sử dụng hệ thống.

-Tính toàn vẹn: Hệ thống luôn đảm bảo được tính toàn vẹn của file truyền đi trên đường truyền; vì khi nhận, file được giải mã bằng thuật toán MD5 để so sánh sự trùng khớp với giá trị băm ban đầu.

-Tính xác thực: Trước khi nhận file hệ thống sử dụng thuật toán RSA để giải mã với khóa công khai của người gửi nhằm xác định đúng người gửi hay không.

-Tốc độ: Do sử dụng các thuật toán mã hóa để kiểm tra dữ liệu nên tốc độ của hệ thống có phần hạn chế hơn, nhưng vì hệ thống có thể cài đặt trong mạng LAN, phạm vi đường truyền gần nên điều này không ảnh hưởng nhiều về mặt tốc độ.

- 30 -

Trong chương này tôi vận dụng các kiến thức liên quan để khảo sát hiện trạng; phân tích và nhận định về hệ thống; phân tích thiết kế hệ thống thông tin để làm nền tảng, cơ sở xây dựng hệ thống eOffice.

Một phần của tài liệu Xây dựng hệ thống e office phục vụ quản lý theo tiêu chuẩn iso (Trang 44 - 49)

Tải bản đầy đủ (DOC)

(106 trang)
w