DS1991LマルチキーiButton®の代替製品
要約
DS1991LマルチキーiButtonは、マキシムの6インチウェハ製造施設で、最終的に旧式化し持続不可能となった製造プロセスを使用して製造されていました。DS1991が提供するパスワード保護も、もはやデータセキュリティのための最新技術ではありません。マキシムでは、より高水準のセキュリティを備え、DS1991Lよりもコスト効率に優れた他のデバイスを発売しています。そのため、旧式のデバイスを新しい製造プロセスに移行させる場合に必要となる膨大な開発コストを考慮した結果、マキシムはDS1991Lの最終生産を実施し、DS1991Lをご使用中のすべてのお客様に対して、既存の在庫が終了する前に、より新しく安全なiButtonデバイスに移行することを推奨しています。このアプリケーションノートでは、既存のDS1991Lアプリケーションをアップグレードするための3種類の代替案について解説します。それぞれの代替案で、より新しいこれらの製品を利用しています。
DS1991Lの紹介および背景
パスワード保護は、もはや最新技術ではありません。パスワードベースのシステムの最大の弱点は、通信の盗聴によって最終的にパスワードが漏洩してしまう点です。
DS1991Lは書込み保護を備えていなかったため、悪意のある攻撃者が容易にキーの情報(ID、パスワード、データ)を上書きして、アプリケーション内でデバイスにエラーを起こさせることができました。チャレンジ&レスポンス認証とアプリケーションデータの暗号化に対応したデバイスは、より安全性が高く、コスト効率に優れた代替製品です。
DS1991Lアプリケーションの1-Wire®マスターは、対象のキーを識別する方法と、個々のパスワードを知っている必要があります。DS1991Lを使用するためには、ID、パスワード、およびキーデータを事前にインストールする必要があります。その後はデバイスをフィールドで使用することが可能であり、キーデータへのアクセスが行われ、多くの場合書換えも行われることになります。この場合、内蔵バッテリを備えたNV SRAM技術を使用することによって、たとえマスター(プローブ)との接触が失われても、スクラッチパッドからキーのデータフィールドへのコピーのプロセスが妨害されずに進行するというメリットがあります。
DS1991Lの代替製品
DS1991Lの代替製品として、3種類のiButtonが考えられます。その3つのデバイスとは、DS1977、DS1961S、およびDS1963Sです。表1に、これらのデバイスとDS1991Lとの比較、および各デバイス間の比較を示します。
DS1977は、DS1991Lと同様にパスワードセキュリティを使用しており、一般的には非常に近い製品と考えることができます。DS1961SとDS1963Sは、秘密鍵を使用するSHA-1ベースの認証を採用しています。暗号化しない限り、アプリケーションデータはオープンであり読取り可能です。DS1961SとDS1977はEEPROM技術を使用しています。DS1963SはNV SRAMを使用しています。
表1. デバイスの比較表
品名 | ||||
特性 | DS1991L | DS1977 | DS1961S | DS1963S |
ユーザーメモリ | 3 x 48バイト、keyと言う | 32Kバイト | 128バイト | 8 x 2ページの32バイト (合計512バイト) |
セキュリティ | 3つの独立した8バイトパスワード(各key毎)、読取りと書込みに同じパスワード | 2つの8バイトパスワード(読取り用とフルアクセス用) | 1つの8バイト秘密鍵、安全な書込み | 8つの8バイト秘密鍵 |
データ管理 | 3つの8バイトキー識別子フィールド(各key毎) | 1-Wireファイルシステム推奨 | 1-Wireファイルシステム推奨 | 1-Wireファイルシステム推奨 |
中間記憶装置およびデータ検証用データバッファ | 64バイトのスクラッチパッド | 64バイトのスクラッチパッド | 8バイトのスクラッチパッド | 32バイトのスクラッチパッド |
認証 | — | — | 3バイトのチャレンジ、20バイトのMACレスポンス | 3バイトのチャレンジ、20バイトのMACレスポンス |
書込みサイクルカウンタ | 0 | 0 | 0 | 16 (8つのメモリページおよび8つの秘密鍵) |
技術 | NV SRAM | EEPROM | EEPROM | NV SRAM |
電源 | 内蔵バッテリ | マスターからの寄生電源 | マスターからの寄生電源 | 内蔵バッテリ |
1-Wire速度 | 標準 | 標準/オーバードライブ | 標準/オーバードライブ | 標準/オーバードライブ |
相対コスト¹ | — | DS1991Lより高コスト | DS1991Lより大幅に低コスト | DS1991Lより若干高コスト |
温度範囲 | -40℃~+70℃ | -40℃~+85℃ | -40℃~+85℃ | -40℃~+85℃ |
その他 | パスワードが一致しない場合不正データを生成する擬似乱数発生器 | パスワード保護なしに使用可能 | メモリおよび秘密鍵の書込み保護、EPROMエミュレーションモード | 擬似乱数発生器、SHA-1コプロセッサとして使用可能 |
パスワード保護、32KB EEPROM iButton DS1977
DS1991Lと比較して、DS1977は大幅に大容量のメモリ(32KB)を備え、1-Wireのオーバードライブ速度をサポートし、読取りアクセス用とフルアクセス用の2つのパスワードを使用します。パスワード保護を無効化して、セキュリティを必要としないアプリケーションでDS1977を使用可能にすることもできます。DS1991Lよりも高コストですが、バイト当りのコストではすべての代替製品およびDS1991Lの中でDS1977が最も低くなっています。
EEPROM技術が使用されているため、DS1977アプリケーションの1-Wireマスターは読取りおよび書込みアクセス用の電力を供給するために強プルアップを実装する必要があります。タッチ環境ではこれが読取りエラーの原因になる可能性があり、書込み時には特別な注意が要求されます。パスワードが有効化されている場合、1-Wireマスターは少なくとも1つのパスワード(読取りアクセスまたはフルアクセス)を知っている必要があります。パスワードベースのすべてのシステムと同様、通信の盗聴によって最終的にパスワードが漏洩する可能性があります。
DS1977をパスワード保護で使用するためには、パスワードを事前にインストールして有効化する必要があります。大容量メモリを最大限に活用するために、1-Wireファイルシステムにしたがってメモリのフォーマットと使用を行うことが推奨されます(アプリケーションノート114 「1-Wire File Structure」を参照)。次に、アプリケーションのファイル(またはデータ)をDS1977に書き込む必要があります。その後はデバイスをフィールドで使用することが可能であり、メモリデータへのアクセスが行われ、多くの場合書換えも行われることになります。
既存のDS1991LアプリケーションをDS1977向けにアップグレードするためには、この新しい製品を認識し、そのコマンドを理解し、強プルアップを作動させて適切なタイミングで給電を行う、改訂されたアプリケーションソフトウェアが必要です。一般的な推奨事項として、パスワードを変更する前に、最初にパスワードを無効化してください。パスワードをインストールする際には、パスワードの8バイトすべてが定義されていることを確認することが非常に重要です。Copy Scratchpadコマンドを発行する前に、必ずスクラッチパッドの内容を確認してください。新しいパスワードがスクラッチパッドからメモリ内の所定の位置に正しくコピーされた後、「オープンスペース」に含まれるパスワードの痕跡を消去するために、別のデータでスクラッチパッドを上書きしてください。タッチ環境での高信頼性動作のために、アプリケーションノート159 「iButton®アプリケーションで堅牢な1-Wire®通信を実現するためのソフトウェア手法」で解説されているデータ完全性の方策を実装することが強く推奨されます。
SHA-1エンジン内蔵、1Kb保護EEPROM iButton DS1961S
DS1961Sは、DS1991Lよりも大幅に高いセキュリティを提供します。DS1961SはEEPROM技術を使用しており、1-Wireのオーバードライブ速度をサポートします。このデバイスのセキュリティは、パスワードの代わりに秘密鍵をベースとしていますが、秘密鍵がインストールされた後で、フィールドにおいて再び通信(公開)されることはありません。この秘密鍵はデバイス固有にすることができ、たとえば、マスター秘密鍵、メモリデータ、登録番号、および定数を使用して、SHA-1アルゴリズムにしたがって計算します。秘密鍵を除いて、DS1961Sに格納されたデータはすべて誰でも読取り可能です。しかし、書込みアクセスには秘密鍵の知識が必要です。デバイスに格納されたデータが誰にでも理解されるのを防ぐためには、暗号化が必要になります。DS1961Sは、DS1991Lを含むこれらの代替製品の中で最も低コストです。EEPROM技術を使用しているため、DS1961Sは動作に必要なエネルギーを1-Wireマスターから受け取ります。タッチ環境の場合、書込み時にデータ破壊が発生するリスクはNV SRAMデバイスよりも高くなります。
2.2kΩ以下のプルアップ抵抗を使用する5V環境の場合、DS1961Sアプリケーションの1-Wireマスターが何か特別な給電機能を実装する必要はありません。プルアップ電圧が5V未満の場合は、プルアップ抵抗の抵抗値を下げるか(これが最も簡単な方法、アプリケーションノート4255 「1-Wire®デバイスの拡張機能に対する給電方法」を参照)、または強プルアップを実装して、デバイス内のSHA-1エンジンの書込みと動作に必要な追加の電力を供給してください。DS1961Sのマスターは、DS1961Sをシステムのメンバとして認証し、そのEEPROMデータを書き換えるために必要となる秘密鍵を知っているか、または計算することができる必要があります。マスター自身がSHA-1 MAC (メッセージ認証コード)を計算する代わりに、EEPROMを備えたSHA-1コプロセッサDS2460を使用することもできます。
DS1961Sを使用する前に、デバイスの秘密鍵を定義してインストールする必要があります。計算による秘密鍵の方が、パスワードのようにロードされる固定(定数)の秘密鍵よりも安全性が高くなります。次に、アプリケーションで必要となるデータをデバイスに書き込む必要があります。メモリが比較的小容量であるため、1-Wireファイルシステムを使用するかどうかは任意です。必要に応じて、秘密鍵とともに1つまたはすべてのメモリページを書込み保護して、フィールドでの変更を防ぐことができます。メモリページの1つをEPROMエミュレーションモードに設定して、1から0へのビット書換えのみを可能にすることもできます。アプリケーションによっては、この機能が役に立つ場合があります。初期セットアップの完了後はDS1961Sをフィールドで使用することが可能であり、メモリデータへのアクセスが行われ、多くの場合書換えも行われることになります。
既存のDS1991LアプリケーションをDS1961S向けにアップグレードするためには、2つの変更が必要になります。
- この新しい製品を認識し、その使用方法を理解している、改訂されたアプリケーションソフトウェア。
- 低電圧環境で動作させる場合、新しい秘密鍵の計算とインストールを行う間、ページMACの計算とEEPROMの更新のために、ソフトウェアで給電のための強プルアップを作動させる必要があります。
SHA iButton DS1963S
DS1963Sは、DS1991Lよりも大幅に高いレベルのセキュリティを提供します。DS1963SはNV SRAM技術を使用しており、メモリページと秘密鍵の書込みサイクルカウンタを実装し、1-Wireのオーバードライブ速度をサポートしています。DS1961S同様、DS1963Sも秘密鍵を認証に使用します。秘密鍵がインストールされた後で、フィールドにおいて再び通信(公開)されることはありません。このデバイスは8つの秘密鍵をサポートしており、それぞれが2つのメモリページに対応しています。これらの秘密鍵はデバイス固有にすることができ、たとえば、マスター秘密鍵、メモリデータ、登録番号、ページ番号、および定数を使用して、SHA-1アルゴリズムにしたがって計算します。秘密鍵を除いて、DS1963Sに格納されたデータはすべて誰でも読取り可能です。デバイスに格納されたデータが誰にでも理解されるのを防ぐためには、暗号化が必要になります。DS1961Sとは異なり、DS1963S内のデータは秘密鍵を知らなくても書換え可能です。このデバイスは、メモリページや秘密鍵に対する書込み保護の機能を備えていません。DS1963SはDS1977よりも低コストです。4つ以上のアプリケーションでDS1963Sを共用することができる場合は、アプリケーション当りのコストは他のどの代替製品よりも低くなります。NV SRAM技術を使用しているため、読取り、書込み、およびSHA-1計算のエネルギーを内蔵バッテリから供給します。これは、特に書込みの場合にメリットとなります。Copy Scratchpadコマンドが受理された後は、マスターとの接続が失われても、メモリページや秘密鍵へのデータ転送に影響しません。
DS1963S内のメモリデータは、秘密鍵を知らなくても書換え可能です。そのため、デバイスの利用可能なアプリケーションデータスペースの一部を、アプリケーションデータの正当性の検証に使用する「署名」の格納用に確保する必要があります。この追加の認証ステップは、目的のメモリページに対応する内蔵の秘密鍵を使用したチャレンジ&レスポンスによるデバイス認証の後で行います。署名には、20バイトのSHA-1 MACを使用することができます。署名の計算に使用する秘密鍵は、一般的にはDS1963Sに格納されません。データの正当性を検証し、デバイスに書き込む正当なデータを作成するために、マスターはデバイス認証用の秘密鍵に加えて、署名の秘密鍵を知っている必要があります。マスター自身がSHA-1 MACを計算する代わりに、EEPROMを備えたSHA-1コプロセッサDS2460を使用することもできます。古いデータを(たとえば、電子キャッシュアプリケーションで購入後に)復元されるリプレイ攻撃を防止するために、埋め込む署名の計算にはそのページの書込みサイクルカウンタ値を含める必要があります。
DS1963Sを使用する前に、アプリケーションのデバイス認証秘密鍵を定義してインストールする必要があります。計算による秘密鍵の方が、パスワードのようにロードされる固定(定数)の秘密鍵よりも安全性が高くなります。次に、データ認証のための有効な埋め込み署名を含む、アプリケーションで必要となるデータをデバイスに書き込む必要があります。複数のアプリケーションで単一のDS1963Sを共用可能にするため、1-Wireファイルシステムの使用が推奨されます。初期セットアップの完了後はDS1963Sをフィールドで使用することが可能であり、メモリデータへのアクセスが行われ、多くの場合書換えも行われることになります。
既存のDS1991LアプリケーションをDS1963S向けにアップグレードするためには、この新しい製品を認識し、そのコマンドを理解し、該当するデータページを特定し、デバイスおよびその中に格納されたデータの正当性を検証することができる、改訂されたアプリケーションソフトウェアが必要です。一般的に、アプリケーションはフィールドでメモリデータの変更を行うため、計算と有効な署名の新しいページデータへの埋め込みが必要になります。Copy Scratchpadコマンドを発行する前に、必ずスクラッチパッドを確認してください。タッチ環境での高信頼性動作のために、アプリケーションノート159で解説されているデータ完全性の方策を実装することが強く推奨されます。SHA-1セキュリティに関する参考文献としては、この文書末尾のリストに記載されたアプリケーションノートを参照してください。特に注目に値するのが、電子キャッシュアプリケーションにおけるトークンとしてのDS1963SおよびSHA-1コプロセッサの使用法について解説した、アプリケーションノート1820です。
使用デバイスの決定
以上で示した代替デバイスは、それぞれ既存のソフトウェア(すなわちDS1977)の大幅な修正または新規ソフトウェアの開発を必要とします。DS1977では(そして場合によってはDS1961Sでも)、1-Wireマスターをアップグレードして給電のための強プルアップを実装する必要もあります。表2に、各アプローチの長所と弱点を示します。
表2. 代替製品の早見表
DS1977 | DS1961S | DS1963S | |
必要とされるマスターハードウェアの変更 | 強プルアップの追加 | 強プルアップの追加(必要に応じて) | なし |
アプリケーションソフトウェアの変更 | 既存のソフトウェアの修正 | 新規ソフトウェアの開発 | 新規ソフトウェアの開発 |
長所 | • DS1991L、またはその代替品のDS1961SおよびDS1963Sよりも大幅に大容量メモリ • 読取りまたはフルアクセス用の個別のパスワード |
• 最も低コスト • パスワードのキャプチャが不要 • 書込みアクセスはデバイスの秘密鍵の知識が必要 • チャレンジ&レスポンス認証により、より高い安全性および安全な書込みアクセス |
• パスワードのキャプチャが不要 • チャレンジ&レスポンス認証により、より高い安全性、データに埋め込む署名、および読込みサイクルカウンタ • 最大8つのアプリケーションが単一のデバイスを共用 |
弱点 | • DS1991Lと同等の安全性 • 同じ秘密鍵を使用する単一のアプリケーションまたは複数のアプリケーション |
• 同じ秘密鍵を使用する単一のアプリケーションまたは複数のアプリケーション | • いかなる秘密鍵の知識がなくともデータの変更または無効化が可能 |
ハードウェアの変更(強プルアップ)を選択することができない場合は、DS1977は代替製品として実用になりません。
ハードウェアインタフェースがDS1961Sとの通信に十分な電流をサポートしていない場合は、DS1963Sが唯一の選択肢になります。このデバイスのセキュリティは(パスワードではなく)秘密鍵をベースとしているため、DS1963Sの方が安全性が高く、4つ以上のアプリケーションで単一のデバイスを共用することができる場合は、コスト効率でも勝ることになります。DS1963S用のアプリケーションソフトウェアはより複雑ですが、1-Wireのオーバードライブ速度をサポートしているため、必ずしもDS1991Lより低速とは限りません。DS1963Sが不利な点は、署名が埋め込まれるためにアプリケーション当りのデータに使用可能なスペースが少ないことです。しかし、単一のアプリケーションで複数のデータページと秘密鍵を使用することによって、この欠点を相殺することができます。
強プルアップを実装するためのシステムのオーバホールが可能または不要である場合は、DS1961Sが非常にコスト効率に優れた選択肢になります。DS1977は最もDS1991Lに近いコンセプトの製品であるため、最小のアプリケーションソフトウェアの変更で使用することができます。
まとめ
このアプリケーションノートでは、既存のDS1991Lアプリケーションをアップグレードして、より新しい技術を利用するための3つのデバイスについて解説しました。それぞれのデバイスがアプリケーションソフトウェアの(場合によっては大幅な)修正を必要とし、DS1963Sと、おそらくはDS1961Sを除いて、1-Wireマスターのハードウェアの変更も必要になります。ソフトウェアの大きな変更が必要になるものの、SHA-1認証ベースのアプリケーションへの転換によって、セキュリティが向上し、DS1991Lよりもコスト効率が良くなる可能性があります。SHA-1セキュリティを実装するためのソフトウェアの変更は、SHA-1コプロセッサDS2460の使用によって簡略化することが可能です。
参考文献
アプリケーションノート番号 | タイトル | コメント | 適用性 |
114 | 1-Wire File Structure (英文のみ) | 1-Wireファイルシステムの詳細に関する完全な情報開示 | 全てのiButtonメモリ、DS1991Lは非適用 |
152 | SHA iButton Secrets and Challenges (英文のみ) | チャレンジ&レスポンスアプリケーション用の秘密鍵とチャレンジの使用に関する一般的な推奨 | DS1961S、DS1963S |
159 | iButton®アプリケーションで堅牢な1-Wire®通信を実現するためのソフトウェア手法 | タッチ環境でのiButton通信用のソフトウェアを創造するための詳細な提言 | 全てのiButtonメモリ |
190 | Challenge and Response with 1-Wire® SHA devices (英文のみ) | チャレンジ&レスポンス認証のコンセプトの紹介 | DS1961S、DS1963S |
1098 | 白書3:1-Wire SHA-1デバイスはなぜ安全なのか | 多様な攻撃手法とSHA-1セキュリティによってそれらを無効化する方法の説明 | DS1961S、DS1963S |
1099 | White Paper 4: Glossary of 1-Wire SHA-1 Terms (英文のみ) | チャレンジ&レスポンス認証に関連して使われる専門用語の説明 | DS1961S、DS1963S |
1201 | 白書8:1-Wire® SHA-1の概要 | SHA-1セキュリティと追加の知識のリストの説明 | DS1961S、DS1963S |
1820 | White Paper 1: SHA Devices Used in Small Cash Systems (英文のみ) | 金融アプリケーションでのDS1961SおよびDS1963Sの使用に関する記述、実例のフローチャートを備えて非常に詳細に記述 | DS1961S、DS1963S |
4255 | 1-Wire®デバイスの拡張機能に対する給電方法 | 1-Wireデバイスへの給電を確実にするための手引き | DS1977、DS1961S |