বিষয়বস্তু এড়িয়ে যান
Nymchat-এ ফেরত যান

জ্ঞানের ভিত্তি ফণা অধীনে

বিল্ড যাচাই করা হচ্ছে

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

প্রজননযোগ্য বিল্ড

অ্যাপ তৈরি করা একটি নির্গত করে build-manifest.json উৎস কমিট ধারণ করে, ক প্রতিটি পরিবেশিত HTML, জাভাস্ক্রিপ্ট এবং CSS সম্পদের SHA-256 হ্যাশ এবং একটি একক bundleHash যে পুরো সম্পদ সেট উপর.

আউটপুট শুধুমাত্র উৎস বিষয়বস্তুর উপর নির্ভর করে — এমনকি রেকর্ড করা বিল্ড সময় হয় বিল্ড চালানোর মুহুর্তের চেয়ে কমিট এর টাইমস্ট্যাম্প - তাই যে কেউ একই পুনর্নির্মাণ করে কমিট বাইট-অভিন্ন ফাইল এবং একই পায় bundleHash.

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

সম্পর্কে ডায়ালগ কি চেক করে

সম্পর্কে শিরোনামে আপনার ব্রাউজারে চেক লাইভ চালায়।

Nymchat সম্পর্কে ডায়ালগ, সংস্করণ দেখাচ্ছে, অখণ্ডতা তৈরি করে এবং ক্যানারি স্ট্যাটাস নিশ্চিত করে।
সম্বন্ধে ডায়ালগ: সংস্করণ, বিল্ড ইন্টিগ্রিটি, ওয়ারেন্ট ক্যানারি এবং ডেভেলপারের কাছে সরাসরি লাইন।

এটি পৃষ্ঠাটি আসলে চলমান প্রতিটি সম্পদকে পুনরায় আনয়ন করে, ওয়েব ক্রিপ্টো API দিয়ে হ্যাশ করে এবং ম্যানিফেস্টের সাথে তুলনা করে। তারপর - এবং এই অংশটিই গুরুত্বপূর্ণ - এটি পুনরায় গণনা করে bundleHash হ্যাশ থেকে এটা শুধু গণনা করা হয়েছে, থেকে নয় যা কিছু ম্যানিফেস্ট দাবি করে, এবং ভান্ডারের স্বাক্ষরিত প্রত্যয়নগুলিতে তা দেখায় GitHub API এর মাধ্যমে।

এটিই একটি স্থাপনাকে নিজের জন্য প্রমাণ করা থেকে থামায়: সংশোধিত ফাইলগুলি একসাথে পরিবেশন করা একটি ম্যাচিং ম্যানিফেস্ট এখনও ব্যর্থ হয়, কারণ পুনরায় গণনা করা হ্যাশের কোনো প্রত্যয়ন নেই।

স্ট্যাটাসমানে
&চেক করুন; যাচাইকৃত অফিসিয়াল অ্যাপ (n/n)প্রতিটি সম্পদ মেলে, পুনঃগণনা করা বান্ডেল হ্যাশ সংগ্রহস্থল দ্বারা সত্যায়িত হয়, এবং পৃষ্ঠাটি অফিসিয়াল ডোমেন থেকে পরিবেশিত হয়।
⚠ যাচাইকৃত বিল্ড · অফিসিয়াল অ্যাপ নয়কোডটি প্রকৃত এবং সত্যায়িত, তবে এটি অন্য ডোমেনের একটি আয়না। একটি আয়না ব্যর্থ যাচাই ছাড়া এই সতর্কতা অপসারণ করতে পারে না।
✗ অমিলএকটি সম্পদ ম্যানিফেস্ট যা বলে তা হ্যাশ করে না।
✗ অনানুষ্ঠানিক নির্মাণপুনঃগণনা করা বান্ডেল হ্যাশের সংগ্রহস্থল থেকে কোনো প্রত্যয়ন নেই — একটি স্ব-নির্মিত ম্যানিফেস্ট।
⚠ উদ্ভব অগম্যGitHub API পৌঁছানো যায়নি, তাই প্রত্যয়ন উভয় উপায়ে চেক করা যায়নি।

নিজেই যাচাই করে নিচ্ছেন

কমিট পুনর্নির্মাণ করুন সম্বন্ধে ডায়ালগ নাম এবং তুলনা করুন:

git clone https://github.com/Spl0itable/NYM
cd NYM
git checkout <commit shown in the About dialog>
npm ci
npm run build   # prints "Build hash: <bundleHash>"

মুদ্রিত হ্যাশটি সম্পর্কে ডায়ালগের একটি এবং সেই কমিটের একটির সাথে মিলিত হওয়া উচিত বিল্ড-প্রোভেনেন্স রানের সারাংশ। আপনি GitHub CLI এর সাথে সরাসরি স্বাক্ষর পরীক্ষা করতে পারেন:

gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM

অ্যান্ড্রয়েড এবং আইওএস অ্যাপ

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

অ্যান্ড্রয়েড পরবর্তী সেরা কাজ করতে পারে। ইনস্টল করা হয়েছে .apk অ্যাপটি পড়তে পারে এমন একটি ফাইল এবং হ্যাশ, এবং প্রতিটি প্রকাশিত রিলিজের হ্যাশ ইতিমধ্যেই সর্বজনীন: তে প্রকাশ করা হচ্ছে Zapstore APK এর SHA-256 এবং এর স্বাক্ষরকারী শংসাপত্রের SHA-256 বহনকারী একটি Nostr ইভেন্টে স্বাক্ষর করে। তাই অ্যান্ড্রয়েড সম্পর্কে ডায়ালগ যে APK থেকে এটি চলছে সেটি হ্যাশ করে, সাইন করাদের নিয়ে আসে ইভেন্টগুলি, শুধুমাত্র বিকাশকারীর কী দ্বারা স্বাক্ষরিতগুলিকে রাখে এবং তুলনা করে৷ এটি দুটি দেখায় পাশাপাশি হ্যাশ, যাতে আপনি ডিভাইসটি চেক বন্ধের পুনরাবৃত্তি করতে পারেন: প্রকাশিত APK ডাউনলোড করুন, চালান sha256sum এটিতে, এবং নিজেই একই ইভেন্টটি দেখুন।

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

iOS চেক করা যাবে না। অ্যাপল প্রতিটি ডাউনলোডকে এনক্রিপ্ট করে এবং পুনরায় সাইন করে স্বতন্ত্রভাবে, তাই আপনার আইফোনে গণনা করা একটি হ্যাশ আপনার আইফোনের জন্য অনন্য এবং কিছুই মেলে না কোথাও প্রকাশিত। সম্পর্কে সংলাপ একটি আশ্বস্ত দেখানোর পরিবর্তে এটি সরাসরি বলে স্ট্যাটাস মানে কিছুই না। আপনি যদি একটি Nymchat চান তাহলে আপনি Apple হার্ডওয়্যারে যাচাই করতে পারেন, ওয়েব ব্যবহার করুন৷ অ্যাপ, যা চলমান প্রতিটি ফাইল চেক করে।

এর কোনটাই কি প্রমাণ করে না

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

ওয়ারেন্ট ক্যানারি

একটি ওয়ারেন্ট ক্যানারি হল একটি বিবৃতি, একটি নির্দিষ্ট সময়সূচীতে প্রকাশিত, যা ডেভেলপারের আছে না একটি গোপন সরকারি আদেশ তারা প্রকাশ করতে নিষেধ করেছেন—ক জাতীয় নিরাপত্তা চিঠি, একটি FISA আদেশ। ডেভেলপারকে নীরব থাকতে বাধ্য করা যেতে পারে এমন একটি আদেশ, কিন্তু মিথ্যা বলতে বাধ্য করা যাবে না, তাই ক্যানারি বাসি বা অদৃশ্য হয়ে যাচ্ছে নিজেই সংকেত।

এটি বসবাস করে canary.json সংগ্রহস্থলের মূলে এবং সরাসরি আনা হয় GitHub থেকে, তাই এর ইতিহাস স্থাপন করা সাইট যা বলে তা থেকে স্বাধীনভাবে নিরীক্ষণযোগ্য। সম্বন্ধে ডায়ালগ এটি রঙ-কোড করে:

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

সতেজতা নোঙ্গর

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