Real Time Mode

যখন ক্লায়েন্টরা রিয়েল-টাইম মোডে Google Safe Browsing v5 ব্যবহার করতে পছন্দ করে, তখন ক্লায়েন্টরা তাদের স্থানীয় ডাটাবেসে নিম্নলিখিতগুলি বজায় রাখবে: (i) সম্ভাব্য-সৌম্য সাইটগুলির একটি গ্লোবাল ক্যাশে, হোস্ট-সাফিক্স/পাথ-প্রিফিক্স URL এক্সপ্রেশনের SHA256 হ্যাশ হিসাবে ফর্ম্যাট করা, (ii) হোস্ট-সাফিক্স/পাথ-প্রিফিক্স URL এক্সপ্রেশনের SHA256 হ্যাশ প্রিফিক্স হিসাবে ফর্ম্যাট করা হুমকি তালিকার একটি সেট। উচ্চ-স্তরের ধারণা হল যে যখনই ক্লায়েন্ট একটি নির্দিষ্ট URL পরীক্ষা করতে চায়, তখন গ্লোবাল ক্যাশে ব্যবহার করে একটি স্থানীয় চেক করা হয়। যদি সেই চেকটি পাস করে, একটি স্থানীয় হুমকি তালিকা পরীক্ষা করা হয়। অন্যথায়, ক্লায়েন্ট নীচের বিবরণ অনুসারে রিয়েল-টাইম হ্যাশ চেক চালিয়ে যাবে।

স্থানীয় ডাটাবেসের পাশাপাশি, ক্লায়েন্ট একটি স্থানীয় ক্যাশে বজায় রাখবে। এই জাতীয় স্থানীয় ক্যাশে স্থায়ী স্টোরেজে রাখার প্রয়োজন নেই এবং মেমরির চাপের ক্ষেত্রে এটি সাফ করা যেতে পারে।

পদ্ধতিটির বিস্তারিত বিবরণ নীচে পাওয়া যাবে।

রিয়েল-টাইম URL চেক পদ্ধতি

এই পদ্ধতিতে একটি মাত্র URL u নেওয়া হয় এবং SAFE , UNSAFE অথবা UNSURE ফেরত দেয়। যদি এটি SAFE ফেরত দেয় তাহলে Google Safe Browsing দ্বারা URL টি নিরাপদ বলে বিবেচিত হবে। যদি এটি UNSAFE ফেরত দেয় তাহলে Google Safe Browsing দ্বারা URL টি সম্ভাব্যভাবে অনিরাপদ বলে বিবেচিত হবে এবং যথাযথ ব্যবস্থা গ্রহণ করা উচিত: যেমন শেষ ব্যবহারকারীকে একটি সতর্কতা দেখানো, প্রাপ্ত বার্তাটি স্প্যাম ফোল্ডারে স্থানান্তর করা, অথবা এগিয়ে যাওয়ার আগে ব্যবহারকারীর দ্বারা অতিরিক্ত নিশ্চিতকরণের প্রয়োজন। যদি এটি UNSURE ফেরত দেয়, তাহলে নিম্নলিখিত স্থানীয়-চেক পদ্ধতিটি পরে ব্যবহার করা উচিত।

  1. ধরুন expressions URL u দ্বারা তৈরি প্রত্যয়/উপসর্গ রাশির একটি তালিকা।
  2. expressionHashes একটি তালিকা হিসেবে ধরা যাক, যেখানে উপাদানগুলি হল expressions এর প্রতিটি এক্সপ্রেশনের SHA256 হ্যাশ।
  3. expressionHashes প্রতিটি hash জন্য
    1. যদি গ্লোবাল ক্যাশে hash পাওয়া যায়, তাহলে UNSURE ফেরত পাঠান।
  4. ধরা যাক expressionHashPrefixes একটি তালিকা, যেখানে উপাদানগুলি হল expressionHashes এর প্রতিটি হ্যাশের প্রথম 4 বাইট।
  5. প্রতিটি expressionHashPrefix জন্য expressionHashPrefixes :
    1. স্থানীয় ক্যাশে expressionHashPrefix দেখুন।
    2. যদি ক্যাশেড এন্ট্রিটি পাওয়া যায়:
      1. বর্তমান সময় তার মেয়াদ শেষ হওয়ার সময়ের চেয়ে বেশি কিনা তা নির্ধারণ করুন।
      2. যদি এটি বেশি হয়:
        1. স্থানীয় ক্যাশে থেকে পাওয়া ক্যাশে করা এন্ট্রিটি সরান।
        2. লুপটি চালিয়ে যান।
      3. যদি এটি বেশি না হয়:
        1. expressionHashPrefixes থেকে এই নির্দিষ্ট expressionHashPrefix সরান।
        2. ক্যাশেড এন্ট্রিতে expressionHashes মধ্যে সংশ্লিষ্ট পূর্ণ হ্যাশ পাওয়া গেছে কিনা তা পরীক্ষা করুন।
        3. যদি পাওয়া যায়, তাহলে UNSAFE ফেরত দিন।
        4. যদি না পাওয়া যায়, তাহলে লুপটি চালিয়ে যান।
    3. যদি ক্যাশেড এন্ট্রিটি না পাওয়া যায়, তাহলে লুপটি চালিয়ে যান।
  6. RPC SearchHashes অথবা REST পদ্ধতি hashes.search ব্যবহার করে Google Safe Browsing v5 সার্ভারে expressionHashPrefixes পাঠান। যদি কোনও ত্রুটি ঘটে (নেটওয়ার্ক ত্রুটি, HTTP ত্রুটি ইত্যাদি সহ), তাহলে UNSURE ফেরত পাঠান। অন্যথায়, প্রতিক্রিয়াটিকে SB সার্ভার থেকে প্রাপ্ত response হিসাবে ধরা যাক, যা হুমকির প্রকৃতি (সামাজিক প্রকৌশল, ম্যালওয়্যার ইত্যাদি) সনাক্তকারী কিছু সহায়ক তথ্য সহ সম্পূর্ণ হ্যাশের একটি তালিকা, সেইসাথে ক্যাশের মেয়াদ শেষ হওয়ার সময় expiration
  7. প্রতিটি fullHash response জন্য:
    1. স্থানীয় ক্যাশে fullHash প্রবেশ করান, expiration সহ।
  8. প্রতিটি fullHash response জন্য:
    1. Let isFound হল expressionHashes fullHash খুঁজে পাওয়ার ফলাফল।
    2. যদি isFound False হয়, তাহলে লুপটি চালিয়ে যান।
    3. যদি isFound সত্য হয়, তাহলে UNSAFE ফেরত দিন।
  9. SAFE ফিরে যান।

এই প্রোটোকলটি নির্দিষ্ট করে যে ক্লায়েন্ট কখন সার্ভারে expressionHashPrefixes পাঠাবে, এই প্রোটোকলটি উদ্দেশ্যমূলকভাবে ঠিক কীভাবে পাঠাবে তা নির্দিষ্ট করে না। উদাহরণস্বরূপ, ক্লায়েন্টের জন্য সমস্ত expressionHashPrefixes একক অনুরোধে পাঠানো গ্রহণযোগ্য, এবং ক্লায়েন্টের জন্য expressionHashPrefixes এর প্রতিটি পৃথক উপসর্গ পৃথক অনুরোধে সার্ভারে পাঠানোও গ্রহণযোগ্য (সম্ভবত সমান্তরালভাবে এগিয়ে যাওয়া)। ক্লায়েন্টের জন্য expressionHashPrefixes এর হ্যাশ উপসর্গের সাথে সম্পর্কহীন বা এলোমেলোভাবে তৈরি হ্যাশ উপসর্গ পাঠানোও গ্রহণযোগ্য, যতক্ষণ না একটি একক অনুরোধে প্রেরিত হ্যাশ উপসর্গের সংখ্যা 30 এর বেশি না হয়।