PDA

View Full Version : سوال: نحوه عملکرد برنامه های تولید رمز یکبار مصرف بانکها بدون وجود اینترنت



majid_darab
دوشنبه 26 آبان 1399, 00:02 صبح
سلام و درود خدمت برنامه نویسان عزیز :
سوال 1
من یک سوالی خیلی ذهنمو درگیر کرده و اون این هست که برنامه های اندرویدی تولید رمز یکبار مصرف بانکها چجوری بدون اینترنت با سرور بانک ارتباط برقرار می کنه؟
من زمانی که اینترنت گوشیم قطع هست این نرم افزارها در هر یک دقیقه رمز جدید تولید می کنند.
سوال 2
نرم افزارهای تولید رمز یکبار مصرف موقع نصب روی گوشی چه فاکتورهایی رو شناسایی می کنند برای تشخیص طرف؟

با تشکر از توجه شما عریران

the king
دوشنبه 26 آبان 1399, 01:40 صبح
سلام و درود خدمت برنامه نویسان عزیز :
سوال 1
من یک سوالی خیلی ذهنمو درگیر کرده و اون این هست که برنامه های اندرویدی تولید رمز یکبار مصرف بانکها چجوری بدون اینترنت با سرور بانک ارتباط برقرار می کنه؟
من زمانی که اینترنت گوشیم قطع هست این نرم افزارها در هر یک دقیقه رمز جدید تولید می کنند.
سوال 2
نرم افزارهای تولید رمز یکبار مصرف موقع نصب روی گوشی چه فاکتورهایی رو شناسایی می کنند برای تشخیص طرف؟

با تشکر از توجه شما عریران

رمز یکبار مصرف به دو داده وابسته است، اولی کلید منحصر بفرد و دومی زمان. برنامه ای مثل Google Authenticator وقتی برای کاربر فلان حساب کاربری در سایت بهمان تنظیم شد، کلید منحصر بفرد اون حساب کاربری رو میدونه، زمان هم که همیشه روی دستگاه مشخصه. پس تا وقتی که تنظیم تاریخ دستگاه اشتباه نباشه، داده دیگری لازم نداره که بخواد از طریقی از راه دور دریافتش کنه. میتونه بر اساس زمانی که روی اون دستگاه تنظیم شده یک رمز یکبار مصرف جدید تولید کنه که مدت کوتاهی اعتبار داره و در هر سروری که خواستید می توانید واردش کنید. اون برنامه میزبان در سرور که رمز یکبار مصرف رو دریافت می کنه هم کلید منحصر بفرد اون حساب کاربری رو از قبل داره و زمان در سرور هم در دسترس اش قرار داره، پس میتونه بررسی کنه که آیا رمز یکبار مصرف ارسالی اکنون اعتبار داره یا نه.

هر حساب کاربری ای یک کلید منحصر بفرد اشتراکی (shared secret key) داره که هم باید میزبان بدونه و هم برنامه ای که میخواد رمز یکبار مصرف تولید کنه. این رمز بعد از تایید اعتبار در حافظه برنامه ثبت میشه تا از اون به بعد بتونه برای اون حساب کاربری خاص رمز یکبار مصرف تولید کنه.
مثلا Google Authenticator موقع نصب یا اضافه کردن حساب کاربری میتونه مستقیما از کاربر کلید منحصر بفرد رو دریافت کنه یا یک کد QR رو با دوربین اسکن کنه تا از داخلش کلید رو استخراج کنه. هیچکدوم از ایندو روش هم احتیاجی به اینترنت یا ارتباط مخابراتی نداره.

نرم افزار های تولید رمز یکبار مصرف کلا یا باید کلید منحصر بفرد رو از کاربر دریافت کنند یا از داخل یک داده مثلا یک تصویر QR استخراجش کنند.
اما اگر بخواهند بصورت غیر مستقیم و از طریق پیامک یا اینترنت کلید منحصر بفرد رو دریافت کنند، باید به سرویس میزبانی وصل بشوند که کلید منحصر بفرد رو ارسال کنه. مثلا بصورت غیر مستقیم بر اساس یک حساب کاربری ثبت شده در یک سایت که باید با موفقیت لاگین بشه (یا از طریق کد شناسایی مشخصی که به کاربر پیامک یا به حساب کاربر ایمیل میشه تایید بشه) کلید منحصر بفرد رو از میزبان دریافت کنند.
در همه این روش ها نهایتا کلید منحصر بفرد اکانت ئه که بدست برنامه میرسه و دیگه از اون به بعد نیازی به ارتباط اینترنتی یا مخابراتی نداره.

majid_darab
دوشنبه 26 آبان 1399, 02:27 صبح
من از شما دوست گلم بایت این توضیحات مچکرم.

majid_darab
سه شنبه 27 آبان 1399, 11:17 صبح
یک سوال دیگه این هست که تاریخ خود گوشی بدون وجود اینترنت وقتی در حالت اتوماتیک هست چجوری آپدیت می مونه؟
در کامپیوتر سرورهایی به منظور آپدیت وجود دارن که موقع وصل شدن به اینترنت تاریخ و زمان از طریق این سرورها آپدیت می شوند.

the king
سه شنبه 27 آبان 1399, 21:09 عصر
یک سوال دیگه این هست که تاریخ خود گوشی بدون وجود اینترنت وقتی در حالت اتوماتیک هست چجوری آپدیت می مونه؟
در کامپیوتر سرورهایی به منظور آپدیت وجود دارن که موقع وصل شدن به اینترنت تاریخ و زمان از طریق این سرورها آپدیت می شوند.
سیستم های مخابراتی سیار مثل Global System for Mobile Communications (GSM) قابلیت ارسال زمان رو دارند تا هر مشترک تحت پوشش شبکه شون بتونه زمان رو از شبکه بگیره و منطبق بشه.