অ্যাড-হক কোড সাইনিংয়ের বিধিনিষেধগুলি কী কী?


14

কোড বা অ্যাপ্লিকেশনগুলি "অ্যাড-হক" ব্যবহার করে সাইন ইন করা সম্ভব codesign। ম্যান পৃষ্ঠাটি অ্যাড-হক কোড সাইনিং সম্পর্কে আমাদের নিম্নোক্তটি জানিয়েছে:

পরিচয়টি যদি একক বর্ণ হয় তবে "-" (ড্যাশ), অ্যাড-হক স্বাক্ষর করা হয়। অ্যাড-হক স্বাক্ষর মোটেও কোনও পরিচয় ব্যবহার করে না, এবং কোডের ঠিক একটি উদাহরণ চিহ্নিত করে। উল্লেখযোগ্য বিধিনিষেধগুলি অ্যাড-হক স্বাক্ষরিত কোড ব্যবহারের জন্য প্রযোজ্য; এটি ব্যবহার করার আগে ডকুমেন্টেশনের সাথে পরামর্শ করুন।

(আমার দ্বারা জোর দেওয়া)

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

এই "উল্লেখযোগ্য বাধা" কী এবং সেগুলি কোথায় নথিভুক্ত করা হয়?

উত্তর:


9

মূলত এই প্রসঙ্গে স্বাক্ষর করার অর্থ বাইনারিটি কোনও ক্রিপ্টোগ্রাফিক প্রমাণ ছাড়াই স্বাক্ষরিত।

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

প্রোগ্রামগুলি চলাকালীন, ম্যাকোস সিস্টেম যাচাই করতে পারে যে এই স্বাক্ষরগুলি বৈধ কিনা এবং এটি স্বাক্ষরকারী পরিচয়কে বিশ্বাস করে - এবং যদি তা করে তবে প্রোগ্রামটি চালান। এটি গেটকিপার কার্যকারিতার মূল কথা।

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

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

ক্রিপ্টোগ্রাফিক প্রমাণ ব্যতীত এই "অবকাঠামোগত" চেকটি সাধারণ উপায়ে করা যায় না।

পরিবর্তে অ্যাড-হক স্বাক্ষরিত বাইনারিগুলি কার্নেলের অভ্যন্তরে স্থির বিশ্বাসের ক্যাশে থাকা "পরিচিত ভাল" হ্যাশ মানগুলির তালিকার সাথে SHA-1 হ্যাশ মানের তুলনা করে পরীক্ষা করা হয়।

সংক্ষেপে এর অর্থ হ'ল যে আপনি যে অ্যাপ্লিকেশনটিতে নিজেরাই স্বাক্ষর করেন তার উপরে "উল্লেখযোগ্য বিধিনিষেধ" রক্ষা হ'ল এটি কোনও ধরণের যাচাইকরণ কোথাও পাস করবে না। এটি মূলত একটি স্বাক্ষরবিহীন বাইনারি হিসাবে একই।

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

অনুশীলনে অ্যাড-হক স্বাক্ষরিত বাইনারিগুলি তৈরি করা কেবল অ্যাপল বিকাশকারীদের জন্য ব্যবহারিক মূল্য।

আপনি অ্যাপলের বিকাশকারী বিভাগে অ্যাড-হক সাইন ইন ছোটখাটো ডকুমেন্টেশন খুঁজে পেতে পারেন। উদাহরণ স্বরূপ:

https://developer.apple.com/documentation/security/seccodesignatureflags/kseccodesignatureadhoc

তবে আপনি কোডইন ইউটিলিটি নিজেই সোর্স কোডে এবং লাইবসিকিউরিটির সোর্স কোডে নথির স্নিপেটগুলিও খুঁজে পেতে পারেন।


এখানে "কেবলমাত্র অ্যাপল বিকাশকারীদের জন্য ব্যবহারিক মূল্য" এর অর্থ, "কেবলমাত্র অ্যাপল এ কাজ করা বিকাশকারীদের" বা "কেবল অ্যাপল প্ল্যাটফর্মগুলিতে কাজ করা বিকাশকারীদের জন্য" রয়েছে? সত্যই কৌতূহলপূর্ণ, আমরা কিছু নতুন ইস্যু পেতে শুরু করেছি যেখানে নামটি সঠিক হওয়ার পরেও কীচেইন চাবিটি খুঁজে পাচ্ছে না, এবং আমরা রিলিজহীন বিল্ডগুলির জন্য হাইফেনে স্যুইচ করার কথা ভাবছি।
ট্রেজকাজ

1
কেবল অ্যাপল এ কাজ করা বিকাশকারীদের জন্য অর্থ।
jksoegaard

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

@ মিল্ক আপনি দুটি সম্পর্কযুক্ত ধারণা মিশ্রণ করছেন - "অ্যাডহক সাইন ইন" (যা এই প্রশ্নটি ছিল), এবং "অ্যাডহক ডিস্ট্রিবিউশন" (যা আইওএস বিকাশকারী প্রায়শই ব্যবহার করে এবং এনটাইটেলমেন্টগুলি উদ্বেগ করে ইত্যাদি)
jksoegaard

আমি নিশ্চিত যে সিমুলেটর বিল্ডগুলি অ্যাডহক স্বাক্ষরিত (বিতরণ নয়)। আপনি সিমুলেটারের জন্য নির্মিত একটি iOS অ্যাপটি পরিদর্শন করে পরীক্ষা করতে পারেন codesign -dv --verbose=4 /path/to/the.app। আপনি এমন একটি লাইন ফিরে পেয়ে যাবেন Signature=adhocযা দেখে মনে হয় এটি অ্যাডহক স্বাক্ষর। উল্লেখযোগ্যভাবে অনুপস্থিত হ'ল অন্যান্য কীগুলি যা সাধারণত নিয়মিত স্বাক্ষরিত আইওএস অ্যাপ্লিকেশনটিতে উপস্থিত থাকে, যেমন AuthorityএবংTeamIdentifier
মিল্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.