অ্যাপ্লিকেশনগুলি কোড-স্বাক্ষরিত হলে, অ্যাপ্লিকেশনগুলি বান্ডেলের কোন অংশে স্বাক্ষরটি আবরণ করে?


13

মাউন্টেন সিংহে, আমি জানি যে ম্যাক অ্যাপ স্টোরের সমস্ত অ্যাপ্লিকেশন সহ কিছু অ্যাপ্লিকেশনগুলি বিকাশকারী দ্বারা ডিজিটালি স্বাক্ষরিত হয়, যাতে সেগুলি সংশোধন করা হলে স্বাক্ষরটি মেলে না এবং এটি সমস্ত ধরণের ত্রুটি বাড়িয়ে তোলে (এবং পরিস্থিতি অপারেটিং সিস্টেমের পরবর্তী প্রকাশের সাথে আরও বৃদ্ধি পাবে ...)।

আমার প্রশ্ন হ'ল। অ্যাপ্লিকেশন বান্ডেলের কোন অংশগুলি স্বাক্ষরটি কভার করে? যদি কিছু মধ্যে Appname.app/Contentsপরিবর্তনগুলি (মেটাডাটা, জন্য সংশোধিত তারিখ মত সহ Contentsফোল্ডারের), যে বিরতি স্বাক্ষর করে? এটি কি কেবল বাইনারি হয় Contents/MacOS? .Plists স্বাক্ষর অন্তর্ভুক্ত? Resources? শেষ ব্যবহারকারী হিসাবে, স্বাক্ষরটি না ভেঙে আমি কী হ্যাক করতে পারি (যদি কিছু থাকে)?


আপনার মতো টেস্টিং শুরু করা দরকার, এবং আমাদের বলুন!
অ্যাডাম ডেভিস

আমি করতে পারি, এবং যদি উত্তরটি কেউ না জানে তবে আমি করব, তবে ইতিমধ্যে যদি কেউ পরীক্ষা করে নিয়ে যায় তবে আমার চাকাটি পুনরায় উদ্ভাবন করার দরকার নেই।
ড্যানিয়েল

1
যে চাকা পারে সম্পূর্ণভাবে কিছুটা উন্নতি হলেও ব্যবহার করুন। আমি মনে করি ক্রোম স্পিনাররা অবশ্যই একটি জিনিস for
অ্যাডাম ডেভিস

উত্তর:


14

টিএল; ডিআর এটি অ্যাপ্লিকেশনটির কোন অংশে স্বাক্ষরিত হয়েছে এবং অ্যাপ্লিকেশন চালু হওয়ার পরে কোনও টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টান। অ্যাপ্লিকেশন-ভিত্তিতে অ্যাপ্লিকেশন ভিত্তিতে এটি বের করার জন্য আপনাকে ট্রায়াল এবং ত্রুটি ব্যবহার করতে হবে।

তাদের অ্যাপ্লিকেশন বান্ডিলের কোন উপাদানগুলি সিলটিতে তাদের অ্যাপ্লিকেশন সরবরাহের আগে স্বাক্ষরিত হয় সেগুলি উপস্থাপিত করে তা নির্ধারণ করা মূলত বিকাশকারীদের উপর নির্ভর করে। সিলের যে কোনও কিছু কার্যকরভাবে টেম্পার-প্রুফ কারণ হ্যাশ স্বাক্ষরগুলি পরিবর্তন না করে এই জিনিসগুলিকে সংশোধন করা বেশিরভাগই অসম্ভব। তবে এর অর্থ এই নয় যে আপনি তাদের সাথে কোনওভাবেই হৈচৈ করতে পারবেন না।

আপনার কী স্বাক্ষর করা উচিত সে সম্পর্কে অ্যাপল বিকাশকারী নির্দেশকের এই কথাটি রয়েছে:

আপনার অ্যাপ্লিকেশন, সরঞ্জাম, লুকানো সহায়ক সরঞ্জাম, ইউটিলিটিস এবং আরও সহ আপনার পণ্যটিতে প্রতিটি এক্সিকিউটেবলকে স্বাক্ষর করা উচিত। অ্যাপ্লিকেশন বান্ডেলে স্বাক্ষর করা এর সংস্থানগুলিকে coversেকে দেয় তবে এর উপ-উপাদানগুলি যেমন সরঞ্জাম এবং উপ-বান্ডিলগুলি নয়। এগুলির প্রত্যেককে স্বতন্ত্র স্বাক্ষর করতে হবে।

যদি আপনার অ্যাপ্লিকেশনটিতে এক বা একাধিক ছোট সহায়ক সরঞ্জামগুলির সাথে একটি বড় ইউআই অংশ থাকে যা ব্যবহারকারীর কাছে একক মুখ উপস্থাপন করার চেষ্টা করে, আপনি তাদেরকে ঠিক একই কোড স্বাক্ষরকারী শনাক্তকারীকে দিয়ে কোড সাইনিংয়ের সাথে আলাদা করতে পারবেন না। (আপনি তা নিশ্চিত করেই করতে পারেন যে তাদের সকলেরই তাদের তথ্য.পিস্টে একই সিএফবান্ডেলআইডেন্টিফায়ার মান রয়েছে, বা কোডসাইন কমান্ডের -i বিকল্পটি ব্যবহার করে একই শনাক্তকারীকে বরাদ্দ করতে পারেন)) সেক্ষেত্রে আপনার প্রোগ্রামের সমস্ত উপাদান রয়েছে একই কীচেন আইটেমগুলিতে অ্যাক্সেস করুন এবং একই প্রোগ্রাম হিসাবে বৈধতা দিন। এটি কেবল তখনই করুন যদি জড়িত প্রোগ্রামগুলি সত্যই কোনও একক সত্তা গঠনের জন্য বোঝানো হয়, যাতে কোনও ভিন্নতা তৈরি হয় না।

একটি সর্বজনীন বাইনারি (বান্ডিল বা সরঞ্জাম) প্রতিটি আর্কিটেকচার উপাদানগুলিতে স্বয়ংক্রিয়ভাবে পৃথক স্বাক্ষর প্রয়োগ করা হয়। এগুলি স্বতন্ত্র এবং সাধারণত ব্যবহারকারীর সিস্টেমে কেবল স্থানীয় আর্কিটেকচার যাচাই করা হয়।

ইনস্টলার প্যাকেজগুলির (.pkg এবং .mpkg বান্ডিল) ক্ষেত্রে, সমস্ত কিছুই স্পষ্টতই স্বাক্ষরিত হয়: পিলোডযুক্ত সিপিআইও সংরক্ষণাগার, সিপিআইও সংরক্ষণাগার ইনস্টল স্ক্রিপ্ট, এবং বিটির সামগ্রীগুলির (বিওএম) প্রত্যেকটিতে এক্সআআর রেকর্ড করা একটি হ্যাশ রয়েছে শিরোনাম এবং সেই শিরোনামে স্বাক্ষরিত হয়। সুতরাং, আপনি যদি প্যাকেজ স্বাক্ষর হওয়ার পরে কোনও ইনস্টল স্ক্রিপ্ট (উদাহরণস্বরূপ) পরিবর্তন করেন তবে স্বাক্ষরটি অবৈধ।

আপনি নিজের প্লাগ-ইন এবং লাইব্রেরিগুলিতে সাইন করতেও চাইতে পারেন। যদিও এটি বর্তমানে প্রয়োজনীয় নয় তবে ভবিষ্যতে এটি হবে এবং এই উপাদানগুলিতে স্বাক্ষর রাখার কোনও অসুবিধা নেই।

পরিস্থিতির উপর নির্ভর করে কোডসাইন আপনার মাচ-ও এক্সিকিউটেবল ফাইলটিতে যুক্ত করতে পারে, এতে বর্ধিত বৈশিষ্ট্য যুক্ত করতে পারে বা আপনার বান্ডেলের সামগ্রী ডিরেক্টরিতে নতুন ফাইল তৈরি করতে পারে। আপনার অন্য ফাইলগুলির কোনওটিই সংশোধিত হয়নি।

এছাড়াও এখান থেকে এটি অগত্যা সত্য নয় যে কোনও অ্যাপ্লিকেশনের জন্য অবৈধ স্বাক্ষর থাকার অর্থ এটি চালু করতে ব্যর্থ হবে। পৃষ্ঠাটি বলে:

স্বাক্ষরটি যাচাই করতে হবে কিনা তা নির্ধারণ করার জন্য এবং এটি যাচাইয়ের ফলাফলগুলি কীভাবে মূল্যায়ন করতে হবে তা নির্ধারণ করার জন্য স্বাক্ষরিত কোডটি চালু বা লোড করা সিস্টেম বা প্রোগ্রামের উপর নির্ভর করে।

কোনও অ্যাপ্লিকেশন পরিবর্তনের অনুমতি দেওয়ার জন্য চয়ন করতে পারে।

আপনার সেরা বাজি হ'ল আপনি যে কোনও অ্যাপ্লিকেশনটি সংশোধন করার চেষ্টা করছেন তার সাথে একটি পরীক্ষামূলক এবং ত্রুটিযুক্ত পদ্ধতি approach এটি কাজ করতে পারে, এটি নাও পারে। সর্বদা-সত্য উত্তর দেওয়া যায় না।

যদি কোনও অ্যাপ্লিকেশন স্বাক্ষরিত হয় তবে আপনি বান্ডিলের কোনও Contents/CodeResourcesফাইল বা একটি Contents/_CodeSignature/CodeResourcesফাইল সন্ধান করতে পারেন । এই ফাইলটি সমস্ত স্বাক্ষরিত উপাদান এবং তাদের প্রত্যাশিত হ্যাশ মানগুলি বান্ডেলে তালিকাবদ্ধ করে। কোনও বিকাশকারী কী কী অ্যাপ্লিকেশনটির টুকরোটি পরিবর্তনগুলি দেখার পক্ষে যথেষ্ট সমালোচিত তা বোঝার জন্য এটি ভাল জায়গা।


0

যদিও প্রশ্নটি মাউন্টেন সিংহটিকে বিশেষভাবে উল্লেখ করেছে, ম্যাকোসের নতুন সংস্করণে একটি গুরুত্বপূর্ণ পরিবর্তন রয়েছে। ম্যাকোস 10.11 এবং তারপরে, সম্পূর্ণ কোডটি আবরণ করে না এমন স্বাক্ষরগুলি প্রত্যাখ্যান করা হয়।

দেখুন MacOS কোড সাইন ইন গভীরতা ইন - প্রযুক্তিগত নোট TN2206

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.