1 .6 Mô hình an toàn mạng
5.2 Xác thực người sử dụng
5.2.1 Nguyên lí xác thực người sử dụng từ xa
Trong hầu hết các hoàn cảnh an ninh máy tính, nhận thực người dùng là khối x y dựng cơ bản và là hàng hòng thủ cơ sở. Nhận thực người dùng là cơ sở của hầu hết các loại điều khiển truy nhậ và cho trách nhiệm người dùng. RFC 4949 (bảng thuật ngữ an ninh internet) định nghĩa nhận thực người dùng như trình bày trong các trang tiế theo đ y.
Ví dụ, người dùng Alice có thể có định danh người dùng ABTO LAS. Thông tin này cần được lưu trữ trên bất kỳ hệ thống máy chủ hoặc máy tính nào mà Alice muốn dùng và có thể được nhận biết bởi những người quản trị hệ thống và các người dùng khác. Một mục của thông tin nhận thực liên kết v i định danh người dùng này là một mật khẩu được giữ bí mật (ch được biết bởi Alice và hệ thống). Nếu không ai có thể nhận được hoặc đoán được mật khẩu của Alice, khi đó cặ nhận dạng người dùng-mật khẩu của Alice cho hé người quản trị thiết lậ quyền truy nhậ của Alice và kiểm tra hoạt động của cô ấy. Do định danh của Alice không bí mật, các người dùng hệ thống có thể g i cho cô ấy email, nhưng do mật khẩu của cô ấy là bí mật, không ai có thể giả làm
Alice.
Về cơ bản, nhận dạng là hương tiện qua đó một người dùng cung cấ một định danh xác nhận t i hệ thống; nhận thực người dùng là hương tiện thiết lậ tính hiệu lực của xác nhận. Lưu ý rằng nhận thực người dùng khác v i nhận thực bản tin. Như đã định nghĩa, nhận thực bản tin là một thủ tục cho hé các bên truyền thông xác minh nột dung của bản tin không bị thay đổi và nguồn là xác thực.
Có bốn hương tiện tổng quát đối v i danh tính người dùng có thể được s dụng độc lậ hay kết hợ .
Một vài điều ch người dùng bên biết: Ví dụ như mật khẩu, một số nhận dạng
cá nhân (Pesonal Identification Number - IN) hoặc các c u trả lời đối v i một tậ c u hỏi được sắ xế trư c.
147
Một vài điều cá nh n sở hữu: Ví dụ như các khóa mật mã, các thẻ khóa điện, các thẻ thông minh và các thể vật lý. Loại hương tiện nhận thực này được xem như một dấu hiệu.
Một vài điều thuộc về bản chất người dùng (các tham số sinh trắc học tĩnh): Ví dụ bao gồm sự xác nhận bằng v n tay, võng mạc và khuôn mặt.
Một vài điều người dùng làm (các tham số sinh trác học động): Các ví dụ bao gồm sự xác nhận bằng mẫu giọng nói, các đặc tính chữ viết tay và nhị gõ. Tất cả các hương há này khi được thực hiện và s dụng đúng cách có thể cung cấ nhận thực người dùng an ninh. Tuy nhiên, mỗi hương há đều có những vấn đề. Một kẻ địch có thể đoán được hoặc đánh cắ mật khẩu. Tương tự, một kẻ địch có thể có khả năng đánh lừa hoặc đánh cắ một dấu hiệu. Một người dùng có thể quên mật khẩu hoặc đánh mất dấu hiệu. Hơn nữa, có một lượng truyền thông quản lý đáng kể cho việc quản lý mật khẩu và thông tin dấu hiệu trên hệ thống và bảo mật những thông tin này trên hệ thống. So v i nhận thực bằng sinh trắc, có rất nhiều vấn đề, bao gồm việc đối hó v i các lỗi, chấ nhận người dùng, giá thành, và sự tiện dụng. Đối v i nhận thực người dùng dựa trên mạng, các hương há quan trọng nhất bao gồm các khóa mật mã và một vài điều mà cá nh n người dùng biết, như là một mật khẩu.
Nh n thực ẫn nhau
Một lĩnh vực ứng dụng quan trọng là các giao thức nhận thực lẫn nhau. Các giao thức này cho hé các bên tham gia truyền thông thuyết hục lẫn nhau về danh tính của mỗi bên và để trao đổi các khóa hiên.Trọng t m của bài toán trao đổi khóa nhận thực là hai vấn đề: tính bảo mật và vấn đề vô hạn. Để ngăn chặn sự mạo danh và ngăn chặn sự x m hại khóa hiên, thông tin nhận dạng và khóa hiên cần thiết hải được trao đổi ở dạng mã hóa. Điều này yêu cầu sự có mặt trư c đó của các khóa bí mật hoặc công khai mà có thể được s dụng cho mục đích này. Thứ hai, vấn đề vô hạn là quan trọng vì nguy cơ hát lại bản tin. Sự hát lại như vậy trong trường hợ tồi tệ nhất có thể cho hé một kẻ địch x m hại một khóa hiên hoặc mạo danh một bên nào đó thành công. Trong trường hợ ít nguy hại nhất, một tấn công hát lại thành công có thể làm há vỡ sự vận hành bằng cách đưa cho các bên các bản tin mạo danh bản tin thật. Các ví dụ sau đ y liệt
kê các kiểu tấn công hát lại:
(1)Tấn công hát lại đơn giản nhất là trường hợ trong đó kẻ địch ch đơn giản sao ché một bản tin và hát lại nó sau đó.
148
(2)Một kẻ địch có thể hát lại bản tin được gắn nhãn thời gian trong c a sổ thời gian có hiệu lực. Nếu cả bản góc và bản hát lại đến trong cùng c a sổ thời gian, biến cố này có thể được ghi lại (logged).
(3)Như v i ví dụ (2), một kẻ địch có thể hát lại một bản tin được gắn nhãn thời gian trong c a sổ thời gian có hiệu lực, nhưng thêm vào đó, kẻ tấn công loại bỏ bản tin gốc. Do vậy, sự lặ lại không thể bị hát hiện.
(4)Một tấn công khác liên quan t i hát lại chiều nghịch không s a đổi. Đ y là một hát lại t i người g i. Tấn công này là có thể xáy ra nếu mã hóa đối xứng được s dụng và người g i không thể dễ dàng ghi nhận sự khác biệt giữa các bản tin dượcg i và các bản tin được nhận trên cơ sở nội dung. Một hương há tiế cận để đối hó v i các tấn công hát lại là thêm vào một số thứ tự đối v i mỗi bản tin được s dụng trong một trao đổi nhận thực. Một bản tin m i được chấ nhận ch khi số trình tự của nó là đúng tuần tự. hó khăn đối v i tiế cận này là nó yêu cầu mỗi bên duy trì số trình tự gần nhất đối v i mỗi bên tham gia xác nhận mà nó vừa thỏa thuận. Do đó, các số trình tự thường không được s dụng cho việc trao đổi nhận thực và khóa. Thay vào đó,một trong các tiế cận hổ biến sau đ y được s dụng:
Các nhãn thời gian: Bên A chấ nhận bản tin là tươi m i ch khi bản tin chứa một nhãn thời gian mà v i sự đánh giá của A, nó là đủ gần v i sự hiểu biết của A về thời gian đúng. Tiế cận này yêu cầu các đồng hồ giữa các bên tham gia khác nhau được đồng bộ.
Thách đố/đá ứng: Bên A, chấ nhận một bản tin tươi m i từ B, đầu tiên g i B một “thách đố” và yêu cầu bản tin tiế theo ( hản hồi) nhận được từ B chứa giá trị hản hồi đúng tương ứng v i thách đố.
Có thể lậ luận rằng tiế cận nhãn thời gian không nên được s dụng đối v i các ứng dụng hư ng kết nối vì các khó khăn cố hữu v i kỹ thuật này. Đầu tiên, một số loại giao thức cần duy trì đồng bộ giữa các đồng hồ của các bộ vi x lý khác nhau. Giao thức
này cũng hải chịu được lỗi, để đối hó v i các lỗi trong mạng và bảo mật, để đối hó v i các tấn công thù địch. Thứ hai, cơ hội cho một tấn công thành công sẽ nảy sinh nếu có sự mất đồng bộ tạm thời do một lỗi trong cơ cấu đồng hồ của một trong các bên tham
gia. Cuối cùng, do bản tính thay đổi và không dự đoán được của trễ trong mạng, các đồng hồ được h n bố không thể duy trì sự đồng bộ chính xác. Do đó, bất kỳ thủ tục dựa trên
149
nhãn thời gian nào hải cho hé một c a sổ thời gian đủ l n để chịu được trễ trong
mạng và đủ nhỏ để tối thiểu hóa cơ hội tấn công.
Mặt khác, tiế cận thách đố/ hản hồi là không hù hợ v i ứng dụng hi kết nối, do nó yêu cầu truyền thông bắt tay trư c khi có bất kỳ truyền dẫn kết nối nào, đi ngược lại hần l n đặc tính chính của truyền thông hi kết nối. V i các ứng dụng như thế, sự tin tưởng đối v i một vài máy chủ bảo mật thời gian và một nỗ lực kiên định của mỗi bên để giữ các đồng hồ của mình đồng bộ có lẽ là tiế cận tốt nhất.
Nh n thực một chi u
Mã hóa đối v i nhận thực một chiều được hát triển hổ biến là thư điện t . Bản tính rất tự nhiên của thư điện t , và các lợi ích chính của nó là không cần người g i và người nhận trực tuyến ở tại cùng một thời điểm. Thay vào đó, bản tin thư điện t được chuyển tiế t i hộ thư điện t của người nhận, nơi nó được lưu đệm cho t i khi người nhận có khả năng đọc được nó.
“Bì thư” hoặc tiêu đề của bản tin email cần hải rõ ràng để bản tin có thể được x lý bởi giao thức lưu và chuyển tiế email, như giao thức truyền tải thư đơn giản (Sim le
Mail Tansfer Protocol - SMT ) hoặc X.400. Tuy nhiên, thông thường ta muốn giao thức x lý không yêu cầu tiế cận dạng bản rõ của bản tin, bởi vì điều đó yêu cầu việc tin cậy cơ chế x lý thư. Theo đó, bản tin email cần được mã hóa và hệ thống x lý mail không sở hữu khóa giải mã. Yêu cầu thứ hai là sự nhận thực. Thông thường, người nhận muốn một vài đảm bảo rằng bản tin đến từ đúng người g i.
5.2.2 Xác thực người dùng sử dụng mật mã khóa đối xứng Xác thực lẫn nhau
Như đã được thảo luận ở hần trên, hai mức độ của các khóa mã hóa đối xứng có thể được s dụng để cung cấ bảo mật cho truyền thông trong môi trường h n hối. Nhìn chung, chiến lược này liên quan đến việc s dụng trung t m h n hối khóa đáng tin cậy ( DC). Mỗi sự kiện trong mạng chia sẻ một khóa bí mật, được biết đến như một khóa chính, v i DC. DC có trách nhiệm tạo các khóa được s dụng v i thời gian ngắn qua kết nối giữa hai bên, được biết như các khóa hiên, và h n hối những khóa s dụng các khóa chính để bảo vệ sự h n tán.
Needham và Schroeder đưa ra một giao thức h n hối khóa bí mật s dụng DC gồm các đặc điểm xác thực. Giao thức có thể được tóm tắt như sau.
150 1. A -> KDC: IDA||IDB||N1 2. KDC -> A: E K( a,[Ks||IDB||N1|| (E Kb,[ ||K IDs A])]) 3. A -> B: E K( b,[Ks||IDA]) 4. B -> A: E K N( ,s 2) 5. A -> B: E K( ,f (s N2))
Các khóa bí mật Ka và Kb được chia sẻ tương ứng giữa A v i DC và B v i DC. Mục đích của giao thức là để h n hối một cách an toàn khóa hiên Kst i A và B. Để an toàn có được một khóa hiên m i trong bư c 2. Bản tin trong bư c 3 có thể được giải mã, và ch B m i có thể hiểu được. Bư c 4 B g i lại Ks cho A, và bư c 5 A đảm bảo
khóa Ks cho B, và đảm bảo v i B rằng đ y là bản tin m i vì s dụng N2. Mục đích của bư c 4 và 5 là để ngăn chặn một sốloại tấn công hát lại. Cụ thể, nếu một kể tấn công có thể nắm bắt được bản tin ở bư c 3 và hát lại nó, điều này sẽ làm gián đoạn hoạt động tại
B.
Mặc dù việc bắt tay ở bư c 4 và bư c 5, giao thức vẫn có thể bị tấn công bởi tấn công hát lại. Giả s một kẻ tấn công X đã có thể thỏa hiệ một khóa hiên cũ. Thừa nhận rằng, đ y là một sự cố khó khăn hơn khi kẻ tấn công đơn giản quan sát và ghi lại bư c 3. Tuy nhiên, đó là một nguy cơ bảo mật tiềm tàng. X có thể mạo danh A và lừa B s dụng khóa cũ bằng cách hát lại bư c 3. Nếu B không nh rằng tất cả khóa hiên vô hạn trư c đó được s dụng v i A, B sẽ không thể xác định rằng đ y là hát lại. Nếu X có thể đánh chặn tại bản tin bắt tay ở bư c 4, sau đó nó có thể mạo danh để g i hản hồi cho B tại bư c 5. Từ thời điểm này, X có thể g i tin nhắn giả đến B để B đưa t i A một khóa hiên được xác thực.
Denning đề xuất khắc hục điểm yếu này bằng cách s a đổi các giao thức Needham/Schroeder trong đó bao gồm việc bổ sung các tem thời gian cho các bư c 2 và 3. V i giả thiết rằng khóa chính, Ka và Kb, được an toàn, và nó bao gồm các bư c sau đ y: 1. A -> KDC: IDA||IDB 2. KDC -> A: E K( a,[Ks||IDB|| || (T E Kb,[Ks||IDA|| ])])T 3. A -> B: E K( b,[Ks||IDA|| ])T 4. B -> A: E K N( ,s 1) 5. A -> B: E K( ,f ( ))s N1
151
T là tem thời gian đảm bảo rằng A và B s dụng khóa hiên m i được tạo ra. Vì thế, cả A và B biết rằng h n hối khóa là một trao đổi m i. A và B có thể xác nhận kị thời bằng cách kiểm tra như sau:
1 2
| ClockT| t t
Trong đó t1 là được ư c tính là thời gian chêch lệch giữa đồng hồ của DC và đồng hồ cục bộ (A hoặc B) và t2là thời gian trễ dự kiến của mạng. Mỗi nút có thể thiết lậ đồng hồ của mình dựa vào một số nguồn tham khảo tiêu chuẩn. Bởi vì tem thời gian T được mã hóa bằng cách s dụng các khóa chính an toàn, ngay cả khi kẻ tấn công biết được khóa hiên cũ, vẫn không thể thành công bởi vì hát lại ở bư c 3 sẽ được hát hiện bởi B. Các bư c 4 và 5 đểxác nhận nhận được khóa hiên tại B.
Giao thức Denning tăng mức độ bảo mật cho giao thức Needham/Schroeder nhưng một mối quan t m m i được đặt ra: cụ thể là chương trình m i này đòi hỏi hải hụ thuộc vào đồng hồ được đồng bộ trên toàn mạng và tạora nguy cơ khác. Nguy cơ này được dựa
trên sự thật rằng các đồng hộ được h n hối có thể không được đồng bộ v i việc đồng hồ bị há hoại hoặc lỗi trong các cơ chế đồng bộ. Vấn đề xảy ra khi đồng hồ của người g i nhanh hơnđồng hồ của người nhận. Trong trường hợ này, có cơ hội có thể bị đánh
chặn một bản tin từ hía người g i và hát lại nó sau khi tem thời gian trong bản tin trở thành hiện tại tại vị trí của người nhận.
Một cách để đối hó v i các cuộc tấn công hát lại-bỏ gói tin là thực thi những yêu cầu thường xuyên kiểm tra đồng hồ của họdựa vào đồng hồ của DC. Ngoài ra, việc cần đồng bộ hóa đồng hồ có thể dựa trên giao thức bắt tay s dụng nounce. Các giao thức Needham/Schroeder dựa trên nounce vẫncó một vài lỗ hổng và được cải thiện như sau:
1. A -> B: IDA||Na
2. B -> KDC: IDB||Nb|| (E Kb,[IDA||Na|| ])T
3. KDC -> A: E K( a,[IDB||Na ||Ks|| ]) || (Tb E Kb,[IDA||Ks|| ]) ||Tb Nb
4. A -> B: E K( b,[IDA||Ks|| ]) || ( ,Tb E K Ns b)
V i từng bư c trao đổi như sau:
1. hởi đầu bằng việc trao đổi xác thực bằng cách tạo ra một nounce Na và g i cộng thêm nhận dạng của A đến B trong bản rõ. Nonce này sẽ được trả lại cho A trong một tin nhắn mã hóa bao gồm các khóa hiên, đảm bảo tính kị thời của nó.
2. B cảnh báo DC rằng cần một khóa hiên. Và g i bản tin của nó đến DC bao gồm nhận dạng của B và một nonce Nb. Nonce này sẽ được trả lại cho B trong một
152
bản tin được mã hóa bao gồm khóa hiên, đảm bảo tính kị thời của B. Bản tin của B đến DC cũng bảo gồm một khối được mã hóa và khóa bí mật được chia sẻ bởi B t i DC. hối này được s dụng để hư ng dẫn các DC hát hành chứng