ฉันจะรู้ได้อย่างไรว่าเครื่องของฉันรองรับฮาร์ดแวร์ RNG หรือไม่


11

ฉันเจอบล็อกเกี่ยวกับปัญหาพูลเอนโทรปีและเรียนรู้ว่ามีฮาร์ดแวร์พิเศษที่เรียกว่า RNG ฉันได้อ่านหน้าRNG ของเคอร์เนลนี้แล้ว แต่ฉันยังสงสัยว่ามีวิธีที่จะดูว่าเซิร์ฟเวอร์ของฉันรองรับฮาร์ดแวร์ RNG หรือไม่

คำตอบ:


8

มีฮาร์ดแวร์ที่ "จริง" สองประเภทที่น่าจะเป็น RNG: CPU ที่ใช้และชิปเซ็ตหรือ PCI ที่ใช้ (นอกจากนี้ยังมีฮาร์ดแวร์ USB RNG บางตัว แต่ฉันสงสัยว่าคุณจะสังเกตเห็นหนึ่งในนั้น ;-)

ต่อไปนี้เป็น Linux เฉพาะ

สำหรับ CPU ที่ใช้ CPU คุณสามารถตรวจสอบ/proc/cpuinfoเบาะแสได้โดยสมมติว่าเคอร์เนลของคุณใหม่พอที่จะตรวจจับได้ สำหรับ Intel CPUs การตั้งค่าสถานะคือrdrandข้อมูลเพิ่มเติมที่นี่: /unix/43539/what-do-the-flags-in-proc-cpuinfo-mean

สำหรับชิปเซ็ตหากคุณCONFIG_HW_RANDOMเปิดใช้งานในเคอร์เนลและการสนับสนุนต่อผู้ขายCONFIG_HW_RANDOM_INTEL ..._AMDฯลฯ ข้อความบูตของคุณควรระบุว่ามีสิ่งใดที่พบ (เช่น "ตรวจพบ Intel 82802 RNG") หากมีอยู่เป็นโมดูลคุณสามารถลอง ( modprobe intel-rng) เพื่อดูว่าโหลดหรือไม่ "ไม่มีอุปกรณ์ดังกล่าว" ระบุว่าไม่มีฮาร์ดแวร์ที่ตรวจพบ มีไดรเวอร์บางตัวที่พิมพ์ "RNG ตรวจพบ" หรือ "ตรวจไม่พบ" อย่างสม่ำเสมอดังนั้นคุณจึงสามารถอ่านแหล่งข้อมูลได้ ( /drivers/char/hw_random/ไดเรกทอรีของแหล่งเคอร์เนล)

สำหรับคนอื่นคุณสามารถตรวจสอบlspci -vเพื่อดูว่ามีใครรู้จัก


1

เพื่อค้นหาว่าคุณได้RNGทำสิ่งต่อไปนี้:

1) รายการโมดูลทั้งหมดที่มี "rng" ในชื่อ:

cat /proc/modules | grep -i rng

2) ถ้าคุณมีคุณจะได้ผลลัพธ์เช่นนี้

tpm_rng 16384 0 - Live 0xffffff......

3) ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานหรือโหลดโดยใช้modprobeในเวลานี้:

modprobe tpm_rng

ปรับปรุง : เกี่ยวกับขั้นตอน (1) สำหรับฉันmodprobe -lไม่ได้ทำงานใน Ubuntu 16 นั่นเป็นเหตุผลที่ฉันพยายามมองหาข้างใน "/ proc / modules" แต่ถ้ามันทำงานกับคุณมันก็โอเค .. ฉันเพิ่งค้นและรับรู้ โมดูลทั้งหมดมีถิ่นที่อยู่ภายใน/lib/modules/$(uname -r)ดังนั้นคุณสามารถใช้สิ่งต่อไปนี้ซึ่งดีกว่า:

cat /lib/modules/$(uname -r)/modules.dep | grep -i rng.*.ko

1

ในเมล็ดล่าสุดคุณสามารถตรวจสอบได้ที่นี่:

$ cat /sys/devices/virtual/misc/hw_random/rng_current 
virtio_rng.0

หากไฟล์นั้นมีอยู่และไม่ได้บอกว่าไม่มีแล้วโดยทั่วไปคุณมีของขวัญ rng (ในกรณีนี้มันเป็นเครื่องเสมือนที่โฮสต์ให้แหล่งที่มาแบบสุ่ม)

นอกจากนี้เพื่อดูว่ามีให้บริการอะไรบ้าง (ตัวอย่างนี้จากเครื่อง intel ที่ทันสมัยพร้อมกับ ChaosKey hardware rng เชื่อมต่อด้วย)

$ cat /sys/devices/virtual/misc/hw_random/rng_available 
ChaosKey-hw-1.0-sw-1.9-001900375346430b20333632 tpm-rng-0 

ดังนั้นทั้ง ChaosKey และ tpm จึงพร้อมใช้งาน

มีพื้นหลังที่น่าสนใจที่https://daniel-lange.com/archives/152-hello-buster.html

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