ქსელური ჩატვირთვის ტრადიციული სტანდარტი, PXE, რომელიც DHCP-სა და TFTP-ზეა დაფუძნებული, თანამედროვე უსაფრთხოების მოთხოვნებს ვეღარ პასუხობს. TFTP პროტოკოლი ღია ტექსტით გადასცემს მონაცემებს, რაც მას დაუცველს ხდის „შუამავლის“ (Man-in-the-Middle) ტიპის შეტევების მიმართ. ამის საპირისპიროდ, თანამედროვე IT ინფრასტრუქტურა HTTPS-ზე გადავიდა, რომელიც უზრუნველყოფს სერვერის ავთენტიფიკაციასა და მონაცემთა კონფიდენციალურობას.

რატომ არის ეს მნიშვნელოვანი?

UEFI-ზე დაფუძნებული სისტემების უმრავლესობა უკვე მხარს უჭერს HTTP(S) ჩატვირთვას. ეს მეთოდი არა მხოლოდ უსაფრთხოა, არამედ მარტივია მაღალი ხელმისაწვდომობის (high-availability) მქონე სერვერების კონფიგურაციისთვის. თუმცა, პრაქტიკაში ამის დანერგვა გარკვეულ ტექნიკურ დაბრკოლებებთანაა დაკავშირებული.

ტექნიკური გამოწვევები QEMU-სა და OVMF-ში

QEMU-ში UEFI HTTP ჩატვირთვის კონფიგურაციისას მთავარი პრობლემა შემთხვევითი რიცხვების გენერატორის (RNG) არარსებობაა. ქსელური სტეკის გამართული მუშაობისთვის, განსაკუთრებით TLS-ის გამოყენებისას, სისტემას ესაჭიროება ენტროპია. ამის გადაჭრა შესაძლებელია -device virtio-rng-pci დროშის დამატებით ან KVM-ის გამოყენებით.

კიდევ ერთი მნიშვნელოვანი ასპექტია სერტიფიკატების მართვა. OVMF არ შეიცავს სანდო CA სერტიფიკატების წინასწარ განსაზღვრულ სიას, ამიტომ მათი ხელით მიწოდება etc/edk2/https/cacerts პარამეტრის მეშვეობით აუცილებელია. წინააღმდეგ შემთხვევაში, handshake პროცესი ჩავარდება.

უსაფრთხოების დონეები და OpenSSL

მნიშვნელოვანია აღინიშნოს OpenSSL-ის „უსაფრთხოების დონეების“ (Security Levels) გავლენა. მიუხედავად იმისა, რომ თანამედროვე ბრაუზერები 2048-ბიტიან RSA გასაღებებს უპრობლემოდ იღებენ, EDK II-ის firmware-მა შესაძლოა მოითხოვოს უფრო მკაცრი სტანდარტები (Security Level 3), რაც ხშირად იწვევს კავშირის შეცდომებს. ასეთ დროს საჭირო ხდება firmware-ის კომპილაცია მორგებული პარამეტრებით.

პრაქტიკული რეკომენდაციები

  • გამოიყენეთ virt-fw-vars ინსტრუმენტი „Next Boot URI“-ის ჩასაწერად, რათა თავიდან აიცილოთ ხელით კონფიგურაცია.
  • გამოიყენეთ -device isa-debugcon დროშა, თუ პრობლემების დიაგნოსტიკა გჭირდებათ, თუმცა გაითვალისწინეთ, რომ ეს მხოლოდ DEBUG build-ებში მუშაობს.
  • HTTP(S) ჩატვირთვა მნიშვნელოვნად ამცირებს დაყოვნებას, თუ სწორად არის დაყენებული fw_cfg პარამეტრები.

მიუხედავად იმისა, რომ HTTPS-ზე გადასვლა ერთი ასოს დამატებას ჰგავს, პრაქტიკაში ეს მოითხოვს firmware-ის დონის სრულყოფილ გააზრებას და უსაფრთხოების პარამეტრების ფრთხილ მართვას.