APK স্বাক্ষর যাচাই করা: আপনার অ্যাপ নিরাপদ কিনা তা কীভাবে নিশ্চিত করবেন
Android-এ সাইডলোডিং অ্যাপগুলি স্বাধীনতা এবং নমনীয়তা প্রদান করে, তবে এটি একটি বড় ঝুঁকি নিয়ে আসে: ট্যাম্পারড অ্যাপ্লিকেশন। দূষিত অভিনেতারা প্রায়ই জনপ্রিয় অ্যাপগুলিকে অনানুষ্ঠানিক সাইটে পুনরায় বিতরণ করার আগে স্পাইওয়্যার বা অ্যাডওয়্যার অন্তর্ভুক্ত করতে পরিবর্তন করে৷ আপনি কীভাবে নিশ্চিত হতে পারেন যে আপনি এইমাত্র যে APK ডাউনলোড করেছেন সেটিই ঠিক একই রকম যেটি ডেভেলপার Google Play-তে আপলোড করেছেন?
উত্তর APK ডিজিটাল স্বাক্ষর তে নেমে আসে। নীচে, আমরা অ্যাপ সাইনিং আসলে কীভাবে কাজ করে তা কভার করব এবং আপনি বিশ্বাস করার সিদ্ধান্ত নেওয়ার আগে একটি APK এর হ্যাশ এবং শংসাপত্র চেক করতে আমাদের অনলাইন APK যাচাইকারী ব্যবহার করে চলুন।
60-সেকেন্ড সংস্করণ:
Android একটি প্রকাশক কী দিয়ে প্রতিটি APK স্বাক্ষর করে। ফোনটি একটি "আপডেট" প্রত্যাখ্যান করে যার স্বাক্ষর বিদ্যমান ইনস্টলের সাথে মেলে না; এটি OS এর প্রধান ছদ্মবেশ বিরোধী প্রতিরক্ষা। একটি সাইডলোড করা APK যাচাই করতে, এর SHA-256 হ্যাশ এবং এর সাইনিং-সার্টিফিকেট ফিঙ্গারপ্রিন্ট গণনা করুন, তারপরে আপনি বিশ্বাস করেন এমন মানগুলির সাথে উভয়ের তুলনা করুন (বিদ্যমান প্লে স্টোর ইনস্টল, বিকাশকারীর প্রকাশিত আঙ্গুলের ছাপ, বা পরিচিত-ভাল আগের কপি)। একটি মিল মানে ফাইলটি বাইট-অভিন্ন এবং একই প্রকাশকের স্বাক্ষরিত; একটি অমিল মানে ইনস্টল করবেন না।
একটি APK স্বাক্ষর কি?
একটি ডিজিটাল স্বাক্ষর হল পরিচয়ের একটি ক্রিপ্টোগ্রাফিক প্রমাণ। যখন একজন বিকাশকারী একটি অ্যাপ শেষ করে, তারা একটি ব্যক্তিগত কী (কীস্টোর) ব্যবহার করে এটিকে "সাইন" করে। Android তারপর নিশ্চিত করতে APK এ এমবেড করা সংশ্লিষ্ট পাবলিক কী ব্যবহার করে:
- সততা: ফাইলটি স্বাক্ষর করার পর থেকে এটি পরিবর্তন করা হয়নি৷
- সত্যতা: ডেভেলপার হল তারা যারা বলে তারা।
- আপডেট: শুধুমাত্র একই কী দিয়ে স্বাক্ষর করা APK আপনার ফোনে বিদ্যমান একটি অ্যাপ আপডেট করতে পারে।
স্বাক্ষরের বিবর্তন: V1, V2, V3 এবং V4
Google বছরের পর বছর ধরে ক্রমাগত APK নিরাপত্তা উন্নত করেছে:
- V1 (জার সাইনিং): জিপ-এ পৃথক এন্ট্রি স্বাক্ষর করে। ধীরগতির এবং নির্দিষ্ট আক্রমণের জন্য দুর্বল।
- V2 (APK স্বাক্ষর স্কিম): সম্পূর্ণ ফাইল ব্লকে স্বাক্ষর করে। যাচাই করার জন্য অনেক দ্রুত এবং আরও নিরাপদ। (Android 7.0+)
- V3 (কী ঘূর্ণন): ডেভেলপারদের অ্যাপ আপডেটগুলি বজায় রাখার সময় তাদের সাইনিং কী পরিবর্তন করার অনুমতি দেয়। (Android 9.0+)
- V4 (স্ট্রিমিং): ADB এর উপর ক্রমবর্ধমান ইনস্টলেশনের জন্য অপ্টিমাইজ করা হয়েছে। (Android 11+)
কিভাবে অনলাইনে APK স্বাক্ষর যাচাই করবেন
আমাদের APK যাচাইকারী টুল শুধুমাত্র হ্যাশ গণনা করে না; এটি সার্টিফিকেট চেইনের সম্পূর্ণ ক্রিপ্টোগ্রাফিক অডিট করে। এটি কীভাবে ব্যবহার করবেন তা এখানে:
যাচাই করার ধাপ:
- APK যাচাইকারী পৃষ্ঠায় নেভিগেট করুন।
- আপনার APK বা XAPK ফাইল নির্বাচন করুন।
- আমাদের টুল META-INF/ ডিরেক্টরি পার্স করে এবং সার্টিফিকেট ডেটা বের করে (.RSA, .DSA, বা .EC)।
- বিশ্লেষণ সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন (এটি মাত্র সেকেন্ড সময় নেয়)।
- সার্টিফিকেট তথ্য পর্যালোচনা করুন: বিকাশকারীর নাম, সংস্থা এবং মূল দেশ।
- হ্যাশস চেক করুন: আমাদের সাইটে প্রদর্শিত SHA-256-এর সাথে প্রকাশকের নিজস্ব অফিসিয়াল সাইট, প্রোজেক্ট রিলিজ পৃষ্ঠা বা সাইনিং ম্যানিফেস্টে প্রকাশিত মূল্যের সাথে তুলনা করুন।
নিরাপত্তা সতর্কতা
যাচাইকারী যদি Facebook বা WhatsApp, এটি ইনস্টল করবেন না-এর মতো একটি বড় অ্যাপের জন্য একটি "ডিবাগ শংসাপত্র" বা একটি অজানা "স্ব-স্বাক্ষরিত" সত্তা দেখায়। এটা প্রায় অবশ্যই আপস করা হয়.
চেকসাম বোঝা (MD5, SHA-1, SHA-256)
চেকসাম হল নির্দিষ্ট দৈর্ঘ্যের স্ট্রিং যা পুরো ফাইলের প্রতিনিধিত্ব করে। আপনি যদি একটি অ্যাপের আইকনে একটি পিক্সেল পরিবর্তন করেন, তাহলে SHA-256 হ্যাশ সম্পূর্ণরূপে পরিবর্তিত হবে৷
| হ্যাশ টাইপ | নিরাপত্তা স্তর | নোট |
|---|---|---|
| MD5 | উত্তরাধিকার | সংঘর্ষের জন্য ঝুঁকিপূর্ণ। নিরাপত্তার জন্য নয়। |
| SHA-1 | পরিমিত | দ্রুত সন্ধানের জন্য এখনও ব্যাপকভাবে ব্যবহৃত হয়। |
| SHA-256 | চমৎকার | অ্যাপ যাচাইকরণের জন্য আধুনিক মান। |
কি একটি স্বাক্ষর শংসাপত্র আসলে আপনাকে বলে
যখন যাচাইকারী একটি শংসাপত্র ফেরত দেয়, তখন যে অংশগুলি সাইডলোডিং নিরাপত্তার জন্য গুরুত্বপূর্ণ সেগুলি X.509 মেটাডেটার রঙিন বিট নয় বরং অল্প কয়েকটি ক্ষেত্র। ব্যবহারিক পরিভাষায়:
- শংসাপত্রের SHA-256 আঙ্গুলের ছাপ। এটি একক সবচেয়ে গুরুত্বপূর্ণ মান: একটি 64-হেক্স-অক্ষর হ্যাশ যা স্বতন্ত্রভাবে স্বাক্ষর কী সনাক্ত করে। একই SHA-256 ফিঙ্গারপ্রিন্ট সহ দুটি APK একই ব্যক্তিগত কী দ্বারা স্বাক্ষরিত হয়েছে৷ OS এর আপডেট যুক্তিতে "স্বাক্ষর ধারাবাহিকতা" এর অর্থ এটাই।
- বিষয় বিশিষ্ট নাম. প্রায়ই CN=Some App, O=Example Inc., C=US এর মতো কিছু। একটি ইঙ্গিত হিসাবে দরকারী, পরিচয়ের প্রমাণ হিসাবে নয়, যেহেতু একজন আক্রমণকারী তাদের নিজস্ব স্ব-স্বাক্ষরিত শংসাপত্রের DN-এ তাদের পছন্দের যে কোনও স্ট্রিং রাখতে পারে৷ সর্বদা আঙুলের ছাপ ক্রস-চেক করুন, নাম নয়।
- মেয়াদকাল। সর্বাধিক বৈধ প্রকাশনা কী ~25-বছরের বৈধতার সাথে তৈরি করা হয় (ঐতিহাসিক সুপারিশ হল 10000 দিন)। একটি শংসাপত্র যা পরের মাসে মেয়াদ শেষ হবে, বা যার বৈধতা ইতিমধ্যেই অতীতকে ওভারল্যাপ করে, একটি লাল পতাকা।
- স্বাক্ষর অ্যালগরিদম। আধুনিক অ্যাপগুলি SHA256withRSA বা SHA256withECDSA ব্যবহার করে। MD5 ভেঙে গেছে; SHA1withRSA বাতিল করা হয়েছে। শুধুমাত্র v1 / SHA-1 দিয়ে স্বাক্ষর করা একটি APK 2026 সালে সন্দেহজনক।
হ্যাশ বনাম স্বাক্ষর: পার্থক্য বেশিরভাগ টিউটোরিয়াল এড়িয়ে যায়
লোকেরা প্রায়শই "হ্যাশ" এবং "স্বাক্ষর" কে একত্রিত করে। তারা খুব ভিন্ন উদ্দেশ্য পরিবেশন করে এবং একটি নিরাপদ যাচাইকরণ উভয়েরই প্রয়োজন:
- একটি হ্যাশ (সম্পূর্ণ APK-এর SHA-256) আপনাকে বলে যে ফাইলের বাইটগুলি একটি রেফারেন্স কপির সাথে অভিন্ন কিনা৷ যদি আপনার হ্যাশ প্রকাশকের প্রকাশিত হ্যাশের সাথে মেলে, তবে ফাইলটি পরিবর্তন করা হয়নি যেহেতু তারা সেই হ্যাশটি গণনা করেছে। একা হ্যাশ চেক কে বাইট তৈরি করেছে সে সম্পর্কে কিছুই বলে না।
- একটি স্বাক্ষর প্রমাণ করে কে বাইট তৈরি করেছে, বিশেষভাবে, যে ব্যক্তিগত কী ধারক স্বাক্ষরকারী শংসাপত্রের সাথে যুক্ত এই ফাইলটি তৈরি করেছে৷ একটি স্বাক্ষর চেক একাই স্বাক্ষর করার পরে ফাইলটি টেম্পার করা হয়েছে কিনা সে সম্পর্কে কিছুই বলে না (OS এটি সনাক্ত করবে এবং এটি প্রত্যাখ্যান করবে, তবে শংসাপত্র নিজেই ফাইলের বিষয়বস্তু সম্পর্কে "জানে না")।
একটি সাইডলোড করা APK-এর জন্য, সবচেয়ে শক্তিশালী আশ্বাস দুটিকে একত্রিত করে: সার্টিফিকেট ফিঙ্গারপ্রিন্টটি প্রকাশকের পরিচিত আঙ্গুলের ছাপ এবং ফাইলের SHA-256 এর সাথে মিলে যায় যেটি প্রকাশকের প্রকাশিত মূল্যের সাথে সেই সঠিক বিল্ডের জন্য।
যেখানে একটি বিশ্বস্ত রেফারেন্স ফিঙ্গারপ্রিন্ট পাবেন
যাচাইকরণের সবচেয়ে কঠিন অংশ হল তুলনা করার জন্য সঠিক মান জানা। আত্মবিশ্বাসের মোটামুটি ক্রমে কয়েকটি নির্ভরযোগ্য পন্থা:
- প্রকাশকের নিজস্ব ওয়েবসাইট বা প্রকাশের পৃষ্ঠা। অনেক ওপেন সোর্স প্রকল্প এবং নিরাপত্তা-সচেতন বিক্রেতারা তাদের ডাউনলোডের পাশাপাশি তাদের স্বাক্ষর শংসাপত্রের SHA-256 ফিঙ্গারপ্রিন্ট প্রকাশ করে। এটি সোনার মান।
- একটি বিদ্যমান প্লে স্টোর ইনস্টল। অ্যাপটি ইতিমধ্যেই একটি Play-পরিচালিত ডিভাইসে ইনস্টল করা থাকলে, এর সার্টিফিকেট ফিঙ্গারপ্রিন্ট হল প্রকাশকের আঙুলের ছাপ। আপনার সাইডলোড করা APK এর ফিঙ্গারপ্রিন্টের সাথে তুলনা করুন। Apk বিশ্লেষক (Android স্টুডিওতে) বা apksigner verify --print-certs এর মতো টুল সরাসরি একটি ইনস্টল করা APK থেকে এটি পড়ে।
- আপনি এই অ্যাপের প্রথম APK ইনস্টল করেছেন। আপনি যদি কিছু সময়ের জন্য অ্যাপটি ব্যবহার করে থাকেন এবং কখনও "স্বাক্ষর অমিল" প্রম্পট না থাকে, তাহলে আপনি আপনার পুরানো যেকোন কপি রেফারেন্স হিসাবে ব্যবহার করতে পারেন৷ একই প্রকাশকের পরবর্তী আপডেটে অবশ্যই একই কী ব্যবহার করতে হবে (অথবা v3 এর মাধ্যমে ঘোরান, সেই ক্ষেত্রে চেইনটি এখনও যাচাই করে)।
- একটি আর্কাইভ করা পাবলিক স্ন্যাপশট। ইন্টারনেট আর্কাইভ এবং অনুরূপ পরিষেবাগুলি মাঝে মাঝে তাদের ঘোষিত হ্যাশগুলির সাথে পুরানো APK রিলিজ পৃষ্ঠাগুলি সংরক্ষণ করে। অনেক পুরানো বিল্ডের জন্য দরকারী যেখানে আসল প্রকাশক পৃষ্ঠা চলে গেছে।
সাধারণ যাচাইকরণ ভুল
- ভুল ক্ষেত্রের তুলনা. "APK ফাইলের MD5" "শংসাপত্রের MD5" এর মতো নয়৷ প্রার্থী ফাইল এবং রেফারেন্সের জন্য একই ক্ষেত্র ব্যবহার করুন।
- ফাইলের নিজস্ব মেটাডেটা বিশ্বাস করা হচ্ছে। একটি APK এর ম্যানিফেস্টে যেকোনো সংস্করণের স্ট্রিং, যেকোনো প্যাকেজ লেবেল, যেকোনো লেখক ট্যাগ অন্তর্ভুক্ত করতে পারে। এগুলোর কোনোটিই ক্রিপ্টোগ্রাফিক নয়। স্বাক্ষর ব্লক হল একমাত্র জিনিস যা ওএস প্রকৃতপক্ষে যাচাই করে।
- যাচাইকরণ এড়িয়ে যাচ্ছে কারণ ফাইলটি একজন বন্ধুর দ্বারা পাঠানো হয়েছিল৷ একজন বন্ধু যিনি বলেছেন "এটি অফিসিয়াল APK" আপনার থেকে এটি আর যাচাই করেনি৷ আপনি চেক করতে পারেন এমন একটি আঙ্গুলের ছাপ প্রকাশ করে এমন একটি উত্সের উপর জোর দিন।
- একটি ম্যাচিং ক্ষেত্রকে যথেষ্ট হিসাবে বিবেচনা করা। ফাইলের SHA-256 এবং শংসাপত্রের SHA-256 ফিঙ্গারপ্রিন্ট উভয়ের সাথে মিলে যায়; একটির সাথে মিলছে কিন্তু অন্যটির সাথে নয় এটি একটি চিহ্ন যে বাইটগুলি পরিবর্তিত হয়েছে বা উত্স প্রকাশকের ছদ্মবেশ ধারণ করছে৷
- "সুবিধার জন্য" Play Protect অক্ষম করা হচ্ছে। Play Protect হল একটি দ্বিতীয়-মতামত স্ক্যানার, স্বাক্ষর যাচাইকরণের বিকল্প নয়, কিন্তু এটি প্রকৃত ম্যালওয়্যার ধরে যা স্বাক্ষর যাচাইকরণ সম্ভব নয়, কারণ Protect বিষয়বস্তু দ্বারা পরিচিত-খারাপ প্যাকেজ সম্পর্কে জানে, সাইনিং কী দ্বারা নয়৷ এটা ছেড়ে দিন।
আপনার অ্যাপ কি নিরাপদ?
অনুমান করবেন না। অফিসিয়াল ডেভেলপার সার্টিফিকেটের বিপরীতে আপনার সাইডলোড করা APK সেকেন্ডের মধ্যে যাচাই করুন।
APK যাচাইকরণ শুরু করুনপ্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)
কেন Android আমাকে একটি পরিবর্তিত APK ইনস্টল করা থেকে ব্লক করে?
কারণ নতুন APK এর স্বাক্ষরটি ইতিমধ্যে ইনস্টল করাটির সাথে মেলে না৷ এটি হ্যাকারদের আপনার আসল ব্যাঙ্কিং অ্যাপটিকে একটি জাল দিয়ে "ওভাররাইট" করতে বাধা দেয়৷
আমি কি একটি APK সংশোধন করার পরে পুনরায় স্বাক্ষর করতে পারি?
হ্যাঁ, কিন্তু আপনি একটি ভিন্ন কী ব্যবহার করবেন৷ অ্যাপটি এখনও একটি "পরিষ্কার" ফোনে ইনস্টল হবে, কিন্তু এটি আর আসল বিকাশকারীর কাছ থেকে আপডেট পাবে না৷
সার্টিফিকেট পিনিং কি?
এটি একটি উন্নত নিরাপত্তা বৈশিষ্ট্য যেখানে একটি অ্যাপ তার সার্ভারের সাথে যোগাযোগ করার আগে স্পষ্টভাবে একটি নির্দিষ্ট শংসাপত্রের জন্য পরীক্ষা করে, ট্যাম্পার করা অ্যাপগুলি সঠিকভাবে ইনস্টল করা সত্ত্বেও অকেজো করে তোলে।
প্রতিটি সাইডলোডের স্বাক্ষর যাচাইকরণ অংশ করুন
আধুনিক Android সুরক্ষায় স্বাক্ষরগুলি অনেক ভারী উত্তোলন করছে। একটি APK যাচাইকারী-এর মাধ্যমে একটি ফাইল চালানোর জন্য অতিরিক্ত কয়েক সেকেন্ড ব্যয় করা একটি টেম্পারড অ্যাপ ইনস্টল করার আগে এটিকে আপনার ডিভাইস থেকে দূরে রাখার একটি সস্তা উপায়।