เป็นไปได้หรือไม่ที่จะควบคุมโมดูล SRAM ผ่านหมุด GPIO?


13

ฉันต้องการแนบโมดูล SRAM กับ RasPi

ความคิดของฉันคือการจัดเก็บข้อมูลที่สำคัญ (เข้ารหัส) ในการ์ด SD แต่เก็บกุญแจไว้ในโมดูล SRAM มันจะมีแบตเตอรี่สำรองของตัวเอง (หรือsupercapacitor ) และสวิตช์ป้องกันการงัดแงะที่จะลบเนื้อหาหากเปิดสิ่งที่แนบมา

มีวิธีใดบ้างในการเชื่อมต่อกับ SRAM ด้วยสาย GPIO ที่มีเพียง 8 สาย?

โมดูล SRAM นั้นต้องการความจุอย่างน้อย 128 บิต (ขนาดของคีย์AES ที่เล็กที่สุด) แต่แม้แต่หน่วยความจำที่กว้าง 1 บิตก็ดูเหมือนว่าต้องการแอดเดรส 7 บรรทัดและหนึ่งดาต้าไลน์บวก 2 หรือ 3 บรรทัดควบคุม

มันสามารถทำได้? ฉันคิดว่ามันอาจเป็นไปได้ที่จะโกงโดยการใช้สาย I / O ที่ออกแบบมาเพื่อสิ่งอื่น

คำตอบ:


4

ในการติดตั้ง SRAM ฉันขอแนะนำให้ใช้โมดูล I2C / SPI ( ตัวอย่างแทนการใช้สาย GPIO แม้ว่าอาจช้ากว่าก็หมายความว่าคุณมีสาย GPIO อื่นสำหรับสิ่งอื่น ๆ และ SRAM ของคุณอาจมีขนาดค่อนข้างใหญ่

มีข้อเสียคือการใช้ SRAM แม้ว่า สมมติว่าคุณเก็บข้อมูลที่มีค่าจริงๆไว้ใน RPi ของคุณและฉันหมายถึงจริงๆ สมมติว่าฉันสามารถแฮ็กเข้าสู่ RPi ของคุณและเรียกใช้รหัสโดยพลการจากนั้นฉันสามารถดึงคีย์ของคุณจาก SRAM ซึ่งจำเป็นต้องถอดรหัสข้อมูล นี่คือความเสี่ยงด้านความปลอดภัย หรือคุณสามารถใช้ตัวประมวลผลร่วม AVR / PIC ซึ่งคุณสื่อสารผ่าน I2C / SPI / UART แทนที่จะทำการเข้ารหัส / ถอดรหัสใน RPi คุณจะส่งข้อมูลของคุณไปยังตัวประมวลผลร่วมและตรวจสอบให้แน่ใจว่าไม่มีคำสั่งสำหรับการส่งคีย์ไปที่ RPi ของคุณ อย่างไรก็ตามอาจมีคำแนะนำในการสร้างคีย์ใหม่และแน่นอนว่าคุณอาจมีหลายคีย์ที่เก็บอยู่บนตัวประมวลผลร่วม นี่อาจเป็นโครงการเล็ก ๆ ที่น่าสนใจ


ขอบคุณ แต่ข้อมูลที่สำคัญจะต้องผ่าน CPU อยู่แล้ว (ดังนั้นจึงถูกบุกรุกแล้วถ้ามีคนได้รับการเข้าถึงรากไป Pi.)
finnw

ฉันเห็นด้วยกับขอบเขต หากคุณมีรหัสผ่านบนกุญแจคุณจะไม่สามารถถอดรหัสข้อมูลที่คุณเก็บไว้ได้
อเล็กซ์แชมเบอร์เลน

2
ไม่มีประเด็น ข้อมูลจะไม่ปลอดภัยกว่าในหน่วยความจำปกติ ใครก็ตามที่รูทระบบปฏิบัติการสามารถรับมันได้ในที่เดียว ใครก็ตามที่ไม่สามารถรับมันได้ในที่เดียว
David Schwartz

@David Schwartz: ประเด็นคือ (1) การรูทระบบปฏิบัติการต้องการให้คุณเปิดเคส (2) การเปิดเคสและเปิดสวิตช์ที่ลบ SRAM ใครก็ตามที่รูทระบบปฏิบัติการจะสามารถเข้าถึง (a) ข้อมูลในหน่วยความจำหลักและแฟลชและ (b) ศูนย์ใน SRAM ภายนอกดังนั้นตอนนี้พวกเขาไม่มีกุญแจในการถอดรหัสข้อมูลแฟลช เห็นได้ชัดว่าเรายังคงต้องปกป้องระบบปฏิบัติการจากการถูกรูทผ่านเครือข่าย (เช่นที่เราทำไปแล้ว)
finnw

1
จากนั้นคุณสามารถใช้MCP79410 มันมีอินเตอร์เฟซอนุกรมสองพิน (นาฬิกาและข้อมูล) 64 ไบต์ของ SRAM และพินสำหรับการป้อนข้อมูลจากแบตเตอรี่ภายนอก เพียงตรวจสอบให้แน่ใจว่าสวิตช์ tamper ของคุณนั้นรวมแบตเตอรี่และแรงดันไฟฟ้าไว้!
David Schwartz

4

คุณสามารถใช้ไมโครคอนโทรลเลอร์ขนาดเล็กเพื่อเลียนแบบ RAM ผ่าน SPI หรือ I2C

ทั้งหมด แต่ micros ที่เล็กที่สุดจะมี RAM ขนาด 128 บิตเพื่อเก็บกุญแจ

เช่น

MSP430G2001มีRAM 128 ไบต์
PIC12F508มีRAM 50 ไบต์ (16 ไบต์สำหรับคีย์, 34 ไบต์)
PIC10F202มี RAM 24 ไบต์ (16 ไบต์สำหรับคีย์, 8 ไบต์ฟรี)

หากคุณต้องการหน่วยความจำอนุกรมจริง ๆ พวกมันก็มีอยู่เช่นกัน

23K640คือ 64kbits / 2.7-3.6V


2

คุณกำลังสมมติว่ามี Pi gio เพียง 8 บรรทัดเท่านั้น ในความเป็นจริงเป็นไปได้ที่จะมีถึง 17

ฉันไม่ทราบรายละเอียดของวิธีการเข้าถึง แต่คุณสามารถค้นหาข้อมูลเพิ่มเติมได้ที่นี่

http://elinux.org/RPi_Low-level_peripherals


1
ฉันเพิ่ง downvoted (ฉันรู้สึกว่าฉันควรอธิบาย) เพราะคุณสวยมากเพียงแค่ให้การเชื่อมโยงไม่ได้อธิบาย (ผมไม่ทราบว่าคุณจะประทับใจนี้ แต่ฉัน denfinately เช่นคนบอกฉันว่าทำไมพวกเขา downvoted.)
ACarter

ฉันคิดว่าการรู้ว่าคุณจะได้รับมากกว่า 8 สาย io นั้นมีประโยชน์มาก แต่ฉันขอขอบคุณความคิดเห็น
David Sykes

0

คุณสามารถใช้โมดูลI 2 C SRAM เช่นPCF8570P £ 1.50ish 256x8Bit SRAM มันทำงานระหว่าง 2.5V และ 6.0V มีโหมดประหยัดพลังงานที่ดึงน้อยถึง 50nA และสามารถซ้อนกันเพื่อสร้าง RAM เพิ่มเติมได้ถ้าต้องการ

เชื่อมต่อกับ I2C โดยตรงหรือกับ Master สำหรับอุปกรณ์ I2C หลายตัว ใช้ 2 GPIO, Power และ Negative เท่านั้นโดยมีตัวเลือกของการปิดการเก็บข้อมูล RAM โดยใช้แบตเตอรี่ขนาดเล็ก

ป้อนคำอธิบายรูปภาพที่นี่

ข้อควรระวังด้านความปลอดภัยของ Alex Chamberlains เป็นเรื่องสำคัญหากคุณต้องการปกป้องรหัสส่วนตัว อาจคิดเกี่ยวกับการสร้างการแยกบางประเภทในรหัสของคุณซึ่งต้องใช้การเลื่อนระดับเพื่อเข้าถึง SRAM

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