Implementation Representation TRUECRYPT-SPM030-IMP Central department of security and information systems Implementation Representation Date of Creation : October 22, 2007 Project name : TRUECRYPT Reference : SPM030-IMP Version : 2.00 Classification : public Status : Issued Number of Pages : 16 (including 2 headers) Comments : none TRUECRYPT public Page 1/16 Implementation Representation TRUECRYPT-SPM030-IMP 序文 特に教育の現場での、本書の複製、および/または二次利用は、次の 3 つの条件を満たすことによって、国防総局情報 セキュリティ中央局(SGDN/DCSSI)によって許可されている。 −本書の配布を無償とすること。 −本書を複製する場合には、完全性に注意を払うこと(原書に忠実であること):修正、改ざんは認めない。 −本書の複製版には、例えば「本書は、国防総局情報セキュリティ中央局(SGDN/DCSSI) (http://www.ssi.qouv.fr/en)によって策定されたものである。」など、出自を明らかにする文言を含めること。 TRUECRYPT public Page 2/16 Implementation Representation TRUECRYPT-SPM030-IMP 目次 1. 本書の目的 ........................................................................................................... 5 1.1 コモン・クライテリア .................................................................................................... 5 1.2 参照文献 ............................................................................................................. 5 2. ソースコードの構成..................................................................................................... 6 3. TSF の生成 ........................................................................................................... 7 4. モジュールと実装表現の対応......................................................................................... 8 付録 A. 略語と頭字語 .............................................................................................. 12 A.1. 略語と頭字語 ...................................................................................................... 付録 B. 参照文献................................................................................................... 13 付録 C. コモン・クライテリアに関する情報 .......................................................................... 14 C.1. 序章 ............................................................................................................. 14 C.2. ADV_IMP.1 コンポーネントの目的 ........................................................................ 14 C.3. メソドロジ ........................................................................................................ 15 TRUECRYPT public Page 3/16 Implementation Representation TRUECRYPT-SPM030-IMP 用語 CC: コモン・クライテリア CEM: 情報技術セキュリティ評価のための共通方法 SFR: セキュリティ機能要件 SFR 実施: 最低でも 1 つの SFR のエレメントを実装するメカニズムを提供するか、SFR を実装する エレメントを直接サポートする。 SFR 支援: SFR 実施のエレメントによるが、SFR を実装してはいるが、直接的な役割を果たしてい ない。 SFR 非干渉: TOE: SFR を実装していない。 評価対象。 評価対象とは、評価の対象となる製品、またはシステムの部分を指す。 TSF: TOE セキュリティ機能 TSFI: TSF インタフェース TRUECRYPT public Page 4/16 Implementation Representation TRUECRYPT-SPM030-IMP 1. 本書の目的 本書では TrueCrypt の生成に要求される情報、およびその設計文書で識別されているモジュールとソースコード 間の対応を提供する。 本書には、コモン・クライテリアで定められている ADV_IMP コンポーネントの要件に対応することができる情報が含 まれている。 1.1. コモン・クライテリア 実装表現は、TOE が自身のアーキテクチャに適合していることを示し、脆弱性分析(実装上の脆弱性の検出)の ために他のファミリにより使用される。 実装表現により、TSF の内部的な機能が明示される必要がある。このような実装表現の例には、ソフトウェアやパ ッケージのソースコードがある。 1.2. 参照文献 本書は、次のような文献をベースに構成されている。 − TrueCrypt 4.2a ソースコード[SRC_CODE] − セキュリティ・ターゲット[ST] − TOE 機能仕様[ADV_FSP] − ライフサイクル・サポート[ALC] − TOE 設計[ADV_TDS]、および − TrueCrypt の暗号化仕様[CRYPTO_SPEC]。 TRUECRYPT public Page 5/16 Implementation Representation TRUECRYPT-SPM030-IMP 2. ソースコードの構成 TrueCrypt のソースコード・ファイルは、複数のディレクトリに分散している。 − Crypto: このディレクトリには暗号化、およびハッシュアルゴリズムのソースコードが含まれている。個々のアル ゴリズム毎にソース・ファイルとヘッダ・ファイルがあり、あるアルゴリズムのコードが別のアルゴリズムのコードとミック スされることはない。従って、アルゴリズムのソースコードが容易に判別できる。 − Common: このディレクトリには TrueCrypt の実行ファイル全てに共通するソースコードが含まれている。 以下のファイルがある。 + Crypto.c: このファイルには、暗号化機能を管理するコード(一般的な暗号化/復号機能、一般的 な暗号アルゴリズムの初期化機能)が含まれている。 + Format.c: このファイルには、暗号化ディスクのフォーマッティングを管理するコードが含まれている。 + Pkcs5.c: このファイルには、PKCS#5v2 の PBKDF2 関数、および HMAC 関数を実行するコードが 含まれている。 + Random.c: このファイルには、TrueCrypt の乱数生成器を実行するコードが含まれている。 + Volume.c: このファイルには、(暗号化を含む)ヘッダを生成し、暗号化ヘッダを読み出す機能を実行 するコードが含まれている。 − Driver: このディレクトリには TrueCrypt ドライバのソースコードが含まれている。 − Format: このディレクトリには「TrueCrypt.Format.exe」実行ファイルのソースコードが含まれている。こ の実行ファイルによって、暗号化ディスクを作成することができる。 − Mount: このディレクトリには「TrueCrypt.exe」実行ファイルのソースコードが含まれている。この実行ファ イルが、TrueCrypt のメイン・インタフェースである。 − Setup: このディレクトリには「TrueCrypt Setup.exe」実行ファイルのソースコードが含まれている。 TRUECRYPT public Page 6/16 Implementation Representation TRUECRYPT-SPM030-IMP 3. TSF の生成 TSF を生成するには、はじめに TrueCrypt4.2a のソースコードのアーカイブを取り出す必要がある。次にそのアー カイブを復元する。 復元されたフォルダには、Visual Studio ソリューションに対応している「TrueCrypt.sln」ファイルが含まれている。 このソリューションは、以下の 5 つのプロジェクトで構成されている。 − Crypto − Driver − Format − Mount − Setup Windows で TOE を生成するのに必要なソフトウェアは、以下のとおりである。 − Microsoft Visual Studio .NET 2003(バージョン 7.1)、もしくはそれと互換性があるもの、および − Windows 2003 SP1 Driver Development Kit (build 3790.1830)または互換性があるもの。 生成手順: 1. 「Driver¥MAKEFILE」を編集し、「Driver Development Kit」が格納されているフォルダをポイントするよ う「DDK」変数を修正する。 # DDK をインストールするためのパスを指定する。 DDK = C:¥SDK¥WINDDK¥3790.1830 2. Microsoft Visual Studio で「TrueCrypt.sln」ソリューションを開く。 3.ソリューションの設定で、「All」が選択されていることを確認する。( Tool メニュー → Configuration manager…) 4.ソリューションの生成:メニューから「Generate」を選択し、「Generate the solution」をクリックする。 5.生成が正常に終了すれば、「Release」フォルダの中に TrueCrypt のアプリケーションが作成される。 TRUECRYPT public Page 7/16 Implementation Representation TRUECRYPT-SPM030-IMP 4. モジュールと実装表現の対応 TOE 設計(ADV_TDS)は、モジュールと実装との対応分析(第 4.2 章)を提供している。モジュールと実装表現 についてまとめたものが次の表である。 サブシステムの名称 モジュールの名称 対応する C ファイル 対応する関数 アプリケーション管理 開始 Mount.c WINMAIN 設定 Mount.c PreferencesDlogProc テスト Benchmark Dlgcode.c Performbenchmark Test des vecteurs Dlgcode.c CipherTestDialogProc Test.c AutoTestAlgorithms 終了 Mount.c Localcleanup パスワード処理 Keyfiles.c KeyFilesApply ヘッダの処理 KeyFileProcess ヘッダ鍵の導出 Pkcs5.c derive_key_sha1 derive_key_ripemd160 derive_key_whirlpool derive_u_sha1 derive_u_ripemd160 derive_u_whirlpool hmac_sha1 hmac_ripemd160 hmac_whirlpool 暗号化ヘッダの作成 Volumes.c VolumeWriteHeader 暗号化ヘッダの読み出し Volumes.c VolumeReadHeader フォーマッティング Format.c FormatVolume ディスク・フォーマッティング FormatNoFs FormatNtfs WriteSector Fat.c FormatFat Ntdriver.c TCCreateDeviceObject マウンティング管理 リンクの作成 TRUECRYPT public Page 8/16 Implementation Representation TRUECRYPT-SPM030-IMP サブシステムの名称 モジュールの名称 対応する C ファイル 対応する関数 暗号化ディスクのリスト管理 リストの更新 Dglcode.c GetMountList リンクの解消 Ntdriver.c TCDeleteDeviceObject データの読み出し Crypyo.c DecryptSectors データの書き込み Crypto.c EncryptSectors 情報の表示 Mount.c VolumePropertiesDlgProc RNG Random.c Randinit アンマウンティング管理 暗号化コンテンツの削除 データ処理 暗号化ディスクの情報の表示 暗号化の操作 Randfree RandgetBytes SlowPoll FastPoll RandaddBuff Randmix RandaddInt32 RandAddInt RandaddByte RandpeekBytes 暗号化の操作 Sha1.c sha1_begin sha1_hash sha1_end sha1_compile Rmd160.c RMD160Init RMD160Update RMD160Final RMD160Transform Whirlpool.c WHIRLPOOL_init WHIRLPOOL_add WHIRLPOOL_finalize processBuffer Tcdefs.h TRUECRYPT public burn Page 9/16 Implementation Representation TRUECRYPT-SPM030-IMP Crypto.c DetectWeakSecondaryKey crypto_open EAInit CipherInit EAInitMode EncryptBuffer EnccryptBufferLRW64 EnccryptBufferLRW128 EncryptBufferCBC EncipherBlock crypto_loadkey crypto_close DecryptBuffer DecryptBufferLRW64 DecryptBufferLRW128 DecyrptbufferCBC DecipherBlock InitSectorIVAndWhitening Crc.c crc32 Bf_skey.c BF_set_key Bf_enc.c BF_encrypt BF_encrypt BF_decrypt Aeskey.c aes_encrypt_key aes_encrypt_key128 aes_encrypt_key192 aes_encrypt_key256 aes_decrypt_key aes_decrypt_key128 aes_decrypt_key192 aes_decrypt_key256 Set_key.c des_key_sched des_set_key des_is_weak_key C_skey.c CAST_set_key Serpent.c serpent_set_key serpent_encrypt TRUECRYPT public Page 10/16 Implementation Representation TRUECRYPT-SPM030-IMP serpent_decrypt Twofish.c twofish_set_key twofish_encrypt twofish_decrypt GfMul.c Gf64TabInit Gf128Tab64Init Bf_ecb.c BF_ecb_le_encrypt Aescrypt.c aes_encrypt aes_decrypt Des_enc.c des_encrypt des_encrypt3 des_decrypt3 des_encrypt2 C_ecb.c CAST_ecb_encrypt C.enc.c CAST_encrypt CAST_decrypt Ecb3_enc.c des_ecb3_encrypt Dlgcode.c KeyfileGeneratorDlgProc 鍵ファイルの生成 鍵ファイルの生成 TRUECRYPT public Page 11/16 Implementation Representation TRUECRYPT-SPM030-IMP 付録 A. 略語と頭字語 A.1. 略語と頭字語 CC: コモン・クライテリア CEM: 情報技術セキュリティ評価のための共通方法 SFR: セキュリティ機能要件 ST: セキュリティ・ターゲット セキュリティ・ターゲットには、開発者の視点で捉えた特定の製品のセキュリティ要件が記 載される。セキュリティ機能の仕様(要約仕様)を含み、1 つ以上のプロテクション・プロフ ァイル(PP)に定義されたセキュリティ要件を含むこともある。 TOE: 評価対象。TOE は、評価対象となる製品、またはシステムの一部である。 TSF: TOE セキュリティ機能 TSFI: TSF インタフェース TRUECRYPT public Page 12/16 Implementation Representation TRUECRYPT-SPM030-IMP B. 参照文献 [CC1] Common Criteria for Information Technology Security Evaluation, Part 1: Introduction and General Model. Version 3.1, Revision 1, September 2006. CCIMB-2006-09-001. [CC2] Common Criteria for Information Technology Security Evaluation, Part 2: Security Functional Requirements. Version 3.1, Revision 1, September 2006. CCIMB-2006-09-002. [CC3] Common Criteria for Information Technology Security Evaluation, Part 3: Security Assurance Requirements. Version 3.1, Revision 1, September 2006. CCIMB-2006-09-003. [CEM] Common Criteria for Information Technology Security Evaluation, Evaluatiaon Methodology. Version 3.1, Revision 1, September 2006. CCIMB-2006-09-004. [CRYPTO] Méchanismes de cryptographie: règles et recommendations concernant le choix et la demensionment des méchanismes cryptographiques de niveau de robustnesse standard. (Cryptographic mechanisms: rules and recommendations concerning the choice and sizing of cryptographic mechanisms of standard robustness) Version 1.02, 19 November 2004. DCSSI. [ST] Cible de Sécurité TrueCrypt (TrueCrypt Security Target), Version 2.00, October 22nd 2007, SPM030-ST-2.00. [ALC] Information for Evaluation – ALC class (Life-cycle support), Version 2.00, October 22nd 2007, SPM030-ALC-2.00. [ADV_TDS] TOE elementary architecture, SPM030-TDS-2.00. [ADV_FSP] TOE functional specifications, Version 2.00, October 22nd 2007, SPM030-FSP-2.00. [CRYPTO_SPEC] Cryptographic specifications, SPM030-SPEC. [SRC_CODE] TRUECRYPT Version Version 2.00, 2.00, October October 22nd 22nd 2007, 2007, TrueCrypt 4.2a source code public Page 13/16 Implementation Representation TRUECRYPT-SPM030-IMP 付録 C. コモン・クライテリアに関する情報 C.1. 序章 本書は、ADV クラスの ADV_IMP ファミリに属す ADV_IMP.1 コンポーネントの要件に適合している。本書では、 TRUECRYPT ソフトウェアの「実装表現」について説明する。 ADV 保証クラスでは、コモン・クライテリアの評価内容に基づき開発された TOE に要求される情報を提供している。 この情報は、脆弱性の分析やテストの実施に使用される。 このクラスは、異なるレベルで抽象化された TSF の構造と表現に応じ 6 つのファミリに分類されている。 − SFR の設計と実装に関する要件が含まれるファミリは、次の 3 つである。 + ADV_FSP(機能仕様) + ADV_TDS + ADV_IMP − ドメイン分離、TSF 自己保護、セキュリティ機能の迂回防止に対応するシステム・アーキテクチャの説明に関 する要件が含まれるファミリは、次の 1 つである。 + ADV_ARC − セキュリティ・ポリシーのモデル記述、およびポリシー・モデルと機能仕様の対応の要件は、次のファミリに含ま れている。 + ADV_SPM − モジュラリティの観点、レイヤ化し複雑さを最小限に抑えるなど、内部的な TSF 構造の説明に関する要件 は、次のファミリに含まれている。 + ADV_INT これらファミリのコンポーネントは、次のような 2 つの属性を立証することを目的としている。 − 第一に、TOE が正常に機能し、その機能仕様に適合していること。これを立証するための要件には、 ADV_FSP、ADV_SPM、ADV_TDS、および ADV_IMP ファミリが対応している。 − 次に、TOE のセキュリティ機能が変更されたり、破壊されるようなことがないことである。これを立証するための 要件には、ADV_ARC、および ADV_INT ファミリが対応している。 C.2. ADV_IMP.1 コンポーネントの目的 実装表現は、TOE が自身のアーキテクチャに適合していることを示し、脆弱性分析の基礎(実装上の脆弱性の 探索)を提供するために、他のファミリによって使用される。 TRUECRYPT public Page 14/16 Implementation Representation TRUECRYPT-SPM030-IMP 実装表現により、TSF の内部的な仕組みが把握できなければならない。このような実装表現の例には、ソフトウェ アやパッケージのソースコードがある。 C.3. メソドロジ 実装表現は、次のような要件を満たしていなければならない。 − 設計に関する決定をせずに生成できる詳述さで TSF を定義すること。 − 開発チームが使用する形式になっていること。 TOE 設計の記述と実装表現サンプルとの間で対応が取れてなければならない。 C.3.1. ADV_IMP.1 コンポーネントの要件 開発者のタスク: CC パート 3 対応エレメント ADV_IMP.1.1.D ADV_IMP.1.2.D 説明 開発者は、TSF 全体の実装表現を提供しなければならない。 開発者は、TOE 設計記述と実装表現のサンプルの間のマッピングを提供しなけ ればならない。 コンテンツと証明の表示: CC パート 3 対応エレメント ADV_IMP.1.1.C ADV_IMP.1.2.C ADV_IMP.1.3.C 説明 実装表現は、それ以上の設計上の決定を必要とせずに、TSF を生成できるよう な詳細レベルまで TSF を定義しなければならない。 実装表現の形式は、開発要員が使用する形式でなければならない。 TOE 設計記述と実装表現のサンプルの間のマッピングは、両者の対応を実証し なければならない。 C.3.2. 基本的な CEM のタスク CEM(評価手法)には、評価者の基本的なタスクが記述されている。これらのタスクを正常に完了するには、評価 者は、さまざまな評価関連文書に基づき評価を実施しなければならない。 要求される証拠 − 実装表現、 − (ALC_TAT の要件に基づいた)開発ツール文書[ALC]、 − TOE 設計[ADV_TDS]。 以下の表は、基本的な CEM のタスク毎に開発者より提供された証拠資料をまとめたものである。 TRUECRYPT public Page 15/16 Implementation Representation TRUECRYPT-SPM030-IMP CC パート 3 対応 エレメント ADV_IMP.1.1.C CEM の ワーク・ユニット 説明 開発者の対応 実装表現は、それ以上の設計上の決定を必要とせずに、TSF を生成できるような詳細レベルまで TSF を定 義しなければならない。 ADV_IMP.1-1 評価者は、実装表現が、それ以上の設計上の決定を必 本書の第 3 章「TSF の 要とせずに、TSF を生成できるような詳細レベルまで TSF 生成」」を参照。 を定義していることをチェックしなければならない。 ADV_IMP.1.2.C 実装表現の形式は、開発要員が使用する形式でなければならない。 ADV_IMP.1-2 評価者は、実装表現の形式が、開発要員が使用する形 開発には C(言語)が使 式であることをチェックしなければならない。 用された。 使用された環境は、MS Visual Studio である。 ADV_IMP.1.3.C TOE 設計記述と実装表現のサンプルの間のマッピングは、両者の対応を実証しなければならない。 ADV_IMP.1-3 評価者は、正確であることを決定するために、TOE 設計 「ADV_TDS」の第 4.2 記述と実装表現のサンプルの間のマッピングを検査しなけ 章、および本書第 3 章の ればならない。 実装表現についてまとめ た表を参照。 TRUECRYPT public Page 16/16
© Copyright 2024 ExpyDoc