Có thể điều khiển mô-đun SRAM thông qua các chân GPIO không?


13

Tôi muốn đính kèm một mô-đun SRAM vào RasPi.

Ý tưởng của tôi là lưu trữ dữ liệu nhạy cảm (được mã hóa) trên thẻ SD nhưng giữ khóa trên mô-đun SRAM. Nó sẽ có pin dự phòng riêng (hoặc siêu tụ điện ) và một công tắc chống giả mạo sẽ xóa nội dung nếu bao vây được mở.

Có cách nào để giao tiếp với SRAM chỉ với 8 dòng GPIO có sẵn không?

Bản thân mô-đun SRAM sẽ cần dung lượng tối thiểu 128 bit (kích thước của khóa AES nhỏ nhất ) nhưng ngay cả bộ nhớ rộng 1 bit dường như cũng cần 7 dòng địa chỉ và một dòng dữ liệu cộng với 2 hoặc 3 dòng điều khiển.

Nó có thể được thực hiện? Tôi nghĩ có thể gian lận bằng cách sử dụng lại dòng I / O được thiết kế cho mục đích khác.

Câu trả lời:


4

Để cài đặt SRAM, tôi khuyên bạn nên sử dụng mô-đun I2C / SPI ( ví dụ , thay vì sử dụng các dòng GPIO. Mặc dù có khả năng chậm hơn, điều đó có nghĩa là bạn có các dòng GPIO khác cho những thứ khác và SRAM của bạn có thể khá lớn.

Có một bất lợi lớn khi sử dụng SRAM. Giả sử bạn lưu trữ một số thông tin thực sự có giá trị trên RPi của bạn và tôi thực sự có ý nghĩa. Giả sử tôi có thể hack vào RPi của bạn và chạy mã tùy ý, sau đó tôi có thể lấy khóa của bạn từ SRAM, được yêu cầu để giải mã dữ liệu. Đây là một rủi ro bảo mật. Ngoài ra, bạn có thể sử dụng bộ đồng xử lý AVR / PIC mà bạn giao tiếp qua I2C / SPI / UART. Thay vì thực hiện mã hóa / giải mã trên RPi, bạn sẽ gửi dữ liệu của mình đến bộ đồng xử lý và đảm bảo rằng không có hướng dẫn nào để gửi khóa tới RPi của bạn. Tuy nhiên, có thể có một hướng dẫn để tạo một khóa mới, và tất nhiên, bạn có thể có một số khóa được lưu trữ trên bộ đồng xử lý. Điều này có thể làm cho một dự án nhỏ mát mẻ.


Cảm ơn, nhưng dù sao thì dữ liệu nhạy cảm cũng phải truyền qua CPU (vì vậy nó đã bị xâm phạm nếu ai đó có quyền truy cập root vào Pi.)
vây

Tôi đồng ý với một mức độ nào đó. Nếu bạn có mật khẩu trên khóa, thì không có cách nào để giải mã dữ liệu bạn đã lưu trữ.
Alex Chamberlain

2
Không có điểm nào. Dữ liệu sẽ không an toàn hơn ở đó so với trong bộ nhớ thông thường. Bất cứ ai đã root hệ điều hành đều có thể lấy nó ở bất kỳ nơi nào. Bất cứ ai không thể có được nó ở bất cứ nơi nào.
David Schwartz

@David Schwartz: Vấn đề là (1) root hệ điều hành yêu cầu bạn mở trường hợp (2) mở trường hợp mở một công tắc xóa SRAM. Bất cứ ai gốc hệ điều hành bây giờ đều có quyền truy cập vào (a) dữ liệu trong bộ nhớ chính và flash và (b) một loạt các số không trên SRAM bên ngoài, vì vậy bây giờ họ không có chìa khóa để giải mã dữ liệu flash. Rõ ràng là chúng ta vẫn phải bảo vệ HĐH khỏi bị root thông qua mạng (như chúng ta đã làm.)
vây

1
Sau đó, bạn có thể sử dụng MCP79410 . Nó có giao diện nối tiếp hai pin (đồng hồ và dữ liệu), 64 byte SRAM và pin cho đầu vào từ pin ngoài. Chỉ cần chắc chắn rằng công tắc giả mạo của bạn cắt đứt cả pin và điện áp cung cấp!
David Schwartz

4

Bạn chỉ có thể sử dụng một vi điều khiển nhỏ để mô phỏng RAM qua SPI hoặc I2C.

Tất cả, ngoại trừ micrô nhỏ nhất sẽ có 128 bit RAM để lưu trữ khóa

ví dụ

MSP430G2001 có 128 byte RAM
PIC12F508 có 50 byte RAM (16 byte cho khóa, 34 byte miễn phí)
PIC10F202 có 24 byte RAM (16 byte cho khóa, 8 byte miễn phí)

Nếu bạn thực sự thích RAM nối tiếp, chúng cũng tồn tại

23K640 là 64kbit / 2.7-3.6V


2

Bạn đang giả sử rằng chỉ có 8 dòng gpio có sẵn trên Pi. Trong thực tế có thể có tới 17.

Tôi không biết chi tiết về cách truy cập chúng, nhưng bạn có thể tìm thêm thông tin ở đây

http://elinux.org/RPi_Low-level_perodesals


1
Tôi chỉ đánh giá thấp (tôi cảm thấy tôi nên giải thích), bởi vì bạn đưa ra khá nhiều là một liên kết, không giải thích. (Tôi không biết liệu bạn có đánh giá cao điều này không, nhưng tôi chắc chắn thích mọi người nói với tôi lý do tại sao họ đánh giá thấp.)
ACarter

Tôi nghĩ rằng bạn có thể nhận được hơn 8 dòng io là khá hữu ích, nhưng tôi đánh giá cao nhận xét này
David Sykes

0

Bạn có thể sử dụng các mô-đun SRAM I 2 C, như PCF8570P £ 1,50ish 256x8Bit SRAM. Nó hoạt động trong khoảng từ 2.5V đến 6.0V, có chế độ tiết kiệm năng lượng, chỉ rút ra 50nA và có thể được xếp chồng lên nhau để tạo thêm RAM nếu cần.

Kết nối trực tiếp với I2C hoặc tới Master cho nhiều thiết bị I2C. Chỉ sử dụng 2 GPIO, Nguồn và Âm, với tùy chọn MCU tắt nguồn giữ RAM bằng pin nhỏ.

nhập mô tả hình ảnh ở đây

Alex Chamberlains quan tâm bảo mật nên được thực hiện nghiêm túc nếu bạn muốn bảo vệ Khóa riêng. Có thể suy nghĩ về việc tạo ra một số loại cô lập trong mã của bạn, yêu cầu leo ​​thang để truy cập vào SRAM.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.