1
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LÊ THỊ THANH VÂN
NGHIÊN CỨU MỘT SỐ KỸ THUẬT AN TOÀN
THÔNG TIN DÙNG TRONG RÚT TIỀN ĐIỆN TỬ
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: PGS.TS TRỊNH NHẬT TIẾN
Thái Nguyên - 2015
i
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này của tự bản thân tôi tìm hiểu, nghiên cứu dưới
sự hướng dẫn của PGS.TS Trịnh Nhật Tiến. Các chương trình thực nghiệm do chính
bản thân tôi lập trình, các kết quả là hoàn toàn trung thực. Các tài liệu tham khảo
được trích dẫn và chú thích đầy đủ.
TÁC GIẢ LUẬN VĂN
Lê Thị Thanh Vân
DANH MỤC HÌNH VẼ……………………………………………………...
vi
DANH MỤC BẢNG BIỂU………………………………………………….. vi
MỞ ĐẦU …………………………………………………………………….
1
Chương 1: TỔNG QUAN VỀ GIAO DỊCH BẰNG TIỀN ĐIỆN TỬ VÀ
AN TOÀN BẢO MẬT THÔNG TIN ……………………………………….
3
1.1. TỔNG QUAN VỀ GIAO DỊCH BẰNG TIỀN ĐIỆN TỬ ……………... 3
1.1. 1. Khái niệm tiền ………………………………………………………
3
1.1.2. Khái niệm tiền điện tử ………………………………………………. 3
1.1.3. Cấu trúc, tính chất của tiền điện tử …………………………………...
4
1.1.3.1. Cấu trúc …………………………………………………………………….. 4
1.1.3.2. Tính chất của tiền điện tử …………………………………………...
5
iv
1.3. CHỮ KÝ SỐ ……………………………………………………………. 15
1.3.1. Khái niệm chữ ký số …………………………………………………
15
1.3.1.1. Giới thiệu ……………………………………………………………
15
1.3.1.2. Sơ đồ chữ ký số ……………………………………………………..
16
1.3.2. Một số vấn đề liên quan đến chữ ký số …………………………….
17
1.3.2.1. Đại diện tài liệu ……………………………………………………..
17
1.3.2.2. Hàm băm ……………………………………………………………. 18
1.3.3. Một số sơ đồ ký số …………………………………………………… 18
1.3.3.1. Sơ đồ ký số RSA …………………………………………………….
18
24
1.4.5. Khai man giá trị đồng tiền ………………………………………….
24
1.4.6. Xâm phạm có sự kết hợp của nhân viên ngân hàng ………………. 24
Chương II: MỘT SỐ KỸ THUẬT ĐẢM BẢO AN TOÀN THÔNG TIN 26
ỨNG DỤNG TRONG GIAI ĐOẠN RÚT TIỀN ĐIỆN TỬ ………………..
2.1. KỸ THUẬT “CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN” …….
27
2.2. KỸ THUẬT CHỮ KÝ MÙ THEO SƠ ĐỒ KÝ SỐ RSA VỚI NHIỀU
KHÓA KÝ …………………………………………………………………..
30
2.2.1. Chữ ký số “mù” theo sơ đồ ký RSA ………………………………..
30
2.2.2. Ứng dụng của chữ ký mù RSA trong giai đoạn rút tiền ………….
32
2.2.2.1. Kiểm tra tính hợp pháp của đồng tiền ………………………………
33
3.2.1. Khởi tạo các thông số ban đầu ……………………………………… 48
3.2.2. Chủ tài khoản gửi yêu cầu xác minh ……………………………….. 48
3.2.3. Ngân hàng gửi thử thách ……………………………………………. 48
3.2.4. Chủ tài khoản gửi chứng minh ……………………………………... 48
3.2.5. Ngân hàng kiểm tra tính hợp pháp của chủ tài khoản ..…………... 49
3.3. CHƯƠNG TRÌNH THỬ NGHIỆM …………………………………….
49
3.3.1. Chương trình thử nghiệm chữ ký mù RSA ………………………..
49
3.3.2. Chương trình “Chứng minh không tiết lộ thông tin” trong xác
thực chủ tài khoản …………………………………………………………
52
3.3.3. Đánh giá ………………………………………………………….......
56
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI …………………………
57
TÀI LIỆU THAM KHẢO …………………………………………………...
58
45
Hình 3.2: Sơ đồ luồng dữ liệu khi ký mù lên đồng tiền …………………….
46
Hình 3.3: Đồng tiền ………………………………………………………….
49
Hình 3.4: Thực hiện ký mù lên đồng tiền …………………………………… 50
Hình 3.5: Đồng tiền đã làm mù và chữ ký mù của ngân hàng trên đồng tiền..
50
Hình 3.6: Thực hiện xóa mù cho đồng tiền ………………………………….
51
Hình 3.7: Chữ ký trên đồng tiền của ngân hàng …………………………….. 51
Hình 3.8a: Kiểm tra chữ ký - chữ ký đúng: tiền thật ………………………... 52
Hình 3.8b: Kiểm tra chữ ký - chữ ký sai: tiền “giả” ………………………… 52
Hình 3.9: Khởi tạo các thông số ban đầu ……………………………………. 53
Hình 3.10: Chủ tài khoản gửi yêu cầu xác minh..……………………………
53
Hình 3.11: Giá trị y được gửi lại cho ngân hàng …………………………….
hành đảm bảo bằng việc cam kết sẽ chuyển đổi tiền điện tử sang tiền giấy theo yêu
cầu của người sở hữu.
Quá trình dùng tiền điện tử có sự tham gia của Ngân hàng, người trả tiền,
người được trả tiền và chia làm ba giai đoạn:
Giai đoạn 1: Người tiêu tiền rút tiền điện tử từ ngân hàng
Giai đoạn 2: Người tiêu tiền thanh toán tiền điện tử (tiêu tiền) cho
bên người được trả tiền
Giai đoạn 3: Người được trả tiền gửi tiền điện tử vào ngân hàng
Tiền điện tử mang lại lợi ích không chỉ cho phía người dùng mà còn cho cả
phía ngân hàng cũng như phía nhà cung cấp. Tiền điện tử làm tăng tốc độ cũng như
hiệu quả của các phiên giao dịch. Tuy nhiên để 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 như: yêu cầu rút tiền
có thể bị mạo danh, sửa đổi. Khi đó đòi hỏi ngân hàng phải thẩm định xem yêu cầu
rút tiền đó có đúng không (đúng tài khoản, đúng số tiền, đúng chủ tài khoản). Và
đặc biệt khi “tiêu tiền”, làm thế nào có thể ẩn danh người tiêu tiền với tiền vì đây là
tiền điện tử chứ không phải là tiền giấy. Đặc biệt, làm thế nào người tiêu tiền không
thể tiêu một đồng tiền nhiều lần, hay khai man giá trị của đồng tiền cũng như trong
quá trình chuyển tiền từ người này sang người khác thì tiền được “an toàn”, …
Từ những nhận định trên và sự gợi ý của giáo viên hướng dẫn, tôi quyết định
chọn đề tài: “Nghiên cứu một số kỹ thuật an toàn thông tin dùng trong rút tiền
điện tử”
2
Nội dung chính của luận văn gồm có ba chương
Chương 1: Tổng quan về giao dịch bằng tiền điện tử và an toàn bảo mật
thông tin
Trong chương này luận văn trình bày về tiền điện tử, giao dịch bằng tiền điện
nguyên tắc là dùng để trả nợ. Khi là một phương tiện thanh toán tiền là phương tiện
trao đổi chuyển tiếp vì hàng hóa hay dịch vụ không thể trao đổi trực tiếp cho
nhau được.
Người ta cũng có thể nhìn tiền như là vật môi giới, biến việc trao đổi trực tiếp
hàng hóa và dịch vụ, thường là một trao đổi phải mất nhiều công sức tìm kiếm,
thành một sự trao đổi có 2 bậc.
1.1.2. Khái niệm tiền điện tử.
Tiền điện tử (E-money, E-currency, Internet money, Digital money, Digital
cash) là thuật từ vẫn còn chưa được định nghĩa đầy đủ. Tuy nhiên có thể hiểu Tiền
điện tử là loại tiền trao đổi theo phương pháp “điện tử”, liên quan đến mạng máy
tính và những hệ thống chứa giá trị ở dạng số (Digital stored value Systems).
4
Tiền điện tử cho phép người dùng có thể thanh toán khi mua hàng, hay sử
dụng các dịch vụ, nhờ truyền đi các “dãy số” từ máy tính (hay thiết bị lưu trữ như
Smart Card) này tới máy tính khác (Smart Card).
Cũng như dãy số (Serial) trên tiền giấy, dãy số của tiền điện tử là duy nhất.
Mỗi "đồng tiền điện tử” được phát hành bởi một tổ chức (ngân hàng) và biểu diễn
một lượng tiền thật nào đó.
Tiền điện tử có loại ẩn danh, có loại định danh .
Tiền ẩn danh không tiết lộ thông tin định danh của người sử dụng. Tính ẩn
danh của tiền điện tử tương tự như tiền mặt thông thường. Tiền điện tử ẩn danh
được rút từ một tài khoản, có thể được tiêu xài hay chuyển cho người khác mà
không để lại dấu vết.
Tiền điện tử định danh tiết lộ thông tin định danh của người dùng. Nó tương tự
như thẻ tín dụng, cho phép ngân hàng lưu dấu vết của tiền khi luân chuyển.
Mỗi loại tiền trên lại chia thành 2 dạng: trực tuyến (online) và không trực
tuyến (offline).
mình. Và người sử dụng nào cũng có thể kiểm tra tính hợp lệ của đồng tiền bằng
cách sử dụng khóa công khai của ngân hàng để kiểm tra.
1.1.3.2. Tính chất của tiền điện tử.
a. Tính an toàn (Security)
* Đảm bảo đồng tiền điện tử không bị sao chép, không bị sử dụng lại.
* Khả năng giả mạo đồng tiền (forgery):
Đối với tiền giấy, có giả mạo tiền hay làm giả đồng tiền. Tương tự tiền giấy,
khi giao dịch tiền điện tử, thường gặp trong hệ thống thanh toán là sự giả mạo. Có
hai loại giả mạo đối với tiền điện tử.
+ Giả mạo đồng tiền: tạo ra đồng tiền giả giống như thật, nhưng không có xác
nhận rút tiền của ngân hàng.
+ Tiêu một đồng tiền nhiều lần: là sử dụng cùng một đồng tiền nhiều lần (thuật
ngữ tương đương như double spending, hay multiple spending, hay repeat
spending)
6
b. Tính xác thực
Do luôn có sự giả mạo, nên ta cần phải xác lập được các mức khác nhau về
cách đánh giá tính xác thực.
+ Nhận dạng người dùng: Người dùng cần phải biết mình đang giao dịch
với ai.
+ Xác thực tính toàn vẹn thông điệp: đảm bảo bản copy của thông điệp hoàn
toàn giống bản ban đầu.
c. Tính riêng tư (Privacy)
Chưa thể định nghĩa một cách rõ ràng tính chất này của Tiền điện tử. Đối với
một số người, tính riêng tư có nghĩa là sự bảo vệ chống lại “eavesdropping”.
Đối với một số người khác như David Chaum, “tính riêng tư” có nghĩa là
trong quá trình thanh toán, người trả tiền phải được ẩn danh, không để lại dấu vết,
Trong thời đại công nghệ thông tin và Internet phát triển như hiện nay, giao
dịch điện tử đã trở nên phổ biến. Người ta có thể sử dụng tiền điện tử để thanh toán
cho những giao dịch này. Tiền điện tử cũng như tiền giấy nó có chức năng là
phương tiện trao đổi và tích lũy giá trị. Nếu như tiền giấy được đảm bảo và phát
hành bởi Nhà nước thì đối với tiền điện tử, giá trị của nó được tổ chức phát hành
đảm bảo bằng việc cam kết sẽ chuyển đổi tiền điện tử sang tiền mặt theo yêu cầu
của người sở hữu.
Tiền điện tử được “tiêu” theo mô hình sau:
Ngân hàng
Gửi tiền
Rút tiền
Người A
Thanh toán
Người B
Hình 1.1 : Mô hình giao dịch tiền điện tử
8
Trong mô hình trên, quá trình dùng tiền điện tử có sự tham gia của Ngân hàng,
người trả tiền, người được trả tiền và chia làm ba giai đoạn:
Giai đoạn 1: Người tiêu tiền rút tiền điện tử từ ngân hàng
Giai đoạn 2: Người tiêu tiền thanh toán tiền điện tử (tiêu tiền) cho bên người
được trả tiền
Giai đoạn 3: Người được trả tiền gửi tiền điện tử vào ngân hàng.
các ngân hàng, tổ chức giao dịch phải có các chính sách bảo mật tốt nhất có thể.
1.1.5. Giao dịch bằng tiền điện tử tại Việt Nam.
Cùng với sự phát triển chung của thế giới, trong những năm gần đây, số lượng
thuê bao Internet của Việt Nam tăng nhanh. Số thuê bao Internet đã chiếm trên 30%
dân số Việt Nam. Đa số các doanh nghiệp và các tổ chức có hệ thống mạng và
website giới thiệu, quảng bá thương hiệu cũng như giao dịch lên đến hàng triệu tên
miền .vn cũng như tên miền thương mại. Có rất nhiều doanh nghiệp đã ứng dụng
thanh toán trực tuyến vào công việc kinh doanh, giao dịch. Nhiều ngân hàng như
Vietcombank, Vietinbank, BIDV, HSBC, Agribank… đã mở thêm dịch vụ “Ngân
hàng điện tử” cho phép người dùng chuyển khoản trực tuyến trong cùng ngân hàng
hoặc với ngân hàng khác, thanh toán trực tuyến cước di động trả sau, tiền điện, tiền
nước hay thanh toán trực tuyến bằng thẻ được chấp nhận với các công ty, doanh
nghiệp đã đăng ký với ngân hàng đó.
1.1.5.1. Thẻ Phone card
Hệ thống tiền điện tử đầu tiên được triển khai đưa vào sử dụng ở Việt Nam là
thẻ điện thoại công cộng. Xuất hiện từ những năm 90 với tộc độ phát triển mạnh mẽ
nó đã được sử dụng khá rộng rãi trước trào lưu sử dụng điện thoại di động. Ở các
thành phố hoặc các trung tâm một hệ thống các trạm điện thoại công cộng được
VNPT Việt Nam đầu tư lắp đặt. Đây cũng chính là hình thức đơn giản nhất của tiền
điện tử.
Người sử dụng mua thẻ ở các đại lý, sau đó sử dụng thẻ bằng cách cắm thẻ
vào thiết bị đọc thẻ gắn liền với điện thoại, khi hết tiền trong thẻ, người sử dụng
phải mua thẻ mới nếu có nhu cầu sử dụng tiếp. Đây là một trong những hạn chế lớn
nhất của thẻ điện thoại dùng chíp nhớ vì nó không có khả năng tái sử dụng (nạp
thêm tiền vào thẻ), mặc dù vậy khi ra đời nó nhanh chóng được xã hội đón nhận.
10
Tuy nhiên sau sau một thời gian ngắn thì hệ thống này ở Việt Nam gần như đã tê
11
tiền mặt tại ATM của PGBank và hệ thống ATM trong liên minh Banknetvn trên
toàn quốc; Nhận lương, thu nhập qua tài khoản thẻ Flexicard ;Thanh toán hàng hóa
dịch vụ tại hàng nghìn đơn vị chấp nhận thẻ tại các nhà hàng, khách sạn, siêu thị,
rạp chiếu phim, các điểm vui chơi giải trí…; Thanh toán chi phí mua xăng dầu tại
hơn 2.000 điểm phân phối xăng dầu của Petrolimex trên toàn quốc; Vấn tin số dư
tài khoản; Chuyển khoản dễ dàng và đơn giản từ tài khoản thẻ ghi nợ sang tài khoản
thẻ ghi nợ; Từ tài khoản thẻ ghi nợ sang tài khoản thẻ trả trước; In sao kê giao
dịch…
1.1.5.3. Thẻ ATM
Hiện nay, ở Việt Nam thẻ ATM là loại thẻ được người dân sử dụng nhiều nhất
do nhiều ngân hàng phát hành. Có trên 10.000 máy ATM, hơn 36.000 thiết bị chấp
nhận thẻ được lắp đặt và trên 22 triệu thẻ ngân hàng được phát hành…Tuy nhiên
trên thực tế, đa số gười dân chỉ sử dụng thẻ ATM để rút tiền, còn việc thanh toán
điện tử là rất hạn chế. Bên cạnh việc sử dụng thẻ ngân hàng, hiện nay đang đẩy
mạnh việc sử dụng các phương tiện thanh toán không dùng tiền mặt hiện đại khác
như Internet Banking, Mobile Banking, ghi nợ trực tiếp từ tài khoản…Nhiều cơ
quan, nhà máy, công ty…. đã tiến hành trả lương cho người lao động qua thẻ ATM.
Trong giai đoạn các thiết bị công nghệ hiện đại phát triển như hiện nay cùng
với dịch vụ của các ngân hàng là tương đương nhau là môi trường thuận lợi cho tiền
điện tử phát triển ở Việt Nam hiện nay. Một số doanh nghiệp đã nghiên cứu và đưa
ra thị trường thẻ thanh toán đa mục đích như để chơi game trực tuyến, sử dụng
internet, mua hàng trực tuyến.
Tuy nhiên với thói quen sử dụng tiền mặt của người dân, tính thuận tiện trong
thanh toán đối với các giao dịch trực tuyến hàng ngày chưa tốt nên lợi ích của tiền
điện tử mang lại đối với người dân chưa đủ lớn.
1.1.5.4. Yếu tố ảnh hưởng đến tiền điện tử tại Việt Nam
- Cơ sở hạ tầng chưa phát triển đồng đều, dẫn đến trường hợp giao dịch điện
tử nhưng thanh toán trực tiếp, do các điểm thanh toán quá ít, dịch vụ đi kèm còn
hóa được định nghĩa là bộ năm thành phần P, C, K, E, D, trong đó:
P là tập hữu hạn các ký tự bản rõ
13
C là tập hữu hạn các ký tự bản mã
K là tập hữu hạn các khóa
E là tập các ánh xạ từ P vào C được gọi là hàm lập mã
D là tập các ánh xạ từ C vào P được gọi là hàm giải mã.
Với mỗi khóa lập mã ke K, có hàm lập mã eke E, eke: P C
Với mỗi khóa giải mã kd K, có hàm giải mã dkd D, dkd: C P
sao cho dkd(eke(x)) = x, x P
Ở đây x được gọi là bản rõ, eke(x) được gọi là bản mã.
1.2.1.2. Mã hóa và giải mã
Bản rõ x
Mã
hóa
Bản mã eke(x)
Bản mã eke(x)
Bản mã eke(x)
Giải
Bản rõ dkd(eke(x))
mã
Mã hóa
Khóa K
Bản mã
Giải mã
Bản rõ
Hình 1.3: Sơ đồ mã hóa khóa đối xứng
Đặc điểm của hệ mã hóa khóa đối xứng:
- Độ an toàn của hệ mã phụ thuộc vào khóa.
- Thuật toán mã hóa và giải mã đơn giản nên tốc độ mã hóa, giải mã rất nhanh.
Thích hợp cho việc mã hóa những bản tin lớn.
- Vấn đề thỏa thuận khóa và quản lý khóa chung là khó khăn và phức tạp.
Khóa chung phải được gửi cho nhau trên kênh an toàn riêng, chi phí lớn. Chính vì
vậy việc trao đổi khóa là tốn kém.
- Phù hợp với môi trường khóa chung dễ dàng trao đổi, truyền cho nhau khi có
sự thay đổi khóa.
Hệ mã hoá khóa công khai có khóa lập mã (ke) khác hóa giải mã (kd). Biết
được khóa này cũng “khó” tính được khóa kia. Vì vậy chỉ cần bí mật khóa giải mã,
còn khóa lập mã thì công khai.
Khóa giải
mã Kd
Khóa mã
hóa Ke
- RSA: là hệ mã hoá khóa công khai, độ an toàn của hệ dựa vào bài toán khó:
“Phân tích số nguyên thành tích các thừa số nguyên tố”. Độ dài khóa thường từ 512
bit đến 1024 bit.
- Hệ mã hoá MHK: Là hệ mã hóa khóa công khai, dựa trên bài toán tổng tập
con của một tập hợp, tổng quát bái toán có độ phức tạp O(n2), với n là số tập con.
- ElGamal: Độ dài khóa từ 512 đến 1024 bit.
1.3. CHỮ KÝ SỐ
1.3.1. Khái niệm chữ ký số
1.3.1.1. Giới thiệu
Để chứng thực nguồn gốc hay hiệu lực của một tài liệu, lâu nay người ta dùng
chữ ký “tay”, ký vào phía dưới của mỗi tài liệu. Vì vậy người ký phải ký tay trực
tiếp 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
16
vì chúng không được in ra 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 bit có thể rất dài nếu in trên giấy có thể lên đến hàng nghìn
trang. “Chữ ký” để chứng thực một xâu bit 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 để làm giả chữ ký cho một tài liệu “số” bất hợp pháp.
Ký số là phương pháp ký một thông điệp lưu dưới dạng “số” (điện tử). Thông
điệp được ký và chữ ký cùng truyền trên mạng tới người nhận.
Với chữ ký truyền thống, khi ký lên tài liệu thì chữ ký gắn kết với tài liệu
được ký. Chữ ký số không được gắn một cách vật lý với thông điệp được ký.
Đối với chữ ký trên giấy, ta kiểm tra bằng cách so sánh nó với chữ ký gốc đã
đăng ký. Tất nhiên, phương pháp này không an toàn vì có thể bị đánh lừa bởi chữ
ký của người khác. Trong khi đó, chữ ký số được kiểm tra bằng thuật toán kiểm tra
false khi y sig ( x)
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 để kiểm tra chữ ký.
Ngược với việc mã hóa: dùng khóa công khai b để mã hóa, dùng khóa bí mật a
để giải mã. Điều này hoàn toàn tự nhiên vì “ký” để xác định người ký hay hiệu lực
của tài liệu nên “ký” cần bí mật. Còn sau khi ký, tài liệu hay chữ ký là công khai
cho mọi người biết nên họ dùng khóa công khai b để kiểm tra chữ ký.
1.3.2. Một số vấn đề liên quan đến chữ ký số
1.3.2.1. Đại diện tài liệu
Ký số được thực hiện trên từng bit tài liệu nên độ dài của chữ ký số lớn hơn
hoặc bằng độ dài của tài liệu. Mặt khác trên thực tế ta cần phải ký vào các tài liệu có
kích thước rất lớn. Như vậy phải tốn nhiều bộ nhớ để lưu trữ chữ ký, tốn thời gian
truyền chữ ký trên mạng. Hơn nữa, với một số sơ đồ chữ ký an toàn thì tốc độ ký lại
chậm vì chúng sử dụng nhiều phép tính số học phức tạp.
Một cách đơn giản để khắc phục những vấn đề trên với thông điệp có kích
thước lớn là thay vì phải 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.
Vậy đại diện tài liệu là giá trị của hàm băm trên tài liệu, nó còn được gọi là
bản tóm lược hay bản thu gọn của tài liệu.