banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận thâm nhập Kỹ thuật tấn công Pass the Hash và cách phòng chống  XML
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 28/01/2011 07:37:40 (+0700) | #31 | 230467
[Avatar]
DanhNam
Member

[Minus]    0    [Plus]
Joined: 02/01/2011 03:16:29
Messages: 12
Offline
[Profile] [PM]

WinDak wrote:

StarGhost wrote:

Bạn thêm identity bằng cách nào để "không bị trường hợp này"?
 


Đưa ra cái ý tưởng để mọi người phát triển thêm thôi, chứ mình solo tiếp thì hơi mất tính thú vị của thảo luận.

Bà con có thể thảo luận thêm cách chống MITM / impersonation trong trường hợp mà mình đã đưa ra, nếu mà topic chìm quá thì mình sẽ solo tiếp


 

em cũng có ý tưởng như sau: tạo ra một en-point trung gian như C. Khi đó, C hoạt động thì sẽ tiếp nhận dữ liệu do A và B gửi đến và khóa nó lại rồi gửi hòm đến B cho B mở rồi lại tiếp nhận hòm đã mở từ B gửi về A. Cũng như muốn bảo vệ tổng thống thì cần dùng nhiều xe mạo danh tổng thống để kẻ tấn công không nhận ra. Trên đây là ý tưởng của em cho thảo luận thêm sôi nổi và không biết nó có khả thi không ạ? smilie
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 28/01/2011 08:28:35 (+0700) | #32 | 230470
myquartz
Member

[Minus]    0    [Plus]
Joined: 04/01/2005 04:58:30
Messages: 563
Offline
[Profile] [PM]
SG à. Protocol đó tớ ko nghĩ ra, mà là học cái thiên hạ họ làm thôi. HTTP Digest Auth đấy.
Thực chất password clear text hay hash rồi đều được coi là sensitive info, nếu bị lộ từ nguồn thì bất cứ schema xác thực pass nào cũng sẽ bị qua mặt. Đây chính là điểm yếu ko thể qua được của cách xác thực mật khẩu.
Người ta chỉ tăng an toàn của nó khi: cố định được quá trình xử lý ko thể xài hash vào đó, ví dụ web forum, thì chu trình này ở trên server chỉ nhận input là clear text, rồi tính ra hash chứ ko bypass bước tính này. Cách thứ 2 chính là giữ bí mật CSDL mật khẩu.
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 28/01/2011 13:09:22 (+0700) | #33 | 230483
jcisio
Member

[Minus]    0    [Plus]
Joined: 17/04/2004 12:04:36
Messages: 34
Offline
[Profile] [PM]

StarGhost wrote:
Còn chuyện brute-force mật khẩu không có phụ thuộc vào sức mạnh của hàm hash (đã gọi là brute-force mà), mà chỉ phụ thuộc vào độ phức tạp của mật khẩu. 


Nhầm rồi. Hàm hash phức tạp (1000 vòng lặp chẳng hạn), cần 100 ms để hash xong 1 chuỗi thì nó sẽ làm thời gian brute-force tăng gấp 100.000 lần so với dùng md5 (xem như 1 giây hash được 1 triệu md5).

Đa số các hệ thống mới đều dùng strengthening kiểu này.
www.thongtincongnghe.com
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 28/01/2011 14:04:53 (+0700) | #34 | 230485
eicar
Member

[Minus]    0    [Plus]
Joined: 25/01/2011 06:49:53
Messages: 13
Offline
[Profile] [PM]

jcisio wrote:

Nhầm rồi. Hàm hash phức tạp (1000 vòng lặp chẳng hạn), cần 100 ms để hash xong 1 chuỗi thì nó sẽ làm thời gian brute-force tăng gấp 100.000 lần so với dùng md5 (xem như 1 giây hash được 1 triệu md5).
Đa số các hệ thống mới đều dùng strengthening kiểu này. 


Cái này là anh jcisio tuyên bố bừa bãi hay có chứng minh Toán học cụ thể ạ ?

[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 28/01/2011 15:13:33 (+0700) | #35 | 230487
StarGhost
Elite Member

[Minus]    0    [Plus]
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
[Profile] [PM]
@myquartz, jcisio: đứng về mặt thực tiễn mà nói, các bạn không có sai. Khi một phần mềm bị phát hiện lỗ hổng, người ta thường vá nó chứ không ai vứt đi rồi redesign lại. Khi một phương pháp crypto có lỗ hổng, các bạn cũng có thể vá nó như cách các bạn đưa ra, nếu việc thay đổi hoàn toàn là quá khó khăn.

Nhưng phải cẩn thận, bản vá cũng có thể có lỗ hổng của chính nó, HTTP digest auth là một ví dụ. Bạn myquartz đọc kĩ security considerations của nó sẽ hiểu cái trade-off của nó là gì. Mình thì không phải dân kĩ thuật, nhưng mà HTTP digest auth thì mình cũng biết được từ khá lâu, chỉ là không rõ nó phổ biến ra sao thôi.

Mình nghĩ là vì ở các góc nhìn khác nhau nên căn bản là không thể đưa đến được sự thống nhất tư tưởng. Các phương pháp chúng ta đưa ra ở đây có lẽ đều đạt mục tiêu chống pass the hash như chủ topic đưa ra.

Thân mến.
Mind your thought.
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 28/01/2011 19:47:18 (+0700) | #36 | 230499
myquartz
Member

[Minus]    0    [Plus]
Joined: 04/01/2005 04:58:30
Messages: 563
Offline
[Profile] [PM]
SG à. tranh cãi với SG phải nói đến kỳ cùng.
mình đã nói trước, trade-off của HTTP Digest Auth chính là phải giữ bí mật chuỗi HA1/clear-text pass lưu tại nguồn.
HTTP Digest được hỗ trợ ở nhiều nơi, nhiều http server và proxy, nhưng chính vì cái điểm dở ở trên mà nó ko đc phổ biến ở nơi lưu pass không phải là clear-text.
Nhưng ưu điểm vẫn là ưu điểm, hash chạy nhanh, ổn định, tính chống replay attack và không cần mã hoá kênh truyền khi xác thực theo cách này, hiện giờ cái schema đó được dùng rất phổ biến và là cách xác thực user/pass duy nhất của chuẩn SIP. Các SIP server đều lưu clear-text/HA1 password đấy.
Như thế, chống pass the hash đã thành công bằng cách này rồi, trừ ra cái điểm trừ clear-text password kia.
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 28/01/2011 20:38:24 (+0700) | #37 | 230505
StarGhost
Elite Member

[Minus]    0    [Plus]
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
[Profile] [PM]
@myquartz: à mình không có ý định tranh cãi nữa, vì lí do gì thì mình đã nói ở trên rồi. Dù có tranh cãi kiểu gì cũng không thể đến "kỳ cùng" được.
Mind your thought.
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 28/01/2011 20:54:17 (+0700) | #38 | 230507
jcisio
Member

[Minus]    0    [Plus]
Joined: 17/04/2004 12:04:36
Messages: 34
Offline
[Profile] [PM]
@eicar: 100 ms / 1 us = 100.000 là hiển nhiên rồi, chứng minh gì nữa?

@SG: mình không có tham gia tranh cãi, mình chỉ bảo câu bạn nói (được trích) là sai thôi, đó là một ngộ nhận rất nguy hiểm.

Việc xây dựng một hàm hash đòi hỏi thời gian tính toán "lâu" là rất quan trọng. 2 trong 3 CMS phổ biến nhất (Drupal, Joomla, WP) đã dùng phpass rồi http://www.openwall.com/phpass/
www.thongtincongnghe.com
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 28/01/2011 22:11:37 (+0700) | #39 | 230520
eicar
Member

[Minus]    0    [Plus]
Joined: 25/01/2011 06:49:53
Messages: 13
Offline
[Profile] [PM]
Anh jcisio, em trích dẫn câu trả lời của anh vì câu đấy khá mơ hồ và sai lầm về một số mặt.

Thứ nhất, anh cũng biết là số phép tính cần thiết để hash một chuỗi phụ thuộc vào thuật toán hash và kích thước của chuỗi đó. Điều thứ hai, anh nói hàm hash phức tạp "1000 vòng lặp" thì em cũng không rõ cái 1000 vòng lặp ở đây là cái gì, anh cũng biết là độ mạnh hay yếu của các thuật toán hash không chỉ phụ thuộc vào các "vòng lặp".

Điều cuối cùng là việc tìm collision của hàm hash, ngay cả dùng brute-force đi nữa, thì trong thực tế người ta cũng không sai lầm đến mức mỗi lần thực hiện là sinh ra hàng tỉ tỉ giá trị hash để so sánh. Em không biết tất cả các phương pháp hiện tại, nhưng có một bài báo của Hellman viết cách đây cũng khá lâu mô tả phương pháp để tạo ra trade-off giữa thời gian và bộ nhớ cho việc tìm collision. Hiện nay thì em biết ý tưởng này người ta sử dung trong cái gọi là RainbowTable.

Do vậy cái phép chia của anh sai lầm cả trên lý thuyết lẫn thực tế.
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 28/01/2011 22:58:09 (+0700) | #40 | 230524
jcisio
Member

[Minus]    0    [Plus]
Joined: 17/04/2004 12:04:36
Messages: 34
Offline
[Profile] [PM]

eicar wrote:
Anh jcisio, em trích dẫn câu trả lời của anh vì câu đấy khá mơ hồ và sai lầm về một số mặt.

Thứ nhất, anh cũng biết là số phép tính cần thiết để hash một chuỗi phụ thuộc vào thuật toán hash và kích thước của chuỗi đó. Điều thứ hai, anh nói hàm hash phức tạp "1000 vòng lặp" thì em cũng không rõ cái 1000 vòng lặp ở đây là cái gì, anh cũng biết là độ mạnh hay yếu của các thuật toán hash không chỉ phụ thuộc vào các "vòng lặp".

Điều cuối cùng là việc tìm collision của hàm hash, ngay cả dùng brute-force đi nữa, thì trong thực tế người ta cũng không sai lầm đến mức mỗi lần thực hiện là sinh ra hàng tỉ tỉ giá trị hash để so sánh. Em không biết tất cả các phương pháp hiện tại, nhưng có một bài báo của Hellman viết cách đây cũng khá lâu mô tả phương pháp để tạo ra trade-off giữa thời gian và bộ nhớ cho việc tìm collision. Hiện nay thì em biết ý tưởng này người ta sử dung trong cái gọi là RainbowTable.

Do vậy cái phép chia của anh sai lầm cả trên lý thuyết lẫn thực tế. 


- Về lí thuyết:
a) cái 1000 vòng lập mình nói là thay vì tính X = H(a) thì mình tính X = H'(a) = H(H(H(H(...(H(a))))) (1000 lần, không salt cho đơn giản), thời gian sẽ gấp 1000 thôi. Khi nói đến strengthen mình không nói đến hàm băm cụ thể nào.
b) Còn khi brute force, tất nhiên không sinh ra hoàn bộ hash, mình có thể suy luận được cái đó, vì nếu không thì chẳng có gì để nghiên cứu nữa. Số phép thử nhỏ hơn toàn bộ (chứ không thì 2^128 còn lớn hơn số lượng nguyên tử có trong vũ trụ này), nhưng cũng rất lớn đó. Và do đó thời gian tính H' gấp 1000 lần H, thời gian để bẻ khoá đương nhiên tăng 1000 lần.
c) RainbowTable bạn đi google thì sẽ thấy nó không phải là cái bạn nói, và cũng không để tìm collision. Với lại với brute force (bẻ 1 khoá cụ thể) với collision là 2 cái khác nhau hoàn toàn, mặc dù khi có collision thì vấn đề bẻ bất kì khoá nào cũng trở nên dễ dàng hơn nhiều (nghe đồn thế, chứ chưa đọc chứng minh cụ thể).

- Về thực tế: mình đã nói ở bài trước. Bạn xem phpass.
www.thongtincongnghe.com
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 29/01/2011 00:01:45 (+0700) | #41 | 230527
eicar
Member

[Minus]    0    [Plus]
Joined: 25/01/2011 06:49:53
Messages: 13
Offline
[Profile] [PM]
Anh jcisio, em xin đưa ra một số ý kiến để phản bác lại các luận điểm của anh.

Về luận điểm a), khi anh nói các "vòng lặp" với ý nghĩa như vậy thì em hiểu. Nhưng có gì để đảm bảo là khi anh lặp 1000 lần như vậy thì lại an toàn hơn ?, anh có nghĩ rằng nhỡ đâu hàm hash H có tính chất H^1000(x) = X ?.

Về luận điểm b), ý của em là đối với brute-force người ta không dùng một phương pháp thô sơ như là cách so sánh các giá trị hash. Anh đọc bài của Hellman thì sẽ thấy gần như ngược lại như vậy, họ so sánh các giá trị sinh ra bởi một reduction function. Nên cái phép chia của anh không có giá trị.

Về luận điểm c), chắc anh cũng thấy rằng anh tự mâu thuẫn : hai điều (collision detection và password cracking) nếu hoàn toàn không liên hệ gì với nhau thì không thể điều nọ lại là hệ quả của điều kia (như anh đã nói). Em nghĩ thì hai cái này liên quan đến nhau, bởi một lẽ rất đơn giản : hàm hash H không thể là song ánh (đơn giản là không gian của các password lớn hơn không gian của các giá trị hash), nên việc brute-force ở đây chỉ có thể là tìm ra một collision, tức là tìm được một giá trị m' sao cho H(m') = H(m), với m là giá trị password ban đầu. Và RainbowTable thì em tìm được trên wikipedia có nói rằng "Rainbow tables are specific to the hash function they were created for e.g., MD5 tables can crack only MD5 hashes"
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 29/01/2011 01:05:03 (+0700) | #42 | 230530
jcisio
Member

[Minus]    0    [Plus]
Joined: 17/04/2004 12:04:36
Messages: 34
Offline
[Profile] [PM]
Mình không biết nhiều lắm về bảo mật, nên khó mà giải thích cho bạn được. Mình chỉ nói những cái mà mình biết là đúng thôi. Chứ còn trả lời những câu hỏi kiểu "nhỡ đâu" thì hỏi khó mình rồi.

- Mình chưa thấy ở đâu có cách tính H(H(x)) = H2(x) mà thời gian nhỏ hơn 2 lần tính H(x), rồi 3 lần... Với lại có salt vào thì còn khác nữa!

- RainbowTable chẳng qua chỉ là 1 kiểu brute force, bạn tự đọc lại.

- Mình không biết Hellman là ai và bài báo đó viết gì. Bạn nói rõ hơn? Mình chỉ cần quan tâm đến nội dung thôi.

- Để bẻ khoá thì có 2 loại: hoặc brute force (với mật khẩu yếu), hoặc tấn công vào hàm hash. Dùng hàm hash tốt thì tấn công vào đó là vô vọng (mới chỉ tìm được collision của MD5 và SHA1). Còn brute force, như mình nói hàm hash tính càng lâu thì càng an toàn. RainbowTable chẳng hạn, chỉ dùng cho MD5 không salt và 1 vòng lặp.

- Mình nói nó không liên hệ với nhau bao giờ? Chỉ nói "bẻ khoá và collision là khác nhau hoàn toàn". Mình lấy thuật ngữ của bạn ra nói luôn, nếu m là mật khẩu, H không phải là song ánh (đúng hơn, không phải là đơn ánh), thì bảo là tồn tại m' để H(m')=H(m) là sai. Do H không phải đơn ảnh, nên tồn tại m1 và m2 (không liên quan gì đến m), để H(m1) = H(m2). Đó là collision. Nó khác với việc bẻ khoá (tìm m).

Bạn có những thắc mắc rất tốt, tuy nhiên bạn đọc không kĩ. Nhưng nếu chịu khó đọc kĩ hơn thì đỡ mất thời gian cho những câu hỏi như vậy.
www.thongtincongnghe.com
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 31/01/2011 03:02:03 (+0700) | #43 | 230648
StarGhost
Elite Member

[Minus]    0    [Plus]
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
[Profile] [PM]

jcisio wrote:
@eicar: 100 ms / 1 us = 100.000 là hiển nhiên rồi, chứng minh gì nữa?

@SG: mình không có tham gia tranh cãi, mình chỉ bảo câu bạn nói (được trích) là sai thôi, đó là một ngộ nhận rất nguy hiểm.

Việc xây dựng một hàm hash đòi hỏi thời gian tính toán "lâu" là rất quan trọng. 2 trong 3 CMS phổ biến nhất (Drupal, Joomla, WP) đã dùng phpass rồi http://www.openwall.com/phpass/ 


Haha, bạn jcisio nói đúng, mình đã ngộ nhận, còn nguy hiểm như thế nào thì mình còn chưa rõ. Mình ngộ nhận như vậy, căn bản là vì mình luôn giả sử rằng người ta thiết kể các hash function với một thuộc tính bất di bất dịch: càng nhanh càng tốt. Chính vì vậy mình luôn mặc định rằng sự biến thiên về độ phức tạp là không đáng kể. Quan điểm của mình là cái gì được thiết kế ra và test kĩ lưỡng để dùng với mục đích này thì chỉ nên dùng nó với mục đích đó, và không nên trao cho nó trọng trách khác, vì có thể gây ra nhiều phiền toái bất ngờ trong tương lai.

Còn bạn cho nó hash n lần (n=1000) thì mình công nhận là gây khó khăn cho quá trình brute-force. Tuy nhiên, mình cho rằng đây là một hạ sách. Vì sao? Security bao giờ cũng có cái giá của nó. Tuy nhiên, khi thay đổi một hệ thống để tăng cường security cho một điểm yếu, người ta cố gắng làm sao để chi phí càng ít càng tốt, và security được tăng cường càng nhiều càng tốt, đồng thời không tạo ra điểm yếu ở chỗ khác.

Với việc hash 1000 lần, hoặc thiết kế một hàm hash khác có độ phức tạp hơn 1000 lần hàm hash cũ, bạn làm cho nỗ lực brute-force tăng thêm 1000 lần, nhưng đồng thời cũng làm cho chí phí trong quá trình xác thực của hệ thống tăng thêm 1000 lần. Nói cách khác, security và cost có cùng tỉ lệ.

Giả sử kẻ tấn công có khả năng brute-force password khi bạn dùng hàm hash cũ. Bây giờ bạn có khả năng tăng 1000 lần chi phí cho việc xác thực, phải chăng attacker không có khả năng tăng 1000 lần chi phí cho việc tấn công, thậm chí là tệ hơn nữa nếu cái mớ chi phí đó không hoàn toàn do attacker bỏ ra? Ngoài ra, việc tăng cường độ phức tạp tính toán trong quá trình xác thực còn gây ra một vấn đề, đó là DoS, khi mà thời gian xác thực mất tới 100ms.

Thú thực mình không biết là phương pháp này đã được cài đặt vào các sản phẩm nào, và bao nhiều phần trăm các hệ thống trên thế giới sử dụng các sản phẩm đó, và bao nhiêu phần trăm trong số đó enable chức năng này. Nếu bạn (hoặc ai đó tham gia topic) có thống kê thì có thể đưa ra để cùng thảo luận, vì có thể phương pháp này còn có ưu điểm khác mà mình chưa nhận ra.
Mind your thought.
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 31/01/2011 20:13:57 (+0700) | #44 | 230678
jcisio
Member

[Minus]    0    [Plus]
Joined: 17/04/2004 12:04:36
Messages: 34
Offline
[Profile] [PM]

StarGhost wrote:

jcisio wrote:
@eicar: 100 ms / 1 us = 100.000 là hiển nhiên rồi, chứng minh gì nữa?

@SG: mình không có tham gia tranh cãi, mình chỉ bảo câu bạn nói (được trích) là sai thôi, đó là một ngộ nhận rất nguy hiểm.

Việc xây dựng một hàm hash đòi hỏi thời gian tính toán "lâu" là rất quan trọng. 2 trong 3 CMS phổ biến nhất (Drupal, Joomla, WP) đã dùng phpass rồi http://www.openwall.com/phpass/ 


Haha, bạn jcisio nói đúng, mình đã ngộ nhận, còn nguy hiểm như thế nào thì mình còn chưa rõ. Mình ngộ nhận như vậy, căn bản là vì mình luôn giả sử rằng người ta thiết kể các hash function với một thuộc tính bất di bất dịch: càng nhanh càng tốt. Chính vì vậy mình luôn mặc định rằng sự biến thiên về độ phức tạp là không đáng kể. Quan điểm của mình là cái gì được thiết kế ra và test kĩ lưỡng để dùng với mục đích này thì chỉ nên dùng nó với mục đích đó, và không nên trao cho nó trọng trách khác, vì có thể gây ra nhiều phiền toái bất ngờ trong tương lai.

Còn bạn cho nó hash n lần (n=1000) thì mình công nhận là gây khó khăn cho quá trình brute-force. Tuy nhiên, mình cho rằng đây là một hạ sách. Vì sao? Security bao giờ cũng có cái giá của nó. Tuy nhiên, khi thay đổi một hệ thống để tăng cường security cho một điểm yếu, người ta cố gắng làm sao để chi phí càng ít càng tốt, và security được tăng cường càng nhiều càng tốt, đồng thời không tạo ra điểm yếu ở chỗ khác.

Với việc hash 1000 lần, hoặc thiết kế một hàm hash khác có độ phức tạp hơn 1000 lần hàm hash cũ, bạn làm cho nỗ lực brute-force tăng thêm 1000 lần, nhưng đồng thời cũng làm cho chí phí trong quá trình xác thực của hệ thống tăng thêm 1000 lần. Nói cách khác, security và cost có cùng tỉ lệ.

Giả sử kẻ tấn công có khả năng brute-force password khi bạn dùng hàm hash cũ. Bây giờ bạn có khả năng tăng 1000 lần chi phí cho việc xác thực, phải chăng attacker không có khả năng tăng 1000 lần chi phí cho việc tấn công, thậm chí là tệ hơn nữa nếu cái mớ chi phí đó không hoàn toàn do attacker bỏ ra? Ngoài ra, việc tăng cường độ phức tạp tính toán trong quá trình xác thực còn gây ra một vấn đề, đó là DoS, khi mà thời gian xác thực mất tới 100ms.

Thú thực mình không biết là phương pháp này đã được cài đặt vào các sản phẩm nào, và bao nhiều phần trăm các hệ thống trên thế giới sử dụng các sản phẩm đó, và bao nhiêu phần trăm trong số đó enable chức năng này. Nếu bạn (hoặc ai đó tham gia topic) có thống kê thì có thể đưa ra để cùng thảo luận, vì có thể phương pháp này còn có ưu điểm khác mà mình chưa nhận ra.  


Điểm bạn ngộ nhận là điểm quan trọng khi thiết kế hệ thống, do đó mới "nguy hiểm". Về key stretching/strengthening thì bạn hãy đọc http://en.wikipedia.org/wiki/Key_strengthening. Do mình không làm về bảo mật, nên cũng chẳng biết sản phẩm nào dùng cái này. Chỉ biết 2 cái CMS phổ biến là WP và Drupal đang dùng như đã nói ở trên. Wi-Fi (WPA, WPA2) cũng dùng.

Việc xác thực tốn thời gian, nhưng thời gian đó chẳng đáng kể gì so với công việc khác. Laptop của mình có thể tính 1 triệu MD5 trong 1 giây, tức tính 1000 lần chỉ mất 1 ms. Do dù là 100 ms đi nữa (rất rất an toàn!), con số này thường không đáng kể so với thời gian làm chuyện khác. Nếu bạn DDoS trang đăng nhập, thà đi DDoS các trang khác như search, post... còn hiệu quả hơn.
www.thongtincongnghe.com
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 31/01/2011 21:17:21 (+0700) | #45 | 230682
jcisio
Member

[Minus]    0    [Plus]
Joined: 17/04/2004 12:04:36
Messages: 34
Offline
[Profile] [PM]
Hôm nay trang hẹn hò lớn nhất thế giới PlentyOfFish bị hack và lộ mật khẩu, trong phần bình luận có nói về bcrypt (là phpass mình nhắc ở trên). Link http://codahale.com/how-to-safely-store-a-password/ (và hơn chục cái link rất hữu ích). Cái này không mới, nhưng không phải ai cũng biết, và không phải hệ thống nào cũng dùng (chỉ đến gần đây mới...)
www.thongtincongnghe.com
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 31/01/2011 23:12:01 (+0700) | #46 | 230687
StarGhost
Elite Member

[Minus]    0    [Plus]
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
[Profile] [PM]
@jcisio: hì hì, bạn vẫn chưa chỉ ra được là cái ngộ nhận của mình nguy hiểm ra sao? Bạn có biết mình sẽ làm thế nào với cái ngộ nhận đó chưa mà phán rằng nó nguy hiểm? Về WPA, cái việc sử dụng phương pháp key strengthening không bắt buộc trong protocol bạn ạ, mà nó là implementation specific. Và ngay kể cả khi người ta implement nó rồi, thì người ta cũng vẫn phải nhấn mạnh vấn đề low entropy của password. Lí do đơn giản là vì đây chỉ là giải pháp tạm thời, nó căn bản không phải là phương pháp có thể "stand the test of time". Ngay cả đến những thứ như RSA cryptosystem còn liên tục phải tăng key size (khi mà độ phức tạp tấn công là exponential increase), thì với cái phương pháp mà có độ phức tạp cho việc tấn công theo kiểu linear increase thế này, căn bản không thể dùng được với những hệ thống lớn, cần sự ổn định lâu dài.

Tuy nhiên, có thể bạn đúng là nó có thể được áp dụng ở các trường hợp có mức độ critical về security thấp hơn. Mình nói có thể vì căn bản bạn chưa đưa ra được một thống kê hoặc phân tích khoa học về mức độ security liên quan đến phương pháp này. Bạn nói nếu DDoS thì thà DDoS trang search hơn là DDoS trang đăng nhập, nhưng bạn phát biểu thế thì quá ngây thơ rồi. Mình không nghĩ một administrator nào lại có thể nói rằng: à hệ thống của thằng kia DDoS dễ hơn kìa, sao mày không tấn công nó đi, tấn công tao làm gì.

p/s: Vì mình không làm về kĩ thuật nhiều, nên mình cũng xin hỏi các bạn là thời gian server bỏ ra để tính toán xác thực là 100ms thì gọi là nhiều hay ít? Với một hệ thống lớn cỡ nào thì chấp nhận được?
Mind your thought.
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 01/02/2011 07:30:04 (+0700) | #47 | 230692
mrro
Administrator

Joined: 27/12/2001 05:07:00
Messages: 745
Offline
[Profile] [PM]
trước khi thảo luận tiếp, mình nghĩ có một số *tiêu chuẩn* mà mọi người nên xem qua (để đảm bảo "we are all on the same page" smilie:

+ PKCS5, phần Password-Based Key Derivation Function.

+ Bcrypt, http://www.usenix.org/events/usenix99/provos/provos.pdf.

+ Scrypt, http://www.tarsnap.com/scrypt.html.

-m
http://tinsang.net

TetCon 2013 http://tetcon.org

Làm an toàn thông tin thì học gì?/hvaonline/posts/list/42133.html
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 01/02/2011 12:22:31 (+0700) | #48 | 230700
jcisio
Member

[Minus]    0    [Plus]
Joined: 17/04/2004 12:04:36
Messages: 34
Offline
[Profile] [PM]
Thanks mrro. Mình biết key strengthening có từ lâu, nhưng không ngờ trong các chuẩn từ cách đây 12 năm đã đề cập đến nó rồi!

@SG: 100ms nhiều hay ít là con số tương đối. Với server bình thường thì đó là thời gian để tính 100.000 cái md5. Còn nếu chỉ cần 10.000 vòng thì mất 10 ms thôi.

Mình không nghĩ một administrator nào lại có thể nói rằng: à hệ thống của thằng kia DDoS dễ hơn kìa, sao mày không tấn công nó đi, tấn công tao làm gì.

Cả 2 trong cùng 1 hệ thống mà. Nhà bạn có 2 cửa: một cửa dễ vào, một cửa khó vào (trang đăng nhập không bao giờ là trang tiêu tốn tài nguyên nhiều nhất, nó chẳng phải làm gì ngoài việc tính hash), thế ăn trộm vào nó chọn cửa nào?

PS: cho rằng một hệ thống dùng hash, thí dụ MD5, cũng an toàn như một hệ thống khác dùng key strenngthening (cũng với MD5 luôn) mà không nguy hiểm hả trời!
www.thongtincongnghe.com
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 01/02/2011 14:42:51 (+0700) | #49 | 230709
StarGhost
Elite Member

[Minus]    0    [Plus]
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
[Profile] [PM]
@jcisio: hì hì, bạn tưởng tượng thế là nhầm ý mình rồi, nên mới cho rằng nguy hiểm. Câu trên của bạn mình thêm một chữ "thiếu", thành như sau:
PS: cho rằng một hệ thống dùng hash, thí dụ MD5, cũng thiếu an toàn như một hệ thống khác dùng key strenngthening (cũng với MD5 luôn) thì có nguy hiểm hay không?  

Một khi mình đã giả định rằng hàm hash hoạt động nhanh, tức là mình đã không còn tính phụ thuộc vào nó như là một miếng vá security. Như vậy có nghĩa là mình sẽ tính đến việc sử dụng các giải pháp khác thay thế/bọc lót để chống password cracking. Như vậy thì có nguy hiểm chăng?

Như đã nói ở trên, mình công nhận là trong hầu hết trường hợp thì việc áp dụng vẫn cho hiệu quả. Tuy nhiên, mình vẫn bảo lưu 2 quan điểm rằng kĩ thuật này không có "stand the test of time", và không nên dùng với hệ thống quan trọng và cần sự ổn định lâu dài. Bạn thử tưởng tượng attacker nắm trong tay hệ thống tính toán gồm vài chục nghìn máy tính thì sao?
Mind your thought.
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 01/02/2011 17:29:44 (+0700) | #50 | 230715
jcisio
Member

[Minus]    0    [Plus]
Joined: 17/04/2004 12:04:36
Messages: 34
Offline
[Profile] [PM]
Hic, bài trên gửi đi không đọc lại, thấy sai cái thẻ /quote smilie

StarGhost wrote:
Một khi mình đã giả định rằng hàm hash hoạt động nhanh, tức là mình đã không còn tính phụ thuộc vào nó như là một miếng vá security. Như vậy có nghĩa là mình sẽ tính đến việc sử dụng các giải pháp khác thay thế/bọc lót để chống password cracking. Như vậy thì có nguy hiểm chăng?

Như đã nói ở trên, mình công nhận là trong hầu hết trường hợp thì việc áp dụng vẫn cho hiệu quả. Tuy nhiên, mình vẫn bảo lưu 2 quan điểm rằng kĩ thuật này không có "stand the test of time", và không nên dùng với hệ thống quan trọng và cần sự ổn định lâu dài. Bạn thử tưởng tượng attacker nắm trong tay hệ thống tính toán gồm vài chục nghìn máy tính thì sao?  

Chẳng hiểu bạn chống kiểu nào, ở đây đang so sánh khi có và không có key strenthening. Thôi, cứ coi như bạn dùng thêm nhiều cái khác nữa để đảm bảo không ai ngó được vào hash vậy, nên cái sai của bạn không "nguy hiểm".

Còn vài chục nghìn máy hay vài triệu máy cũng vậy thôi mà. Mặc áo giáp chống đạn đương nhiên tốt hơn áo thun ba lỗ cả chục lần. Nhưng cầm cây súng phóng lựu bắn một phát thì cũng như nhau! Còn bạn muốn bảo lưu quan điểm gì thì cứ bảo lưu, khi nào rảnh đọc mấy tài liệu về key strengthening rồi mà có thay đổi ý kiến thì vào đây nói vài dòng nhé.

@mrro & các admin: có vẻ như các Admin của HVA cần làm gì đó để cập nhật kiến thức của thành viên cho có học thuật hơn nhỉ, mặc dù nó không dành cho số đông, không thì quanh quẩn ở mấy kiến thức cũ & nhàm chán. Lâu lâu cũng có vài cái mới nhưng lại chỉ là tiểu tiết. Chứ không thì phát hiện ra padding oracle attack mà HVA lại ít người biết nó là gì thì phí lắm, muốn thảo luận chi tiết kĩ thuật lại toàn nói chuyện với người nước ngoài.
www.thongtincongnghe.com
[Up] [Print Copy]
  [Article]   Kỹ thuật tấn công Pass the Hash và cách phòng chống 27/01/2013 10:02:55 (+0700) | #51 | 273074
[Avatar]
heroandtn3
Member

[Minus]    0    [Plus]
Joined: 20/02/2010 08:47:46
Messages: 182
Location: /home
Offline
[Profile] [PM] [WWW]

radiohead wrote:

invalid-password wrote:

Sau này thì mình dùng cách hash 2 lần với khoá k ngẫu nhiên từ server. Khi client kết nối, server sẽ gửi lại một khoá k ngẫu nhiên. Client sẽ gửi
h = MD5(k, MD5(clear_text_password))
cho server. Nếu h bị capture thì không thể giải ra k và password. Nếu dùng kỹ thuật "Pass the hash" - gủi trực tiếp h đã capture được - thì cũng failed vì lần sau server sẽ gửi khoá k khác.

Bây giờ thì mình ưa thích dùng giải thuật HMAC để hash password, cho nó có chuẩn !

 


Cách của invalid-passwd sẽ bị qua mặt nếu kẻ tấn công đã từng thu được bản hass của pass trước đó (sniff từ trước khi có giải pháp thêm k, hoặc kẻ tấn công thu đc file lưu hash password của server. Vì khóa k ngẫu nhiên nhưng vẫn phải gửi clear text cho client hiểu nên việc tính ra
h= MD5 (k, MD5(clear_text_pass)) là vẫn khả thi cho dù ko cần biết clear_text_pass

Có thể sử dụng cách này
h = MD5 (clear_text_pass, k)

Vì kẻ tấn công trong quá khứ chỉ có được MD5 (clear_text_pass), và kết quả hash khác hoàn toàn so với MD5 (clear_text_pass, k) nên có thể giải quyết kiểu tấn công pass the hash (với điều kiện clear_text_pass phải đủ dài để ko thể bị đoán ngược từ bản MD5(clear_text) ).
 


Cách của radiohead (tô màu cam) em nghĩ cũng không đúng. Vì CSDL trên server không lưu trữ clear_text_pass mà chỉ lưu trữ password đã được hash, có thể là MD5(class_text_pass) cho nên việc tái tạo 1 cái h' trên server để so sánh với cái h (tô màu cam) gửi từ phía client là không thể.
Sống là thương nhưng lòng chẳng vấn vương...
br
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|