TQMa93-لوگو

TQMa93 محفوظ بوٽ

TQMa93-محفوظ-بوٽ-پراڊڪٽ

پيداوار جي ڄاڻ

وضاحتون

  • ماڊل: TQMa93xx
  • آپريٽنگ سسٽم: لينڪس (اوبنٽو 22.04)
  • سيڪيورٽي خاصيت: محفوظ بوٽ

ڌيان: هن طريقي ۾ فيوز (هڪ وقت پروگراميبل) سيٽ ڪيا ويا آهن، هي عمل ناقابل واپسي آهي. تنهن ڪري هن گائيڊ لاءِ ترقي جو نمونو استعمال ڪرڻ جي سختي سان سفارش ڪئي وئي آهي.

عمل

هي گائيڊ وضاحت ڪري ٿو ته ڪيئن اعتماد جو هڪ سلسلو بوٽ لوڊر کان لينڪس ڪرنل ذريعي dm-verity سان روٽ ورهاڱي تائين قائم ڪري سگهجي ٿو.
هيٺ ڏنل جدول بوٽ جي عمل دوران اعتماد ۽ تصديق جي زنجير ٺاهڻ ۾ شامل قدمن جي هڪ آسان وضاحت فراهم ڪري ٿو:

TQMa93-محفوظ-بوٽ-01

تياري

TQMa93xx لاءِ سائن ٿيل بوٽ اسٽريم ٺاهڻ لاءِ هيٺيان منصوبا گهربل آهن:

TQMa93xx لاءِ بوٽ اسٽريم ڪيترن ئي نمونن تي مشتمل آهي. ساڳئي ذريعن مان اهي سڀئي نمونا حاصل ڪرڻ لاءِ، TQ Yocto ورڪ اسپيس ci-meta-tq استعمال ڪرڻ جي سفارش ڪئي وئي آهي. اتي شامل هدايتن تي عمل ڪري هيٺ ڏنل TQMa93xx تي ٻڌل ڊوائيسز مان هڪ لاءِ مڪمل تصوير (tq-image-weston-debug يا tq-image-generic-debug) ٺاهڻ لاءِ ڪري سگهجي ٿو:

  • tqma93xx-mba91xxca.conf
  • tqma93xx-mba93xxca.conf
  • tqma93xxla-mba93xxla.conf

ڌيان: محفوظ بوٽ ڪارڪردگي (AHAB) سان يو-بوٽ ٺاهڻ لاءِ، هيٺ ڏنل لائن local.conf ۾ شامل ڪرڻ گهرجي:
DISTRO_FEATURES: ضم ڪريو = "محفوظ"
اڳيون، بوٽ اسٽريم کي ٻيهر ٺاهڻ گهرجي:
$ بٽ بيڪ ايم ايڪس بوٽ

TQ Yocto ورڪ اسپيس کي هتي پيش ڪيل مڪمل اعتماد جي زنجير جي تصوير ٺاهڻ لاءِ پڻ استعمال ڪري سگهجي ٿو. ان لاءِ گهربل سيٽنگون سيڪشن 5.2 ۾ بيان ڪيون ويون آهن.
لينڪس ڪرنل ۽ يو-بوٽ جا ذريعا اختياري آهن پر سفارش ڪيل آهن. انهن کي گٿب تان ڊائون لوڊ ڪري سگهجي ٿو:

يو-بوٽ

چاٻيون ٺاهڻ
بوٽ اسٽريم جي سائننگ ۽ تصديق پبلڪ ڪي انفراسٽرڪچر (PKI) استعمال ڪندي ڪئي ويندي آهي. جيڪڏهن اڳ ۾ ئي موجود نه هجي، ته ڪوڊ سائننگ ٽول کي مناسب PKI ٺاهڻ لاءِ استعمال ڪري سگهجي ٿو. CST 3.4.x هڪ tar.gz آرڪائيو آهي جنهن کي صرف ان پيڪ ڪرڻ جي ضرورت آهي. وڌيڪ انسٽاليشن جي ضرورت ناهي. هيٺ ڏنل قدم ايس پيدا ڪرڻ لاءِ استعمال ڪري سگهجن ٿا.ampهن گائيڊ لاءِ ڪيز:

ڌيان: رستا آرڪائيو مان ڪڍيل فولڊر سان لاڳاپيل آهن.

  1. ڪيز/سيريل ۾ پهرين سرٽيفڪيٽ جو سيريل نمبر داخل ڪريو (file ٺاهڻ گهرجي): 12345678
  2. keys/key_pass.txt ۾ ٻه ڀيرا پاسفريز داخل ڪريو (file ٺاهڻ گهرجي):
    منهنجو_پاسفراز منهنجو_پاسفراز
  3. PKI وڻ ٺاهيو:
    $keys/ahab_pki_tree.sh -existing-ca n -kt ecc -kl p521 -da sha512 -مدت 10 -srk-ca n
    اختيارن جي وضاحت لاءِ، مھرباني ڪري CST (ڊاڪس سب فولڊر ۾) ۾ موجود يوزر گائيڊ يا مٿي ڏنل اسڪرپٽ جي -help آپشن جو حوالو ڏيو.
    متبادل طور تي، اسڪرپٽ کي اختيارن کان سواءِ به سڏيو وڃي ٿو ۽ انٽرايڪٽو موڊ ۾ ترتيب ڏئي سگهجي ٿو.
    اسڪرپٽ ڪيز/ ۾ ڪيز ۽ سرٽيفڪيٽ crts/ ۾ ٺاهي ٿي.
  4. SRK ٽيبل ۽ SRK هيش ٽيبل ٺاهيو:
    $ لينڪس 64/بن/ايس آرڪٽول -اي -ايس sha512 -ڊي sha256 -ٽي ايس آر ڪي_1_2_3_4_ٽيبل.بن \
    -e SRK_1_2_3_4_fuse.bin -f 1 -c
    crts/SRK1_sha512_secp521r1_v3_usr_crt.pem,crts/SRK2_sha512_secp521r1_v3_usr_crt. pem,crts/SRK3_sha512_secp521r1_v3_usr_crt.pem,crts/SRK4_sha512_secp521r1_v3_usr_ crt.pem
  5. فيوز ۾ SRK هيش ٽيبل لکو:
    ڌيان: هي قدم صرف هڪ ڀيرو ممڪن آهي ۽ واپس نه ٿو ڪري سگهجي. هيٺ ڏنل قدر صرف اڳوڻي آهنamp۽ توهان جي پنهنجي قدرن سان تبديل ٿيڻ گهرجي.
    • ڊسپلي هيشز:
      $ هيڪسڊمپ -e '/4 "0x"' -e '/4 "%X""\n"' SRK_1_2_3_4_fuse.bin
      0x00000000
      0x11111111
      0x22222222
      0x33333333
      0x44444444
      0x55555555
      0x66666666
      0x77777777
    • فيوز ۾ هيش لکو (TQMa93xx U-Boot):
      => فيوز پروگرام 16 0 0x00000000
      => فيوز پروگرام 16 1 0x11111111
      => فيوز پروگرام 16 2 0x22222222
      => فيوز پروگرام 16 3 0x33333333
      => فيوز پروگرام 16 4 0x44444444
      => فيوز پروگرام 16 5 0x55555555
      => فيوز پروگرام 16 6 0x66666666
      => فيوز پروگرام 16 7 0x77777777

 هڪ دستخط ٿيل بوٽ اسٽريم ٺاهڻ

 يو-بوٽ پراپر ۽ اي ٽي ايف

  1. گهربل ڪاپي ڪريو files (هڪ TQ تصوير جي ڪامياب تعمير، مٿي ڏسو، يا يو-بوٽ ذريعن کي فرض ڪيو ويو آهي):
    • ARM قابل اعتماد فرم ويئر: ${DEPLOY_DIR_IMAGE}/bl31-imx93.bin، نالو تبديل ڪريو bl31.bin
    • يو-بوٽ پراپر:
      ${DEPLOY_DIR_IMAGE}/u-boot.bin
      هي file هڪ لنڪ آهي، تنهنڪري ان کي cp –-dereference سان ڪاپي ڪريو يا ڊسپلي ڪريو ۽ اصل ڪاپي ڪريو file ls –-long سان
      or
      خود مرتب ڪيل يو-بوٽ ذريعن کان
      هنن files کي imx-mkimage/iMX9/ تي ڪاپي ڪرڻ گهرجي. imx-mkimage مٿي ذڪر ڪيل Github ريپوزٽري مان حاصل ڪري سگهجي ٿو، انسٽاليشن جي ضرورت ناهي.
  2. يو-بوٽ پراپر ۽ اي ٽي ايف سان ڪنٽينر ٺاهيو (imx-mkimage فولڊر ۾ عمل ڪريو):
    $ make SOC=iMX9 REV=A1 u-boot-atf-container.img ۾ autobuild.mak شامل آهي
    • سي ايس ٽي: ڪنٽينر 0 آفسيٽ: 0x0
    • CST: ڪنٽينر 0: دستخط بلاڪ: آفسيٽ 0x110 تي آهي
    • آفسيٽس = 0x0 0x110
    • ٿي ويو.
    • نوٽ: مھرباني ڪري تصوير کي آفسيٽ ۾ ڪاپي ڪريو: IVT_OFFSET + IMAGE_OFFSET
      ڌيان: ايندڙ مرحلي ۾ ڪنٽينر ۽ دستخط بلاڪ لاءِ آفسيٽ گهربل آهن.
    • پوءِ آرٽيڪل imx-mkimage/iMX9/u-boot-atf-container.img کي قدم "3.1 جنريٽنگ ڪيز" ۾ ان پيڪ ٿيل CST فولڊر ۾ ڪاپي ڪيو وڃي.
  3. ڪنٽينر ۽ دستخط بلاڪ جي آفسيٽ کي ڪمانڊ سيڪوئنس ڏانهن منتقل ڪريو. File (سي ايس ايف):
    • [هيڊر]
    • نشانو = AHAB
    • نسخو = 1.0
    • [ايس آر ڪي انسٽال ڪريو]
    • File = “SRK_1_2_3_4_ٽيبل.بن”
    • Source = “crts/SRK1_sha512_secp521r1_v3_usr_crt.pem”
    • ذريعو انڊيڪس = 0
    • ذريعو سيٽ = OEM
    • منسوخي = 0x0
    • [ڊيٽا جي تصديق ڪريو]
    • File = “يو-بوٽ-اي ٽي ايف-ڪنٽينر. آءِ ايم جي”
    • آفسيٽس = 0x0 0x110
    • CSF جي بنياد تي: https://github.com/nxp-imx/uboot-imx/blob/lf_v2024.04/doc/imx/ahab/csf_examples/csf_uboot_atf.txt
    • CSF پڻ CST فولڊر ۾ csf_uboot_atf.txt نالي سان محفوظ ٿيل آهي جيڪو قدم "3.1 جنريٽنگ ڪيز" ۾ ان پيڪ ڪيو ويو هو.
  4. سائن ڪنٽينر (CST فولڊر جي نسبت وارو رستو):
    $ linux64/bin/cst -i csf_uboot_atf.txt -o signed-u-boot-atf-container.img سائن ٿيل ڪنٽينر کي پوءِ واپس imx-mkimage/iMX9/u-boot-atf-container.img ڏانهن نقل ڪيو وڃي. نالو تبديل ڪرڻ کي u-boot-atf-container.img تي نوٽ ڪريو.

 مڪمل بوٽ اسٽريم

  1. گهربل ڪاپي ڪريو files (هڪ TQ تصوير جي ڪامياب تعمير، مٿي ڏسو، يا يو-بوٽ ذريعن جو فرض ڪيو ويو آهي):
    • ايج لاڪ سيڪيور اينڪليو فرم ويئر: ${DEPLOY_DIR_IMAGE}/mx93a1-ahab-container.img
    • رام فرم ويئر: ${DEPLOY_DIR_IMAGE}/lpddr4*.bin
    • يو-بوٽ ايس پي ايل:
      ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin
      هي file هڪ لنڪ آهي، تنهنڪري ان کي cp –-dereference سان ڪاپي ڪريو يا ڊسپلي ڪريو ۽ اصل ڪاپي ڪريو file ls –-long سان
      or
      خود مرتب ڪيل يو-بوٽ ذريعن کان
    • قدم "3.2.1 يو-بوٽ پراپر ۽ اي ٽي ايف" مان يو-بوٽ پراپر ۽ اي ٽي ايف سان دستخط ٿيل ڪنٽينر
      هنن files کي imx-mkimage/iMX9/ تي پڻ ڪاپي ڪرڻ گهرجي.
  2. بوٽ اسٽريم ٺاهيو
    • $ ٺاهيو -j8 SOC=iMX9 REV=A1 فليش_سنگل بوٽ
      autobuild.mak شامل ڪريو
    • سي ايس ٽي: ڪنٽينر 0 آفسيٽ: 0x400
    • CST: ڪنٽينر 0: دستخط بلاڪ: آفسيٽ 0x490 تي آهي
    • آفسيٽس = 0x400 0x490
    • ٿي ويو.
    • نوٽ: مھرباني ڪري تصوير کي آفسيٽ ۾ ڪاپي ڪريو: IVT_OFFSET + IMAGE_OFFSET 379 KB تي u-boot-atf-container.img شامل ڪريو، psize=1024
    • 1145+0 رڪارڊ ۾
    • 1145+0 رڪارڊ ٻاهر
    • 1172480 بائيٽ (1.2 MB، 1.1 MiB) نقل ٿيل، 0.00266906 s، 439 MB/s
    • ڌيان: ايندڙ مرحلي ۾ ڪنٽينر ۽ دستخط بلاڪ لاءِ آفسيٽس گهربل آهن.
      پوءِ آرٽيڪل imx-mkimage/iMX9/flash.bin کي قدم "3.1 جنريٽنگ ڪيز" ۾ پيڪ ٿيل CST فولڊر ۾ ڪاپي ڪيو وڃي.
  3. ڪنٽينر ۽ دستخط بلاڪ جي آفسيٽ کي ڪمانڊ سيڪوئنس ڏانهن منتقل ڪريو. File (سي ايس ايف):
    • [هيڊر]
    • نشانو = AHAB
    • نسخو = 1.0
    • [ايس آر ڪي انسٽال ڪريو]
    • File = “SRK_1_2_3_4_ٽيبل.بن”
    • Source = “crts/SRK1_sha512_secp521r1_v3_usr_crt.pem”
    • ذريعو انڊيڪس = 0
    • ذريعو سيٽ = OEM
    • منسوخي = 0x0
    • [ڊيٽا جي تصديق ڪريو]
    • File = "فليش ڊاٽ بن"
    • آفسيٽس = 0x400 0x490
    • CSF جي بنياد تي: https://github.com/nxp-imx/uboot-imx/blob/lf_v2024.04/doc/imx/ahab/csf_examples/csf_boot_image.txt
    • CSF کي CST فولڊر ۾ csf_boot_image.txt نالي سان محفوظ ڪيو ويندو آهي جيڪو قدم "3.1 جنريٽنگ ڪيز" ۾ ان پيڪ ٿيل هوندو آهي.
  4. بوٽ اسٽريم تي دستخط ڪريو
    • لينڪس 64/بن/سي ايس ٽي -i csf_boot_image.txt -o سائن ٿيل-فليش.بن

بوٽ اسٽريم کي تبديل ڪرڻ جا قدم BSP پرت ۾ ڳولي سگهجن ٿا (https://github.com/tq-systems/meta-tq) meta-tq/doc جي تحت.

تصديق
چيڪ ڪرڻ لاءِ ته ڇا سائن ٿيل بوٽ اسٽريم صحيح آهي، يو-بوٽ ۾ ahab_status ڪمانڊ استعمال ڪريو:

  • => احاب_حالت
  • حياتي چڪر: 0x00000008، OEM اوپن
  • ڪوبه واقعو نه مليو!
  • جيڪڏهن ڪو واقعو ملي ٿو، ته بوٽ اسٽريم غلط آهي ۽ بند ٿيل ڊوائيس تي بوٽ نه ٿي سگهندو.

جعلسازي لاءِ، هڪ غير دستخط ٿيل بوٽ اسٽريم بوٽ ڪري سگهجي ٿو ۽ پوءِ ahab_status کي سڏيو وڃي ٿو:

  • => احاب_حالت
  • حياتي چڪر: 0x00000008، OEM اوپن
  • 0x0287 فيڊ 6
  • آئي پي سي = ايم يو اي پي ڊي (0x2)
  • سي ايم ڊي = ELE_OEM_CNTN_AUTH_REQ (0x87)
  • انڊ = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA)
  • ايس ٽي اي = ELE_SUCCESS_IND (0xD6)
  • 0x0287 فيڊ 6
  • آئي پي سي = ايم يو اي پي ڊي (0x2)
  • سي ايم ڊي = ELE_OEM_CNTN_AUTH_REQ (0x87)
  • انڊ = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA)
  • ايس ٽي اي = ELE_SUCCESS_IND (0xD6)

 ڊوائيس کي بند ڪريو

ڌيان: هي قدم ناقابلِ واپسي آهي ۽ صرف ضروري هجڻ تي ئي ڪيو وڃي. جيڪڏهن ترتيب غلط آهي، ته هي قدم هڪ ناقابلِ استعمال ڊوائيس جي نتيجي ۾ ٿيندو.

ڊوائيس کي يو-بوٽ ۾ ahab_close ڪمانڊ سان بند ڪري سگهجي ٿو. ان جو مطلب آهي ته صرف بوٽ روم پاران تصديق ٿيل صحيح بوٽ اسٽريمز بوٽ ٿيندا. ريبوٽنگ کان پوءِ هيٺ ڏنل حيثيت ڏيکاري ويندي آهي:

  • => احاب_حالت
  • حياتي چڪر: 0x00000020، OEM بند ٿيل
  • ڪوبه واقعو نه مليو!

فٽ-تصوير

ڌيان: رستي جي معلومات هڪ نئين، خالي فولڊر جي نسبت سان آهي، مثال طور
fit_image_work، يا ڪرنل ذريعا، جيڪڏهن پاڻ مرتب ڪيا ويا آهن. ان کان پوءِ ڪم ڪندڙ ڊاريڪٽري طور حوالو ڏنو ويندو.

هڪ اهم جوڙو ٺاهڻ
FIT تصوير کي سائن ڪرڻ لاءِ هڪ غير متناسب ڪي جوڙو استعمال ڪيو ويندو آهي. اهڙو جوڙو OpenSSL سان پيدا ڪري سگهجي ٿو:

$ اوپن ايس ايل جينپڪي -الگورٿم آر ايس اي -آئوٽ ڊيو.ڪي -پي ڪي او پي ٽي آر ايس اي_ڪي جين_بٽس: 2048
$ اوپن ايس ايل ريڪ -بيچ -نئون -x509 -ڪي ڊيو.ڪي -آئوٽ ڊيو.سي آر ٽي

تصوير جي وڻ جو ذريعو ٺاهيو

  • FIT تصوير لاءِ تصوير ٽري سورس sign.its ٺاهيو.
  • /ڊي ٽي ايس-وي 1/;
  • / {
  • وضاحت = "TQMa93xx لاءِ ڪرنل فٽ تصوير"؛
  • #پتو-سيلز = <1>;
  • تصويرون {
  • ڪرنل-1 {
  • وضاحت = "لينڪس ڪرنل"؛
  • ڊيٽا = /انڪبن/("تصوير")؛
  • قسم = "ڪرنل"؛
  • آرچ = "بازو 64"؛
  • او ايس = "لينڪس"؛
  • ڪمپريشن = "gzip"؛
  • لوڊ = <0x90000000>؛
  • داخلا = <0x90000000>؛
  • هيش-1 {
  • الگو = "sha256"؛
  • };
  • };
  • ايف ڊي ٽي-1 {
  • وضاحت = "فليٽ ٿيل ڊيوائس ٽري بلاب"؛
  • ڊيٽا = /انڪبن/(“ ”)؛
  • قسم = "فليٽ_ڊي ٽي"؛
  • آرچ = "بازو 64"؛
  • ڪمپريشن = "ڪو به نه"؛
  • لوڊ = <0x97000000>؛
  • هيش-1 {
  • الگو = "sha256"؛
  • };
  • };
  • };
  • ترتيبون {
  • ڊفالٽ = "conf-1"؛
  • conf-1 {
  • وضاحت = "لينڪس ڪرنل، ايف ڊي ٽي بلاب"؛
  • ڪرنل = "ڪرنل-1"؛
  • ايف ڊي ٽي = "ايف ڊي ٽي-1"؛
  • هيش-1 {
  • الگو = "sha256"؛
  • };
  • دستخط-1 {
  • الگو = "sha256,rsa2048";
  • ڪي-نالو-اشارو = "ديو"؛
  • پيڊنگ = "pkcs-1.5"؛
  • نشانيون تصويرون = "ڪرنل"، "ايف ڊي ٽي"؛
  • };
  • };
  • };
  • };

 هڪ دستخط ٿيل FIT تصوير ٺاهڻ

نوٽ: هن مرحلي لاءِ يو-بوٽ لاءِ ڊيوائس ٽري بائنري گهربل آهي. تيار ٿيل ڊيوائس ٽري بائنري يو-بوٽ بلڊ ڊاريڪٽري ۾ يوڪٽو ورڪ اسپيس ۾ ملي سگهن ٿيون. بلڊ ڊاريڪٽري جو رستو بٽ بيڪ ورچوئل/بوٽ لوڊر –e | گريپ ^B= سان ڏيکاري سگهجي ٿو.

  1. گهربل ڪاپي ڪريو fileڪم ڪندڙ ڊاريڪٽري ۾ s:
    • نالو تبديل ڪريو U-Boot devicetree imx93-tqma9352-mba91xxca.dtb، imx93-tqma9352-mba93xxca.dtb يا imx93-tqma9352-mba93xxla.dtb، pubkey.dtb ۾:
      يوڪٽو ورڪ اسپيس ۾ يو-بوٽ بلڊ ڊاريڪٽري مان (رستو: بٽ بيڪ ورچوئل/بوٽ لوڊر –e | گريپ ^B=)
      or
      خود مرتب ڪيل يو-بوٽ ذريعن کان
    • لينڪس-ڪرنل:
      ${DEPLOY_DIR_IMAGE}/تصوير
      هي file هڪ لنڪ آهي، تنهنڪري ان کي cp –-dereference سان ڪاپي ڪريو يا ڊسپلي ڪريو ۽ اصل ڪاپي ڪريو file ls –-long سان
      or
      خود مرتب ڪيل لينڪس ذريعن کان
    • لينڪس ڊيوائس ٽري:
      مختلف قسم جي بنياد تي ${DEPLOY_DIR_IMAGE}/imx93-tqma93…
      هي file هڪ لنڪ آهي، تنهنڪري ان کي cp –-dereference سان ڪاپي ڪريو يا ڊسپلي ڪريو ۽ اصل ڪاپي ڪريو file ls –-long سان
      or
      خود مرتب ڪيل لينڪس ذريعن کان
    • قدم 4.1 ۾ ٺاهيل چاٻيون
    • آئي ٽي ايس file قدم 4.2 ۾ ٺاهيل
  2. دستخط سان FIT تصوير ٺاهيو
    $ mkimage -f sign.its -K pubkey.dtb -k . -r image.itb
    پبلڪ ڪي يو-بوٽ جي ڊيوائس ٽري تي لکيل آهي. هي ڪي مٿي ڏنل FIT تصوير جي تصديق ڪرڻ لاءِ استعمال ڪئي ويندي آهي.

ڌيان: باب 3.2 کان سائن ٿيل بوٽ اسٽريم ۾ پبلڪ ڪي سان يو-بوٽ ڊيوائس ٽري کي پيڪ ڪرڻ لاءِ، باب 3.2 کان قدمن کي ڪسٽمائيزڊ يو-بوٽ پراپر u-boot.bin سان ورجائڻو پوندو. اهو ڪرڻ لاءِ، يو-بوٽ کي مرتب ڪرڻ وقت پبلڪ ڪي pubkey.dtb سان ڊيوائس ٽري کي EXT_DTB آپشن ذريعي بيان ڪيو وڃي:
EXT_DTB= ٺاهيو

تصديق
پبلڪ ڪيز سان يو-بوٽ ۾، سائن ٿيل FIT تصوير image.itb کي مناسب ميڊيم (TFTP، eMMC، SD) مان لوڊ ٿيڻ کان پوءِ bootm سان بوٽ ڪري سگهجي ٿو.
FIT تصوير کي بوٽ ڪرڻ وقت، U-Boot معلومات واپس ڪري ٿو Verifying Hash Integrity ... sha256,rsa2048:dev+ OK ڪنسول تي باب 4.1 ۾ ٺاهيل ڪي جي نالي، الگورتھم ۽ ڊيگهه سان:

  • ## 80400000 تي FIT تصوير مان ڪرنل لوڊ ٿي رهيو آهي ...
  • هيش انٽيگرٽي جي تصديق ڪري رهيو آهي ... sha256,rsa2048:dev+ ٺيڪ آهي
  • ## FIT تصوير مان 80400000 تي رام ڊسڪ لوڊ ٿي رهيو آهي ...
  • هيش انٽيگرٽي جي تصديق ڪري رهيو آهي ... sha256,rsa2048:dev+ ٺيڪ آهي
  • ## 80400000 تي FIT تصوير مان fdt لوڊ ٿي رهيو آهي ...
  • هيش انٽيگرٽي جي تصديق ڪري رهيو آهي ... sha256,rsa2048:dev+ ٺيڪ آهي

جعلسازي لاءِ، ٻيو ڪي جوڙو سيڪشن 4.1 ۾ بيان ڪيل طور تي پيدا ڪري سگهجي ٿو ۽ FIT تصوير کي سائن ڪرڻ لاءِ استعمال ڪيو وڃي ٿو. هي FIT تصوير U-Boot Devicetree ۾ ڪي مٽائڻ کان سواءِ بوٽ نه ٿي ڪري سگهجي:
## 80400000 تي FIT تصوير مان ڪرنل لوڊ ٿي رهيو آهي ...

'conf-1' ترتيب استعمال ڪندي
هيش انٽيگريٽي جي تصديق ڪري رهيو آهي ... sha256,rsa2048: ٽيسٽ- غلطي!
' لاءِ تصديق ناڪام ٿي وئي 'conf-1' ڪنفگ نوڊ ۾ هيش نوڊ
گهربل دستخط 'key-dev' جي تصديق ڪرڻ ۾ ناڪام ٿيو.
خراب ڊيٽا هيش
غلطي: ڪرنل تصوير نه ملي سگهي!

اعتماد جي زنجير کي وڌايو: روٽ ورهاڱي
اڳ ۾ قائم ٿيل اعتماد جو سلسلو يو-بوٽ ۽ لينڪس ڪرنل جي اصليت جي تصديق ڪري ٿو. مٿي ذڪر ڪيل طريقن سان، صرف ٺاهيل خانگي ڪي جو مالڪ پنهنجي سافٽ ويئر تي دستخط ڪري سگهي ٿو ۽ ان کي ڊوائيس تي بوٽ ڪري سگهي ٿو. وڌيڪ لنڪس زنجير ۾ شامل ڪري سگهجن ٿا. هيٺ ڏنل سيڪشن بيان ڪري ٿو ته ڪيئن روٽ ورهاڱي کي dm-verity استعمال ڪندي هٿرادو کان بچائي سگهجي ٿو. حقيقي عمل درآمد لاءِ، اهو پڻ ڏيکاريو ويو آهي ته ڪيئن مڪمل زنجير TQ-BSP سان ٺاهي سگهجي ٿي. ضرورتن جي پيچيدگي جي ڪري dm-verity تحفظ لاءِ هڪ قدم بہ قدم گائيڊ کي ڇڏي ڏنو ويو آهي.

 اسڪيچ: ويريٽي ڊيوائس ميپر

  1. ويريٽي هيشز ٺاهيو:
    veritysetup هيش ويليوز جو حساب ڪري ٿو ۽ انهن کي روٽ پارٽيشن جي آخر ۾ اسٽور ڪري ٿو. روٽ پارٽيشن هڪ حقيقي ٿي سگهي ٿو file يا هڪ بلاڪ ڊيوائس file (مثال طور /dev/sdaX).
    • سچائي سيٽ اپ \
    • -ڊيٽا-بلاڪ-سائيز = 1024 \
    • -هيش-بلاڪ-سائيز = 4096 \
    • -هيش-آفسيٽ = \
    • فارميٽ \
    • \
    • veritysetup هيٺ ڏنل معلومات ڪڍي ٿو (مطابقت سان مختلف قدرن سان):
    • data.img لاءِ VERITY هيڊر جي معلومات
    • UUID: e06ff4cb-6b56-4ad4-bd97-0104505a70a5
    • هيش جو قسم: 1
    • ڊيٽا بلاڪ: 204800
    • ڊيٽا بلاڪ سائيز: 1024
    • هيش بلاڪ سائيز: 4096
    • هيش الگورتھم: sha256
    • Salt: 17328c48990b76fbb3e05d0ebfd236043674cf0d14c278bc875b42693621cc21
    • Root hash: a0e1a449d452f74d041706b955794c0041e3d8ad051068df6589e08485323698
    • روٽ هيش هڪ حساس قدر آهي جنهن کي محفوظ ڪرڻ جي ضرورت آهي. جيڪڏهن هي هيش سان سمجهوتو ڪيو ويو آهي، مثال طور جيڪڏهن اهو هڪ غير مجاز شخص طرفان تبديل ڪري سگهجي ٿو، ته پوءِ dm-verity پاران روٽ ورهاڱي جي سالميت جو تحفظ بيڪار آهي.
  2. روٽ هيش کي اعتماد جي زنجير ۾ ضم ڪريو
    • مٿي پيدا ٿيل روٽ هيش سائن ٿيل FIT تصوير ۾ محفوظ ڪئي وئي آهي، جيڪا ان کي هٿرادو ڪرڻ کان بچائيندي آهي. هن مقصد لاءِ، هڪ initramfs FIT تصوير ۾ شامل ڪيو ويو آهي جنهن ۾ روٽ هيش هڪ ۾ محفوظ ڪئي وئي آهي. file.
    • آئي ٽي ايس جو تصويري نوڊ file باب 4.2 کان هيٺ ڏنل حصي ۾ وڌايو ويو آهي، ٻين جي وچ ۾:
    • رام ڊسڪ-1 {
    • وضاحت = "ڊي ايم-ويريٽي-تصوير-انٽرامفس"؛
    • ڊيٽا = /انڪبن/(“ ”)؛
    • قسم = "ريم ڊسڪ"؛
    • آرچ = "بازو 64"؛
    • او ايس = "لينڪس"؛
    • ڪمپريشن = "ڪو به نه"؛
    • لوڊ = <0x98000000>؛
    • داخلا = <0x98000000>؛
    • هيش-1 {
    • الگو = "sha256"؛
    • };
    • };
  3. روٽ ورهاڱي جي سالميت چيڪ ڪريو
    • initramfs ۾ هڪ مناسب اسڪرپٽ شامل آهي جيڪو روٽ پارٽيشن ۽ روٽ هيش مان هڪ ڊيوائس ميپر ٺاهي ٿو.
    • سچائي سيٽ اپ \
    • -ڊيٽا-بلاڪ-سائيز=${ڊيٽا_بلاڪ_سائز} \
    • - هيش-آفسيٽ = ${ڊيٽا_سائز} \
    • روٽ ايف ايس ٺاهيو \
    • \
    • \

پوءِ ڊوائيس ميپر لڳايو ويندو آهي:

  • ماؤنٽ \
  • -o ro \
  • /dev/mapper/rootfs \
  • /روٽ ايف ايس

پاڙ fileسسٽم صرف پڙهڻ لاءِ آهي. اصل روٽ ڏانهن سوئچ ڪرڻ لاءِ fileسسٽم، سوئچ روٽ استعمال ڪريو.

TQ-BSP سان خودڪار تخليق
اصول ۾، بوٽ لوڊر کان روٽ ورهاڱي تائين اعتماد جي زنجير سان هڪ تصوير TQ-BSP سان خودڪار طريقي سان ٺاهي سگهجي ٿي.
TQMa93xx لاءِ هيٺيان آپشن local.conf ۾ شامل ڪرڻا پوندا:

  • # DISTRO_FEATURE يو-بوٽ ۽ ڪرنل لاءِ ضروري ترتيب جا آپشن محفوظ ڪري ٿو.
  • DISTRO_FEATURES: ضم ڪريو = "محفوظ"
  • # بوٽ لوڊر کي سائن ڪرڻ لاءِ استعمال ٿيندڙ چاٻي جو نالو
  • IMX_HAB_KEY_NAME = "عجب"
  • # تعمير جي عمل ۾ FIT تصوير جي دستخط کي چالو ڪري ٿو.
  • UBOOT_SIGN_ENABLE = "1"
  • # هن ڪلاس ۾ محفوظ روٽ ورهاڱي ٺاهڻ لاءِ منطق شامل آهي.
  • IMAGE_CLASSES + = "ڊي ايم-ويريٽي-آءِ ايم جي"
  • # dm-verity هينڊلنگ لاءِ initramfs تصوير جو نالو
  • INITRAMFS_IMAGE = "ڊي ايم-ويريٽي-تصوير-انٽرامف"
  • # Initramfs تصوير ۾ هڪ الڳ نموني طور محفوظ ٿيل آهي.
  • INITRAMFS_IMAGE_BUNDLE = "0"
  • # بوٽ ورهاڱي ۾ initramfs سان FIT تصوير محفوظ ڪريو.
  • تصوير_بوٽ_FILEايس: ضم = ” فٽ تصوير-${INITRAMFS_IMAGE}-${مشين}-
  • ${MACHINE};fitImage” # تصوير کي dm-verity سان محفوظ ڪيو ويندو
  • # متبادل: tq-image-weston-debug
  • DM_VERITY_IMAGE = "tq-تصوير-عام-ڊيبگ"
  • # مٿي ڏنل تصوير جو قسم
  • ڊي ايم_ويرٽي_آئي ايم ايج_ٽائيپ = "ايڪسٽي 4"

ڌيان: صحيح آپشن BSP جي مستقبل جي نسخن ۾ تبديل ٿي سگهن ٿا. تازي معلومات BSP پرت دستاويزن ۾ ملي سگهي ٿي (https://github.com/tq-systems/meta-tq) meta-tq/doc جي تحت.

مڪمل تصوير بِٽ بيڪ tq-image-generic-debug سان ٺاهي وئي آهي ۽ پوءِ ان کي SD ڪارڊ تي لکي سگهجي ٿو، مثال طورampلي.

تصديق
لينڪس ۾، mount -a استعمال ڪري سگهجي ٿو ته ڇا Verity Devicemapper روٽ طور تي لڳل آهي. fileسسٽم:

  • # جبل
  • /dev/mapper/rootfs آن / ٽائپ ext4 (ro,relatime)
  • ان کان علاوه، سڄو روٽ file هن صورت ۾ سسٽم صرف پڙهڻ لاءِ آهي:
  • # ٽچ ٽيسٽ
  • ڇهو: 'ٽيسٽ' کي ڇهو نٿو سگهجي: صرف پڙهڻ لاءِ file سسٽم

جعلسازي لاءِ، پاڙ file سسٽم کي آف لائن تبديل ڪري سگھجي ٿو ۽ ڊوائيس کي ريبوٽ ڪري سگھجي ٿو. تبديلي هڪ مختلف روٽ هيش جو سبب بڻجندي آهي ۽ بوٽ عمل ختم ٿي ويندو آهي: ڊوائيس-ميپر: تصديق: 179:98: ڊيٽا بلاڪ 1 خراب ٿي ويو آهي.

TQMa93xx بابت وڌيڪ معلومات TQ سپورٽ وڪي ۾ ملي سگهي ٿي: https://support.tq-group.com/en/arm/modules#nxp_imx_9_series

TQ-Systems GmbH
مُهلسٽراس 2 ايل گٽ ڊيلنگ ايل 82229 سيفيلڊ انفو@ٽي ڪيو-گروپ | ٽي ڪيو-گروپ

اڪثر پڇيا ويا سوال

سوال: ڇا "هائو ٽو" ۾ ذڪر ڪيل فيوز سيٽ ڪرڻ جي ناقابلِ واپسي عمل کي الٽ ڪرڻ ممڪن آهي؟
الف: نه، فيوز کي سيٽ ڪرڻ ناقابل واپسي آهي. ترقي جي نموني استعمال ڪرڻ جي سفارش ڪئي وئي آهي.

سوال: مان لينڪس ۽ يو-بوٽ لاءِ گهربل ذريعا ڪٿان ڳولي سگهان ٿو؟

الف: لينڪس:
لينڪس ريپوزٽري

يو-بوٽ: يو-بوٽ
مخزن

دستاويز / وسيلا

TQ TQMa93 محفوظ بوٽ [pdf] استعمال ڪندڙ ھدايت
TQMa93xx، TQMa93 محفوظ بوٽ، محفوظ بوٽ، بوٽ

حوالو

تبصرو ڇڏي ڏيو

توهان جو اي ميل پتو شايع نه ڪيو ويندو. گهربل فيلڊ نشان لڳل آهن *