Ahmed Aljaberi
Ahmed Aljaberi

@ahmed_aljabri

9 تغريدة 10 قراءة Sep 07, 2022
عند دخول حسابك في البنك عن طريق الموبايل او الويب يأتي لك OTP و هو عبارة عن رمز سري عددي مؤقت يقوم الجهاز المركزي بتوليده و ارساله لك كرسالة قصيرة. قبل هذا و مازال هناك طريقة اخرى و باستخدام جهاز شبيه بالذي في الصورة و تسمى TOTP و الT من Time.
(سلسلة عن فكرة عمله )
#1
مازالت بعض البنوك تستخدم جهاز شبيه بالذي في الصورة خصوصاً إن كان لك حسابات بنوك خارجية و قد لا تصلك الرسائل النصية الدولية. ايضا لهذا الجهاز طبيعة رقمية مثل برامج Google Authenticator و Microsoft Authentecator و يعملان حتى عند انقطاع النت. لنأتي للشرح.
#2
في أي مصادقة يعتمد النظام على وجود معلومة مشتركة بين الServer و الClient يعرفها الاثنان او على الاقل لها نفس الHash ككلمة مرور او Key او اي صورة اخرى من صور المصادقة. لكن هنا انت معك جهاز منقطع عن الاتصال و في نفس الوقت يولد كلمة مرورة جديدة كل فترة و مع هذا يعرفها السيرفر!!.
#3
الفكرة ان الجهاز به كمبيوتر صغير و به ساعة او Timer. هذه الساعة تولد Unix Time و هو رقم صحيح مثل 1662490612 و هو عدد الثواني التي مرت من اول يوم يناير عام 1960. يمكن معرفة الوقت الان من خلال دوال في اغلب اللغات او من خلال الانترنت كالموقع التالي
#4
unixtimestamp.com
في صورة الجهاز في الاعلى هناك رقم Serial No و الذي يمثل رقم العميل او يمكن ربطه برقم العميل. هذا الرقم ايضاً مخزن في الجهاز و في كل مرة يدمج مع الUnix Time من خلال اي خوارزمية (سرية للشركة) و لنضعهم للتبسيط بجانب بعضها ملتصقين لينتج نص او رقم طويل كـ
23080190000081662490612
#5
عندها يقوم الجهاز بعمل Hashing لذلك النص .اغلب الاجهزة الصغيرة كتلك تستخدم SHA1 قوقل و مايكروسوفت يستخدمون تقريباً SHA2 و SHA3. المهم ان ناتج تشفير ذلك الرقم سينتج رقم Hex مكون من 40 خانة و يمكن تحويله الى عدد عشري صحيح ثم نأخذ اخر 6 ارقام مثلاً و هي ما تظهر على الشاشة.
#6
في الجانب الاخر .. يحتفظ السيرفر او الجهاز المركزي برقم العميل او الSerial No كمان ان الUnix Time ايضا متاح. ففي اللحظة التي يتم فيها طلب الTOTP يقوم السيرفر بنفس عمل الجهاز الصغير و ينتج رقماً مطابقاً لما في الجهاز و عند ادخال العميل للرقم تحصل المصادقة ..
#7
هذه الطريقة توفر تكاليف ارسال الSMS و لا يمكن الحصول على الرقم إلا بالحصول على الجهاز او على الهاتف الذي به الAuthenticator. ولاختراقها يحتاج الشخص لمعرفة الخوارزمية و طريقة الHashing و معرفة رقم العميل و الوقت الذي طلب فيه الرقم.
#8
بقيت معلومة بسيطة وهي ان الSerial No في حال استخدام تطبيق Auth يأتي لك من خلال الQR Code الذي تقوم بمسحه من خلال البرنامج. من الممن استخدام الOTP اول مرة عند التسجيل في نظامك ثم اجعل تطبيقك يولد TOTP.
- انتهى .

جاري تحميل الاقتراحات...