Logo TQMa93

Demaraj an sekirite TQMa93

Pwodwi TQMa93-Secure-Boot

Enfòmasyon sou pwodwi

Espesifikasyon

  • Modèl: TQMa93xx
  • Sistèm Operasyon: Linux (Ubuntu 22.04)
  • Fonksyon Sekirite: Demaraj an sekirite

ATANSYON: Yo mete fizib (yon sèl fwa pwogramab) nan gid sa a, pwosesis sa a pa ka chanje. Se poutèt sa, li rekòmande fòtman pou itilize yon modèl devlopman pou gid sa a.

Pwosedi

Gid sa a eksplike kijan yon chèn konfyans ka etabli soti nan loader demaraj la atravè kernel Linux la rive nan yon patisyon rasin ak dm-verity.
Tablo ki anba la a bay yon deskripsyon senplifye sou etap ki enplike nan kreye chèn konfyans lan ak verifikasyon an pandan pwosesis demaraj la:

TQMa93-Secure-Boot-01

Preparasyon

Pwojè sa yo nesesè pou kreye yon kouran demaraj siyen pou TQMa93xx:

Bootstream pou TQMa93xx la gen plizyè artefak. Pou jwenn tout artefak sa yo nan menm sous la, li rekòmande pou itilize espas travay TQ Yocto ci-meta-tq la. Ou ka swiv enstriksyon ki ladan l yo pou konstwi yon imaj konplè (tq-image-weston-debug oubyen tq-image-generic-debug) pou youn nan aparèy sa yo ki baze sou TQMa93xx:

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

ATANSYON: Pou kreye U-Boot ak fonksyonalite demaraj an sekirite (AHAB), ou dwe ajoute liy sa a nan local.conf:
DISTRO_FEATURES: ajoute = "sekirite"
Apre sa, yo dwe rkree kouran demaraj la:
$ bitbake imx-boot

Ou kapab itilize espas travay TQ Yocto a tou pou kreye yon imaj chèn konfyans konplè ki prezante isit la. Paramèt ki nesesè pou sa yo dekri nan seksyon 5.2.
Sous yo pou kernel Linux la ak U-Boot yo opsyonèl men yo rekòmande. Ou ka telechaje yo sou Github:

U-bòt

Jenere kle yo
Siyati ak verifikasyon kouran demaraj la fèt lè l sèvi avèk yon enfrastrikti kle piblik (PKI). Si li pa deja disponib, ou ka itilize Zouti Siyati Kòd la pou kreye yon PKI ki apwopriye. CST 3.4.x la se yon achiv tar.gz ki sèlman bezwen dekonprese. Pa gen okenn lòt enstalasyon ki nesesè. Ou ka itilize etap sa yo pou jenere s la.ampkle yo pou gid sa a:

ATANSYON: Chemen yo relatif ak dosye ki te ekstrè nan achiv la.

  1. Antre nimewo seri premye sètifika a nan kle/seri (file dwe kreye): 12345678
  2. Antre fraz modpas la de fwa nan keys/key_pass.txt (file dwe kreye):
    fraz_modpas_mwen an fraz_modpas_mwen an
  3. Kreye yon pyebwa PKI:
    $ keys/ahab_pki_tree.sh -existing-ca n -kt ecc -kl p521 -da sha512 -duration 10 -srk-ca n
    Pou yon eksplikasyon sou opsyon yo, tanpri al gade Gid Itilizatè ki nan CST a (nan sou-dosye dokiman an) oubyen opsyon –help nan script ki anwo a.
    Yon lòt opsyon se rele script la san opsyon epi konfigire l nan mòd entèaktif.
    Script la jenere kle nan keys/ ak sètifika nan crts/.
  4. Kreye tablo SRK ak tablo hach SRK:
    $ linux64/bin/srktool -a -s sha512 -d sha256 -t SRK_1_2_3_4_table.bin \
    -e SRK_1_2_3_4_fizib.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. Ekri tablo hach SRK nan fizib yo:
    ATANSYON: Etap sa a posib yon sèl fwa epi li pa ka chanje. Valè sa yo se sèlman egzanp.amples epi yo dwe ranplase pa pwòp valè ou yo.
    • Montre hach yo:
      $ hexdump -e '/4 “0x”' -e '/4 “%X””\n”' SRK_1_2_3_4_fuse.bin
      0x00000000
      0x11111111
      0x22222222
      0x33333333
      0x44444444
      0x55555555
      0x66666666
      0x77777777
    • Ekri fonksyon hach nan fizib (TQMa93xx U-Boot):
      => pwogram fizib 16 0 0x00000000
      => pwogram fizib 16 1 0x11111111
      => pwogram fizib 16 2 0x22222222
      => pwogram fizib 16 3 0x33333333
      => pwogram fizib 16 4 0x44444444
      => pwogram fizib 16 5 0x55555555
      => pwogram fizib 16 6 0x66666666
      => pwogram fizib 16 7 0x77777777

 Kreye yon kouran demaraj ki siyen

 U-Boot Proper ak ATF

  1. Kopye sa ki nesesè yo files (konstriksyon yon imaj TQ reyisi, gade pi wo a, oubyen sous U-Boot yo sipoze):
    • Firmwèr ARM ki fyab: ${DEPLOY_DIR_IMAGE}/bl31-imx93.bin, chanje non an bl31.bin
    • Bòt U apwopriye:
      ${DEPLOY_DIR_IMAGE}/u-boot.bin
      Sa a file se yon lyen, kidonk kopye li avèk cp --dereference oubyen montre epi kopye orijinal la file ak ls –-long
      or
      soti nan sous U-Boot konpile pa moun nan
      Sa yo fileYo dwe kopye s yo nan imx-mkimage/iMX9/. Ou ka jwenn imx-mkimage nan depo Github ki mansyone pi wo a, ou pa bezwen fè okenn enstalasyon.
  2. Bati yon kontenè avèk U-Boot Proper ak ATF (egzekite l nan dosye imx-mkimage):
    $ fè SOC=iMX9 REV=A1 u-boot-atf-container.img enkli autobuild.mak
    • CST: KONTEYÈ 0 konpansasyon: 0x0
    • CST: KONTÈNÈ 0: Blòk Siyati: offset la se nan 0x110
    • Offset = 0x0 0x110
    • FÈ.
    • Nòt: Tanpri kopye imaj la nan offset la: IVT_OFFSET + IMAGE_OFFSET
      ATANSYON: Ou dwe mete offset yo pou kontenè a ak blòk siyati a nan pwochen etap la.
    • Apre sa, ou dwe kopye atifak imx-mkimage/iMX9/u-boot-atf-container.img la nan dosye CST a lè ou te dekonprese l nan etap "3.1 Jenere kle yo".
  3. Transfere offset kontenè a ak blòk siyati a nan Sekans Kòmand lan File (CSF):
  4. Siyen kontenè a (chemen relatif ak dosye CST a):
    $ linux64/bin/cst -i csf_uboot_atf.txt -o signed-u-boot-atf-container.img Apre sa, ou dwe kopye kontenè ki siyen an tounen nan imx-mkimage/iMX9/u-boot-atf-container.img. Remake chanjman non an pou u-boot-atf-container.img.

 Bootstream konplè

  1. Kopye sa ki nesesè yo files (yo sipoze yon imaj TQ reyisi, gade pi wo a, oubyen sous U-Boot yo):
    • Firmwèr Edgelock Secure Enclave: ${DEPLOY_DIR_IMAGE}/mx93a1-ahab-container.img
    • Firmwèr RAM: ${DEPLOY_DIR_IMAGE}/lpddr4*.bin
    • U-Boot SPL:
      ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin
      Sa a file se yon lyen, kidonk kopye li avèk cp --dereference oubyen montre epi kopye orijinal la file ak ls –-long
      or
      soti nan sous U-Boot konpile pa moun nan
    • Kontenè siyen ak U-Boot Proper ak ATF nan etap "3.2.1 U-Boot Proper ak ATF"
      Sa yo fileYo dwe kopye s yo tou nan imx-mkimage/iMX9/.
  2. Bati bootstream
    • $ fè -j8 SOC=iMX9 REV=A1 flash_singleboot
      enkli autobuild.mak
    • CST: KONTEYÈ 0 konpansasyon: 0x400
    • CST: KONTÈNÈ 0: Blòk Siyati: offset la se nan 0x490
    • Offset = 0x400 0x490
    • FÈ.
    • RemakTanpri kopye imaj la nan offset la: IVT_OFFSET + IMAGE_OFFSET ajoute u-boot-atf-container.img nan 379 KB, psize=1024
    • 1145+0 dosye nan
    • 1145+0 dosye soti
    • 1172480 octets (1.2 MB, 1.1 MiB) kopye, 0.00266906 s, 439 MB/s
    • ATANSYON: Offset yo pou kontenè a ak blòk siyati a nesesè nan pwochen etap la.
      Apre sa, ou dwe kopye atifak imx-mkimage/iMX9/flash.bin nan dosye CST a lè ou te dekonprese l nan etap "3.1 Jenere kle yo".
  3. Transfere offset kontenè a ak blòk siyati a nan Sekans Kòmand lan File (CSF):
  4. Siyen bootstream lan
    • linux64/bin/cst -i csf_boot_image.txt -o signed-flash.bin

Ou ka jwenn etap pou ranplase kouran demaraj la nan kouch BSP a (https://github.com/tq-systems/meta-tq) anba meta-tq/doc.

Verifikasyon
Pou verifye si kouran demaraj ki siyen an valab, sèvi ak kòmand ahab_status nan U-Boot:

  • => estati_akab
  • Sik lavi: 0x00000008, OEM Ouvè
  • Pa jwenn okenn evènman!
  • Si yo jwenn yon evènman, kouran demaraj la pa valab epi li pa t ap kapab demaraj sou yon aparèy bloke.

Pou falsifikasyon, yon bootstream san siyati ka demarre epi answit ahab_status ka rele:

  • => estati_akab
  • Sik lavi: 0x00000008, OEM Ouvè
  • 0x0287fad6
  • IPC = MU APD (0x2)
  • CMD = ELE_OEM_CNTN_AUTH_REQ (0x87)
  • END = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA)
  • STA = ELE_SUCCESS_IND (0xD6)
  • 0x0287fad6
  • IPC = MU APD (0x2)
  • CMD = ELE_OEM_CNTN_AUTH_REQ (0x87)
  • END = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA)
  • STA = ELE_SUCCESS_IND (0xD6)

 Fèmen aparèy la

ATANSYON: Etap sa a pa ka chanje epi ou ta dwe fè l sèlman si sa nesesè. Si konfigirasyon an pa kòrèk, etap sa a ap lakòz yon aparèy ki pa ka itilize.

Ou ka bloke aparèy la nan U-Boot la avèk kòmand ahab_close la. Sa vle di se sèlman kouran demaraj valab ki verifye pa ROM demaraj la ki pral demarre. Estati sa a ap parèt apre redemaraj:

  • => estati_akab
  • Sik lavi: 0x00000020, OEM Fèmen
  • Pa jwenn okenn evènman!

Imaj FIT

ATANSYON: Enfòmasyon sou chemen an se relatif ak yon nouvo dosye vid, pa egzanp
fit_image_work, oubyen sous nwayo a, si li konpile pa itilizatè a. Apre sa, nou pral rele l anyè travay la.

Jenere yon pè kle
Yo itilize yon pè kle asimetrik pou siyen imaj FIT la. Yo ka pwodui yon pè konsa avèk OpenSSL:

$ openssl genpkey -algorithm RSA -out dev.key -pkeyopt rsa_keygen_bits:2048
$ openssl req -batch -new -x509 -key dev.key -out dev.crt

Kreye yon sous pyebwa imaj

  • Kreye yon sous pyebwa imaj sign.its pou imaj FIT la.
  • /dts-v1/;
  • / {
  • deskripsyon = "Imaj anfòm Kernel pou TQMa93xx";
  • #selil-adrès = <1>;
  • imaj {
  • nwayo-1 {
  • deskripsyon = "nwayo Linux";
  • done = /incbin/("Imaj");
  • kalite = "nwayo";
  • arch = "arm64";
  • os = "linux";
  • konpresyon = "gzip";
  • chaj = <0x90000000>;
  • antre = <0x90000000>;
  • hach-1 {
  • algo = "sha256";
  • };
  • };
  • fdt-1 {
  • deskripsyon = "Tach pyebwa aparèy aplati";
  • done = /incbin/(“ ");
  • tip = "flat_dt";
  • arch = "arm64";
  • konpresyon = "okenn";
  • chaj = <0x97000000>;
  • hach-1 {
  • algo = "sha256";
  • };
  • };
  • };
  • konfigirasyon {
  • defo = "konf-1";
  • konf-1 {
  • deskripsyon = "Nwayo Linux, blob FDT";
  • kernel = "kernel-1";
  • fdt = "fdt-1";
  • hach-1 {
  • algo = "sha256";
  • };
  • siyati-1 {
  • algo = "sha256,rsa2048";
  • kle-non-endis = "dev";
  • padding = "pkcs-1.5";
  • imaj-siy = "kernel", "fdt";
  • };
  • };
  • };
  • };

 Kreye yon imaj FIT ki siyen

Nòt: Binè devicetree pou U-Boot la nesesè pou etap sa a. Ou ka jwenn binè devicetree ki deja fèt yo nan espas travay Yocto a, nan anyè konstriksyon U-Boot la. Ou ka wè chemen ki mennen nan anyè konstriksyon an avèk bitbake virtual/bootloader –e | grep ^B=.

  1. Kopye sa ki nesesè yo files nan anyè travay la:
    • Chanje non U-Boot devicetree imx93-tqma9352-mba91xxca.dtb, imx93-tqma9352-mba93xxca.dtb oswa imx93-tqma9352-mba93xxla.dtb, nan pubkey.dtb:
      Soti nan anyè konstriksyon U-Boot nan espas travay Yocto a (chemen: bitbake virtual/bootloader –e | grep ^B=)
      or
      soti nan sous U-Boot konpile pa moun nan
    • Kernel Linux:
      ${DEPLOY_DIR_IMAGE}/Imaj
      Sa a file se yon lyen, kidonk kopye li avèk cp --dereference oubyen montre epi kopye orijinal la file ak ls –-long
      or
      soti nan sous Linux konpile pa pwòp tèt ou
    • Tree aparèy Linux:
      Tou depan de varyant ${DEPLOY_DIR_IMAGE}/imx93-tqma93 la…
      Sa a file se yon lyen, kidonk kopye li avèk cp --dereference oubyen montre epi kopye orijinal la file ak ls –-long
      or
      soti nan sous Linux konpile pa pwòp tèt ou
    • Kle yo ki te pwodui nan etap 4.1 la
    • ITS la file pwodwi nan etap 4.2
  2. Kreye yon imaj FIT ak siyati
    $ mkimage -f sign.its -K pubkey.dtb -k . -r image.itb
    Kle piblik la ekri nan branch aparèy U-Boot la. Kle sa a sèvi pou verifye imaj FIT ki siyen anwo a.

ATANSYON: Pou mete tree aparèy U-Boot la ak kle piblik la nan bootstream ki siyen an nan chapit 3.2 a, ou dwe repete etap ki nan chapit 3.2 yo ak yon u-boot.bin U-Boot Proper pèsonalize. Pou fè sa, ou dwe espesifye tree aparèy la ak kle piblik pubkey.dtb la atravè opsyon EXT_DTB a lè w ap konpile U-Boot la:
fè EXT_DTB=

Verifikasyon
Nan U-Boot ak kle piblik, imaj FIT siyen an image.itb ka demarre ak bootm apre li fin chaje soti nan yon mwayen ki apwopriye (TFTP, eMMC, SD).
Lè w ap demarre imaj FIT la, U-Boot retounen enfòmasyon sa a: Verifye Entegrite Hach la... sha256,rsa2048:dev+ OK ak non, algorithm ak longè kle ki te pwodui nan chapit 4.1 sou konsole a:

  • ## Ap chaje kernel la soti nan imaj FIT nan 80400000 …
  • Verifye Entegrite Hach la... sha256,rsa2048:dev+ OK
  • ## Ap chaje ramdisk la soti nan imaj FIT nan 80400000 …
  • Verifye Entegrite Hach la... sha256,rsa2048:dev+ OK
  • ## Ap chaje fdt soti nan imaj FIT nan 80400000 …
  • Verifye Entegrite Hach la... sha256,rsa2048:dev+ OK

Pou falsifikasyon, yo ka pwodui yon lòt pè kle jan sa dekri nan seksyon 4.1 epi itilize li pou siyen imaj FIT la. Yo pa ka demarre imaj FIT sa a san yo pa chanje kle a nan U-Boot Devicetree la:
## Ap chaje kernel la soti nan imaj FIT nan 80400000 …

Ap itilize konfigirasyon 'conf-1' la
Verifye Entegrite Hach la... sha256,rsa2048:test- erè!
Verifikasyon an echwe pou ' 'nœud hach nan nœud konfigirasyon 'conf-1'
Echèk pou verifye siyati obligatwa 'key-dev'
Move Done Hash
ERÈ: pa ka jwenn imaj nwayo a!

Pwolonje Chèn Konfyans lan: patisyon rasin lan
Chèn konfyans ki te etabli deja a verifye orijin kernel U-Boot ak Linux la. Avèk mekanis nou mansyone pi wo yo, se sèlman pwopriyetè kle prive ki pwodui a ki ka siyen lojisyèl li epi demarre l sou aparèy la. Ou ka ajoute plis lyen nan chèn nan. Seksyon ki vin apre a dekri kijan pou pwoteje patisyon rasin lan kont manipilasyon lè l sèvi avèk dm-verity. Pou aplikasyon reyèl la, yo montre tou kijan pou kreye chèn konplè a avèk TQ-BSP a. Yo pa bay yon gid etap pa etap pou pwoteksyon dm-verity akòz konpleksite egzijans yo.

 Eskis: Verity Devicemapper

  1. Jenere hach Verity yo:
    veritysetup kalkile valè hach yo epi estoke yo nan fen patisyon rasin lan. Patisyon rasin lan kapab yon vrè file oubyen yon aparèy blòk file (pa egzanp /dev/sdaX).
    • veritekonfigirasyon \
    • –gwosè-blòk-done=1024 \
    • –gwosè-blòk-hash=4096 \
    • –hash-offset= \
    • fòma \
    • \
    • veritysetup bay enfòmasyon sa yo (ak valè diferan ki koresponn):
    • Enfòmasyon antèt VERITY pou data.img
    • UUID: e06ff4cb-6b56-4ad4-bd97-0104505a70a5
    • Kalite Hach: 1
    • Blòk done: 204800
    • Gwosè blòk done: 1024
    • Gwosè blòk hach: 4096
    • Algorit Hach: sha256
    • Salt: 17328c48990b76fbb3e05d0ebfd236043674cf0d14c278bc875b42693621cc21
    • Root hash: a0e1a449d452f74d041706b955794c0041e3d8ad051068df6589e08485323698
    • Valè "hash" rasin lan se valè sansib ki bezwen pwoteksyon. Si "hash" sa a konpwomèt, pa egzanp si yon moun ki pa otorize ka chanje l, pwoteksyon entegrite patisyon rasin lan pa dm-verity pa vo anyen.
  2. Entegre hach rasin lan nan chèn konfyans lan
    • Rasin hach ki pwodui anwo a estoke nan imaj FIT ki siyen an, sa ki pwoteje li kont manipilasyon. Pou rezon sa a, yo ajoute yon initramfs nan imaj FIT la kote rasin hach la estoke nan yon file.
    • Nœd imaj ITS la file soti nan chapit 4.2 a pwolonje pa seksyon sa a, pami lòt:
    • ramdisk-1 {
    • deskripsyon = "dm-verity-imaj-initramfs";
    • done = /incbin/(“ ");
    • tip = "ramdisk";
    • arch = "arm64";
    • os = "linux";
    • konpresyon = "okenn";
    • chaj = <0x98000000>;
    • antre = <0x98000000>;
    • hach-1 {
    • algo = "sha256";
    • };
    • };
  3. Tcheke entegrite patisyon rasin lan
    • Fichye initramfs la gen yon script apwopriye ki jenere yon mapè aparèy apati patisyon rasin lan ak hach rasin lan.
    • veritekonfigirasyon \
    • –gwosè-blòk-done=${GWOSÈ_BLÒK_DONE} \
    • –hash-offset=${DATA_SIZE} \
    • kreye rootfs \
    • \
    • \

Apre sa, yo monte mapè aparèy la:

  • mòn \
  • -o ro \
  • /dev/mapper/rootfs \
  • /rootfs

Rasin lan filesistèm nan se pou lekti sèlman. Pou chanje nan rasin aktyèl la filesistèm nan, sèvi ak switch-root.

Kreyasyon otomatik ak TQ-BSP
An prensip, yon imaj ak yon chèn konfyans soti nan loader demaraj la rive nan patisyon rasin lan ka kreye otomatikman avèk TQ-BSP la.
Pou TQMa93xx, ou dwe ajoute opsyon sa yo nan local.conf:

  • # DISTRO_FEATURE a pwoteje opsyon konfigirasyon nesesè pou U-Boot ak Kernel la
  • DISTRO_FEATURES: ajoute = "sekirite"
  • # Non kle ki itilize pou siyen bootloader la
  • IMX_HAB_KEY_NAME = "akab"
  • # Aktive siyati imaj FIT la nan pwosesis konstriksyon an
  • UBOOT_SIGN_ENABLE = "1"
  • # Klas sa a gen lojik pou kreye yon patisyon rasin pwoteje.
  • KLAS_IMAJ += “dm-verite-img”
  • # Non imaj initramfs la pou jere dm-verity
  • IMAJ_INITRAMFS = "dm-verity-imaj-initramfs"
  • # Initramfs estoke kòm yon atifak separe nan imaj la
  • INITRAMFS_IMAGE_BUNDLE = “0”
  • # Sere imaj FIT la avèk initramfs nan patisyon demaraj la
  • IMAJ_BÒT_FILES: ajoute = ” anfòmImaj-${INITRAMFS_IMAGE}-${MACHIN}-
  • ${MACHINE};fitImage” # Imaj pou pwoteje ak dm-verity
  • # Altènatif: tq-image-weston-debug
  • DM_VERITY_IMAGE = "tq-imaj-jenerik-debogaj"
  • # Kalite imaj ki anwo a
  • DM_VERITE_IMAJ_TIP = "ext4"

ATANSYON: Opsyon egzak yo ka chanje nan vèsyon BSP yo nan lavni. Ou ka jwenn dènye enfòmasyon yo nan dokimantasyon kouch BSP a (https://github.com/tq-systems/meta-tq) anba meta-tq/doc.

Imaj konplè a kreye avèk bitbake tq-image-generic-debug epi ou ka ekri l sou yon kat SD, pa egzanp.ample.

Verifikasyon
Nan Linux, ou ka itilize mount -a pou verifye si Verity Devicemapper la monte kòm root la. filesistèm:

  • # monte
  • /dev/mapper/rootfs sou / tape ext4 (ro,relatime)
  • Anplis de sa, tout rasin lan file Sistèm nan se pou lekti sèlman nan ka sa a:
  • # tès manyen
  • touche: pa ka touche 'tès': Lekti sèlman file sistèm

Pou fo, rasin lan file Sistèm nan ka modifye offline epi aparèy la ka redemare. Modifikasyon an lakòz yon lòt hach rasin epi pwosesis demaraj la abandone: device-mapper: verity: 179:98: blòk done 1 pèvèti

Ou ka jwenn plis enfòmasyon sou TQMa93xx la nan Wiki Sipò TQ a: https://support.tq-group.com/en/arm/modules#nxp_imx_9_series

TQ-Systems GmbH
Mühlstraße 2 l Gut Delling l 82229 Seefeld Info@TQ-Group | TQ-Group

Kesyon yo poze souvan

K: Èske li posib pou ranvèse pwosesis irevokab pou mete fizib yo jan yo mansyone sa nan gid kijan pou fè a?
A: Non, mete Fusion yo se yon bagay ki pa ka chanje. Li rekòmande pou itilize yon modèl devlopman.

K: Ki kote m ka jwenn sous ki nesesè yo pou Linux ak U-Boot?

A: Linux:
Repozitwa Linux

U-Boot: U-bòt
Repozitwa

Dokiman / Resous

TQ TQMa93 bòt an sekirite [pdfGid Itilizatè
TQMa93xx, TQMa93 Demaraj an sekirite, Demaraj an sekirite, Demaraj

Referans

Kite yon kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo make *