| SYSTEMD-BOOT-RANDOM-SEED.SERVICE(8) | systemd-boot-random-seed.service | SYSTEMD-BOOT-RANDOM-SEED.SERVICE(8) |
نام (NAME)
systemd-boot-random-seed.service, systemd-boot-random-seed - ذخیره بذر تصادفی در پارتیشن سیستم EFI در زمان خاموشی
خلاصه دستور (SYNOPSIS)
systemd-boot-random-seed.service
توضیحات (DESCRIPTION)
سرویس systemd-boot-random-seed.service یک سرویس سیستمی است که بهطور خودکار بذر تصادفی بارگذار بوت ذخیرهشده در پارتیشن سیستم EFI (موسوم به ESP) را از مخزن آنتروپی هسته لینوکس تازهسازی میکند. بذر تصادفی بارگذار بوت اساساً توسط systemd-boot(7) از محیط UEFI (یا systemd-stub(7) در صورتی که اولی استفاده نشود اما دومی استفاده شود) مصرف و بهروزرسانی شده و به عنوان بذر اولیه RNG به سیستمعامل ارسال میشود. این یک راهکار مؤثر برای اطمینان از بالا آمدن سیستمعامل با یک مخزن تصادفی کاملاً مقداردهیشده است.
این سرویس همچنین بهطور خودکار یک «توکن سیستم» ('system token') برای ذخیره در یک متغیر EFI در حافظهٔ NVRAM سیستم تولید میکند. سپس بارگذار بوت میتواند بذر تصادفی روی دیسک و توکن سیستم را با استفاده از هش رمزنگاری ترکیب کرده و آن را به عنوان بذر مقداردهی اولیه برای مخزن آنتروپی به سیستمعاملی که بوت میکند ارسال نماید. توجه: بذر تصادفی ذخیرهشده در ESP در هر راهاندازی مجدد تازهسازی میشود تا اطمینان حاصل شود که بوتهای متوالی بعدی با بذرهای متفاوتی راهاندازی میشوند. از سوی دیگر، توکن سیستم بهصورت تصادفی تنها یکبار تولید شده و سپس بهطور دائمی در حافظهٔ متغیرهای EFI سیستم ذخیره میشود؛ این کار تضمین میکند که استفاده از یک ایمیج دیسک یکسان بر روی چندین سیستم به صورت همزمان، منجر به ایجاد توالی یکسانی از مقادیر بذر بارگذار بوت نخواهد شد.
واحد systemd-boot-random-seed.service دستور bootctl random-seed را فراخوانی میکند که بذر تصادفی را در ESP بهروزرسانی کرده و چنانچه توکن سیستم هنوز مقداردهی نشده باشد، آن را مقداردهی اولیه مینماید. این سرویس مشروط به آن است که فقط زمانی اجرا شود که از یک بارگذار بوت پیادهسازیکنندهٔ رابط بارگذار بوت (Boot Loader Interface)[1] استفاده شود.
برای جزئیات بیشتر در مورد دستوری که این سرویس فراخوانی میکند، به bootctl(1) مراجعه کنید.
به رابطهٔ میان systemd-boot-random-seed.service و systemd-random-seed(8) توجه داشته باشید. اولی بذر تصادفی مصرفشده و بهروزرسانیشده توسط محیط بوت را نگهداری میکند (یعنی توسط systemd-boot(7) یا systemd-stub(7))، در حالی که دومی بذر تصادفی مصرفشده و بهروزرسانیشده توسط خود سیستمعامل را نگهداری میکند. اولی تضمین میکند که سیستمعامل در همان نخستین مراحل بوت که دسترسی عادی به دیسک هنوز فراهم نیست (یعنی زمانی که بذر تصادفی سیستمعامل هنوز قابل بارگیری نیست)، یک مخزن آنتروپی پرشده داشته باشد. دومی بسیار دیرتر، پس از فراهم شدن دسترسی قابل نوشتن به دیسک، پردازش میشود. بنابراین نمیتوان از آن برای بذردهی مرحلهٔ اولیهٔ بوت استفاده کرد، اما معمولاً کیفیت آنتروپی بسیار بالاتری دارد. هر دو فایل در زمان بوت مصرف و بهروزرسانی میشوند، اما در زمانهای متفاوت. بهطور مشخص:
این منطق باید تضمین کند که مخزن آنتروپی هسته در صورت امکان در همان ابتدای بوت مقداردهی اولیه شود، در حالی که بالاترین کیفیت آنتروپی به هر دو بذر روی دیسک بازگردانده میشود.
همچنین ببینید (SEE ALSO)
systemd(1), random(4), bootctl(1), systemd-boot(7), systemd-stub(7), systemd-random-seed.service(8)
نکات (NOTES)
- 1.
- رابط بارگذار بوت (Boot Loader Interface)
| systemd 261.2 |