Đồ án Giải pháp xác thực số

Sự ra đời của internet, sự phát triển nhanh chóng của công nghệ thông tin đã tạo ra một thay đổi lớn trong các lĩnh vực đời sống của con người. Internet ra đời, nhu cầu truyền thông tin trên mạng là một nhu cầu tất yếu. Và đặc biệt với sự ra đời của thương mại điện tử thì nhu cầu này càng rõ rệt và cấp thiết hơn. Vấn đề đặt ra là phải tạo một phương pháp truyền thông tin an toàn, tránh sự phá hoại, ăn cắp thông tin hay làm sai lệch thông tin. Cùng với nhu cầu này một loạt các giải pháp được ra đời. Mã hóa, chữ ký điện tử đảm bảo được tính xác thực, và an toàn của thông tin nhưng vẫn chưa đủ để xác thực khi người sử dụng các cặp khóa công khai và bí mật chối bỏ các thông tin về khóa mình đã sử dụng. Từ lý do đó mà người ta thấy cần phải có một bên thứ ba đứng ra xác nhận các thông tin về khóa dùng để mã hóa gắn liền với chủ thể sử dụng. Chứng chỉ số ra đời. Chứng chỉ số là một tệp tin điện tử do một cơ quan, tổ chức cấp trong đó lưu trữ các thông tin về chủ thể sử dụng và các thông tin về khóa. Đồ án đề cập đến chứng chỉ số và sử dụng chứng chỉ số để xác thực. Đồ án gồm 3 chương. •Chương I: Các khái niệm cơ bản Trong chương này sẽ đề cập đến một số khái niệm toán học, vấn đề mã hóa, chữ ký điện tử, xác thực, chứng thực điện tử. •Chương II: Chứng chỉ số Trong chương này sẽ trình bày chi tiết về chứng chỉ số. •Chương III: Xây dựng hệ thống quản lý chứng chỉ số Trong chương này sẽ giới thiệu việc xây dựng một chương trình hệ thống quản lý chứng chỉ số viết bằng ngôn ngữ PHP 5.

doc67 trang | Chia sẻ: nhungnt | Lượt xem: 2608 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Giải pháp xác thực số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC LỜI CẢM ƠN 4 MỞ ĐẦU 5 CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN 6 1.1 Các khái niệm toán học 6 1.1.1 Số nguyên tố và nguyên tố cùng nhau 6 1.1.2 Đồng dư thức 6 1.1.3 Không gian Zn và Zn* 7 1.1.4 Phần tử nghịch đảo 7 1.1.5 Hàm băm 8 1.1.5.1 Giới thiệu 8 1.1.5.2 Cấu trúc của hàm băm 9 1.1.5.3 Một số loại hàm băm 10 1.2 Vấn đề mã hóa 15 1.2.1 Khái niệm mã hoá 15 1.2.2 Hệ mã hoá khóa công khai 17 1.3 Vấn đề chữ ký điện tử 18 1.3.1 Giới thiệu 18 1.3.2 Định nghĩa 18 1.3.3 Sơ đồ chữ ký RSA 19 1.4 Xác thực 20 1.4.1 Khái niệm xác thực 20 1.4.2 Các dạng xác thực 20 1.4.2.1 Xác thực thực thể 20 1.4.2.2 Xác thực trách nhiệm văn bản gốc 21 1.4.3 Các phương pháp xác thực 21 1.4.4 Các giao thức xác thực 22 1.4.4.1 Giao thức thử thách và trả lời 22 1.4.4.2 Giao thức mật khẩu được chuyển đổi 22 1.4.4.3 Giao thức mật khẩu sử dụng một lần 22 1.4.4.4 Giao thức chứng chỉ số 23 1.5 Chứng thực điện tử 23 1.5.1 Chứng thực điện tử là gì? 23 1.5.2 Làm thế nào để có và sử dụng chứng thực điện tử? 23 1.6 Chứng thực chéo 24 CHƯƠNG II: CHỨNG CHỈ SỐ 25 2.1 Vài nét về chứng chỉ số 25 2.1.1 Chứng chỉ số là gì? 25 2.1.2 Chứng chỉ gốc là gì ? 26 2.1.3 Chứng chỉ số làm việc như thế nào ? 26 2.1.4 Tại sao cần một chứng chỉ số ? 26 2.1.5 Chứng chỉ số được áp dụng vào những công việc gì ? 27 2.1.6 Kiểm tra và tạo chữ ký điện tử như thế nào ? 28 2.2 Cơ sở hạ tầng khóa công khai Public Key Infrastructure – PKI 28 2.2.1 PKI là gì ? 28 2.2.2 PKI hoạt động như thế nào ? 30 2.2.3 Thành phần của PKI 31 2.2.4 Phân phối khóa công khai 32 2.3 Thời hạn tồn tại và việc thu hồi chứng chỉ 34 2.4 Nhà cấp chứng chỉ số (Certificate Authority - CA) 35 2.4.1 CA là gì ? 35 2.4.2 Mô hình CA 35 2.4.3 Chữ ký của CA trên chứng chỉ số 37 2.5 Khuôn dạng chứng chỉ X.509 37 2.5.1 Khuôn dạng chứng chỉ số X.509 v1, v2 38 2.5.2 Đặt tên trong X.509 v1, v2 39 2.5.3 Khuôn dạng chứng chỉ số X.509 v3 40 2.5.4 Đặt tên trong khuôn dạng chứng chỉ X.509 v3 42 2.6 Đăng ký đối tượng 43 2.7 Quy trình xin cấp một chứng chỉ số 44 CHƯƠNG III: XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ 46 3.1 Chức năng của chương trình 46 3.2 Mô tả hoạt động và một số giao diện của chương trình 46 3.2.1 Đăng ký cấp chứng chỉ 46 3.2.2 Lấy thông tin chứng chỉ 47 3.2.3 Tìm thông tin về chứng chỉ của một người khác 49 3.2.4 Mã hóa và ký thông điệp 49 3.2.5 Giải mã thông điệp 51 3.2.6 Kiểm tra tính chính xác của chữ ký 52 3.2.7 Thu hồi chứng chỉ 53 3.3 Công cụ hỗ trợ và ngôn ngữ lập trình 54 3.3.1 Ngôn ngữ lập trình php5 54 3.3.2 OpenSSL trong PHP 5 58 3.3.2.1 Giới thiệu 58 3.3.2.2 Khóa và chứng chỉ 58 3.3.2.3 Một số hàm trong OpenSSL 59 3.4 Một số đoạn mã quan trọng của chương trình 60 3.4.1 Tạo chứng chỉ 60 3.4.2 Mã hóa và ký 62 3.4.3 Giải mã 63 3.4.4 Kiểm tra chữ ký 64 3.5 Những hạn chế và hướng phát triển 65 3.5.1 Hạn chế của chương trình 65 3.5.2 Hướng phát triển chương trình 65 KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 LỜI CẢM ƠN Em xin chân thành cám ơn Ths.Hồ Thị Hương Thơm – người luôn chỉ bảo, hướng dẫn, cung cấp những tài liệu quý báu trong quá trình học và hoàn thành đồ án này. Em xin cám ơn các thầy cô giáo trong khoa công nghệ thông tin – trường DHDL Hải Phòng và gia đình đã tạo điều kiện giúp đỡ về vật chất cũng như tinh thần để em có thể học tập tốt và hoàn thành đồ án này. Sinh viên Phùng Thế Phương MỞ ĐẦU Sự ra đời của internet, sự phát triển nhanh chóng của công nghệ thông tin đã tạo ra một thay đổi lớn trong các lĩnh vực đời sống của con người. Internet ra đời, nhu cầu truyền thông tin trên mạng là một nhu cầu tất yếu. Và đặc biệt với sự ra đời của thương mại điện tử thì nhu cầu này càng rõ rệt và cấp thiết hơn. Vấn đề đặt ra là phải tạo một phương pháp truyền thông tin an toàn, tránh sự phá hoại, ăn cắp thông tin hay làm sai lệch thông tin. Cùng với nhu cầu này một loạt các giải pháp được ra đời. Mã hóa, chữ ký điện tử đảm bảo được tính xác thực, và an toàn của thông tin nhưng vẫn chưa đủ để xác thực khi người sử dụng các cặp khóa công khai và bí mật chối bỏ các thông tin về khóa mình đã sử dụng. Từ lý do đó mà người ta thấy cần phải có một bên thứ ba đứng ra xác nhận các thông tin về khóa dùng để mã hóa gắn liền với chủ thể sử dụng. Chứng chỉ số ra đời. Chứng chỉ số là một tệp tin điện tử do một cơ quan, tổ chức cấp trong đó lưu trữ các thông tin về chủ thể sử dụng và các thông tin về khóa. Đồ án đề cập đến chứng chỉ số và sử dụng chứng chỉ số để xác thực. Đồ án gồm 3 chương. Chương I: Các khái niệm cơ bản Trong chương này sẽ đề cập đến một số khái niệm toán học, vấn đề mã hóa, chữ ký điện tử, xác thực, chứng thực điện tử. Chương II: Chứng chỉ số Trong chương này sẽ trình bày chi tiết về chứng chỉ số. Chương III: Xây dựng hệ thống quản lý chứng chỉ số Trong chương này sẽ giới thiệu việc xây dựng một chương trình hệ thống quản lý chứng chỉ số viết bằng ngôn ngữ PHP 5. CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN 1.1 Các khái niệm toán học 1.1.1 Số nguyên tố và nguyên tố cùng nhau Số nguyên tố là số chỉ chia hết cho 1 và chính nó. Ví dụ: 2, 3, 5, 7, 17, … là những số nguyên tố. Hệ mật mã thường sử dụng các số nguyên tố ít nhất là lớn hơn 10150. Hai số m và n được gọi là nguyên tố cùng nhau nếu ước số chung lớn nhất của chúng bằng 1. Ký hiệu: gcd(m,n) = 1. Ví dụ: 9 và 14 là nguyên tố cùng nhau. 1.1.2 Đồng dư thức Cho a và b là các số nguyên tố, n là số nguyên dương thì a được gọi là đồng dư với b theo modulo n nếu n|a-b (tức a - b chia hết cho n, hay khi chia a và b cho n được cùng một số dư như nhau). Số nguyên n được gọi là modulo của đồng dư. Kí hiệu: a ≡ b (mod n) Ví dụ: 67 ≡ 11 (mod 7), bởi vì 67 (mod 7) = 4 và 11 (mod 7) = 4. Tính chất của đồng dư: Cho a, a1, b, b1, c ( Z. Ta có các tính chất: a≡b mod n nếu và chỉ nếu a và b có cùng số dư khi chia cho n. Tính phản xạ: a ≡ a mod n. Tính đối xứng: Nếu a ≡ b mod n thì b ≡ a mod n. Tính giao hoán: Nếu a ≡ b mod n và b ≡ c mod n thì a ≡ c mod n. Nếu a ≡ a1 mod n, b ≡ b1 mod n thì a+b ≡ a1 + b1 mod n và ab ≡a1b1 mod n. 1.1.3 Không gian Zn và Zn* Không gian Zn (các số nguyên theo modulo n) là tập hợp các số nguyên {0,1,2,…,n-1}. Các phép toán trong Zn như cộng, trừ, nhân, chia đều được thực hiện theo module n. Ví dụ: Z11 = {0,1,2,3,…,10} Trong Z11: 6 + 7 = 2, bởi vì 6 + 7 = 13≡ 2 (mod 11). Không gian Zn* là tập hợp các số nguyên p(Zn, nguyên tố cùng n. Tức là: Zn* = { p ( Zn | gcd (n,p) =1} Φ(n) là số phần tử của Zn* Nếu n là một số nguyên tố thì: Zn* = { p ( Zn |1≤ p ≤ n - 1} Ví dụ: Z2 = {0,1} thì Z2*= {1} vì gcd(1,2) = 1. 1.1.4 Phần tử nghịch đảo Định nghĩa: Cho a ( Zn. Nghịch đảo của a theo modulo n là số nguyên x ( Zn sao cho ax ≡ 1 (mod n). Nếu x tồn tại thì đó là giá trị duy nhất, và a được gọi là khả nghịch, nghịch đảo của a ký hiệu là a-1. Tính chất: Cho a,b( Zn. Phép chia của a cho b theo modulo n là tích của a và b−1 theo modulo n, và chỉ được xác định khi b có nghịch đảo theo modulo n. Cho a( Zn, a nghịch đảo khi và chỉ khi gcd(a, n) = 1. Giả sử d=gcd (a, n). Phương trình đồng dư ax ≡ b mod n có nghiệm x nếu và chỉ nếu d chia hết cho b, trong trường hợp các nghiệm d nằm trong khoảng 0 đến n - 1 thì các nghiệm đồng dư theo modulo n/d. Ví dụ: 4-1 = 7 (mod 9) vì 4.7 ≡1 (mod 9) 1.1.5 Hàm băm 1.1.5.1 Giới thiệu Một hàm băm (hash function) hay một giải thuật băm là một phương pháp sinh một địa chỉ trong phần bộ nhớ dành cho các khóa được sắp thứ tự. Các hàm này cung cấp một cách tạo một "vân tay" số nhỏ từ bất kỳ loại dữ liệu nào. Hàm này cắt và trộn (thay thế và chuyển vị) dữ liệu để tạo một giá trị thường được gọi là giá trị băm. Giá trị băm thường được biểu diễn trong hệ cơ số 16. Hàm băm tốt là hàm cho ra ít đụng độ băm (hash collision) trong các miền dữ liệu trông đợi. Trong các bảng băm và việc xử lý dữ liệu, các đụng độ này dẫn đến chi phí cao hơn cho việc tìm kiếm các bản ghi trong cơ sở dữ liệu.  Hình 1.1 Hai điều kiện sau đây được người ta cho là hai điều kiện chủ yếu cho một hàm băm: Hàm băm phải là hàm một phía nghĩa là cho x tính z=h(x) là việc dễ nhưng ngược lại, biết z tính x là việc cực khó (có thể quy ước dễ hay khó là có thể tính được trong thời gian đa thức hay không). Hàm băm phải là hàm không va chạm mạnh theo nghĩa sau đây: không có thuật toán tính được trong thời gian đa thức giả bài toán “tìm x1 và x2 thuộc ( sao cho x1 ≠ x2 và h(x1) = h(x2)”; nói cách khác tìm hai văn bản khác nhau có cùng một đại diện là cực kỳ khó. Danh sách các hàm băm:  Hình 1.2 1.1.5.2 Cấu trúc của hàm băm Hầu hết các hàm băm mật mã đầu có cấu trúc giải thuật như sau: Cho trước một thông điệp M có độ dài bất kỳ. Tùy theo thuật toán được sử dụng chúng ta có thể cần bổ sung một số bit vào thông điệp này để nhận được thông điệp có dộ dài là bội số của một hằng số cho trước. Chia nhỏ thông điệp thành từng khối có kích thước bằng nhau: M1, M2,....,Ms. Gọi H là trạng thái có kích thước n bit, f là “hàm nén: thực hiện thao tác trộn khối dữ liệu với trạng thái hiện hành. - Khởi gán H0 bằng một vector khởi tạo nào đó. - H1 = f(Hi-1,Mi) với I = 1,2,3,….,s. Hs chính là thông điệp rút gọn của thông điệp M ban đầu. 1.1.5.3 Một số loại hàm băm Hàm băm MD5: Hàm băm MD4 (Message Digest 4) được giáo sư Rivest đề nghị vào năm 1990. Vào năm sau, phiên bản cải tiến. Thông điệp ban đầu x sẽ được mở rộng thành dãy bit X có độ dài là bội số của 512. Một bit 1 được thêm vào sau dãy bit x, tiếp đến là dãy gồm d bit 0 và cuối cùng là dãy 64 bit l biểu diễn độ dài của thông điệp x. Dãy gồm d bit 0 được thêm vào sao cho dãy X có độ dài là bội số của 512. Quy định này được thể hiện bằng thuật toán sau: Thuật toán xây dựng dãy bit X từ dãy bit x  Hình 1.3 Đơn vị xử lý trog MD5 là các từ 32-bit nên dãy X sẽ được biểu diễn thành dãy các tư X[i] 32 bit: X=X[0]X[1]………X[N-1] với N là bội số của 16. Thuật toán MD5:  Hình 1.4 Đầu tiên bốn biến ABCD được khởi tạo. Những biến này được gọi là chaining variables. Bốn chu kỳ biến đổi trong MD5 hoàn toàn khác nhau và lần lượt sử dụng các hàm F,G,H và I. Mỗi hàm có các tham số X,Y,Y là cá từ 32 bit và kết quả là một từ 32 bit. F(X,Y,Z)= (X(Y)((((X)(Z) G(X,Y,Z)= (X(Z)((Y((Z)) H(X,Y,Z)= X(Y(Z I(X,Y,Z)= Y((X(((Z)) Với quy ước: X(Y: Phép toán AND trên bit giữa X và Y. X(Y: Phép toán OR trên bit giữa X và Y. X(Y: Phép toán XOR trên bit giữa X và Y. (X: Phép toán NOT trên bit của X. X+Y: Phép cộng (modulo 232). X<<<s: Các bit của X được dịch chuyển xoay vòng sang trái s vị trí (0 ≤ s <32). Định nghĩa các hàm:  Hình 1.5 Với Mj là M[j] và hằng số ti xác định theo công thức: ti = (232|sin(i)|(, I tính bằng radian. Chu kỳ biến đổi trong MD5  Hình 1.6  Hình 1.7 Hàm băm mật mã SHA: Trong các hàm băm SHA, chúng ta cần sử dụng thao tác quay phải một từ, ký hiệu là ROTR, và thao tác dịch phải một từ, ký hiệu là SHR. Khung thuật toán chung cho hàm băm SHA:  Hình 1.8  Hình 1.9 Mỗi thuật toán có bảng hằng số phân bố thông điệp tương ứng. Kích thước bảng hằng số thông điệp (ScheduleRound) của SHA-224 và SHA-256 là 64, kích thước bảng hằng số thông điệp của SHA-384 và SHA-512 là 80. Trong phương pháp SHA-224 và SHA-256 sử dụng các hàm sau:  Trong phương pháp SHA-384 và SHA-512 sử dụng các hàm sau:   Hình 1.10: Các tính chất của các thuật toán băm an toàn 1.2 Vấn đề mã hóa 1.2.1 Khái niệm mã hoá Mã hóa là phương pháp để biến thông tin (phim ảnh, văn bản, hình ảnh...) từ dạng bình thường sang dạng thông tin “khó” thể hiểu được, nếukhông có phương tiện giải mã. Giải mã là phương pháp để chuyển thông tin đã được mã hóa về dạng thông tin ban đầu (quá trình ngược của mã hóa). Ví dụ: Thông điệp cần mã hoá là chuỗi nhị phân M=1011, hàm mã hoá vàgiải mã là hàm XOR, với K= 1010. Mã hóa:  Giải mã:  Việc giao dịch thông tin trên mạng ngày càng trở nên phổ biến, vấn đề an toàn thông tin được đặt ra, làm thế nào để thông tin không bị đánh cắp. Nếu kẻ cắp lấy được dữ liệu, nhưng “khó” lấy được thông tin thực sự. Điều này có thể thực hiện bằng cách mã hoá, nghĩa là trước khi gửi thông điệp, thông điệp được chuyển từ bản rõ sang bản mã, rồi mới gửi đi. Kẻ cắp có thể lấy được bản mã, nhưng không có được bản rõ (nghĩa là không lấy được nội dung của thông điệp). Mã hoá tuân theo qui tắc nhất định gọi là Hệ mã hoá. Hiện nay có hai loại mã hoá: • Mã hoá đối xứng. • Mã hoá khoá công khai (phi đối xứng). Hệ mã hoá được định nghĩa là bộ năm (P,C,K,E,D) trong đó: P là một tập hữu hạn các bản rõ có thể. C là một tập hữu hạn các bản mã có thể. K là một tập hữu hạn các khoá có thể. E là tập các hàm lập mã. D là tập các hàm giải mã. Với mỗi k ( K, có một hàm lập mã ek ( E. ek : P→C, và một hàm giải mã dk: C→P sao cho dk(ek(x))=x ( x ( P. Hệ mã hoá khóa công khai sử dụng một cặp khóa. Một trong hai khóa được gọi là khóa riêng (Private Key) và phải được giữ bí mật bởi người sở hữu. Khóa còn lại được gọi là khóa công khai (Public Key), nó được phổ biến cho tất cả những ai muốn giao dịch với người giữ khóa riêng tương ứng. Cặp khóa này có liên quan về mặt toán học, và không thể sử dụng các thông tin của khóa công khai để tìm ra khóa riêng. Theo lý thuyết bất kỳ ai cũng có thể gửi cho người giữ khóa riêng một thông điệp được mã hóa bằng khóa công khai, và như vậy chỉ có người nào sở hữu khóa riêng mới có thể giải mã được. Đồng thời, người sở hữu khóa riêng cũng chứng minh được tính toàn vẹn của dữ liệu mà anh ta gửi cho người khác bằng chữ ký điện tử thông qua việc sử dụng khóa riêng để mã hóa. Bất kỳ ai nhận được dữ liệu đó đều có thể sử dụng khóa công khai tương ứng để kiểm tra xem nó do ai gửi và có còn toàn vẹn hay không. 1.2.2 Hệ mã hoá khóa công khai RSA là hệ mã hoá khoá công khai, và độ an toàn của hệ dựa vào bài toán khó: ”phân tích số nguyên thành thừa số nguyên tố”, sau đây là chi tiết về hệ mã hoá RSA. Sơ đồ: Chọn p, q là số nguyên tố rất lớn. Tính: n = p * q, Φ(n) = (p-1)*(q-1). Chọn b là số nguyên tố với Φ(n), để tồn tại phần tử nghịch đảo b-1, nghĩa là gcd(b,Φ(n)) = 1. Chọn a là nghịch đảo của b: a*b = 1 mod Φ(n) (nghịch đảo theo modulo Φ(n)). + b là khoá lập mã, công khai. + a là khoá giải mã, giữ bí mật. Lập mã: Chọn P = C = Zn với n = p * q, Zn = {0, 1, 2, ..., n-1} x ( Zn → y = xb mod n ( Zn Giải mã: y ( Zn → x = ya mod n ( Zn Ví dụ: Giả sử ông B cần gửi cho ông A một thông điệp x=8 trên kênh truyền công cộng. A và B muốn giữ bí mật tài liệu, hai bên thống nhất sử dụng hệ mã khoá RSA.Sau đây là các bước thực hiện để A và B trao đổi thông điệp. • Chuẩn bị: Lấy p = 3; q=5 (Đây là ví dụ minh họa, nên chọn p,q là hai số nguyên tố nhỏ để tiện cho việc tính toán). ( n=p*q=3*5=15; Φ(n) = (p-1)*(q-1)=2*4= 8. Chọn b=7 (thoả mãn gcd(7,8)=1), ( a= b-1mod Φ(n)=7 (thoả mãn 7*7=1 mod 8). (Khóa công khai b=7; n=15. (Khóa bí mật a = 7. • Quá trình mã hóa: Cho x= 8; Mã hóa: y = xb mod n = 87 mod 15 = 2097152 mod 15 = 2. • Quá trình giải mã: Nhận y = 2. Giải mã: x = ya mod n = 27 mod 15 = 128 mod 15=8. 1.3 Vấn đề chữ ký điện tử 1.3.1 Giới thiệu Giống như chữ ký của bạn trên các tài liệu thì chữ ký điện tử cũng có một ý nghĩa tương tự, đó là dùng chữ ký điện tử để ký lên một e-mail hoặc dữ liệu điện tử. Chữ ký điện tử được tạo ra và được chứng thực do việc dùng chứng chỉ số. Ngày nay, trên thế giới đã có nhiều quốc gia đã ban hành những điều luật công nhận chữ ký điện tử có giá trị pháp lý như những chữ ký trên các văn bản, giấy tờ trước đây vẫn dùng. Để ký, để tạo nên một giao dịch an toàn thì chứng chỉ số của bạn là duy nhất. Chữ ký điện tử mang lại cho bạn nhiều chức năng quan trọng như: • Tính xác thực. • An toàn và toàn vẹn dữ liệu. • Không chối cãi nguồn gốc. 1.3.2 Định nghĩa Một sơ đồ ký số thông thường gồm 2 thành phần tương ứng với 2 giai đoạn: - Thuật toán ký – tương ứng với giai đoạn ký. - Thuật toán xác minh – tương ứng với giai đoạn kiểm tra chữ ký. Định nghĩa một cách hình thức sơ đồ ký số gồm 5 thành phần: ( P, A, K, S, V ) P là tập các thông điệp. A là tập hữu hạn chữ ký. K là tập các khóa. S là tập hàm ký. V là tập hợp các hàm kiểm thử chữ ký. Với mỗi k( K thì tồn tại một thuật toán ký sigk( S và thuật toán xác nhận là Verk( V. Thông điệp x(P => y(A sao cho y=sigk(x) và từ x(A và y(A thì ta có Verk(x,y)=True ( y=sigk(x) Sử dụng khóa bí mật kết hợp với hàm giải mã để ký. Kiểm tra chữ ký bằng cách sử dụng khóa công khai và hàm mã. 1.3.3 Sơ đồ chữ ký RSA Sơ đồ chữ ký RSA sử dụng thao tác sinh khóa của hệ mã RSA. 1. Tạo khóa: Chọn hai số nguyên tố lớn p và q khác nhau. N= p*q. Φ(N)=(p-1)*(q-1). Chọn e sao cho (e, Φ(N))=1 và (1<e< Φ(N)). D=e-1mod Φ(N). Công khai (N,e) và giữ bí mật (D,p,q). 2. Ký: Thông điệp x (Zq ta có: y=sig(x)=xd mod n. Gửi (x,y). 3. Kiểm tra chữ ký: Ver(x,y)=True( x=ye mod n. 1.4 Xác thực 1.4.1 Khái niệm xác thực Xác thực là việc xác minh, kiểm tra một thông tin hay một thực thể để công nhận hoặc bác bỏ tính hợp lệ của thông tin hay thực thể đó. Xác thực luôn là yêu cầu quan trọng trong các giao tiếp cần có sự tin cậy. Để đơn giản ta xét mô hình giao tiếp gồm 2 thực thể trao đổi thông tin A và B, họ cùng mục đích trao đổi một thông tin X nào đó. Khi đó, việc xác thực gồm: - A cần xác minh B đúng là B và ngược lại - Cả A và B cần xác minh tính an toàn của thông tin X mà họ trao đổi. Như vậy, xác thực bao gồm 2 việc chính: - Xác thực tính hợp lệ của các thực thể tham gia giao tiếp - Xác thực tính bảo mật của thông tin được trao đổi Theo các phương pháp truyền thống, chúng ta có thể thấy việc xác thực thực thể thường được thực thi bằng các giấy tờ như chứng minh thư, giấy phép lái xe, hoặc các giấy tờ cá nhân khác. Còn việc xác thực tính an toàn của thông tin trao đổi thường dựa trên chữ ký, con dấu. 1.4.2 Các dạng xác thực Có hai dạng xác thực là sự xác thực thực thể và sự xác thực trách nhiệm văn bản gốc. 1.4.2.1 Xác thực thực thể Trong sự xác thực thực thể, người dùng yêu cầu được chấp nhận là người chính thức hợp pháp của hệ thống. Dịch vụ xác thực thực thể đem đến sự đảm bảo sự công nhận hoặc bác bỏ nét nhận dạng của người truy nhập. Sự xác thực thực thể có thể một phía hoặc nhiều phía. Trong sự xác thực một phía, chỉ một phía thực hiện sự xác thực tự bản thân mình khi liên lạc, nhưng trái lại, trong sự xác thực thực thể đồng thời, cả hai bên phải xác thực lẫn nhau. Khi một Web browser kết nối với một lớp nền bảo vệ (a secure socket layer – SSL) có thể tới được trang chủ, ví dụ, nó luôn luôn thực hiện xác thực một phía máy chủ; còn máy chủ có thể thực hiện có chọn lọc sự xác thực đồng thời của browser. Sự xác thực đồng thời đóng vai trò quan trọng trong việc ngăn cản sự tấn công ác ý, mà ở đó, một server lừa đảo lừa một Client (khách hàng) vào trong một thông tin có cảm giác lộ ra ngoài, hoặc là một khách hàng lừa đảo truy nhập trái phép vào nguồn thông tin của máy chủ. 1.4.2.2 Xác thực trách nhiệm văn bản gốc Sự xác thực văn bản gốc cung cấp bằng chứng để một đoạn dữ liệu, cũng như một thư điện tử, trong thực tế được tạo bởi người sử dụng chính thức. Việc xác thực này nhằm mục đích chứng tỏ sự không chối cãi được trách nhiệm của người đã tạo ra tài liệu điện tử đó. Và để chứng minh rằng tài liệu là của người đó chứ không phải của ai khác. Việc xác thực này cũng đảm bảo phát hiện những sửa đổi khi tài liệu được truyền trên các kênh truyền thông, đảm bảo tính đúng đắn,toàn vẹn của tài liệu. 1.4.3 Các phương pháp xác thực Có nhiều phương pháp xác thực điện tử đã được phát triển. Với mỗi yêu cầu xác thực lại có những phương pháp khác nhau. Xác thực thực thể có thể sử dụng các phương pháp nhận dạng sinh học như dấu vân tay, mẫu võng mạc, mẫu giọng nói, chữ ký tay. Xác thực thông tin có thể sử dụng mật khẩu, đây là phương pháp hiện đang được sử dụng rộng rãi nhất, chứng chỉ số và chữ ký điện tử, thẻ thông minh, những phương pháp hiện đ

Các file đính kèm theo tài liệu này:

  • docbaocaoupdate.doc
  • pptxacthucso.ppt