パーティションハッシュを記録するには

パーティションハッシュを記録するには

私は公的機関のためのプロジェクトを開発しようとしています。つまり、Raspberry Piコンピュータを買う余裕のない家族にコンピュータを提供するのです。Raspbianオペレーティングシステムといくつかの便利なソフトウェアがすでにインストールされているSDカードが付属しています。

つまり、一部のプロバイダに私たちのために作成してもらう必要があります。たとえば、500枚のSDカードと私たちが提供するスクリプト:インストールRaspbianバージョンXYZそれからapt-get install ...

しかし、セキュリティの問題があります。プロバイダが悪意のない、SDカードに表示されたくない他のソフトウェアを追加しようとしないことを確認するにはどうすればよいですか?

SDカードをランダムに取り出して差し込んだ場合、Rasperry Pi良い命令を使用してSDカードが期待どおりに作成されたことを確認する方法はありますか?

ベストアンサー1

誰かがあなたの代わりにオペレーティングシステムをどのように設定したかを確認する方法はありません。物を隠すことはいつでも可能です。ベンダーが悪意のある行動を起こす危険がある場合、唯一の選択肢は次のとおりです。

  • より信頼できるサプライヤーと協力
  • どのイメージをインストールする必要があるかをバイト単位で知っていることを確認してください。プロバイダにスクリプトだけでなく、正確な画像を送信すると機能します。

各パーティションのsha256sum(ハッシュ値)を画像に書き込んだ後、SDカードと比較できます。プラグを差し込んで電源を入れる前に。理論的にはパーティションを追加できますが、これは簡単に見つけることができます。

イメージハッシュが利用できない理由は、SDカードが予想より1バイト大きいか小さい場合はハッシュが無効なためです。 SDカードのサイズは、指定されたサイズを持っていると主張するカードによって異なります。


パーティションハッシュを記録するには

この手順はすべてのLinuxシステムで実行できます。 SD容量が十分に大きいRaspberry Piを使用できます(少なくとも16GBを推奨)。

  1. 使用したい画像をダウンロードしてください。例: 最新ラズベリーパイ画像:

    wget --content-disposition https://downloads.raspberrypi.org/raspbian_full_latest
    unzip *raspbian-stretch-full.zip
    
    ls -lh *raspbian*
    -rw-r--r-- 1 philip philip 5.1G Apr  8 19:43 2019-04-08-raspbian-stretch-full.img
    -rw-r----- 1 philip philip 2.0G Apr  8 19:48 2019-04-08-raspbian-stretch-full.zip
    
  2. カスタム画像。

  3. ループバックデバイスの設定
    sudo losetup /dev/loop0 2019-04-08-raspbian-stretch-full.img
    sudo partprobe /dev/loop0
    
    ls -lh /dev/loop0*
    brw-rw---- 1 root disk   7, 0 May 15 19:18 /dev/loop0
    brw-rw---- 1 root disk 259, 0 May 15 19:18 /dev/loop0p1
    brw-rw---- 1 root disk 259, 1 May 15 19:18 /dev/loop0p2
    
  4. 各パーティションのsha256sumを取得します(少し時間がかかります!)。ファイルとして保存してください。
    sudo sha256sum /dev/loop0p*
    66aa77d8405ab585865d0e0378f06bd8baa5ab41bbb6e9cc23ac6b2be40974d4  /dev/loop0p1
    1895a2c5d9e93eb3b644d8cacab9d928184290e30bba6d27b7eb9d486c30e5e8  /dev/loop0p2
    
  5. 掃除する
    sudo partx -d /dev/loop0
    sudo losetup -d /dev/loop0
    

ハッシュ値の確認

実行中のLinuxシステムにカードを挿入します。ラズベリーファイを使用したい場合は、USB SDカードリーダーを利用して確認したいカードを2枚目のカードに挿入すればよい。

/dev/sdaカードは、または/dev/sdb...などの新しいドライブとして表示されます。

次のように読み取ると仮定すると、/dev/sda各パーティションのハッシュを取得できます。

ls -lh /dev/sd*
brw-rw---- 1 root disk 8, 16 May  9 12:23 /dev/sda
brw-rw---- 1 root disk 8, 17 May  9 12:23 /dev/sda1
brw-rw---- 1 root disk 8, 18 May  9 12:23 /dev/sda2
sudo sha256sum /dev/sda1 /dev/sda2
66aa77d8405ab585865d0e0378f06bd8baa5ab41bbb6e9cc23ac6b2be40974d4  /dev/sda1
1895a2c5d9e93eb3b644d8cacab9d928184290e30bba6d27b7eb9d486c30e5e8  /dev/sda2

カスタム画像

この手順はLinuxシステムでは実行されず、Raspberry PiなどのARMプロセッサが必要です。

  1. 以前に作成されたループバックパーティション(/dev/loop0p2)をマウントします。オペレーティングシステムは起動p2設定にインストールされますp1

    mkdir rpi-os
    sudo mount /dev/loop0p2 rpi-os
    
    df -h foo
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/loop0p2    4.9G  4.4G  202M  96% /home/philip/rpi-os
    
  2. chrootマウントされたファイルシステムを入力してください。
    sudo chroot rpi-os
    
  3. 必要なソフトウェアをインストールし、必要に応じて変更してください。たとえば、
    apt-get update
    apt-get install some-new-package
    
  4. シャットダウンと削除
    df -h rpi-os
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/loop0p2    4.9G  4.5G  149M  97% /home/philip/rpi-os
    
    exit
    sudo umount rpi-os
    

おすすめ記事