2015-01-01 8 views
4

라즈베리의 민감한 데이터를 저장해야만 라즈베리에서 실행되는 소프트웨어에서 사용할 수 있지만 다른 사람은 사용할 수 없습니다. 하드 암호를 설정하고 tty를 비활성화 할 수 있지만 SD 카드를 제거하고 PC에서 검사하는 것은 쉽습니다.SD 카드의 데이터 보호 라즈베리 파이

내 첫 번째 시도는 eCryptFS입니다. 좋은 것 같지만 문제가 있습니다. 암호를 저장하고 암호화 된 파일 시스템을 마운트하는 데 어떻게 사용합니까? eCryptFS는 파일에서 암호를 읽을 수도 있고 마운트 인수로 가져올 수도 있습니다. 분명히, 나는 그것이 안전하지 않게 저장된 것처럼 파일을 사용할 수 없다. 또한 하드 코딩 된 (그리고 난독 화 된) 패스 프레이즈를 cli 매개 변수 또는 stdin에서 mount.ecryptfs에 제공하는 프로그램을 작성할 수 있습니다. 그러나이 경우이 프로그램을 실행하고 프로세스 목록에서 암호문을 사용하여 전체 명령 줄을 볼 수도 있습니다.

이제 ecryptfs 자체에서 암호문을 하드 코딩 (또는 보호 된 eeprom에서 읽음)하여 내 장치에서만 작동하도록 고려하고 있습니다. 또는 다른 암호화 시스템을 사용할 수도 있지만, 어딘가에 핵심 양식을 작성해야합니다. 그래서 제가보기에 eeprom이나 하드 코딩 만하는 유일한 방법이 있습니다.

라즈베리의 SD 카드에 민감한 데이터를 안전하게 저장하는 더 좋은 방법이 있습니까?

+0

나는 [eCryptFS] (https://wiki.archlinux.org/index.php/ECryptfs)를 시도하지 않았지만, 당신이 찾고있는 것이 '암호화 된 루트'(https : /wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system) '을 클릭하십시오. [dm-crypt] (https://wiki.archlinux.org/index.php/Dm-crypt)를 사용하십시오. – Steve

+0

dm-crypt에는 여전히 동일한 문제가 있습니다 : 키/의역을 저장하는 방법은 무엇입니까? 저장 장치에 물리적으로 액세스 할 수 없으면 400 개의 권한으로/root/어딘가에 넣어도됩니다. 하지만 누구나 SD 카드를 꺼내서 쉽게 암호화 된 파티션을 마운트 할 수 있습니다. –

+0

'home'과'swap'과 같은 비 루트 파티션의 경우 LUKS 키를'/ etc' (루트 아래)에 넣으십시오. 루트 파티션의 경우 루트 패스 프레이즈를 수동으로 입력하는 방법이 필요합니다. RPi에 물리적으로 액세스 할 수 없다면 간단한 initramfs 훅을 제공하는 [dropbear SSH] (https://wiki.archlinux.org/index.php/Secure_Shell#Dropbear) (초기 SSH)를 사용할 수 있습니다. – Steve

답변

-1

암호를 eth0 hw ether mac address로 설정할 수 있습니다. 하지만 루트 파티션을 암호화하는 데는 사용할 수 없습니다.

+1

고정되어 있고 동일한 서브넷에있는 다른 컴퓨터가 ARP로 해결할 수 있기 때문에 아주 좋은 암호가 아닙니다. – Marcin

+0

동의, 두 번째 생각에 나쁜 생각. –

5

RaspberryPi 고유 일련 번호를 사용할 수 있습니다.

당신은 cpuinfo의/proc 디렉토리 /에서 검색 할 수 있습니다

~# cat /proc/cpuinfo 
[...] 
Hardware : BCM2709 
Revision : a01041 
Serial  : 00000000407xxxxx 

직접 bash는 명령을

~# ID=$(cat /proc/cpuinfo | grep ^Serial | cut -d":" -f2) 
~# echo $ID 
00000000407xxxxx 

주기적으로 암호화 암호를 변경해야하는 경우, 암호 해독 키로 RPI 일련 번호를 사용 ecryptfs 암호화 암호를 리턴하는 정적 파일의 경우. OpenSSL은 친구입니다. D

희망이 있습니다.

+0

나는 당신의 제안을 좋아합니다! 나는 '카드를 바인딩하는'방법을 찾고 있었지만, 카드에 너무 많은 데이터가 저장되는 것을 피하기 위해 높은 보안 수준은 전혀 없다. – THX

+1

파티션의 고유 식별자 인 UUID를 검색하는 blkid 명령을 사용할 수 있습니다. – Marcolino

+0

하지만 누구나 일련 번호를 가질 수 있습니다. 그냥 암호화되지 않은 다른 sdcard를 넣고 'cat/proc/cpuinfo'명령을 만드십시오. 사용 후 암호화 된 SD 카드를 해독합니다. – doom