آیا TOTP روی همان لپتاپ واقعاً عامل دوم است؟
مولد کد روی لپتاپ VPN یک عامل مالکیت است که درون همان مرز نفوذ قرار دارد. نخست بذر و نشست را ردیابی کنید.
به یک کلاینت VPN وارد شوید که نخست گذرواژه و سپس کدی ششرقمی میخواهد، و دو درخواست مانند دو سد مستقل به نظر میرسند. اگر بر پایه نوع عامل بشماریم، چنین هم هستند: گذرواژه چیزی است که میدانید، کد چیزی است که در اختیار دارید. اگر بر پایه آنچه یک لپتاپ نفوذشده آشکار میکند بشماریم، میتوانند در یک مرز فروریزند، زیرا آنچه در اختیار دارید پروندهای روی همان دستگاهی است که در آن تایپ میکنید. شکاف میان این دو شمارش موضوع این بررسی است.
یک ورود را از میدان گذرواژه تا کادر کد دنبال کنید
توالی را ببینید، نه برچسبها را. کلاینت گذرواژه را میفرستد، سرور پاسخ میدهد که اثبات دومی لازم است، و کلاینت میدانی برای شش یا هشت رقم باز میکند. پشت آن میدان برنامهای مولد نشسته است که یک راز مشترک و یک ساعت را نگه میدارد. از راز و گام زمانی کنونی مقداری محاسبه میکند، و سرور همان مقدار را از نسخه خود از راز دوباره محاسبه میکند.
هر دو طرف همان مواد کلید را نگه میدارند. همین تقارن بخشی است که مردم هنگام توصیف کد بهعنوان راز از دست میدهند: ارائهدهنده هم میتواند کدهای شما را بسازد، و به همین دلیل بذر از هر خروجی منفرد ارزشمندتر است. کدی که نشت کند ارزشی یکبارمصرف است؛ بذری که آن را ساخته است اعتبارنامهای دائمی است که تا زمان جایگزینی همچنان مقادیر معتبر تولید میکند.
فعالسازی نیمه دیگر جریان است. مولدی که با رمز دستگاه، درخواست زیستسنجی یا محفظه رمزگذاریشده باز میشود، اثبات مالکیت بههمراه چیز دیگری ارائه میدهد. مولدی که بدون رمزگذاری اجرا میشود و با نشست سیستمعامل باز میشود، تنها پرونده را ارائه میدهد. همان برنامه بسته به اینکه ثبتنام چگونه انجام شده باشد میتواند هر دو ترتیب را عرضه کند، بنابراین تصمیم استقرار در همان گام است، نه در صفحه بازاریابی برنامه.
تصمیم بگیرید کد واقعاً چه چیزی را اثبات میکند
زبان استانداردها اینجا بهطور غیرعادی روشن است و ارزش خواندن مستقیم دارد. راهنمای احرازگرهای NIST مولدهای نرمافزاری OTP را در شمار احرازگرها میآورد، OTP تکعاملی را از OTP چندعاملی با عامل فعالسازی جدا میکند، و میگوید که احراز هویت OTP در برابر فیشینگ مقاوم نیست. هر یک از این سه بند تغییر میدهد که درباره این درخواست چه میتوانید ادعا کنید.
مقاوم نبودن در برابر فیشینگ تیزترین لبه است. کدی که در میدانی تایپ میشود میتواند در زمانی واقعی، توسط کسی که به این کار ترغیب شده، در میدان دیگری تایپ شود. پنجره کوتاه است، که شمار تلاشهای سودمند را کم میکند اما این تکنیک را نمیبندد. اگر الزام شما شامل مقاومت در برابر آن است، OTP ابتدایی نادرست است، هر جا که مولد اجرا شود.
تکعاملی در برابر چندعاملی دومین تمایز است. کدی که بدون گام فعالسازی پدیدار میشود مالکیت یک پرونده و هیچ چیز دیگری را اثبات میکند، و پرونده تنها به اندازه حسابی قوی است که میتواند آن را بخواند. عامل فعالسازی را بیفزایید و ادعا بهتر میشود، هرچند هنوز اثبات ارائهشده در ورود را توصیف میکند نه جداسازی دستگاهی که آن را تولید میکند.
ببینید یک لپتاپ نفوذشده تا کجا میرسد
مهاجمی که اجرای کد روی ایستگاه کاری دارد به خواندن میدانی که در آن تایپ میکنید محدود نیست. نشستی که پس از ورود موفق برقرار میشود معمولاً توکن یا کوکی است، و توکن را میتوان بدون هیچ کدی از دستگاهی دیگر به کار برد. اگر این همان توانایی است که در برابر آن دفاع میکنید، افزودن درخواست دومی در ورود شمار گامهای حمله را تغییر میدهد، نه نتیجه را.
| Arrangement | What it adds at login | What it leaves inside the laptop boundary |
|---|---|---|
| Password plus TOTP app on the same machine | A possession proof the password alone does not supply | The seed, the unlock step and the authenticated session |
| TOTP app on a separate phone | Seed storage outside the workstation | Session cookies, the typed password and any prompt that can be proxied |
| Hardware key with a signed challenge | A per-login signature bound to the origin | Whatever the browser and the workstation are already trusted to do |
ستون سوم را صادقانه بخوانید. هر ترتیبی در بالا چیزی را درون مرز اعتماد ایستگاه کاری باقی میگذارد، زیرا نشست همانجا به کار میرود. آنچه تغییر میکند این است که آیا راز دیرپا با این مرز سفر میکند یا بیرون آن میماند، و آیا اثبات به مبدأ مشخصی گره خورده است تا صفحهای مشابه نتواند آن را بازپخش کند.
دو جزئیات کوچکتر به همان تصویر تعلق دارند. کد در طول پنجره پذیرش خود معتبر میماند، اغلب سی ثانیه بهعلاوه رواداری برای انحراف ساعت، بنابراین مقدار شنودشده را میتوان درون همان پنجره دوباره پخش کرد مگر آنکه تأییدکننده از استفاده دوباره سر باز زند. و نصب مولد تازه نشستهایی را که پیشتر احراز شدهاند پایان نمیدهد، از اینرو نشستی کهنه از تغییر اعتبارنامهای که باید حادثه را مهار میکرد بیشتر عمر میکند.
مولد را تنها جایی ببرید که جداسازی کمک میکند
گذاشتن مولد کد روی تلفن برای یک خرابی مشخص بهبودی واقعی است: لپتاپ دزدیدهشده دیگر هر دو اثبات را با خود نمیبرد. اما برای ربایش نشست روی لپتاپ کاری نمیکند، برای کاربری که کدی را در صفحه فیشینگ تایپ میکند کاری نمیکند، و برای کدهای بازیابی که یکبار چاپ و در برنامه یادداشت عکسبرداری شدهاند نیز کاری نمیکند.
پس پیش از انتخاب ابزار الزام را بنویسید. اگر هدف اثباتی افزون بر گذرواژه نشتکرده است، آن را روشن بگویید، و برنامه روی همان دستگاه از پیش آن را میدهد. اگر هدف تابآوری در برابر نفوذ به ایستگاه کاری VPN است، آن توانایی مهاجم را نام ببرید و ترتیبی برگزینید که برای آن ارزیابی شده است، و الزام فیشینگ را جداگانه بیان کنید نه مفروض.
سپس نیمه عملیاتی را رسیدگی کنید، که تعیین میکند آیا چیزی از اینها در برخورد با یک حادثه دوام میآورد. از دست رفتن دستگاه به مسیر جایگزینی مستند نیاز دارد، چرخش اعتبارنامه به باطل کردن نشستهای فعال نیاز دارد، و مواد ثبتنام به همان حفاظتی نیاز دارد که بذر دارد، زیرا نسخه ثبتنام بیحفاظت همان کدهای آینده را از راه کوتاهتری به مهاجم میدهد. برشمردن این چهار مورد سودمندتر از بحث درباره خوب یا بیارزش بودن توکنهای روی همان دستگاه است.