GPIO 핀을 통해 SRAM 모듈을 제어 할 수 있습니까?


13

SRAM 모듈을 RasPi에 연결하고 싶습니다.

내 생각은 민감한 (암호화 된) 데이터를 SD 카드에 저장하지만 키를 SRAM 모듈에 유지하는 것입니다. 자체 백업 배터리 (또는 슈퍼 커패시터 )와 함체 개봉시 내용물을 지우는 탬퍼 방지 스위치가 있습니다.

8 개의 사용 가능한 GPIO 라인만으로 SRAM과 인터페이스 할 수있는 방법이 있습니까?

SRAM 모듈 자체에는 최소 128 비트 (가장 작은 AES 키 크기)의 용량이 필요 하지만 1 비트 폭의 메모리조차도 7 개의 주소 라인과 1 개의 데이터 라인에 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

어느 정도 동의합니다. 키에 비밀번호가 있으면 이미 저장 한 데이터를 해독 할 방법이 없습니다.
Alex Chamberlain

2
아무 소용이 없다. 데이터는 일반 메모리보다 더 안전하지 않습니다. OS를 근절 한 사람은 어느 곳에서나 사용할 수 있습니다. 어느 곳에서나 그것을 얻을 수없는 사람.
David Schwartz

@David Schwartz : 요점은 (1) OS를 루팅하려면 케이스를 열어야한다는 것입니다. (2) 케이스를 열면 SRAM을 지우는 스위치가 열립니다. OS를 근간으로하는 사람은 이제 (a) 기본 메모리 및 플래시의 데이터 및 (b) 외부 SRAM의 많은 0에 액세스 할 수 있으므로 이제 플래시 데이터를 해독 할 키가 없습니다. 분명히 우리는 여전히 네트워크를 통해 뿌리되는 OS를 보호해야합니다 (우리는 이미 할 수있다.)
finnw

1
그런 다음 MCP79410을 사용할 수 있습니다 . 2 핀 직렬 인터페이스 (클럭 및 데이터), 64 바이트의 SRAM 및 외부 배터리에서 입력하기위한 핀이 있습니다. 탬퍼 스위치가 배터리와 공급 전압을 모두 차단하는지 확인하십시오!
David Schwartz

4

작은 마이크로 컨트롤러를 사용하여 SPI 또는 I2C를 통해 RAM 을 에뮬레이션 할 수 있습니다 .

가장 작은 마이크로를 제외한 모든 키에는 128 비트의 RAM이있어 키를 저장합니다.

예 :

MSP430G2001 에는 128 바이트 의 RAM이 있습니다
PIC12F508 에는 50 바이트의 RAM이 있습니다 (키의 경우 16 바이트, 34 바이트의 여유 공간)
PIC10F202 에는 24 바이트의 RAM (키의 경우 16 바이트, 8 바이트의 여유 공간)이 있습니다

직렬 RAM을 정말로 선호한다면 그것들도 존재합니다

23K640 은 64kbits / 2.7-3.6V입니다


2

Pi에는 8 개의 gpio 라인 만 있다고 가정합니다. 실제로 최대 17 개를 가질 수 있습니다.

액세스 방법에 대한 자세한 내용을 모르지만 여기에서 자세한 정보를 찾을 수 있습니다.

http://elinux.org/RPi_Low-level_peripherals


1
방금 당신이 준 링크이기 때문에 설명하지 않았기 때문에 나는 방금 공언했습니다 (나는 설명해야한다고 생각합니다). (나는 당신이 이것을 고맙게 생각할지 모르겠지만, 사람들이 왜 다운 다운했는지에 대해 이야기하는 것을 좋아합니다.)
ACarter

나는 당신이 8 개 이상의 io 라인을 얻을 수 있다는 것을 알면 꽤 유용하지만 의견을 주셔서 감사합니다
David Sykes

0

PCF8570P £ 1.50ish 256x8Bit SRAM 과 같은 I 2 C SRAM 모듈을 사용할 수 있습니다 . 2.5V ~ 6.0V 사이에서 작동하며 전력 소비량이 50nA에 불과하고 스택을 쌓아 필요한 경우 더 많은 RAM을 생성 할 수 있습니다.

I2C에 직접 연결하거나 여러 I2C 장치의 마스터에 연결하십시오. 소형 배터리를 사용하여 MCU 전원 끄기 RAM 보존 옵션과 함께 2 GPIO, 전원 및 음수 만 사용합니다.

여기에 이미지 설명을 입력하십시오

개인 키를 보호하려면 Alex Chamberlains의 보안 문제를 심각하게 고려해야합니다. 코드에서 일종의 격리를 생성하여 SRAM에 액세스하려면 에스컬레이션이 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.