PKCS10 [19]. Sau đó PKCS10 và giá trị (IV+2) sẽ được mã hóa và gửi cho CA : EAES(Key, PKCS10 || IV + 2)
Bước 5 : CA nhận được thơng điệp gửi trả lại từ phía Client, CA sử dụng
Key để giải mã và nhận được mã PKCS10. Đến đây, CA sẽ sử dụng khóa bí mật của mình để tạo chứng thư X.509 cho client. Sau đó gửi trả lại chứng thư đó cho Client. Đến đây chứng thư của người sử dụng chính thức có hiệu lực. Giao thức kết thúc.
Ta hãy phân tích các thành phần thông điệp của giao thức chứng minh độ an tồn của giao thức:
Trong thơng điệp thứ nhất, client gửi mã định danh và mã hóa các thơng
tin RegCode, Key, IV bằng khóa cơng khai của CA. Do vậy chỉ CA mới có thể đọc được nội dung phần thơng điệp được mã hóa. CA sẽ đối chiếu RegCode và ID để kiểm tra tính hợp lệ của yêu cầu phát hành chứng thư. Khóa Key có tác dụng là khóa phiên bí mật giữa Client và CA trong các phiên tiếp theo. IV là biến đếm được sử dụng kết hợp với khóa Key để Client xác thực CA. Đồng thời có tác dụng chống tấn cơng gửi lặp lại.
Trong giao thức phát hành chứng thư, mã RegCode được truyền bí mật
đối thủ khơng thể nghe lén được do được mã hóa bằng khóa cơng khai của CA. Sau khi chứng thư được phát hành thì mã RegCode cũng khơng cịn tác dụng và có thể được hủy bỏ.
Client CA
1. ID || E(PuCA, RegCode || Key || IV)
2. ACCEPT || EAES(Key, IV + 1)
3. Sinh khóa (Pr,Pu) và PKCS10 4. EAES(Key, PKCS10 || IV + 2)
5.Certificate
Hình 3.9 : Giao thức phát hành chứng thư
Comment [u31]: RSA Laboratories
(2000) : PKCS#10 - Certification Request Syntax Standard
Trong thông điệp 4, thông điệp PKCS10 và giá trị (IV + 2) được bảo mật bởi hệ mật mã AES với khóa là Key. Do vậy có thể chống được tấn cơng sửa đổi và tấng công gửi lặp lại.
3.3.4.2. Xác thực di động dựa trên chưng thư số sử dụng hệ mật mã ECC
Theo cuốn sách của William Stalling [32] chuẩn X.509 định nghĩa 3 giao thức xác thực khác nhau dựa trên hạ tầng khóa cơng khai có thể được áp dụng một cách tổng quát trên nhiều ứng dụng khác nhau. Giả sử Alice và Bob tham gia 1 phiên xác thực, Alice và Bob đều có được chứng thư số của nhau và các chứng thư số này đều được xác thực thông qua 1 tổ chức chứng thực.
3 giao thức xác thực được chuẩn X.509 định nghĩa gồm :
a. Giao thức xác thực một bước
Giao thức xác thực một bước được mơ tả trong hình 3.10. Alice sẽ gửi cho Bob thông điệp M = tAlice || rAlice || IDBob || SigData || E(PUBob, KAB). Trong đó :
tAlice : Là nhãn thời gian của thông điệp được gửi bởi Alice, theo đó Bob sẽ xác định được hiệu lực thơng điệp Alice gửi.
rAlice : Là một mã định danh duy nhất trong khoảng thời gian hiệu lực của thông điệp. Tham số định danh này cho phép Bob chống được tấn công gửi lại.
IDBob : Định danh của Bob
SigData: Là chữ ký số của Alice trên 3 trường trước đó. Chữ ký số này cho phép Bob xác thực được Alice và đảm bảo được thông điệp M không bị tấn công sửa đổi.
KAB : Là thành phần tùy chọn, là khóa phiên giữa Alice và Bob, khóa phiên được bảo mật bằng cách sử dụng khóa cơng khai của Bob để mã hóa.
Hình 3.10a: Giao thức xác thực một bước
Alice Bob
1. tAlice || rAlice || IDBob || SigData || E(PUBob, KAB)
Comment [u32]: William Stalling
(2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 426
b. Giao thức xác thực hai bước
Giao thức xác thực hai bước được phát triển mở rộng từ giao thức xác thực một bước. Hình 3.11 mơ tả giao thức xác thực hai bước, ta nhân thấy ở bước thứ nhất tương tự với bước 1 ở giao thức xác thực một bước. Thông điệp ở bước thứ hai do Bob gửi Alice có dạng: tBob || rBob || IDAlice || rAlice || SigData || E(PUAlice, KBA).
Các thành phần của thông điệp thứ 2 Bob gửi cho Alice có ý nghĩa tương tự
như ở thơng điệp 1. Chỉ có khác là trong thơng điệp 2, Bob gửi trả lại tham số rAlice
cho Alice. Tham số nay nhằm mục đích định danh thơng điệp Bob gửi là trả lời cho thơng điệp Alice gửi trước đó.
c. Giao thức xác thực ba bước
Alice Bob
1. tAlice || rAlice || IDBob || SigData || E(PUBob, KAB)
2. tBob || rBob || IDAlice || rAlice || SigData || E(PUAlice, KBA)
Hình 3.10b: Giao thức xác thực hai bước
Alice Bob
1. tAlice || rAlice || IDBob || SigData || E(PUBob, KAB)
2. tBob || rBob || IDAlice || rAlice || SigData || E(PUAlice, KBA)
Tương tự giao thức xác thực hai bước, giao thức xác thực 3 bước được phát triển mở rộng từ giao thức xác thực 2 bước. 2 thông điệp đầu của giao thức này giống với 2 thông điệp của giao thức xác thực 2 bươc.
Thông điệp thứ 3 Alice gửi cho Bob là : rBob. Việc trả lại tham số rBob để Bob
không cần kiểm tra lại nhãn thời gian. Bởi vì các tham số rAlice và rBob được được gửi 2 lần theo chiều xuôi và chiều ngược lại, do vậy giúp cho Alice và Bob có thể kiểm tra và phịng chống tấn cơng lặp lại. Việc này là cần thiết khi đồng hồ của Bob và Alice là không được đảm bảo là đồng bộ.
3.3.5. Kết quả
3.3.5.1. Thiết kế chương trình
Để mơ phỏng giao thức cấp phát chứng thư số dành cho điện thoại di động, học viên đã xây dựng 1 chương trình theo mơ hình Client – Server. Trong đó :
Client đóng vai trị là chiếc điện thoại di động khách, được triển khai bằng công nghệ J2ME được chay mô phỏng trên công cụ Wireless Toolkit 3.0. Để phục vụ cho các thao tác mật mã, học viên có sử dụng thư viện mã nguồn mở Bouncy Castle phiên bản trên di động.
Server: Đóng vai trị như CA, cung cấp dịch vụ phát hành chứng thư cho
phía máy khách. Server được xây dựng dựa trên công nghệ Java, sử dụng thư viện mã nguồn mở Bouncy Caslte phục vụ cho các thao tác mật mã.
Môi trường truyền thông : Client sẽ sử dụng dịch vụ GPRS hoặc dịch vụ
3G để kết nối Socket tới CA. Tất cả các thông điệp trao đổi giữa Client và CA đều được truyền qua kết nối Socket.
3.3.5.2. Các bước thực hiện
Trước tiên, để Server có thể đóng vai trị là 1 CA, Server sẽ phải sinh một cặp khóa gồm khóa bí mật và khóa cơng khai. Sau đó Server sẽ thực hiện tự sinh 1 chứng thư cho chính bản thân bằng cách lấy khóa bí mật ký xác nhận cho chứng thư được sinh ra. Sau khi hoàn tất bước này, Server sẽ sở hữu 1 chứng thư số và khóa bí mật được sử dụng để phát hành các chứng thư sau này của Client. Mã nguồn việc sinh khóa và việc tự ký của CA được trích dẫn trong phần phụ lục.
Sau đó Server CA sẽ chạy 1 dịch vụ để phục vụ việc cấp phát chứng thư từ các máy khách. Để đơn giản hóa việc thực thi, học viên thiết kế Server chấp nhận tất cả các yêu cầu cấp phát chứng thư với bất cứ mã ID và RegCode nào được gửi từ phía Client.
Phía Client, người sử dụng sẽ điền các thông tin về chứng thư của mình, sau đó sẽ kích hoạt giao thức phát hành chứng thư. Client và server thực thi giao thức được đặc tả trong mục 3.3.4.1b
Hình 3.11a: Chứng thư của CA
Hình 3.11c: Thuật tốn ký của CA
Hình 3.11e: Form điền thơng tin cấp u cầu phát chứng thư
Hình 3.11g: Thuật tốn ký số của CA trên chứng thư phát hành
3.3.5.3. Đánh giá hiệu năng của hệ mật mã ECC
Việc đánh giá hiệu năng của hệ mật mã ECC đã có rất nhiều cơng trình nghiên cứu đã chứng minh rằng hệ mật mã ECC nhanh và hiệu quả hơn so với hệ mật mã RSA trên ở cùng 1 cấp độ an toàn. Do vậy trong luận văn, học viên sẽ khơng đi vào tính tốn và đánh giá lại hiệu năng của hệ mật mã ECC so với hệ mật mã RSA. Tuy nhiên để có thể thấy rõ được sự khác biệt về hiệu suất giữa hệ mật mã ECC và RSA, học viên xin trích lại kết quả nghiên cứu được công bố với công ty Certicom – Công ty nghiên cứu hàng đầu về hệ mật mã ECC – được công bố năm 2005 [21]
ECC keysize RSA keysize Symmetric keysize ECDSA Sign (Sigs/min) RSA Sig (Sigs/min) ECC benefit
224 bit 2048 bit 3DES-112 105840 2940 3600%
256 bit 3072 bit AES-128 54000 480 11250%
384 bit 7680 bit AES-192 30960 60 51600%
512 bit 15360 bit AES-256 14400 60 24000%
ECC keysize RSA keysize Symmetric keysize ECDSA Verify (Vef/min) RSA Verify (Vef/min) ECC benefit
224 bit 2048 bit 3DES-112 47520 26880 117%
256 bit 3072 bit AES-128 22800 11280 202%
384 bit 7680 bit AES-192 11040 2160 511%
512 bit 15360 bit AES-256 5280 480 1100%
Hai bảng so sánh 3.5a và 3.5b cho ta một cái nhìn trực quan về hiệu suất giữa hệ mật mã ECC và RSA. Ta nhận thấy, ở cùng 1 độ an tồn, độ dài khóa của RSA tăng nhanh hơn so với độ dài khóa của ECC. Hơn nữa tốc độ thực hiện (Ký – Xác thực trong một phút) của RSA cũng giảm nhanh hơn so với ECC.
Bảng 3.5a : So sánh tốc độ ký giữa hệ mật mã ECC và RSA
Hình 3.5b: So sanh tốc độ xác thực giữa hệ mật mã ECC và RSA
Comment [u33]: Scott Vanstone
(2005) : “An introduction to use of ECC- based certificates”. Code and Cipher vol2, no2. pp -3
3.4. Kết luận chương 3
Trong chương 3, với mục đích nghiên cứu phương pháp xác thực phù hợp đối với các thiết bị vơ tuyến có hạn chế về năng lực tính tốn và tài nguyên bộ nhớ. Luận văn đã giới thiệu nghiên cứu hệ mã hóa đường cong Elliptic, cơ sở toán học đề xây dựng hệ mật mã ECC, các dịch vụ an ninh, các thuật toán thực thi trong hệ mật mã ECC.
Với những ưu điểm của hệ mật mã ECC, trong phần cuối của chương, học viên đã đề xuất khả năng xây dựng hạ tầng khóa cơng khai cho nền tảng di động dựa trên hệ mật mã ECC. Để hiện thực hóa, học viên đã thiết kế giao thức và triển khai ứng dụng cấp phát chứng thư cho thiết bị di động
Tổng kết và hướng nghiên cứu tiếp theo
Trong luận văn của mình, xuất phát từ những tồn tại trong vấn đề xác thực của các mạng vô tuyến, đặc biệt là trong các mạng di động. Luận văn đã tiến hành nghiên cứu các phương pháp xác thực để từ đó bước đầu tìm ra một giải pháp xác thực có thể áp dụng được trong các mạng vô tuyến, đặc biệt là trên những thiết bị đầu cuối có hạn chế về tốc độ xử lý và khả năng lưu trữ. Luận văn đã nêu khái quát các vấn đề cơ bản trong mật mã học, trong đó đi vào chi tiết 2 hệ mật mã được sử dụng phổ biến nhất hiện nay, đó là hệ mật mã đối xứng và hệ mật mã công khai. Sau khi giới thiệu 2 hệ mật mã, luận văn vào ứng dụng của các hệ mật mã đó trong vấn đề xác thực, học viên đã giới thiệu chữ ký điện tử và các mơ hình xác thực được sử dụng phổ biến hiện nay. Để minh họa, trong phần tiếp theo học viên đã khảo cứu và trình bay khái quát phương pháp xác thực được sử dụng trong các mạng di động thể hệ sau gồm mạng GSM, mạng 3G UTMS và mạng WLAN. Phần cuối cùng, học viên đi vào nghiên cứu hệ mật mã đường cong Elliptic (Elliptic Curve Cryptography), học viên đã giới thiệu cơ sở tốn học của hệ mật mã ECC, trích dẫn và giải thích các thuật tốn sinh khóa, trao đổi khóa, ký số, xác thực, mã hóa – giải mã của hệ mật mã ECC. Do việc chứng minh sự tương thích của hệ mật mã đường cong ECC đối với các thiết bị di động đã được chứng minh trong rất nhiều nghiên cứu trước đó, do vậy luận văn chỉ tổng kết lại những số liệu và đưa ra những đánh giá về sự tương thích đó. Trong phần cuối, luận văn đã đề xuất khả năng ứng dụng hạ tầng khóa cơng khai dành cho thiết bị di động dựa trên hệ mật mã ECC. Để chứng minh, luân văn đã thiết kế giao thức cấp phát chứng thư giữa thiết bị di động và cơ quan phát hành chứng thư.
1. Hướng nghiên cứu tiếp theo
Trong tương lai, học viên có dự đinh sẽ đi vào nghiên cứu và hồn thiện hạ tầng khóa cơng khai danh cho các thiết bị di động. Xây dựng và hồn thiện các ứng dụng dựa trên hạ tầng khóa công khai với mục tiêu là cung cấp 1 hạng tầng xác thực an tồn, bảo mật và có tính pháp lý, dựa trên tính pháp lý của chữ ký điện tử đã được pháp luật Việt Nam công nhận.
Tài liệu tham khảo Tiếng Anh
1. Amos Fiat and Adi Shamir "How to prove to yourself: practical solutions to
identication and signature problems". In Advances in Cryptology-Crypto 86, pages
186-194.
2. Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 44. 3. Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 46. 4. Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 52-53. 5. Certicom Research (2009), "SEC1: Elliptic Curve Cryptography", pp 53-54. 6. Certicom Research (2010), "SEC2: Recommended Elliptic Curve Domain
Parameters", pp 3.
7. Certicom Research (2010), "SEC2: Recommended Elliptic Curve Domain
Parameters", pp 13.
8. Darrel Hankerson , Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics
Curve Cryptography", Springer publisher, pp 95.
9. Darrel Hankerson , Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics
Curve Cryptography", Springer publisher, pp 154.
10. Darrel Hankerson , Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics
Curve Cryptography", Springer publisher, pp 189.
11. ElGamal, T. "A Public-Key Cryptosystem and a Signature Scheme Based on
Discrete Logarithms." IEEE Transactions on Information Theory, July 1985.
12. ITU-TRecommendation X.800 (1991), “Security architecture for open system
interconnection (OSI)”, pp 8-10.
13. Noureddine Boudriga (2009), “Security of mobile communications”, Auerbach Publications, pp 59-60.
14. Noureddine Boudriga (2009), “Security of mobile communications”, Auerbach Publications, pp 166-169.
15. Noureddine Boudriga (2009), “Security of mobile communications”, Auerbach Publications, pp 175-179.
16. Noureddine Boudriga (2009), “Security of mobile communications”, Auerbach Publications, pp 208-212.
17. Prapul Chanda (2005), "Bulletproof wireless security: GSM, UMTS, 802.11, and
Ad Hoc Security", Newnes Publisher, pp 165.
18. Prapul Chanda (2005), "Bulletproof wireless security: GSM, UMTS, 802.11, and
Ad Hoc Security", Newnes Publisher, pp 169-170.
19. RSA Laboratories (2000) : PKCS#10 - Certification Request Syntax Standard. 20. Schnorr, C. "Efficient Signatures for Smart Card." Journal of Cryptology, No. 3, 1991.
21. Scott Vanstone (2005) : “An introduction to use of ECC-based certificates”. Code and Cipher vol2, no2. pp -3.
22. Spafford, G., http://homes.cerias.purdue.edu/~spaf/quotes.html.
23. The IEEE (2010), "IEEE Standard for port-based Network Access Control" 24. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 13-15.
25. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 120.
26. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 181-189.
27. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 266-267.
28. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 304.
29. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 305.
30. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 308.
31. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 338.
32. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 426.
33. William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 428-430.
Phụ lục: Tham số hệ mật mã ECC
Dưới đây là các tham số của hệ mật mã ECC trên trường hữu hạn Fp, được lựa chọn để thực thi hệ mật mã ECC được đưa ra bởi công ty Certicom trong khuyến nghị “SEC2: Recommended Elliptic Curve Domain Paramaters”. Các tham số cho trên trường nhị phân cũng được nêu chi tiết trong khuyên nghị trên, luận văn sẽ không đưa ra.
1. Secp192k1
p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFEE37