Giáo trình An toàn bảo mật thông tin - Nguyễn Khánh Văn - Chương 6: Cryptographic Protocol

Mục đích cuối cùng của Cryptography hay bất kỳchuyên ngành nào của khoa

học máy tính đều là để đi đến giải quyết những vấn đề, những bài toán do

thực tế đặt ra (đôi khi người ta hay quên điều này). Cryptography giải quyết

các vấn đềliên quan đến tính bảo mật (secretcy), tính xác thực (authenticity),

tính toàn vẹn (intergrity) . mà ở đó người ta phải luôn luôn tính đến những

yếu tố, những cá nhân tham gia không trung thực. Bạn là người đang nghiên

cứu Cryptography? Bạn đang say sưa với các thuật toán, các kỹthuật của

chuyên ngành này? Kiến thức đó chỉmang tính học thuật, chừng nào mà bạn

chưa học được cách đem vận dụng chúng đểgiải quyết một vấn đềcụthểnào

đó. Điểm mấu chốt này thểhiện rõ ràng khi chúng ta phân tích các khái niệm

sau đây vềcác cryptographic protocols (giao thức mật mã).

Một protocol chỉ đơn giản là một chuỗi các bước thực hiện, có it nhất 2 bên

tham dự, được thiết kế đểthực hiện một nhiệm vụnào đó. Định nghĩa này

đơn giản nhưng chặt chẽ. “Một chuỗi các bước” có nghĩa là một dãy các bước

có thứtự, có đầu có cuối, bước trước phải được kết thúc trước khi thực hiện

bước sau. “Có ít nhất 2 bên tham dự” có nghĩa là có thểcó nhiều người cùng

tham gia thực hiện chuỗi bước này, còn một người làm một mình thì không

thểgọi là protocol được. Nếu một người thực hiện một chuỗi bước đểlàm ra

một cái bánh thì không thểgọi chuỗi bước thực hiện đó là một protocol,

nhưng việc có thêm một người khác tham dựvào, chẳng hạn được mời để ăn

cái bánh đó, thì có thểlàm nên một protocol. Cuối cùng ghi nhớrằng,

protocol phải là một thiết kếnhằm đạt được tới một kết quảgì đó. Bất kỳmột

cái gì trông giống nhưmột protocol mhưng không đem đến một mục đích nào

thì đều không phải là protocol mà chỉlà một trò chơi lãng phí thời gian!

pdf20 trang | Chuyên mục: An Toàn Và Bảo Mật Hệ Thống Thông Tin | Chia sẻ: dkS00TYs | Lượt xem: 2480 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình An toàn bảo mật thông tin - Nguyễn Khánh Văn - Chương 6: Cryptographic Protocol, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
hiên công việc này đòi hỏi hiểu 
biết rĩng, nhít là về các công cụ toán học. Ngoài ra chúng ta còn chưa đề cập 
gì đến việc chứng minh 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 là một vấn đề rất nan giải và thật ra còn để ngỏ, chưa có hệ phương pháp 
nào hoàn toàn đáp ứng. Do tính chất phức tạp của vấn đề nên không đề cập 
chi tiết ở đây. 
Trao đổi khóa đảm bảo7 (Needham-Schroeder protocol) 
Mục đích của những protocol thuộc loại này là: 
+ Chứng thực danh tính: đảm bảo cho từng bên danh tính đối phương khai là 
7 Authenticated key exchange protocol. 
Chuyên đề AT&BM các hệ thống máy tính Nguyễn Khánh Văn
B/m H3T, khoa CNTT, ĐHBKHN 
Chương VI - 16 - 
đúng (chống lại mạo danh) 
+ Sau khi đã chứng thực xong, xác lập một khóa bí mật dùng chung giữa hai 
bên để sử dụng về sau trên cơ sở dùng truyền tin mã đối xứng bí mật. 
Needham-Schroeder protocol. 
Ta hãy hình dung A và B là hai người xa lạ chưa từng liên hệ và bây giờ 
muốn nói chuyện bằng mật mã với nhau. Hai bên có thể liên lạc qua điện 
thoại và thống nhất là sẽ sử dụng một hệ mã đối xứng với khóa bí mật nào đó, 
DES chẳng hạn, tuy nhiên khó khăn là hai bên không thể bàn nhau chọn khóa 
này qua điện thoại được. Như vậy vấn đề mấu chốt là làm thế nào có thể bí 
mật chọn được một khóa cho hai bên là xong. Trong protocol này, việc đó sẽ 
làm được thông qua một giả sử là trong hệ thống có một server tin cậy S đứng 
trung gian. S vốn đã có khóa bí mật chung thiết lập từ trước với các user trong 
hệ thống, tức là S đã có thể truyền tin bí mật với các user trong hệ thống rồi. 
Ta sẽ thiết kế protocol dùng S làm công cụ bắc cầu để A và B có thể qua đó 
thiết lập được kênh truyền tin của mình. Ý tưởng cụ thể là: 
+ A sẽ liên lạc (tất nhiên là bí mật) với S, nêu danh tính của mình và của B là 
người mà mình muốn nhờ S liên lạc giúp hộ. 
+ S sẽ chọn ngẫu nhiên ra một chuỗi dùng để làm khóa gọi là K. 
+ Đến đây bạn có thể hình dung đơn giản là S sẽ gửi ngay K này cho cả A và 
B để hai bên có thể liên lạc với nhau (*). 
Tuy nhiên như thế không ổn - ta sẽ bàn luận về khả năng này sau. ở đây cách 
xử lý tiếp theo là: S sẽ gửi trả lại cho A một khóa K nhưng được mã hóa theo 
khóa bí mật giữa B và S, khi A có mã này, A sẽ có thể gửi nó trực tiếp với B 
và B giải mã ra sẽ thu được khóa K cần thiết, bằng cách đó A và B sẽ bắt tay 
nhau và liên lạc bắt đầu. 
Sau đây là protocol đầy đủ: 
Trước hết chúng ta có một số thông tin viết tắt như sau: 
+ RA, RB là các số ngẫu nhiên tạo ra bởi A, B để nhằm chống lại replay 
Chuyên đề AT&BM các hệ thống máy tính Nguyễn Khánh Văn
B/m H3T, khoa CNTT, ĐHBKHN 
Chương VI - 17 - 
attack8. 
+ K là khóa phiên được tạo ra bởi S 
+ ZAS và ZBS là các khóa bí mật dùng chung giữa (A, S) và (B, S). 
Protocol như sau: 
1. A → S: A, B, RA
2. S → A: ))A,K(E,K,B,R(E
BSAS KAK
.3 )A,K(E:BA
BSK→
4. )A,K(E:B
BSK→
5. A → B: EK (RB-1) B
Giải thích: 
a. Trước hết ta hãy tạm khoan không để ý đến các phần mã có RA, RB 
ở bước 1, A đã gửi cho S danh tính của nó và của B và ngưòi cần liên lạc. 
ở bước 2 thì A nhận được của S (sau khi đã giải mã bằng khóa KAS), các tin là 
khóa K, danh tính B và nhắc lại RA(để đảm bảo A đã liên lạc với đúng đối 
tượng S chứ không phải tên cha căng chú kiết nào khác đêng giả vờ là S) và 
mã . )A,B(E
BSK
Chính nhờ có mã này khi A đem gửi nó cho B, ở bước 3, thì B sẽ 
giải mã theo khóa KBS là khóa chỉ riêng B và S mới có nên B thu được hai 
tin là khóa K và danh tính của A. Do đó B hiểu rằng A muốn nói chuyện với 
mình bằng khóa bí mật K. 
)A,B(E
BSK
b. Như vậy đến đây bạn đã cơ bản hiểu ý nghĩa của 3 bước đầu, ngoại trừ ý 
kiến dùng RA để làm gì chưa được giải đáp. Điểm tinh vi là ở chỗ, nếu ở đây 
mà ta không chú ý thì có thể bị chơi xấu bởi replay attack: Mallory nghe trộm 
các cuộc nói chuyện giữa A và S trước đây có thể đã ghi lại được một phản 
8 Relay (phát lại) attack là thủ đoạn làm nhiễu hệ thống liên lạc của đối phương bằng cách thu lại các thông 
báo của đối phương để phát lại vào lúc khác làm đối phương tưởng có sự vụ mới thật. Để chống lại cần có bộ 
lọc cẩn thận để phân biệt và vứt bỏ nhưng thông tin replay đó. 
Chuyên đề AT&BM các hệ thống máy tính Nguyễn Khánh Văn
B/m H3T, khoa CNTT, ĐHBKHN 
Chương VI - 18 - 
hồi của S cho A trước đó, và bây giờ nếu Mallory dùng thủ thuật đánh đổi, 
xóa phản hồi thật của S và phát lại phản hồi cũ cho A thì A sẽ bị đánh lừa vì 
không có gì để phân biệt tính cũ mới. A sẽ dùng khóa K từ trước trong phản 
hồi cũ để liên lạc với B và nếu tình cờ mà khóa K này đã bị lộ và rơi vào tay 
Mallory rồi thì thật bi đát cho A! Nay ta sử dụng RA trao đổi giữa A và B thì 
rõ ràng kế hoạch replay attack của Mallory sẽ gãy cầu, vì RA là số phát sinh 
ngẫu nhiên, mỗi lần mỗi khác. 
c. Nếu bạn đã hiểu phần giải thích trên thì bây giờ bạn có thể dễ dàng hiểu 
được nốt hai bước cuối của protocol. 
Bài tập: 
1. Tự giải thích hai bước cuối 4,5 của Needham-Schroeder protocol 
2. Bây giờ bạn hãy tự giải thích ý kiến cho rằng (*) là không ổn. 
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 xem 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 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. Nhưng đối với cryptography 
bạn lại có thể có những phép màu là những protocol 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ết9. Điều này có thể thực hiện được thông qua khả năng của 
người cần chứng thực 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. Chính vì thế những protocol này 
9 Người gác chỉ có nghĩa vụ thẩm tra xem ta có thẩm quyền để ra vào hay không nhưng chính người gác 
không được phép có thẩm quyền đó, và nếu như bạn là VIP và CIA đang săn tìm thông tin về bạn thì người 
gác có thể dám làm gián điêpj cho CIA lắm. 
Chuyên đề AT&BM các hệ thống máy tính Nguyễn Khánh Văn
B/m H3T, khoa CNTT, ĐHBKHN 
Chương VI - 19 - 
được gọi với cái tên là zero-knowledge protocol. Zero-knowledge protocol 
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 ví dụ trong số này, ta điểm qua các bên tham gia 
và có thể có can thiệp vào protocol: 
+ 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 đượ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. 
Protocol: 
Giả sử (n,e) là một hệ khóa công khai RSA. Giả sử Peggie muốn chứng minh 
rằng cô ta biết một TIN (plaintext) m là đã bị mã hóa thành Mã (ciphertext) c 
trong hệ RSA này, tức là c= me (mod n). 
1. P ( V: y=re với r là một số ngẫu nhiên modulo n 
2. V ( P: b ( {0,1}. 
Chuyên đề AT&BM các hệ thống máy tính Nguyễn Khánh Văn
B/m H3T, khoa CNTT, ĐHBKHN 
Chương VI - 20 - 
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 ze=y, nếu anh ta đã gửi đi b=1 ở bước hai thì anh ta kiểm tra 
xem ze=yc có đúng không. 
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ài tập: 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 duy nhất biết m, thì luôn luôn 
qua protocol thành công. Tính chất này được gọi tính đầy đủ (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 Cần lưu ý rằng bài toán tìm logarithm theo modulo (Discrete Logarithm Problem) được coi là bài toán 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ể tính toán 
được dù giả sử có trong tay các máy tính mạhàng hóa của hàng chục năm sau). 

File đính kèm:

  • pdfGiáo trình An toàn bảo mật thông tin - Nguyễn Khánh Văn - Chương 6 Cryptographic Protocol.pdf
Tài liệu liên quan