เคอร์เนล Linux ใช้แหล่งใดของเอนโทรปี


14

man 4 random มีคำอธิบายที่คลุมเครือของแหล่งเคอร์เนลเอนโทรปีของ Linux:

ตัวสร้างหมายเลขสุ่มรวบรวมเสียงสิ่งแวดล้อมจากไดรเวอร์อุปกรณ์และแหล่งอื่น ๆ ลงในพูลเอนโทรปี

กระดาษEntropy ถ่ายโอนในเครื่องสร้างหมายเลขสุ่มของ Linuxไม่เฉพาะเจาะจงมากขึ้นเช่นกัน มันแสดง:

  • add_disk_randomness(),
  • add_input_randomness()และ
  • add_interrupt_randomness().

functinos เหล่านี้มาจากrandom.cซึ่งรวมถึงความคิดเห็นต่อไปนี้:

แหล่งที่มาของการสุ่มจากสภาพแวดล้อมรวมถึงการกำหนดเวลาระหว่างแป้นพิมพ์การกำหนดเวลาการอินเตอร์รัปต์จากบางอินเทอร์รัปต์และเหตุการณ์อื่น ๆ ซึ่งเป็นทั้งสองอย่าง (ก)

นอกจากนี้ยังมีฟังก์ชั่นที่add_hwgenerator_randomness(...)ระบุการรองรับสำหรับตัวสร้างหมายเลขสุ่มฮาร์ดแวร์

ข้อมูลทั้งหมดนั้นค่อนข้างคลุมเครือ (หรือในกรณีของซอร์สโค้ดจำเป็นต้องมีความรู้เชิงลึกเกี่ยวกับเคอร์เนล Linux เพื่อทำความเข้าใจ) แหล่งข้อมูลเอนโทรปีที่ใช้จริงคืออะไรและเคอร์เนล Linux สนับสนุนตัวสร้างหมายเลขสุ่มฮาร์ดแวร์ใด ๆ หรือไม่

คำตอบ:


4

ฮาร์ดแวร์พีซีสินค้าส่วนใหญ่มีตัวสร้างตัวเลขสุ่มวันนี้ VIA Semiconductor ทำให้พวกเขาอยู่ในโปรเซสเซอร์เป็นเวลาหลายปี เคอร์เนล Linux มีไดร์เวอร์ via-rng สำหรับสิ่งนั้น ฉันนับโมดูลโมดูล 34 โมดูลในdrivers/char/hw_random/ไดเรกทอรีในแผนผังต้นไม้ล่าสุดรวมถึงไดรเวอร์สำหรับฮาร์ดแวร์ Intel และ AMD และสำหรับระบบที่มีอุปกรณ์ TPM คุณสามารถรัน rng daemon (rngd) เพื่อส่งข้อมูลแบบสุ่มไปยังพูลเอนโทรปีของเคอร์เนล


ดูเหมือนว่าคำตอบส่วนใหญ่ที่ฉันต้องการ ฉันจะมองลึกลงไปถึงสิ่งที่อยู่ในนั้นทันทีที่ฉันไปถึง เมื่อรวมกับข้อมูลที่มีอยู่แล้วในคำถามนี้รู้สึกเหมือนเป็นรายการที่ครอบคลุมของแหล่งข้อมูลเอนโทรปี
Jens Erat

cat /sys/devices/virtual/misc/hw_random/rng_availableและจะเห็นสิ่งที่มีอยู่ในการทำงานเฉพาะเครื่องคอมพิวเตอร์
hlovdal

0

ใช่มันรองรับเครื่องกำเนิดไฟฟ้าเอนโทรปีของฮาร์ดแวร์นอกกรอบ สิ่งนี้จำเป็นสำหรับเซิร์ฟเวอร์ SSL ที่โหลดสูงที่มีการเชื่อมต่อพร้อมกันจำนวนมากเริ่มต้นต่อวินาที (Gmail, Facebook, Microsoft, ฯลฯ ) ไม่จำเป็นสำหรับเซิร์ฟเวอร์ภายในบ้านหรือเซิร์ฟเวอร์องค์กรขนาดเล็ก โปรดทราบว่าเครื่องกำเนิดเอนโทรปีของฮาร์ดแวร์มักจะใช้อินเตอร์เฟส PCI ไม่มีอะไรที่น่าแปลกใจดังนั้นจึงสามารถรองรับได้อย่างง่ายดาย ไม่แน่ใจว่ามีตัวกำเนิดเอนโทรปีของฮาร์ดแวร์ที่ต้องใช้ไดรเวอร์แบบโอเพ่นซอร์สซึ่งอาจไม่ใช่เพราะมันไม่ใช่เรื่องยากและไม่ใช่อุตสาหกรรมที่ทำกำไรได้มาก (ไม่เหมือนกราฟิกการ์ด)

http://en.wikipedia.org/wiki/Hardware_random_number_generator


2
เซิร์ฟเวอร์ปริมาณมากไม่ต้องการฮาร์ดแวร์ RNG มากกว่าเซิร์ฟเวอร์ระดับต่ำ เมื่อเครื่องได้รับการเติมเอนโทรปีอย่างเพียงพอแล้วมันก็จะสามารถทำงานบน PRNG ได้ตลอดไป (หรืออย่างน้อยก็หลายพันล้านปีซึ่งก็เหมือนกันในทางปฏิบัติ) ประเภทของคอมพิวเตอร์ที่ต้องการฮาร์ดแวร์ RNG จริงๆคืออุปกรณ์ฝังตัวที่ไม่สามารถบันทึกสถานะ RNG ปัจจุบันของพวกเขาได้อย่างปลอดภัยเมื่อปิดเครื่อง
Gilles 'หยุดชั่วร้าย'

@Gilles: ใช้ได้กับระบบอื่นที่ไม่ใช่ Linux หรือไม่ ฉันรู้ว่า Linux ทำสิ่งนี้ แต่ไม่เคยได้ยิน * BSD รวมถึง OS X (หรือ Windwos) ที่ทำเช่นนั้น
Jens Erat

1
@JensErat ฉันไม่รู้ มันใช้งานง่ายและมีประโยชน์มากดังนั้นฉันจะแปลกใจถ้า BSD ไม่ทำ
Gilles 'SO- หยุดความชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.