JAJA896 May   2025 BQ41Z50

 

  1.   1
  2.   概要
  3.   商標
  4. 1はじめに
  5. 2認証方式の比較
  6. 3パック製造フロー内での ECC キーのプログラミング
  7. 4 BQ41z50製品ファミリのゲージ認証フロー
  8. 5 BQ41z50製品ファミリのホスト認証フロー
  9. 6BQSTUDIOでの認証フロー
  10. 7まとめ
  11. 8参考資料

BQ41z50製品ファミリのホスト認証フロー

本デバイスへのアクセスをより安全なものとするため、ゲージを使用してホストを認証することもできます。これにより、ゲージはセキュリティの状態を変更し、ロックを解除して、ホストがゲージを更新できるようになります。この機能を実行するには、まずホストが許可された公開キーをプログラミングする必要があります。これには、ゲージが「フルアクセス」状態のとき、MAC サブコマンド 0x0034 に30バイトの圧縮された公開キーを送信し、公開キーを書き込む必要があります。ホスト認証用に現在プログラミングされている公開キーを確認するため、この同じコマンドを読み取っておく必要があります。

公開キーがプログラミングされていない場合は、古い「セキュリティキー」の UNSEAL 操作が使用されます。ただし、公開キーがプログラミングされると、古い UNSEAL コマンドは無効になります。

注: SEAL コマンドを送信する前に、プログラミング後に公開キーを読み取り、値が正しく保存されていることを確認してください。対応するプライベートキーがないと、SEALED 状態のデバイスを回復する方法はありません。

この手順は、図 5-1図に従い、ゲージに対する SMBus ManufacturerAccess( ) (MAC) コマンドを用いて行う必要があります。

フローの概要は以下のとおりです。

  1. ホストが、次のいずれかのデータブロックを用いてデータを含む MAC サブコマンド 0x003a を送信します。
    • UNSEAL アクセスアクションを要求するには、データブロック 0x14、0x04、0x72、0x36 を使用します
    • FULL_ACCESS アクセスアクションを要求するには、データブロック 0xff、0xff、0xff、0xff を使用します
  2. ホストは 0x003a を使って MAC 結果を読み出し、生成された8バイトのチャレンジコードを受信します。
  3. ホストは8バイトのチャレンジとコマンドを1つのメッセージに結合し、30バイトのrと30バイトのsを生成するプライベートキーでメッセージに署名します。
    • 例えば、ゲージがチャレンジ 0x12、0x34、0x56、0x78、0x9a、0xbc、0xde、0xf0 を生成した場合、UNSEAL 操作に署名するためのフルメッセージ文字列は、0x12、0x34、0x56、0x78、0x9a、0xbc、0xde、0xf0、0x14、0x04、0x72、0x36となります
  4. ホストが、結果であるrsをゲージに書き込みます。
    • ECC_R (0x003c) サブコマンドは、30バイトのr値、またはフルの60バイトrs値を受け入れます。
    • ECC_S (0x003d) サブコマンドは、r値が残量計に送信された後に書き込またれ30バイトのs値を受け入れます。
  5. ゲージにrsの両方が設定されると、ゲージは署名を検証します。
  6. 署名が有効な場合は、コマンドによって要求された作業が実行されます。
 ホスト認証の概要図 5-1 ホスト認証の概要

より詳細な実装フローチャートが図 5-2に示されています。

 ホスト認証フローチャート図 5-2 ホスト認証フローチャート