• 公開日:2022年10月20日
  • | 更新日:2022年12月07日

シリアルNOR フラッシュ・メモリーの保護機能と使い方について ~ワンランク上の “セキュリティ対策”~

はじめに

システム起動時に最初に実行されるプログラムなどを保存する目的でNORフラッシュ・メモリーは使用されます。このため、意図しない書き込みや消去からこれら保存内容を保護することが重要となります。弊社取り扱い メモリー・ベンダーである Micron Technology 社の シリアル NOR フラッシュ・メモリーでは、これらの問題に対応するため、ハードウェア制御またはソフトウェア制御によりいくつかの保護機能を持っています。この記事ではシリアルNOR フラッシュ・メモリー “MT25Q” シリーズの保護機能の種類と使い方について紹介します。

 

フラッシュ・メモリーの用途

フラッシュ・メモリーは、記憶セルの電荷をチャージ/ディスチャージすることによって、電気的に消去および再プログラミング可能とする不揮発性メモリー製品です。 現在、世界中で使用されている電子機器で、永続的に電源を供給され続けて使用されるシステムは存在しません。必ず何らかの目的 (装置投入前の設置時、問題発生、未使用時の電源オフ 、保守作業等) または装置事故 (人為的ミス、停電によるなどの電源喪失) で電源を切ることになります。その時、次の起動で正常に動作するためには、装置を動作させる命令プログラム 、必要な初期値、電源が落とされる前の状態などの情報を保持しておく必要があります。そのため、フラッシュ・メモリーはほとんどの電子機器に搭載される部品となります。図1 に示すようにさまざまな用途で使用されます。

図1. 用途例

2種類のフラッシュ・メモリー

フラッシュ・メモリーは、NOR タイプ と NAND タイプ に分類されます。NAND フラッシュ・メモリー は SSD、SD Memory Card および e.MMC などのような大容量で コスト・メリット要求に対応する製品に搭載されるのが一般的です。NANDフラッシュ・メモリーの制御はNORフラッシュ・モメリーと比較すると複雑なため、コントローラが内蔵されたe.MMC、SD Card Memory、SSDとして使用される場合が多くなっています。一方、NOR フラッシュ・メモリーは、制御が容易でありシステムのメイン・コントローラーから直接にインターフェースされ、 単体メモリーとして使用される場合がほとんどです。表 1 にて簡単に NAND フラッシュ・メモリー製品と NOR フラッシュ・メモリー製品の特長を示しています。

表1. NAND と NOR 製品の特長

比較項目

NOR NAND 特徴
読み出し性能

・ NAND フラッシュ・メモリー

    – 大容量記憶領域の必要性

    – 低価格のメモリー部品

    – 高速な書き込みおよび消去

    – 専用個別コントローラーによるブラックボックス制御 (SSD、SD-Card、e.MMC)

・ NOR フラッシュ・メモリー

    – 大容量要求ない場合
– 安定期の製品

      (最新対応の再評価は必要ない)

    – 読み出し制御が容易

    – プログラム/イレース 耐久性の要求

ランダム読み出し

書き込み性能

設計/制御 容易

複雑

容量単価

単体寿命

セキュリティおよび保護機能の種類

予期していなかったシステム不具合や第三者による悪意のあるプログラム/データの変更や消去が発生すると、システムは期待通りの動作が不可能になる危険性があります。システムとしては、このような意図しないプログラム/データの変更から装置を守る必要があります。メイン・コントローラーから直接アクセス可能な個別部品である、NOR フラッシュ・メモリーのセキュリティ、および書き込み保護機能を利用して対策しておく必要があります。「はじめに」の項で紹介した Micron Technology 社のシリアル NOR フラッシュ・メモリー “MT25Q” シリーズには次の種類のセキュリティおよび書き込み保護機能が搭載されています。

・ ハードウェア・プロテクト対策

– BGA パッケージ

– ハードウェア書き込みプロテクト

・ ソフトウェア・プロテクト対策

– 不揮発性セクター・ロック・ビット・セキュリティ

– 揮発性セクター・ロック・ビット・セキュリティ

– パスワード保護

– 電源投入期間のプログラム/イレース保護

– CRC 機能によるデータの偶発的変更の検出

 

 

 

以下これらの機能の詳細を説明します。

 

ハードウェア・プロテクト対策

(1) BGA パッケージの選択

汎用プロセッサー 、FPGA および複数の機能を構成した SoC 等のメイン・コントローラーは、多くの入出力信号を装備しておりBGA パッケージが当たり前となっています。一方で、メイン・コントローラーに接続される NOR フラッシュ・メモリーは、デバッグ作業や部品の取り換えが容易である SOIC パッケージが一般的でした。ただし、メイン・コントローラーで実行される命令や重要なデータが格納される NOR フラッシュ・メモリーで SOIC とした場合、信号ピンに容易に測定器を接続することが可能であり、読み出しおよび書き込みが簡単に実行される危険性があります。第一の基本的なセキュリティの手段として、NOR フラッシュ・メモリーも BGA パッケージを選定することにより、簡単に情報を盗用されることを防ぎます。

 

(2) ハードウェア書き込みプロテクト

NOR フラッシュ・メモリーに格納されているデータを予期しないプログラミングから保護する機能として、ステータス・レジスターの書き込み有効/無効ビット [bit 7] に ‘1’ を設定し、W# 信号が Low に駆動することで、ステータス・レジスターの不揮発コントロール・ビットは読み取り専用となり、WRITE STATYUS REGISTER コマンド操作は実行できなくなります。つまり、トップ/ボトム [bit5] および BP [bit6, 4:2] で書き込み保護設定された領域を変更することは禁止されます。このハードウェア・プロテクト・モードを終了する唯一の方法は、W# 信号を High に駆動することです。表 2 にステータス・レジスターの各ビットの説明、図2にこの W# 信号を含んだハードウェア制御の機能信号を示します。

 

※注意: Micron 製品の中に、ステータス・レジスターの書き込み有効/無効ビット [bit 7] の無効設定がワンタイムとなるアドバンスド・セキュリティ製品が用意さています。一度書き込み無効に設定されるとW# 信号が High に駆動されてもハードウェア・プロテクト・モードが解除できない製品となります。下記 Micron 製品型番の赤字箇所でアドバンスド・セキュリティ製品であるか否か確認可能です。

・ スタンダード・セキュリティ製品: MT25QxxxxBAxExx-0SIT

・ アドバンスド・セキュリティ製品: MT25QxxxxBAxExx-1SIT

 

表2. ステータス・レジスター

ビット 名前 設定 揮発/不揮発 コメント
7 ステータス・レジスター

書き込み 有効/無効

0 = 有効 (デフォルト)

1 = 無効

不揮発 W# 信号と連動しステータス・レジスターを制御する。
5 トップ/ボトム 0 = トップ (デフォルト)

1 = ボトム

不揮発 ブロック・プロテクト・ビットで定義付けられて保護されているメモリー領域が、メモリー配列のトップまたはボトムから開始するかを決定する。
6, 4:2 BP[3:0] 保護されている領域 不揮発 メモリーが、プログラムまたはイレース操作に対して ソフトウェアより保護されているか決定する。
1 書き込み有効ラッチ 0 = クリアー (デフォルト)

1 = セット

揮発の制御 デバイスはパワーアップ時に常にこのビットをクリアーして、誤った書き込み、プログラム、イレース操作を防止する。
0 書き込み進行中 0 = Ready (Default)

1 = Busy

揮発の状態 下記コマンド・サイクルの一つが進行中である。
・ WRITE STATUS REGISTER
・ WRITE NONVOLATILE CONFIGURATION REGISTER
・ PROGRAM
・ ERASE

 

図2. Device 機能信号

 

まとめ

いかがでしたか?本記事ではプログラムやデータの保護機能を持ったシリアルNORフラッシュ・メモリー“MT25Q” シリーズの保護機能の種類と使い方について解説いたしました。今回はハードウェア・プロテクト対策までを解説いたしましたが、ソフトウェアの制御手順についても知りたい方は下記資料をダウンロードしてご覧ください。

ダウンロードはこちら