Luận văn Nghiên cứu một số bài toán về an toàn thông tin trong thỏa thuận và ký kết hợp đồng của thương mại điện tử

Luận văn này đã trình bày chi tiết nhất có thể một số bài toán về an toàn thông tin trong thỏa thuận và ký kết hợp đồng của thương mại điện tử. Tác giả đã làm được:  Nghiên cứu lý thuyết và thực tế để tổng hợp lại các vấn đề sau: - Tổng quan về ATTT trong TMĐT. - Các phương pháp bảo vệ thông tin trong thỏa thuận và ký kết hợp đồng điện tử. - Một số bài toán về ATTT trong thỏa thuận và ký kết hợp đồng điện tử. Theo sự tìm hiểu của mình, đây là một trong những nghiên cứu về mã hóa AES và chữ ký không thể phủ nhận.  Đã mã hóa và giải mã thành công cho một số hợp đồng giao dịch cụ thể, dùng chữ ký không thể phủ nhận để chống chối bỏ hợp đồng giao dịch. Tuy nhiên do thời gian có hạn nên tác giả chưa đưa ra được chương trình thủy vân số để giấu thủy vân vào trong hợp đồng. Trong tương lai, nếu có cơ hội và thời gian, tác giả sẽ cải thiện những vấn đề còn tồn tại như đã đề cập ở trên để đưa đề tài được hoàn thiện hơn nữa.

pdf68 trang | Chia sẻ: yenxoi77 | Lượt xem: 628 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu một số bài toán về an toàn thông tin trong thỏa thuận và ký kết hợp đồng của thương mại điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ơng đương hay các khóa có liên quan trở nên không khả thi. Đối với phương pháp vi phân rút gọn, việc phân tích chủ yếu khai thác đặc tính tập trung thành vùng của các vết vi phân trong một số phương pháp mã hóa. Trong thuật toán AES, số lượng chu kỳ lớn hơn 6, không tồn tại phương pháp công phá mật mã nào hiệu quả hơn phương pháp thử sai. Tính chất phức tạp của biểu thức S-box cùng với hiệu ứng khuếch tán giúp cho thuật toán không thể bị phân tích bằng phương pháp nội suy. Đối với phương pháp thử sai với chiều dài khóa 256-bit tương ứng 2256 hay 1.2 x 10 77 khả năng có thể xảy ra. Thậm chí nếu sử dụng một trong những siêu máy tính mạnh nhất hiện nay là Roadrunner 54 của IBM để xử lý thì cũng cần 3.5 x 1054 năm để kiểm tra tất cả khả năng (Roadrunner có khả năng thực hiện 1.042 triệu tỉ phép tính / giây). 1.3.3.2. Hệ mã hóa RSA Sơ đồ Là hệ mã hóa sử dụng các phép tính toán trong Zn, trong đó n là tích của hai số nguyên tố phân biệt p và q. Ta nhận thấy: (n) = (p-1).(q-1). Mô tả thuật toán: 1. Tạo cặp khóa (bí mật, công khai) (a, b) : Chọn bí mật nguyên tố lớn p, q và tính n = p * q, công khai n, đặt P = C = Zn Tính bí mật (n) = (p-1).(q-1). Chọn khóa công khai b < (n) và b lànguyên tố cùng nhau với (n). Khóa bí mật a là phần tử nghịch đảo của b theo mod (n) ta có: a*b  1 (mod (n). Cặp khóa (bí mật, công khai) K = (a, b)/ a, b  Z(n) , a*b  1 (mod (n)). Với Bản rõ x  P và Bản mã y  C, định nghĩa: 2. Mã hoá: y = ek (x) = x b mod n 3. Giải mã: x = dk (y) = y a mod n 23 Ta kiểm tra xem các phép mã hóa và giải mã có phải là nghịch đảo của nhau không vì: a*b  1 (mod (n)). nên ta có: a*b  t(n) +1 với một số nguyên t ≥ 1 nào đó. Giả sử x  Zn * khi đó ta có: (x b ) a  xt(n) +1(mod n)  (xt(n))x(mod n)  (1t)x(mod n)  x(mod n) Thực hiện: Thiết lập hệ RSA cần tuân theo các bước sau: 1. Tạo hai số nguyên tố lớn p và q. 2. Tính n = p × q và (n) = (p-1).(q-1). 3. Chọn một số ngẫu nhiên b (với điều kiện 1 < b < (n)) sao cho UCLN(b, (n)) = 1 4. Tính a = b -1 mod (n) dùng thuật toán Euclide mở rộng. 5. Công bố n và b trong cùng một danh bạ và dùng chúng làm khóa công khai. Độ an toàn 1. Hệ mã hóa RSA là tất định nghĩa là với một bản rõ x và một khóa bí mật a, thì chỉ có duy nhất một bản mã y. 2. Hệ mật RSA an toàn, khi giữ được bí mật khoá giải mã a, p, q, (n). Thám mã dễ dàng tính được (n) = (q-1)*(p-1) nếu biết được p và q. Thám mã sẽ tính được a theo thuật toán Euclide mở rộng nếu biết được (n) Việc phân tích n thành tích của p và q là bài toán không dễ dàng hay nói cách khác là bài toán “khó”. Độ an toàn của hệ mật RSA dựa vào việc giải bài toán phân tích số nguyên dương n thành tích của hai số nguyên tố lớn p và q. 1.4. Chữ ký số 1.4.1. Khái niệm “Chữ ký số” Để chứng thực nguồn gốc hay hiệu lực của một tài liệu [1] trước đây người ta dùng chữ ký “tay”, ghi vào phía dưới của mỗi tài liệu. Như vậy người ký phải trực tiếp “ký tay“ vào tài liệu. Ngày nay các tài liệu được số hóa, người ta cũng có nhu cầu chứng thực nguồn gốc hay hiệu lực của các tài liệu này. Rõ ràng không thể “ký tay“ vào tài liệu, vì chúng không được in ấn trên giấy. Tài liệu “số” (hay tài liệu “điện tử”) là một xâu các bit (0 hay 1), xâu bít có thể rất dài (có thể hàng nghìn trang). “Chữ ký” 24 để chứng thực một xâu bít tài liệu cũng không thể là một xâu bit nhỏ đặt phía dưới xâu bit tài liệu. Một “chữ ký” như vậy chắc chắn sẽ bị kẻ gian sao chép để đặt dưới một tài liệu khác bất hợp pháp. “Chữ ký số” để chứng thực một “tài liệu số” đó chính là “bản mã” của xâu bit tài liệu. Người ta tạo ra “chữ ký số” (chữ ký điện tử) trên “tài liệu số” giống như tạo ra “bản mã” của tài liệu với “khóa lập mã”. Như vậy “ký số” trên “tài liệu số” là “ký” trên từng bit tài liệu. Kẻ gian khó thể giả mạo “chữ ký số” nếu nó không biết “khóa lập mã”. Để kiểm tra một “chữ ký số” thuộc về một “tài liệu số”, người ta giải mã “chữ ký số” bằng “khóa giải mã”, và so sánh với tài liệu gốc. Ngoài ý nghĩa để chứng thực nguồn gốc hay hiệu lực của các tài liệu số hóa, “chữ ký số” còn dùng để kiểm tra tính toàn vẹn của tài liệu gốc. Mặt mạnh của “chữ ký số” hơn “chữ ký tay” còn là ở chỗ người ta có thể “ký” vào tài liệu từ rất xa (trên mạng công khai). Hơn thế nữa, có thể “ký” bằng các thiết bị cầm tay tại khắp mọi nơi miễn là kết nối được vào mạng. Đỡ tốn thời gian, sức lực, chi phí. “Ký số” thực hiện trên từng bit tài liệu, nên độ dài của “chữ ký số” ít nhất cũng bằng độ dài của tài liệu. Do đó thay vì ký trên tài liệu dài, người ta thường dùng “hàm băm” để tạo “đại diện” cho tài liệu, sau đó mới “Ký số” lên “đại diện” này. Sơ đồ chữ ký số: Sơ đồ chữ ký là bộ năm (P, A, K, S, V ), trong đó: P là tập hữu hạn các văn bản có thể. A là tập hữu hạn các chữ ký có thể. K là tập hữu hạn các khoá có thể. S là tập các thuật toán ký. V là tập các thuật toán kiểm thử. Với mỗi khóa k  K, có thuật toán ký Sig k  S, Sig k : P A, có thuật toán kiểm tra chữ ký Ver k  V, Ver k : P  A đúng, sai, thoả mãn điều kiện sau với mọi x  P, y  A: Đúng, nếu y = Sig k (x) Ver k (x, y) = Sai, nếu y  Sig k (x) 25 Chú ý: Người ta thường dùng hệ mã hóa khóa công khai để lập “Sơ đồ chữ ký số”. Ở đây khóa bí mật a dùng làm khóa “ký”, khóa công khai b dùng làm khóa kiểm tra “chữ ký”. Ngược lại với việc mã hóa, dùng khóa công khai b để lập mã, dùng khóa bí mật a để giải mã. Phân loại “Chữ ký số”: 1. Phân loại chữ ký theo khả năng khôi phục thông điệp gốc. - Chữ ký có thể khôi phục thông điệp gốc - Chữ ký không thể khôi phục thông điệp gốc 2. Phân loại chữ ký theo mức an toàn: - Chữ ký “không thể phủ nhận” - Chữ ký “một lần” 3. Phân loại chữ ký theo ứng dụng đặc trưng: - Chữ ký “mù” (Blind Signature). - Chữ ký “nhóm” (Group Signature). - Chữ ký “bội” (Multy Signature). - Chữ ký “mù nhóm” (Blind Group Signature). - Chữ ký “mù bội” (Blind Multy Signature). 1.4.2. Một số chữ ký số tiêu biểu 1.4.2.1. Chữ ký RSA Sơ đồ [1]: Chú ý: - So sánh giữa sơ đồ chữ ký RSA và sơ đồ mã hóa RSA ta thấy có sự tương ứng. 1. Tạo cặp khóa (bí mật, công khai) (a, b) : Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = A = Zn Tính bí mật (n) = (p-1).(q-1). Chọn khóa công khai b < (n), nguyên tố cùng nhau với (n). Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b  1 (mod (n). Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b  Zn , a*b  1 (mod (n)). 2. Ký số: Chữ ký trên x  P là y = Sig k (x) = x a (mod n), y  A (R1) 3. Kiểm tra chữ ký: Verk (x, y) = đúng  x  y b (mod n) (R2) 26 - Việc ký là mã hoá, việc kiểm thử lại chính là việc giải mã - Việc “ký số” vào x tương ứng với việc “mã hoá” tài liệu x. - Kiểm thử chữ ký chính là việc giải mã “chữ ký”, để kiểm tra xem tài liệu đã giải mã có đúng là tài liệu trước khi ký không? Thuật toán và khóa kiểm thử “chữ ký” là công khai, ai cũng có thể kiểm thử chữ ký được. 1.4.2.2. Chữ ký không thể phủ định (Chaum - van Antwerpen) Giới thiệu: Sơ đồ chữ ký không thể chối bỏ được David Chaum và Hans van Antwerpen đề xuất năm 1989. Giả sử tài liệu cùng chữ ký từ G gửi đến N. Khi N yêu cầu G cùng kiểm thử chữ ký thì một vấn đề nảy sinh là làm sao để ngăn cản G chối bỏ một chữ ký mà anh ta đã ký, G có thể tuyên bố rằng chữ ký đó là giả mạo? Để giải quyết tình huống trên, cần có thêm giao thức chối bỏ, bằng giao thức này, G có thể chứng minh một chữ ký là giả mạo. Nếu G từ chối tham gia vào giao thức đó thì có thể xem rằng G không chứng minh được chữ ký đó là giả mạo. Sơ đồ [6]:  Chuẩn bị các tham số: + Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là khó giải, đồng thời thỏa mãn điều kiện p = 2 * q + 1, q cũng là nguyên tố. + Chọn g ∈ là phần tử có cấp q. + Chọn 1 ≤ a ≤ q – 1, tính h = ga mod p. + G là nhóm con (theo phép nhân) cấp q sinh ra bởi g của + Tập hữu hạn các văn bản có thể P, tập hữu hạn các chữ ký có thể A + P = A = G + Khóa công khai được định nghĩa pk = ( p, g, h ), khóa bí mật sk = a. 27 1.5. Đại diện tài liệu và hàm băm 1.5.1. Hàm băm (Hàm tạo đại diện tài liệu) Khái niệm Hàm băm [1]: Hàm băm là thuật toán không dùng khóa để mã hóa (ở đây dùng thuật ngữ “băm” thay cho “mã hóa”), nó có nhiệm vụ “lọc” (băm) tài liệu và cho kết quả là một giá trị “băm” có kích thước cố định, còn gọi là “đại diện tài liệu” hay “đại diện bản tin” hay “đại diện thông điệp”. Hàm băm là hàm một chiều, nghĩa là giá trị của hàm băm là duy nhất và từ giá trị băm này “khó có thể” suy ngƣợc lại được nội dung hay độ dài ban đầu của tài liệu gốc.  Thuật toán ký: Dùng khóa bí mật sk ở trên để ký lên thông điệp x, chữ ký là: y = sigsk( x ) = x a mod p  Giao thức kiểm thử: Bob muốn xác thực chữ ký y trên thông điệp x được ký bởi Alice. Giao thức được thực hiện như sau: - Bob chọn ngẫu nhiên e1, e2∈ 𝑍𝑞 - Bob tính c = 𝑦𝑒1ℎ𝑒2 mod p và gửi cho Alice. - Alice tính d = 𝑐𝑎 −1 𝑚𝑜𝑑 𝑞 mod p và gửi cho Bob. - Bob chấp nhận y là chữ ký đúng trên x khi và chỉ khi d ≡ 𝑥𝑒1𝑔𝑒2 mod p  Giao thức chối bỏ chữ ký: - Bob chọn ngẫu nhiên e1, e2 ∈ 𝑍𝑞 - Bob tính c = 𝑦𝑒1ℎ𝑒2 mod p và gửi cho Alice. - Alice tính d = 𝑐𝑎 −1 𝑚𝑜𝑑 𝑞 mod p và gửi cho Bob. - Bob kiểm tra d ≢ 𝑥𝑒1𝑔𝑒2 mod p - Bob chọn ngẫu nhiên f1, f2 ∈ 𝑍𝑞 - Bob tính C = 𝑦𝑓1ℎ𝑓2 mod p và gửi cho Alice - Alice tính D = 𝐶𝑎 −1 𝑚𝑜𝑑 𝑞 mod p và gửi cho Bob - Bob kiểm tra D ≢ 𝑥𝑓1𝑔𝑓2 mod p - Bob kết luận chữ ký y thực sự là giả mạo nếu: (𝑑𝑔−𝑒2)𝑓1 ≡ (D𝑔−𝑓2)𝑒1 mod p 28 Đặc tính của Hàm băm: Hàm băm h là hàm một chiều có các đặc tính sau: 1. Với tài liệu đầu vào (bản tin gốc) x, chỉ thu được giá trị băm duy nhất z = h(x). 2. Nếu dữ liệu trong bản tin x bị thay đổi hay bị xóa để thành bản tin x’, thì giá trị băm h(x’)  h(x). Cho dù chỉ là một sự thay đổi nhỏ, ví dụ chỉ thay đổi 1 bit dữ liệu của bản tin gốc x, thì giá trị băm h(x) của nó cũng vẫn thay đổi. Điều này có nghĩa là: hai thông điệp khác nhau thì giá trị băm của chúng cũng khác nhau. 3. Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của nó. Nghĩa là: với thông điệp x thì “dễ” tính được z = h(x), nhưng lại “khó” tính ngược lại được x nếu chỉ biết giá trị băm h(x) (kể cả khi biết hàm băm h). Ứng dụng của hàm băm: 1. Với bản tin dài x, thì chữ ký trên x cũng sẽ dài, như vậy tốn thời gian “ký”, tốn bộ nhớ lưu giữ “chữ ký”, tốn thời gian truyền “chữ ký” trên mạng. Người ta dùng hàm băm h để tạo đại diện bản tin z = h(x), nó có độ dài ngắn (chẳng hạn 128 bit). Sau đó ký trên z, như vậy chữ ký trên z sẽ nhỏ hơn rất nhiều so với chữ ký trên bản tin gốc x. 2. Hàm băm dùng để xác định tính toàn vẹn dữ liệu. 3. Hàm băm dùng để bảo mật một số dữ liệu đặc biệt (chẳng hạn bảo vệ mật khẩu, bảo vệ khóa mật mã, ) 1.5.2. Các Hàm băm Các hàm băm dòng MD (MD2, MD4, MD5) do Rivest đề xuất. Giá trị băm theo các thuật toán này có độ dài cố định là 128 bit. Hàm băm MD4 đưa ra vào năm 1990. Một năm sau phiên bản mạnh hơn là MD5 cũng được đề xuất. Hàm băm an toàn SHA, phức tạp hơn nhiều, cũng dựa trên các phương pháp tương tự, được công bố trong Hồ sơ Liên bang năm 1992 và được chấp nhận làm tiêu chuẩn vào năm 1993 do Viện Tiêu Chuẩn và Công Nghệ Quốc Gia (NIST). Giá trị băm theo thuật toán này có độ dài cố định là 160 bit. 1.6. Thủy vân số (Digital watermarking) Theo [1] Thuỷ vân số là một kỹ thuật mới dựa trên lý thuyết tổng hợp của nhiều lĩnh vực khác nhau như: lý thuyết thông tin, lý thuyết truyền thông, mật mã học, xử lý tín hiệu số, xử lý ảnh. Mục đích của kỹ thuật này là giấu một lượng thông tin có ích vào tài liệu số cần bảo vệ bản quyền, lượng tin này được gọi là Thuỷ vân. 29 Thuỷ vân số là một kỹ thuật dùng để bảo vệ bản quyền các tài liệu số, chống sao chép, phân biệt giả mạo. Các tài liệu này có thể là văn bản, audio, video, phần mềm, ảnh, bản vẽ, các hình khối 3D. 1.6.1 Phân loại Thủy vân số Có hai loại thuỷ vân: thuỷ vân hiện (visible watermark), thuỷ vân ẩn (invisible watermark). Hình 1.12: Phân loại Thủy vân Thuỷ vân hiện là loại thuỷ vân mà người ta có thể nhận biết được nó bằng mắt thường. Nói cách khác, nó như một loại dấu nổi. Hình 1.13: Ví dụ về thuỷ vân hiện (trên trang web của Thư viện số liên bang Mỹ) Thuỷ vân ẩn là loại thuỷ vân mà ta không thể nhận biết được nó trong ảnh bằng mắt thường. 30 Hình 1.14: Giấu thông tin trong ảnh 1.6.2. Các ứng dụng của Thuỷ vân với ảnh số - Bảo vệ bản quyền: Kỹ thuật thuỷ vân cho phép gắn một “dấu hiệu” vào tài liệu, nhờ đó có thể xác định được người nắm giữ bản quyền. Có thể gắn thêm một dấu hiệu khác gọi là “vân tay” để xác định người dùng sản phẩm. “Dấu hiệu” có thể là một dãy số như mã hàng hoá, một message hoặc một logo. Thuật ngữ “thuỷ vân” đã có từ thời xa xưa, xuất phát từ cách đánh dấu giấy tờ với một logo. - Xác thực ảnh và bảo toàn dữ liệu: Thuỷ vân có thể dùng để xác thực ảnh số và phát hiện giả mạo. Thuỷ vân dùng để xác định xem ảnh là nguyên bản hay đã chịu sự tác động của con người, bằng các ứng dụng xử lý ảnh. Thuỷ vân được giấu lúc đầu phải mang tính chất không bền vững, để bất kỳ sự thay đổi nhỏ nào tới ảnh cũng có thể làm hỏng thuỷ vân, hay phát hiện được thay đổi đối với thuỷ vân. Tuy vậy, thuỷ vân vẫn phải tồn tại với các phép biến đổi ảnh thông thường như chuyển đổi định dạng, lấy mẫu, hay nén. - Giấu dữ liệu và gán nhãn ảnh: Giấu dữ liệu là “giấu” nó vào một tài liệu khác (chẳng hạn như một bức ảnh), người khác “khó” nhận ra nó bằng mắt thường. Điều này cho phép trao đổi thông tin mà không gây chú ý đối với người ngoài. Khối lượng dữ liệu dấu được là quan trọng nhất đối với mục đích này. Gán nhãn ảnh là ứng dụng để cung cấp thêm thông tin cho người dùng hoặc nhằm phục hồi ảnh từ cơ sở dữ liệu. 31 CHƢƠNG 2. CÁC BÀI TOÁN VỀ ATTT TRONG THỎA THUẬN VÀ KÝ KẾT HỢP ĐỒNG CỦA TMĐT 2.1. Thỏa thuận và ký kết hợp đồng của TMĐT 2.1.1. Khái niệm về giao kết hợp đồng điện tử Giao kết hợp đồng [7] là thuật ngữ được Bộ luật dân sự Việt Nam năm 2005 sử dụng để chỉ việc ký kết hợp đồng. Do vậy, giao kết hợp đồng điện tử là quá trình thương thảo, đàm phán, tạo lập và ký kết thông qua trao đổi các dữ liệu điện tử. Các hợp đồng như vậy sẽ được lưu trữ ở dạng dữ liệu điện tử. Luật Giao dịch điện tử Việt Nam năm 2005 định nghĩa: “Giao kết hợp đồng điện tử là sử dụng thông điệp dữ liệu để thực hiện một phần hay toàn bộ giao dịch trong quá trình giao kết hợp đồng”. Quá trình giao kết hợp đồng có thể được thực hiện qua nhiều giao dịch, từ việc quảng cáo hàng hóa (dịch vụ), chào bán, chào mua hàng hóa (dịch vụ) đến chấp nhận mua hay bán hàng hóa, dịch vụ đó. Khi một số các giao dịch này hay toàn bộ các giao dịch này được thực hiện thông qua việc trao đổi dữ liệu (như trao đổi dưới dạng điện tín, điện báo, fax, thư điện tử...) thì quá trình đó được gọi là quá trình giao kết hợp đồng điện tử. Trên thực tế việc giao kết hợp đồng điện tử có thể đơn giản là việc người tiêu dùng thực hiện một giao dịch nhỏ, đơn giản thông qua các phương tiện điện tử như đặt mua vé máy bay, vé tàu qua điện thoại hoặc Internet; đặt mua sách, mua hàng hóa tiêu dùng thông qua chào hàng hoặc đặt hàng thông qua website bán hàng của doanh nghiệp kinh doanh hàng hóa trên mạng, thanh toán thông qua thẻ ngân hàng. Hợp đồng điện tử cũng có thể được giao kết giữa hai hay nhiều công ty để thực hiện giao dịch, trao đổi nhằm bán hoặc mua hàng hóa, dịch vụ nhằm mục đích thương mại. Quá trình giao kết này có thể dẫn đến giá trị một hợp đồng lớn và tính chất phức tạp, trong thực tiễn TMĐT phương thức này được gọi là B2B (BUSINESS TO BUSINESS). 2.1.2. Chủ thể của hợp đồng điện tử Chủ thể tham gia giao kết hợp đồng điện tử gồm các bên - người bán và người mua hàng hoá (hoặc cung ứng dịch vụ) qua mạng. Để hợp đồng có hiệu lực, chủ thể phải có năng lực hành vi, năng lực pháp lý. Tuy nhiên, việc xác định năng lực chủ thể của các chủ thể trong giao kết hợp đồng điện tử sẽ trở nên khó khăn hơn rất nhiều so với trong hợp đồng truyền thống. Những khó khăn đó là: - Người bán trên mạng chắc chắn không muốn và không thể bán hàng hoá và dịch vụ cho mọi đối tượng vào mạng Internet. Họ bị ràng buộc và chi phối bởi các quy định pháp lý của nước mình cũng như nước ngoài tham gia giao kết với họ. Chẳng hạn 32 lệnh cấm vận của Mỹ với Iran, Libya, Cuba sẽ làm vô hiệu hoá các hợp đồng điện tử được giao kết giữa các cá nhân và tổ chức của các nước này với nhau. Hoặc theo quy định của pháp luật mỗi nước, một mặt hàng hoá hay dịch vụ đối với nước này là hợp pháp nhưng ở nước khác lại bị cấm lưu thông cũng làm cho hợp đồng điện tử được giao kết để mua hàng hay dịch vụ không thực hiện được dù đã giao kết. Vì vậy, chỉ một sơ suất nhỏ trong việc xác định năng lực của các chủ thể sẽ có thể dẫn đến hợp đồng điện tử vô hiệu và gây ra nhiều tổn thất thiệt hại cho người bán. - Khó khăn nhất trong việc xác định năng lực chủ thể đối với các doanh nghiệp cung cấp hàng hoá (dịch vụ) qua mạng là khó xác định được xem liệu khách hàng có đủ năng lực hành vi hay chưa? Vấn đề rắc rối phát sinh khi khách hàng ở tuổi vị thành niên. Cụ thể: Một là, theo quy định của pháp luật ở một số nước, có một số loại hàng hoá cấm bán cho đối tượng là vị thành niên như thuốc lá, rượu, sách báo khiêu dâm v.v.. .Theo pháp luật của những nước này, người bán trong trường hợp này có thể bị buộc vào tội hình sự hoặc phải chịu trách nhiệm dân sự nếu không biết chắc khách hàng của mình đã đủ tuổi hành vi hay chưa? Rất khó xác định được điều này khi mua hàng qua mạng. Hai là, các hợp đồng giao kết với tuổi vị thành niên mà không nhằm phục vụ nhu cầu sinh hoạt thiết yếu của chúng cũng sẽ bị vô hiệu. Vấn đề là hợp đồng sẽ bị vô hiệu với vị thành niên nhưng vị thành niên sẽ được miễn trách nhiệm và sẽ gây ra nhiều hậu quả pháp lý cho người bán. - Sự xuất hiện của người thứ ba trong giao kết hợp đồng điện tử. Có thể thấy vai trò của người thứ ba trong việc giao kết hợp đồng điện tử, vai trò của bên thứ ba là nhà cung cấp dịch vụ mạng, các cơ quan chứng thực là rất quan trọng vì họ có thể đảm bảo giá trị pháp lý và tính hiệu lực của hợp đồng điện tử. Họ chính là người truyền, lưu các thông điệp số, các thông tin điện tử, cung cấp chứng thực xác nhận độ tin cậy, độ chính xác của các thông điệp số và thông tin điện tử đó. Vì vậy, để các hoạt động TMĐT phát huy hết vai trò của nó một cách có hiệu quả thì pháp luật về TMĐT cần phải có các quy định về trách nhiệm và giới hạn trách nhiệm của các nhà cung cấp dịch vụ mạng với các thông tin mà họ gửi, nhận và lưu trữ trong máy chủ. Đồng thời cũng cần phải ban hành các quy định pháp lý cụ thể điều chỉnh hoạt động của các cơ quan chứng thực trên mạng. Những quy định này chính là cơ sở pháp lý hướng dẫn việc giao kết hợp đồng điện tử mà các chủ thể giao kết hợp đồng điện tử, đặc biệt là các doanh nghiệp kinh doanh trên mạng phải nghiên cứu để tuân thủ trước khi thực hiện giao kết hợp đồng điện tử nói chung và giao kết hợp đồng thương mại điện tử nói riêng, nếu họ muốn thành công trong lĩnh vực kinh doanh đặc biệt này. 33 Tóm lại, việc xác định năng lực của chủ thể trong giao kết hợp đồng điện tử là vô cùng quan trọng, với tính đặc thù của loại hình kinh doanh này mang tính phi biên giới nên nó mang trong mình những rủi ro pháp lý về chủ thể giao kết hợp đồng mà những nhà kinh doanh cần hết sức cẩn trọng trong việc giao kết hợp đồng điện tử. Chỉ cần một chút thiếu cẩn trọng trong việc xác định năng lực của chủ thể giao kết hợp đồng điện tử có thể đem lại cho những nhà cung cấp hàng hoá (dịch vụ) những tổn thất và hậu quả pháp lý nghiêm trọng. 2.1.3. Hình thức hợp đồng điện tử Hợp đồng điện tử được thiết lập dưới dạng thông điệp dữ liệu, hay nói cách khác là hợp đồng điện tử không sử dụng các hình thức hợp đồng truyền thống như hợp đồng bằng lời nói, bằng hành vi hay bằng văn bản. Hợp đồng điện tử có thể là hợp đồng được thảo và gửi qua thư điện tử hoặc là hợp đồng nhấn nút đồng ý qua các trang web bán hàng, theo đó khi người mua nhấn vào nút “tôi đồng ý” trên trang web bán hàng (có chứa các điều kiện mua bán trước khi giao dịch hoàn thành) thì hợp đồng được coi là giao kết và các bên phải thực hiện các cam kết của mình. Một trong những vấn đề khó khăn của hợp đồng điện tử là các thoả thuận như vậy thường được thực hiện trong môi trường hoàn toàn trực tuyến. Một môi trường như vậy liệu có mang tính ràng buộc pháp lý hay không? 2.1.4. Nội dung hợp đồng điện tử Nội dung của một hợp đồng điện tử bao gồm các điều khoản thoả thuận giữa các chủ thể. Đối với hợp đồng điện tử, các điều khoản này mang tính kỹ thuật điện tử rất cao và thường do người bán (hoặc người cung ứng dịch vụ) làm sẵn và hiển thị trên web của mình. Vì vậy, khi nói đến nội dung của hợp đồng điện tử, khác với hợp đồng truyền thống - hợp đồng mà khi đàm phán để tiến tới giao kết, các bên thường chỉ chú ý đến các điều khoản chủ yếu làm thành nội dung của hợp đồng như đối tượng của hợp đồng, giá cả, điều kiện thanh toán, điều kiện cơ sở giao hàng v.v...Ở hợp đồng điện tử, các bên giao kết hợp đồng bắt buộc và trước hết phải chú ý đến những quy định có tính kỹ thuật của công nghệ tin học. Đó là cách hiển thị nội dung của hợp đồng điện tử. Nếu không thao tác tốt, chính xác quy trình kỹ thuật này thì việc giao kết hợp đồng điện tử về mặt nội dung cũng không thể đạt được. Vì vậy, khía cạnh pháp lý của quy trình giao kết liên quan đến nội dung của hợp đồng điện tử. Từ đó, có thể khẳng định, các yêu cầu về mặt kỹ thuật của cách hiển thị nội dung của hợp đồng điện tử cũng chính là cơ sở pháp lý mà các bên phải tuân thủ khi giao kết hợp đồng điện tử, đặc biệt là hợp đồng TMĐT. 34 2.2. Các bài toán về ATTT trong thỏa thuận và ký kết hợp đồng của TMĐT Theo [2] thỏa thuận hợp đồng thương mại gồm có hai giai đoạn chính là đàm phán và ký kết hợp đồng. Đàm phán là việc thực hiện một hay nhiều cuộc đối thoại, trao đổi, thương lượng giữa các bên có ý muốn quan hệ đối tác với nhau nhằm tiến đến một thoả thuận chung mà có thể đáp ứng yêu cầu cá nhân hoặc yêu cầu hợp tác kinh doanh của các bên đàm phán. Ký kết hợp đồng làm cho bản hợp đồng có hiệu lực chính là việc ký xác nhận các nội dung đã đàm phán thỏa thuận ở trên. Nhờ Internet mà việc thỏa thuận hợp đồng giữa doanh nghiệp với doanh nghiệp giảm được nhiều thời gian trao đổi giữa đối tác cũng như các khách hàng của họ. Việc tuân theo Luật thương mại được yêu cầu trong các vấn đề đàm phán, thỏa thuận, ký kết hợp đồng, điều này cũng giống như việc thỏa thuận hợp đồng của thương mại truyền thống. Ngoài ra những vấn đề nảy sinh trong thỏa thuận hợp đồng trực tuyến còn có an toàn thông tin trong giao dịch như: đảm bảo bí mật, toàn vẹn thông tin thỏa thuận ký kết hợp đồng, xác minh nguồn gốc giao dịch, chống chối bỏ giao dịch. Hình 2.1: Mô hình giải quyết bài toán  Các bƣớc giải quyết bài toán nhƣ sau: - Bên A Thủy vân số vào nội dung hợp đồng (chẳng hạn có thể Thủy vân vào từng dấu cách trong bản hợp đồng mỗi dấu cách chỉ giấu được 1 bit). Cụ thể: Muốn giấu chữ P H E O vào các dấu cách trong bản hợp đồng thì trong mã nhị phân các chữ này sẽ tương ứng với mã sau: 01010000  P 01001000  H 01000101  E 01001111  O Hợp đồng Thủy vân số, Mã hóa AES, Chữ ký không thể phủ định Đảm bảo tính toàn vẹn thông tin hợp đồng trực tuyến Đảm bảo tính xác thực Chống chối bỏ hợp đồng giao dịch Đàm phán 35 - Bên A sẽ sử dụng hệ mã hóa AES để mã hóa hợp đồng và chuyển cho bên B. - Bên B giải mã hợp đồng (AES) và kiểm tra xem có phải là hợp đồng của bên A gửi không? (Kiểm tra bằng tách Thủy vân). - Nếu bên B thấy hợp đồng hợp lý thì hai bên thỏa thuận ký kết. - Ký hợp đồng bằng chữ ký không thể phủ định để chống chối bỏ hợp đồng giao dịch. 2.2.1. Bảo đảm tính toàn vẹn thông tin hợp đồng trực tuyến Bài toán: Trong thỏa thuận hợp đồng trực tuyến giữa A và B về cung cấp hay đặt mua một loại mặt hàng hay dịch vụ nào đó, giả sử rằng A là người soạn hợp đồng và gửi đến B xem xét và thỏa thuận hợp đồng, sau khi kiểm tra nội dung 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 đó đã xem trộm và sửa bản hợp đồng đó, nội dung bản hợp đồng mà B nhận được liệu có đúng với nội dung mà A đã soạn thảo hay không? Khi B nhận được hợp đồng từ A, giả sử bản hợp đồng không bị sửa đổi trên đường truyền, B đồng ý với các điều khoản trong bản hợp đồng và 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 trong hợp đồng thì B bổ sung 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 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. Giải pháp: Do vậy, để chống lại sự tấn công hay giả mạo thì cần phải làm thế nào cho văn bản khi được gửi đi sẽ “không được nhìn thấy” hoặc có xâm nhập được vào văn bản thì cũng không thể giả mạo. Xuất phát từ nhu cầu đó công nghệ mã hóa và chữ ký số ra đời để giải quyết bài toán bảo mật khi trao đổi thông tin. Để đảm bảo tính toàn vẹn của bản hợp đồng trực tuyến trong khi chúng được truyền đi trên mạng trước hết ta cần một kênh truyền an toàn, với các phương pháp đảm bảo tính toàn vẹn trong giao dịch nói chung, một kỹ thuật đặc trưng quan trọng để đảm bảo tính toàn vẹn hợp đồng giao dịch là dùng chữ ký số và chứng chỉ điện tử. Khi nội dung của bản hợp đồng bị thay đổi, thì chữ ký trên bản hợp đồng đó cũng phải thay đổi theo. Chữ ký điện tử nhằm đảm bảo tính toàn vẹn, duy nhất và không bị sửa đổi dữ liệu gốc bởi người khác. Chữ ký là bằng chứng xác thực người gửi chính là tác giả của thông điệp mà không phải là một ai khác. Không những thế, khi chữ ký điện tử được gắn với thông điệp điện tử thì đảm bảo rằng thông tin trên 36 đường chuyển đi sẽ không bị thay đổi. Mọi sự thay đổi dù nhỏ nhất sẽ đều bị phát hiện dễ dàng. Cụ thể, để đảm bảo tính toàn vẹn thông tin hợp đồng trực tuyến thì tác giả đã sử dụng hệ mã hóa AES như sau: Input (Đầu vào), Output (Đầu ra) của hệ mã hóa AES: Đầu vào và đầu ra của chuẩn mã hóa tiên tiến (AES) đều là các dãy 128 bit, còn gọi là các khối (block), độ dài của mỗi khối này là số bit dữ liệu mà nó chứa. Khóa của chuẩn mã hóa tiên tiến là một dãy có độ dài 128, 192 hoặc 256 bit. Chuẩn mã hóa dữ liệu tiên tiến không làm việc với các giá trị đầu vào, đầu ra, khóa có các đô ̣dài khác (mặc dù thuật toán cơ sở của nó cho phép điều này). Các bit của đầu vào, đầu ra, khóa của hê ̣mã được đánh số từ 0. Trạng thái (State): Các trạng thái bên trong của AES được thực hiện trên một mảng hai chiều và các byte được gọi là trạng thái. Một trạng thái gồm có 4 hàng các byte trong đó mỗi hàng có Nb byte (Nb là kích thước của khối chia cho 32). Mảng trạng thái ký hiệu là s trong đó mỗi byte của mảng có hai chỉ số là hàng r và cột c (0<=r, c<=4). Tại thời điểm bắt đầu input của thuật toán – mảng byte in0, in1,...in15 được copy vào mảng trạng thái theo quy tắc được minh họa bằng hình vẽ. Bảng 3: Các trạng thái của AES Trong đó các giá trị của mảng s và mảng output được tính như sau: s[r,c]=in[r+4c] với mọi 0<=r, c<4 out[r+4c]=s[c,r] với mọi 0<=r, c<4 Biểu diễn trạng thái Bốn cột của mảng trạng thái của thuật toán tạo thành 4 word 32 bit w0, w1,...w3 được biểu diễn như sau: w0 = s0,0 s1,0 s2,0 s3,0 w1 = s0,1 s1,1 s2,1 s3,1 w2 = s0,2 s1,2 s2,2 s3,2 w3 = s0,3 s1,3 s2,3 s3,3 37 Mã hóa và Giải mã AES: Độ dài của input, output và các trạng thái (state) của chuẩn mã hóa cao cấp AES là 128 bit tương ứng vớ i giá tri ̣của Nb = 4 (là số lượng các word 32-bit và cũng là số cột của mỗi trạng thái). Khóa của AES có độ dài là 128, 192, 256 bit tương ứng với các giá trị của Nk là 4, 6, 8 và cũng là số cột của khóa mã hóa. Tương ứng với độ dài của khóa sử dụng số vòng lặp của thuật toán Nr nhận các giá trị 10 (Nk = 4), 12 (Nk = 6) hoăc ̣14 (Nk = 8). Chúng ta có thể minh họa qua bảng sau: Độ dài khóa (Nk từ) Độ dài khối (Nb từ) Số vòng (Nr) AES-128 4 4 10 AES-196 6 4 12 AES-256 8 4 14 Bảng 4: Độ dài khóa AES Quá trình mã hóa và giải mã AES đều sử dụng một hàm lặp kết hợp của bốn hàm biến đổi sau: - Biến đổi thay thế byte sử dụng một bảng thế (S-box) - Số lần dịch của mỗi hàng dịch mảng trạng thái với là khác nhau - Kết hợp dữ liệu của mỗi cột trong mảng trạng thái và cộng một khóa Round Key vào trạng thái z. 1. Thuật toán mã hóa AES Thuật toán mã hóa AES [5] được thực hiện các công việc giống nhau dựa trên 4 hàm (lần lượt theo thứ tự SubBytes(), ShiftRows(), MixColumns(), AddRoundKey() trừ vòng cuối cùng bỏ qua việc thực hiện hàm MixColumns(). 38 Hình 2.2: Sơ đồ thuật toán AES Hàm SubByte(): Hàm SubBytes() sử dụng một bảng thế S-box để thực hiện phép thay thế các byte của mảng trạng thái, bảng thay thế S-box này là khả nghịch, được xây dựng bằng cách kết hợp hai biến đổi: a. Nhân nghịch đảo trên trường hữu hạn GF(28), phần tử {00} được ánh xạ thành chính nó. b. Áp dụng biến đổi Affine sau (trên GF(2)): 39 bi’= bi  b(i+4)mod8  b(i+5)mod8 b(i+6)mod8 b(i+7)mod8 ci, trong đó 0i8 là bit thứ i của byte b tương ứng và ci là bit thứ I của byte c với giá trị {63} hay {01100011} Các phần tử biến đổi affine của S-box có thể được biểu diễn dưới dạng ma trận như sau: Hình 2.3: Các phần tử biến đổi của S-box dưới dạng ma trận Hình dưới đây minh họa kết quả của việc áp dụng hàm biến đổi SubBytes() đối với mảng trạng thái Hình 2.4: Kết quả biến đổi của hàm SubBytes() với mảng trạng thái Trong đó phép cộng thực hiện như phép XOR. Hình dưới trình bày nội dung bảng S-box sau khi tính toán. 40 Hình 2.5: Nội dung bảng S-box sau khi tính toán Ví dụ: xét giá trị {95}, tại bước 1, giá trị tại dòng 9 cột 5 là {95}, sau bước 2 tính nghịch đảo giá trị của ô này là {8A} có dạng nhị phân là 10001010. Thực hiện phép nhân ma trận: Hình 2.6: Kết quả tính toán Kết quả dưới dạng thập lục phân là {2A}. Hàm ShiftRows(): Các byte trong ba hàng cuối của mảng trạng thái sẽ được dịch vòng với số lần dịch khác nhau. Hàng đầu tiên r=0 không bị dịch. Cụ thể hàm này sẽ tiến hành bước đổi sau: S’rc = Sr,(c+shift(r,Nb))modNb (Nb=4) trong đó giá trị dịch shift(r,Nb) phụ thuộc vào số hàng r như sau: shift(1,4)=1, shift(2,4)=2, shift(3,4)=3 41 Thao tác này sẽ chuyển các byte tới các vị trí thấp hơn trong các hàng và các byte thấp nhất sẽ được chuyển lên đầu hàng. Tất cả các mô tả trên có thể minh họa qua hình vẽ sau: Hình 2.7: Minh họa sự dịch vòng Hàm MixColumns(): Hàm này làm việc trên các cột của mảng trạng thái, nó coi mỗi cột của mảng trạng thái như là một đa thức gồm 4 hạng tử. Các cột sẽ được xem như là các đa thức trên GF(28) và được nhân trên modulo x4+1 với một đa thức cố định a(x): a(x) = {03}x 3 + {02}x 2 + {01}x + {02} Có thể biểu diễn bằng phép nhân ma trận: s’(x) = a(x)  s(x)= = Với mọi 0≤c<Nb = 4 Kết quả là bốn byte trong mỗi cột sẽ được thay thế theo công thức sau: s’0,c = ({02}●s0,c)({03}●s1,c) s2,c s3,c s’1,c = s0,c({02}●s1,c) ({03}●s2,c) s3,c s’2,c = s0,cs1,c ({02}●s2,c) ({03}●s3,c) s’3,c = ({03}●s0,c)s1,c s2,c ({02}●s3,c) 42 Có thể minh họa việc thực hiện hàm này bằng hình vẽ sau: Hình 2.8: Minh họa làm việc trên cột trạng thái Hàm AddRoundKey(): Hàm này một khóa vòng (Round Key) sẽ được cộng vào mảng trạng thái bằng một thao tác XOR bit. Mỗi khóa vòng gồm Nb word được sinh ra bởi thủ tục sinh khóa. Các word này sẽ được cộng vào mỗi cột của mảng trạng thái như sau: [s’0,c, s’1,c, s’2,c, s’3,c] = [s0,c, s1,c, s2,c, s3,c round*Nb+c] 0≤c≤Nb = 4 Trong đó [wi] là các word của khóa và round là lần lặp tương ứng với quy ước 0≤round≤Nb. Trong thuật toán mã hóa phép cộng khóa vòng khởi tạo xảy ra với round=0 trước khi các vòng lặp của thuật toán được thực hiện. Hàm AddRoundKey() được thực hiện trong thuật toán mã hóa khi 1≤round≤Nb. Việc thực hiện hàm này có thể được minh họa như trong hình vẽ, trong đó l=round*Nb. Địa chỉ byte trong các word của dãy khóa được mô tả như sau: Hình 2.9: Thực hiện hàm AddRoundKey() 43 Thuật toán sinh khóa (Key Expansion): Thuâṭ toán sinh khóa của AES nhận một khóa mã hóa K sau đó thực hiện một thủ tục sinh khóa để sinh một dãy các khóa cho việc mã hóa. Thủ tục này sẽ sinh tổng số Nb*(Nr+1) word, thủ tục sử dụng một tập khởi tạo Nb word và mỗi một lần lặp trong số Nr lần sẽ cần tới Nb word của dữ liệu khóa. Dãy khóa kết quả là một mảng tuyến tính các word 4-byte được ký hiệu là [wi] trong đó 0<= i < Nb(Nr + 1). Hình 2.10: Quá trình thực hiện Expand Key 2. Thuật toán giải mã AES Thuật toán giải mã [5] về mặt cấu trúc cũng khá giống với thuật toán mã hóa tuy nhiên bốn hàm cơ bản sử dụng là các hàm ngược của các hàm trong thuật toán giải mã bao gồm: InvShiftRows(), InvSubBytes(), InvMixColumns() và AddRoundKey(). Hàm InvSubBytes(): Hàm này là hàm ngược của hàm SubBytes(), hàm sử dụng nghịch đảo của biến đổi Affine bằng cách thực hiện nhân nghịch đảo trên GF(28) Hàm InvShiftRows(): Hàm này là hàm ngược của hàm ShiftRows(). Các byte của ba hàng cuối (của mảng trạng thái) sẽ được dịch vòng với vị trí dịch là khác nhau. Hàng đầu tiên không bị dịch, ba hàng cuối bị dịch đi Nb-shift(r,Nb) byte trong đó giá trị shift(r,Nb) phụ thuộc vào số hàng Cụ thể hàm này tiến hành xử lý như sau: s’r,(c+shift(r,Nb))modNb = sr,c 0<r<4, 0≤c<Nb (Nb=4) 44 Hình 2.11: Minh họa thực hiện hàm InvShiftRows() Hàm InvMixColumns(): Hàm này là hàm ngược của hàm MixColumns(). Nó làm việc trên các cột của mảng trạng thái, coi mỗi cột như một đa thức bốn hạng tử. Các cột được xem như là các đa thức trên GF(28) và được nhân theo modulo x4+1 với một đa thức cố định là a-1(x) a -1 (x) = {0b}x 3 + {0d}x 2 + {09}x + {0e} Có thể được mô tả bằng phép nhân ma trận sau: s’(x) = a-1(x)  s(x) = = trong đó 0≤c<Nb Kết quả là bốn byte trong mỗi cột sẽ được thay thế theo công thức sau: s’0,c = ({0e}●s0,c)({0b}●s1,c) ({0d}●s2,c) ({09}●s3,c) s’1,c = ({09}●s0,c)({0e}●s1,c) ({0b}●s2,c) ({0d}●s3,c) s’2,c = ({0d}●s0,c)({09}●s1,c) ({0e}●s2,c) ({0b}●s3,c) s’3,c = ({0b}●s0,c)({0d}●s1,c) ({09}●s2,c) ({0e}●s3,c) 45 Biến đổi nghịch AddRoundKey(): Hàm nghịch của hàm AddRoundKey() cũng chính là nó vì hàm này chỉ có phép toán XOR bit. 2.2.2. Bảo đảm tính xác thực Bài toán: Xác thực là một thủ tục nhằm kiểm tra các thông báo nhận được, xem chúng có đến từ một nguồn hợp lệ và có bị sửa đổi hay không? Xác thực thông báo cũng có thể kiểm tra tính trình tự và tính đúng lúc. Chữ ký số là một kỹ thuật xác thực. Nó cũng bao gồm nhiều biện pháp để chống lại việc chối bỏ đã gửi hay đã nhận thông báo của hai bên gửi và bên nhận. Khi nhận được đơn đặt hàng, hay giao dịch nào đó, chủ doanh nghiệp phải biết rõ thông tin đó có phải đã đến từ một nguồn tin cậy hay không? Khách hàng cũng như doanh nghiệp cần phải biết chính xác rằng họ đang giao dịch với ai, và đối tác giao dịch của họ có đáng tin cậy không, có an toàn không? Đôi khi khách hàng, hay các nhà giao dịch không biết được mình đang giao dịch với ai. Rất nhiều công ty ma, hay các địa chỉ ảo, các website giả mạo website của doanh nghiệp để lừa gạt khách hàng, gây thiệt hại không nhỏ cho khách hàng giao dịch, hay các doanh nghiệp tham gia TMĐT Xác thực thông báo sẽ bảo vệ hai thành viên (trao đổi thông báo qua thành viên thứ ba). Tuy nhiên hai thành viên không bảo vệ lẫn nhau. Giả thiết, John gửi một thông báo đã xác thực cho Mary. Có thể xảy ra tranh chấp giữa hai thành viên như sau: Mary có thể làm giả một thông báo khác và tuyên bố rằng thông báo này có nguồn gốc từ John. Mary có thể tạo một thông báo và gắn mã xác thực bằng khóa chung của họ. John có thể chối bỏ đã gửi thông báo. Vì Mary có thể làm giả thông báo và vì vậy không có cách nào để chứng minh John đã gửi thông báo. Giải pháp: Các tranh chấp xảy ra giữa người gửi và người nhận không có sự tin cậy tuyệt đối. Có nhiều giải pháp cho vấn đề xác thực như hàm băm, chứng chỉ điện tử, chữ ký số, thủy vân số. Giải pháp thường dùng là chữ ký số. Chữ ký số, tương tự như chữ ký bằng tay, nó phải có một số tính chất sau: - Có khả năng xác thực tác giả và thời gian ký. - Có khả năng xác thực nội dung tại thời điểm ký. - Các thành viên thứ ba có thể kiểm tra để giải quyết tranh chấp. 46 Vì chức năng ký số bao hàm cả chức năng xác thực, dựa vào các tính chất cơ bản này ta đưa ra một số yêu cầu sau cho chữ ký số: - Chữ ký số phải là một mẫu bít phụ thuộc vào thông báo được ký. - Chữ ký phải dùng thông tin duy nhất nào đó từ người gửi, nhằm ngăn chặn tình trạng giả mạo và chối bỏ. - Tạo ra chữ ký số dễ dàng. - Dễ nhận ra và dễ kiểm tra chữ ký. - Khó làm giả chữ ký số bằng cách tạo ra một thông báo mới cho một chữ ký số hiện có, hoặc tạo ra một chữ ký giả cho một thông báo có trước. - Trong thực tế, cần phải lưu giữ bản sao của chữ ký số. Để bảo đảm tính xác thực thông tin hợp đồng trực tuyến, tác giả sử dụng Thủy vân số như sau: 1. Quy trình nhúng Thủy vân Hình 2.12: Quy trình nhúng Thủy vân Phương tiện chứa (Image, Audio, Video, Text) Phương tiện chứa đã được thủy vân Khóa Thông tin xác nhận Bộ nhúng Thông tin Phân phối 47 2. Xác thực Thủy vân Hình 2.13: Xác thực Thủy vân 2.2.3. Chống chối bỏ hợp đồng giao dịch Bài toán: Với hợp đồng thông thường, đối tác hai bên biết mặt nhau, cùng nhau trực tiếp ký kết hợp đồng với sự chứng kiến của nhiều người với luật giao dịch rõ ràng minh bạch. Giao kết hợp đồng TMĐT được thực hiện trong môi trường Internet , các bên tham gia ký kết hợp đồng xa nhau về địa lý, thậm chí họ có thể không biết mặt nhau, thì vấn đề chối bỏ hợp đồng có thể xảy ra rất cao, mặt khác, luật pháp cho TMĐT chưa đủ, gây ra thiệt hại lớn cho các bên tham gia ký kết hợp đồng. Ví dụ ông A muốn đặt mua một mặt hàng của công ty X ở nước ngoài. Sau khi thỏa thuận ký kết hợp đồng, Công ty X chuyển hàng đến ông A (kèm theo đó là chi phí vận chuyển, thuế hải quan), khi sản phẩm đến, ông A thay đổi ý kiến, không muốn mua sản phẩm này nữa, và ông A đã chối bỏ những gì mình đã thỏa thuận (không có bên thứ 3 thực nào xác nhận cuộc thỏa thuận hợp đồng mua hàng giữa ông A và công ty X) Việc này gây thiệt hại cho công ty X. Trường hợp công ty X mang hàng đến cho ông A, nhưng mặt hàng không đúng như trong thỏa thuận, mà công ty X cứ một mực khẳng định rằng ông A đã đặt mua sản phẩm này. Điều này gây thiệt hại cho ông A. Phương tiện chứa (Image, Audio, Video, Text) Phương tiện cần xác thực Khóa Thủy vân Bộ giải tin Kiểm định 48 Như vậy, chối bỏ thỏa thuận hợp đồng gây thiệt hại cho các đối tượng tham gia TMĐT. Chống chối bỏ giao dịch là bài toán quan trọng trong quá trình thỏa thuận hợp đồng trong TMĐT. Giải pháp: Để chống chối bỏ hợp đồng giao dịch TMĐT trước hết cần có một hành lang pháp lý cho giao dịch TMĐT. Về mặt kỹ thuật, giải pháp thông dụng để đảm bảo chống chối bỏ thỏa thuận hợp đồng TMĐT, đó là chữ ký số và chứng thực điện tử. Ví dụ chữ ký không thể phủ nhận được, đó là chữ ký có thể chứng minh xác thực rằng anh A có tham gia vào một giao dịch điện tử nào hay không, chữ ký trên văn bản giao dịch có đúng đích thực của anh A hay không, nếu đó là chữ ký của A mà A chối bỏ, sẽ có giao thức chứng minh, buộc A không được chối bỏ giao dịch hợp đồng đã thỏa thuận. Để chống chối bỏ hợp đồng giao dịch thì tác giả sử dụng chữ ký không thể phủ định. Cụ thể, sơ đồ chữ ký không phủ định được gồm 3 phần: một thuật toán ký, một giao thức kiểm thử và một giao thức chối bỏ. Hình 2.14: Kiểm tra tính đúng đắn của chữ ký Ký tài liệu và gửi G N Kiểm tra tra tính đúng đắn của chữ ký A B Chữ ký số không thể phủ nhận 49 Hình 2.15: Giao thức kiểm thử chữ ký số Hình 2.16: Giao thức chối bỏ chữ ký số. Ký tài liệu và gửi N yêu cầu G tham gia kiểm thử chữ ký Kiểm thử chữ ký số N đã copy chữ ký của G gửi cho A G N A Ký tài liệu và gửi N yêu cầu G tham gia kiểm thử chữ ký Kiểm thử chữ ký số G từ chối tham gia kiểm thử chữ ký G chối bỏ chữ ký mà anh ta đã ký G có thể tuyên bố chữ ký đó là giả mạo Chữ ký đó là giả mạo Cần có thêm giao thứ chối bỏ G N 50 CHƢƠNG 3. THỰC NGHIỆM CHƢƠNG TRÌNH 3.1. Giới thiệu chƣơng trình Trong chương này tác giả sẽ thực hiện một số bước trong quá trình thỏa thuận và ký kết hợp đồng của TMĐT bao gồm mã hóa và ký số hợp đồng để đảm bảo toàn vẹn thông tin và chống chối bỏ hợp đồng giao dịch. 3.1.1. Chƣơng trình mã hóa AES Đây là chương trình Mã hóa theo Hệ mã hóa tiêu chuẩn tiên tiến-Advanced Encyption standard (AES) được viết bằng ngôn ngữ C#. Chức năng: - Chương trình có thể mã hóa, giải mã text gồm chữ và số, chữ có dấu - Chương trình có thể mã hóa, giải mã file gồm chữ, số, chữ có dấu. 3.1.2. Chƣơng trình ký không thể phủ định Đây là chương trình Chữ ký số không thể phủ định theo sơ đồ chữ ký Chaum- Van Antwerpen được viết bằng ngôn ngữ C#. Chức năng: - Thực hiện được thuật toán ký. - Thực hiện được giao thức kiểm thử - Thực hiện được giao thức chối bỏ. 3.2. Cấu hình hệ thống - Hệ điều hành: Windows XP/2007/2010. - Ngôn ngữ: C# (có sử dụng bộ công cụ Visual Studio 2010) - Yêu cầu môi trường: Cài đặt môi trường . Net FrameWork 4.0 3.3. Hƣớng dẫn sử dụng 3.3.1. Chƣơng trình mã hóa AES Chương trình được chia thành 2 phần: - Phần 1: Mã hóa văn bản gồm ký tự và số, trong đó ký tự có thể có dấu - Phần 2: Mã hóa tệp tin gồm file .doc hoặc file .txt Nội dung chi tiết: Tab thứ nhất: Mã hóa văn bản:  Quá trình mã hóa - Nhập chuỗi cần mã hóa vào ô text nội dung: Ví dụ: Cộng hòa xã hội chủ nghĩa Việt Nam - Nhập khóa vào ô text khóa: ví dụ: abc 51 - Bấm vào nút mã hóa: kết quả sẽ được hiển thị ở ô text phần nội dung kết quả là: p/RR6lSmFq+3XOUqc6TngOmGfK7o3a01jRt5nrrqPijAcSi5XZGXPJsdZnpuo3b2 Rj6v8eASqbfZ1pnlR7bPNFfx8jHSRahZuT874WaDS5k= Hình 3.1: Quá trình mã hóa văn bản  Quá trình giải mã - Nhập chuỗi cần giải mã vào ô text nội dung: Ví dụ: p/RR6lSmFq+3XOUqc6TngOmGfK7o3a01jRt5nrrqPihZryPwPf+68P8rGebHeOU XZaRyCHaE6wZdcAx1sKQaiG2DLxfaJRBG2rHGjyClRFY= - Nhập khóa vào ô text khóa: giống khóa đã đặt trong quá trình mã hóa - Bấm vào nút giải mã: kết quả giải mã sẽ được hiển thị ở ô text phần nội dung kết quả là: Cộng hòa xã hội chủ nghĩa Việt Nam 52 Hình 3.2: Quá trình giải mã văn bản Tab thứ hai: Mã hóa tệp tin:  Quá trình mã hóa: - Bấm vào nút tìm để chọn tệp tin cần mã hóa: - Chương trình sẽ tự lưu file được mã hóa cùng thư mục của file được mã hóa nhưng đã đổi tên thành file số 2 - Bấm vào nút mã hóa ta được kết quả như sau: 53 Hình 3.3: Quá trình mã hóa tệp tin  Quá trình giải mã tệp tin - Bấm vào nút tìm tệp tin cần giả mã: chọn tệp tin vừa mã hóa - Chương trình tự động lưu tệp tin giải mã vào cùng thư mục tệp tin đã mã hóa nhưng tên file sẽ được đổi thành tên tệp tin số 2 - Bấm vào nút giải mã ta được kết quả như sau: 54 Hình 3.4: Quá trình giải mã tệp tin  Độ an toàn của thuật toán: - Việc sử dụng các hằng số khác nhau ứng với mỗi chu kỳ giúp hạn chế khả năng tính đối xứng trong thuật toán. Sự khác nhau trong cấu trúc của việc mã hóa và giải mã đã hạn chế được các khóa “yếu” như trong phương pháp DES.  Đánh giá độ phức tạp của thuật toán: - Thuật toán AES thích hợp cho việc triển khai trên nhiều hệ thống khác nhau, không chỉ trên các máy tính cá nhân, mà cả trên các hệ thống thẻ thông minh. - Tất cả các bước xử lý của việc mã hóa và giải mã đều được thiết kế thích hợp với cơ chế xử lý song song nên AES càng chứng tỏ thế mạnh của mình trên các hệ thống thiết bị mới. 55 - Do đặc tính của việc xử lý thao tác trên từng byte dữ liệu nên không có sự khác biệt nào được đặt ra khi triển khai trên hệ thống big-endian hay little-endian. - Độ lớn của khóa mã có thể thay đổi linh hoạt từ 128 đến 256 bit. Số lượng chu kỳ có thể được thay đổi tùy thuộc vào yêu cầu riêng được đặt ra cho từng ứng dụng và hệ thống cụ thể. 3.3.2. Chƣơng trình ký không thể phủ định Trong ví dụ này, Tom là người ký, Mary là người cần xin chữ ký.  Chuẩn bị các tham số Tom chuẩn bị các tham số cho việc ký - Chọn số nguyên tố p = 467 = 2 * q + 1, q = 233 cũng là số nguyên tố - G là nhóm nhân con của cấp q. Chọn phần tử sinh của nhóm G là g = 4. - Đặt P = A = G, K = {(p, g, a, h ): a ∈ , h ≡ ga mod p } Chọn a = 121, h = 4121 mod 467 = 422  Thuật toán ký Dùng khóa bí mật sk = a để ký lên x = 229 Chữ ký thu được là y = sigsk (x) = x a mod p = 229 121 mod 467 = 382.  Giao thức kiểm thử chữ ký Dùng khóa công khai pk = ( p, g, h ) = ( 467, 4, 233 ) - Mary chọn ngẫu nhiên e1 = 13, e2 = 18 ∈ - Mary tính c = mod p = 207 - Tom tính d = −1 mod p = 1.045057654999 - Mary kiểm tra điều kiện d ≡ mod p → Mary kết luận chữ ký là đúng.  Giao thức chối bỏ chữ ký Giả sử Tom gửi tài liệu x = 229, với chữ ký y = 382 - Mary chọn ngẫu nhiên e1 = 12, e2 = 16 ∈ - Mary tính c = mod p = 148 - Tom tính d = −1 mod p = 1.04216395248539 - Mary kiểm tra điều kiện d ≡ mod p => Mary thực hiện tiếp Mary chọn ngẫu nhiên f1 = 15, f2 = 11 ∈ 56 - Mary tính C = mod p = 153 và gửi cho Alice - Tom tính D = −1 mod p = 1.04245016179765 và gửi cho Bob - Mary kiểm tra D ≢ mod p - Mary kiểm tra: (dg -e2 ) f1≡ (Dg-f2)e1 (mod p)  (dg-e2)f1≡ (Dg-f2)e1 (mod p)  Mary kết luận chữ ký là giả mạo Nhập các tham số ở trên, ta lần lượt đạt được kết quả như sau: Hình 3.5: Quá trình ký Hình 3.6: Giao thức kiểm thử 57 Hình 3.7: Giao thức chối bỏ.  Độ an toàn của chữ ký Điều này phụ thuộc vào bài toán logarit rời rạc do khóa bí mật sk = a được tính từ công thức h = ga mod p => a = loggh mod p, trong đó g, h, p là công khai. Đây chính là vấn đề của bài toán logarit rời rạc khó giải. Vấn đề chữ ký không thể phủ nhận là một trong những vấn đề khó trong lĩnh vực mật mã học. Nó là một vấn đề không mới, đang được phát triển ở nước ta hiện nay và có nhiều công việc cần giải quyết nếu muốn xây dựng một hệ thống ký số điện tử đạt tiêu chuẩn quốc gia. Hướng tiếp cận theo mật mã học khóa công khai là hướng tiếp cận dựa vào yêu cầu thực tế công nghệ là công khai và khóa mới là cái bí mật, độ an toàn của hệ thống không dựa vào độ an toàn của công nghệ mà chính là khóa. 58 KẾT LUẬN Luận văn này đã trình bày chi tiết nhất có thể một số bài toán về an toàn thông tin trong thỏa thuận và ký kết hợp đồng của thương mại điện tử. Tác giả đã làm được:  Nghiên cứu lý thuyết và thực tế để tổng hợp lại các vấn đề sau: - Tổng quan về ATTT trong TMĐT. - Các phương pháp bảo vệ thông tin trong thỏa thuận và ký kết hợp đồng điện tử. - Một số bài toán về ATTT trong thỏa thuận và ký kết hợp đồng điện tử. Theo sự tìm hiểu của mình, đây là một trong những nghiên cứu về mã hóa AES và chữ ký không thể phủ nhận.  Đã mã hóa và giải mã thành công cho một số hợp đồng giao dịch cụ thể, dùng chữ ký không thể phủ nhận để chống chối bỏ hợp đồng giao dịch. Tuy nhiên do thời gian có hạn nên tác giả chưa đưa ra được chương trình thủy vân số để giấu thủy vân vào trong hợp đồng. Trong tương lai, nếu có cơ hội và thời gian, tác giả sẽ cải thiện những vấn đề còn tồn tại như đã đề cập ở trên để đưa đề tài được hoàn thiện hơn nữa. 59 TÀI LIỆU THAM KHẢO  Tài liệu tiếng Việt: [1] Trịnh Nhật Tiến. Giáo trình An toàn dữ liệu - Đại học Công Nghệ - ĐH Quốc Gia Hà Nội, 2008. [2] Trịnh Nhật Tiến. Bài giảng Tổng quan về An toàn thông tin trong TMĐT - Đại học Công Nghệ - Đại học Quốc Gia Hà Nội. [3] Phan Đình Diệu. Lý thuyết mật mã và An toàn thông tin, 2002. [4] Nguyễn Đăng Hậu. Kiến thức thương mại điện tử, 11- 2004. [5] Trần Phương Nam. Tiểu luận Mật mã và An toàn dữ liệu-ĐHCN-ĐHQGHN, 2014. [6] Hoàng Thị Vân. Tiểu luận Mật mã và An toàn dữ liệu-ĐHCN-ĐHQGHN, 2013. [7] Phạm Thành Luân. Đồ án tốt nghiệp: Tìm hiểu, nghiên cứu một số tình huống trong thỏa thuận hợp đồng điện tử - ĐHDL Hải Phòng, 2012. [8] Lê Thị Thu. Luận văn thạc sĩ: Nghiên cứu một số giao thức bảo vệ thông tin trong thỏa thuận hợp đồng điện tử - ĐHCN - ĐHQGHN, 2011.  Website: [9] [10] [11] [12] [13] [14] [15] 60  Tài liệu tiếng Anh: [16] Chaum, David, van Heijst, Eugene and Pfitzmann, Birgit, Cryptographically strong undeniable signatures, unconditionally secure for the signer (extended abstract) [17] Ecient Convertible Undeniable Signature Schemes – D. Chaum, E. van Heys [18] William Stallings (2007), Cryptography and Network Security, Third Edition. [19] D. Stinson. Cryptography: Theory and Practice, CRT Press 1995. [20] N. F. Johnson (2002), Steganography, George Mason University, pp 5-6. [21] Bruce Schneier (1999), Applied Cryptography, Second Edition. [22] Alfred J. Menezes Paul C. van Ooschot Scott A. Vanstone (1998): Handbook of Applied Cryptography, CRC press. [23] Bart Van Rompay. Analysis and Desigbn of Cryptographic Hash Functions, MAC Algorithms and Block Ciphers, Juni 2004. [24] Benoıt Libert Jean-Jacques Quisquater, Identity Based Undeniable Signatures, UCL Crypto Group, Belgium. [25] David Chaum, Hans van Antwerpen. Undeniable Signature. CRYPTO. [26] Moti Young : Weaknesses of Undeniable Signature Schemes.

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

  • pdfluan_van_nghien_cuu_mot_so_bai_toan_ve_an_toan_thong_tin_tro.pdf
Luận văn liên quan