এসিই-আরআইএসসিভি একটি ওপেন সোর্স প্রকল্প, যার লক্ষ্য একটি আনুষ্ঠানিকভাবে প্রমাণিত সুরক্ষা মনিটরের সাথে একটি গোপনীয় কম্পিউটিং কাঠামো সরবরাহ করা। এটি উপর ভিত্তি করে ক্যানোনিকাল আর্কিটেকচার এবং অন্যান্য স্থাপত্যগুলিতে বহনযোগ্য হওয়ার লক্ষ্য নিয়ে আরআইএসসি-ভি লক্ষ্য করে। আনুষ্ঠানিক যাচাইকরণের প্রচেষ্টা সুরক্ষা মনিটর বাস্তবায়নে ফোকাস করে। আমরা সহযোগী গোপনীয় কম্পিউটিং প্রযুক্তির সীমানা ঠেকাতে আমাদের সাথে কাজ করার জন্য সহযোগীদের আমন্ত্রণ জানাই।
আনুষ্ঠানিক যাচাইকরণ:
এই প্রকল্পটি আরআইএসসি-ভি কোভ স্পেসের ডিপ্লোয়মেন্ট মডেল 3 এ পরিশিষ্ট ডি-তে উল্লেখ করা হয়েছে, আনুষ্ঠানিক স্পেসিফিকেশনটি সুরক্ষা মনিটরের উত্স কোডে এম্বেড করা হয়েছে এবং প্রমাণগুলি যাচাইকরণ/ ফোল্ডারে রয়েছে। আমাদের পড়ুন পেপার 1 এবং কাগজ 2 পদ্ধতির এবং লক্ষ্যগুলি সম্পর্কে জানতে।
পোস্ট-কোয়ান্টাম ক্রিপ্টোগ্রাফি (পিকিউসি) এবং সত্যতা: এসিই স্থানীয় সত্যতা সমর্থন করে, সীমিত বা কোনও নেটওয়ার্ক সংযোগ সহ এম্বেডেড সিস্টেমগুলির জন্য উদ্দেশ্যে গোপনীয় ভিএমএসকে প্রমাণীকরণের একটি প্রক্রিয়া। আমরা ইতিমধ্যে পিকিউসি সমর্থন করি, বিশেষত আমরা এমএল-কেম, এসএএ -384 এবং এইএস-জিসিএম -256 ক্রিপ্টোগ্রাফি ব্যবহার করি।
আমরা বর্তমানে ইন্টিগার (আই), পারমাণবিক (ক) এবং হাইপারভাইজার এক্সটেনশনস (এইচ), শারীরিক মেমরি প্রোটেকশন (পিএমপি), মেমরি ম্যানেজমেন্ট ইউনিট (এমএমইউ), আইওপিএমপি, কোর-লোকাল বিঘ্নিত নিয়ামক (সিএলএনটি), এবং সুপারভাইজার টাইমক্যাম্প এক্সটেনশন (এসএসটিসি) দিয়ে আরআইএসসি-ভি -৪-বিট নিয়ে তৈরি করছি।
এসিই চালানোর জন্য আরআইএসসি-ভি হার্ডওয়্যার:
একটি অনুকরণীয় আরআইএসসি-ভি পরিবেশে একটি অবিশ্বস্ত লিনাক্স কেভিএম হাইপারভাইজারের অধীনে নমুনা গোপনীয় কাজের চাপগুলি চালানোর জন্য নির্দেশাবলী অনুসরণ করুন।
কাঠামোর সম্পূর্ণ সংকলনটি দীর্ঘ সময় নেয় কারণ অনেকগুলি সরঞ্জাম উত্স থেকে নির্মিত হয়। আমাদের টুলচেইনে বর্তমানে অন্তর্ভুক্ত রয়েছে: হাইপারভাইজার কার্নেল (Linux kernel
), গোপনীয় অতিথি কার্নেল (Linux kernel
) এবং ফার্মওয়্যার (security monitor
সঙ্গে OpenSBI firmware
)। যুক্তিসঙ্গত (~ 30 মিনিট) বিল্ড টাইমের জন্য কমপক্ষে 4 টি কোর, 4 জিবি র্যাম এবং 50 জিবি ডিস্ক স্পেস সহ একটি মেশিনে এই প্রকল্পটি তৈরি করার বিষয়টি নিশ্চিত করুন।
আপনি যে অপারেটিং সিস্টেমটি ব্যবহার করেন তার জন্য নির্দিষ্ট বিল্ড নির্ভরতাগুলি ইনস্টল করতে হবে এবং মরিচা সরঞ্জামচেইন ইনস্টল করতে হবে। আপনি কন্টিনিয়াস ইন্টিগ্রেশন (সিআই) সিস্টেমের পুনরুত্পাদনযোগ্য বিল্ড কনফিগারেশনটিও দেখতে পারেন।
উবুন্টু 22.04 এর জন্য নির্ভরতা
sudo apt update
# riscv-gnu-toolchain dependencies:
sudo apt -qq -y install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev xz-utils
# OpenSBI
sudo apt -qq -y install clang
# Qemu 8.2
sudo apt -qq -y install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build python3-venv libslirp-dev
# Buildroot
sudo apt -qq -y install unzip sed binutils diffutils build-essential bash patch gzip bzip2 perl tar cpio unzip rsync file bc findutils
# utilities
sudo apt install -y sshpass
সর্বশেষ মরিচা ইনস্টল করুন:
curl --proto '=https' --tlsv1.2 -sSf | sh -s -- -y
source "$HOME/.cargo/env"
rustup default nightly
rustup target add riscv64gc-unknown-none-elf
rustup component add rustfmt
cargo install cargo-binutils
# check that the below lines are in the ~/.bashrc
. "$HOME/.cargo/env"
সাবমোডুলস সহ এই ভান্ডারটি চেকআউট করুন:
git clone --recurse-submodules git@github.com:IBM/ACE-RISCV.git
এই রিডমে ফাইলযুক্ত ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডগুলি চালান।
আবার নিশ্চিত করুন যে সমস্ত সাবমোডুলগুলি আনা হয়েছে:
git submodule update --init --recursive
প্রকল্পটি যেখানে তৈরি করবে সেই অবস্থানের দিকে নির্দেশ করতে ACE_DIR ভেরিয়েবল সেট আপ করুন। ডিফল্ট হয় build/
আপনি যেখানে কার্যকর করবেন সেই অবস্থানের উপ -ডিরেক্টরি make
কমান্ড।
export ACE_DIR=/your/path/to/build/ace
নিম্নলিখিত কমান্ডটি পুরো কাঠামোটি তৈরি করবে। সেট -j
সিস্টেমে আপনার কাছে থাকা প্রসেসর কোরের সংখ্যায় পতাকা। নীচে কমান্ড ধরে নিয়েছে যে আপনার কাছে 4 টি কোর রয়েছে।
MAKEFLAGS="--silent -j4" make
বিকল্পভাবে, আপনি দীর্ঘ বিল্ডগুলি এড়াতে স্বতন্ত্র উপাদানগুলি তৈরি করতে পারেন যা ‘এসএসএইচ সংযোগ’, ‘হ্যাঙ্গআপস’ এবং অনুরূপ সমস্যাগুলির দিকে নিয়ে যেতে পারে।
আরআইএসসি-ভি আর্কিটেকচারের জন্য কোড সংকলন করতে প্রয়োজনীয় সমস্ত ডেভেলমেন্ট সরঞ্জাম ইনস্টল করুন:
হোস্ট ওএস তৈরি করুন – একটি লিনাক্স কেভিএম হাইপারভাইজার:
বুট প্রক্রিয়াটির জন্য দায়ী নিম্ন স্তরের ফার্মওয়্যারটি তৈরি করুন। এই কমান্ডটি সুরক্ষা মনিটর (এসএম) ও তৈরি করবে:
নমুনা গোপনীয় কাজের চাপ তৈরি করুন:
RISC-V এমুলেটর এবং ইউটিলিটি সরঞ্জামগুলি তৈরি করুন যা পরীক্ষার পরিবেশ চালানো সহজতর করে:
আপনার আছে তা নিশ্চিত করুন ACE_DIR
পরিবেশগত পরিবর্তনশীল সেট এবং এটি আপনার বিল্ডের অবস্থানের দিকে নির্দেশ করে। এই পরিবর্তনশীল সেট না থাকলে ‘সংকলন’ বিভাগটি পরীক্ষা করুন।
একটি আরআইএসসি-ভি এমুলেটর রানে পরীক্ষার পরিবেশ চালানোর জন্য:
আপনার বুট প্রক্রিয়া থেকে আউটপুট এবং হাইপারভাইজারের কাছে লগইন করার জন্য একটি প্রমেট দেখতে হবে:
# login: root, password: passwd
একটি গোপনীয় ভিএম হিসাবে নমুনা লিনাক্স ওএস চালানোর জন্য (লগইন: মূল, পাসওয়ার্ড: পাসডাব্লুডি) কার্যকর করুন:
আপনার আউটপুটটি দেখতে হবে যে স্থানীয় প্রমাণীকরণটি সফল হয়েছে:
#ACE: Reference PCR4=Sha512=0x86774eec200ca6552cbc50211e4b32e7a4ba815c190d56b11ffabc8df1ebb6d9c41d04a64099d860b90c65729a28ded8
#ACE: Attestation succeeded, read 1 secret
আপনি এখন গোপনীয় ভিএম এ লগইন করতে পারেন:
# login: root, password: passwd
আপনি গোপনীয় ভিএম এর অভ্যন্তর থেকে গোপনীয়তাটি পড়তে পারেন:
# if the root file system has not been mounted, then execute below:
mount /dev/vda /root
cd /root/root/ace_module
insmod ace.ko
আপনার গোপনীয়তা দেখতে হবে:
( 203.051959) Requesting secret from the security monitor
( 203.107150) Secret=0xc0ffee
ডিএম-সিআরআইপিটি/এলইউকেগুলির সাথে স্থানীয় সত্যতা সংহত করা কাজ চলছে। শেষ হয়ে গেলে, আপনি আপনার রুটফগুলি এনক্রিপ্ট করতে এবং ডিক্রিপশন কীটি ট্যাপের মাধ্যমে পাস করতে সক্ষম হবেন। ইনিশার্ডের একটি স্ক্রিপ্ট তারপরে ডিক্রিপশন কীটি ট্যাপ থেকে পুনরুদ্ধার করবে এবং রুটফগুলি ডিক্রিপ্ট করবে।
এই ভান্ডারটি অ্যাপাচি 2.0 লাইসেন্সের শর্তাবলীর অধীনে বিতরণ করা হয়, লাইসেন্স দেখুন।
এটি কোনও সক্রিয় গবেষণা প্রকল্প, কোনও ধরণের ওয়্যারেন্টি ছাড়াই।
এসিইতে আমাদের নতুন পূর্ণ কাগজ:
@misc{ozga2025ace,
author = Ozga, Wojciech and Hunt, Guerney D. H. and Le, Michael V. and Gaeher Lennard and Shinnar, Avraham and Palmer, Elaine R. and Jamjoom, Hani and Dragone, Silvio,
title = ACE: Confidential Computing for Embedded RISC-V Systems,
year = 2025,
howpublished = {\url
এসিইতে আমাদের কর্মশালার কাগজ:
@inproceedingsozga2023riscvtee,
title=Towards a Formally Verified Security Monitor for VM-based Confidential Computing,
author=Ozga, Wojciech and Hunt, Guerney D. H. and Le, Michael V. and Palmer, Elaine R. and Shinnar, Avraham,
booktitle = Proceedings of the 12th International Workshop on Hardware and Architectural Support for Security and Privacy,
series = HASP2023,
year=2023
প্রসঙ্গে স্যুইচ বৈধকরণে আমাদের কাগজ:
@misc{kalani2025sailor,
author = Kalani, Neelu and Bourgeat, Thomas and Hunt, Guerney D.H. and Ozga, Wojciech,
title = Save what must be saved: Secure context switching with Sailor,
year = 2025,
howpublished = {\url