Giáo trình Cơ sở an toàn thông tin

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.

pdf226 trang | Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 296 | Lượt tải: 0download
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:

  • pdfgiao_trinh_co_so_an_toan_thong_tin.pdf