Vấn đề giả mạo và tiờu xài đồng tiền nhiều lần

Một phần của tài liệu Nghiên cứu các kỹ thuật đảm bảo an toàn thông tin trong việc sử dụng tiền điện tử (Trang 83)

Với tớnh chất dạng số hoỏ, nờn với Tiền điện tử, dễ dàng tạo bản sao từ bản gốc hoặ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. Chỳng ta khụng thể phõn biệt đƣợc đõy là bản sao từ một bản gốc nào đấy, chớnh vỡ thế việc giả mạo là khụng thể phỏt hiện đƣợc. Một hệ thống tiền điện tử tầm thƣờng sẽ cho phộp tạo bản sao của tiền điện tử và kẻ gian cú thể tiờu xài bản sao này bỡnh thƣờng mà khụng bị phỏt hiện. 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 trƣờng hợp “tiờu xài hai lần” (double- spending). Để giải quyết vấn đề này, tuỳ theo từng loại hệ thống tiền điện tử mà cú giải phỏp khỏc nhau.

3.2.2.1.Tiền điện tử trực tuyến:

Hệ thống yờu cầu ngƣời bỏn hàng liờn lạc tới ngõn hàng với mỗi lần bỏn. Ngõn hàng lƣu giữ thụng tin tất cả những đồng tiền điện tử đó tiờu xài trƣớc đấy và cú thể dễ dàng cho ngƣời bỏn hàng biết đồng tiền nào cũn khả năng tiờu xài đƣợc. Nếu ngõn hàng bỏo rằng đồng tiền nào đú đó thực sự đƣợc tiờu xài rồi, thỡ ngƣời bỏn hàng lập tức từ chối bỏn hàng. Điều này giống nhƣ cỏch mà những nhà bỏn hàng hiện tại kiểm tra thẻ tớn dụng tại những điểm bỏn hàng.

3.2.2.2.Tiền điện tử ngoại tuyến:

Việc phỏt hiện trƣờng hợp “tiờu xài hai lần” sẽ đƣợc thực hiện bằng hai cỏch khỏc nhau.

Cỏch 1:

Tạo thẻ thụng minh đặc biệt (special smart card) chứa con chip chống trộm cắp. Trong những hệ thống khỏc, chip này cũn đƣợc gọi là “ngƣời theo dừi”. Chip theo dừi sẽ lƣu một lƣợng nhỏ dữ liệu của tất cả những tiền điện tử đó đƣợc tiờu xài qua smart card. Nếu ngƣời sở hữu smart card đú cố gắng sao chộp tiền điện tử này và tiờu xài nú lần hai, thỡ chip theo dừi (đƣợc gắn vào smart card) sẽ phỏt hiện đƣợc hành động này, và khụng cho phộp giao dịch “tiờu xài”. Bởi vỡ chip theo dừi dựng để chống sự gian dối, ngƣời sở hữu smart card này khụng thể xoỏ đƣợc dữ liệu trừ khi họ phỏ huỷ smart card.

Cỏch 2:

Dựa vào cấu trỳc của tiền điện tử và những giao thức mật mó để cú thể truy vết tỡm ra kẻ gian lận (tiờu xài hai lần). Nếu nhƣ ngƣời sử dụng biết rằng họ sẽ bị bắt khi cố tớnh gian lận, về lý thuyết thỡ tỷ lệ hành động gian lận sẽ bị giảm đi. Điều thuận lợi của phƣơng phỏp là chỳng khụng đũi hỏi những con chip đặc biệt. Hệ thống cú thể đƣợc phỏt triển trờn chƣơng trỡnh phần mềm (software) và cú thể chạy trờn mỏy tớnh cỏ nhõn thụng thƣờng hay smart card.

3.2.2.3.Tiền điện tử định danh-ngoại tuyến (Identified offline):

Dựa vào thụng tin định danh để truy vết tỡm ra kẻ gian lận. Trong quỏ trỡnh giao dịch, định danh của ngƣời sử dụng đƣợc tớch luỹ đầy đủ trờn đƣờng đi của đồng tiền và thụng tin định danh sẽ "trƣởng thành" ở mỗi lần nú đƣợc tiờu xài. Những chi tiết thụng tin mỗi lần giao dịch đƣợc gắn vào phần tiền điện tử, và đi với nú khi nú đƣợc chuyển từ ngƣời này sang ngƣời khỏc.

Khi tiền điện tử chuyển tới ngõn hàng, họ kiểm tra dữ liệu của nú, để xem tiền điện tử cú bị tiờu xài hai lần khụng ? Ngõn hàng sử dụng những thụng tin này để lần theo vết của những giao dịch, để phỏt hiện ra ngƣời nào tiờu xài hai lần.

3.2.2.4.Tiền điện tử ẩn danh-ngoại tuyến (Anonymous Offline):

Đõy là dạng phức tạp nhất, bởi vỡ hệ thống phải làm sao vừa đảm bảo tớnh ẩn danh của ngƣời dựng, vừa đảm bảo cú thể truy vết đƣợc định danh ngƣời dựng trong trong hợp xảy ra vi phạm (tiờu xài hai lần).

Giải phỏp cho hệ thống này là gắn thụng tin lờn đồng tiền ở mỗi lần giao dịch. Thụng tin này sẽ „trƣởng thành‟ với mỗi giao dịch. Khi tiền điện tử đến ngõn hàng, họ sẽ kiểm tra trong cơ sở dữ liệu xem tiền này đó đƣợc tiờu chƣa. Nếu ngõn hàng phỏt hiện tiền này đó đƣợc tiờu trƣớc đõy, thỡ họ sẽ sử dụng thụng tin tớch luỹ để xỏc định định danh của kẻ gian lận (ngƣời tiờu xài hai lần).

Tuy nhiờn thụng tin đƣợc tớch luỹ trong trƣờng hợp này chỉ cú thể dựng để lần theo vết giao dịch nếu nhƣ tiền điện tử đƣợc tiờu hai lần, nghĩa là chỉ khi cú gian lận thỡ ngõn hàng mới cú thể truy lại thụng tin của ngƣời sử dụng.

Nếu tiền điện tử ẩn danh khụng bị tiờu hai lần, thỡ ngõn hàng khụng thể phỏt hiện đƣợc định danh của ngƣời tiờu tiền, cũng nhƣ khụng thể xõy dựng lại đƣờng đi của tiền

3.2.3. Một số lƣợc đồ bảo đảm an toàn tiền điện tử.

3.2.3.1.Lƣợc đồ CHAUM - FIAT - NAOR

Hệ thống tiền điện tử đƣợc ỏp dụng thành cụng là nhờ một đặc tớnh quan trọng, đú là tớnh ẩn danh. Một hệ thống tiền điện tử ẩn danh tin cậy sẽ ngăn ngừa việc bờn thứ 3 (ngõn hàng, nhà cung cấp) biết đƣợc thụng tin định danh của ngƣời tham gia vào hệ thống.

Lƣợc đồ Chaum1

- Fiat2 - Naor3, 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 đồ đó ỏp dụng kỹ thuật chữ ký mự RSA và giao thức cắt và chọn (cut and choose) để ngăn ngừa ngƣời tạo tiền cú hành vi gian lận.

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 sử dụng gửi đến, nhƣng ngõn hàng sẽ khụng biết những gỡ đó đƣợc ký. Do đú họ 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 hành động rỳt tiền này sẽ liờn quan đến khoản tiền nào, điều này đảm bảo đƣợc tớnh ẩn danh của ngƣời sử dụng.

Để ngăn ngừa vấn đề „tiờu xài hai lần‟, lƣợc đồ này dựng giao thức “hỏi-đỏp” để lấy một phần thụng tin định danh gắn lờn đồng tiền, và nhƣ vậy nếu đồng tiền đƣợc “tiờu xài hai lần”, thỡ thụng tin trờn cả hai trƣờng hợp đƣợc kết hợp lại để truy vết tỡm ra kẻ gian lận.

Ngõn hàng cụng khai khoỏ mật mó RSA (b,n) và chọn tham số k. Ngõn hàng cũng cụng khai 2 hàm f g (hàm khụng va chạm). Mỗi ngƣời sử dụng cú số tài khoản

u, và ngõn hàng sẽ giữ số đếm v liờn quan đến số tài khoản này (đếm số đơn vị Ui đƣợc tạo), ngõn hàng dựa vào u để xỏc định ra kẻ gian lận.

Hỡnh 12: Mụ hỡnh thanh toỏn trong lƣợc đồ CHAUM-FIAT-NAOR 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 bỏ “mự” tiền, Khỏch hàng chuyển tiền cho Ngƣời bỏn.

1/.Giao thức rỳt tiền

a. ễng A muốn cú 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ột Đơn vị Ui đƣợc tạo từ những dóy số ngẫu nhiờn ai , ci , di , 1≤ i ≤ k , sao cho Ui độc lập và duy nhất.

if(xi,yi) với 1≤ i ≤k ), , ( i i i g a c xyig(ai(u(vi),di)  : Phộp XOR,  : phộp nối

b. ễng A làm mự k đơn vị Ui với những tham số “mự” ngẫu nhiờn {r1,...,rk}, và gửi chỳng đến ngõn hàng. Những tham số “mự” đú ngăn ngõn hàng kiểm tra tức thỡ nội dung của những “đồng tiền” Ui.

Bi= Ui rib mod n

(Làm “mự” theo giao thức RSA: Blind(x)=x*rb

mod n).

c. Ngõn hàng chọn ngẫu nhiờn k/2 đơn vị để kiểm tra, và yờu cầu ụng A cung cấp cỏc tham số: ri ,ai , ci, di tƣơng ứng với những đơn vị Ui mà ngõn hàng đó chọn.

d. ễng A cung cấp cho ngõn hàng cỏc tham số ri ,ai , ci, di theo yờu cầu.

e. Dựa vào cỏc tham số do ụng A cung cấp, Ngõn hàng xúa “mự” k/2 đơn vị đó chọn và kiểm tra để đảm bảo rằng ụng A 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ị Ui cũn lại (những đơn vị mà Ngõn hàng khụng xoỏ “mự”) và gửi cho ụng A.

Bja mod n

(j là ngẫu nhiờn ≤ k và chỉ dựng k/2 phần tử Bj)

Sau đú ngõn hàng trừ khoản tiền tƣơng ứng vào tài khoản của ụng A.

f. ễng A xoỏ “mự” đơn vị đó đƣợc ngõn hàng ký bằng cỏch chia Bj cho rj. Lỳc này ụng A cú đồng tiền điện tử với giỏ trị thật sự.

2/. Giao thức thanh toỏn

a. ễng A gửi tiền T đến ễng B.

b. ễng B chọn chuỗi nhị phõn ngẫu nhiờn z1, z2,…, zk/2 và gửi nú đến ụng A.

c. ễng A phản hồi lại tuỳ theo từng trƣờng hợp sau: – Nếu zi=1 thỡ ụng A sẽ gửi đến ụng B : ai, ci và yi

– Nếu zi=0 thỡ ụng A sẽ gửi đến ụng B: xi, ai  (u  (v+i)) và di.

d. ễng B kiểm tra T là hợp lệ trƣớc khi chấp nhận thanh toỏn của ụng A.

3/. Giao thức gửi

a. ễng B gửi lịch sử thanh toỏn đến ngõn hàng.

b. Ngõn hàng kiểm tra chữ ký số của ngõn hàng.

c. Ngõn hàng kiểm tra tiền này thật sự chƣa bị tiờu xài trƣớc đú.

d. 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ừ ụng A, (đ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).

e. Ngõn hàng cộng khoản tiền tƣơng ứng vào tài khoản của ụng B.

4/.Đỏnh giỏ

Tại giao thức Rỳt tiền, để ngăn ngừa khả năng gian lận của ụng A. Lƣợc đồ sử dụng giao thức “cut and choose”. ễng A 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 ụng A 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 ụng A tiờu đồng tiền T 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 ụng A tại ngõn hàng, chớnh vỡ vậy từ u, ngõn hàng cú thể truy ra đƣợc ụng A là ngƣời cú hành vi tiờu một đồng tiền hai lần. Vỡ 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 khỏc nhau, là ngõn hàng cú thể cú đầy đủ thụng tin định danh của ụng A. Nhƣ vậy xỏc suất để 2 chuỗi hoàn toàn trựng nhau (trong trƣờng hợp này, ngõn hàng khụng cú đủ thụng tin để tỡm ra đƣợc định danh của ụng A) là : /2

2 1

k và 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.

5/.Chi phớ

Trong lƣợc đồ CHAUM-FIAT-NAOR, chớ 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 trong lƣợc đồ, ụng A phải 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ự” sẽ làm tăng sự tớnh toỏn, sự liờn lạc.

Tại giao thức thanh toỏn, sau khi ụng A gửi tiền đến ụng B. ễng này gửi chuỗi nhị phõn đến ụng A, sau đú ụng A phải gửi k/2 phản hồi khỏc nhau, điều này sẽ khiến cho việc tăng thời gian và sự tớnh toỏn, liờn lạc và chi phớ lƣu trữ.

6/.Hỡnh thức tấn cụng

Đõy là giải phỏp dựa vào mật mó 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.

Tuy nhiờn về mặt lý thuyết, cú một khả năng xảy ra là ụng A cú thể trỏnh đƣợc sự phỏt hiện của ngõn hàng khi tiờu xài hai lần. Để thực hiện đƣợc điều này, phƣơng phỏp tấn cụng hợp tỏc giữa ụng A ụng X sẽ tấn cụng vào giao thức “hỏi-đỏp ”. ễng A sau khi thực hiện một giao dịch thanh toỏn với ụng B, sẽ gửi những tiền đó tiờu đến

ụng X và mụ tả quỏ trỡnh giao dịch với ụng B cho ụng X. Nhƣ vậy ngõn hàng sẽ nhận đƣợc thụng tin giao dịch từ ụng B và ụng X giống nhƣ nhau, lỳc này ngõn hàng sẽ khụng cú khả năng xỏc định đƣợc định danh của ụng A.

3.2.3.2. Lƣợc đồ BRAND

So với lƣợc đồ trờn, đõy là một lƣợc đồ khỏ phức tạp. Lƣợc đồ sử dụng khỏi niệm chữ ký số Schnorr và bài toỏn đại diện trong nhúm của cấp nguyờn tố (The representation problem in groups of prime order).

Gq là nhúm con cấp q của Zp *

, với p,q là số nguyờn tố (q|(p-1)). Ngõn hàng khởi tạo 5 thành phần: (g,h,g1,g2,d).

1. (g, h): khoỏ cụng khai của ngõn hàng đƣợc dựng ở lƣợc đồ ký trong giao thức rỳt tiền (g, h Gq), x là khoỏ bớ mật của ngõn hàng.

x = Log gh (h=gx)

2. (g1, g2): là bộ phần tử sinh của Gq.

3. Phần tử sinh d (khỏc g1 và g2), đảm bảo rằng định danh của ngƣời dựng sẽ khụng bị phỏt hiện trong giao thức thanh toỏn.

1/. Khởi tạo tài khoản

a. ễng A phỏt sinh ngẫu nhiờn u1,u2  Zq, và tớnh I = g1u1g2u2 , sau đú ụng A chuyển Ι đến ngõn hàng (nhƣ vậy ngõn hàng sẽ khụng biết đƣợc u1 và u2).

b. Ngõn hàng lƣu giữ I = g1 u1

g2 u2

cựng với định danh thật sự của ụng A và số tài khoản, nhƣng ngõn hàng sẽ khụng biết u1 và u2.

Trƣờng hợp ụng A tiờu xài đồng tiền hai lần, thỡ ngõn hàng cú thể tỡm ra đƣợc (u1, u2) và cú thể tớnh đƣợc Ι, từ Ι sẽ tỡm đƣợc định danh của kẻ gian lận.

2/.Giao thức rỳt tiền Bƣớc 1 : Xỏc thực

Khi ụng A tiến hành rỳt tiền, thỡ điều đầu tiờn là phải xƣng danh với ngõn hàng, bằng cỏch chứng minh với ngõn hàng là sẽ rỳt tiền trờn tài khoản mà ụng A sở hữu.

Phƣơng phỏp đƣợc sử dụng ở đõy là “chứng minh tri thức của một đại diện” (proving knowledge of a representation). Theo phƣơng phỏp này ụng A phải chứng minh với Ngõn hàng rằng: ụng A biết u1u2 (vỡ ụng ta là chủ sở hữu tài khoản), nhƣng khụng tiết lộ u1, u2 cho ngõn hàng. Quỏ trỡnh xỏc thực đƣợc tiến hành nhƣ sau:

a. ễng A chọn ngẫu nhiờn w1,w2  Zq, và gửi I = g1 w1

g2 w2

đến ngõn hàng.

b. Ngõn hàng thử thỏch để kiểm tra cú phải đỳng là ụng A sở hữu tài khoản khụng, bằng cỏch chọn ngẫu nhiờn cr  Zq và gửi đến ụng A.

c. ễng A tớnh r1 = w1 + cru1 mod q, r2 = w2 + cru2 mod q, và gửi đến ngõn hàng.

d. Ngõn hàng chấp nhận xỏc thực là đỳng nếu và chỉ nếu 2 1 2 1 r r c g g yI r

Bởi vỡ nếu ụng A thực sự là chủ sở hữu tài khoản, thỡ ụng ta phải biết u1, u2

(là 2 giỏ trị cú khi khởi tạo tài khoản) và nếu biết đƣợc chỳng thỡ

2 1 2 2 1 1 2 1 2 1 2 1 2 1 2 1 2 1w w ( u u )c w uc w uc r r c g g g g g g g g yI rr   rr

Bƣớc 2 : Rỳt tiền

Nếu nhƣ xỏc thực (bƣớc 1) đƣợc chấp nhận, thỡ việc rỳt tiền đƣợc tiến hành nhƣ sau:

a. Ngõn hàng trừ một lƣợng tiền tƣơng ứng từ tài khoản ụng A, và tớnh m=Ιd (d là phần tử sinh khởi tạo ban đầu, ụng A cũng cú thể tớnh đƣợc m vỡ vậy ngõn hàng khụng gửi m cho ụng A).

Ngõn hàng gửi z=mx, a=gw và b=mw (w đƣợc chọn ngẫu nhiờn từ Zq, x là khoỏ bớ mật của ngõn hàng) đến ụng A. b. ễng A chọn 3 số ngẫu nhiờn s Z* q,u,v Zq để làm mự m, z, a và b sv su v u s s s u s u s s m b b g a a Z Z d g g Id m m' ( )  1 2 , ' , ' , ' 2 1 Tỏch ngẫu nhiờn : u1s = x1 + x2 mod q, u2s = y1 + y2 mod q. s = z 1 + z2 mod q Tớnh 1 1 1 2 1 z y x d g g A và 2 2 2 2 2 / ' A gx gx dz m B 

- Dựng hàm băm H tớnh c’=H(m‟,z‟,a‟,b‟,A), tớnh c=(c‟/u) mod q.

Một phần của tài liệu Nghiên cứu các kỹ thuật đảm bảo an toàn thông tin trong việc sử dụng tiền điện tử (Trang 83)