Hệ thống thanh toán trực tuyến Hệ thống thanh toán ngoại tuyến Tâm lý
ngƣời dùng
Ngƣời dùng không thích cách này, do cần đến bên thứ ba trong các giao dịch.
Ngƣời dùng thích cách này, do không cần đến bên thứ ba trong các giao dịch.
Độ an toàn
Độ an toàn cao hơn, do đồng tiền đƣợc ngân hàng kiểm tra trƣớc khi thanh toán, ngăn chặn đƣợc vi phạm “double-spending”
Kém an toàn hơn, do không ngăn chặn đƣợc vấn đề “double- spending”
Khả năng xử lý
Có thể gây tình trạng quá tải cho ngân hàng khi có nhiều giao dịch xảy ra trong cùng một thời điểm.
Tránh đƣợc tình trạng quá tải cho ngân hàng.
Chi phí đầu tƣ
Tốn kém, do ngân hàng phải đầu tƣ chi phí về kỹ thuật và cơ sở hạ tầng, để có khả năng kiểm tra nhiều giao dịch cùng một lúc.
Chi phí đầu tƣ về kỹ thuật và cơ sở hạ tầng thấp hơn.
Hệ thống ngoại tuyến có vẻ đơn giản, nhƣng dễ gặp vấn đề “Tiêu xài nhiều lần”. Đối với giao dịch có giá trị cao, nếu vi phạm quá trễ, có thể gây tổn thất lớn.
Nếu có quá nhiều giao dịch giá trị nhỏ, việc sử dụng hệ thống thanh toán trực tuyến là tốn kém (tiền, thời gian) và không hợp lý. Với hệ thống này, quá trình thanh toán và gửi vào ngân hàng là hai bƣớc riêng biệt nhau. Hệ thống yêu cầu phải liên lạc với ngân hàng trong suốt mỗi lần giao dịch.
Giải pháp là kết hợp cả hai hệ thống nói trên. Đồng tiền sẽ đƣợc kiểm tra trực tuyến nếu nó mang giá trị giao dịch lớn, ngƣợc lại nó sẽ đƣợc kiểm tra ngoại tuyến.
2.2.5. Tính chất của tiền điện tử
Đặc trƣng của đồng tiền điện tử giống nhƣ đồng tiền giấy: - Có một số sê-ri duy nhất.
- Dùng để biểu diễn một lƣợng tiền nào đó.
- Có thể sử dụng lại, tức là có thể chuyển nhƣợng cho nhau.
- Ẩn danh: Khi ta cầm đồng tiền, ta không thể biết đƣợc đồng tiền này xuất phát từ đâu, đã qua tay bao nhiêu ngƣời, đã đƣợc dùng để thực hiện giao dịch nào,...
Điểm khác biệt giữa tiền điện tử và tiền mặt thông thƣờng là: tiền điện tử chỉ đơn giản là một dãy các con số đƣợc biểu diễn theo một định dạng nào đó, và đƣợc trao đổi thông qua mạng máy tính. Chính vì chỉ là một dãy con số, nên nó rất dễ dàng bị sao chép.
Đồng tiền điện tử lý tƣởng phải đảm bảo đƣợc những tính chất sau:
1/. Tính độc lập vật lý (Portability)
Tính chất này có nghĩa là sự an toàn của tiền điện tử không phụ thuộc vào bất kỳ điều kiện vật lý nào. Tiền có thể đƣợc chuyển thông qua mạng máy tính, chứa trên những thiết bị khác nhau. Đây là điều kiện tiên quyết.
2/. Tính an toàn (Security)
Đồng tiền phải có khả năng ngăn chặn các âm mƣu sao chép (sử dụng lại) đồng tiền hoặc giả mạo.
3/. Tính riêng tư (Privacy)
Tính chất này nhằm mục đích bảo vệ ngƣời dùng khỏi mọi sự dòm ngó, hay nói cách khác, không ai có thể truy vết và chắp nối mối quan hệ giữa ngƣời sử dụng với sự chi tiêu cũng nhƣ các giao dịch mà ngƣời đó đã thực hiện. Tính chất này có thể thấy rất rõ ràng trong các giao dịch bằng tiền mặt. Sau khi thanh toán đã đƣợc thực hiện, việc chứng minh trƣớc đây ngƣời nào đã sở hữu số tiền đó là rất khó.
4/. Tính phân chia được (Divisibility)
Ngƣời sử dụng có thể phân chia đồng tiền số của mình thành những mảnh có giá trị thanh toán nhỏ hơn, với điều kiện tổng giá trị của các mảnh nhỏ bằng giá trị của đồng tiền điện tử ban đầu. Không phải hệ thống nào cũng đáp ứng đƣợc tính chất này, vì tiền điện tử là dãy số đƣợc mã hoá, việc chia dãy số này nhƣ thế nào để đƣợc những đồng tiền có giá trị nhỏ hơn không phải là vấn đề đơn giản.
5/. Tính chất thanh toán ngoại tuyến (Off-line payment)
Thanh toán ngoại tuyến là phiên giao dịch giữa ngƣời dùng và nhà cung cấp có thể đƣợc diễn ra, mà không cần đến sự tham gia của ngân hàng. Nói cách khác, nhà cung cấp tự mình có thể kiểm tra sự hợp lệ của đồng tiền số, mà không cần sự trợ giúp của bên thứ ba.
6/. Tính chuyển nhượng được (Transferability)
Tính chuyển nhƣợng đƣợc cho phép hai bên có thể chuyển tiền cho nhau mà không phải liên hệ với bên thứ 3 (ngân hàng). Nhƣ vậy, hệ thống tiền điện tử có tính chuyển nhƣợng là hệ thống cho phép một đồng tiền có thể chuyển ít nhất một lần (xem hình minh hoạ dƣới).
Tính chuyển nhƣợng đƣợc là một đặc trƣng của tiền mặt, nó cho phép ngƣời sở hữu tiêu tiền mà không cần liên hệ với ngân hàng. Do vậy, tính chuyển nhƣợng đƣợc là tính chất rất quan trọng, nó làm cho việc tiêu tiền điện tử (e-cash) thực sự giống với việc tiêu tiền mặt thông thƣờng (cash). Tuy vậy, khi đó hệ thống cũng phải giải quyết một số vấn đề nảy sinh nhƣ:
- Kích cỡ dữ liệu sẽ tăng lên ở mỗi lần chuyển nhƣợng, bởi vì thông tin mỗi lần chuyển nhƣợng phải đƣợc lƣu giữ, thông tin này nhằm giúp cho ngân hàng có thể tìm ra đƣợc kẻ gian lận nào tiêu xài hai lần. Giải pháp đơn giản nhất là giới hạn số lần chuyển nhƣợng tối đa cho phép.
- Việc phát hiện giả mạo và tiêu đồng tiền nhiều lần có thể là quá trễ, khi đồng tiền đã đƣợc chuyển nhƣợng rất nhiều lần.
- Nếu đồng tiền xuất phát từ “túi” của ông A, rồi lại đi qua chính “túi” của ông A trong một giao dịch khác, ông A có thể nhận ra đồng tiền của mình.
2.3. VẤN ĐỀ ĐẢM BẢO AN TOÀN TIỀN ĐIỆN TỬ
Tiền điện tử mang lại nhiều ích lợi không chỉ cho phía ngƣời dùng mà còn cho cả phía ngân hàng cũng nhƣ các nhà cung cấp, nó tăng tốc độ và tính hiệu quả cho các phiên giao dịch. Tuy nhiên, để đƣa tiền điện tử thực sự trở thành một phƣơng thức thanh toán hữu hiệu, các nhà công nghệ, các nhà phát triển và các chuyên gia an toàn thông tin còn đứng trƣớc nhiều thách thức.
Các vấn đề lớn hiện nay đặt ra đối với tiền điện tử bao gồm: vấn đề ẩn danh ngƣời dùng, vấn đề ngăn chặn ngƣời sử dụng giả mạo và vấn đề tiêu một đồng tiền điện tử nhiều lần (double-spending).
2.3.1. Vấn đề ẩn danh ngƣời dùng
Tính ẩn danh là yêu cầu đối với đồng tiền nói chung và tiền điện tử nói riêng. Hệ thống tiền điện tử ẩn danh tin cậy sẽ ngăn ngừa bên thứ ba (ngân hàng, nhà cung cấp) biết đƣợc thông tin định danh của ngƣời tham gia hệ thống. Để đảm bảo yêu cầu này, ngân hàng dùng chữ ký “mù” để ký lên đồng tiền. Chữ ký “mù” đảm bảo ngân hàng khó có đƣợc mối liên hệ giữa đồng tiền điện tử và chủ sở hữu của nó.
Lƣợc đồ Chaum-Fiat-Naor, là một lƣợc đồ ẩn danh đơn giản, áp dụng cho hệ thống tiền điện tử có tính ẩn danh. Để giải quyết vấn đề ẩn danh, lƣợc đồ dùng chữ ký “mù” RSA và giao thức “cắt - chọn” (cut and choose).
2.3.2. Vấn đề giả mạo và tiêu một đồng tiền nhiều lần
Nhƣ đã trình bày ở trên, tiền điện tử chỉ đơn giản là một dãy các con số đƣợc biểu diễn theo một định dạng nào đó và đƣợc trao đổi thông qua mạng máy tính. Điều này dẫn đến hai tình huống:
- Thứ nhất, đồng tiền có thể đƣợc làm giả (bằng cách sinh ra dãy các con số theo đúng định dạng của đồng tiền thật).
Những vấn đề này trong thực tế là không thể chấp nhận đƣợc. Rõ ràng, hệ thống tiền điện tử khi đƣợc áp dụng vào thực tế, thì thật sự phải có khả năng ngăn ngừa hay phát hiện đƣợc các trƣờng hợp này.
Để ngăn ngừa vấn đề “tiêu xài hai lần”, trong lƣợc đồ Chaum- Fiat- Naor dùng giải pháp là gắn định danh lên tiền. Nhƣ vậy nếu tiền đƣợc tiêu xài hai lần, thì thông tin trên cả hai trƣờng hợp sẽ đƣợc dùng để tìm ra kẻ gian lận. Còn trong lƣợc đồ Brand, định danh của ngƣời mua hàng (ông A) đƣợc ẩn danh danh hoàn toàn. Ngƣời bán hàng và ngân hàng sẽ hoàn toàn không biết định danh của ông A, trừ khi ông A có hành vi gian lận (tiêu xài 2 lần) thì định danh của ông A sẽ bị tiết lộ.
2.3.3. Lƣợc đồ Chaum-Fiat-Naor
Lƣợc đồ Chaum-Fiat-Naor [11], là lƣợc đồ ẩn danh đơn giản, áp dụng cho hệ thống tiền điện tử có tính ẩn danh. Lƣợc đồ sử dụng chữ ký mù RSA (xem mục 1.3.4) và giao thức “cắt - chọn” (cut and choose) (do Michael Rabin đề xuất năm 1978) để giải quyết vấn đề ẩn danh và ngăn ngừa ngƣời dùng có hành vi gian lận.
Nội dung giao thức “cut and choose”:
1/. Alice chia đôi số lƣợng đang có. 2/. Bob chọn một phần.
3/. Alice giữ phần còn lại.
Alice phải chia công bằng ở bƣớc (1), vì Alice không biết Bob sẽ chọn phần nào ở bƣớc (2). Bƣớc chia đôi và chọn ngẫu nhiên nhƣ trên đảm bảo tính trung thực.
Việc kết hợp những kỹ thuật mật mã này cho phép ngân hàng ký trên những đồng tiền do ngƣời dùng gửi đến, nhƣng ngân hàng sẽ không biết những gì đã ký (dãy số tƣợng trƣng cho đồng tiền). Vì vậy, ngân hàng không thể kiểm tra lại những thanh toán đã thực hiện. Nghĩa là, ngân hàng không biết đƣợc một hành động rút tiền này sẽ liên quan đến khoản tiền nào, nhƣ vậy đảm bảo đƣợc tính ẩn danh của ngƣời dùng.
Để ngăn ngừa vấn đề “double-spending”, lƣợc đồ này dùng giải pháp gắn định danh lên tiền. Nhƣ vậy, nếu có hiện tƣợng “double-spending” thì thông tin trong cả hai trƣờng hợp tiêu xài một đồng tiền sẽ đƣợc dùng để tìm ra kẻ gian lận.
Ngân hàng dùng mật mã RSA với khoá công khai (b, n) và chọn một tham số an toàn k. Ngân hàng công khai 2 hàm f và g (trong đó f là hàm ngẫu nhiên, g là hàm tƣơng ứng 1-1).
Mỗi ngƣời dùng có số tài khoản u, ngân hàng giữ số đếm v liên quan đến số tài khoản này.
1: Khách hàng gửi tiền ở dạng “mù”, yêu cầu Ngân hàng ký.
2: Ngân hàng gửi trả tiền đã ký cho Khách hàng (tiền vẫn còn mù). 3: Sau khi xoá mù tiền, Khách hàng chuyển tiền cho Ngƣời bán.
4: Ngƣời bán chuyển tiền đến Ngân hàng để kiểm tra tính hợp lệ của tiền. 5: Ngân hàng xác nhận tính hợp lệ của tiền với ngƣời bán.
6: Ngƣời bán chuyển giao hàng.
2.3.3.1. Các giao thức trong lược đồ Chaum - Fiat - Naor
1/. Giao thức Rút tiền
1: Alice muốn tạo một đồng tiền điện tử ẩn danh, thì cần phải tạo k đơn vị Ui và chuyển nó đến ngân hàng.
Mỗi đơn vị Ui đƣợc tạo từ dãy số ngẫu nhiên ai, ci, di, 1 i k, sao cho Ui độc lập và duy nhất: ( , ) (1 ) i i i U f x y i k Trong đó, xi g a c( , );i i yi g a( i (u (v i)),di) : phép XOR, : phép hội
2: Alice làm mù k đơn vị Ui với những thừa số “mù” ngẫu nhiên {r1 ... rk} và gửi chúng đến ngân hàng. Những thừa số “mù” đó ngăn chặn ngân hàng kiểm tra tức thì nội dung của các đồng tiền.
mod
i
b
i i i
B r U n
( Làm mù theo giao thức RSA: Blind(x) = x* rb
mod n) 3: Ngân hàng chọn ngẫu nhiên k/2 đơn vị để kiểm tra.
4: Ngân hàng yêu cầu Alice cung cấp các thừa số: ri, ai, ci, di, 1 i k/ 2 tƣơng ứng với những đơn vị Ui mà ngân hàng đã chọn.
5: Dựa vào các tham số Alice cung cấp, Ngân hàng xoá “mù” k/2 đơn vị đã chọn và kiểm tra để đảm bảo rằng Alice không có gian lận.
Nếu không có lỗi nào xảy ra, Ngân hàng kí lên những đơn vị còn lại (những đơn vị mà Ngân hàng không xoá “mù”) và gửi cho Alice:
/ 2 ( j) modd k j k B n
Sau đó, Ngân hàng trừ một khoản tiền tƣơng ứng từ tài khoản của Alice. 6: Alice xoá mù các đơn vị đã ký bằng cách chia chúng cho thừa số “mù” tƣơng ứng rj. Lúc này, Alice sẽ có đồng tiền điện tử có giá trị thật sự.
/2 ( ,j j) modd k j k C f x y n
2/. Giao thức Thanh toán
1: Alice gửi C đến Bob.
2: Bob chọn một chuỗi nhị phân ngẫu nhiên z1, z2,…, zk/2 và gửi nó đến Alice. 3: Alice phản hồi lại tuỳ theo từng trƣờng hợp sau:
+ Nếu zi = 1 thì Alice sẽ gửi đến Bob: ai, ci và yi
+ Nếu zi = 0 thì Alice sẽ gửi đến Bob: xi, ai (u (v i)) và di. 4: Bob kiểm tra C hợp lệ, trƣớc khi chấp nhận thanh toán của Alice.
3/. Giao thức Gửi tiền
1: Bob gửi lịch sử thanh toán đến ngân hàng. 2: Ngân hàng kiểm tra chữ ký số của ngân hàng.
3: Ngân hàng kiểm tra tiền C chƣa thật sự bị tiêu xài trƣớc đó.
4: Ngân hàng nhập vào cơ sở dữ liệu những tiền đã tiêu xài, đồng thời lƣu giữ chuỗi nhị phân và những phản hồi tƣơng ứng từ Alice.
Điều này sẽ giúp cho sau này phát hiện đƣợc những kẻ tiêu xài hai lần. 5: Ngân hàng ghi có vào tài khoản của Bob.
2.3.3.2. Độ an toàn của lược đồ
1/. Phòng tránh khả năng tấn công lược đồ
Đây là giải pháp dựa vào kỹ thuật RSA, vì vậy, tất cả những cách tấn công vào RSA đều có thể đƣợc sử dụng để tấn công vào lƣợc đồ này.
2/. Phòng tránh khả năng gian lận của người tiêu tiền
Tại giao thức Rút tiền, để ngăn ngừa sự gian lận của Alice, lƣợc đồ sử dụng giao thức “cut and choose”. Alice phải tiết lộ k/2 mẫu thông tin một cách ngẫu nhiên từ k mẫu. Nhƣ vậy, khả năng Alice có thể thực hiện đƣợc hành vi gian lận phụ thuộc vào độ lớn của số k.
Nếu Alice tiêu đồng tiền C hai lần, thì khả năng ngân hàng có thể lấy đƣợc cả hai tham số ai và ai (u (v i)) để tính đƣợc u. Đó là số tài khoản của Alice tại ngân hàng, chính vì vậy từ u, ngân hàng có thể truy ra đƣợc Alice là ngƣời có hành vi tiêu một đồng tiền hai lần.
Khả năng để có một cặp bít khác nhau trong 2 chuỗi z1, z2,…., zk/2 và z’1, z’2,…, z’k/2 là rất cao. Chỉ cần có một cặp bit tƣơng ứng zi và z’i là ngân hàng
có thể có đầy đủ thông tin định danh của Alice.
Nhƣ vậy, xác suất để 2 chuỗi hoàn toàn trùng nhau (trƣờng hợp này, ngân hàng không có đủ thông tin để tìm ra đƣợc định danh của Alice) là 1/ 2
2k . Nếu chọn k đủ lớn thì khả năng hai chuỗi trùng nhau hoàn toàn có thể xem là không thể xảy ra.
Tuy nhiên, về mặt lý thuyết, có khả năng Alice có thể tránh đƣợc sự phát hiện của ngân hàng khi tiêu xài hai lần. Điều này xảy ra khi Alice và Eve cùng hợp tác với nhau. Cụ thể nhƣ sau:
Alice sau khi thực hiện một giao dịch thanh toán với Bob, sẽ gửi những tiền đã tiêu đến Eve và mô tả cho Eve quá trình giao dịch với Bob.
Nhƣ vậy, Ngân hàng sẽ nhận đƣợc thông tin giao dịch từ Bob và Eve giống nhau. Lúc này, Ngân hàng sẽ không có khả năng xác định đƣợc ai là ngƣời gian lận.
3/. Chi phí của lược đồ
Trong lƣợc đồ CHAUM-FIAT-NAOR, chi phí (thời gian, bộ nhớ) phụ thuộc vào độ lớn của k. Tại giao thức rút tiền, Alice gửi k packet đến ngân hàng, tuy nhiên, ngân hàng chỉ phải gửi trở lại 1 packet. Việc tiến hành làm “mù” và xoá “mù” k packet làm tăng thời gian tính toán.
Tại giao thức thanh toán, sau khi Alice gửi tiền đến Bob, Bob gửi một chuỗi nhị phân đến Alice, sau đó Alice phải gửi k/2 phản hồi khác nhau. Điều này làm