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 bảo mật side-channel attacks  XML
  [Discussion]   side-channel attacks 21/01/2011 20:28:24 (+0700) | #1 | 230019
truyennxt
Member

[Minus]    0    [Plus]
Joined: 18/09/2010 07:51:36
Messages: 17
Offline
[Profile] [PM]
Trong mấy ngày qua mình có đọc về cái kiểu tấn công này. Trong bài đọc mình thấy sơ qua ý chính của kiểu tấn công này là lợi dụng "độ trễ" (latency). Vậy "độ trễ" là gì mà attacker lại tấn công nó mà lấy đi USD ở thị trường chứng khoán. Mình có ý định lên hỏi "độ trễ" là gì, nhưng nghĩ ngẫm "nên tìm hiểu trước khi hỏi". Nên mình ngồi mạng search về cái khái niệm khó hiểu này.

Khái niệm độ trễ biểu thị quãng thời gian bạn phải chờ trước khi nhận được thứ mình cần. Theo từ điển Merriam-Webster thì latency có nghĩa là 'khoảng thời gian từ khi ra lệnh đến khi nhận được sự phản hồi' 


Mình chỉ biết là như vậy, và "theo mình nghĩ" thì khi một lệnh A được gửi đi rồi "chờ" phản hồi lại thì attacker sẽ lợi dụng thời điểm đó để có thể "can thiệp" rồi gửi phản hồi "giả". Cộng thêm có thể "chặn" phản hồi "thật".

Vậy về phượng diện "sâu" hơn của "kỹ thuật" thì attacker làm thế nào để "lợi dụng" độ trễ này?
[Up] [Print Copy]
  [Discussion]   side-channel attacks 22/01/2011 15:23:50 (+0700) | #2 | 230085
[Avatar]
WinDak
Researcher

Joined: 27/01/2002 11:15:00
Messages: 223
Offline
[Profile] [PM]

truyennxt wrote:
Trong mấy ngày qua mình có đọc về cái kiểu tấn công này. Trong bài đọc mình thấy sơ qua ý chính của kiểu tấn công này là lợi dụng "độ trễ" (latency). Vậy "độ trễ" là gì mà attacker lại tấn công nó mà lấy đi USD ở thị trường chứng khoán. Mình có ý định lên hỏi "độ trễ" là gì, nhưng nghĩ ngẫm "nên tìm hiểu trước khi hỏi". Nên mình ngồi mạng search về cái khái niệm khó hiểu này.

Khái niệm độ trễ biểu thị quãng thời gian bạn phải chờ trước khi nhận được thứ mình cần. Theo từ điển Merriam-Webster thì latency có nghĩa là 'khoảng thời gian từ khi ra lệnh đến khi nhận được sự phản hồi' 


Mình chỉ biết là như vậy, và "theo mình nghĩ" thì khi một lệnh A được gửi đi rồi "chờ" phản hồi lại thì attacker sẽ lợi dụng thời điểm đó để có thể "can thiệp" rồi gửi phản hồi "giả". Cộng thêm có thể "chặn" phản hồi "thật".

Vậy về phượng diện "sâu" hơn của "kỹ thuật" thì attacker làm thế nào để "lợi dụng" độ trễ này? 


Hiểu sai rồi, side-channel attack dựa vào các thông tin phản hồi trong xử lý thông tin ví dụ như thời gian để dự đoán các tiến trình xử lý của ứng dụng.

Một ví dụ như thế này:
input là string password nhập vào để kiểm tra

Code:
input = args;
for (k=0;k<input.length();k++) {
  if (input[k]!=password[k])  
     exit("wrong password")
  else {
     for (i=0;i<1000000;i++)  { do_something() }
  }
}


Đoạn mã trên có thể bị lỗi Side-Channel-Attack, và attacker có thể lợi dụng để tìm ra password. Thử tìm hiểu tại sao xem nhỉ ?>
-- w~ --
[Up] [Print Copy]
  [Discussion]   side-channel attacks 22/01/2011 17:16:02 (+0700) | #3 | 230091
[Avatar]
freakmind
Member

[Minus]    0    [Plus]
Joined: 26/11/2007 02:53:23
Messages: 79
Offline
[Profile] [PM]

WinDak wrote:

truyennxt wrote:
Trong mấy ngày qua mình có đọc về cái kiểu tấn công này. Trong bài đọc mình thấy sơ qua ý chính của kiểu tấn công này là lợi dụng "độ trễ" (latency). Vậy "độ trễ" là gì mà attacker lại tấn công nó mà lấy đi USD ở thị trường chứng khoán. Mình có ý định lên hỏi "độ trễ" là gì, nhưng nghĩ ngẫm "nên tìm hiểu trước khi hỏi". Nên mình ngồi mạng search về cái khái niệm khó hiểu này.

Khái niệm độ trễ biểu thị quãng thời gian bạn phải chờ trước khi nhận được thứ mình cần. Theo từ điển Merriam-Webster thì latency có nghĩa là 'khoảng thời gian từ khi ra lệnh đến khi nhận được sự phản hồi' 


Mình chỉ biết là như vậy, và "theo mình nghĩ" thì khi một lệnh A được gửi đi rồi "chờ" phản hồi lại thì attacker sẽ lợi dụng thời điểm đó để có thể "can thiệp" rồi gửi phản hồi "giả". Cộng thêm có thể "chặn" phản hồi "thật".

Vậy về phượng diện "sâu" hơn của "kỹ thuật" thì attacker làm thế nào để "lợi dụng" độ trễ này? 


Hiểu sai rồi, side-channel attack dựa vào các thông tin phản hồi trong xử lý thông tin ví dụ như thời gian để dự đoán các tiến trình xử lý của ứng dụng.

Một ví dụ như thế này:
input là string password nhập vào để kiểm tra

Code:
input = args;
for (k=0;k<input.length();k++) {
  if (input[k]!=password[k]) { 
     exit("wrong password")
  else {
     for (i=0;i<1000000;i++)  { do_something() }
  }
}


Đoạn mã trên có thể bị lỗi Side-Channel-Attack, và attacker có thể lợi dụng để tìm ra password. Thử tìm hiểu tại sao xem nhỉ ?> 


Nếu chủ topic đoán ra được đoạn mã này bị exploit thế nào thì đã không phải ngồi đặt câu hỏi ở đây rồi smilie)

Đoạn mã windak đưa thuộc vào dạng lợi dụng time information trong side channel attack. Cách exploit là dựa vào thời gian mà chương trình process mà đoán password bao gồm những kí tự nào smilie.
Ví dụ đầu tiên bạn sẽ thử cho input là a*** cho đến Z*** và đo thời gian process của từng input một, thằng nào thời gian input lâu nhất thì password sẽ chứa thằng đó, ví dụ ra là b***. Sau đó quá trình này được lặp lại với việc cho input từ ba** đến bZ** .....

Ngoài cách dùng time thì còn cách dựa và power, sound, electromagnetic ( theo như trên wiki smilie ). Nói chung side-channel attack là kiểu attack mà dựa vào những yếu tố "bên lề" chứ không dựa vào lỗi trực tiếp của hệ thống.
[Up] [Print Copy]
  [Discussion]   side-channel attacks 22/01/2011 17:20:35 (+0700) | #4 | 230092
truyennxt
Member

[Minus]    0    [Plus]
Joined: 18/09/2010 07:51:36
Messages: 17
Offline
[Profile] [PM]
WinDak: "side-channel attack dựa vào các thông tin phản hồi trong xử lý thông tin ví dụ như thời gian để dự đoán các tiến trình xử lý của ứng dụng. "

me: Có nghĩa là attacker tấn công vào phần "xác nhận" hoặc có thể hiểu là giai đoạn "khớp" thông tin đúng không bạn.?

ví dụ: 1 trang web yêu cầu đăng nhập để sử dụng hệ thống thì sẽ có "Bảng login". Và khi nhập vào gửi yêu cầu thì sẽ có giai đoạn là "xử lý nhập liệu". Attacker sẽ lợi dụng "code" của giai đoạn xử lý nhập liệu bị lỗi đâu đó mà attack.

hiểu vậy có đúng không nhỉ?

freakmind: "Ví dụ đầu tiên bạn sẽ thử cho input là a*** cho đến Z*** và đo thời gian process của từng input một, thằng nào thời gian input lâu nhất thì password sẽ chứa thằng đó, ví dụ ra là b***. Sau đó quá trình này được lặp lại với việc cho input từ ba** đến bZ** ....."

me: Mình đã đọc qua cái timing này và cộng thêm bạn phân tích điểm này mình hiểu thêm về nó. Thanks.
[Up] [Print Copy]
  [Discussion]   side-channel attacks 22/01/2011 20:32:11 (+0700) | #5 | 230100
[Avatar]
WinDak
Researcher

Joined: 27/01/2002 11:15:00
Messages: 223
Offline
[Profile] [PM]
Bạn thử tìm hiểu cách khai thác đoãn mã mà mình post thì sẽ hiểu. Thử viết một đoạn chương trình để exploit xem sao


me: Có nghĩa là attacker tấn công vào phần "xác nhận" hoặc có thể hiểu là giai đoạn "khớp" thông tin đúng không bạn.?
 


Attacker có thể tấn công vào bất cứ phần nào mà attacker nắm được yếu điểm trong design. Attack này đòi hỏi phải biết rõ về hệ thống ( vd open source ) thì mới thực hiện được.
Cách exploit thế nào, tận dụng ra sao thì tùy trường hợp cụ thể. Nên đọc thêm wiki hoặc google chứ đừng phán đoán mà không có cơ sở
-- w~ --
[Up] [Print Copy]
  [Discussion]   side-channel attacks 23/01/2011 09:19:17 (+0700) | #6 | 230125
lamer
Elite Member

[Minus]    0    [Plus]
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
[Profile] [PM]

truyennxt wrote:
Mình chỉ biết là như vậy, và "theo mình nghĩ" thì khi một lệnh A được gửi đi rồi "chờ" phản hồi lại thì attacker sẽ lợi dụng thời điểm đó để có thể "can thiệp" rồi gửi phản hồi "giả". Cộng thêm có thể "chặn" phản hồi "thật". 


Đây là định nghĩa của "active attack".

"Side-channel attack", như freakmind diễn đạt, là

freakmind wrote:
kiểu attack mà dựa vào những yếu tố "bên lề" chứ không dựa vào lỗi trực tiếp của hệ thống. 


Tưởng tượng như muốn đi tìm hiểu thông tin về bạn gái mà không dám hỏi trực tiếp bạn gái thì chúng ta đi theo họ quan sát họ làm cái gì, hay hỏi han hàng xóm của bạn gái. Những thông tin thu thập được dĩ nhiên là không đảm bảo hoàn toàn chính xác vì nó không phải là thông tin do chính người bạn gái cho ta biết, nhưng tỷ lệ đúng của nó đủ cao để ta có thể tin vào chúng.

Ví dụ (hơi phi thật tế) của WinDak thể hiện rõ sự khác biệt giữa hai luồng thực thi của dữ liệu đúng, và dữ liệu sai. Chính vì vậy, hầu hết những người lập trình kinh nghiệm sẽ không dùng hàm strcmp() để so sánh password với nhau mà sẽ phải sử dụng một hàm tự viết để đảm bảo rằng kết quả của việc so sánh không làm lộ thông tin về dữ liệu so sánh.

Chủ chủ đề có muốn tự viết ra một đoạn mã so sánh chuỗi như vậy rồi cùng thảo luận tiếp không?
[Up] [Print Copy]
  [Discussion]   side-channel attacks 23/01/2011 10:32:15 (+0700) | #7 | 230129
truyennxt
Member

[Minus]    0    [Plus]
Joined: 18/09/2010 07:51:36
Messages: 17
Offline
[Profile] [PM]
Mình cũng đã đọc và biết là kiểu tấn công này dựa vào yếu tố bên lề như:
--Việc phát ra sóng điện từ của màn hình....

lamer: Chủ chủ đề có muốn tự viết ra một đoạn mã so sánh chuỗi như vậy rồi cùng thảo luận tiếp không?

me: Rất mong muốn được thảo luận tiếp chứ smilie . Mình đang cố gắng học hỏi mà. Mình cũng đang rảnh nên đang ngồi mạng nghiên cứu xem có thể viết được đoạn mã không đây. Có gì mình sẽ hỏi và mong nhận được sự giúp đỡ.
[Up] [Print Copy]
  [Discussion]   side-channel attacks 23/01/2011 14:55:44 (+0700) | #8 | 230146
lamer
Elite Member

[Minus]    0    [Plus]
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
[Profile] [PM]
Chủ thớt viết thử đoạn mã so sánh hai chuỗi đi.
[Up] [Print Copy]
  [Discussion]   side-channel attacks 23/01/2011 19:22:59 (+0700) | #9 | 230157
cr4zyb0y
Member

[Minus]    0    [Plus]
Joined: 27/05/2010 11:50:30
Messages: 51
Offline
[Profile] [PM]

lamer wrote:
Chủ thớt viết thử đoạn mã so sánh hai chuỗi đi. 


Em gửi một đoạn được không, anh lamer ? chủ topic ? smilie
[Up] [Print Copy]
  [Discussion]   side-channel attacks 23/01/2011 20:32:49 (+0700) | #10 | 230163
truyennxt
Member

[Minus]    0    [Plus]
Joined: 18/09/2010 07:51:36
Messages: 17
Offline
[Profile] [PM]
to cr4zyb0y: Rất vui nếu bạn đã viết xong thì hãy gửi cho mọi người xem.

To lamer: Em thực sự không phải dân chuyên cntt smilie . Em đang theo học Banking và đang muốn học thêm cntt. Vì thế anh bảo em viết code thì em ko thể viết ngay mà phải "đọc hiểu" đã anh ạ .
[Up] [Print Copy]
  [Discussion]   side-channel attacks 23/01/2011 23:06:24 (+0700) | #11 | 230176
cr4zyb0y
Member

[Minus]    0    [Plus]
Joined: 27/05/2010 11:50:30
Messages: 51
Offline
[Profile] [PM]

truyennxt wrote:
to cr4zyb0y: Rất vui nếu bạn đã viết xong thì hãy gửi cho mọi người xem.

To lamer: Em thực sự không phải dân chuyên cntt smilie . Em đang theo học Banking và đang muốn học thêm cntt. Vì thế anh bảo em viết code thì em ko thể viết ngay mà phải "đọc hiểu" đã anh ạ . 


Code:
ori_pass = "AAA"

def check_pass(input):
        i = 0
        for c in ori_pass :
                if(c != input[i]):
                        return False
                else :
                        i = i + 1
        return True

if __name__ == '__main__':
        input = str(raw_input())
        if (len(input) == len(ori_pass)) and check_pass(input):
                print "You got it !"


Code đây, ai thử attack đi smilie
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 00:27:08 (+0700) | #12 | 230181
[Avatar]
freakmind
Member

[Minus]    0    [Plus]
Joined: 26/11/2007 02:53:23
Messages: 79
Offline
[Profile] [PM]

cr4zyb0y wrote:

truyennxt wrote:
to cr4zyb0y: Rất vui nếu bạn đã viết xong thì hãy gửi cho mọi người xem.

To lamer: Em thực sự không phải dân chuyên cntt smilie . Em đang theo học Banking và đang muốn học thêm cntt. Vì thế anh bảo em viết code thì em ko thể viết ngay mà phải "đọc hiểu" đã anh ạ . 


Code:
ori_pass = "AAA"

def check_pass(input):
        i = 0
        for c in ori_pass :
                if(c != input[i]):
                        return False
                else :
                        i = i + 1
        return True

if __name__ == '__main__':
        input = str(raw_input())
        if (len(input) == len(ori_pass)) and check_pass(input):
                print "You got it !"


Code đây, ai thử attack đi smilie  


Bạn biết strcmp hoạt động theo cơ chế nào không?
Về mặt cơ bản thì strcmp nó cho thời gian tính toán "linear" với từng cụm password khác nhau, hay nói cách khác là strcmp nó làm thời gian tính toán của cụm password đúng và cụm password không đúng là khác nhau.
Cái code của bạn về mặt cơ bản là cũng "linear" như cái strcmp vậy, đơn giản vì khi cái dòng if của bạn gặp password đúng thì nó return luôn, chả hiểu bạn sướng gì ở cái dòng màu đỏ nữa
Lối timing attack của strcmp đơn giản chỉ cần implement một cái hàm đại loại như sau thì có thể "san bằng" thời gian tính của mọi chuỗi nhập vào
Code:
for (i = 0; i < sizeof(secret_passwd); i++) {
    result &= (s[i] == secret_passwd[i]); 
}
return result;


P/S: chủ topic có thể tham khảo thêm cái file này mình google được, cảm thấy khá là dễ hiểu
http://www.google.com/url?sa=t&source=web&cd=1&sqi=2&ved=0CBIQFjAA&url=http%3A%2F%2Fwww.cs.hmc.edu%2F~mike%2Fpublic_html%2Fcourses%2Fsecurity%2Fs06%2Fprojects%2Fdan.pdf&rct=j&q=strcmp%20timing%20attack&ei=YXM8TZSRK4fRcYzfjYUH&usg=AFQjCNHLiXklpwCCRE-epwd8eoDcxVNyuQ&sig2=Bp7URzX2Ara94a4Gqg5u1Q&cad=rja



[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 07:12:00 (+0700) | #13 | 230186
cr4zyb0y
Member

[Minus]    0    [Plus]
Joined: 27/05/2010 11:50:30
Messages: 51
Offline
[Profile] [PM]

freakmind wrote:

cr4zyb0y wrote:

truyennxt wrote:
to cr4zyb0y: Rất vui nếu bạn đã viết xong thì hãy gửi cho mọi người xem.

To lamer: Em thực sự không phải dân chuyên cntt smilie . Em đang theo học Banking và đang muốn học thêm cntt. Vì thế anh bảo em viết code thì em ko thể viết ngay mà phải "đọc hiểu" đã anh ạ . 


Code:
ori_pass = "AAA"

def check_pass(input):
        i = 0
        for c in ori_pass :
                if(c != input[i]):
                        return False
                else :
                        i = i + 1
        return True

if __name__ == '__main__':
        input = str(raw_input())
        if (len(input) == len(ori_pass)) and check_pass(input):
                print "You got it !"


Code đây, ai thử attack đi smilie  


Bạn biết strcmp hoạt động theo cơ chế nào không?
Về mặt cơ bản thì strcmp nó cho thời gian tính toán "linear" với từng cụm password khác nhau, hay nói cách khác là strcmp nó làm thời gian tính toán của cụm password đúng và cụm password không đúng là khác nhau.
Cái code của bạn về mặt cơ bản là cũng "linear" như cái strcmp vậy, đơn giản vì khi cái dòng if của bạn gặp password đúng thì nó return luôn, chả hiểu bạn sướng gì ở cái dòng màu đỏ nữa
Lối timing attack của strcmp đơn giản chỉ cần implement một cái hàm đại loại như sau thì có thể "san bằng" thời gian tính của mọi chuỗi nhập vào
Code:
for (i = 0; i < sizeof(secret_passwd); i++) {
    result &= (s[i] == secret_passwd[i]); 
}
return result;


P/S: chủ topic có thể tham khảo thêm cái file này mình google được, cảm thấy khá là dễ hiểu
http://www.google.com/url?sa=t&source=web&cd=1&sqi=2&ved=0CBIQFjAA&url=http%3A%2F%2Fwww.cs.hmc.edu%2F~mike%2Fpublic_html%2Fcourses%2Fsecurity%2Fs06%2Fprojects%2Fdan.pdf&rct=j&q=strcmp%20timing%20attack&ei=YXM8T>ZSRK4fRcYzfjYUH&usg=AFQjCNHLiXklpwCCRE-epwd8eoDcxVNyuQ&sig2=Bp7URzX2Ara94a4Gqg5u1Q&cad=rja



 


Đó chỉ là một đoạn code check password thôi, không có yêu cầu code này không bị lỗi nha. Nên mình thích viết vậy đấy, chủ topic muốn có một ví dụ để thử nghiệm mà smilie) . Và nếu không biết strcmp hoạt động thế nào, thì mình đã chẳng viết như trên smilie
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 08:01:56 (+0700) | #14 | 230195
lamer
Elite Member

[Minus]    0    [Plus]
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
[Profile] [PM]

freakmind wrote:
Code:
for (i = 0; i < sizeof(secret_passwd); i++) {
    result &= (s[i] == secret_passwd[i]); 
}
return result;

 


Khi đã nói về side channel tức là ta đang nói về cách hiện thức hoá cụ thể của một vấn đề. Mà nhìn vào đoạn code này thì tính đúng đắn, 0 hay 1, của hiện thực không còn nữa.

Giả sử như result là 0 ngay từ đầu thì hàm này trả về cái gì? Đó là chưa kể đến việc có thể bị SEGFAULT vì truy cập vào vùng nhớ chưa xác định trong trường hợp chuỗi s ngắn hơn secret_passwd. Nhưng mà về vấn đề đang bàn ở đây là code vậy được rồi smilie.
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 08:59:20 (+0700) | #15 | 230201
cr4zyb0y
Member

[Minus]    0    [Plus]
Joined: 27/05/2010 11:50:30
Messages: 51
Offline
[Profile] [PM]
Code:
http://crazyboy.bshellz.net/cgi-bin/checkpass.py


đây, cụ thể lun, lấy pass đi nào smilie
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 09:24:10 (+0700) | #16 | 230205
[Avatar]
gamma95
Researcher

Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa&quot;&gt;
Offline
[Profile] [PM] [ICQ]
Code:
if md5(input_password) == md5(secret_password):
    print "Mày đoán trúng password rồi"
else:
    print "Mày đoán lại đi"

Em nghĩ đây là cái chống side channel đơn giản nhất smilie
Cánh chym không mỏi
lol
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 09:48:03 (+0700) | #17 | 230211
[Avatar]
gamma95
Researcher

Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa&quot;&gt;
Offline
[Profile] [PM] [ICQ]

cr4zyb0y wrote:
Code:
http://crazyboy.bshellz.net/cgi-bin/checkpass.py


đây, cụ thể lun, lấy pass đi nào smilie  

đưa cái shell đi, làm trên localhost nó benchmark thời gian chính xác hơn, làm online trên 1 cái freehost có vấn đề trên đường truyền ức chế
Cánh chym không mỏi
lol
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 16:01:20 (+0700) | #18 | 230244
[Avatar]
WinDak
Researcher

Joined: 27/01/2002 11:15:00
Messages: 223
Offline
[Profile] [PM]
Lý thuyết là thế thôi, chứ thực tế theo mình attack được là cả một vấn đề. Trừ phi có sự khác biệt thực sự 1s vs 100s chứ không thì các yếu tố gây nhiễu dễ dàng làm sai lệch tính toán. Ví dụ như gamma vừa nói bench trên local server dễ hơn rất nhiều so với remote

Ngay cả Crack RSA-1024 bằng side-channel attack cũng phải chui vào cái server room mà làm thì mới được smilie

http://tech.icrontic.com/articles/1024-bit-rsa-not-cracked-as-engadget-claims/
-- w~ --
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 19:10:45 (+0700) | #19 | 230256
[Avatar]
freakmind
Member

[Minus]    0    [Plus]
Joined: 26/11/2007 02:53:23
Messages: 79
Offline
[Profile] [PM]
@lamer: Srry vì em không vứt đầy đủ code lên, em chỉ đưa cái cần để chứng minh thôi.

cr4zyb0y wrote:

Đó chỉ là một đoạn code check password thôi, không có yêu cầu code này không bị lỗi nha. Nên mình thích viết vậy đấy, chủ topic muốn có một ví dụ để thử nghiệm mà smilie) . Và nếu không biết strcmp hoạt động thế nào, thì mình đã chẳng viết như trên smilie 


Bạn biết thì bày tỏ luôn, nếu muốn chủ topic thử nghiệm thì nói rõ ra là đoạn code này để thử nghiệm, còn nếu bạn muốn tỏ vẻ thì mình chịu smilie

Btw: Bạn biết strcmp hoạt động thế nào bạn thử nói xem, vứt cả source trong thư viện string.h lên để chứng minh cho chủ topic nữa nhé smilie .
P/S: cũng phải cám ơn bạn mình mới biết trang bzshell, trước đó không biết trang này smilie

@chủ topic: cái lỗi mà thảo luận từ đầu topic là một cái lỗi quá đơn giản, trong cái link mình đưa ở trên có thêm lỗi để crack rsa đó, có lẽ đọc cái đó cũng hiểu ra đc tg đối.
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 20:18:27 (+0700) | #20 | 230259
truyennxt
Member

[Minus]    0    [Plus]
Joined: 18/09/2010 07:51:36
Messages: 17
Offline
[Profile] [PM]
Thanks mọi người, em đang "đọc và nghiền ngẫm" những cái cơ bản nhất để có thể hiểu được.
Có vấn đề gì mới trong phần này mong mọi người chỉ giáo thêm. smilie
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 20:25:38 (+0700) | #21 | 230261
cr4zyb0y
Member

[Minus]    0    [Plus]
Joined: 27/05/2010 11:50:30
Messages: 51
Offline
[Profile] [PM]

freakmind wrote:
@lamer: Srry vì em không vứt đầy đủ code lên, em chỉ đưa cái cần để chứng minh thôi.

cr4zyb0y wrote:

Đó chỉ là một đoạn code check password thôi, không có yêu cầu code này không bị lỗi nha. Nên mình thích viết vậy đấy, chủ topic muốn có một ví dụ để thử nghiệm mà smilie) . Và nếu không biết strcmp hoạt động thế nào, thì mình đã chẳng viết như trên smilie 


Bạn biết thì bày tỏ luôn, nếu muốn chủ topic thử nghiệm thì nói rõ ra là đoạn code này để thử nghiệm, còn nếu bạn muốn tỏ vẻ thì mình chịu smilie

Btw: Bạn biết strcmp hoạt động thế nào bạn thử nói xem, vứt cả source trong thư viện string.h lên để chứng minh cho chủ topic nữa nhé smilie .
P/S: cũng phải cám ơn bạn mình mới biết trang bzshell, trước đó không biết trang này smilie

@chủ topic: cái lỗi mà thảo luận từ đầu topic là một cái lỗi quá đơn giản, trong cái link mình đưa ở trên có thêm lỗi để crack rsa đó, có lẽ đọc cái đó cũng hiểu ra đc tg đối. 


tỏ vẻ với bạn làm mẹ gì, rách việc .

Còn thích source à, đây :

Code:
/* Copyright (c) Microsoft Corporation. All rights reserved. */
#include <mmlite.h>
#include <tchar.h>

#if defined(_MSC_VER) && !defined(_DEBUG)
#pragma function(strcmp)
#endif

#if defined(_MSC_VER) && (_MSC_VER != 1400 || !defined(ppc)) && (_MSC_VER != 1310) && (_MSC_VER != 1200) && defined(_UNICODE)
#pragma function(wcscmp)
#endif

/* Compare strings pointed by pSrt1, pSrt2.  Return 0 if same, < 0 if pStr1
 * less then pStr2, > 0 otherwise.
 */
int _tcscmp(const _TCHAR *pStr1, const _TCHAR *pStr2)
{
    _TCHAR c1, c2;
    INT v;

    do {
        c1 = *pStr1++;
        c2 = *pStr2++;
        /* the casts are necessary when pStr1 is shorter & char is signed */
        v = (UINT)c1 - (UINT)c2;
    } while ((v == 0) && (c1 != '\0'));

    return v;
}


copyright @ Mircosoft nhá =]]

@g4mm4 : em hông có host, mà cái time link trên nó trả về khá ổn định đó anh, thử đi nhé smilie
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 21:44:56 (+0700) | #22 | 230265
[Avatar]
freakmind
Member

[Minus]    0    [Plus]
Joined: 26/11/2007 02:53:23
Messages: 79
Offline
[Profile] [PM]

cr4zyb0y wrote:



tỏ vẻ với bạn làm mẹ gì, rách việc .

Còn thích source à, đây :

Code:
/* Copyright (c) Microsoft Corporation. All rights reserved. */
#include <mmlite.h>
#include <tchar.h>

#if defined(_MSC_VER) && !defined(_DEBUG)
#pragma function(strcmp)
#endif

#if defined(_MSC_VER) && (_MSC_VER != 1400 || !defined(ppc)) && (_MSC_VER != 1310) && (_MSC_VER != 1200) && defined(_UNICODE)
#pragma function(wcscmp)
#endif

/* Compare strings pointed by pSrt1, pSrt2.  Return 0 if same, < 0 if pStr1
 * less then pStr2, > 0 otherwise.
 */
int _tcscmp(const _TCHAR *pStr1, const _TCHAR *pStr2)
{
    _TCHAR c1, c2;
    INT v;

    do {
        c1 = *pStr1++;
        c2 = *pStr2++;
        /* the casts are necessary when pStr1 is shorter & char is signed */
        v = (UINT)c1 - (UINT)c2;
    } while ((v == 0) && (c1 != '\0'));

    return v;
}


copyright @ Mircosoft nhá =]]

@g4mm4 : em hông có host, mà cái time link trên nó trả về khá ổn định đó anh, thử đi nhé smilie 


Những người trình độ chưa ra đâu vào đâu mà có cách nói năng như bạn chắc khó mà tiến được, khuyên chân thành smilie
Trở lại vấn đề chính, cái mình muốn nói khi mình nói bạn show code của strcmp là vì strcmp trong glibc nó được implemented bằng assembly code nên mới bảo bạn show và thử phân tích thôi, ai dè bạn lại code bằng window làm mất cái để phân tích smilie



P/S: gamma có bảo bạn có host không hay đâu, gamma bảo bạn đưa cái python code của bạn để test trên localhost cơ mà?? Em hok có host là em hok có localhost à smilie
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 21:58:12 (+0700) | #23 | 230266
cr4zyb0y
Member

[Minus]    0    [Plus]
Joined: 27/05/2010 11:50:30
Messages: 51
Offline
[Profile] [PM]

freakmind wrote:

cr4zyb0y wrote:



tỏ vẻ với bạn làm mẹ gì, rách việc .

Còn thích source à, đây :

Code:
/* Copyright (c) Microsoft Corporation. All rights reserved. */
#include <mmlite.h>
#include <tchar.h>

#if defined(_MSC_VER) && !defined(_DEBUG)
#pragma function(strcmp)
#endif

#if defined(_MSC_VER) && (_MSC_VER != 1400 || !defined(ppc)) && (_MSC_VER != 1310) && (_MSC_VER != 1200) && defined(_UNICODE)
#pragma function(wcscmp)
#endif

/* Compare strings pointed by pSrt1, pSrt2.  Return 0 if same, < 0 if pStr1
 * less then pStr2, > 0 otherwise.
 */
int _tcscmp(const _TCHAR *pStr1, const _TCHAR *pStr2)
{
    _TCHAR c1, c2;
    INT v;

    do {
        c1 = *pStr1++;
        c2 = *pStr2++;
        /* the casts are necessary when pStr1 is shorter & char is signed */
        v = (UINT)c1 - (UINT)c2;
    } while ((v == 0) && (c1 != '\0'));

    return v;
}


copyright @ Mircosoft nhá =]]

@g4mm4 : em hông có host, mà cái time link trên nó trả về khá ổn định đó anh, thử đi nhé smilie 


Những người trình độ chưa ra đâu vào đâu mà có cách nói năng như bạn chắc khó mà tiến được, khuyên chân thành smilie
Trở lại vấn đề chính, cái mình muốn nói khi mình nói bạn show code của strcmp là vì strcmp trong glibc nó được implemented bằng assembly code nên mới bảo bạn show và thử phân tích thôi, ai dè bạn lại code bằng window làm mất cái để phân tích smilie



P/S: gamma có bảo bạn có host không hay đâu, gamma bảo bạn đưa cái python code của bạn để test trên localhost cơ mà?? Em hok có host là em hok có localhost à smilie
 


bây giờ thì rỏ thèn nào thích tỏ vẻ rồi nhé smilie)
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 22:10:00 (+0700) | #24 | 230268
[Avatar]
freakmind
Member

[Minus]    0    [Plus]
Joined: 26/11/2007 02:53:23
Messages: 79
Offline
[Profile] [PM]

cr4zyb0y wrote:

bây giờ thì rỏ thèn nào thích tỏ vẻ rồi nhé smilie


Tớ vốn không thích tranh cãi nhưng tớ muốn trình bày rõ một cái là tớ không có thói quen tỏ vẻ trên 4rum smilie, tỏ vẻ ngoài đời thích hơn nhiều chứ, 4rum có ai biết mình là ai đâu.
Tớ bỏ thời gian ra phân tích, tìm tài liệu, mục đích cuối cùng là chia sẻ cái tớ biết, còn bạn xem bạn làm cái gì nhé :vứt lên đoạn code rồi cười khẩy, phân tích thì không phân tích, mục đích bạn tham gia topic này làm gì vậy, tự bạn nghĩ nhé???
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 22:20:40 (+0700) | #25 | 230270
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Thôi nào bình tĩnh đi mấy bồ smilie hai bồ đang thảo luận rất đúng hướng về vấn đề side-channel attack mà smilie

Nhận tiện thảo luận về vấn đề Side-Channel attack, tớ thắc mắc không rõ Social Engineering có phải là một dạng Side-Channel attack ko ? vì nó cũng không tấn công ngay vào trực diện đối tượng mà tấn công các đối tượng gián tiếp smilie
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 22:32:58 (+0700) | #26 | 230272
[Avatar]
freakmind
Member

[Minus]    0    [Plus]
Joined: 26/11/2007 02:53:23
Messages: 79
Offline
[Profile] [PM]

xnohat wrote:
Thôi nào bình tĩnh đi mấy bồ smilie hai bồ đang thảo luận rất đúng hướng về vấn đề side-channel attack mà smilie

Nhận tiện thảo luận về vấn đề Side-Channel attack, tớ thắc mắc không rõ Social Engineering có phải là một dạng Side-Channel attack ko ? vì nó cũng không tấn công ngay vào trực diện đối tượng mà tấn công các đối tượng gián tiếp smilie 


Theo như wiki thì social engineering không được tính vào side-channel attack , và theo cá nhân mình thì social engineering không nên xếp vào bất kì cái gì gọi là "attack" hết mà nên xếp vào loại "fraud" vì nó mang tính xã hội và "bẩn" hơn smilie

Code:
Attempts to break a cryptosystem by deceiving or coercing people 
with legitimate access are not typically called side-channel attacks


[Up] [Print Copy]
  [Discussion]   side-channel attacks 24/01/2011 22:58:46 (+0700) | #27 | 230276
cr4zyb0y
Member

[Minus]    0    [Plus]
Joined: 27/05/2010 11:50:30
Messages: 51
Offline
[Profile] [PM]

freakmind wrote:

cr4zyb0y wrote:

bây giờ thì rỏ thèn nào thích tỏ vẻ rồi nhé smilie


Tớ vốn không thích tranh cãi nhưng tớ muốn trình bày rõ một cái là tớ không có thói quen tỏ vẻ trên 4rum smilie, tỏ vẻ ngoài đời thích hơn nhiều chứ, 4rum có ai biết mình là ai đâu.
Tớ bỏ thời gian ra phân tích, tìm tài liệu, mục đích cuối cùng là chia sẻ cái tớ biết, còn bạn xem bạn làm cái gì nhé :vứt lên đoạn code rồi cười khẩy, phân tích thì không phân tích, mục đích bạn tham gia topic này làm gì vậy, tự bạn nghĩ nhé???
 


phân tích thì ở trên mấy bạn đã phân tích rồi ,còn trước khi post code là mình hỏi rồi nhé, và chủ topic bảo có code thì post lên, mình post lên thôi, việc gì phải xoắn nhỉ smilie

@g4mm4 : code đây anh

Code:
#!/usr/bin/python
from datetime import datetime
import cgi
ori_pass = "xxxxxxxxxxxxxx"

def get_param(form, param,default=None):
    if form.has_key(param):
        return form.getvalue(param)
    return default

def check_pass(input):
        i = 0
        for c in ori_pass :
                if(c != input[i]):
                        return False
                else :
                        i = i + 1
        return True

def check_secure(input):
        result = True
        i = 0
        if len(input) == 0 :
                return False
        if (len(input) > len(ori_pass)) or (len(input) < len(ori_pass)):
                input = ori_pass
                result = False
        for c in ori_pass :
                result = result & (input[i] == c)
                i = i + 1
        return result

if __name__ == '__main__':
        print "Content-Type: text/html"     # header
        print                               # blank line
        print """<html>
                <head>
                        <title>Got the pass, bitch !</title>
                </head>
                <body>
                <h1><font color="red"> Got the pass , win the game !</font> </h1>
                <form action="?" method="POST">
                    <table >
                        <tr>
                            <td style="text-align:right">Password : </td>
                            <td><input type="text" value="" size="10" name="pass" /></td>
                        </tr>
                    </table>
                    <input type="submit" value="Check normal" name="checkpass">
                    <input type="submit" value="Check secure" name="checkpass">
                </form>
                </body>
                </html>
                """
        form = cgi.FieldStorage()

        command = get_param(form,"checkpass")
        if command == "Check normal" :
                input_pass = get_param(form,"pass")
                start = datetime.now().microsecond
                if (len(input_pass) == len(ori_pass)) and check_pass(input_pass):
                        print "<p>You got it!</p>"
                times = datetime.now().microsecond - start
                print "<script>alert(\' spent "+ str(times) +" microseconds\')</script>"
        elif command == "Check secure" :
                input_pass = get_param(form,"pass")
                start = datetime.now().microsecond
                if check_secure(input_pass):
                        print "<p>You got it!</p>"
                times = datetime.now().microsecond - start
                print "<script>alert(\' spent "+ str(times) +" microseconds\')</script>"


p/s : theo mình social engingeering đánh trực tiếp vào đối tượng, nên không thể nói "side-channel" đc
[Up] [Print Copy]
  [Discussion]   side-channel attacks 25/01/2011 00:21:55 (+0700) | #28 | 230281
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Mọi người dĩ hoà vi quý, mỗi người bớt một chút để tiếp tục thảo luận nhé smilie

Social Engineering theo tôi thì nó bem gián tiếp chứ crazyboy, đối tượng trực tiếp nhắm tới là hệ thống thông tin, còn đối tượng bị tấn công trực tiếp lại là con người điều hành hệ thống đó
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Discussion]   side-channel attacks 25/01/2011 06:24:06 (+0700) | #29 | 230285
cr4zyb0y
Member

[Minus]    0    [Plus]
Joined: 27/05/2010 11:50:30
Messages: 51
Offline
[Profile] [PM]
với side channel attack, có 3 yếu tố chính : kẻ tấn công, đối tượng để khai thác thông tin, và thông tin (bao gồm cách thức khai thác, lỗi khai thác và loại thông tin bị lộ) . trong đó, việc gián tiếp, trực tiếp là nói đến cách thức lấy thông tin và thông tin bị lộ.
Với side channel attack, với cách thức lấy thông tin nhất định, thông tin bị lộ là bất đắt dĩ và nằm ngoài tầm kiểm soát của "hoạt động" ấy . Còn với Social engineering thì khác, cách thức lấy thông tin và thông tin bị lộ là trực tiếp, kẻ tấn công , bằng các biện pháp khác nhau mà khai thác thông tin từ người bị tấn công (người bị tấn công chủ động đưa các thông tin đó ra)

mà thấy tự nhiên bàn chuyện social engineering, nhạt quá . có bạn nào break cái password mình chưa :-"
[Up] [Print Copy]
  [Discussion]   side-channel attacks 25/01/2011 07:46:52 (+0700) | #30 | 230290
[Avatar]
AIO
Member

[Minus]    0    [Plus]
Joined: 21/02/2008 23:44:02
Messages: 127
Offline
[Profile] [PM]

cr4zyb0y wrote:
người bị tấn công chủ động đưa các thông tin đó ra 

Cái này có đúng không nhỉ smilie

Theo em, side channel attack và social engineering đem ra so có hơi kì lạ smilie , một đằng là con người, một đằng là hệ thống mà nhể smilie
chẳng ai nghĩ gì về mình cả
[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|