a. Mục tiêu của giao thức.
Giao thức được xây dựng nhằm đạt những mục tiêu như sau: 1. Xác thực lẫn nhau giữa người dùng và máy chủ.
2. Người dùng và máy chủ cần thỏa thuận một khĩa bí mật nhằm mã hĩa dữ liệu trong quá trình xác thực lẫn nhau trên mạng.
3. Khơng chối bỏ các dữ liệu liên quan được gửi từ người dùng đến máy chủ.
4. Người dùng và máy chủ phải thỏa thuận khĩa phiên bí mật được sử dụng mã hĩa dữ liệu của mỗi phiên làm việc.
5. Người dùng tin cậy.
Để người dùng khơng chối bỏ các dữ liệu đã gửi, thơng thường người dùng sẽ phải ký trực tuyến. Điều đĩ cĩ nghĩa là chữ ký đĩ cĩ chứa khĩa bí mật của người dùng. Trong giao thức này sẽ khơng cung cấp phương thức sinh chữ ký trực tuyến, thay vào đĩ sẽ sử dụng khĩa bí mật của người dùng để xác thực lẫn nhau. Đây chính là điểm khác nhau cơ bản giữa giao thức xác thực ECC với các giao thức xác thực khác.
b. Thủ tục khởi tạo máy chủ dịch vụ và người dùng.
Để nhận được chứng chỉ, người dùng gửi khố cơng khai Qs cùng với định danh của mình thơng qua một kênh an tồn cho CA.
CA sử dụng khố riêng để ký giá trị băm của bộ ba giá trị liên kết là khố cơng khai Qs.x, định danh tạm thời Is, và ngày hết hạn chứng thực ts. Sau đĩ CA sẽ gửi văn bản cùng chữ ký cho người dùng thơng qua kênh an tồn và được xác thực. Trong thực tế, để thiết lập một kênh an tồn từ CA tới người dùng, CA cĩ thể sử dụng hệ thống bưu cục như là một kênh an tồn để phân phối các văn bản ký và các định danh tạm thời lưu trong SmartCard. Văn bản ký là một chứng thực của người dùng, được sử dụng trong thủ tục sinh khố và xác thực chủ thể.
User CA (Certification Authority) Chọn du ∈[2, n-2] Chọn ku ∈ [2, n-2] Qu = du * P Ru = ku*P Gửi(Qu) /*Gửi Qu cho CA */ ⎯→ ⎯Qu Nhận /*Tiếp nhận Qu từ người dùng*/ Chọn một giá trịđịnh danh Iu ru = Ru * x M = H(Qs.x, Is, ts) su = 1( . ) u ca u M d r k− +
Nhận Qca, Iu,(ru, su),tu Gửi Eu = H(Qu.x, Iu, tu)
Lưu các giá trị Qu, Qca, Iu, (ru, su), eu, tu
Server CA (Certification Authority) Chọn ds ∈[2, n-2] Chọn ks ∈ [2, n-2] Qs = ds * P Rs = ks*P Gửi(Qs) /*Gửi Qs cho CA */ ⎯→ ⎯Qs Nhận /*Tiếp nhận Qs từ người dùng*/ Chọn một giá trịđịnh danh Is rs = Rs * x M = H(Qs.x, Is, ts) ss = 1( . ) s ca s M d r k− + Nhận ←⎯Qca⎯,Is,⎯(rs,s⎯⎯s),ts⎯ Gửi Es = H(Qs.x, Is, ts) Lưu các giá trị Qs, Qca, Is,
(rs, ss), es, ts
Hình 3.5: Khởi tạo máy chủ dịch vụ.
Chứng chỉ bao gồm một cặp (rs, ss) cho nhà cung cấp và cặp (ru, su) cho người dùng. Ởđây ru và rs là các toạđộ x của các điểm Ru và Rs tương ứng. Giao thức được trình bày ở dưới đây dựa trên hệ mã hĩa đường cong elliptic. P là điểm cơ sở của đường cong elliptic.
c. Thủ tục xác thực lẫn nhau giữa người dùng với máy chủ dịch vụ
Các giao thức khởi tạo máy chủ và người dùng được thực hiện ngoại tuyến (Off line). Trong khi đĩ, các giao thức thoả thuận khố và xác thực chủ thể cần phải được thực hiện trực tuyến (Online). Giao thức thoả thuận khố và xác thực chủ thể được mơ tả như trong hình 3.6 dưới đây.
Trong giao thức này, bất cứ khi nào cĩ một yêu cầu dịch vụ của máy chủ hoặc người dùng thì thủ tục trao đổi khố được thực hiện ngay lập tức. Chủ thểđã được khởi tạo sẽ gửi một giá trị ngẫu nhiên tới chủ thể đang khởi tạo. Khi người dùng và máy chủđã nhận được các khố cơng khai của nhau thì chúng tiến hành tạo khố bí mật nhằm mã hĩa dữ liệu. Để bảo vệ các chứng chỉ, các chứng chỉ cần được gửi đi dưới dạng mật mã. Vì vậy, giao thức đã sử dụng thủ tục lập mã của hệ mật mã khố bí mật đã thoả thuận trước giữa người dùng và máy chủ Qk.x. Các máy chủ sẽ mã hố bộ giá trị es, (rs, ss), ts và số ngẫu nhiên gs. Sau đĩ, văn bản mật mã C0 sẽ được gửi tới người dùng và người dùng sẽ giải mã nĩ để nhận được chứng thực. Tiếp đến, người dùng sẽ mã hố es, (rs, ss), ts, gs tạo thành văn bản mật mã C1 và gửi trở lại cho máy chủ. Sau đĩ, người dùng sẽ kiểm tra sự đúng đắn của chứng thực. Nếu sai, người dùng sẽ huỷ bỏ phiên truyền thơng. Phía máy chủ cũng tiến hành kiểm tra sự hợp lệ của gs và ts. Nếu khơng hợp lệ thì máy chủ cũng huỷ bỏ phiên truyền thơng. Tiếp đến, máy chủ sẽ kiểm tra sự hợp lệ của các chứng thực, nếu khơng hợp lệ nĩ sẽ từ chối dịch vụ. Khi các thủ tục xác thực lẫn nhau thực hiện xong, nếu hợp lệ thì các bên sẽ tiến hành hành thoả thuận khố mật mã dùng chung nhằm mật mã thơng tin trong quá trình trao đổi thơng tin.
User Server
Nhận ←⎯⎯Qs Gửi
Sinh số ngẫu nhiên gu
Gửi ⎯Q⎯ →u⎯,gu Nhận
Qk = du × Qs = (du. ds)× P Qk = ds × Qu = (ds. du)× P
Khố thoả thuận dùng chung Qk.x Khố thoả thuận dùng chung Qk.x
Sinh số ngẫu nhiên gs
C0 = E(Qk.x, (es, (rs, ds), ts, gu, gs))
Nhận ←⎯⎯c0 Gửi
D(Qk.x, C0) và kiểm tra giá trị của gu
C1 = E(Qk.x, (eu, (ru, du), tu, gs))
Gửi ⎯⎯→c1 Nhận D(Qk.x, C1) Nếu gs và tu hợp lệ thì c= −1 s s c= −1 u s u1 = c.es u1 = c.eu
User Server
u2 = c.rs u2 = c.ru
R= u1×P + u2 × Qca R= u1×P + u2 × Qca
v=R.x v=R.x
Nếu v ≠rs thì huỷ phiên trao đổi thơng tin
Nếu v ≠ru thì huỷ phiên trao đổi thơng tin
km = h(Qk.x, gs, gu) km = h(Qk.x, gs, gu)
km là khố bí mật km là khố bí mật
Hình 3.6: Giao thức xác thực chủ thể và thoả thuận khố.
d. Thoả thuận khố.
Sau khi thực hiện các thủ tục thẩm tra xong, máy chủ và người dùng tiến hành sử dụng kênh truyền để trao đổi thơng tin. Để cĩ được giao thức an tồn đầy đủ cho quá trình trao đối thơng tin, cần sử dụng khố bí mật chung Qk.x để lập mật mã. Tuy nhiên, để đảm bảo an tồn mỗi phiên làm việc khác nhau phải cĩ khố khác nhau. Vì thế cần cĩ bước trao đổi khố mới để xác định khố bí mật này cho quá trình trao đổi thơng tin ở mỗi phiên. Ở đây khơng cần thực hiện tiến trình thoả thuận khố do bộ nhớ cĩ hạn mà sẽ sử dụng các số ngẫu nhiên gs và gu để thiết lập khố bí mật dùng chung mà khơng cần sử dụng lại kênh truyền. Cả máy chủ và người dùng sẽ thực hiện hàm băm để thu được khố mật mã dùng chung là km. Khố này được sử dụng nhằm mã hĩa thơng tin trong quá trình trao đổi.
e. So sánh các giao thức.
Diffie và giao thức của Beller-Chang-Yacobi được thể hiện qua các so sánh sau đây (xem [11]):
1. Giao thức xác thực người dùng và thỏa thuận khĩa dựa trên hệ mã hĩa đường cong elliptic địi hỏi giải thơng ít hơn so với các giao thức dựa trên hệ mã hĩa khĩa cơng khai khác như là các giao thức Aziz-Diffie và Beller-Chang-Yacobi. Tổng số bít chuyển đổi của các giao thức được tổng kết như sau:
Giao thức Beller-Chang-Yacobi: 8320 bits (độ dài khĩa 1024 bit) Giao thức Aziz-Diffie: 8680 bits (độ dài khĩa 1024 bit)
Giao thức ECC: 1666 bits (độ dài khĩa 160 bit)
Với giao thức xác thực người dùng và thỏa thuận khĩa dựa trên hệ mã hĩa đường cong elliptic cĩ độ dài các tham biến như sau:
Qu;Qs: 161 bit eu; es: 160 bit
(ru; su); (rs; ss): 320 bit tu; ts; gu; gs: 64 bit.
2. Giao thức ECC địi hỏi dung lượng bộ nhớ lưu trữ ít hơn đối với người dùng, do đĩ sẽ phù hợp với các thẻ SmartCard và các thiết bị tính tốn cầm tay:
Giao thức Beller-Chang-Yacobi: 5120 bits (độ dài khĩa 1024 bit) Giao thức Aziz-Diffie: 2176 bits (độ dài khĩa 1024 bit)
Giao thức ECC: 1440 bits (độ dài khĩa 160 bit).
3. Giao thức ECC cĩ khối lượng tính tốn vừa phải so với các giao thức khác: Giao thức Beller-Chang-Yacobi:
2PKE(1024bit)+1PKD(1024bit)+ Precomputation. Giao thức Aziz-Diffie:
3 PKE (1024-bit) + 2 PKD (1024-bit) Giao thức ECC:
1eP(160bit) + 1ECDSAV(160bit) +2SKE(800bit data) Trong đĩ:
PKE: Public Key Encryption PKD: Public Key Decryption eP: Point Multiplication
ECDSAV: Elliptic Curve Digital Signature Algorithm Verification SKE: Secret Key Encryption or Decryption.
3.3.2.6. Kết luận
Trong giao thức xác thực người dùng và thỏa thuận khĩa dựa trên hệ mã hĩa đường cong elliptic, việc cấp chứng chỉ số được thực hiện dưới dạng offline. Từ giao thức này ta cĩ khả năng xây dựng nhiều dịch vụ bảo mật như là chống thối thác, nặc danh người dùng, …. Trong giao thức xác thực người dùng và thỏa thuận khĩa nội dung thơng điệp và các tham số hệ thống được bảo vệ bằng các thuật tốn mã hĩa khĩa bí mật như là RC4, IDEA, DES, 3DES.
Giao thức dựa trên thuật tốn ký số đường cong elliptic và thừa hưởng các đặc tính bảo mật của các hệ mã hĩa đường cong elliptic, hệ mã hĩa đang được xem là bền vững và hiệu quả nhất. Người ta đã phân tích và chỉ ra rằng với hệ mã hĩa đường cong elliptic cỡ 160 bit thì độ bảo mật sẽ tương đương với các hệ mã hĩa RSA hay DSA cỡ 1024 bit. Độ dài khĩa nhỏ hơn dẫn đến các tham biến hệ thống nhỏ hơn, các chứng chỉ khĩa cơng khai nhỏ hơn, tiết kiệm đường truyền, thực thi nhanh hơn, yêu cầu năng lực của hệ thống thấp hơn. Các giao thức dựa trên hệ mã hĩa RSA gặp phải một số vấn đềđáng kể là yêu cầu khơng gian nhớ và dung lượng đường truyền lớn. Hiện nay, để đảm bảo khả năng bảo mật, giải thuật RSA yêu cầu độ dài khĩa ít nhất là 1024 bit. Tuy nhiên, như đã trình bày ở trên, với hệ mã hĩa đường cong elliptic độ dài 160 bit sẽ cĩ độ bảo mật tương tự. Vì vậy việc sử dụng hệ mã hĩa đường cong elliptic trong các hệ thống truyền thơng khơng dây cũng như các hệ thống cĩ khơng gian nhớ và khả năng tính tốn hạn chế, như smartcard chẳng hạn, sẽ trở nên hiệu quả và phù hợp hơn.