BẢO MẬT THÔNG TIN HỢP ĐỒNG TRỰC TUYẾN

Một phần của tài liệu Nghiên cứu mạng riêng ảo và ứng dụng trong thương mại điện tử (Trang 34 - 89)

2.1.1. Bài toán

Trong thỏa thuận hợp và ký kết hợp đồng điện tử, việc bảo đảm bí mật thông tin của hợp đồng, của nhà cung cấp cũng nhƣ của khách hàng là vấn đề vô cùng quan trọng. Đây là một yêu cầu đầu tiên trong quy trình thỏa thuận ký kết hợp đồng điện tử. Bởi việc thông tin hợp đồng cũng nhƣ thông tin về khách hàng không đƣợc bảo mật tốt sẽ dẫn đến việc sử dụng các thông tin đó vào các mục đích không chính đáng hoặc sử dụng trái phép. Ví dụ khi hệ thống bị hacker tấn công, nếu thông tin hợp đồng, mà cụ thể là về thông tin cá nhân của khách hàng bị đánh cắp thì rất có

thể nó sẽ bị dùng để lấy cắp các tài khoản thanh toán, hoặc sử dụng để tham gia các hoạt động mua bán phi pháp. Quan trọng hơn là hệ thống đã để bị mất tính bảo mật của dữ liệu cũng nhƣ vi phạm đến tính riêng tƣ của các cá nhân, tổ chức là khách hàng – ngƣời mà đã cung cấp cho hệ thống của nhà cung cấp dịch vụ thông tin đó.

Qua đây có thể thấy vấn đề bảo mật cho dữ liệu trong thỏa thuận ký kết hợp đồng điện tử là vô cùng quan trọng, nó mang tính chất sống còn cho một hệ thống thƣơng mại điện tử. Điều này yêu cầu cần có giải pháp để giải quyết đƣợc vấn đề bảo mật thông tin trong ký kết hợp đồng trực tuyến. Giải pháp sử dụng công cụ bảo mật trong công nghệ mạng riêng ảo sẽ đảm bảo đƣợc sự an toàn cho thông tin hợp đồng trực tuyến.

2.1.2. Công cụ bảo mật dữ liệu trong mạng riêng ảo

Trong công nghệ mạng riêng ảo, kỹ thuật đƣờng hầm (tunnel) đã sử dụng các thuật toán mã hóa để bảo mật dữ liệu “lƣu thông bên trong” đƣờng hầm. Mã hoá đƣợc thực hiện dựa trên hai thành phần: đó là một thuật toán và một khoá. Một thuật toán mã hoá là một chức năng toán học nối phần văn bản hay các thông tin dễ hiểu với một chuỗi các số gọi là khoá để tạo ra một văn bản mật mã khó hiểu.

Có nhiều kiểu thuật toán mã hoá khác nhau đƣợc sử dụng. Tuy nhiên, có hai kiểu thuật toán mã hoá sử dụng khoá đƣợc sử dụng phổ biến đó là: thuật toán mã hoá khoá bí mật (secret key) hay còn gọi là mã hoá đối xứng (symmetric) và thuật toán mã hoá khóa công khai (Public key).

a) Thuật toán mã hoá khoá bí mật (hay đối xúng)

Encrypt

Encrypt DecryptDecrypt

Ecryption Message Clear Message Clear Message Shared Secret Key Shared Secret Key

Thuật toán đối xứng đƣợc định nghĩa là một thuật toán khoá chia sẻ sử dụng để mã hoá và giải mã một bản tin. Các thuật toán mã hoá đối xứng sử dụng chung một khoá để mã hoá và giải mã bản tin, điều đó có nghĩa là cả bên gửi và bên nhận đã thoả thuận, đồng ý sử dụng cùng một khoá bí mật để mã hoá và giải mã.

Khi ta có nhiều sự trao đổi với N ngƣời khác nhau thì ta phải giữ và dấu N khoá bí mật với mỗi khoá đƣợc dùng cho mỗi sự trao đổi.

Ƣu điểm của mã hoá khoá đối xứng:

- Thuật toán này mã hoá và giải mã rất nhanh, phù hợp với một khối lƣợng lớn thông tin

- Chiều dài khoá từ 40÷168 bit.

- Các tính toán toán học dễ triển khai trong phần cứng. - Ngƣời gửi và ngƣời nhận chia sẻ chung một mật khẩu. Cơ chế mã hoá đối xứng nảy sinh vấn đề đó là:

- Việc nhận thực bởi vì đặc điểm nhận dạng của một bản tin không thể chúng minh đƣợc.

- Do hai bên cùng chiếm giữ một khoá giống nhau nên đều có thể tạo và mã hoá và cho là ngƣời khác gửi bản tin đó. Điều này gây nên cảm giác không tin cậy về nguồn gốc của bản tin đó.

Một số thuật toán đối xứng nhƣ DES (Data Encryption Standard) có độ dài khoá là 56 bit, 3DES có độ dài khoá là 168 bit và AES (Advanced Encryption Standard) có độ dài khoá là 128 bit, 256 bit hoặc 512 bit. Tất cả các thuật toán này sử dụng cùng một khoá để mã hoá và giải mã thông tin.

Thuật toán DES (Data Encryption Standard)

Chuẩn mật mã dữ liệu DES đƣợc đƣa ra từ năm 1977 tại Mỹ và đã đƣợc sử dụng rộng rãi. DES là cơ sở để xây dựng thuật toán tiên tiến hơn là 3DES. Hiện nay DES vẫn đƣợc sử dụng cho những ứng dụng không đòi hỏi tính an toàn cao, và khi chuẩn mật mã AES chƣa chính thức thay thế nó.

Key (64 bít)

Round 1 Paintext Block

(64 bit) Hoán vị khởi tạo

(IP) Round 2 Round 16 Bỏ Parity (56 bit) Hoán vị đảo (RP) Ciphertext Block (64 bits)

Hình 2.2 : Sơ đồ thuật toán DES

DES là sự kết hợp của hai kỹ thuật cơ bản trong mật mã là xáo trộn (confusion) và xếp lại (defusion). Hai kỹ thuật này đƣợc thực hiện trong một vòng (round) với đầu vào là khối dữ liệu plaintext và khoá. DES có 16 vòng, và hai kỹ thuật trên đƣợc thực hiện trên khối plaintext 16 lần. Mỗi vòng của thuật toán DES đều có một khoá 48 bit riêng bằng cách liên tục dịch và hoán vị khoá 56 bit trong từng vòng một.

Độ dài khoá là 56 bit nhƣng thực chất là 64 bit, trong đó có 8 bit kiểm tra chẵn lẻ và các bit này bị loại bỏ khi khoá đƣợc đƣa vào thuật toán DES.

Trƣớc khi thực hiện thuật toán DES, khối plaintext 64 bit đi qua bƣớc hoán vị khởi tạo IP (Initial Permutation), không phụ thuộc vào khoá. Sau khi thực hiện 16 vòng lặp, dữ liệu đi qua bƣớc hoán vị đảo RP (Reversed Permutation) và tạo thành một khối bản tin mã hoá (ciphertext). Thực chất các bƣớc hoán vị này không làm tăng tính an toàn cho DES. (adsbygoogle = window.adsbygoogle || []).push({});

Trung tâm của vòng xử lý DES là mạng Fiestel (tên của nhà khoa học tại IBM). Sơ đồ mạng Fiestel nhƣ hình vẽ:

Li-1 Ri-1 Khoái-1 Li Ri Khoái S-Box (Thay thế) Hoán vị mở rộng Hoán vị nén Dịch Dịch P-Box (Hoán vị) 32 56 48 48 56 32 32 32 32 Mạng Fiestel Hình 2.3: Mạng Fiesel

Khối 64 bit plaintext đầu vào đƣợc chia thành hai khối 32 bit: khối phải (Ri-1) và khối trái (Li-1). Khối phải đầu vào thành khối trái đầu ra (Li). Khối phải cũng đi vào một mạch xử lý: Đầu tiên, nó đƣợc chuyển thành 48 bit bởi hoán vị mở rộng EP (Expansion Permutation); sau đó thực hiện phép toán logic XOR với một khoá 48 bit; 48 bit sau khi đã XOR với khoá đƣợc đƣa tới 8 khối thay thế S-Box (Box substitution), mỗi khối có 6 đầu vào, 4 đầu ra; 32 bit sau khi đi ra khỏi các khối thay thế S đƣợc đƣa tới khối hoán vị P-Box (P_ Box permutation). Đầu ra của mạch xử lý đƣợc XOR với khối trái (Li-1) và trở thành khối phải của dữ liệu đầu ra (Ri). Mỗi vòng trong thuật toán DES đều có một khoá 48 bằng cách liên tục dịch và hoán vị khoá 56 bit trong từng vòng một.

Một phiên bản của DES là 3 DES đƣợc gọi nhƣ thế bởi vì thuật toán thực hiện ba hoạt động mã hoá dữ liệu. Nó thực hiện một quá trình mã hoá, một quá trình giải mã và sau đó là quá trình mã hoá khác, mỗi quá trình thực hiện với một khoá 56 bit khác nhau. Qúa trình này tạo ra một khoá kết hợp 168 bit, cung cấp phƣơng thức mã hoá mạnh. Tất cả các sản phẩm và phần mềm Cisco VPN đều hỗ trợ thuật toán mã hoá 3DES với khoá 168 bit và thuật toán DES 56 bit.

b) Thuật toán mã hoá khoá công cộng

Thuật toán mã hoá khoá công cộng đƣợc định nghĩa là một thuật toán sử dụng một cặp khoá để mã hoá và giải mã bảo mật một bản tin. Theo thuật toán này thì sử dụng một khoá để mã hoá và một khoá khác để giải mã nhƣng hai khoá này có liên

quan với nhau tạo thành một cặp khoá duy nhất của một bản tin, chỉ có hai khoá này mới có thể mã hoá và giải mã cho nhau.

Encrypt

Encrypt DecryptDecrypt Encrypted Message clear Message clear Message Transfer’s Public Key Receive’s Public Key

Hình 2.4 : Thuật toán mã hoá khoá công cộng

Ƣu điểm của thuật toán mã hoá khoá công cộng

- Khoá công cộng của khoá đôi có thể đƣợc phân phát một cách sẵn sàng mà không sợ rằng điều này làm ảnh hƣởng đến việc sử dụng các khoá riêng. Không cần phải gửi một bản sao chép khoá công cộng cho tất cả các đáp ứng mà chúng ta có thể lấy nó từ một máy chủ đƣợc duy trì bởi một công ty hay là nhà cung cấp dịch vụ.

- Cho phép xác thực nguồn phát của bản tin.

Nhƣơc điểm của mã hoá khoá công cộng là quá trình mã hoá và giải mã rất châm, chậm hơn nhiều so với mã hoá khoá bí mật. Do đó nó thƣờng đƣợc sử dụng để mã hoá các khoá phiên, một lƣợng dữ liệu nhỏ. Một số thuật toán sử dụng mã hoá khoá công cộng nhƣ RSA, Diffie-Hellman.

- Hệ thống mật mã khoá công khai RSA

Kỹ thuật mã hoá khoá công cộng RSA đƣợc phát triển năm 1977, và cái tên RSA bắt nguồn từ tên của ba nhà phát triển là: Ron Rivest, Adir Shamir và Leonard Adleman.

Cơ sở của thuật toán dựa trên tính phức tạp của phép phân tích một số tự nhiên lớn thành các ƣớc số nguyên tố, đƣợc hiểu là có thể dễ dàng nhân A và B đƣợc kết quả là C nhƣng không dễ dàng suy ra A và B khi biết C, với A, B là những số tƣơng đối lớn.

Hàm một chiều trong thuật toán RSA có dạng y= f(x)= Xe Các bƣớc thực hiện thuật toán RSA

Bƣớc 1: Tạo khoá

- Tạo hai số nguyên lớn p,q - Tính n = p.q; 0(n)=(p-1)(q-1)

- Chọn ngẫu nhiên 1<e<0(n) thoả (0(n), e)=1 (e là số nguyên tố cùng nhau với 0(n)).

- Tính d=e-1mod 0(n) - Khoá công khai Ku=[e,n] - Khoá bí mật Kr=[d,n] Bƣớc 2: Mật mã - Đoạn tin x<n - Mật mã y=Xe mod n Bƣớc 3 Giải mã

- Khối tin mã:y - Giải mã x=Yd

mod n.

Khoá RSA bao gồm ba giá trị số đặc biệt đƣợc sử dụng trong các cặp để mã hoá và giải mã dữ liệu. Khoá công cộng RSA gồm một giá trị khoá công cộng (thƣờng là 317 hay 65.537) và một mạch toán modulus để lấy giá trị tuyệt đối. Modulus là sản phẩm của hai số lớn chính đƣợc chọn một cách ngẫu nhiên, đƣợc liên kết một cách toán học đến khoá công công đƣợc chọn. Khoá riêng đƣợc tính toán từ hai số chính phát ra từ modulus và giá trị khoá công cộng.

Thực tế, để thực hiện thuật toán mật mã khoá công khai RSA còn phải liên quan đến một loạt các vấn đề lý thuyết số phức tạp, nhƣ thuật toán Euclide để tìm ƢSCLN của hai số nguyên, thuật toán Miller-Rabin để kiểm tra tính nguyên tố của các số tự nhiên lớn.

Kỹ thuật này tạo ra các khoá công cộng phù hợp với các khoá riêng đặc biệt. Điều này tạo cho RSA những ƣu điểm là cho phép ngƣời giữa một khoá riêng mã hoá dữ liệu với khoá đó, vì thế bất kỳ ngƣời nào có một bản sao của khoá công cộng đều có thể giải mã nó sau đó.

- Kỹ thuật Diffie-Hellman

Kỹ thuật Diffie-Hellman (DH) là thuật toán mã hoá khoá công cộng thực tế đầu tiên và trong thực tế kỹ thuật này đƣợc úng dụng rất nhiều cho việc quản lý khoá. Thuật toán DH cho phép tự động bảo mật trao đổi khoá qua một mạng không an toàn. (adsbygoogle = window.adsbygoogle || []).push({});

Với DH, mỗi đối tƣợng ngang hàng tạo ra một cặp khoá chung và riêng. Khoá riêng đƣợc tạo ra bởi mỗi đối tƣợng ngang hàng và đƣợc giữ bí mật, không bao giờ chia sẻ. Khoá chung đƣợc tính toán từ khoá riêng bởi mỗi đối tƣợng ngang hàng và đƣợc truyền trên kênh không an toàn. Mỗi đối tƣợng tổ hợp khoá chung của đối tƣợng ngang hàng khác với khoá riêng của chúng, và tính toán để tao ra cùng một số mật mã chia sẻ. Số mật mã chia sẻ đựoc biến đổi thành một khoá chia sẻ. Khoá mật mã chia sẻ luôn truyền trên một kênh không an toàn.

Trao đổi khoá DH là một phƣơng thức trao đổi khoá chung cung cấp cho hai đối tƣợng ngang hàng IPSec thiết lập một mật mã chia sẻ mà chỉ chúng biết.

Quá trình DH có thể chia thành 5 bƣớc:

1. Quá trình DH bắt đầu với mỗi đối tƣợng ngang hàng tạo ra một số nguyên lớn p và q. Mỗi đối tƣợng ngang hàng gửi cho đối tƣợng khác số nguyên này của chúng. Ví dụ, A gửi p tới B. Mỗi đối tƣợng ngang hàng sau đó sẽ sử dụng giá trị p, q để tạo ra g, p là primitive root.

2. Mỗi đối tƣợng tạo ra một khoá DH riêng A là Xa, B là Xb.

3. Mỗi đối tƣợng ngang hàng tạo ra một khoá DH chung. Khoá riêng của mỗi đối tƣợng là sự kết hợp của số Prime p và primitive root g. Đối với A là Ya = g^Xa mod p, với B là Yb=g^Xb mod p.

4. Các khoá chung Ya và Yb đƣợc trao đổi trong công cộng.

5. Mỗi đối tƣợng ngang hàng tạo ra một số mật mã chia sẻ ZZ bằng cách tổ hợp khoá chung nhận đƣợc từ đối tƣợng ngang hàng tƣơng ứng với khoá riêng của nó. Đối với A là ZZ= YbXa mod p, đối với B là ZZ= YaXb mod p. Số mật mã chia sẻ ZZ đƣợc sử dụng trong việc tìm ra các khoá mật mã và xác thực.

2.2. TOÀN VẸN THÔNG TIN HỢP ĐỒNG TRỰC TUYẾN 2.2.1. Bài toán 2.2.1. Bài toán

Trong thỏa thuận hợp đồng trực tuyến giữa A và B về đặt mua và cung cấp một loại mặt hàng hay dịch vụ nào đó, giả sử A là ngƣời soạn hợp đồng và gửi đến B xem xét và thỏa thuận, nếu B đồng ý với các điều khoản của hợp đồng thì B sẽ ký lên hợp đồng đó. Vấn đề đặt ra là liệu có một kẻ thứ ba trái phép nào đó đã chặn xem và sửa bản hợp đồng đó, nội dung bản hợp đồng B nhận đƣợc có đúng với nội dung mà A đã soạn thảo?

Khi B nhận đƣợc bản hợp đồng từ A, giả sử trên đƣờng truyền bản hợp đồng không bị sửa đổi, B đồng ý với các điều khoản trong bản hợp đồng và B ký chấp nhận hợp đồng, hay nếu B không đồng ý với tất cả các điều khoản, B bổ xung một số điều khoản để thỏa thuận lại và gửi lại cho A. Trong quá trình bản hợp đồng đã đƣợc B ký gửi về A, liệu bản hợp đồng đó có đúng nhƣ bản hợp đồng mà B đã gửi hay đã bị sửa đổi - bị xâm phạm tính toàn vẹn thông tin của bản hợp đồng này.

Từ những thực tế trên đòi hỏi phải có phƣơng pháp, công cụ để bảo đảm đƣợc tính toàn vẹn của thông tin hợp đồng trực tuyến.

2.2.2. Công cụ bảo toàn dữ liệu trong mạng riêng ảo

Trong công nghệ mạng riêng ảo, toàn vẹn bản tin đƣợc thực hiện nhờ sử dụng một hàm băm toán học để tính toán đặc trƣng của bản tin hay của file dữ liệu. Đặc trƣng này đƣợc gọi là tóm tắt bản tin MD (Message Digest) và độ dài phụ thuộc vào hàm băm đƣợc sử dụng. Tất cả hoặc một phần của tóm tắt bản tin đƣợc truyền với dữ liệu tới host đích, nơi mà sẽ thực hiện cùng hàm băm để tái tạo tóm tắt bản tin này. Tóm tắt bản tin nguồn và đích sẽ đƣợc đối chiếu. Bất cứ sai lệch nào đều có nghĩa là bản tin đã biến đổi kể từ khi bản tin nguồn đƣợc thiết lập. Sự tƣơng xứng với nhau có nghĩa là chắc chắn dữ liệu không bị biến đổi trong quá trình truyền.

Khi sử dụng giao thức IPSec, bản tin tóm tắt đƣợc thiết lập nhờ sử dụng trƣờng không biến đổi từ gói tin IP và trƣờng biến đổi đƣợc thay thế bằng giá trị 0 hoặc giá trị có thể dự đoán đƣợc. Tính toán MD và sau đó là đặt nó vào trƣờng dữ liệu nhận thực ICV (Intergrity Check Value) của AH. Thiết bị đích sau đó copy MD từ AH và tách trƣờng dữ liệu nhận thực trƣớc khi tính toán lại MD.

Với giao thức IPSec ESP, việc xử lý cũng tƣơng tự, tóm tắt bản tin đƣợc tạo

Một phần của tài liệu Nghiên cứu mạng riêng ảo và ứng dụng trong thương mại điện tử (Trang 34 - 89)