全てのLedgerデバイスは、初期設定時およびLedger Liveの「My Ledger」に接続する際に、正規品チェックで審査されます。正規品のLedgerデバイスには、製造時に設定された秘密鍵があります。正規品のLedgerデバイスのみが、Ledgerのセキュアサーバーの接続に必要なクリプトグラフィック証明を提供することができます。
上級者ユーザーは、Ledgerデバイスのハードウェアの整合性をチェックし、改ざんされていないかどうかを確認することも可能です。この記事には、お使いのデバイスのセキュリティに関する詳細な技術情報が含まれています。
重要なお知らせ
- Ledgerデバイス本体を開けた場合は、保証が無効になりますのでご注意ください 。
- 一度解体したLedgerデバイスは、返金や交換の対象外となります。
マイクロコントローラー(MCU)
セキュアエレメントにより、起動時にマイクロコントローラーのフラッシュ全体がチェックされます。詳細は、 こちらのブログ記事をご確認ください。変更されている場合は、起動時に警告が表示されます。デバイスを開いて以下の画像と比較し、追加のチップが追加されていないこと、MCUがSTM32WB55(リビジョン1、2、3の場合)およびSTM32WB35(リビジョン4の場合)であることを確認することも可能です。
ハードウェアのリビジョン
Revision 4
- グリーンPCB
PCB前面
PCB背面
リビジョン 3
- 黒いPCB
PCB前面
PCB背面
リビジョン 2
- 黒いPCB
PCB前面
PCB背面
リビジョン 1
- 黒いPCB
PCB前面
PCB背面
セキュアエレメントの認証
セキュアエレメントは工場で独自に製造され、Ledgerによって製造されたことを証明する証明書が添付されます。以下を実行して確認できます。
pip install --no-cache-dir ledgerblue
python -m ledgerblue.checkGenuineRemot--TargetId 0x33000004
ソースコードは こちら。
アプリケーションの検証
アプリケーションを開く際に、Ledgerによる署名がされていない場合、 Non Genuine という警告が表示されます。修正されたユーザーインターフェース( https://github.com/LedgerHQ/nanos-ui )にあるように起動時にも警告メッセージを表示します。
Root of trust
現在のバッチのRoot of trustは、以下のsecp256k1公開鍵です。
0490f5c9d15a0134bb019d2afd0bf2971497384597
06e7ac5be4abc350a1f818057224fce12ec9a65de18ec34
d6e8c24db927835ea1692b14c32e9836a75dad609
- Genuine.pyで確認した通りです。
マイクロコントローラー(MCU)
セキュアエレメントは、起動時にマイクロコントローラーのフラッシュ全体をチェックします。これについては、 こちらのブログ記事で説明しています。変更されている場合は、起動時に警告が表示されます。追加のチェックとしては、デバイスを開き、追加のチップがないこと(添付の写真を参照)、MCUがセキュアエレメント検証をだますコードを含む、より大きなフラッシュのようなstm2f042k6(32Kbのフラッシュ)かどうかを確認することができます。チップのマーキングは様々ですが、「042K6」という文字列が見えるはずです。
ハードウェアのリビジョン
リビジョン 1
- 青いPCB
- 黒の接着剤
リビジョン 2
- グリーンPCB
- 黒または透明の接着剤[画像なし]。
リビジョン 3
- 青いPCB
- 黒の接着剤
リビジョン 4
- 青いPCB
- PCBの穴
リビジョン 5
- 青いPCB
リビジョン 5 bis
- 青いPCB
リビジョン 6
- 青いPCB
リビジョン 7
- ブルーPCB またはグリーンPCB
- 薄型ディスプレイケーブル
セキュアエレメントの認証
セキュアエレメントは工場で独自に製造され、Ledgerによって製造されたことを証明する証明書が添付されます。以下を実行して確認できます。
pip install --no-cache-dir ledgerblue
ファームウェア1.3.1または以前
python -m ledgerblue.checkGenuineRemot--TargetId 0x33000004
ファームウェア1.4.1以降
python -m ledgerblue.checkGenuineRemot--TargetId 0x33000004
ソースコードは こちら。
アプリケーションの検証
アプリケーションを開く際に、Ledgerの署名がない場合、 Non Genuine という警告が表示されます。修正されたユーザーインターフェース( https://github.com/LedgerHQ/nanos-ui )にあるように起動時にも警告メッセージを表示します。
Root of trust
現在のバッチの信頼の根源は、以下のsecp256k1公開鍵(パブリックキー)です。
0490f5c9d15a0134bb019d2afd0bf297
149738459706e7ac5be4abc350a1f818057224fce12ec9a65de18ec34d
6e8c24db927835ea1692b14c32e9836a75dad609
- Genuine.py で確認した通りです。
マイクロコントローラー(MCU)
このブログ記事で説明されているとおり、セキュアエレメントは起動時にマイクロコントローラのフルフラッシュを確認します。変更されている場合は、起動時に警告が表示されます。追加チェックとしてデバイスを開き、以下の画像と比較して、追加チップがないこと、MCUがSTM32F042K6U6であることを確認してください。
ハードウェアのリビジョン
(PCB前面)
(PCB背面)
セキュアエレメントの認証
セキュアエレメントは工場で独自に製造され、Ledgerによって製造されたことを証明する証明書が添付されます。以下を実行して確認できます。
pip install --no-cache-dir ledgerblue
python -m ledgerblue.checkGenuineRemot--TargetId 0x33000004
ソースコードは こちら。
アプリケーションの検証
アプリケーションを開く際に、Ledgerの署名がない場合、 Non Genuine という警告が表示されます。修正されたユーザーインターフェース( https://github.com/LedgerHQ/nanos-ui )にあるように起動時にも警告メッセージを表示します。
Root of trust
現在のバッチの信頼の根源は、以下のsecp256k1公開鍵(パブリックキー)です。
0490f5c9d15a0134bb019d2afd0bf297
149738459706e7ac5be4abc350a1f818057224fce12ec9a65de18ec34d
6e8c24db927835ea1692b14c32e9836a75dad609
- Genuine.py で確認した通りです。