در این مطلب، ویدئو شکستن رمزهای عبور تنها با استفاده از زمان پاسخ | پایتون امن با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:09:19
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,160 –> 00:00:02,320
سلام و خوش آمدید من جیمز مورفی هستم و
2
00:00:02,320 –> 00:00:04,240
در
3
00:00:04,240 –> 00:00:06,080
4
00:00:06,080 –> 00:00:08,639
این ویدیو به لطف حامی این ویدیو، یک
5
00:00:08,639 –> 00:00:09,519
6
00:00:09,519 –> 00:00:11,679
پلت فرم توسعه کامل مبتنی بر مرورگر را شکست خواهیم داد
7
00:00:11,679 –> 00:00:13,280
که به شما امکان می دهد در پایان برنامه های وب را با چیزی جز
8
00:00:13,280 –> 00:00:14,080
9
00:00:14,080 –> 00:00:16,400
پایتون در مورد سندان بسازید. از ویدیو
10
00:00:16,400 –> 00:00:18,720
متاسفم که هر هکر ناخواسته را
11
00:00:18,720 –> 00:00:19,359
در میان جمعیت ناامید میکنم،
12
00:00:19,359 –> 00:00:21,199
اما این یک آموزش هک نیست،
13
00:00:21,199 –> 00:00:22,400
14
00:00:22,400 –> 00:00:23,760
پس از تماشای این ویدیو،
15
00:00:23,760 –> 00:00:25,439
نمیتوانید فقط بیرون بروید و
16
00:00:25,439 –> 00:00:26,960
دوستان یا همکاران خود یا
17
00:00:26,960 –> 00:00:28,800
پایگاههای داده دولتی را هک
18
00:00:28,800 –> 00:00:30,080
کنید. از این
19
00:00:30,080 –> 00:00:33,040
ویدیو میخواهیم به عمق مطلب برسم
20
00:00:33,040 –> 00:00:35,040
، برخی از چیزهایی که
21
00:00:35,040 –> 00:00:36,640
22
00:00:36,640 –> 00:00:40,160
نوشتن نرمافزار ایمن را فوقالعاده دشوار میکنند، به نظر من
23
00:00:40,160 –> 00:00:41,920
، بزرگترین تفاوت بین
24
00:00:41,920 –> 00:00:44,399
روش مدلسازی کد در دنیای تئوریک
25
00:00:44,399 –> 00:00:45,200
26
00:00:45,200 –> 00:00:47,760
و چگونگی آن است. در واقع در دنیای
27
00:00:47,760 –> 00:00:49,039
واقعی مقدار زمانی است
28
00:00:49,039 –> 00:00:51,920
که کد طول می کشد تا در دنیای واقعی به خوبی اجرا شود.
29
00:00:51,920 –> 00:00:52,640
30
00:00:52,640 –> 00:00:54,960
31
00:00:54,960 –> 00:00:55,680
32
00:00:55,680 –> 00:00:57,280
33
00:00:57,280 –> 00:00:59,440
ریتمی که برای اجرای
34
00:00:59,440 –> 00:01:01,760
اینها انجام می شود، حملات زمان بندی نامیده می شوند، این همان
35
00:01:01,760 –> 00:01:03,199
چیزی است که ما در این
36
00:01:03,199 –> 00:01:03,840
ویدیو بررسی می
37
00:01:03,840 –> 00:01:05,840
کنیم، ما قادر خواهیم بود رمز عبوری با
38
00:01:05,840 –> 00:01:07,200
20 کاراکتر را
39
00:01:07,200 –> 00:01:10,000
در کوتاه ترین زمان ممکن بشکنیم، بنابراین بیایید شروع
40
00:01:10,000 –> 00:01:11,200
کنیم سیستمی که می خواهیم انجام دهیم
41
00:01:11,200 –> 00:01:12,560
هک در این ویدیو
42
00:01:12,560 –> 00:01:15,119
خوب است من یک سرور دارم که در واقع
43
00:01:15,119 –> 00:01:16,799
فقط یک تابع است
44
00:01:16,799 –> 00:01:20,000
و همه این کارها این است که رمز عبور را به کاربر
45
00:01:20,000 –> 00:01:21,680
و مهمان خود منتقل می کنم
46
00:01:21,680 –> 00:01:23,840
و می خواهد رمز عبور را
47
00:01:23,840 –> 00:01:25,920
در پایگاه داده جستجو کند که در واقع فقط یک
48
00:01:25,920 –> 00:01:28,479
فرهنگ لغت در اینجا است.
49
00:01:28,479 –> 00:01:30,560
و بعد از اینکه آن را در پایگاه داده جستجو کرد،
50
00:01:30,560 –> 00:01:32,079
تنها کاری که انجام می دهد این است که به شما بگوید
51
00:01:32,079 –> 00:01:34,079
که آیا حدس شما با
52
00:01:34,079 –> 00:01:36,000
رمز عبور واقعی
53
00:01:36,000 –> 00:01:37,520
در این ویدیو برابر بود یا خیر، ما
54
00:01:37,520 –> 00:01:39,360
از دیدگاه مهاجم استفاده می کنیم
55
00:01:39,360 –> 00:01:41,360
تا رمز عبور چک را نبینیم.
56
00:01:41,360 –> 00:01:43,759
رمز عبور بررسی تابع فقط یک جعبه
57
00:01:43,759 –> 00:01:45,040
سیاه است که نام کاربری
58
00:01:45,040 –> 00:01:47,360
و حدس را وارد میکنیم و یا متوجه میشویم که شما
59
00:01:47,360 –> 00:01:49,280
آن را درست دریافت کردهاید یا آن را درست متوجه نشدهاید،
60
00:01:49,280 –> 00:01:52,000
ما نمیتوانیم چیز دیگری را ببینیم، میدانم که
61
00:01:52,000 –> 00:01:52,880
این احمقانه است
62
00:01:52,880 –> 00:01:54,479
بررسی رمز عبور فقط یک تابع است
63
00:01:54,479 –> 00:01:56,719
همان فایل این کاملا ری است مضحک است
64
00:01:56,719 –> 00:01:58,640
اما به بررسی رمز عبور فکر کنید که
65
00:01:58,640 –> 00:02:00,079
در واقع به اینترنت می روید و
66
00:02:00,079 –> 00:02:02,320
سعی می کنید به یک سرور وارد شوید،
67
00:02:02,320 –> 00:02:04,399
این سرور بسیار بدی است زیرا
68
00:02:04,399 –> 00:02:06,399
به ما امکان می دهد
69
00:02:06,399 –> 00:02:08,000
حدس های زیادی بزنیم و ما را به
70
00:02:08,000 –> 00:02:09,679
دلیل ارسال هرزنامه یا مواردی از این قبیل ممنوع نمی کند.
71
00:02:09,679 –> 00:02:11,280
تلاش های اشتباه بسیار زیاد است، اما
72
00:02:11,280 –> 00:02:14,000
فکر می کنم این موضوع به درستی تمام می شود،
73
00:02:14,000 –> 00:02:15,520
بیایید به شکستن
74
00:02:15,520 –> 00:02:17,760
در نگاه اول بپردازیم، ممکن است به نظر کاملاً ناامید کننده به نظر برسد
75
00:02:17,760 –> 00:02:18,560
76
00:02:18,560 –> 00:02:20,959
رمزهای عبور می توانند بسیار طولانی 30
77
00:02:20,959 –> 00:02:22,160
کاراکتر یا بیشتر باشند
78
00:02:22,160 –> 00:02:24,640
و تنها چیزی که از این نتیجه می گیریم این است
79
00:02:24,640 –> 00:02:26,400
که رمز عبور صحیح است یا
80
00:02:26,400 –> 00:02:29,280
اگر حتی یک ذره اشتباه
81
00:02:29,280 –> 00:02:31,200
کنیم، اساساً هیچ اطلاعاتی به دست نمیآوریم،
82
00:02:31,200 –> 00:02:33,760
نه کاملاً،
83
00:02:33,760 –> 00:02:35,680
موضوع کلی این ویدیو این است
84
00:02:35,680 –> 00:02:37,680
که ما یک اطلاعات اضافی دریافت میکنیم
85
00:02:37,680 –> 00:02:39,519
که سرور به ما نگفته است،
86
00:02:39,519 –> 00:02:41,360
میتوانیم میزان زمان را اندازهگیری کنیم.
87
00:02:41,360 –> 00:02:42,640
88
00:02:42,640 –> 00:02:44,640
اگر ما مشکوک بودیم که سرور
89
00:02:44,640 –> 00:02:46,800
از اجرای بدی مانند این
90
00:02:46,800 –> 00:02:48,640
91
00:02:48,640 –> 00:02:50,160
92
00:02:50,160 –> 00:02:51,920
استفاده میکند، باید پاسخ دهیم.
93
00:02:51,920 –> 00:02:54,319
رمز عبور واقعی
94
00:02:54,319 –> 00:02:56,239
ما ممکن است بتوانیم از
95
00:02:56,239 –> 00:02:58,560
چیزی در مورد مدت زمان
96
00:02:58,560 –> 00:03:00,159
محاسبه پاسخ سوء استفاده کنیم
97
00:03:00,159 –> 00:03:03,360
وقتی حدس به درستی نزدیکتر است
98
00:03:03,360 –> 00:03:04,640
تقریباً در هر
99
00:03:04,640 –> 00:03:06,159
زبان برنامه نویسی اولین چیزی که
100
00:03:06,159 –> 00:03:07,680
هنگام مقایسه دو رشته برای
101
00:03:07,680 –> 00:03:08,400
برابری اتفاق می افتد
102
00:03:08,400 –> 00:03:10,319
این است که بررسی می شود تا ببیند. اگر طول
103
00:03:10,319 –> 00:03:12,319
آنها یکسان باشد اگر طول ها متفاوت
104
00:03:12,319 –> 00:03:14,560
باشد، می توانید به سرعت false را برگردانید،
105
00:03:14,560 –> 00:03:17,120
بنابراین اگر با حدس
106
00:03:17,120 –> 00:03:19,840
زدن طول رمز عبور اشتباه را
107
00:03:19,840 –> 00:03:21,840
از سرور پرس و جو کنیم، سرور سریعتر پاسخ می دهد،
108
00:03:21,840 –> 00:03:25,519
بیایید ببینیم آیا می توانیم از آن برای کرک کردن استفاده کنیم یا خیر.
109
00:03:25,519 –> 00:03:26,640
110
00:03:26,640 –> 00:03:29,920
طول این رمز عبور خوب است در اینجا کاری است که ما
111
00:03:29,920 –> 00:03:30,560
انجام
112
00:03:30,560 –> 00:03:32,959
خواهیم داد، کاربر و حداکثر
113
00:03:32,959 –> 00:03:34,319
طول ممکنی که فکر می کنیم
114
00:03:34,319 –> 00:03:35,760
رمز عبور می تواند باشد را
115
00:03:35,760 –> 00:03:37,280
می گیریم، سپس فقط طول های مختلف را حلقه زده
116
00:03:37,280 –> 00:03:40,239
و از روش timeit.repeat
117
00:03:40,239 –> 00:03:43,360
برای زمان بندی زمان استفاده می کنیم. مدت زمانی است که هر تلاش برای رمز عبور
118
00:03:43,360 –> 00:03:44,239
119
00:03:44,239 –> 00:03:46,000
این عبارت را می گیرد که ما زمان بندی می کنیم این
120
00:03:46,000 –> 00:03:48,159
رمز عبور بررسی کاربر و حدس
121
00:03:48,159 –> 00:03:51,280
x است که در اینجا کاربر به عنوان
122
00:03:51,280 –> 00:03:52,239
123
00:03:52,239 –> 00:03:55,200
هر آرگومان وارد می شود و x یک
124
00:03:55,200 –> 00:03:55,840
رشته رشته
125
00:03:55,840 –> 00:03:58,720
تصادفی است. توسط این تابع تکرار
126
00:03:58,720 –> 00:04:00,799
می شود لیستی را برمی گرداند و ما فقط
127
00:04:00,799 –> 00:04:03,519
سریع ترین زمان را از آن لیست می گیریم تا از آن به عنوان
128
00:04:03,519 –> 00:04:05,360
زمان پاسخ سرور استفاده
129
00:04:05,360 –> 00:04:07,599
کنیم و در اینجا سریع ترین زمان را می گیریم
130
00:04:07,599 –> 00:04:09,200
زیرا ممکن است سرور به دلایلی نامعلوم عقب افتاده باشد
131
00:04:09,200 –> 00:04:10,319
132
00:04:10,319 –> 00:04:12,159
و ما نمی خواهیم که
133
00:04:12,159 –> 00:04:14,000
زمانبندیمان را کاهش دهیم، میخواهیم عملکرد آن را اندازهگیری
134
00:04:14,000 –> 00:04:15,920
کنیم، با این فرض که اصلاً تأخیر نداشته است
135
00:04:15,920 –> 00:04:16,560
136
00:04:16,560 –> 00:04:19,040
تا همه کارهایی که انجام میدهم این است که رمزهای
137
00:04:19,040 –> 00:04:20,160
عبور با طولهای مختلف را حدس بزنم
138
00:04:20,160 –> 00:04:21,759
و سپس طولی را
139
00:04:21,759 –> 00:04:23,440
که طولانیترین زمان برای پاسخدهی طول میکشد برگردانیم
140
00:04:23,440 –> 00:04:25,440
و این چیزی است که وقتی میبینیم. گذرواژههایی را اجرا کنید
141
00:04:25,440 –> 00:04:27,280
که بهطور تصادفی
142
00:04:27,280 –> 00:04:28,639
طول 20
143
00:04:28,639 –> 00:04:31,040
را حدس زدهاند، کمی طولانیتر از بقیه موارد طول میکشد،
144
00:04:31,040 –> 00:04:31,840
توجه کنید
145
00:04:31,840 –> 00:04:35,360
که دومین انتخاب طولانیتر 93
146
00:04:35,360 –> 00:04:38,320
درصد سریع بود و آنچه میدانید
147
00:04:38,320 –> 00:04:41,040
طول رمز عبور واقعی 20 است
148
00:04:41,040 –> 00:04:42,960
و اگر آن را تغییر دهم اتفاقی نیست.
149
00:04:42,960 –> 00:04:44,639
طول رشته به طوری که اکنون
150
00:04:44,639 –> 00:04:46,880
به جای 20 طول آن 19 است و
151
00:04:46,880 –> 00:04:48,000
دوباره برنامه را اجرا کنید
152
00:0