.TH "EFISECDB" "1" "7 January 2021" "" "General Commands Manual" .nh .if n .ad l .SH "نام (NAME)" efisecdb \- ابزار مدیریت پایگاه‌داده و فهرست‌های امضای UEFI .SH "خلاصه دستور (SYNOPSIS)" .HP 9n \fBefisecdb\fR [\fB\-s\fR\ \fISORT\fR] [\fB\-i\fR\ \fIfile\fR\ [\fB\-i\fR\ \fIfile\fR] \&...] \ \p [\fB\-g\fR\ \fIguid\fR \(la\fB\-a\fR\ |\ \fB\-r\fR\(ra \(la[\fB\-t\fR\ \fIhash-type\fR]\ \fB\-h\fR\ \fIhash\fR\ | \fB\-c\fR\ \fIfile\fR\(ra \ \p [\fB\-g\fR\ \fIguid\fR \(la\fB\-a\fR\ |\ \fB\-r\fR\(ra \(la[\fB\-t\fR\ \fIhash-type\fR]\ \fB\-h\fR\ \fIhash\fR\ | \fB\-c\fR\ \fIfile\fR\(ra] \&...] \(la\fB\-d\fR\ [\fB\-A\fR] | \fB\-o\fR\ \fIfile\fR | \fB\-L\fR\(ra .SH "توضیحات (DESCRIPTION)" دستور \fBefisecdb\fR یک ابزار خط فرمان برای مدیریت فهرست‌های امضای UEFI در فایل‌های مستقل و جداگانه است. به بیان دیگر، این ابزار برای ایجاد و مدیریت فایل‌هایی با قالب KEK، DB و DBX در خط فرمان طراحی شده است. .sp عملکرد این ابزار در سه مرحله انجام می‌شود: .PD 0 .TP 5n ۱.\& بارگذاری پایگاه‌های داده امنیتی مشخص‌شده با گزینه \fB\-\-input\fR .TP 5n ۲.\& پردازش چپ‌به‌راست سایر گزینه‌ها، با استفاده از \fB\-\-hash\-type\fR، \fB\-\-owner\-guid\fR، \fB\-\-add\fR و \fB\-\-remove\fR به عنوان وضعیت جهت ساخت گزینش‌گرها برای افزودن یا حذف هش‌ها و گواهینامه‌های مشخص‌شده توسط \fB\-\-hash\fR و \fB\-\-certificate\fR. .TP 5n ۳.\& تولید خروجی .PP وضعیت انباشته‌شده پایدار است؛ یعنی هنگامی که یک GUID مالک، عملیات افزودن یا حذف، یا نوع هش مشخص شود، این مقادیر تا زمان مشخص‌شدن دوباره حفظ می‌شوند و تنها برای تغییر عملیات‌های بعدی نیاز به تکرار آن‌ها است. عملیات‌ها زمانی به فهرست پردازش افزوده می‌شوند که \fB\-h\fR \fIhash\fR یا \fB\-c\fR \fIcert\fR مشخص گردند، و دقیقاً به همان ترتیبی که در خط فرمان وارد شده‌اند پردازش می‌شوند. علاوه بر این، حداقل یک آرگومان \fB\-g\fR و یکی از گزینه‌های \fB\-\-add\fR یا \fB\-\-remove\fR باید پیش از نخستین استفاده از \fB\-h\fR \fIhash\fR یا \fB\-c\fR \fIcert\fR آورده شوند. .PD .SH "گزینه‌ها (OPTIONS)" .TP 2n \(la\fB\-s\fR | \fB\-\-sort\fR\(ra \(la\fIall\fR | \fIdata\fR | \fInone\fR | \fItype\fR\(ra مرتب‌سازی بر اساس داده پس از دسته‌بندی و مرتب‌سازی انواع ورودی‌ها (\fIall\fR)، مرتب‌سازی بر اساس داده‌های ورودی (\fIdata\fR)، بدون مرتب‌سازی (\fInone\fR)، یا بر پایه نوع ورودی (\fItype\fR). .TP 2n \(la\fB\-s\fR | \fB\-\-sort\fR\(ra \(la\fIascending\fR | \fIdescending\fR\(ra مرتب‌سازی به ترتیب صعودی (\fIascending\fR) یا نزولی (\fIdescending\fR). .TP 2n \fB\-i\fR \fIfile\fR | \fB\-\-infile\fR \fIfile\fR خواندن پایگاه‌داده امنیتی EFI از \fIfile\fR. .TP 2n \fB\-g\fR \fIguid\fR | \fB\-\-owner\-guid\fR \fIguid\fR استفاده از GUID مشخص‌شده یا ارجاع نمادین (مانند {empty}) برای عملیات‌های افزودن و حذف بعدی. .TP 2n \fB\-a\fR | \fB\-\-add\fR | \fB\-r\fR | \fB\-\-remove\fR انتخاب عملیات افزودن (\fIadd\fR) یا حذف (\fIremove\fR) برای عملیات‌های بعدی. .TP 2n \fB\-t\fR \fIhash\-type\fR | \fB\-\-hash\-type\fR \fIhash\-type\fR انتخاب نوع الگوریتم هش (\fIhash\-type\fR) برای عملیات‌های افزودن و حذف بعدی (پیش‌فرض: \fIsha256\fR). .sp برای مشاهده فهرست انواع هش‌های پشتیبانی‌شده از مقدار \fIhelp\fR به عنوان نوع هش استفاده کنید. .TP 2n \fB\-h\fR \fIhash\fR | \fB\-\-hash\fR \fIhash\fR افزودن یا حذف هش مشخص‌شده. .TP 2n \fB\-c\fR \fIfile\fR | \fB\-\-certificate\fR \fIfile\fR افزودن یا حذف گواهینامه مشخص‌شده. .TP 2n \fB\-d\fR | \fB\-\-dump\fR تولید خروجی هگزادسیمال (hex dump) از داده‌ها. .TP 2n \fB\-A\fR | \fB\-\-annotate\fR حاشیه‌نویسی و تفسیر خروجی هگزادسیمال تولیدشده توسط \fB\-\-dump\fR. .TP 2n \fB\-o\fR \fIfile\fR | \fB\-\-outfile\fR \fIfile\fR نوشتن پایگاه‌داده امنیتی EFI در \fIfile\fR. .TP 2n \fB\-L\fR | \fB\-\-list\-guids\fR نمایش فهرست GUIDهای شناخته‌شده. .sp خروجی به صورت ستون‌های تفکیک‌شده با نویسه تب (Tab) است: شناسه GUID، نام کوتاه، توضیحات (GUID short_name description). .SH "مثال‌ها (EXAMPLES)" .SS "دامپ پایگاه‌داده \fIDBX\fP سیستم جاری همراه با حاشیه‌نویسی" .nf .RS 0n host:~$ \fBefisecdb -d -A -i /sys/firmware/efi/efivars/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f\fR 00000000 26 16 c4 c1 4c 50 92 40 ac a9 41 f9 36 93 43 28 |&...LP.@..A.6.C(| esl[0].signature_type = {sha256} 00000010 60 00 00 00 |....| esl[0].signature_list_size = 96 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 30 00 00 00 |0...| esl[0].signature_size = 48 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c fe cf b2 32 |...2| esl[0].signature[0].data (end:0x0000004c) 00000030 d1 2e 99 4b 6d 48 5d 2c 71 67 72 8a a5 52 59 84 |...KmH],qgr..RY.| 00000040 ad 5c a6 1e 75 16 22 1f 07 9a 14 36 |.\..u."....6| 0000004c bd 9a fa 77 |...w| esl[0].signature[1].owner = {microsoft} 00000050 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000005c fe 63 a8 4f |.c.O| esl[0].signature[1].data (end:0x0000007c) 00000060 78 2c c9 d3 fc f2 cc f9 fc 11 fb d0 37 60 87 87 |x,..........7`..| 00000070 58 d2 62 85 ed 12 66 9b dc 6e 6d 01 |X.b...f..nm.| 0000007c .RE .fi .SS "ایجاد یک پایگاه‌داده امنیتی جدید EFI برای استفاده به عنوان \fIKEK\fP با جایگزینی یک گواهینامه" .nf .RS 0n # Figure out the original cert... the easy way host:~$ \fBstrings KEK-* | grep microsoft.*crt\fR\p Dhttp://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt0 # Find it, because --export isn't implemented yet host:~$ \fBwget \e\p --user-agent='Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko' \e\p http://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt\fR\p --2020-06-04 20:41:27-- http://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt Resolving www.microsoft.com (www.microsoft.com)... 2600:141b:800:287::356e, 2600:141b:800:2a0::356e, 23.43.254.254 Connecting to www.microsoft.com (www.microsoft.com)|2600:141b:800:287::356e|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1539 (1.5K) [application/octet-stream] Saving to: \[u2018]MicCorThiParMarRoo_2010-10-05.crt\[u2019] MicCorThiParMarRoo_ 100%[===================>] 1.50K --.-KB/s in 0s 2020-06-04 20:41:27 (177 MB/s) - \[u2018]MicCorThiParMarRoo_2010-10-05.crt\[u2019] saved [1539/1539] # Pick a GUID-like object, any GUID-like object... host:~$ \fBuuidgen\fR aab3960c-501e-485e-ac59-62805970a3dd # Remove the old KEK entry and add a different one host:~$ \fBefisecdb -i KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c \e\p -g {microsoft} -r -c MicCorThiParMarRoo_2010-10-05.crt \e\p -g aab3960c-501e-485e-ac59-62805970a3dd -a -c pjkek.cer \e\p -o newkek.bin\fR\p .RE .fi .SS "جستجو در فهرست GUIDهای شناخته‌شده" .nf .RS 0n host:~$ \fBefisecdb -L | grep shim\fR\p {605dab50-e046-4300-abb6-3dd810dd8b23} {shim} shim .RE .fi .SH "استانداردها (STANDARDS)" گروه کاری مشخصات UEFI، \fIUnified Extensible Firmware Interface (UEFI) Specification Version 2.8\fR، \fIUnified Extensible Firmware Interface Forum\fR، https://uefi.org/specifications\ \&، مارس ۲۰۱۹. .SH "همچنین ببینید (SEE ALSO)" .BR authvar (1)، .BR efikeygen (1)، .BR pesign (1) .SH "نویسندگان (AUTHORS)" Peter Jones .SH "اشکالات (BUGS)" دستور \fBefisecdb\fR در حال حاضر فاقد چندین قابلیت کاربردی است: .PD 0 .TP 4n \fB\(bu\fR برون‌ریزی موقعیتی (positional exporting) گواهینامه‌ها .TP 4n \fB\(bu\fR گزینه‌های \fB\-\-dump\fR و \fB\-\-annotate\fR عرض خروجی را متناسب با اندازه ترمینال تنظیم نمی‌کنند .TP 4n \fB\(bu\fR نمی‌توان گواهینامه‌ها را بر اساس هش \fIToBeSigned\fR برای حذف مشخص کرد .PD