Stored procedure
Nhiều lập trình viên tin rằng “Stored procedure” là “liều thuốc” hữu hiệu cho
“căn bệnh” SQL Injection. Tuy nhiên điều đó không đúng hoàn toàn. Thực tế lợi ích
của Stored Procedure trong hầu hết các trường hợp đó là nó cố gắng giúp cho ứng dụng
hiểu giá trị đầu vào do người dùng nhập là dữ liệu chuẩn bị được sử dụng chứ không
phải là mã SQL sắp được thực thi.
Một ví dụ, lời gọi thủ tục trong mã T-SQL có cấu trúc như sau:
SELECT * FROM user WHERE username = @uname;
Trong trường hợp này cơ sở dữ liệu sẽ loại bỏ bất kỳ ký tự điều khiến SQL nào
được truyền cho biến @uname do đó có thể phòng tránh được SQL Injection trực tiếp
từ đầu vào do người dùng nhập vào. Tuy nhiên vấn đề ở chỗ T-SQL cũng cho phép tạo
các câu truy vấn bằng cách kết hợp các chuỗi cố định và những giá trị do người dùng
nhập vào. Sau đây là một ví dụ:
EXEC(„SELECT * FROM user WHERE uid = ‟ + @userid);
Nếu chuỗi “123 OR 1=1” được truyền cho @userid thì hacker vẫn tấn
công SQL Injection thành công cơ sở dữ liệu ngay cả khi stored peocedure đã được sử
dụng.
226 trang |
Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 398 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình Cơ sở an toàn thông tin, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng nhƣ một điều luật, giúp hoạt động xã hội trôi
chảy.
Tƣ tƣởng này đƣợc đem áp dụng vào thế giới máy tính, tuy nhiên ở đây xuất
hiện một số vấn đề nhất định đối với các trọng tài máy tính:
Có thể dễ dàng tìm thấy và đặt lòng tin vào một bên thứ ba trung gian trọng tài nếu
ta biết và có thể nhìn tận mặt họ.Tuy nhiên nếu mà hai bên tham gia protocol đã
nghi ngờ nhau thì việc cùng đặt lòng tin vào một bên thứ ba nào đó nằm đâu đó
khuất diện trên mạng máy tính cũng trở nên có thể đáng ngờ.
Mạng máy tính sẽ phải tốn thêm chi phí để quản lý và bảo trì máy tính trọng tài.
Chúng ta đều biết đến chi phí thuê luật sƣ, vậy ai sẽ đứng ra để đỡ cái chí phí tăng
tải này (network overhead)?
Luôn luôn có những khoảng trễ vốn gắn liền với bất kỳ một protocol có trọng tài
nào
Trọng tài phải tham gia vào mọi giao dịch trên mạng, điều đó có nghĩa ở đó sẽ trở
nên một điểm thắt nút ngƣỡng cổ chai (bottleneck), dễ tắc trên mạng một khi
protocol đã đƣợc triển khai cho một ứng dụng rộng rãi. Tăng cƣờng số trọng tài có
thể giúp tránh bế tắc này nhƣng lại làm tăng thêm chi phí để quản lý bảo trì những
máy trọng tài đó.
Bởi vì tất cả mọi ngƣời trên mạng đều tin trọng tài, dễ gây ra ở đây một điểm nhạy
cảm chịu áp lực tấn công tập trung từ các kẻ rình rập để phá phách hệ thống.
10.2.2 Protocols có ngƣời phân xử.
Để yên tâm giao dịch, Alice và Bob cần mời đƣợc một ngƣời trọng tài uy tín
cao, tuy nhiên chi phí mời/thuê một ngƣời nhƣ vậy sẽ là đáng kể. Vì vậy ngƣời ta đã
đƣa ra khả năng chia tách giao thức có trọng tài tham dự thành hai pha giao thức (sub-
protocol):
Giao thức con, không trọng tài: thực hiện bất kỳ khi nào muốn tiến hành giao dịch.
Giao thức có trọng tài mà chỉ đƣợc sử dụng khi Alice và Bob cãi nhau và muốn có
ngƣời phân xử. Vì thế trong trƣờng hợp này ta không dùng khái niệm ngƣời trọng
Cơ sở An toàn Thông tin – 2014
206 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
tài (arbitrator), với ý nghĩa là ngƣời phải trực tiếp tham gia vào protocol, mà sử
dụng khái niệm ngƣời phân xử (adjudicator): ngƣời này không cần phải có mặt khi
Alice và Bob tiến hành giao dịch, mà chỉ đƣợc mời đến khi Alice và Bob yêu cầu
giải quyết tranh cãi.
Cũng giống nhƣ trọng tài, ngƣời phân xử phải không có quyền lợi liên can đến
giao dịch của Alice và Bob và đƣợc cả hai ngƣời này tin tƣởng. Anh ta không tham gia
trực tiếp vào giao dịch nhƣ trọng tài nhƣng sẽ đứng ra để xác định xem là giao dịch có
đƣợc tiến hành đúng không và xác định bên sai bên đúng nếu nhƣ có tranh cãi. Ví dụ,
Alice và Bob có thể tiến hành giao dịch hợp đồng với hình thức nhƣ sau.
Ví dụ 10.3
a. Nonarbitrated protocol (dùng tại mọi thời điểm):
(1) Alice and Bob thỏa thuận các điều khoản của hợp đồng.
(2) Alice ký hợp đồng
(3) Bob ký hợp đồng
b. Adjudicated protocol (chỉ thực hiện khi có tranh cãi cần giải quyết):
(1) Alice và Bob đến gặp quan tòa nhờ phân xử.
(2) Alice đƣa các chứng cớ của cô ta
(3) Bob trình bày các chứng cớ của anh ta
(4) Quan tòa xem xét các chứng cớ và phán quyết.
Điểm khác biệt giữa ngƣời trọng tài và ngƣời phân xử (dùng theo ý nghĩa nhƣ ở
đây) là ngƣời phân xử không phải luôn luôn cần thiết. Nếu có tranh cãi thì mới cần
ngƣời phân xử, không có tranh cãi thì thôi. Ý tƣởng dùng ngƣời phân xử này có thể
đem vào áp dụng trên máy tính. Trong những protocol thế này nếu có một bên tham
gia mà không trung thực thì những dữ liệu lƣu đƣợc từ protocol sẽ cho phép ngƣời
phân xử sau này phát hiện đƣợc ai là ngƣời đã lừa dối. Nhƣ vậy thay vì ngăn chặn
trƣớc sự lừa đảo, protocol ngƣời phân xử sẽ phát hiện đƣợc lừa dối nếu xảy ra, thực tế
này khi đƣợc phổ biến rộng sẽ có tác dụng nhƣ ngăn chặn, làm lùi bƣớc những kẻ có dã
tâm lừa dối.
10.2.3 Protocol tự xử (Self-enforcing protocol)
Protocol tự xử là loại tốt nhất vì tự bản thân nó có thể đảm bảo đƣợc tính công
bằng, không cần đến trọng tài để trực tiếp tham gia cầm cân nảy mực, hay một thẩm
phán để phân xử khi có tranh cãi. Có nghĩa là protocol loại này đƣợc chế ra sao cho
không thể có các kẽ hở cho tranh cãi nảy sinh. Nếu có bên nào cố ý chơi sai luật thì
tiến trình sẽ cho phép phía bên kia phát hiện ra ngay và protocol dừng lại ngay lập tức.
Điều mong ƣớc rõ ràng là tất cả các protocol đều nên chế tạo nhƣ thế, nhƣng đáng tiếc
là không phải lúc nào cũng có protocol loại này cho mọi tình huống.
Cơ sở An toàn Thông tin – 2014
207 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
10.3 CÁC DẠNG TẤN CÔNG ĐỐI VỚI PROTOCOLS
Nếu nhƣ protocol đƣợc coi nhƣ là nghi thức giao tiếp để các bên làm việc với
nhau thì đối với GTMM, bên dƣới cái vỏ „ngoại giao‟ đó là các kỹ thuật, các thuật toán
mật mã đƣợc vận dụng, cài đặt trong các bƣớc cụ thể của protocol. Các tấn công của kẻ
phá hoại, nhằm phá hoại tính an ninh của hệ thống cũng nhƣ xâm phạm tính bí mật
riêng tƣ của thông tin, là có thể hƣớng vào một trong các yếu tố sau: các xử lý kỹ thuật,
các thuật toán mật mã hay là chính bản thân protocol. Trong phần này chúng ta hãy gác
lại khả năng thứ nhất - giả sử rằng các kỹ thuật và thuật toán mật mã đều đƣợc đảm bảo
tốt, an toàn - và chúng ta chỉ xem xét khả năng thứ hai, tức là phân tích các dạng tấn
công có thể, trong đó kẻ thù lợi dụng các kẽ hở logic của protocol để mà kiếm lợi hoặc
phá hoại. Các dạng tấn công này có thể phân thành hai loại chính nhƣ sau.
Với dạng tấn công thụ động (passive attack), kẻ địch chỉ đứng ngoài nghe trộm
chứ không gây can thiệp hay ảnh hƣởng gì đến protocol. Mục đích của nó là cố gắng
quan sát và thu lƣợm thông tin. Tuy nhiên thông tin nghe trộm đƣợc chỉ là thông tin đã
đƣợc mã hóa, do đó kẻ địch cần phải biết cách phân tích giải mã thì mới dùng đƣợc
6
.
Mặc dù hình thức tấn công này không mạnh những rất khó phát hiện vì kẻ thù không
gây động. Vì vậy ngƣời ta phải nghĩ cách ngăn chặn trƣớc loại tấn công này. Nhƣ đã
biết, kẻ nghe trộm ở đây đƣợc gọi đến thông qua tên Eve.
Với dạng tấn công chủ động (active attack), kẻ địch là một thế lực trong mạng
nắm nhiều khả năng và phƣơng tiện để có thể chủ động can thiệp và gây ảnh hƣởng
phức tạp. Nó có thể đóng giả, núp dƣới một cái tên khác, can thiệp vào protocol bằng
những thông báo kiểu mới, xóa bỏ những thông báo đang phát trên đƣờng truyền, thay
thế thông báo thật bằng thông báo giả, phát lại nhiều lần một thông báo thật đã đƣợc
ghi lại trƣớc đó với mục đích gây nhiễu, ngắt ngang chừng các kênh thông tin và sửa
chữa vào các kho thông tin lƣu trên mạng. Các khả năng khác nhau này là phụ thuộc
vào tổ chức mạng máy tính và vai trò của kẻ địch trên mạng.
Kẻ tấn công trong tấn công thụ động chỉ cố gắng thu lƣợm thông tin từ các bên
tham gia protocol, thông qua thu thập các thông báo truyền đi giữa các bên để mà phân
tích giải mã. Trong khi đó kẻ tấn công chủ động có thể gây ra các tác hại rất đa dạng
phức tạp. Kẻ tấn công có thể có mục đích thông thƣờng đơn thuần là tóm đƣợc tin mà
nó quan tâm, nhƣng ngoài ra nó còn có thể gây ra các phá hoại khác nhƣ phá hoại
đƣờng truyền và làm sai lạc các thông báo qua lại, hạ thấp chất lƣợng hoạt động của hệ
thống hay nghiêm trọng và phức tạp hơn là tìm cách đoạt quyền truy nhập vào những
hệ thống thông tin mà chỉ dành cho những ngƣời có đủ thẩm quyền.
Kẻ địch trong tấn công chủ động quả thật là nguy hiểm, đặc biệt là trong các
protocol mà các bên khác nhau không nhất thiết là phải tin nhau. Hơn nữa phải nhớ
rằng kẻ địch không phải chỉ có thể là những kẻ xa lạ bên ngoài mà nó có thể là một cá
6
Tấn công trong trƣờng hợp này, trong ngữ cảnh chung của Cryptography, thƣờng
đƣợc gọi là Ciphertext Only Attack
Cơ sở An toàn Thông tin – 2014
208 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
nhân hợp pháp trong hệ thống, thậm chí ngay chính là ngƣời quản trị hệ thống. Ngoài
ra còn có thể có nhiều cá nhân liên kết với nhau thành một nhóm kẻ địch và sức mạnh
của chúng sẽ tăng lên gây nguy hiểm rất nhiều. Nhƣ đã biết, ở đây ta đã quy ƣớc gọi
những kẻ tấn công chủ động rất nguy hiểm này qua cái tên Mallory.
Một điều cũng có thể xảy ra là Mallory lại là chính một đối tác trong protocol.
Anh ta có thể có hành động lừa dối hoặc là không chịu tuân theo protocol. Loại kẻ địch
này đƣợc gọi là kẻ lừa đảo
7
(cheater). Kẻ lừa đảo thuộc loại thụ động thì có thể làm
đúng theo protocol nhƣng lại cố tình thu nhặt thêm thông tin từ các bên đối tác hơn là
đƣợc phép theo qui định. Kẻ lừa đảo chủ động thì phá vỡ protocol để lừa dối. Rất khó
để giữ an toàn cho một protocol nếu nhƣ phần lớn các bên tham gia đều là những kẻ
lừa đảo chủ động, tuy nhiên đôi khi ngƣòi ta cũng có các biện pháp để các bên hợp
pháp có thể dò ra đƣợc sự lừa đảo đang diễn ra. Tất nhiên, các protocol cũng cần phải
đƣợc bảo vệ để chống lại những kẻ lừa đảo loại thụ động.
10.4 NHÌN LẠI MỘT SỐ GIAO THỨC MẬT MÃ ĐÃ HỌC
Giao thức Needham-Schroeder (về trao chuyển khóa sử dụng trung gian đáng tin
cậy) là một giao thức mật mã điển hình mà ta đã khảo sát ở chƣơng 5. Giao thức này
nhằm giải quyết một bài toán cơ bản trong truyền tin bảo mật dùng mật mã khóa đối
xứng; đó là làm sao để tạo đƣợc một bí mật (khóa đối xứng) chia sẻ giữa hai bên qua
một mạng truyền thông công cộng. Không những giao thức này giúp thiết lập nên một
kênh bảo mật dùng khóa đối xứng, mà nó còn xác lập cơ chế xác thực cần thiết giữa
các bên liên quan, Alice có thể xác thực đƣợc sự có mặt của Cathy, Bob có thể xác
thực đƣợc sự có mặt của Alice. Chính nhờ thế mà giao thức này có thể chống lại đƣợc
tấn công phát lại (replay attack), một loại tấn công phổ biến nhất.
Trong phần trình bày đó (thuộc chƣơng 5), chúng ta đã khảo sát một quá trình
phát triển dần của giải pháp: nêu bài toán và làm rõ giả thiết, nêu một giải pháp đơn
giản thô sơ, phân tích những điểm yếu, nêu giải pháp cải tiến, tiếp tục phân tích đánh
giá và đƣa tiếp các cải tiến chi tiết hơn Phần trình bày đó, có thể nói, đã làm khá rõ
việc xây dựng một giao thức mật mã tốt là phức tạp và tinh tế nhƣ thế nào. Song song
với những ý tƣởng xây dựng hoặc cải tiến, ta cần phải có còn mặt nhìn phân tích để
đánh giá, tìm ra điểm yếu để có thể khắc phục và làm tốt hơn.
Phần xác thực nói trên trong Needham-Schroder cũng đã bƣớc đầu chỉ ra cách
dùng một kỹ thuật khá phổ biến trong xây dựng giao thức mật mã; đó là kỹ thuật thách
thức-đáp ứng (challenge-response) sử dụng giá trị số ngẫu nhiên. Chính kỹ thuật này
7
Đến đây, Alice nhận đƣợc thùng hàng không suy suyển, chỉ việc khệ nệ bê về
phòng riêng, che lỗ khóa lại, dùng chìa riêng của mình để mở tháo E2 và lấy ra vật quý của
Bob. Nhân viên bƣu điện và bố mẹ Alice dù tò mò đến đâu cũng không thể làm phiền đƣợc
hai bạn trẻ của chúng ta! Mặc dù cách làm này hơi tốn kém một tý thật nhƣng thỏa mãn
đƣợc ý muốn kỳ cục của đôi trẻ.
Cơ sở An toàn Thông tin – 2014
209 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
cũng đã đƣợc nêu ra nhƣ một giải pháp hữu hiệu nhất cho xác thực bằng mật khẩu, mà
đƣợc nêu lên trong chƣơng 6 tiếp theo. Kỹ thuật mật khẩu dùng một lần (one-time
password) thông qua giao thức S/Key Lamport cũng thể hiện ý tƣởng này.
Trong chƣơng 5, chúng ta cũng đã thảo luận một số giải pháp tạo khóa đối xứng
bí mật trên cơ sở sử dụng hệ thống khóa công khai (nếu có) và chỉ rõ điểm yếu có thể
có: sử dụng tấn công kẻ ngồi giữa (the-man-in-the-middle) có thể khống chế và thao
túng việc trao đổi khóa công khai. Chính vì thế khóa công khai cần phải đƣợc phát
hành dƣới dạng chứng chỉ bởi các cơ quan uy tín thích hợp, tức là đòi hỏi sử xuất hiện
của một hạ tầng cơ chế vận hành (public key infrastructure).
10.5 MỘT SỐ GIAO THỨC CĂN BẢN VÀ NÂNG CAO
Trong phần này chúng ta sẽ tiếp tục khảo sát một số giao thức quan trọng khác,
để qua đó có thể trang bị một số kiến thức cơ bản và kỹ thuật quan trọng trong việc làm
quen và phân tích, đánh giá các giao thức mật mã, cũng nhƣ ứng dụng của chúng trong
các lĩnh vực đời sống.
10.5.1 Trao đổi tin mật không cần trao đổi khóa (Shamir 3-pass
protocol)
Ví dụ 10.5
Đây là một ví dụ đơn giản về
thiết kế một GTMM. Sau đây là
phát biểu của bài toán với một
hình thức của đời thƣờng. Giả sử
Bob muốn gửi một bƣu phẩm đặc
biệt qua bƣu điện cho Alice,
ngƣời mà anh ta có quan hệ trên
mức bình thƣờng. Tuy nhiên Bob
có lý do mà ngƣợng ngùng không
muốn để ngƣời khác đặc biệt là
cha của Alice nhìn thấy món quà
này. Hai ngƣời thống nhất qua
điện thoại sẽ bỏ bƣu phẩm vào
thùng và khóa lại nhƣng nảy sinh
vấn đề tất nhiên là Bob không thể
gửi chìa khóa đi kèm với gói
hàng.
Hình 10.1 Giao thức Shamir truyền tin mật không khóa
Cơ sở An toàn Thông tin – 2014
210 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
Shamir đƣa cách giải quyết 3 bƣớc nhƣ sau:
1. Bob bỏ bƣu phẩm vào thùng và khóa bằng khóa E1, rồi gửi cả đi.
2. Alice nhận đƣợc thùng hàng bèn lấy khóa riêng E2 của cô ta mà khóa thêm
vào rồi gửi trả lại Bob.
3. Bob nhận lại đƣợc thùng hàng, mở tháo khóa E1 rồi lại gửi lại cho Alice.
Sơ đồ trên có thể đƣợc áp dụng để chuyển tin bí mật giữa hai bên A và B dù hai
bên không có sẵn khóa bí mật dùng chung thống nhất từ trƣớc. Ta hãy giả sử A sẽ dùng
hệ mật mã với khóa Z1, B dùng hệ mật mã với khóa Z2. Protocol nhƣ sau:
1. A cần gửi tin X cho B. A mã hóa Y1= EZ1(X), rồi gửi Y1 cho B
2. B mã hoá Y2 = EZ2(Y1) rồi gửi cho Y2 cho A.
3. A giải mã Y3 = E
-1
Z1 (Y2) rồi gửi cho Y3 cho B.
Bây giờ B thu đƣợc Y3 và chỉ việc giải mã để thu đƣợc X = E
-1
Z2(Y3)
Điều kiện để cho protocol trên hoạt động đúng (giống nhƣ mô tả qua ví dụ đời
thƣờng ở trên) là ta phải chọn các hệ mã hoá E1 và E2 sao cho thoả mãn tính giao hoán:
EZ2(EZ1(X) = EZ1(EZ2(X) (*)
Thật vậy, với điều kiện này ta có thể biến đổi nhƣ sau:
X = E
-1
Z2(Y3) = E
-1
Z2(E
-1
Z1 (Y2)) = E
-1
Z2(E
-1
Z1 (EZ2(Y1))
= E
-1
Z2(E
-1
Z1 (EZ2(EZ1(X))) = E
-1
Z2(E
-1
Z1 (EZ1(EZ2(X)))
= E
-1
Z2(EZ2(X) = X
do đó B có thể tính X qua X = E
-1
Z2(Y3)
Nhƣ vậy để xây dựng thành công protocol ta phải đi tìm một thuật toán mã hóa
thích hợp mà thỏa mãn đƣợc (*). Điều này không phải là tầm thƣờng vì có những phép
mã hóa thỏa mãn đƣợc (*) nhƣng lại gây nên những rắc rối khác nhƣ ví dụ sau đây:
Ví dụ 10.6. Lấy E1 và E2 là các biến đổi mã one-time-pad
8
, ta có
Y1 = X Z1
Y2 = Y1 Z2 = X Z1 Z2
Y3 = Y2 Z1 = X Z2
Do đó ta có X= Y3 Z2. Tuy nhiên vấn đề là thuật toán mã hóa này không thể dùng
đƣợc vì nó đồng thời lại kéo theo tính chất sau đây:
Y1 Y2 Y3 = X!
8
Nhắc lại One-time pad là hệ mã bí mật tuyệt đối duy nhất trong đó khoá đƣợc chọn
là một chuỗi bít ngẫn nhiên có độ dài đúng bàng tin gửi, còn mã đƣợc tạo bằng cách đem
XOR hai chuỗi bit tin gửi và khoá với nhau; giải mã bằng cách lấy bản mã XOR với bản
khoá. Nên nhớ hệ này có tính thực tế rất hạn chế vì khoá dài nhƣ tin cần gửi và chỉ đƣợc
dùng một lần.
Cơ sở An toàn Thông tin – 2014
211 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
Nghĩa là Eve ngồi giữa nghe trộm đƣợc các thông báo Y1, Y2, Y3 và chỉ việc đem XOR
chúng lại là thu đƣợc tin gốc X.
Tuy nhiên lựa chọn hàm mật mã nhƣ ví dụ sau đây thì sẽ thành công.
Ví dụ 10.6. Sử dụng phép lấy lũy thừa trong trƣờng Zp. Giả sử X là một phần tử khác
không của Zp, với p công khai. Mỗi NSD chọn ngẫu nhiên một số e sao cho 1<e<p và
(e, p-1) =1.Sau đó sử dụng giải thuật GCD mở rộng để tính d= e
-1
(mod p-1). Các số e
và d đƣợc giữ bí mật. Sau đây là một ví dụ minh họa bằng số cụ thể.
Chọn p=17. Alice chọn eA = 3 và tính dA =11 (mod 16). Bob chọn eB =5 và tính
dB = 13.
Để gửi một thông báo mật m=2 cho Bob,
1. Alice Bob: Y1 = 2
3
= 8 (mod 17)
2. Bob Alice: Y2 = 85 = 9 (mod 17)
3. Alice Bob: Y3 = Y2
11
= 9
11
= 15 (mod 17)
4. Cuối cùng Bob tính và thu đƣợc thông báo m nhƣ sau:
m = Y3
dB
= 15
13
= 2 (mod 17)
Tất nhiên, đây vẫn là một protocol đơn giản, nhƣng qua đây bạn có thể có một
hình dung về công việc thiết kế một GTMM. Bên ngoài trông có vẻ đơn giản tuy nhiên
công việc này đòi hỏi hiểu biết nhiều, nhất là về các công cụ toán học. Chúng ta cũng
chƣa đề cập gì đến việc chứng minh một protocol là đúng đắn. Ở đây ta nói đến phép
chứng minh hình thức, tức là khả năng dùng công cụ logic hình thức và các hệ tiên đề
để chứng minh một protocol là đúng, hơn là dựa vào phân tích trực giác. Yêu cầu
chứng minh hình thức với mỗi giao thức thƣờng là vấn đề nan giải nhất (nhiều khi
không làm đƣợc đối với các giao thức phức tạp) trong việc phân tích đánh giá mỗi giao
thức.
10.5.2 Giao thức thống nhất khoá Diffie-Hellman
Đây là một giao thức rất quan trọng, đƣợc sử dụng phổ biến trong hầu hết các
gói giải pháp bảo mật phổ biến trên Internet (TLS, IPSEC). Mục đích của giao thức
này là nhằm tạo ra một khóa chung giữa 2 bên A và B thông qua mạng công cộng mà
không sử dụng ngƣời thứ ba (hãy so sánh với Needham-Schroeder giới thiệu ở chƣơng
5). Giao thức này đƣợc xây dựng nhƣ một hệ khóa công khai dù không phải là một hệ
mật mã công khai. Nó đƣợc đề xuất trong bài báo nổi tiếng của Diffie và Hellman cùng
với ý tƣởng về xây dựng hệ thống khóa côn khai (“New direction in Cryptography”,
1976). Tuy nhiên một nhà bác học làm trong cơ quan tình báo Anh (Williamson) sau
đó cũng đã lên tiếng nói rằng ông đã nghĩ ra giao thức này từ trƣớc nhƣng không thể
công bố mà phải giữ bí mật trong nội bộ. Phần trình bày sau đây sẽ nêu ngắn gọn tƣ
tƣởng của giải pháp và ví dụ minh họa số cho thuật toán.
Cơ sở An toàn Thông tin – 2014
212 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
Để thiết lập hệ thống, A và B thống nhất chọn một số nguyên tố p, một phần tử
nguyên thuỷ (primitive element) 1<<p, tức là:
{
0
,
1
,
2
, ...,
p-1
} = {1,2,3 ..., p-1}
Trong một hệ thống nhiều ngƣời sử dụng, các giá trị và p có thể coi là tham số
hệ thống mà tất cả mọi ngƣời đều biết. Đối với bất kỳ số nguyên tố nào cũng có nhiều
phần tử nguyên thủy, hay còn gọi là phần tử sinh ra Zp, và nhiều phần từ khác (thuộc
vào Zp) mà không phải là nguyên thủy. Tuy nhiên ta không khảo sát tính chất toán học
này ở đây. Hai bên A và B sau đó sẽ lựa chọn các khóa bí mật (XA, XB) cho mình và
thiết lập các giá trị có thể gọi là khóa công khai tƣơng ứng (YA, YB).
4. A chọn một số ngẫu nhiên XA, 1 XA p. B chọn một số ngẫu nhiên XB, 1 XB p.
5. A B: YA = α
XA
p
6. B A: YB= α
XB
p
7. Cuối cùng A tính:
ppYK BAABA
XXXXX
B )()(
B tính:
ppYK BABAB
XXXXX
A )()(
Nhƣ vậy ta thấy hai bên A và B đã trao đổi hai giá trị luỹ thừa của , (với bậc XA và
XB) và từ đó hai bên đều cùng tính đƣợc cùng một số K cũng là luỹ thừa của với bậc
bằng tích XAXB. Vì XA và XB là đƣợc giữ bí mật và không truyền đi nên K cũng là bí
mật, tức là hai bên có thể thống nhất chọn số K chung này làm khoá bí mật chung.
Kẻ thù chỉ có thể nghe trộm đƣợc YA,YB truyền qua mạng, để tính đƣợc K nó
cần phải biết XA,XB. Dựa vào YA tìm XA là khó: Độ an toàn của hệ thống quyết định
bởi tính khó của bài toán tính logarit rời rạc. Sau đây là một ví dụ minh hoạ cụ thể cho
giao thức trao chuyển khoá Diffie-Hellman
Tuy nhiên giao thức này vẫn có điểm yếu: nó là không an toàn đối với tấn công
kẻ ngồi giữa thao túng (the man-in-the-middle attack). Trong phép tấn công này, kẻ thù
C là rất mạnh và hiểm: C lẻn vào ngồi vào vị trí giữa A và B (vì tất nhiên A và B cách
mặt nhau trên mạng) và đóng giả mỗi bên khi liên lạc với phía bên kia (đóng giả làm A
để giao tiếp với B, và đóng giả là B để giao tiếp với A) và qua đó thiết lập khoá chung
giữa A và C, B và C. Trong khi đó A và B cứ tƣởng là mình đang thiết lập khoá chung
giữa A và B với nhau. Kết cục A và B hoá ra nói chuyện với C chứ không phải là nói
chuyện với nhau.
10.5.3 Zero-knowledge protocols
Nếu bạn nhập cảnh vào một đất nƣớc thì ngƣời ta sẽ yêu cầu bạn trình hộ chiếu
và Visa, nếu bạn muốn vào một tòa nhà có bảo vệ thì bạn cần phải cho xem chứng
Cơ sở An toàn Thông tin – 2014
213 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
minh thƣ, nếu bạn muốn đi qua một phòng tuyến thì bạn phải cho biết một mật khẩu.
Nhƣ vậy để bạn có thể chứng thực đƣợc mình chính là mình và mình có đủ thẩm quyền
đƣợc phép làm gì đó thì bạn phải trình cho ngƣời gác xem một vật sở hữu gắn liền với
bạn. Đó là thế giới thực truyền thống. Nhƣng trong thế giới mạng với sự trang bị của
LTMM bạn lại có thể có những phép màu là thông qua những protocol đặc biệt mà ở
đó ta không cần cho xem vật sở hữu của ta (coi nó nhƣ một bí mật) mà vẫn chứng minh
đƣợc cho ngƣời thẩm tra/ngƣời gác Victor rằng đúng là thật sự ta đang sở hữu vật đó.
(Có phải bạn thấy nó nhƣ một điều phi lý không?!). Trƣờng hợp này có thể rất cần
thiết
9
. Điều này có thể thực hiện đƣợc thông qua khả năng của Peggy trả lời đƣợc một
số câu hỏi của Victor - tuy nhiên không vì thế mà các câu trả lời lại lộ ra một chút
thông tin cho phép Victor có thể đoán đƣợc vật sở hữu bí mật đó. Mật vẫn hoàn mật,
dù Victor-gián điệp có ranh ma đến đâu cũng chỉ thu đƣợc số 0 về thông tin riêng tƣ
của Peggy. Chính vì thế những protocol này đƣợc gọi với cái tên là zero-knowledge
protocol; chúng cho phép các thao tác quan trọng nhƣ chứng minh danh tính
(identification) hay trao chuyển khóa (key exchange) có thể cài đặt đƣợc mà không làm
lộ một chút bí mật nào. Những tính chất này đặc biệt hấp dẫn khi áp dụng trong smart
card.
Trƣớc khi nêu một protocol làm ví dụ minh họa, ta nhắc lại các bên tham gia và
có thể có can thiệp vào:
Peggy ngƣời chứng minh (the prover): Peggy nắm đƣợc một thông tin và muốn
chứng minh cho Victor hay nhƣng không muốn tiết lộ thông tin đó.
Victor ngƣời thẩm tra (the verifier): Victor đƣợc quyền hỏi Peggy một loạt câu hỏi
cho đến khi nào anh ta chắc chắn là Peggy nắm đƣợc thông tin mật đó. Victor
không thể suy tìm đƣợc thông tin này ngay cả khi anh ta có cố tình lừa đảo hoặc
không tuân thủ protocol.
Eve ngƣời nghe trộm (Eavesdropper): Eve nghe trộm cuộc đối thoại trên mạng.
Protocol cần phải chống lại không để Eve lấy đƣợc tin đồng thời đề phòng replay
attack, tức là khả năng Eve sao chép các thông báo của Peggy phát đi và dùng lại
sau này để lừa Victor.
Mallory kẻ địch tiềm năng nguy hiểm nhất (the malicious active attacker): Loại
này vừa nghe trộm lại vừa có khả năng can thiệp bằng cách xóa, thay thế hay sửa
đổi các thông báo của Peggy và Victor trên mạng.
Bí mật cần chứng minh là một mẩu thông tin nhƣ là một mật khẩu, một khóa
riêng bí mật của một hệ khóa công khai hay là một đáp số của một vấn đề toán học học
búa. Sau đây là một ví dụ về giao thức nhƣ vậy, trong đó một ngƣời cần chứng minh sự
9
Ngƣời gác chỉ có nghĩa vụ kiểm tra xem ta có thẩm quyền để ra vào một địa điểm
nào đó hay không nhƣng chính ngƣời gác chƣa chắc có quyền đó. Nếu bạn là một VIP, còn
ngƣời gác lại làm tay sai cho một tổ chức nào khác thì các thông tin riêng tƣ của bạn có thể
bị thu thập gây bất lợi cho bạn.
Cơ sở An toàn Thông tin – 2014
214 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
sở hữu của mình về một tin mật đã đƣợc mã hóa bằng hệ RSA (proof of a plaintext
possession).
Giao thức PPP chứng minh sở hữu một tin mật trong RSA
Giả sử (n,e) là một hệ khóa công khai RSA của một tổ chức nào đó. Giả sử
Peggie đƣợc sở hữu và muốn chứng minh rằng cô ta biết một bản tin (plaintext) m là
đã bị mã hóa thành bản mã (ciphertext) c trong hệ RSA này, tức là c= m
e
(mod n). Cô
ta muốn chứng minh sự sở hữu này với Viktor mà không thể để lộ nó (chẳng hạn nhƣ
trong một vụ bán thông tin bí mật), thì một giao thức nhƣ sau có thể tiến hành:
1. P V: y=re với r R Zn
2. V P: b R{0,1}.
3. P V: z = r*mb (tức là z=r nếu b=0 hoặc z=rm nếu b=1)
4. V kiểm tra kết quả nhƣ sau: nếu anh ta đã gửi b=0 ở bƣớc 2 thì anh ta kiểm tra
xem có thực z
e
=y, nếu anh ta đã gửi đi b=1 ở bƣớc hai thì anh ta kiểm tra xem z
e
=y*c
có đúng không.
Ký hiệu
R
S có nghĩa là chọn (sinh) 1 giá trị ngẫu nhiên từ tập S cho trƣớc (khả
năng lựa chọn mọi phần tử của S là nhƣ nhau).
Bốn bƣớc này có thể lặp đi lặp lại rất nhiều lần và Victor có thể thay đổi giữa
gửi b=0 và b=1 ở bƣớc thứ hai một cách ngẫu nhiên tùy ý để thật yên tâm rằng thực sự
Peggie là chủ nhân của thông tin m.
Bạn đọc hãy tự lý giải cho mình những nhận xét sau đây:
1. Peggie thực sự (tức là không phải mạo danh), ngƣời biết m, thì luôn luôn đáp
ứng thành công. Tính chất này đƣợc gọi tính đầy đủ của một ZKP (completeness)
2. Nếu Mallory mạo danh Peggie thì anh ta sẽ thất bại với xác xuất rất cao (tùy
thuộc vào số lần mà Victor lặp lại 4 bƣớc của protocol). Tính chất này đƣợc gọi tính
vững chãi (soundness).
3. Dù làm thế nào (tăng số lần lặp đi lặp lại và thay đổi giá trị b) Victor cũng
không thể biết đƣợc gì hơn về m ngoại trừ điều rằng nó là một giá trị mà nếu đem lũy
thừa số mũ e thì thu đƣợc giá trị c
10
.
10.6 ỨNG DỤNG: GIỚI THIỆU VỀ THANH TOÁN ĐIỆN TỬ
Trong những năm gần đây, với sự phát triển mạnh mẽ của công nghệ thông tin
và đặc biệt là sự phát triển của mạng Internet với tính xã hội hóa cao, việc ứng dụng
Công nghệ thông tin không chỉ còn ở mức áp dụng vào các ngành công nghiệp hay các
công cụ hỗ trợ quản lý mà đã dần đi vào cuộc sống của mỗi cá nhân trong xã hội. Với
10
Cần lƣu ý rằng bài toán tìm DLP (Discrete Logarithm Problem) đƣợc coi là bài
toán NP-khó và không có lời giải thời gian đa thức (tức là với những con số chọn đủ lớn thì
thực tế không thể thực hiện đƣợc dù giả sử có trong tay các siêu máy tính thì thời gian thực
hiện cũng mất hàng nghìn năm!)
Cơ sở An toàn Thông tin – 2014
215 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
khả năng kết nối giữa các máy tính trên toàn thế giới, Internet đã trở thành một môi
trƣờng thông tin liên lạc, truyền tải thông tin hết sức năng động, đa dạng và linh hoạt.
Sự phát triển của Internet thể hiện rõ ở việc các trang web cung cấp thông tin về các
doanh nghiệp và dịch vụ đã trở nên hết sức phổ biến. Ngƣời ta thấy ở đó ngoài chức
năng cung cấp các thông tin về kinh tế, thể thao hay các thông tin về công nghệ, trang
Web còn là một công cụ rất tốt để quảng cáo, một địa điểm trƣng bày hàng mà mọi
ngƣời đều có thể "tới thăm" một cách dễ dàng. Và tiếp theo đó là dễ dàng "đặt mua",
tuy nhiên khâu giao hàng và chuyển tiền lại là một công việc phức tạp hơn nhiều.
Trong các hệ thống mua bán trên Internet hiện nay, hàng hóa đƣợc chia làm hai
loại: những hàng hóa có hình thái vật lý cụ thể, chẳng hạn nhƣ sách, máy tính, đĩa CD,
và những loại hàng hoá có hình thái phi vật chất, đó là các thông tin số hoá chẳng hạn
nhƣ ca nhạc, hình ảnh, dịch vụ đánh bạc, các chƣơng trình trò chơi ... Với những mặt
hàng vào loại thứ nhất, việc giao hàng sau khi nhận đƣợc đơn đặt hàng là chuyển tới
cho các hãng vận chuyển để tới tay ngƣời mua và sau đó, chứng từ giao hàng lại đƣợc
hãng vận chuyển chuyển lại cho ngƣời bán. Còn với loại hàng hóa thứ hai thì đơn giản
hơn nhiều: tất cả việc giao hàng chỉ đơn giản là truyền file trên mạng Internet với cơ
chế truyền tin bảo mật.
Còn ở khâu thanh toán qua mạng: vấn đề không còn đơn giản nhƣ vậy. Hiện tại,
hầu hết các dịch vụ mua bán hàng hóa trên mạng đều sử dụng hình thức thanh toán
bằng thẻ tín dụng (credit card) để thanh toán. Ngƣời sử dụng cần nhập vào các thông
tin: tên ngƣời sử dụng, mã số thẻ, ngày hết hạn của thẻ. Nhƣng vì thẻ tín dụng là một
công cụ sử dụng phổ biến cho các thanh toán khác nhau nên những thông tin trên sẽ có
rất nhiều ngƣời biết. Và do đó, tình hình sẽ xảy ra là “nếu tôi biết những thông tin thẻ
tín dụng của anh thì hoàn toàn tôi có thể mua một món hàng trên mạng (an toàn hơn là
loại thứ hai) còn anh là người trả tiền” - gian lận kiểu này không thể hạn chế đƣợc.
Thực tế hiện nay, các gian lận về thẻ trên Internet chiếm từ 6-7% tổng số các giao dịch
thẻ ở các nƣớc châu Âu, và tỷ lệ này ở châu Á là 10%. Tại Việt Nam, tuy dịch vụ thẻ
tín dụng đƣợc đƣa vào áp dụng vào cuối năm 1996 nhƣng đến nay, tỷ lệ các giao dịch
gian lận trên tổng số các giao dịch là hơn 10%, cứ trong 5 giao dịch gian lận thì có 4
giao dịch gian lận mua hàng trên Internet và trong 4 giao dịch đó thì có 1 giao dịch là
mua hàng hoá, 3 giao dịch là sử dụng các dịch vụ khác.
Nhƣ vậy rõ ràng có thể kết luận rằng, trên thế giới hiện nay, nhu cầu về thƣơng
mại điện tử rất phổ biến nhƣng các vấn đề hạ tầng xoay quanh thanh toán điện tử vẫn
chƣa đƣợc giải quyết tƣơng xứng và đáp ứng đƣợc các đòi hỏi đặt ra. Do đó có thể kết
luận việc nghiên cứu xây dựng các hệ thống thanh toán điện tử để đảm bảo an toàn
thông tin trong các dich vụ thƣơng mại điện tử là một hƣớng nghiên cứu rất cần thiết
hiện nay.
Việc xây dựng các hệ thống thanh toán điện tử về mặt kỹ thuật chính là ứng
dụng các thành tựu của lý thuyết mật mã (cryptology). Các mô hình thanh toán đƣợc
trừu tƣợng hoá bằng các mô hình hệ thống phân tán với các giao thức mật mã đƣợc xây
dựng để đảm bảo an toàn cho việc giao dịch thông tin giữa các bên tham gia. Thực tế
Cơ sở An toàn Thông tin – 2014
216 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
cho thấy, để đảm bảo đồng thời rất nhiều đòi hỏi phức tạp khác nhau, các giao thức mật
mã trong thanh toán điện tử, đặc biệt trong các hệ thống mô phỏng tiền mặt điện tử
(electronic cash) là các giao thức có độ phức tạp rất cao, đòi hỏi những kỹ năng đặc
biệt trong nghiên cứu đáng giá. Tuy nhiên những năm gần đây tính chất khó khăn nay
đem lại hứng thú cao và tạo nên một sức thu hút nghiên cứu lớn, đem lại rất nhiều kết
quả khoa học. Chính sức hút này đã đem lại những cố gắng để nghiên cứu phát triển
các hệ mật mã cơ bản để từ đó áp dụng vào xây dựng các giao thức thanh toán. Vì thế
có thể nói nghiên cứu thanh toán điện tử đã có một tác động quay trở lại rất tốt đối với
các mạch nghiên cứu lý thuyết cơ bản trong ngành mật mã.
10.6.1 Tổng quan về thanh toán điện tử
Về mục đích, thanh toán điện tử là hệ thống cho phép các bên tham gia tiến
hành mua bán được, tƣơng tự nhƣ các phƣơng thức thanh toán đã có. Tuy nhiên về
cách giao dịch thì hoàn toàn mới, ngƣời sử dụng tiến hành xử lý thanh toán bằng các
phương pháp mới thông qua các khâu được thực hiện hoàn toàn trên máy tính. Tóm
lại, mặc dù bản chất của các mô hình thanh toán điện tử cũng là mô phỏng lại những
mô hình mua bán truyền thống, nhƣng từ các thủ tục giao dịch, thao tác xử lý dữ liệu
rồi thực hiện chuyển tiền, tất cả đều thực hiện thông qua máy tính đƣợc nối mạng bằng
các giao thức riêng chuyên dụng.
Trƣớc hết về mặt mô hình, một phƣơng thức thanh toán nói chung là một mô tả
hoạt động của một hệ thống (trong thanh toán điện tử, đó là một hệ thống xử lý phân
tán) có nhiều bên tham gia, trong đó có hai bên cơ bản là bên mua (ngƣời trả tiền) và
bên bán (ngƣời đƣợc trả tiền). Trong thanh toán điện tử các bên đƣợc đại diện bởi các
máy tính của mình nối với nhau qua mạng máy tính, sử dụng chúng để thực hiện các
giao thức thanh toán (payment protocol).
Hệ thống còn có thể có sự tham gia của các tổ chức tài chính nhƣ là các ngân
hàng đại diện của mỗi bên. Trong một số hệ thống thanh toán lại sử dụng một thực thể
khác đóng vai trò là nhà môi giới, đảm nhiệm việc phát hành những hình thức của tiền
(một vật thể nào đó mang giá trị trao đổi thanh toán) thƣờng đƣợc gọi là đồng tiền số
(digital coin), tiền điện tử (electronic cash) hoặc séc điện tử (electronic cheque) và đổi
lại thành tiền thật cho các bên tham gia.
Đặc trƣng của mô hình đang xét là các bên giao dịch với nhau để chuyển tiền,
thay vì tiền mặt, các bên trong thanh toán điện tử sẽ trao đổi với nhau các chứng từ
đƣợc số hoá (thành những chuỗi bits là hình thức duy nhất máy tính có thể dùng đƣợc).
Bản chất là bên đƣợc thanh toán có thể thông qua nhà băng của mình (và tất nhiên là
phải liên hệ đến nhà băng của bên thanh toán) để chuyển tiền vào tài khoản của mình.
Các quá trình này sẽ đƣợc phản ánh trong các giao thức thanh toán trong mỗi hệ thống,
tức là tập hợp thứ tự các bƣớc truyền gửi thông tin và xử lý số liệu giữa các bên để đạt
đƣợc mục đích là chuyển đầy đủ các thông tin chứng từ thanh toán và đảm bảo an toàn
công bằng cho mỗi bên theo yêu cầu tƣờng minh ban đầu.
Cơ sở An toàn Thông tin – 2014
217 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
Nếu nhƣ lấy sự chênh lệch khác biệt giữa hai thời điểm (1) thời điểm bên trả tiền
trao chứng từ ủy nhiệm cho bên đƣợc trả và (2) thời điểm bên trả tiền thực sự xuất tiền
khỏi tài khoản của mình – làm tiêu chí phân biệt thì các phƣơng thức thanh toán điện tử
có thể đƣợc phân loại theo các mô hình chính nhƣ sau: Mô hình trả sau (khi thời điểm
(1) xảy ra trƣớc thời điểm (2)) và Mô hình trả trước (khi thời điểm (2) xảy ra trƣớc thời
điểm (1)).
10.6.3 Mô hình trả sau (Pay - now / Pay - later)
Với mô hình này, sự kiện tiền thực sự đƣợc rút ra khỏi tài khoản bên mua để
chuyển sang bên bán là xảy ra ngay trong (paynow) hoặc sau (paylater) giao dịch mua
bán. Hoạt động của hệ thống dựa trên nguyên tắc tín dụng (credit), trong đó bên mua sẽ
trả cho bên bán một chứng từ tín dụng (credit crendential) nào đó có tác dụng giống
nhƣ cheque. Ngƣời bán có hai cách lựa chọn: chấp nhận giá trị thay thế của tín dụng đó
và chỉ liên lạc chuyển khoản với ngân hàng của mình sau này (pay-later), hay là, liên
lạc với ngân hàng của mình trong quá trình mua bán, việc chuyển khoản xảy ra ngay
trong giao dịch (pay-now).
Với pha chuyển khoản (clearing process) thì ngƣời đƣợc thanh toán sẽ nêu yêu
cầu chuyển khoản với nhà băng đại diện (acquirer) để nó liên lạc với ngân hàng đại
diện của ngƣời thanh toán, thực hiện kiểm tra / chấp nhận chứng từ tín dụng, khi đó
việc chuyển tiền thực sự (actual fund transfer) sẽ diễn ra giữa tài khoản của ngƣời
thanh toán và đƣợc thanh toán. Kết thúc quá trình này, nhà băng đại diện của bên thanh
toán sẽ gửi một thông báo lƣu ý sự kiện chuyển khoản đó cho khách hàng của mình
(notification). Mô hình thanh toán theo kiểu trả sau mô phỏng phƣơng thức thanh toán
bằng séc nên thƣờng đƣợc gọi là mô hình phỏng séc (cheque-like model).
Tất nhiên pha chuyển tiền thực sự này nếu đƣợc làm ngay trong giao dịch thì an
toàn nhất (pay-now), tuy nhiên nhƣ vậy tốc độ xử lý giao dịch sẽ chậm, chi phí truyền
tin và xử lý trực tuyến (on-line) trên các máy chủ ở các nhà băng sẽ cao, vì vậy mô
hình pay-later vẫn đƣợc ƣu tiên sử dụng khi số tiền thanh toán là không lớn.
Chứng từ tín dụng đƣợc đề cập ở mô hình này, do ngƣời thanh toán tạo ra, dựa
trên những thông tin riêng về tên tuổi, số tài khoản và có thể là cả tình trạng tài khoản
Người m a Ngƣời bán
Thông báo
lưu ý
Chứng từ tín
dụng
Chuyển khoản
Ngân hàng đại
diện người mua
Ngân hàng đại
diện người bán
Chuyển tiền mặt
thực sự
Cơ sở An toàn Thông tin – 2014
218 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
(khả năng thanh toán đƣợc) của ngƣời thanh toán. Một ví dụ điển hình về mô hình này
là các hệ thống thanh toán bằng thẻ tín dụng đang đƣợc sử dụng rộng rãi (credit card
system). Nếu nhƣ ngƣời thanh toán cố tình lừa dối, thực hiện thanh toán khi không có
khả năng thì anh ta sẽ bị các ngân hàng loại ra, doanh nghiệp của anh ta sẽ không thể
tồn tại lâu dài. Hệ thống đó đƣợc đảm bảo bằng việc mỗi khách hàng phải chăm lo cho
uy tín xã hội của mình.
10.6.4 Mô hình trả trƣớc.
Trong mô hình này, khách hàng (customer) sẽ liên hệ với ngân hàng (hay một
công ty môi giới - broker) để có đƣợc một chứng từ do nhà băng phát hành (chứng từ
hay đồng tiền số này mang dấu ấn (token) của nhà băng), đƣợc đảm bảo bởi nhà băng
và do đó có thể dùng để thanh toán ở bất cứ nơi nào đã có xác lập hệ thống thanh toán
với nhà băng này.
Trong pha giao dịch này (withdrawal), để đổi lấy chứng từ nhà băng, tài khoản
của khách hàng sẽ bị triết khấu đi tƣơng ứng với giá trị của chứng từ đó. Nhƣ vậy
khách hàng đã thực sự trả tiền trƣớc khi có thể sử dụng đƣợc chứng từ này để mua
hàng và thanh toán ở một nơi nào đó. Vì thế mô hình này đƣợc gọi là mô hình trả trƣớc
(prepaid). Chứng từ ở đây không phải do khách hàng tạo ra, không phải để dành cho
một vụ mua bán cụ thể, mà do nhà băng phát hành có thể dùng vào mọi mục đích thanh
toán, vì thế nó giống nhƣ tiền mặt và do đó mô hình còn đƣợc gọi là mô hình phỏng
tiền mặt (cash-like model).
Khi khách hàng đến một cửa hàng nào đó (shop) mua hàng và thanh toán bằng
chứng từ tiền mặt này, cửa hàng sẽ tiến hành kiểm tra tính hợp lệ của chứng từ dựa trên
những thông tin đặc biệt do nhà băng tạo trên đó. Sau đó cửa hàng có thể chọn một
trong hai cách: (1) liên hệ với nhà băng để chuyển vào tài khoản của mình ngay trƣớc
khi chấp nhận giao hàng (deposit-now); (2) chấp nhận và chỉ liên hệ chuyển tiền sau
vào thời gian thích hợp (deposit later). Một trƣờng hợp riêng phổ biến của mô hình
phỏng tiền mặt là mô hình tiền mặt điện tử hay tiền điện tử (electronic cash)
Ngân hàng đại diện
ngƣời bán
Ngƣời mua Ngƣời bán
Rút tiền
Thanh toán
Gửi tiền
Ngân hàng đại diện
ngƣời mua
Chuyển tiền mặt thực
sự
Cơ sở An toàn Thông tin – 2014
219 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
Hình 10.3: Mô hình thanh toán điện tử phỏng tiền mặt
10.6.5 Sơ lƣợc về mô hình tiền mặt điện tử (Electronic Cash)
Mô hình, các bên tham gia và giao thức
Hạ tầng thanh toán. Giống nhƣ tiền mặt, tiền điện tử cũng có giá trị tiêu dùng
đƣợc xã hội công nhận. Để tham gia vào hệ thống thanh toán điện tử ngƣời sử dụng
phải dựa trên một hạ tầng thanh toán đã có, bởi anh ta phải trả tiền để mua tiền điện tử
nhƣ bất kỳ một mặt hàng hay sử dụng dịch vụ nào khác. Vì vậy, ta có thể coi ngƣời sử
dụng đã đăng ký tài khoản trong ngân hàng, nơi có nhiệm vụ phát hành tiền điện tử.
Giao thức rút tiền. Để có đƣợc và tiến hành giao dịch bằng tiền điện tử, ngƣời
sử dụng phải rút tiền từ tài khoản của mình trong ngân hàng dƣới dạng tiền điện tử.
Quá trình rút tiền này thực hiện bằng giao thức rút tiền với các bên tham gia là ngân
hàng và ngƣời sử dụng.
Giao thức thanh toán. Ngƣời sử dụng dùng số tiền điện tử này để thanh toán
trong các giao dịch với các nhà cung cấp (chấp nhận thanh toán bằng tiền điện tử do
ngân hàng của ngƣời sử dụng phát hành) qua giao thức thanh toán.
Giao thức gửi tiền. Cuối cùng, kết thúc vòng luân chuyển của đồng tiền số, nhà
cung cấp gửi số tiền nhận đƣợc từ ngƣời sử dụng vào tài khoản của mình. Việc gửi tiền
vào tài khoản đƣợc thực hiện theo định kỳ (ví dụ: cuối ngày). Trong mô hình thanh
toán, quá trình gửi tiền trên đƣợc gọi là giao thức gửi tiền. Tuỳ theo từng mô hình cụ
thể mà đồng tiền do nhà cung cấp sở hữu có thể có giá trị thanh toán tiếp hay không,
với mô hình không chấp nhận thanh toán tiếp, nhà cung cấp buộc phải gửi những đồng
tiền này vào tài khoản của mình trƣớc thời điểm hết hạn sử dụng của chúng.
Hình 10.4: Vòng quay của đồng tiền số
Ngƣời sử dụng
Ngân hàng
Nhà cung cấp
Giao thức
Rút tiền
Giao thứcThanh toán
Giao thức Gửi
tiền
Cơ sở An toàn Thông tin – 2014
220 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
Gian lận double-spending
Gian lận. Khác với các phƣơng tiện thanh toán khác (tiền mặt, séc), ngƣời ta dễ
dàng sao chép tiền điện tử, bởi chúng chỉ là các giá trị số (bits) thông thƣờng trong máy
tính. Kẻ gian lận có thể lợi dụng đặc điểm này bằng cách cố tình sử dụng các phiên bản
của cùng một đồng tiền điện tử trong các giao dịch thanh toán khác nhau, hiện tƣợng
gian lận này thƣờng đƣợc gọi là gian lận double-spending. Vì vậy, trong quá trình
thanh toán ngƣời ta luôn cần có thủ tục kiểm tra tính hợp lệ của đồng tiền số, bao gồm
cấu trúc đồng tiền và hiệu lực thanh toán hiện thời của chúng (đồng tiền đã đƣợc tiêu
lần nào chƣa).
Thủ tục chống gian lận. Để ngăn chặn gian lận double-spending, trong hệ
thống luôn có thủ tục kiểm tra tính hợp lệ của đồng tiền số, thủ tục này chia làm hai
pha: pha kiểm tra cấu trúc của đồng tiền và pha kiểm tra số lần tiêu của đồng tiền,
thƣờng đƣợc đặt tƣơng ứng trong giao thức thanh toán và giao thức gửi tiền. Trong mô
hình thanh toán, thủ tục kiểm tra trên mang tên thủ tục chống gian lận. Từ việc phát
hiện ra sự gian lận, ngân hàng sẽ quyết định chấp nhận giá trị chỉ một trong các đồng
tiền đó và hơn nữa tiến hành các biện pháp xử lý khác nếu cần, ví dụ nêu định danh của
kẻ gian lận trên phƣơng tiện công cộng, đƣa kẻ gian lận vào sổ theo dõi, hoặc tƣớc bỏ
khả năng thanh toán của chúng.
Hình thức và ý nghĩa của đồng tiền số. Đồng tiền số bắt đầu vòng đời của
mình từ giao thức rút tiền. Sau giao dịch này, ngƣời sử dụng sở hữu một số đồng tiền
số và hệ thống đảm bảo cho họ giá trị thanh toán của các đồng tiền số này. Giá trị thanh
toán của các đồng tiền số thể hiện ở chỗ ngƣời sử dụng sẽ thuyết phục đƣợc ngƣời bán
chấp nhận chúng và thông thƣờng chữ ký của ngân hàng trên đồng tiền số là cơ sở để
ngƣời bán chấp nhận. Kết thúc giao thức thanh toán, nhà cung cấp nhận đƣợc các đồng
tiền số của ngƣời sử dụng và tin tƣởng rằng họ có thể gửi các đồng tiền này vào tài
khoản của họ trong ngân hàng bằng giao thức gửi tiền. Tóm lại, tại từng bên tham gia,
đồng tiền số có những ý nghĩa khác nhau và vì vậy khác với tiền mặt, hình thức và cấu
trúc của đồng tiền mà nhà cung cấp nhận đƣợc so với đồng tiền trong ví (điện tử) ngƣời
sử dụng không nhất thiết phải giống nhau.
Kiểm tra trực tuyến (on-line) và ngoại tuyến (off-line)
Kiểm tra tính hợp lệ của đồng tiền số. Trong giao thức thanh toán của mô hình
tiền điện tử, nhà cung cấp cần kiểm tra tính hợp lệ của đồng tiền số nhận đƣợc từ ngƣời
sử dụng trƣớc khi trả lại hàng. Việc kiểm tra này có thể cần sự có mặt của ngân hàng
hoặc không. Nếu sự tham gia của ngân hàng ở đây là cần thiết (kiểm tra trực tuyến) thì
ngân hàng sẽ trở thành điểm xử lý tập trung. Điều này có nguy cơ dẫn tới bùng nổ chi
phí tính toán và truyền thông của ngân hàng, hậu quả là có thể có những giao dịch buộc
phải huỷ bỏ do thời gian chờ đợi quá lâu (time-out) hay ngƣời mua phải chịu một phí
tổn nào đó cho việc thực hiện giao dịch (ví dụ: phí tổn cho một giao dịch dùng thẻ tín
dụng là 25c). Bởi vậy, thủ tục kiểm tra tính hợp lệ của đồng tiền số thƣờng đƣợc chia
làm hai pha và nhà cung cấp chỉ có trách nhiệm kiểm tra cấu trúc của đồng tiền số còn
Cơ sở An toàn Thông tin – 2014
221 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
pha kiểm tra số lần tiêu của đồng tiền do ngân hàng đảm nhiệm đƣợc đặt ở chế độ
ngoại tuyến.
Kiểm tra trực tuyến và ngoại tuyến. Khả năng kiểm tra ngoại tuyến của ngân
hàng giúp cho hệ thống khỏi bị quá tải khi số phiên giao dịch xảy ra đồng thời quá lớn.
Tuy nhiên, đối với các phiên giao dịch có giá trị lớn và bên bán (bên mua) không chấp
nhận mạo hiểm (trong thanh toán điện tử bao giờ một trong hai bên tham gia có khoảng
thời gian chiếm ƣu thế tạm thời, đó là khi bên mua đã nhận đƣợc mặt hàng mà chƣa trả
tiền hoặc bên bán đã nhận đƣợc tiền mà chƣa đƣa hàng), hệ thống cần hỗ trợ khả năng
kiểm tra trực tuyến, tránh gian lận từ phía ngƣời mua (ngƣời bán).
Cơ sở An toàn Thông tin – 2014
222 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
CÂU HỎI VÀ BÀI TẬP
1. Tại sao nói giao thức Needham-Schoeder là kết hợp của hai yếu tố trao chuyển
khóa và xác thực? Có phải mọi bên đều xác thực đƣợc lẫn nhau ở đây không?
2. Trong tấn công kẻ-ngồi-giữa đối với giao thức Diffie-Hellman cơ bản, kẻ tấn công
C có thể thực hiện cách nào để sau đó có thể thu đƣợc kết quả nhƣ mô tả dƣới đây?
“Nhƣ vậy A cứ tƣởng là mình đã thiết lập đựoc khoá chung là 1
ac với B mà thực ra là với
C, cũng nhƣ B cứ tƣởng là mình đã thiết lập đƣợc khoá chung là 2
ac với A mà thực ra là
với C. C sẽ chơi trò đóng giả nhƣ sau: Khi nào A nói một câu với B, bằng cách mã theo
1ac thì tất nhiên câu nói đó không đến tai B mà lại đến tai C, C sẽ dùng khoá 1ac để giải
mã rồi lại dùng 2
ac để mã lại và gửi lên cho B. Nhƣ vậy câu nói của A cho B vẫn đến tai
B nhƣng C nghe trộm mất. Ngƣợc lại từ B về A cũng vậy. Hai bên A và B cứ tƣởng đang
nói truyện “thầm” vào tai nhau, kỳ tình C nghe đƣợc hết mà hơn nữa chính C đã gửi câu nói
của ngƣời này đến tai ngƣời kia.”
3. Điểm yếu trên có thể khắc phục thông qua việc sử dụng các hàm tạo chữ ký riêng
biệt. Hãy xem và phân tích, đánh giá sơ đồ sau:
A B:
a
B chọn một số ngẫu nhiên b và tính k=
ab
B A:
b
, Ek(SB(
a
,
b
))
A tính k=
ab
và giải mã Ek(SB(
a
,
b
)) và kiểm định
a
A B: Ek(SA(
a
,
b
))
4. Trong bƣớc 4 của giao thức PPP, điều kiện kiểm tra mà V thực hiện có thể mô tả
đơn giản là kiểm tra xem z= y*c
b
. Tại sao vậy?
5. Có thể nói giao thức này đƣợc thiết kế dựa trên một tính chất có thể gọi là Nhân
tính của RSA. Hãy giải thích nhận xét trên.
6. Hãy lập luận và tính chính xác xác suất thành công của Mallory khi Viktor lặp k
lần thủ tục thách thức 4 bƣớc.
7. Bản mô tả tiếng Anh sau đây là giao thức có tên gọi “Fiat-Shamir Identification”.
Hãy tìm hiểu và cho biết mục đích và ý nghĩa, sau đó đƣa ra các phân tích chi tiết.
One-time setup:
Trusted center published modulus n=pq, but keeps p and q secret
Alice selects a secret prime s comprime to n, computes v=s
2
mod n, and registers v
with the trusted center as its public key
Protocol messages:
A B: x = r2 mod n
B A: e from {0, 1}
Cơ sở An toàn Thông tin – 2014
223 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
A B: y = rse mod n
8. Giao thức ở bài tập trên đƣợc xây dựng dựa vào một bài toán đƣợc công nhận NP-
khó. Hãy phát biểu bài toán trên.
9. Alice là chủ nhân của một hệ khóa công khai và muốn chứng minh mình là chủ
nhân đích thực (tức là chủ nhân của cặp khóa mà thành phân công khai thì nằm
trong chứng chỉ gắn liền với tên Alice) mà không làm lộ thông tin thông qua giao
thức dƣới đây. Hãy lập luận đánh giá xem giao thức này có thực sự là ZKP.
1. If the prover claims to be A, the verifier chooses a random message M, and sends the ciphertext
C = PA(M) to the prover.
2. The prover decrypts C using SA (A‟s secret key) and sends the result M‟ to the verifier.
3. The verifier accepts the identity of the prover if and only if M‟ = M.
10. Phân tích sự khác nhau của vấn đề chống gian lận double-spending trong hai chế
độ kiểm tra trực tuyến và ngoại tuyến.
Cơ sở An toàn Thông tin – 2014
224 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
Tài liệu tham khảo
SÁCH THAM KHẢO CHÍNH
[S1] Matt Bishop. Introduction to Computer Security. Addison-Wesley, 2004. ISBN
978-0321247445
[S2] William Stallings. Cryptography And Network Security: Principles and Practices.
Prentice Hall, 2005. ISBN 978-0131873162
[S3] Charles P.Pfleeger. Security in Computing, 2006. Prentice Hall. ISBN 978-
0132390774
[S4] Bruce Schneier. Applied Cryptography. Wiley, 1996. ISBN 978-0471117094
[S5] Richard Bejtlich. The Tao of Nework Secyrity Monitoring. Addison-Wesley.
ISBN 978-0321246776
[S6] Dafydd Stuttard and Marcus Pinto. The Web Application Hacker‟s Handbook.
Wiley. ISBN 978-0470170779.
[S7] William Stallings. Network security essientials: Applications and standards. 4rd
edition, Prentice Hall, 2011.
CÁC TÀI LIỆU KHÁC
[1]. Avi Kak, Lecture notes on “Computer and network security”, Purdue
Univerity, 2013.
[2]. C. Anley. Advanced SQL Injection in SQL Server Applications. An
NGSSoftware Insight Security Research (NISR) publication, 2002. URL:
sql injection.pdf.
[3]. C. Brabrand, A. Møller, M. Ricky, and M. I. Schwartzbach. Powerforms:
Declarative client-side form field validation. World Wide Web, 3(4), 2000.
[4]. Chris Anley, Advanced SQL Injection In SQL Server Application – 2002
[5]. Christopher Kruegel and Giovanni Vigna. Anomaly Detection of Web-based
Attacks. In 10th ACM Conference on Computer and Communication Security
(CCS-03) Washington, DC, USA, October 27-31, pages 251 – 261,(2003).
[6]. D. Dean and D. Wagner. Intrusion detection via static analysis. In Proceedings
of the IEEE Symposium on Research in Security and Privacy, Oakland, CA,
May 2001. IEEE Computer Society, Technical Committee on Security and
Cơ sở An toàn Thông tin – 2014
225 Nguyễn Khanh Văn – Đại học Bách Khoa Hà Nội
Privacy, IEEE Computer Society Press.
[7]. Fangqi Sun, Liang Xu, Zhengdong Su: Client-Side Detection of XSS Worms
by Monitoring Payload Propagation. Proceeding of ESORICS 2009, Saint
Malo, France, (2009).
[8]. G.A. Di Lucca, A.R. Fasolino, M. Mastroianni, and P. Tramontana. Identifying
Cross Site Scripting Vulnerabilities in Web Applications. In Sixth IEEE
International Workshop on Web Site Evolution (WSE‟04), pages 71 – 80,
(2004).
[9]. Gary Wassermann and Zhendong Su, “Static Detection of Cross-Site Scripting
Vulnerabilities”. In Proceedings of ICSE 2008, Leipzig, Germany, 2008.
[10]. Gary Wassermann, Dachuan Yu, Ajay Chander, Dinakar Dhurjati, Hiroshi
Inamura, and Zhendong Su, “Dynamic Test Input Generation for Web
Applications”. In Proceedings of ISSTA 2008, Seattle, WA, 2008.
[11]. Gary Wassermann, Zhendong Su, “Sound and Precise Analysis of Web
Applications for Injection Vulnerabilities”. In Proceedings of PLDI 2007, San
Diego, CA, 2007.
[12]. Global Security Report 2011 – Trustwave – p32,
[13]. Livshits, B., Cui, W.: Spectator: detection and containment of JavaScript
worms. In:USENIX 2008 Annual Technical Conference on Annual Technical
Conference, pp. 335–348. USENIX Association (2008).
[14]. The Essence of Command Injection Attacks in Web Applications, Zhendong
Su, Gary Wassermann, University of California, Davis, USA
[15]. Web Hacking Incident Database Report 2011
[16]. Y.Minamide.Static approximation of dynamically generated web pages. In
Proceedings of the 14th International World Wide Web Conference,2005.
[17]. Zhendong Su and Gary Wassermann, “The Essence of Command Injection
Attacks in Web Applications”, In Proceedings of POPL'06, Charleston, South
Carolina, 2006
Các file đính kèm theo tài liệu này:
- giao_trinh_co_so_an_toan_thong_tin.pdf