পিক্সেল বাইনারি ট্রান্সপারেন্সি লগ ট্রান্সপারেন্সি লগ প্রযুক্তি ব্যবহার করে।
সার্টিফিকেট ট্রান্সপারেন্সি , একটি ইন্টারনেট প্রোটোকলের মাধ্যমে স্বচ্ছতা লগের উপযোগিতা প্রমাণিত হয়েছে যার জন্য সার্টিফিকেট কর্তৃপক্ষকে সার্টিফিকেট ট্রান্সপারেন্সি লগে প্রকাশ করা শংসাপত্র প্রকাশ করতে হবে। এই প্রক্রিয়াটি সার্টিফিকেটের ভুল ইস্যুকে অনেকাংশে হ্রাস করেছে, যার ফলে ইন্টারনেটের নিরাপত্তা বৃদ্ধি পেয়েছে। অনেক সার্টিফিকেট ট্রান্সপারেন্সি লগ অপারেটর transparency.dev এ পাওয়া স্বচ্ছতা লগের বাস্তবায়নের উপর নির্ভর করে।
মার্কেল গাছের সাথে স্বচ্ছতা লগ প্রয়োগ করা হয়। এই পৃষ্ঠাটি Merkle গাছ এবং বাইনারি স্বচ্ছতার সাধারণ জ্ঞান অনুমান করে। মার্কেল গাছের একটি ওভারভিউ এবং বাইনারি স্বচ্ছতার ওভারভিউয়ের জন্য ল্যান্ডিং পৃষ্ঠার জন্য যাচাইযোগ্য ডেটা স্ট্রাকচার দেখুন।
লগ বাস্তবায়ন
পিক্সেল বাইনারি ট্রান্সপারেন্সি লগ একটি টালি-ভিত্তিক মার্কেল ট্রি হিসাবে প্রয়োগ করা হয়েছে। টাইলের বিষয়বস্তুর রুট https://developers.google.com/android/binary_transparency/tile-এ দেওয়া হয়। দ্রষ্টব্য: এটি একটি নিয়মিত ওয়েব পৃষ্ঠা নয়; এর সাবডিরেক্টরিতে থাকা লগ এন্ট্রিগুলিকে গোলাং সামডিবি টিলগ লাইব্রেরির মাধ্যমে প্রোগ্রামেটিকভাবে পড়া উচিত এবং ব্রাউজারের মাধ্যমে নয়।
এন্ট্রিতে কী রয়েছে তার বিবরণের জন্য লগ কন্টেন্ট দেখুন।
একটি চেকপয়েন্টে থাকা একটি লগের Merkle ট্রি রুট হ্যাশ https://developers.google.com/android/binary_transparency/checkpoint.txt- এ দেওয়া হয়। এটি চেকপয়েন্ট বিন্যাসে উপস্থাপিত হয়। এই Merkle গাছের পাতা https://developers.google.com/android/binary_transparency/image_info.txt- এ পরিবেশন করা হয়। চেকপয়েন্টের স্বাক্ষর নিম্নলিখিত পাবলিক কী দিয়ে যাচাই করা যেতে পারে:
-----BEGIN CERTIFICATE-----
MIICPDCCAeOgAwIBAgIVAPooxISw/nFF/dPwmCUaV36Z4s3hMAoGCCqGSM49BAMCMHQxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYD
VQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAgFw0y
MTA3MTkyMjQxNDFaGA8yMDUxMDcxOTIyNDE0MVowdDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
bGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC0dvb2dsZSBJbmMuMRAw
DgYDVQQLEwdBbmRyb2lkMRAwDgYDVQQDEwdBbmRyb2lkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEU83uXNUiTYE53c2TfdWmqpW20bBXy4KEf5Ff8dV8GLKlVAXKHyjw3Lp9J3E0yCRJ/39XKeuA
AMF7KzSvhD248KNQME4wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUHRpvuNkzjtBY213BWgUyWWHm
3VYwHwYDVR0jBBgwFoAUHRpvuNkzjtBY213BWgUyWWHm3VYwCgYIKoZIzj0EAwIDRwAwRAIgZsZb
CNBXRkCKLS+LG/41VWj1cTszt9QCdJQNuy7aT94CIDPgn7v5b1ykBVUTuLgRSofxAzHg9R4dg1oA
7tTFAuDg
-----END CERTIFICATE-----
যাচাইকরণ প্রক্রিয়াটি লগ থেকে লগ এন্ট্রি ধারণকারী চেকপয়েন্ট এবং টাইলস পড়ে।
যাচাইকরণ প্রক্রিয়া
হ্যাশ সমন্বিত একটি Merkle গাছের সাথে একটি স্বচ্ছতা লগ প্রয়োগ করা হয়। একটি লিফ নোডে ডেটা থাকে এবং একটি প্যারেন্ট নোডে এর বাচ্চাদের হ্যাশ থাকে।
ট্রান্সপারেন্সি লগের টেম্পার-স্পষ্ট সম্পত্তি যাচাই করার জন্য মার্কেল গাছে দুটি গণনা করা হয়: অন্তর্ভুক্তি প্রমাণ এবং ধারাবাহিকতা প্রমাণ। প্রাক্তনটি প্রমাণ করে যে লগটিতে একটি চিত্র সংস্করণের সাথে সম্পর্কিত একটি এন্ট্রি রয়েছে, যেটি। লগ এন্ট্রিতে VBMeta ডাইজেস্ট রয়েছে, একটি হ্যাশ যা OS চিত্রগুলিকে উপস্থাপন করে, যা একটি ডিভাইস থেকে ফেরত দেওয়া যেতে পারে। পরবর্তীটি প্রমাণ করে যে যখন গাছে নতুন এন্ট্রি যুক্ত করা হয়, তখন নতুন চেকপয়েন্টটি গাছের পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যপূর্ণ।
আপনার Pixel ছবি যাচাই করতে, অন্তর্ভুক্তির প্রমাণটি সম্পাদন করুন। ধারাবাহিকতা প্রমাণ গণনা সম্পাদন করা ঐচ্ছিক, কারণ তৃতীয় পক্ষগুলি ক্রমাগত তা করছে।
আপনি যদি Pixel Binary ট্রান্সপারেন্সিতে যাচাইকরণের ধারণার সাথে নিজেকে পরিচিত করতে চান, তাহলে আপনি আপনার Pixel ডিভাইসে চলমান ছবি ব্যবহার করতে নিচের নির্দেশাবলী অনুসরণ করতে পারেন। আপনি যদি সর্বোচ্চ আত্মবিশ্বাসের সাথে Pixel ফার্মওয়্যার চালাতে চান, তাহলে Pixel Binary Transparency Full Verification- এ যাচাইকরণ প্রক্রিয়াটি দেখুন।
পূর্বশর্ত
নিম্নলিখিত নির্ভরতা উপলব্ধ রয়েছে তা নিশ্চিত করুন:
- Golang: যাচাইকরণ টুলটি অবশ্যই Go 1.17 বা তার পরে তৈরি হতে হবে, যা Go সাইট থেকে উপলব্ধ।
- অ্যান্ড্রয়েড ডিবাগ ব্রিজ (এডিবি): ছবিটি পরিদর্শন করার জন্য একটি অ্যান্ড্রয়েড ডিভাইসের সাথে যোগাযোগ করে, অ্যান্ড্রয়েড SDK প্ল্যাটফর্ম টুলস ওয়েবসাইটে উপলব্ধ।
- অন্তর্ভুক্তি প্রমাণ যাচাইকারী: পিক্সেল চিত্রটি বাইনারি স্বচ্ছতা লগে আছে কিনা তা পরীক্ষা করতে লগের সাথে ইন্টারফেস।
# Source code for the inclusion proof verifier is found at avb/tools/transparency/verify
git clone https://android.googlesource.com/platform/external/avb
অন্তর্ভুক্তি প্রমাণ
একজন পিক্সেল মালিক প্রথমে প্রাসঙ্গিক মেটাডেটা বের করে, তারপর প্রকাশিত চেকপয়েন্টে থাকা রুট হ্যাশের সাথে তাদের পুনঃগণনা করা রুট হ্যাশের তুলনা করে লগে তাদের ছবি আছে কিনা তা পরীক্ষা করতে পারেন। যদি সেগুলি মিলে যায়, তাহলে পিক্সেলের মালিককে কিছু সুরক্ষার বিষয়ে আশ্বস্ত করা যেতে পারে যা থ্রেট মডেলে উদাহরণ দেওয়া হয়েছে৷
একটি পিক্সেল ডিভাইসের চিত্রটি স্বচ্ছতার লগে আছে কিনা তা পরীক্ষা করতে, adb দিয়ে ডিভাইসের সাথে সংযোগ করুন , তারপর নিম্নলিখিত কমান্ডগুলি চালান:
FINGERPRINT=$(adb shell getprop ro.build.fingerprint)
VBMETA_DIGEST=$(adb shell getprop ro.boot.vbmeta.digest)
LOG_ENTRY="${FINGERPRINT}\n${VBMETA_DIGEST}\n"
PAYLOAD_PATH="/tmp/log_payload.txt"
echo -e $LOG_ENTRY >> $PAYLOAD_PATH
cd avb/tools/transparency/verify/
go build cmd/verifier/verifier.go
./verifier --payload_path=$PAYLOAD_PATH
প্রথম স্তবকটি লগ এন্ট্রির বিন্যাসে একটি পিক্সেল ডিভাইস থেকে মেটাডেটা পুনরুদ্ধার করে এবং এটিকে /tmp/log_payload.txt
এ সংরক্ষণ করে।
দ্বিতীয় স্তবকটি Android যাচাইকৃত বুট সংগ্রহস্থলে প্রকাশিত অন্তর্ভুক্তি প্রমাণ যাচাইকারী চালায়। এই টুলটি প্রার্থীর লগ এন্ট্রির হ্যাশ গণনা করে, লগ থেকে চেকপয়েন্ট পুনরায় গণনা করার জন্য প্রয়োজনীয় অন্যান্য হ্যাশগুলি পুনরুদ্ধার করে এবং লগ দ্বারা প্রকাশিত চেকপয়েন্টের সাথে তুলনা করে।
কমান্ডের আউটপুট stdout এ লেখা হয়:
-
OK
যদি ছবিটি লগে অন্তর্ভুক্ত করা হয়, - এটি না হলে
FAILURE
.
সামঞ্জস্য প্রমাণ (ঐচ্ছিক)
যেহেতু Google পর্যায়ক্রমে Pixel ফ্যাক্টরি ইমেজের নতুন সংস্করণ প্রকাশ করে, তাই স্বচ্ছতা লগ ক্রমাগত বৃদ্ধি পাচ্ছে। একজন সাক্ষী পরীক্ষা করে দেখেন যে গাছটি আগের পাতার সাথে সামঞ্জস্যপূর্ণভাবে বেড়েছে। সাক্ষী গাছের মূল হ্যাশের ট্র্যাক রাখে এবং গাছ থেকে নতুন পাতার হ্যাশের অনুরোধ করে পরবর্তী প্রার্থী রুট হ্যাশ গণনা করে। একটি স্বচ্ছতার লগ টেম্পার-প্রকাশ্য হওয়ার জন্য, এটি ধারাবাহিকতার জন্য ক্রমাগত পরীক্ষা করা আবশ্যক।
ট্রান্সপারেন্সি লগের শুধুমাত্র যুক্ত আচরণ তৃতীয় পক্ষের দ্বারা সক্রিয়ভাবে চেক করা হয় এবং তাই অধিকাংশ ব্যবহারকারীর নিজেরা এটি করার প্রয়োজন নেই, কিন্তু যে কারো পক্ষে লগের সামঞ্জস্যতা নিরীক্ষণ করা সম্ভব। Google এই Github রেপোতে একজন সাক্ষীর একটি ওপেন-সোর্স বাস্তবায়ন প্রকাশ করেছে। পিক্সেল বাইনারি ট্রান্সপারেন্সি (পিক্সেলবিটি) লগের জন্য নির্দিষ্ট কনফিগারেশন ব্যবহার করা প্রয়োজন।