TRÌNH BÀY VỀ VẤN ĐỀ XÁC THỰC (NHẬN DẠNG)

13 481 1
TRÌNH BÀY VỀ VẤN ĐỀ XÁC THỰC (NHẬN DẠNG)

Đ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

MỤC LỤC I. Vấn đề xác thực 2 II. Phân loại xác thực 2 II.1. Xác thực thực thể 2 II.1.1. Những gì người dùng biết (Something Known) 3 II.1.2. Những gì người dùng có (Something Prossessed) 4 II.1.3. Những gì người dùng sở hữu bẩm sinh (Something Inherent) 5 II.2. Xác thực dữ liệu 5 II.2.1. Xác thực thông điệp 5 II.2.2. Xác thực giao dịch 6 II.2.3. Xác thực khóa 6 II.2.4. Xác thực nguồn gốc dữ liệu 6 II.2.5. Xác thực bảo đảm toàn vẹn dữ liệu 6 III. Chương trình demo : Chữ ký Elgamal 7 VẤN ĐỀ XÁC THỰC (NHẬN DẠNG) I. Vấn đề xác thực Xác thực (Authentication Protocols) là một hành động thiết lập hoặc chứng thực một cái gì đó (hoặc một người nào đó) đáng tin cậy, có nghĩa là, những lời khai báo do người đó đưa ra hoặc về vật đó là đúng sự thật. Xác thực một đối tượng còn có nghĩa là công nhận nguồn gốc của đối tượng, trong khi xác thực một người thường bao gồm việc thẩm tra nhận dạng của họ. Việc xác thực thường phụ thuộc vào một hoặc nhiều nhân tố xác thực để chứng minh cụ thể. Trong an ninh máy tính, xác thực là một quy trình nhằm cố gắng xác minh nhận dạng số của phần truyền gửi thông tin trong giao thông liên lạc, chẳng hạn như một yêu cầu đăng nhập. Phần gửi cần phải xác thực có thể là một người dùng sử dụng một máy tính, bản thân một máy tính hoặc một chương trình ứng dụng máy tính. Nói cách khác, xác thực thông tin là một quá trình nhằm đảm bảo một người đang có ý định truy cập tới tài nguyên là đáng tin cậy. Xác thực là một khâu đặc biệt quan trọng trong việc đảm bảo an toàn cho hoạt động của hệ thống thông tin. Hệ thống luôn xác thực một thực thể trước tiên khi nó cố thử thiết lập liên lạc. Khi đó nét nhận dạng của thực thể được dùng để xác định sự truy nhập của nó như một đặc quyền hoặc để có được sự sẵn sàng phục vụ. II. Phân loại xác thực Xác thực được chia làm hai loại chính: xác thực thực thể và xác thực dữ liệu.

ĐỀ TÀI: TRÌNH BÀY VỀ VẤN ĐỀ XÁC THỰC (NHẬN DẠNG MỤC LỤC I. Vấn đề xác thực 2 II. Phân loại xác thực 2 II.1. Xác thực thực thể 2 II.1.1. Những gì người dùng biết 3 II.2. Xác thực dữ liệu 5 II.2.1. Xác thực thông điệp 5 II.2.2. Xác thực giao dịch 5 II.2.3. Xác thực khóa 6 II.2.4. Xác thực nguồn gốc dữ liệu 6 II.2.5. Xác thực bảo đảm toàn vẹn dữ liệu 6 VẤN ĐỀ XÁC THỰC (NHẬN DẠNG) I. Vấn đề xác thực Xác thực (Authentication Protocols) là một hành động thiết lập hoặc chứng thực một cái gì đó (hoặc một người nào đó) đáng tin cậy, có nghĩa là, những lời khai báo do người đó đưa ra hoặc về vật đó là đúng sự thật. Xác thực một đối tượng còn có nghĩa là công nhận nguồn gốc của đối tượng, trong khi xác thực một người thường bao gồm việc thẩm tra nhận dạng của họ. Việc xác thực thường phụ thuộc vào một hoặc nhiều nhân tố xác thực để chứng minh cụ thể. Trong an ninh máy tính, xác thực là một quy trình nhằm cố gắng xác minh nhận dạng số của phần truyền gửi thông tin trong giao thông liên lạc, chẳng hạn như một yêu cầu đăng nhập. Phần gửi cần phải xác thực có thể là một người dùng sử dụng một máy tính, bản thân một máy tính hoặc một chương trình ứng dụng máy tính. Nói cách khác, xác thực thông tin là một quá trình nhằm đảm bảo một người đang có ý định truy cập tới tài nguyên là đáng tin cậy. Xác thực là một khâu đặc biệt quan trọng trong việc đảm bảo an toàn cho hoạt động của hệ thống thông tin. Hệ thống luôn xác thực một thực thể trước tiên khi nó cố thử thiết lập liên lạc. Khi đó nét nhận dạng của thực thể được dùng để xác định sự truy nhập của nó như một đặc quyền hoặc để có được sự sẵn sàng phục vụ. II. Phân loại xác thực Xác thực được chia làm hai loại chính: xác thực thực thể và xác thực dữ liệu. II.1. Xác thực thực thể Xác thực thực thể (Entity Authentication) là xác thực định danh của đối tượng tham gia vào giao thức truyền tin. Thực thể có thể là người dùng, thiết bị đầu cuối. Một thực thể được xác thực bằng định danh của nó đối với thực thể thứ hai trong một giao thức, và bên thứ hai đã thực sự tham gia vào giao thức. Các nhân tố xác thực đối với thực thể là con người nói chung dựa vào 3 nhân tố sau: 2 - Những gì người dùng biết (Something Known) - Những gì người dùng có (Something Prossessed) - Những gì người dùng sở hữu bẩm sinh (Something Inherent) II.1.1. Những gì người dùng biết Chẳng hạn như mật khẩu, mật khẩu ngữ (pass phrase) hoặc số định danh cá nhân (PIN), … a. Xác thực dựa trên mật khẩu Xác thực dựa trên User name và Password là cách xác thực cơ bản nhất. Với phương thức này, khi người dùng đăng nhập vào hệ thống, hệ thống yêu cầu người dùng nhập các thông tin username và password để xác thực, các thông tin nhập vào được đối chiếu với dữ liệu lưu trữ trên cơ sở dữ liệu hệ thống, nếu trùng khớp username và password, thì người sử dụng (User) được xác thực còn nếu không thì người sử dụng bị từ chối hoặc cấm truy cập. Phương thức này có tính bảo mật không cao vì thông tin xác nhận người dùng được gửi đi xác thực trong tình trạng “plain text” (kí tự văn bản chuẩn), tức là không được mã hóa và có thể bị chặn trên đường truyền. Lộ password do đặt quá đơn giản (dạng „123456‟, „abc123‟ v.v.) hoặc dễ đoán (tên / ngày sinh của người thân ). Ngoài ra, con người chỉ nhớ được một số lượng bản ghi hữu hạn, họ phải nhớ mật khẩu của nhiều tài khoản khác nhau do đó họ chọn cách sử dụng lại mật khẩu cho nhiều tài khoản khác nhau. Vì vậy nên những kẻ tấn công dễ dàng truy cập tới tài khoản khác khi đã lấy được một tài khoản. b. Giao thức Chứng thực bắt tay thách thức - Challenge Handshake Authentication Protocol (CHAP) Giao thức Chứng thực “Bắt tay Thách thức” là mô hình xác thực dựa trên username/ password có cải tiến. Khi User cố gắng đăng nhập, server đảm nhiệm vai trò xác thực sẽ gửi một thông điệp thử thách (challenge message) trở lại máy tính user. Lúc này máy tính của User sẽ phản hồi lại username/ password được mã hóa. Server xác thực sẽ so sánh phiên bản xác thực User được lưu giữ với phiên bản mã hóa vừa nhận. Nếu trùng khớp, User sẽ được xác thực. Bản thân password không bao giờ được gửi qua mạng. 3 Phương thức CHAP thường được sử dụng khi người dùng đăng nhập vào các “remote servers” của công ty chẳng hạn như RAS server. Dữ liệu chứa password được mã hóa gọi là mật khẩu băm (hash password). Một gói băm là một loại mã hóa không có phương pháp giải mã. II.1.2. Những gì người dùng có Ví dụ như sở hữu khóa bí mật để ký điện tử, sở hữu thẻ từ (Magnetic- striped Card), thẻ tín dụng (Credit Card), thẻ thông minh (Smart Card), chứng minh thư (ID card), chứng chỉ an ninh (security token), chứng chỉ phần mềm (software token) hoặc điện thoại di động (cell phone), … a. Phương pháp xác thực Kerberos (Kerberos authentication) Xác thực Kerberos là phương pháp dùng một Server trung tâm để kiểm tra việc xác thực User và cấp phát thẻ thông hành (service tickets) để User có thể truy cập vào tài nguyên hệ thống. Kerberos là một phương thức xác thực rất an toàn nhờ việc dùng cấp độ mã hóa rất mạnh. Kerberos cũng dựa trên độ chính xác của thời gian xác thực giữa Server và Client computer, do đó cần đảm bảo kết nối đồng bộ thời gian giữa các thành phần của hệ thống. Kerberos là nền tảng xác thực chính của nhiều OS như Unix, Windows… b. Phương pháp Tokens Tokens là phương tiện vật lý như các thẻ thông minh (smart cards), thẻ đeo của nhân viên (ID badges) chứa thông tin xác thực. Tokens có thể lưu trữ mã số nhận dạng cá nhân (Personal Identification Numbers - PIN), thông tin về User, hoặc Password. Các thông tin trên token chỉ có thể được đọc và xử lý bởi các thiết bịđặc dụng. Tokens chứa chuỗi text hoặc giá trị số duy nhất thông thường mỗi giá trị này chỉ sử dụng một lần. Ví dụ: smart card, là một thẻ nhựa có gắn một chip máy tính lưu trữ các loại thông tin điện tử khác nhau, được đọc bởi đầu đọc thẻ smart card chuyên dụng gắn trên máy tính, sau đó thông tin này được gửi đến “authenticating server”. 4 II.1.3. Những gì người dùng sở hữu bẩm sinh Ví dụ, vết lăn tay hoặc mẫu hình võng mạc mắt, chuỗi, mẫu hình về giọng nói, sự xác minh chữ ký, tín hiệu sinh điện đặc hữu do cơ thể sống tạo sinh (unique bio-electric signals), hoặc những biệt danh sinh trắc (biometric identifier). a. Phương pháp nhận dạng sinh trắc học (Biometrics) Phương pháp nhận dạng sinh trắc học là mô hình xác thực có tính bảo mật cao dựa trên đặc điểm sinh học của từng cá nhân. Quét dấu vân tay (fingerprint scanner), quét võng mạc mắt (retinal scanner), nhận dạng giọng nói ( voice- recognition), nhận dạng khuôn mặt (face-recognition). Nhờ các tiến bộ vượt bậc của công nghệ sinh học phương thức xác thực dựa trên nhận dạng sinh trắc học ngày càng trở nên phổ biến và được chấp nhận rộng rãi. Chẳng hạn xác thực quét dấu vân tay hiện đã khá phổ biến trên các máy tính xách tay và điện thoại di động. Tuy nhiên phương pháp này có chi phí triển khai rất tốn kém nên chưa được sử dụng rộng rãi như các phương pháp xác thực khác. Trên thực tế có những bằng chứng chỉ ra rằng những phương pháp này có khả năng bị giả mạo. Thông tin cá nhân (đặc trưng riêng), người khác không có được, nhưng với người chuyên nghiệp, thì các thông tin này có thể lấy được và lưu trữ trước, sau đó làm giả mà hệ thông khó phát hiện được. II.2. Xác thực dữ liệu II.2.1. Xác thực thông điệp Xác thực thông điệp (Message Authentication) hay Xác thực tính nguyên bản của dữ liệu (Data Origin Authentication) là một kiểu xác thực đảm bảo một thực thể được chứng thực là nguồn gốc thực sự tạo ra dữ liệu này ở một thời điểm nào đó. Xác thực thông điệp bao hàm cả tính toàn vẹn dữ liệu, nhưng không đảm bảo tính duy nhất và sự phù hợp về thời gian của nó. II.2.2. Xác thực giao dịch Xác thực giao dịch là xác thực thông điệp cộng thêm việc đảm bảo tính duy nhất (Uniqueness) và sự phù hợp về thời gian (Timeliness) của nó. Xác thực 5 giao dịch liên quan đến việc sử dụng các tham số thời gian (TVB-Time Variant Parameters). Transaction Authentication = Message Authentication + TVB Xác thực giao dịch “mạnh hơn” Xác thực thông điệp. II.2.3. Xác thực khóa + Xác thực không tường minh khóa (Implicit Key Authentication): Một bên được đảm bảo rằng chỉ có bên thứ hai (và có thể có thêm các bên tin cậy- Trusted Parties) là có thể truy cập được khóa mật. + Khẳng định (Xác nhận) khóa (Key Confirmation): Một bên được đảm bảo rằng bên thứ hai chắc chắn đã sở hữu khóa mật. + Xác thực tường minh khóa (Explicit Key Authentication) Bao gồm cả 2 yếu tố trên, nó chứng tỏ được định danh của bên có khóa đã cho. Xác thực khóa tập trung vào định danh bên thứ hai có thể truy cập khóa hơn là giá trị của khóa. Khẳng định khóa lại tập trung vào giá trị của khóa. Ta gọi ngắn gọn Explicit Key Authentication là Key Authentication. Chú ý: Xác thực dữ liệu đã bao gồm tính toán vẹn dữ liệu. Ngược lại thì không. + Đảm bảo xác thực nguồn gốc dữ liệu phải đảm bảo tính toàn vẹn dữ liệu. + Đảm bảo tính toàn vẹn dữ liệu không đảm bảo xác thực nguồn gốc dữ liệu. II.2.4. Xác thực nguồn gốc dữ liệu Công cụ: Dùng chữ ký số, hàm băm, thủy vân ký. II.2.5. Xác thực bảo đảm toàn vẹn dữ liệu Công cụ: Dùng chữ ký số, hàm băm, thủy vân ký, mã xác thực. 6 III. Chương trình demo: Chữ ký Elgamal Sơ đồ chữ ký Elgamal 1. Tạo cặp khóa (bí mật, công khai): Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Z p là “khó” giải. Chọn phần tử nguyên thủy g thuộc Z p * , đặt P = Z p , A = Z p * x Z p-1 Chọn khóa bí mật a thuộc Z p * , tính khóa công khai: h = g a mod p  Tập khóa K = {p,g,a,h} Công khai: p,g,h Bí mật a 2. Ký số: Dùng 2 khóa ký: Khóa a và khóa ngẫu nhiên bí mật r thuộc Z p-1 * Chữ ký trên x là s = Sigk(x,r) = (y,gama) Trong đó: y = g r mod p gama = (x-a*y)*r -1 mod (p-1) 3. Kiểm tra chữ ký: Ver(x,y,gama) = đúng <=> h y * y gama = g x mod p Chú ý: nếu chữ ký được tính đúng kiểm thử sẽ thành công vì: h y * y gama = g a*y * g r*gama mod p = g (a*y + r*gama) mod p = g x mod p Do: gama = (x - a*y) *r -1 mod (p-1) Nên: (a*y + r*gama) = x mod (p-1) 7 Lập Trình (CODE) // CODE CHÍNH //Tọa cặp khóa, ký và kiểm tra chữ ký //Tạo cặp khóa: private void button1_Click(object sender, EventArgs e) { if (txt_p.Text == "" || txt_g.Text == "" || txt_a.Text == "") MessageBox.Show("Bạn chưa nhập đủ 3 tham số p, g, a"); else { if((Int32.Parse(txt_a.Text)>Int32.Parse(txt_p.Text))|| (Int32.Parse(txt_g.Text)>Int32.Parse(txt_p.Text))) { MessageBox.Show("g và a không được lớn hơn p"); return; } // Kiem tra tinh nguyen to cua p; if (HamThaoTac.KiemTraNguyenTo(Int64.Parse(txt_p.Text)) == 0) { MessageBox.Show("p không phải số nguyên tố"); return; } // Kiem tra tinh nguyen to cung nhau cua g va a voi p if(HamThaoTac.UCLN(Int64.Parse(txt_g.Text),Int64.Parse(txt_p.Text))! =1) { MessageBox.Show("g không phải số nguyên tố cùng nhau với p"); return; } if (HamThaoTac.UCLN(Int64.Parse(txt_a.Text), Int64.Parse(txt_p.Text)) != 1) { MessageBox.Show("a không phải số nguyên tố cùng nhau với p"); return; } // Tinh khoa cong khai h BienToanCuc.h = HamThaoTac.soMuTheoMod1(Int64.Parse(txt_g.Text), Int64.Parse(txt_a.Text), Int64.Parse(txt_p.Text)); BienToanCuc.g = Int64.Parse(txt_g.Text); BienToanCuc.a = Int64.Parse(txt_a.Text); BienToanCuc.p = Int64.Parse(txt_p.Text); txt_h.Text = BienToanCuc.h.ToString(); } } 8 //ký số: Int64 vanban; //kiểm tra đã nhâp a và n chưa? if (txt_khoabimat.Text == "" || txt_r.Text == "") { MessageBox.Show("Bạn phải nhập đầy đủ khóa bí mật a và số bí mật r"); return; } //Kiểm tra r có nguyên tố cùng nhau với p-1 k? if (HamThaoTac.UCLN(Int64.Parse(txt_r.Text), (BienToanCuc.p - 1)) != 1) { MessageBox.Show("r không phải số nguyên tố cùng nhau với p - 1"); return; } BienToanCuc.r = Int64.Parse(txt_r.Text); // tính phần tử nghịch đảo của r Int64 nghichdao_r = HamThaoTac.PhanTuNghichDao(Int64.Parse(txt_r.Text), (BienToanCuc.p - 1)); // Tạo chữ ký try { FileStream FileVanBanStream = new FileStream(txt_fileCanKy1.Text, FileMode.Open, FileAccess.Read); FileStream FileChuKyStream = new FileStream(txt_FileChuKy1.Text, FileMode.Create, FileAccess.ReadWrite); FileStream FileHashStream = new FileStream(textBox1.Text, FileMode.Create, FileAccess.ReadWrite); //BinaryReader reader = new BinaryReader(FileVanBanStream, Encoding.Unicode); StreamWriter writer = new StreamWriter(FileChuKyStream, Encoding.Unicode); StreamWriter writer2 = new StreamWriter(FileHashStream, Encoding.Unicode); MD5 md = new MD5CryptoServiceProvider(); byte[] result = md.ComputeHash(FileVanBanStream); writer2.WriteLine(BitConverter.ToString(result)); //long lenght = FileVanBanStream.Length; int lenght = result.Length; Int64 i; string tmp_y,tmp_gama; Int64 y, gama; for (i = 0; i < lenght; i++) { vanban = result[i]; y = HamThaoTac.soMuTheoMod1(BienToanCuc.g, BienToanCuc.r, BienToanCuc.p); Int64 b1 = vanban % (BienToanCuc.p -1); 9 Int64 b2 = ((Int64.Parse(txt_khoabimat.Text) %(BienToanCuc.p -1))*(y% (BienToanCuc.p-1)))%(BienToanCuc.p-1); gama = (((b1 - b2)%(BienToanCuc.p-1))*(nghichdao_r% (BienToanCuc.p-1)))%(BienToanCuc.p - 1); if (gama < 0) gama = gama + (BienToanCuc.p-1); tmp_y = HamThaoTac.toBinary(y); tmp_gama = HamThaoTac.toBinary(gama); writer.WriteLine(HamThaoTac.Chuanhoachuoi(tmp_y) + HamThaoTac.Chuanhoachuoi(tmp_gama)); writer.Flush(); } MessageBox.Show("Đã ký xong!"); FileChuKyStream.Close(); FileVanBanStream.Close(); //reader.Close(); //writer.Close(); } catch(Exception ex) { MessageBox.Show("lỗi đọc file"); } } 10 [...]... return; } else { MessageBox.Show( "Xác thực đúng chữ ký!"); fileChuKyStream.Close(); fileVanBanStream.Close(); reader1.Close(); //reader2.Close(); } } catch (Exception ex) { MessageBox.Show("Lỗi đọc file"); } } } 12 Tài liệu tham khảo: [1] Giáo trình an toàn dữ liệu, PGS-TS Trịnh Nhật Tiến, Đại học Công nghệ - ĐH QGHN [2] Luận văn Nghiên cứu một số phương pháp xác thực thông điệp, URL: http://luanvan.net.vn/luan-van/luan-van-nghien-cuu-mot-so-phuong-phap-xacthuc-thong-diep-46039/ . PGS-TS. Trịnh Nhật Tiến, Đại học Công nghệ - ĐH QGHN. [2] Luận văn Nghiên cứu một số phương pháp xác thực thông điệp, URL: http://luanvan.net.vn/luan-van/luan-van-nghien-cuu-mot-so-phuong-phap -xac- thuc- thong-diep-46039/ 13 . (BienToanCuc.p -1 ); 9 Int64 b2 = ((Int64.Parse(txt_khoabimat.Text) %(BienToanCuc.p -1 ))*(y% (BienToanCuc.p-1)))%(BienToanCuc.p-1); gama = (((b1 - b2)%(BienToanCuc.p-1))*(nghichdao_r% (BienToanCuc.p-1)))%(BienToanCuc.p. thông điệp, URL: http://luanvan.net.vn/luan-van/luan-van-nghien-cuu-mot-so-phuong-phap -xac- thuc- thong-diep-46039/ 13

Ngày đăng: 21/08/2014, 15:37

Từ khóa liên quan

Mục lục

  • I. Vấn đề xác thực

  • II. Phân loại xác thực

  • II.1. Xác thực thực thể

    • II.1.1. Những gì người dùng biết

    • II.2. Xác thực dữ liệu

      • II.2.1. Xác thực thông điệp

      • II.2.2. Xác thực giao dịch

      • II.2.3. Xác thực khóa

      • II.2.4. Xác thực nguồn gốc dữ liệu

      • II.2.5. Xác thực bảo đảm toàn vẹn dữ liệu

Tài liệu cùng người dùng

Tài liệu liên quan