Howto

ワンタイム鍵で作成された非正規の SWU イメージを強制的にインストールする方法

この Howto では以下のことができます:

  • Armadillo 上に swupdate-onetime-public.pem を復元して、swupdate-onetime-public.key で署名された SWU イメージをインストールできるようにすること

注意点

この Howto は、Armadillo フォーラムやメールでの個別対応など、アットマークテクノによる技術的なサポートを目的とした SWU イメージをインストールすることを前提としています。

以下では、セキュリティレベルを一時的に下げる行為を行っています。

本手順は通常の開発時には絶対に行わないでください。

概要

swupdate-onetime-public.key は公開されているため、誰でもその鍵を使って SWU イメージを作成することができます。その鍵で署名された SWU イメージを Armadillo にインストールするためには、 Armadillo は swupdate-onetime-public.pem という証明書を持っている必要があります。

swupdate-onetime-public.key で署名された SWU イメージの例として initinal_setup.swu が挙げられます。initinal_setup.swu を SWUpdate でインストールすると Armadillo が持っていた swupdate-onetime-public.pem は削除されます。以降、ユーザーが作成した鍵と証明書を用いて SWU イメージを Armadillo にインストールします。

以下に、削除された swupdate-onetime-public.pem を復元して swupdate-onetime-public.key で署名された SWU イメージをインストールするための方法を説明します。

インストール方法

1. インストールする SWU イメージが期待したものであることを確認する

本 Howto では、一時的に Armadillo を誰が作った SWU イメージでも受け付ける状態にします。 つまり、一時的に悪意のある第三者が作成した SWU イメージですらもインストールできる状態になります。

インストール時に意図しない SWU イメージを誤ってインストールしてしまうことを避けるために、提供元からは swupdate-onetime-public.key で署名された SWU イメージを含む zip ファイルとメールなどのメッセージで SHA-256 のハッシュ値が提供されます。必ずインストールする SWU イメージのチェックサムが期待したものであることを以下の手順で確認してください。

提供された SWU ファイルの zip アーカイブを USB メモリに保存してください。

その USB メモリを Armadillo に挿してマウントした後、zip アーカイブを解凍します。

armadillo:~# mount /dev/sda1 /mnt
armadillo:~# cd  /var/tmp/
armadillo:/var/tmp# unzip /mnt/<提供された zip アーカイブ>

提供された SWU イメージがカレントディレクトリにあることを確認してください。

次に、sha256sum コマンドを実行してチェックサムを確認します。

armadillo:/var/tmp# sha256sum <提供された SWU ファイル>

出力値とメールなどのメッセージで提供されたハッシュ値を比較して同じ値であることを確認してください。

2. swupdate-onetime-public.pem を復元する

swupdate-onetime-public.pem を Armadillo 上で復元するにはターミナルで以下のコマンドを実行してください。

armadillo:/var/tmp# abos-ctrl certificates restore-onetime                             
Restoring swupdate-onetime-public.pem

もし、すでに swupdate-onetime-public.pem が存在するならば、以下のような表示が出力されます。

armadillo:/var/tmp# abos-ctrl certificates restore-onetime
one-time public certificate already present

3. SWU イメージをインストールする

SWUpdate の実行例を示します。

armadillo:/var/tmp# swupdate -i <提供された SWU イメージ>

<提供された SWU イメージ> はユーザーの環境に合わせて変更してください。

4. swupdate-onetime-public.pem が消えていることを確認する

swupdate-onetime-public.pem が残っている場合、誰でも Armadillo に SWU イメージを書き込むことができます。

そのような状況はセキュリティ上問題があるので、念の為、swupdate-onetime-public.pem が消えていることを確認します。

initial_setup.swu がまだインストールされていない状態( Armadillo 上にユーザーが作成した証明書がない場合)で、swupdate-onetime-public.key で署名された SWU イメージを Armadillo にインストールした場合、swupdate-onetime-public.pem が削除されることはありません。
この挙動は initial_setup.swu をインストールできる状態を維持するためです。
armadillo:/var/tmp# abos-ctrl certificates list               
- atmark-1
- atmark-2
- swupdate.pem: user

上記の出力値はあくまで例ですが、swupdate-onetime-public.pem が無いことを確認できます。