Tags:
Node Thumbnail

เป้าหมายสำคัญอย่างหนึ่งในการรักษาความปลอดภัยซอฟต์แวร์โอเพนซอร์ส คือการทำให้การคอมไพล์สามารถทำซ้ำได้ (reproducible builds) เพื่อให้คนภายนอกแน่ใจได้ว่าซอร์สโค้ดที่เปิดเผยออกมาตรงกับซอฟต์แวร์ที่กำลังใช้งานอยู่ แต่กระบวนการทำจริงนั้นมีเงื่อนไขหลายอย่างที่ทำให้โค้ดไม่สามารถคอมไพล์ออกมาให้ตรงกันทุกครั้ง แต่วันนี้ทาง NetBSD ก็ออกมาระบุว่าตอนนี้การคอมไพล์บนสถาปัตยกรรม amd64 และ sparc64 สามารถทำซ้ำได้แล้ว

ทาง NetBSD แจงรายการปัญหาที่พบจากการพยายามทำให้การคอมไพล์ทำซ้ำได้ ได้แก่

  1. ค่าเวลา (timestamp) มีหลายอย่างในระบบคอมไพล์พยายามเก็บค่าเวลา
  2. ข้อมูลวันคอมไพล์, ชื่อเครื่อง ฯลฯ ข้อมูลที่เปลี่ยนไปตามเวลาและเซิร์ฟเวอร์ที่คอมไพล์ได้ทำให้ไฟล์ที่คอมไพล์ออกมาต่างกัน เพราะบางครั้งใส่มาโคร __TIME__ ไว้ในไฟล์
  3. โซนเวลาของเครื่องที่คอมไพล์
  4. ลำดับการคอมไพล์ที่หลายระบบคอมไพล์ลำดับไม่ตรงกัน
  5. ข้อมูลดิบในไฟล์
  6. การลิงก์ในระบบไฟล์
  7. ความไม่แน่นอนของเครื่องมือในการคอมไพล์ เครื่องมือบางตัวไม่รับประกันลำดับการทำงาน
  8. ชุดเครื่องมือมีเอาท์พุตไม่แน่นอน
  9. ค่าปรับแต่งต่างๆ และตัวแปรของระบบ
  10. การแก้ไขซอร์สโค้ดในเครื่องที่คอมไพล์เอง

ตอนนี้ทาง NetBSD กำลังพยายามขยายการคอมไพล์แบบทำซ้ำได้นี้ไปยังแพลตฟอร์มอื่นๆ ต่อไป

ที่มา - NetBSD

Get latest news from Blognone

Comments

By: sukjai
iPhoneAndroidRed HatUbuntu
on 22 February 2017 - 07:08 #971214

เคยใช้แต่ freebsd ส่วนตัวนี้งงๆ กับการติดตั้ง

By: Dino
iPhoneSymbian
on 22 February 2017 - 07:20 #971215
Dino's picture

อ่านข่าวนี้นึกถึง Gentoo เลย