Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 87 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
87
Dung lượng
3,21 MB
Nội dung
1 MỞ ĐẦU Với phát triển nhanh chóng công nghệ thông tin viễn thông, giới ngày thu nhỏ trở nên gần gũi Nhiều công ty vượt qua ranh giới cục khu vực, vươn thị trường giới Nhiều doanh nghiệp có tổ chức trải rộng khắp toàn quốc chí vòng quanh giới, tất họ đối mặt với nhu cầu thiết thực: cách thức nhằm trì kết nối thông tin kịp thời, an toàn hiệu cho dù văn phòng đặt nơi đâu Bên cạnh hoạt động giao dịch thương mại không giao dịch truyền thống, mà thay vào đó, xu phát triển mạnh mẽ phù hợp thời đại giao dịch thương mại điện tử Sự phát triển mạnh mẽ thương mại điện tử mang đến cho xã hội tiện ích vô to lơn, giao dịch diễn nhanh chóng, kịp thời phù hợp người dùng cần ngồi nhà Tuy nhiên giao dịch thương mại điện tử gọi thành công đảm bảo tính an toàn cho giao dịch, giao dịch lại diễn môi trường internet – môi trường luôn tiềm ẩn nhiều nguy an toàn liệu Từ đây, ta thấy song song với việc phát triển thương mại điện tử cẩn phải nghiên cứu giải vấn đề an toàn thông tin giao dịch Nhận yêu cầu với gợi ý giáo viên hướng dẫn dựa tìm hiểu em, em chọn đề tài nghiên cứu “Nghiên cứu mạng riêng ảo ứng dụng thương mại điện tử” Với mục đích nghiên cứu công nghệ mạng riêng ảo, đề từ ứng dụng vào thương mại điện tử, tạo hành lang an toàn cho giao dịch thương mại điện tử luận văn gồm chương cụ thể sau: Chương 1: Khái quát mạng riêng ảo thương mại điện tử Chương 2: Một số vấn đề an toàn thông tin toán thỏa thuận ký kết hợp đồng điện tử Chương 3: Chương trình thực nghiệm Do hạn chế nhiều mặt nên Luận văn chắn không tránh khỏi thiếu xót, mong đóng góp ý kiến Thầy, Cô bạn để Luận văn hoàn thiện Em xin chân thành cảm ơn thầy giáo, PGS TS Trịnh Nhật Tiến tận tình hướng dẫn giúp đỡ em suốt trình hoàn thành luận văn Em xin trân thành cảm ơn thầy, cô, bạn bè toàn thể người thân giúp đỡ bảo cho em thời gian thực luận văn Chương KHÁI QUÁT VỀ MẠNG RIÊNG ẢO VÀ THƯƠNG MẠI ĐIỆN TỬ 1.1 KHÁI QUÁT VỀ MẠNG RIÊNG ẢO 1.1.1 Khái niệm mạng riêng ảo Cụm từ Virtual Private Network (mạng riêng ảo) thường gọi tắt VPN kỹ thuật xuất từ lâu, nhiên thực bùng nổ trở nên cạnh tranh xuất công nghệ mạng thông minh với đà phát triển mạnh mẽ Internet Trong thực tế, người ta thường nói tới hai khái niệm VPN là: mạng riêng ảo kiểu tin tưởng (Trusted VPN) mạng riêng ảo an toàn (Secure VPN) Mạng riêng ảo kiểu tin tưởng xem số mạch thuê nhà cung cấp dịch vụ viễn thông Mỗi mạch thuê riêng hoạt động đường dây mạng cục Tính riêng tư trusted VPN thể chỗ nhà cung cấp dịch vụ đảm bảo sử dụng mạch thuê riêng Các mạng riêng xây dựng đường dây thuê thuộc dạng “trusted VPN” Mạng riêng ảo an toàn mạng riêng ảo có sử dụng mật mã để bảo mật liệu Dữ liệu đầu mạng mật mã chuyển vào mạng công cộng (ví dụ: mạng Internet) liệu khác để truyền tới đích sau giải mã liệu phía thu Dữ liệu mật mã coi truyền đường hầm (tunnel) bảo mật từ nguồn tới đích Cho dù kẻ công nhìn thấy liệu đường truyền khả đọc liệu mật mã Mạng riêng ảo VPN định nghĩa kết nối mạng triển khai sở hạ tầng mạng công cộng (như mạng Internet) với sách quản lý bảo mật giống mạng cục Hình 1.1: Mô hình mạng riêng ảo a) Chức VPN cung cấp ba chức là: tính xác thực (Authentication), tính toàn vẹn (Integrity) tính bảo mật (Confidentiality) Tính xác thực : Để thiết lập kết nối VPN trước hết hai phía phải xác thực lẫn để khẳng định trao đổi thông tin với người mong muốn người khác Tính toàn vẹn : Đảm bảo liệu không bị thay đổi hay đảm bảo xáo trộn trình truyền dẫn Tính bảo mật : Người gửi mã hoá gói liệu trước truyền qua mạng công cộng liệu giải mã phía thu Bằng cách làm vậy, không truy nhập thông tin mà không phép Thậm chí có lấy không đọc b) Ưu điểm VPN mang lại lợi ích thực tức thời cho công ty, tổ chức Có thể dùng VPN không để đơn giản hoá việc thông tin nhân viên làm việc xa, người dùng lưu động, mở rộng Intranet đến văn phòng, chi nhánh, chí triển khai Extranet đến tận khách hàng đối tác chủ chốt mà làm giảm chi phí cho công việc thấp nhiều so với việc mua thiết bị đường dây cho mạng WAN riêng Những lợi ích dù trực tiếp hay gián tiếp bao gồm: Tiết kiệm chi phí (cost saving), tính mềm dẻo (flexibility), khả mở rộng (scalability) số ưu điểm khác 1.1.2 Phân loại mạng riêng ảo Dựa vào yêu cầu mạng riêng ảo phân làm ba loại: • VPN truy nhập từ xa (Remote Access VPNs) • VPN Site – To – Site: • Mạng VPN cục (Intranet VPN) • Mạng VPN mở rộng (Extranet VPN) a) VPN truy nhập từ xa (Remote access VPNs) VPN truy nhập từ xa cung cấp cho nhân viên, chi nhánh văn phòng di động có khả trao đổi, truy nhập từ xa vào mạng công ty thời điểm đâu có mạng Internet VPN truy nhập từ xa cho phép mở rộng mạng công ty tới người sử dụng thông qua sở hạ tầng chia sẻ chung, sách mạng công ty trì Loại VPN dùng để cung cấp truy nhập an toàn cho thiết bị di động, người sử dụng di động, chi nhánh bạn hàng công ty Những kiểu VPN thực thông qua sở hạ tầng công cộng cách sử dụng công nghệ ISDN, quay số, IP di động, DSL công nghệ cáp thường yêu cầu vài kiểu phần mềm client chạy máy tính người sử dụng Hình 1.2: VPN truy nhập từ xa b) VPN Site To Site Site-to-Site VPN sử dụng để nối site hãng phân tán mặt địa lý, site có địa mạng riêng quản lý cho bình thường không xảy va chạm Mạng VPN cục (Intranet VPN) Các VPN cục sử dụng để bảo mật kết nối địa điểm khác công ty Mạng VPN liên kết trụ sở chính, văn phòng, chi nhánh sở hạ tầng chung sử dụng kết nối mã hoá bảo mật Điều cho phép tất địa điểm truy nhập an toàn nguồn liệu phép toàn mạng công ty Những VPN cung cấp đặc tính mạng WAN khả mở rộng, tính tin cậy hỗ trợ cho nhiều kiểu giao thức khác với chi phí thấp đảm bảo tính mềm dẻo Kiểu VPN thường cấu VPN Site- to- Site Hình 1.3: VPN cục Mạng VPN mở rộng (Extranet VPN) Không giống mạng VPN cục mạng VPN truy nhập từ xa, mạng VPN mở rộng không bị cô lập với “thế giới bên ngoài” Thực tế mạng VPN mở rộng cung cấp khả điều khiển truy nhập tới nguồn tài nguyên mạng cần thiết để mở rộng đối tượng kinh doanh đối tác, khách hàng, nhà cung cấp… Hình 1.4: VPN mở rộng Các VPN mở rộng cung cấp đường hầm bảo mật khách hàng, nhà cung cấp đối tác qua sở hạ tầng công cộng Kiểu VPN sử dụng kết nối luôn bảo mật cấu VPN Site–to– Site Sự khác VPN cục VPN mở rộng truy cập mạng công nhận hai đầu cuối VPN 1.1.3 Các giáo thức đường hầm mạng riêng ảo a) Giao thức định hướng L2F ( Layer Forwarding) Giao thức định hướng lớp L2F Cisco phát triển độc lập phát triển dựa giao thức PPP (Point-to-Point Protocol) L2F cung cấp giải pháp cho dịch vụ quay số ảo cách thiết lập đường hầm bảo mật thông qua sở hạ tầng công cộng Internet L2F giao thức phát triển sớm nhất, phương pháp truyền thống người sử dụng xa truy cập vào mạng công ty thông qua thiết bị truy cập từ xa L2F cho phép đóng gói gói PPP L2F, định đường hầm lớp liên kết liệu Ưu nhược điểm L2F Ưu điểm: - Cho phép thiết lập đường hầm đa giao thức - Được cung cấp nhiều nhà cung cấp Nhược điểm: - Không có mã hoá - Yếu việc xác thực người dùng - Không có điều khiển luồng cho đường hầm Hoạt động L2F Hoạt động L2F bao gồm hoạt động: thiết lập kết nối, đường hầm phiên làm việc Ta xem xét ví dụ minh hoạ hoạt động L2F: 1) Một người sử dụng xa quay số tới hệ thống NAS khởi đầu kết nối PPP tới ISP 2) Hệ thống NAS máy khách trao đổi gói giao thức điều khiển liên kết LCP (Link Control Protocol) 3) NAS sử dụng sở liệu cục liên quan tới tên vùng (domain name) hay nhận thực RADIUS để định có hay không người sử dụng yêu cầu dịch vụ L2F 4) Nếu người sử dụng yêu cầu L2F trình tiếp tục: NAS thu nhận địa gateway đích (home gateway) 5) Một đường hầm thiết lập từ NAS tới gateway đích chúng chưa có đường hầm Sự thành lập đường hầm bao gồm giai đoạn nhận thực từ ISP tới gateway đích để chống lại công kẻ thứ ba 6) Một kết nối PPP tạo đường hầm, điều tác động kéo dài phiên PPP từ người sử dụng xa tới home gateway Kết nối thiết lập sau: Home gateway tiếp nhận lựa chọn tất thông tin nhận thực PAP/CHAP, thoả thuận đầu cuối người sử dụng NAS Home gateway chấp nhận kết nối hay thoả thuận lại LCP nhận thực lại người sử dụng 7) Khi NAS tiếp nhận lưu lượng liệu từ người sử dụng, lấy gói đóng gói lưu lượng vào khung L2F hướng vào đường hầm 8) Tại home gateway, khung L2F tách bỏ, liệu đóng gói hướng tới mạng công ty b) Giao thức PPTP (Point –to- Point Tunneling Protocol) Giao thức đường hầm điểm–điểm PPTP đưa nhóm công ty gọi PPTP Forum Nhóm bao gồm công ty: Ascend comm., Microsoft, ECI Telematicsunication US Robotic Ý tưởng sở giao thức tách chức chung riêng truy cập từ xa, lợi dụng sở hạ tầng Internet sẵn có để tạo kết nối bảo mật người dùng xa (client) mạng riêng Người dùng xa việc quay số tới nhà cung cấp dịch vụ Internet địa phương tạo đường hầm bảo mật tới mạng riêng họ Giao thức PPTP xây dựng dựa chức PPP, cung cấp khả quay số truy cập tạo đường hầm bảo mật thông qua Internet đến site đích PPTP sử dụng giao thức bọc gói định tuyến chung GRE (Generic Routing Encapsulation) mô tả lại để đóng gói tách gói PPP, giao thức cho phép PPTP mềm dẻo xử lý giao thức khác IP như: IPX, NETBEUI Do PPTP dựa PPP nên sử dụng PAP, CHAP để xác thực PPTP sử dụng PPP để mã hoá liệu Microsoft đưa phương thức mã hoá khác mạnh mã hoá điểm - điểm MPPE (Microsoft Point- to- Point Encryption) để sử dụng cho PPTP Một ưu điểm PPTP thiết kế để hoạt động lớp (lớp liên kết liệu) IPSec chạy lớp mô hình OSI Bằng cách hỗ trợ việc truyền liệu lớp thứ 2, PPTP truyền đường hầm giao thức khác IP IPSec truyền gói IP đường hầm - Đóng gói liệu đường hầm PPTP Dữ liệu đường hầm PPTP đóng gói thông qua nhiều mức: đóng gói khung PPP, đóng gói gói GRE, đóng gói lớp liên kết liệu Cấu trúc gói liệu đóng gói Hình 1.5: Cấu trúc gói liệu đường hầm PPTP - Đóng gói khung PPP Phần tải PPP ban đầu mật mã đóng gói với phần tiêu đề PPP để tạo khung PPP Sau đó, khung PPP đóng gói với phần tiêu đề phiên sửa đổi giao thức GRE - Xử lý liệu đường hầm PPTP Khi nhận liệu đường hầm PPTP, PPTP client hay PPTP server thực bước xử lý: - xử ký loại bỏ phần Header Trailer lớp liên kết liệu - Xử lý loại bỏ IP Header - Xử lý loại bỏ GRE Header PPP Header - Giải mã hoặc/và giải nén phần PPP payload cần thiết - Xử lý phần payload để nhận chuyển tiếp 10 - Đường hầm PPTP cho phép người dùng ISP tạo nhiều loại đuờng hầm khác Người dùng định điểm kết thúc đường hầm máy tính có cài PPTP, hay máy chủ ISP (máy tính ISP phải hỗ trợ PPTP) Có hai lớp đường hầm: Đường hầm tự nguyên đường hầm bắt buộc Đường hầm tự nguyện: tạo theo yêu cầu người dùng Khi sử dụng đường hầm tự nguyện, người dùng đồng thời mở đường hầm bảo mật thông qua Internet truy cập đến Host Internet giao thức TCP/IP bình thường Đường hầm tự nguyện thường sư dụng để cung cấp tính riêng tư toàn vẹn liệu cho lưu lượng Intranet gửi thông qua Internet Đường hầm bắt buộc tạo không thông qua người dùng nên suốt người dùng Điểm kết thúc đương hầm bắt buộc nằm máy chủ truy cập từ xa Tất liệu truyền từ người dùng qua đường hầm PPTP phải thông qua RAS Do đường hầm bắt buộc định trước điểm kết thúc người dùng truy cập phần lại Internet nên điều khiển truy nhập tốt so với đường hầm tự nguyện Nếu tính bảo mật mà không cho người dùng truy cập Internet công cộng đường hầm bắt buộc ngăn không cho họ truy cập Internet công cộng cho phép họ dùng Internet để truy cập VPN (nghĩa cho truy cập site VPN mà thôi) Một ưu điểm đường hầm bắt buộc đuờng hầm có nhiều điểm kết nối Đặc tính làm giảm yêu cầu băng thông cho ứng dụng đa phiên làm việc Một khuyết điểm đường hầm bắt buộc kết nối từ RAS đến người dùng nằm đường hầm nên dễ bị công Sử dụng RADIUS để cung cấp đường hầm bắt buộc có vài ưu điểm là: Các đường hầm định nghĩa kiểm tra dựa xác thực người dùng tính cước dựa vào số điện thoại, phương thức xác thực khác thẻ (token) hay thẻ thông minh (smart card) 73 buf = sbuf.ToCharArray(); //duyệt ký tự mảng for (int i = 0; i < buf.Length; i++) { ch =(int)buf[i]; //chuyen doi tu ký tự thứ i sang dang so gán vào biến ch strso += ch.ToString();//ghép số ký tự i vào string } long kq = long.Parse(strso); return kq; } private long convertStringToLong(string strChuoi) { long lNumber = 0; foreach (char c in strChuoi.ToCharArray()) lNumber += Convert.ToInt64(c); return lNumber; } // End of convert string to long private void btnSign_Click_1(object sender, EventArgs e) { //Lấy chữ ký long privateKey = 0; if (txtPrivateKey.TextLength == 0) { MessageBox.Show("Bạn cần nhập khóa riêng khách hàng vao"); txtPrivateKey.Focus(); return; } privateKey = long.Parse(txtPrivateKey.Text); //Văn if (txtMessage.TextLength == 0) { MessageBox.Show("Bạn cần nhập văn bản"); txtMessage.Focus(); return; } long x = 0; if(long.TryParse(txtMessage.Text.Trim(),out x)==false) x = convertStringToLong(txtMessage.Text.Trim()); //Lấy chữ ký txtSignature.Text = authen.Sig(x, privateKey).ToString(); } private { int int int int int void btnTestC_Click(object sender, EventArgs e) e1 = int.Parse(txtE1.Text); e2 = int.Parse(txtE2.Text); y = int.Parse(txtTestY.Text); h = int.Parse(txtH.Text); p = int.Parse(txtP.Text); long temp1 =LuyThua(y, e1, p);// (long)Math.Pow(y, e1); long temp2 = LuyThua(h, e2, p);// (long)Math.Pow(h, e2); long c = (temp1 * temp2) % p; txtTestC.Text = c.ToString(); 74 btnTestD.Enabled = true; } #region======================Tinh luy thua theo modoule z============= static long LuyThua(long x, long n, long m) { long lt=0; if (n == 0) return 1; if (n == 1) return x; lt = LuyThua(x, n / 2, m); if (n % == 0) return lt *lt % m; else return lt * lt * x % m; } #endregion============================================================ #region================Nghich dao cua mot so module================ int NghichDao(int m, int b) { int a1 = 1, a2 = 0, a3 = m; int b1 = 0, b2 = 1, b3 = b; //int qv; int t1, t2, t3; while (true) { if (b3 == 0) return 0; if (b3 == 1) return b2; int qv = a3 / b3; t1 = a1 - qv * b1; t2 = a2 - qv * b2; t3 = a3 - qv * b3; a1 = b1; a2 = b2; a3 = b3; b1 = t1; b2 = t2; b3 = t3; } } #endregion=============================================================== private void btnTestD_Click(object sender, EventArgs e) { // -tinh a^-1 mod q -int a = int.Parse(txtPrivateKey.Text.Trim()); int q = 233; int m = NghichDao(q, a); int c=int.Parse(txtTestC.Text); int p=int.Parse(txtP.Text); long d = LuyThua(c, m, p); txtTestD.Text = d.ToString(); CalculateResult(); btnTest.Enabled = true; 75 } private void CalculateResult() { int e1 = int.Parse(txtE1.Text); int e2 = int.Parse(txtE2.Text); //Văn if (txtTestX.TextLength == 0) { MessageBox.Show("Bạn cần nhập văn bản"); txtTestX.Focus(); return; } long x = 0; if (long.TryParse(txtTestX.Text.Trim(), out x) == false) x = convertStringToLong(txtTestX.Text.Trim()); int g = int.Parse(txtG.Text); int p = int.Parse(txtP.Text); long temp1 = LuyThua(x, e1, p);// (long)Math.Pow(y, e1); long temp2 = LuyThua(g, e2, p);// (long)Math.Pow(h, e2); long test = (temp1 * temp2) % p; txtResultValue.Text = test.ToString(); } private void btnTest_Click(object sender, EventArgs e) { if (txtTestD.Text.Trim() == txtResultValue.Text.Trim()) txtTest.Text = "N chấp nhận y=" + txtTestY.Text + " chữ kỹ G x=" + txtTestX.Text; else txtTest.Text = "y=" + txtTestY.Text + " chữ ký giả mạo"; } private { int int int int int void btnNCDeny_Click(object sender, EventArgs e) e1 = int.Parse(txtE1Deny.Text); e2 = int.Parse(txtE2Deny.Text); y = int.Parse(txtYDeny.Text); h = int.Parse(txtH.Text); p = int.Parse(txtP.Text); long temp1 = LuyThua(y, e1, p); long temp2 = LuyThua(h, e2, p); long c = (temp1 * temp2) % p; txtCDeny.Text = c.ToString(); btnGDDeny.Enabled = true; } private void btnGDDeny_Click(object sender, EventArgs e) { // -tinh a^-1 mod q -int a = int.Parse(txtPrivateKey.Text.Trim()); int q =233; int m = NghichDao(q, a); int c = int.Parse(txtCDeny.Text); int p = int.Parse(txtP.Text); long d = LuyThua(c, m, p); 76 } txtDDeny.Text = d.ToString(); btnCheckConditionDeny.Enabled = true; private void btnCheckConditionDeny_Click(object sender, EventArgs e) { // tinh x^e1*g^e2 mod p -int e1 = int.Parse(txtE1Deny.Text); int e2 = int.Parse(txtE2Deny.Text); //Văn if (txtXMessageDeny.TextLength == 0) { MessageBox.Show("Bạn cần nhập văn bản"); txtXMessageDeny.Focus(); return; } long x = 0; if (long.TryParse(txtXMessageDeny.Text.Trim(), out x) == false) x = convertStringToLong(txtXMessageDeny.Text.Trim()); int g = int.Parse(txtG.Text); int p = int.Parse(txtP.Text); long temp1 = LuyThua(x, e1, p);// (long)Math.Pow(y, e1); long temp2 = LuyThua(g, e2, p);// (long)Math.Pow(h, e2); long result = (temp1 * temp2) % p; long d = long.Parse(txtDDeny.Text); if (result == d) { txtCheckConditionDeny4.Text = d + "=d =x^1*g^e2 mod p=" + result; isCompleted = true; btnConfirm.Enabled = true; MessageBox.Show(txtYDeny.Text + " Không phải chữ ký giả mạo"); } else { txtCheckConditionDeny4.Text = d + "=d #x^1*g^e2 mod p=" + result; btnCalC6.Enabled = true; } } private bool isCompleted = false; private void btnCalC6_Click(object sender, EventArgs e) { int f1 = int.Parse(txtF1Deny.Text); int f2 = int.Parse(txtF2Deny.Text); int y = int.Parse(txtYDeny.Text); int h = int.Parse(txtH.Text); int p = int.Parse(txtP.Text); long temp1 = LuyThua(y, f1, p);// (long)Math.Pow(y, e1); long temp2 = LuyThua(h, f2, p);// (long)Math.Pow(h, e2); long c = (temp1 * temp2) % p; txtC6Deny.Text = c.ToString(); btnCalD7.Enabled = true; } private void btnCalD7_Click(object sender, EventArgs e) { // -tinh a^-1 mod q -int a = int.Parse(txtPrivateKey.Text.Trim()); int q = 233; 77 int m = NghichDao(q, a); int c = int.Parse(txtC6Deny.Text); int p = int.Parse(txtP.Text); long d = LuyThua(c, m, p); txtD7Deny.Text = d.ToString(); btnCheckCondition8.Enabled = true; } private void btnCheckCondition8_Click(object sender, EventArgs e) { // tinh x^e1*g^e2 mod p -int f1 = int.Parse(txtF1Deny.Text); int f2 = int.Parse(txtF2Deny.Text); //Văn if (txtXMessageDeny.TextLength == 0) { MessageBox.Show("Bạn cần nhập văn bản"); txtXMessageDeny.Focus(); return; } long x = 0; if (long.TryParse(txtXMessageDeny.Text.Trim(), out x) == false) x = convertStringToLong(txtXMessageDeny.Text.Trim()); int g = int.Parse(txtG.Text); int p = int.Parse(txtP.Text); } long temp1 = LuyThua(x, f1, p);// (long)Math.Pow(y, e1); long temp2 = LuyThua(g, f2, p);// (long)Math.Pow(h, e2); long result = (temp1 * temp2) % p; long d = long.Parse(txtD7Deny.Text); if (result == d) { txtResultCondition8.Text = d + "=d =x^1*g^e2 mod p=" + result; isCompleted = true; MessageBox.Show(txtYDeny.Text + " Không phải chữ ký giả mạo"); } else txtResultCondition8.Text = d + "=d #x^1*g^e2 mod p=" + result; btnConfirm.Enabled = true; private void btnConfirm_Click(object sender, EventArgs e) { if (isCompleted) { MessageBox.Show(txtYDeny.Text + " chữ ký thật"); return; } int e1 = int.Parse(txtE1Deny.Text); int e2 = int.Parse(txtE2Deny.Text); int f1 = int.Parse(txtF1Deny.Text); int f2 = int.Parse(txtF2Deny.Text); int g = int.Parse(txtG.Text); int p = int.Parse(txtP.Text); int d = int.Parse(txtDDeny.Text); int D = int.Parse(txtD7Deny.Text); // -N tinh (d*g^-e2)^f1 mod p long val1 = LuyThua(d, f1, p); long val2 = LuyThua(g, e2, p); 78 long val3 = LuyThua(val2, f1, p); long val4 = LuyThua(val3, -1, p); long dExp= (val1 * val4) % p; txtdExp.Text = dExp.ToString(); // -N tinh (D*g^-f2)^e1 mod p long Dval1 = LuyThua(d, f1, p); long Dval2 = LuyThua(g, e2, p); long Dval3 = LuyThua(Dval2, f1, p); long Dval4 = LuyThua(Dval3, -1, p); long DExp = (Dval1 * Dval4) % p; txtD_exp.Text = DExp.ToString(); // so sanh de ket luan if (dExp == DExp) MessageBox.Show(txtYDeny.Text + " chữ ký giả mạo văn bản:"+txtXMessageDeny.Text+".\nVì: " + "(d*g^-e2)^f1=(D*g^-f2)^e1=" + DExp); else MessageBox.Show(txtYDeny.Text + " chữ ký thật"); } private void DisableButtonDeny() { btnGDDeny.Enabled = btnCalC6.Enabled = btnCalD7.Enabled = btnCheckCondition8.Enabled = false; btnCheckConditionDeny.Enabled = btnConfirm.Enabled = false; btnExit.Enabled = true; //foreach(Control ctr in panelDeny.Controls) //if (ctr is Button) //{ // Button btn = (Button)ctr; // btn.Enabled = false; //} } private void DisableButtonTest() { btnTestD.Enabled = btnTest.Enabled = false; //foreach (Control ctr in tabControlPanelTest.Controls) // if (ctr is Button) // { // Button btn = (Button)ctr; // btn.Enabled = false; // } } private void ResetDeny() { isCompleted = false; DisableButtonDeny(); btnNCDeny.Enabled = true; } private void txtXMessageDeny_TextChanged(object sender, EventArgs e) { ResetDeny(); } private void txtYDeny_TextChanged(object sender, EventArgs e) { ResetDeny(); } private void txtE1Deny_TextChanged(object sender, EventArgs e) 79 { } ResetDeny(); private void txtE2Deny_TextChanged(object sender, EventArgs e) { ResetDeny(); } private void txtF1Deny_TextChanged(object sender, EventArgs e) { ResetDeny(); } private void txtF2Deny_TextChanged(object sender, EventArgs e) { ResetDeny(); } private void txtTestY_TextChanged(object sender, EventArgs e) { DisableButtonTest(); btnTestC.Enabled = true; } private void txtTestX_TextChanged(object sender, EventArgs e) { DisableButtonTest(); btnTestC.Enabled = true; } private void txtE1_TextChanged(object sender, EventArgs e) { DisableButtonTest(); btnTestC.Enabled = true; } private void txtE2_TextChanged(object sender, EventArgs e) { DisableButtonTest(); btnTestC.Enabled = true; } private void btnExit_Click(object sender, EventArgs e) { if(MessageBox.Show("Bạn chắn muốn thoát?","Xác nhận",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes) this.Close(); } private void txtYDeny_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsDigit(e.KeyChar) == false && char.IsControl(e.KeyChar) == false) e.Handled = true; } private void txtF1Deny_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsDigit(e.KeyChar) == false && char.IsControl(e.KeyChar) == false) e.Handled = true; } private void txtF2Deny_KeyPress(object sender, KeyPressEventArgs e) { 80 if (char.IsDigit(e.KeyChar) == false && char.IsControl(e.KeyChar) == false) false) false) false) false) } } e.Handled = true; } private void txtE1_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsDigit(e.KeyChar) == false && char.IsControl(e.KeyChar) == e.Handled = true; } private void txtE2_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsDigit(e.KeyChar) == false && char.IsControl(e.KeyChar) == e.Handled = true; } private void txtTestY_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsDigit(e.KeyChar) == false && char.IsControl(e.KeyChar) == e.Handled = true; } private void txtPrivateKey_KeyPress_1(object sender, KeyPressEventArgs e) { if (char.IsDigit(e.KeyChar) == false && char.IsControl(e.KeyChar) == e.Handled = true; } private void txtMessage_KeyPress(object sender, KeyPressEventArgs e) { } i LỜI CAM ĐOAN Tôi Phạm Văn Đoan, học viên lớp cao học khoá 2010-2012 ngành CNTT, chuyên ngành Khoa học máy tính Tôi xin cam đoan luận văn "Nghiên cứu mạng riêng ảo ứng dụng thương mại điện tử" nghiên cứu, tìm hiểu hướng dẫn PGS.TS.Trịnh Nhật Tiến, chép người khác Tôi xin chịu trách nhiệm lời cam đoan Thái Nguyên, tháng năm 2012 Tác giả Phạm Văn Đoan ii MỞ ĐẦU Chương KHÁI QUÁT VỀ MẠNG RIÊNG ẢO VÀ THƯƠNG MẠI ĐIỆN TỬ .3 1.1 KHÁI QUÁT VỀ MẠNG RIÊNG ẢO 1.1.1 Khái niệm mạng riêng ảo 1.1.2 Phân loại mạng riêng ảo 1.1.3 Các giáo thức đường hầm mạng riêng ảo 1.1.4 Các thành phần mạng riêng ảo 22 1.2 THƯƠNG MẠI ĐIỆN TỬ VÀ MỘT SỐ BÀI TOÁN TRONG THƯƠNG MẠI ĐIỆN TỬ .25 1.2.1 Khái niệm thương mại điện tử 25 1.2.2 Các mô hình thương mại điện tử .27 1.2.3 Đặc trưng lợi ích thương mại điện tử 27 1.2.4 Các quy trình toán thương mại điện tử 31 Chương 32 MỘT SỐ VẤN ĐỀ VỀ AN TOÀN THÔNG TIN .32 TRONG BÀI TOÁN THỎA THUẬN KÝ KẾT HỢP ĐỒNG ĐIỆN TỬ 32 2.1 BẢO MẬT THÔNG TIN HỢP ĐỒNG TRỰC TUYẾN 32 2.1.1 Bài toán .32 2.1.2 Công cụ bảo mật liệu mạng riêng ảo 33 2.2 TOÀN VẸN THÔNG TIN HỢP ĐỒNG TRỰC TUYẾN 40 2.2.1 Bài toán .40 2.2.2 Công cụ bảo toàn liệu mạng riêng ảo 40 2.3 XÁC THỰC VÀ CHỐNG CHỐI BỎ HỢP ĐỒNG TRỰC TUYẾN 42 2.3.1 Bài toán .42 2.3.2 Công cụ xác thực chống chối bỏ mạng riêng ảo .44 Chương 57 CHƯƠNG TRÌNH THỰC NGHIỆM 57 3.1 BÀI TOÁN .57 3.2 PHÂN TÍCH, THIẾT KẾ HỆ THỐNG 58 3.3 QUY TRÌNH TRIỂN KHAI 58 3.3.1 Cơ sở lý thuyết 58 3.3.2 Xây dựng mạng riêng ảo 61 3.3.3 Xây dựng chương trình chữ ký chống chối bỏ (Chi tiết phần phụ lục) .64 KẾT LUẬN 67 PHỤ LỤC .69 iii DANH MỤC CÁC CỤM TỪ VIẾT TẮT Từ viết tắt Từ đầy đủ Ý nghĩa 3DES Triple Data Encryption Standard Thuật toán mật mã 3DES AD Analog to Digital Chuyển đổi tương tự sang số ADSL Asymmetric Digital Subscriber Line Công nghệ truy nhập đường dây thuê bao số bất đối xứng AES Advanced Encryption Standard Chuẩn mật mã cao cấp AH Authentication Header Giao thức tiêu đề xác thực API Application Programming Interface Giao diện chương trình ứng dụng ATM Asynchronous Tranfer Mode Công nghệ truyền tải không đồng ARIN American Registry for Internet Number Tiêu chuẩn Mỹ cho địa Internet BGP Border Gateway Protocol Giao thức định tuyến cổng miền BICC Bearer Independent Call Control Protocol Giao thức điều khiển gọi độc lập với kênh mang B-ISDN Broadband Integrated Service Digital Network Mạng số đa dịch vụ băng rộng CA Certificate Authority Nhà phân phối chứng thực số CIR Committed Information Rate Tốc độ thông tin cam kết CHAP Challenge Handshake Authentication Protocol Giao thức xác thực yêu cầu bắt tay CR Cell Relay Công nghệ chuyển tiếp tế bào CSU Channel Service Unit Đơn vị dịch vụ kênh DCE Data Communication Equipment Thiết bị truyền thông liệu DES Data Encryption Standard Thuật toán mật mã DES DHCP Dynamic Host Configuration Protocol Giao thức cấu hình host động DNS Domain Name System hệ thống tên miền DSL Digital Subcriber Line Đường dây thuê bao số DSP Digital Signal Processors Bộ xử lý tín hiệu số DSU Data Service Unit Đơn vị dịch vụ liệu EAP Extensible Authentication Protocol Giao thức xác thực mở rộng ESP Encapsulating Security Payload Giao thức tải an ninh đóng gói iv FCS Frame Check Sequence Chuỗi kiểm tra khung FR Frame Relay Chuyển tiếp khung liệu GVPNS Global VPN Service Dịch vụ VPN toàn cầu ICMP Internet Control Message Protocol Giao thức tin điều khiển Internet ICV Intergrity Check Value Giá trị kiểm tra tính toàn vẹn IETF Internet Engineering Task Force Cơ quan chuẩn Internet IKE Internet Key Exchange Giao thức trao đổi khoá Internet IGP Interior Gateway Protocol Giao thức định tuyến miền IN Intelligent Network Mạng thông minh IP Internet Protocol Giao thức Internet IP-Sec Internet Protocol Security Giao thức an ninh Internet ISAKMP Internet Security Asociasion and Key Management Protocol Giao thức quản lý khoá kết hợp an ninh Internet ISDN Integrated Service Digital Network Mạng số đa dịch vụ ISO International Standard Organization Tổ chức chuẩn quốc tế ISP Internet Service Provider Nhà cung cấp dịch vụ internet L2F Layer Forwarding Giao thức chuyển tiếp lớp L2TP Layer Tunneling Protocol Giao thức đường ngầm lớp LAC L2TP Access Concentrator Bộ tập trung truy cập L2TP LAN Local Area Network Mạng cục LCP Link Control Protocol Giao thức điều khiển liên kết LNS L2TP Network Server Máy chủ mạng L2TP MAC Message Authentication Code Mã xác thực tin MD5 Message Digest Thuật toán MD5 MG Media Gateway Cổng kết nối phương tiện MGC Media Gateway Controller Thiết bị điều khiển truy nhập MGCP Media Gateway Control Protocol Giao thức điều khiển cổng kết nối phương tiện MIB Management Information Base Cơ sở liệu thông tin quản lý MPLS Multi Protocol Laber Switching Bộ định tuyến chuyển mạch nhãn MPPE Microsoft Point-to-Point Encryption Mã hoá điểm-điểm Microsoft MTU Maximum Transfer Unit Đơn vị truyền tải lớn v NAS Network Access Server Máy chủ truy nhập mạng NCP Network Control Protocol Giao thức điều khiển mạng NDIS Network Driver Interface Specification Xác định giao diện mạng NGN Next Generation Network Mạng hệ sau NSA National Security Agency Cơ quan an ninh quốc gia Mỹ PAP Passwork Authentication Protocol Giao thức xác thực mật PDU Protocol Data Unit Đơn vị liệu giao thức PKI Public Key Infrastructure Cơ sở hạ tầng khoá công khai POP Point of presence Điểm truy cập truyền thống PPP Point to Point Protocol Giao thức điểm tới điểm PPTP Point to Point Tunneling Protocol Giao thức đường ngầm điểm tới điểm PVC Permanrnent Virtual Circuit Mạng ảo cố định QoS Quality of Service Chất lượng dịch vụ RAS Remote Access Service Dịch vụ truy nhập từ xa RADIUS Remote Authentication Dial-In User Xác thực người dùng quay số từ xa Service RRAS Routing and Remote Access Server Máy chủ truy cập định hướng truy vập từ xa SA Securty Association Kết hợp an ninh SDH Synchronous Digital Hierachy Phân cấp số đồng SG Signling Gateway Cổng kết nối báo hiệu SIG Session Initiation Protocol Giao thức khởi tạo phiên SONET Synchronous Optical Network Mạng quang đồng SPI Sercurity Parameter Index Chỉ số thông số an ninh RTP Real Time Protocol Giao thức thời gian thực SVC Switched Virtual Circuit Mạch ảo chuyển mạch TCP Transmission Control Protocol Giao thức điều khiển đường truyền TE Terminal Equipment Thiết bị đầu cuối UNI User Network Interface Giao diện mạng người sử dụng UDP User Datagram Protocol Giao thức UDP VC Virtual Circuit Kênh ảo vi VCI Virtual Circuit Identifier Nhận dạng kênh ảo VNS Virtual Network Service Dịch vụ mạng ảo VPI Virtual Path Identifier Nhận dạng đường ảo VPN Virtual Private Network Mạng riêng ảo WAN Wide Area Network Mạng diện rộng vii DANH MỤC HÌNH VẼ Trang Hình 1.1 Hình 1.2 Hình 1.3 Hình 1.4 Hình 1.5 Hình 1.6 Hình 1.7 Hình 1.8 Hình 1.9 Hình 1.10 Hình 1.11 Hình 2.1 Hình 2.2 Hình 2.3 Hình 2.4 Hình 2.5 Hình 2.6 Hình 2.7 Hình 2.8 Hình 2.9 Hình 3.1 Hình 3.2 Hình 3.3 Hình 3.4 Hình 3.5 Hình 3.6 Hình 3.7 Hình 3.8 Mô hình mạng riêng ảo VPN truy nhập từ xa VPN cục VPN mở rộng Cấu trúc gói liệu đường hầm PPTP Kết nối LAN - LAN PPTP IKE Phase Thoả thuận thông số bảo mật IPSec Đường hầm IPSec thiết lập Kết thúc đường hầm Đặc trưng máy khách VPN Mã hoá khoá bí mật hay đối xứng Sơ đồ thuật toán DES Mạng Fiesel Thuật toán mã hoá khoá công cộng Hệ thống đáp ứng thách đố người dùng Hàm băm thông dụng MD5, SHA-1 Cấu trúc MD5/SHA Xác thực tính toàn vẹn liệu dựa xác thực tin MAC Chữ ký số Mô hình mô mạng riêng ảo Giao diện cài đặt thông số VPN client Giao diện đăng nhập Trạng thái báo kết nối thành công Giao diện kiểm tra kết nối VPN Giao diện ký Giao diện kiểm thử chữ ký Giao diện chối bỏ chữ ký 6 12 19 20 21 21 23 33 35 36 37 45 49 50 51 52 59 60 61 61 61 62 62 63 ... đỡ bảo cho em thời gian thực luận văn 3 Chương KHÁI QUÁT VỀ MẠNG RIÊNG ẢO VÀ THƯƠNG MẠI ĐIỆN TỬ 1.1 KHÁI QUÁT VỀ MẠNG RIÊNG ẢO 1.1.1 Khái niệm mạng riêng ảo Cụm từ Virtual Private Network (mạng. .. dây mạng cục Tính riêng tư trusted VPN thể chỗ nhà cung cấp dịch vụ đảm bảo sử dụng mạch thuê riêng Các mạng riêng xây dựng đường dây thuê thuộc dạng “trusted VPN” Mạng riêng ảo an toàn mạng riêng. .. cộng mạng riêng nhằm nhăn chặn xâm nhập trái phép vào mạng riêng Cổng kết nối VPN cung cấp khả tạo đường hầm mã hoá liệu riêng trước chuyển đến mạng công cộng 25 1.2 THƯƠNG MẠI ĐIỆN TỬ VÀ MỘT