UDF/SEC Mainbody

標準仕様書(TS)  TS X 0040:2005


ユニバーサルディスクフォーマット(UDF)のセキュリティ拡張

Security Extension to Universal Disk Format (UDF)



序文

この文書は, 財団法人光産業技術振興協会(OITDA)1998〜2000年度の成果をもとに工業標準化の促進に関連して特に重要と判断される技術情報をまとめ, 日本工業標準調査会の審議を経て, 標準仕様書(TS)として公表するものである。


1. 適用範囲

この標準仕様書(TS)は, TS X 0035:2005[ユニバーサルディスクフォーマット(UDF) 2.00]及びUDF Revision Revision 2.01を拡張して, 次の内容のセキュリティを実現するために, ボリュームデータ構造, ファイルデータ構造について規定する。

このセキュリティ拡張は, 次の基本コンセプトに基づく。

対象とするアプリケーションを次に示す。

これらのアプリケーションは, 完全性保証,操作事実保証,アクセス制御機能,秘匿の4機能のいずれか,又はいくつかを使用し, 媒体レベルからアプリケーションレベルまでの縦断的な連携を必要とする。この標準仕様書(TS)は,各機能に共通する部分及び各機能に固有の部分に分けて, 記憶媒体上の論理フォーマット及びそれを解釈し動作するファイルシステムに関して規定を与える。


2. 引用規定

次の規格などは,この標準仕様書(TS)に引用されることによって,この標準仕様書(TS)の規定の一部を構成する。

JIS X 0607:2001 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造
 備考1 ISO/IEC 13346:1999 Volume and file structure of write-once and rewritable media using non-sequential recording for information interchange が, この規格に一致している。
 備考2 ECMA 167 3rd Edition, Volume and file structure of write-once and rewritable media using non-sequential recording for information interchange も, この規格に一致している。

TS X 0035:2005 ユニバーサルディスクフォーマット(UDF) 2.00
 備考1 Universal Disk Format Specification Revision 2.00, OSTA, 1998-04 が, この規定に一致している。
 備考2 Universal Disk Format Specification Revision 2.01, OSTA, 2000-03 は, この規定の一部を修正している。

JIS X 3030-1994 移植可能なオペレーティングシステムのインタフェース(POSIX) 第1部 応用プログラム向けのインタフェース(API) [プログラム言語C]
 備考 ISO/IEC 9945-1:1990 Portable Operating System Interface (POSIX) -- Part 1: System Application Program Interface (API) [C Language] が,この規格に一致している。

JIS X 5051-1990 物理層におけるデータ暗号化
 備考1 ISO 9160:1988 Information processing - Data encipherment - Physical layer interoperability requirementsが,この規格に一致している。
 備考2 ANSI X3.92:1981 American National Standard for Data Encryption Algorithm (DEA)も,この規格に一致している。

JIS X 5052-1990 64ビットのブロック暗号アルゴリズムの利用モード
 備考1 ISO 8372:1987 (2nd. confirmation 1997) Information processing - Modes of operation for a 64-bit block cipher algorithmが,この規格に一致している。
 備考2 ANSI X3.106:1983 American National Standard for Information Systems - Data Encryption Algorithm - Modes of Operationも,この規格に一致している。

JIS X 5055:1996 セキュリティ技術−ブロック暗号アルゴリズムによる暗号検査関数を用いるデータ完全性機構
 備考 ISO/IEC 9797 Information technology - Security techniques - Data integrity mechanism using a cryptographic check function employing a block cipher algorithmが,この規格に一致している。

JIS X 5056-14:1996 セキュリティ技術−エンティティ認証機構
 備考1 ISO/IEC 9798-14 Information technology - Security techniques - Entity authenticationが,この規格に一致している。
 備考2 ANSI X9.9(Revised):1986 American National Standard for Financial Institution Message Authentication (Wholesale)も,この規格に一致している。

JIS X 5731-8:1997 開放形システム間相互接続−ディレクトリ−第8部 認証の枠組み
 備考1 ITU-T Recommendation X.509 (1993) Open Systems Interconnection - The Directory: Authentication frameworkが,この規格に一致している。
 備考2 ISO/IEC 9594-8:1995 Open Systems Interconnection - The Directory: Authentication frameworkも,この規格に一致している。


3. 定義

この標準仕様書(TS)では, TS X 0035及び次に示す定義を適用する。

3.1 完全性保証 (data integrity) ファイルの内容が改ざんされた場合に,その事実を検出する機能。

3.2 操作事実保証 (access logging) ファイルに対し行われた操作内容を記録する機能。特定のファイルに対して,いつ,誰が,どのような環境(システム,記憶装置,記憶媒体など)で,何を行ったかを記録する。

3.3 セキュリティ機能 (security function) ファイルシステムがファイルにアクセスする際に適用しなければならない機能。例えば,改ざんの検出を行うことによる完全性保証。

3.4 セキュリティ情報 (security information) ファイルシステムがファイルにセキュリティ機能を適用する際に必要とする情報。例えば,完全性保証のための改ざん検出情報,操作事実保証のためのアクセスログ情報。ファイルごとに存在する。

3.5 セキュリティ要件 (security qequirement) ファイルシステムがファイルにアクセスする際に適用しなければならないセキュリティ機能。ファイルごとに存在する。

3.6 移出 (export) ファイル及びこれに関連付けられた全ストリームを結合し,アプリケーションに渡す機能。

3.7 移入 (import) 移出されたデータをアプリケーションから受け取り,ファイル及びストリームに分解して記憶する機能。

3.8 利用環境 (usage environment) コンテンツの利用が許可された環境。特定の記録媒体,記録装置,復号装置など。

3.9 利用環境識別子 (usage environment identifier) 特定の利用環境だけでコンテンツを利用可能にする制限を加えるために,個々の利用環境に一意に割り当てられた識別子。

3.10 ライセンス (license) 暗号化コンテンツを利用するために必要な復号鍵を含む情報。

3.11 DES (data encryption standard) JIS X 5051を参照。

3.12 CBC (cipher block chaining) JIS X 5052を参照。

3.13 MAC (massage authentication code) JIS X 5055及びJIS X 5056-14を参照。

3.14 セキュアUDF (secure UDF) セキュリティ機能をもつUDF。


4. 記法

TS X 0035に規定された記法に従う。


5. 共通データ構造

5.1 ボリュームデータ構造

5.1.1 範囲識別子添え字

セキュアUDFを含む論理ボリューム記述子の範囲識別子添え字フォーマットを次に示す。

表5.1 範囲識別子添え字フォーマット
RBP長さ名前内容
0 2 UDF版数 Uint16 (=#0201)
2 1 範囲フラグ Uint8
3 1 セキュアUDF版数 Uint8
4 4 予備 bytes (=#00)

表5.2 範囲領域フラグの意味
ビット意味
0 ハード書き込み保護
1 ソフト書き込み保護
2 セキュアUDF
3〜7 予備

セキュアUDFが1に設定されている場合,論理ボリュームがセキュアUDFを含むことを示す。

5.1.2 セキュア区画マップ

セキュア第2種区画マップは,セキュア区画記述子へのポインタをもつ。

表5.3 第2種区画マップフォーマット
RBP長さ名前内容
0 1 区画マップ種別 Uint8 = 2
1 1 区画マップ長 Uint8 = 64
2 2 予備 #00 bytes
4 32 区画識別子 EntityID
36 2 ボリューム順序番号 Uint16
38 2 区画番号 Uint16
40 24 予備 #00 bytes

セキュアUDFでは,区画識別子欄に"*UDF Secure Partition"を設定する。

5.1.3 区画記述子

struct PartitionDescriptor {	/* ECMA 167 3/10.5 */
	struct tag		DescriptorTag;
	Uint32			VolumeDescriptorSequenceNumber;
	Uint16			PartitionFlags;
	Uint16			PartitionNumber;
	struct EntityID		PartitionContents;
	byte			PartitionContentsUse[128];
	Uint32			AccessType;
	Uint32			PartitonStartingLocation;
	Uint32			PartitionLength;
	struct EntityID		ImplementationIdentifier;
	byte			ImplementationUse[128];
	byte			Reserved[156];
}

次に示す欄以外は,JIS X 0607の3/10.5の区画記述子の規定に従う。

struct EntityID ImplementationIdentifier

この欄には"*UDF Secure Partition"を設定する。

byte ImplementationUse[128]

この欄には第1種struct encspec Encryptionを設定する。使用しない領域は,#00で埋める。

5.1.3.1 第1種struct encspec Encryption

表5.4 第1種 struct encspec Encryptionフォーマット
RBP長さ名前内容
0 2 encspec種別 Uint16 = 1
2 2 encspec長 Uint16
4 4 暗号アルゴリズム種別 Uint32
8 4 暗号アルゴリズム副種別 Uint32
12 4 暗号鍵種別 Uint32
16 4 暗号鍵副種別 Uint32
20 4 利用者識別子種別 Uint32
24 * 暗号鍵 bytes
24+* * 埋込み bytes

5.1.3.1.1 encspec種別

表5.5 encspec種別の意味
種別意味
0 encspecは,この欄では定義されない。
1 encspecは,第1種encspecとする。
2〜63 予備
64〜 媒体の作成者及び受領者の合意に基づく。

5.1.3.1.2 encspec長

この欄には,encspec種別及びencspec長を含むencspecの長さを設定する。

表5.6 暗号アルゴリズム種別の意味
種別意味
0 暗号アルゴリズムは,この欄では定義されない。
1 暗号アルゴリズムは,無変換とする。
2 暗号アルゴリズムは,Single DES-CBCとする。
3 暗号アルゴリズムは,Triple DES-CBCとする。
4〜 予備

5.1.3.1.3 暗号アルゴリズム副種別

この欄には,各暗号アルゴリズム種別に副種別情報を設定する。

表5.7 暗号鍵種別の意味
種別意味
0 暗号鍵は,この欄では定義されない。
1 暗号鍵は,記憶媒体個別鍵とする。
2 暗号鍵は,記憶装置個別鍵とする。
3 暗号鍵は,システム個別鍵とする。
4 暗号鍵は,利用者個別鍵とする。
5 暗号鍵は,暗号鍵欄に記憶されている。
6〜 予備

5.1.3.1.4 暗号鍵副種別

この欄には,各暗号鍵種別に副種別情報を設定する。

5.1.3.1.5 利用者識別子種別

この欄には,暗号鍵種別が利用者個別鍵の場合に限り,利用者識別子の種別を設定する。暗号鍵種別が利用者個別鍵以外の場合には,#00を設定する。

5.1.3.1.6 暗号鍵

この欄には,暗号鍵種別が5の場合に,暗号鍵を設定する.

5.2 ファイルデータ構造

5.2.1 要件拡張属性

この拡張属性は,要件情報を記憶するために使用する。処理システム用処理システム用識別子には"*UDF Requirement Info"を設定する。

 備考 すべての実装は,この情報に従ってセキュリティ機能をファイルに適用する必要がある。必要なセキュリティ機能を実装がもたない場合,当該ファイルにアクセスしてはならない。

処理システム用領域には,次のフォーマットを設定する。

表5.8 要件拡張属性フォーマット
RBP長さ名前内容
0 2 ヘッダのチェックサム Uint16
2 2 要件機能長 (=L_RF) Uint16
4 L_RF 要件機能 bytes

5.2.1.1 要件機能長

この欄には,要件機能欄長をバイト数で設定する。

5.2.1.2 要件機能

表5.9 暗号鍵種別の意味
ビット意味
0 アクセス制御機能を要求する。
1 データ秘匿機能を要求する。
2 データ完全性機能を要求する。
3 アクセスログ機能を要求する。
4〜 予備

5.2.2 UDF利用者識別子ストリーム

表5.10 UDF利用者識別子ストリーム
ストリーム名ストリーム位置メタデータフラグ
"*UDF_UserId" ファイル集合記述子 1

5.2.2.1 第1種利用者識別子ストリーム

表5.11 第1種利用者識別子ストリームフォーマット
BP長さ名前内容
0 32 実体識別子 EntityID
32 4 利用者識別子ストリーム種別 Uint32 = 1
36 4 利用者識別子レコードの個数 Uint32
40 4 新インデクス番号 Uint32
44 84 予備 bytes
128 * 利用者識別子レコード bytes

5.2.2.1.1 実体識別子

TS X 0035の2.1.5を参照。

5.2.2.1.2 利用者識別子ストリーム種別

表5.12 利用者識別子ストリーム種別の意味
種別意味
0 利用者識別子ストリームは,この欄では定義されない。
1 利用者識別子ストリームは,第1種利用者識別子ストリームとする。
2〜63 予備
64〜 媒体の作成者及び受領者の合意に基づく。

5.2.2.1.3 利用者識別子レコードの個数

この欄には,利用者識別子レコードの個数を設定する。

5.2.2.1.4 新インデクス番号

この欄には,次にレコードを作成した際に使用するインデクス番号を設定する。その初期値は0で,新規にレコードを作成するたびに,1だけ増加する。

5.2.2.1.5 予備

全ビットを0に設定する。

5.2.2.1.6 利用者識別子レコード

表5.13 利用者識別子レコードフォーマット
RBP長さ名前内容
0 4 レコード長 Uint32
4 2 フラグ Uint16
6 4 インデクス番号 Uint32
10 4 利用者識別子長 (=L_UI) Uint32
14 L_UI 利用者識別子 bytes
14+L_UI * 埋込み bytes

5.2.2.1.6.1 レコード長

この欄は,アクセス制御レコード長をバイト数で設定する。値は,4の倍数でなければならない。

5.2.2.1.6.2 フラグ

表5.14 フラグの意味
ビット意味
0〜15 予備。すべてのビットをゼロに設定する。

5.2.2.1.6.3 インデクス番号

この欄には,対応する利用者識別子のインデクス番号を設定する。

5.2.2.1.6.4 利用者識別子長

この欄には,利用者識別子の長さを設定する。

5.2.2.1.6.5 利用者識別子

この欄には,利用者識別子を設定する。

5.2.2.1.6.6 埋込み

この欄には,長さ((レコード長)-(14+L_UI))バイトの#00を設定する。


6. 個別データ構造

6.1 ボリュームデータ構造

ボリュームデータ構造に関しては,セキュリティの規定はない。


6.2 ファイルデータ構造

6.2.1 UDFアクセス制御ストリーム

表6.1 UDFアクセス制御ストリーム
ストリーム名ストリーム位置メタデータフラグ
"*UDF_AccessControl" 任意のファイル又はディレクトリ 1

6.2.1.1 第1種アクセス制御ストリーム

表6.2 第1種アクセス制御ストリームフォーマット
BP長さ名前内容
0 32 実体識別子 EntityID
32 4 アクセス制御ストリーム種別 Uint32 = 1
36 4 アクセス制御レコードの個数 Uint32
40 88 予備 bytes
128 * アクセス制御レコード bytes

6.2.1.1.1 実体識別子

TS X 0035の2.1.5を参照。

6.2.1.1.2 アクセス制御ストリーム種別

表6.3 アクセス制御ストリーム種別の意味
種別意味
0 アクセス制御ストリームは,この欄では定義しない。
1 アクセス制御ストリームは,第1種のアクセス制御ストリームとする。
2〜63 予備
64〜 媒体の作成者及び受領者の合意に基づく。

6.2.1.1.3 アクセス制御レコードの個数

この欄には,アクセス制御レコードの個数を設定する。

6.2.1.1.4 予備

すべてのビットを0に設定する。

6.2.1.1.5 アクセス制御レコード

表6.4 アクセス制御レコードフォーマット
RBP長さ名前内容
0 4 レコード長 Uint32
4 2 フラグ Uint16
6 2 ストリーム名の長さ (=L_SN) Uint16
8 L_SN ストリーム名 bytes
8+L_SN *1 埋込み bytes
8+L_SN+*1 4 ACL種別 Uint32
12+L_SN+*1 4 許可 Uint32
16+L_SN+*1 4 識別子種別 Uint32
20+L_SN+*1 4 識別子又は識別子へのインデクス Uint32
24+L_SN+*1 *2 埋込み bytes

6.2.1.1.5.1 レコード長

この欄には,アクセス制御レコードの長さをバイト数で設定する。値は,4の倍数でなければならない。

6.2.1.1.5.2 フラグ

表6.5 フラグの意味
ビット意味
0 1の場合,記述子が削除されている。0の場合,記述子が使用中。
1〜15 予備。すべてのビットをZEROに設定する。

6.2.1.1.5.3 ストリーム名の長さ

この欄には,ストリーム名の長さを設定する。ただし,デフォルトストリームについては0を設定する。

6.2.1.1.5.4 ストリーム名

この欄には,ストリーム名を設定する。

6.2.1.1.5.5 埋込み

この欄には,4×ip((8+L_SN+3)/4)-(8+L_SN)バイト長の#00を設定する。

6.2.1.1.5.6 ACL種別

表6.6 ACL種別の意味
種別意味
1 ACL種別は,"USER_OBJ"であり,ファイルの所有者とする。
2 ACL種別は,"USER"であり,所有者以外の利用者とする。
4 ACL種別は,"GROUP_OBJ"であり,ファイルの所有グループとする。
8 ACL種別は,"GROUP"であり,所有グループ以外のグループとする。
16 ACL種別は,"CLASS_OBJ"であり,USER,GROUP_OBJ,GROUPに対するマスク値とする。(備考1)
32 ACL種別は,"OTHER_OBJ"であり,その他とする。
65536 ACL種別は,"ACL_DEFAULT"とする。
65537 ACL種別は,"DEF_USER_OBJ"であり,ファイルの所有者とする。(備考3)
65538 ACL種別は,"DEF_USER"であり,所有者以外の利用者とする。(備考3)
65540 ACL種別は,"DEF_GROUP_OBJ"であり,ファイルの所有グループとする。(備考3)
65544 ACL種別は,"DEF_GROUP"であり,所有グループ以外のグループとする。(備考3)
65552 ACL種別は,"DEF_CLASS_OBJ"であり,DEFAULT_USER,DEFAULT_GROUP_OBJ,DEFAULT_GROUPに対するマスク値とする。(備考2)(備考3)
65568 ACL種別は,"DEF_OTHER_OBJ"であり,その他とする。(備考3)

 備考1 CLASS_OBJとUSER,GROUP_OBJ又はGROUPとのビット単位の論理積が,それぞれUSER, GROUP_OBJ, GROUPの許可条件となる。

 備考2 DEF_CLASS_OBJとDEF_USER,DEF_GROUP_OBJ又はDEF_GROUPとのビット単位の論理積が,それぞれDEF_USER, DEF_GROUP_OBJ, DEF_GROUPの許可条件となる。

 備考3 DEF_...は,ディレクトリだけに設定可能であり,そのディレクトリの下のすべてのファイルに適用される。

6.2.1.1.5.7 許可条件

表6.7 許可条件の意味
ビット意味
0 ファイルは,読出し可能とする。
1 ファイルは,書込み可能とする。
2 ファイルは,実行可能とする。
3 ファイルは,削除可能とする。
4〜 予備。すべてのビットをZEROに設定する。

6.2.1.1.5.8 識別子種別

この欄には,識別子の種別を設定する。

6.2.1.1.5.9 識別子又は識別子へのインデクス

この欄には,識別子種別欄に従い,識別子又は識別子へのインデクスを設定する。

6.2.1.1.5.10 埋込み

この欄には,((レコード長)-(24+L_SN+*))バイト長の#00を設定する。

6.2.2 UDFデータ秘匿ストリーム

表6.8 UDFデータ秘匿ストリーム
ストリーム名ストリーム位置メタデータフラグ
"*UDF_DataPrivacy" 任意のファイル又はディレクトリ 1

6.2.2.1 第1種データ秘匿ストリーム

表6.9 第1種データ秘匿ストリームフォーマット
BP長さ名前内容
0 32 実体識別子 EntityID
32 4 データ秘匿ストリーム種別 Uint32 = 1
36 4 データ秘匿レコードの個数 Uint32
40 88 予備 bytes
128 * データ秘匿レコード bytes

6.2.2.1.1 実体識別子

TS X 0035の2.1.5を参照。

6.2.2.1.2 データ秘匿ストリーム種別

表6.10 データ秘匿ストリーム種別の意味
種別意味
0 データ秘匿ストリームは,この欄では定義しない。
1 データ秘匿ストリームは,第1種のデータ秘匿ストリームとする。
2〜63 予備
64〜 媒体の作成者及び受領者の合意に基づく。

6.2.2.1.3 データ秘匿レコードの個数

この欄には,データ秘匿レコードの個数を設定する。

6.2.2.1.4 予備

すべてのビットをZEROに設定する。

6.2.2.1.5 データ秘匿レコード

表6.11 データ秘匿レコードフォーマット
RBP長さ名前内容
0 4 レコード長 Uint32
4 2 フラグ Uint16
6 2 Encryptionの個数 (=N_EN) Uint16
8 2 ストリーム名の長さ (=L_SN) Uint16
10 L_SN ストリーム名 bytes
10+L_SN *1 埋込み bytes
10+L_SN+*1 *2 Encryption Encspec[]
10+L_SN+*1+*2 *3 埋込み bytes

6.2.2.1.5.1 レコード長

この欄には,データ秘匿レコードの長さを設定する。値は4の倍数でなければならない。

6.2.2.1.5.2 フラグ

表6.12 フラグの意味
ビット意味
0 1の場合,記述子が削除されている。0の場合,記述子が使用中。
1〜15 予備。すべてのビットをZEROに設定する。

6.2.2.1.5.3 Encryptionの個数

この欄には,Encryptionの個数を設定する。

6.2.2.1.5.4 ストリーム名の長さ

この欄には,ストリーム名の長さを設定する。ただし,デフォルトストリームの場合にはZEROを設定する。

6.2.2.1.5.5 ストリーム名

この欄には,ストリーム名を設定する。

6.2.2.1.5.6 埋込み

この欄には,4×ip((8+L_SN+3)/4)-(8+L_SN)バイト長の#00を設定する。

6.2.2.1.5.7 Encryption

この欄には,encspecを設定する。

6.2.2.1.5.8 埋込み

この欄には,((レコード長)-(24+L_SN+*))バイト長の#00を設定する。

6.2.3 UDFデータ完全性ストリーム

表6.13 UDFデータ完全性ストリーム
ストリーム名ストリーム位置メタデータフラグ
"*UDF_DataIntegrity" 任意のファイル又はディレクトリ 1

6.2.3.1 第1種データ完全性ストリーム

表6.14 第1種データ完全性ストリームフォーマット
BP長さ名前内容
0 32 実体識別子 EntityID
32 4 データ完全性ストリーム種別 Uint32 = 1
36 4 MACレコードの個数 Uint32
40 88 予備 bytes
128 * MACレコード bytes

6.2.3.1.1 実体識別子

TS X 0035の2.1.5を参照。

6.2.3.1.2 データ完全性ストリーム種別

表6.15 データ完全性ストリーム種別の意味
種別意味
0 データ完全性ストリームは,この欄では定義しない。
1 データ完全性ストリームは,第1種のデータ完全性ストリームとする。
2〜63 予備
64〜 媒体の作成者及び受領者の合意に基づく。

6.2.3.1.3 MACレコードの個数

この欄には,MACレコードの個数を設定する。削除したものはこれに含めない。

6.2.3.1.4 予備

すべてのビットをZEROに設定する。

6.2.3.1.5 MACレコード

表6.16 MACレコードフォーマット
RBP長さ名前内容
0 4 レコード長 Uint32
4 2 フラグ Uint16
6 2 ストリーム名の長さ (=L_SN) Uint16
8 L_SN ストリーム名 bytes
8+L_SN *1 埋込み bytes
8+L_SN+*1 2 MAC計算種別 Uint16
10+L_SN+*1 16 アルゴリズム識別子 encspec
26+L_SN+*1 2 MAC長 (=L_MA) Uint16
28+L_SN+*1 L_MA MAC bytes
28+L_SN+*1+L_MA *2 埋込み bytes

6.2.3.1.5.1 レコード長

この欄には,MACレコードの長さを設定する。値は4の倍数でなければならない。

6.2.3.1.5.2 フラグ

表6.17 フラグの意味
ビット意味
0 1の場合,記述子が削除されている。0の場合,記述子が使用中。
1〜15 予備。すべてのビットをZEROに設定する。

6.2.3.1.5.3 ストリーム名の長さ

この欄には,ストリーム名の長さを設定する。ただし,デフォルトストリームの場合はZEROを設定する。

6.2.3.1.5.4 ストリーム名

この欄には,ストリーム名を設定する。

6.2.3.1.5.5 埋込み

この欄には,4×ip((8+L_SN+3)/4)-(8+L_SN)バイト長の#00を設定する。

6.2.3.1.5.6 MAC計算種別

この欄には,MACの計算方法を設定する。

表6.18 MAC計算種別の意味
種別意味
0 計算種別は,この欄では定義しない。
1 計算種別は,タイムスタンプにストリーム本体を結合したものから計算する。
2 計算種別は,タイムスタンプ,秘密情報及びストリーム本体を結合したものから計算する。
3〜63 予備
64〜 媒体の作成者及び受領者の合意に基づく。

 備考 秘密情報は,例えばシステム識別子,記憶装置識別子,記憶媒体識別子 とする。

6.2.3.1.5.7 アルゴリズム識別子

この欄には,encspecを設定する。

6.2.3.1.5.8 MAC長

この欄には,MAC長を設定する。

6.2.3.1.5.9 MAC

この欄には,個々のファイル,ストリーム又はディレクトリから計算したMACを設定する。

6.2.3.1.5.10 埋込み

この欄には,((レコード長)-(28+L_SN+*+L_MA))バイト長の#00を設定する。

6.2.4 UDFアクセスログストリーム

表6.19 UDFアクセスログストリーム
ストリーム名ストリーム位置メタデータフラグ
"*UDF_AccessLog" 任意のファイル又はディレクトリ 1

6.2.4.1 第1種アクセスログストリーム

表6.20 第1種アクセスログストリームフォーマット
BP長さ名前内容
0 32 実体識別子 EntityID
32 4 アクセスログストリーム種別 Uint32 = 1
36 4 アクセスログレコードの個数 Uint32
40 4 アクセスログ方策(ファイル用) Uint32
44 4 アクセスログ方策(ディレクトリ用) Uint32
48 8 アクセスログの最大サイズ Uint64
56 8 始点ポインタ Uint64
64 8 終点ポインタ Uint64
72 56 予備 bytes
128 * アクセスログレコード bytes

6.2.4.1.1 実体識別子

TS X 0035の2.1.5を参照。

6.2.4.1.2 アクセスログストリーム種別

表6.21 アクセスログストリーム種別の意味
種別意味
0 アクセスログストリームは,この欄では定義しない。
1 アクセスログストリームは,第1種のアクセスログストリームとする。
2〜63 予備
64〜 媒体の作成者及び受領者の合意に基づく。

6.2.4.1.3 アクセスログレコードの個数

この欄には,アクセスログレコードの個数を設定する。

6.2.4.1.4 アクセスログ取得方策(ファイル用)

この欄には,ファイルに対する操作でアクセスログとして取得するものを,操作欄(6.2.4.1.10.4)に対応するビットごとに設定する。ビットが1に設定されている場合,対応する操作は,ログ取得対象となる。

6.2.4.1.5 アクセスログ取得方策(ディレクトリ用)

この欄には,ディレクトリに対する操作でアクセスログとして取得するものを,操作欄(6.2.4.1.10.4)に対応するビットごとに設定する。ビットが1に設定されている場合,対応する操作は,ログ取得対象となる。

6.2.4.1.6 アクセスログの最大サイズ

この欄には,アクセスログの最大サイズを設定する。アクセスログが最大サイズに達した場合は,アクセスログの先頭から上書きされる。値0は無制限にアクセスログを記録することを示す。

6.2.4.1.7 始点ポインタ

この欄には,最も古い有効なアクセスログレコードの先頭バイトの位置を設定する。アクセスログは,リングバッファを形成しているため,終点ポインタが始点ポインタを追い越すことはない。

6.2.4.1.8 終点ポインタ

この欄には,最も新しい有効なアクセスログレコードの最終バイトの次のバイトの位置を設定する。

6.2.4.1.9 予備

すべてのビットをZEROに設定する。

6.2.4.1.10 アクセスログレコード

表6.22 アクセスログレコードフォーマット
RBP長さ名前内容
0 4 レコード長 Uint32
4 8 順序番号 Uint64
12 16 タイムスタンプ Time Stamp
28 4 操作 Uint32
32 4 利用者識別子種別 Uint32
36 4 利用者識別子又は利用者識別子へのポインタ Uint32
40 4 操作依存領域長 (=L_AD) Uint32
44 L_AD 操作依存領域 bytes
44 + L_AD * 埋込み bytes

6.2.4.1.10.1 レコード長

この欄には,アクセスログレコードの長さを設定する。値は4の倍数でなければならない。

6.2.4.1.10.2 順序番号

この欄には,値0から始まり,昇順に割り当てられる順序番号を設定する。

6.2.4.1.10.3 タイムスタンプ

この欄には,操作が行われた日時を設定する。オープン及びクローズを伴う操作については,クローズ時のものとする。

6.2.4.1.10.4 操作

この欄には,ファイル又はディレクトリに行われた操作に関して,ビット毎の論理和を取った結果を設定する。

ファイルに対する操作は,次の定義に従う。

表6.23 操作の意味(ファイル用)
ビット意味
0 ファイルをセキュア化した。
1 ファイルを非セキュア化した。
2 ファイルを読み出した。
3 ファイルを書き込んだ。
4 予備。ビットをZEROに設定する。
5 予備。ビットをZEROに設定する。
6 ファイルを縮退した。
7 ファイルの属性を読み出した。
8 ファイルの属性を書き込んだ。
9 ファイル配下の利用者ストリームを読み出した。
10 ファイル配下の利用者ストリームを書き込んだ。
11 ファイル配下の利用者ストリームを縮退した。
12 ファイル配下に利用者ストリームを作成した。
13 ファイル配下の利用者ストリームを削除した。
14 ファイル配下の利用者ストリーム名を変更した。
15 ファイル及び関連する全ストリームを移出した。
16 ファイル及び関連する全ストリームを移入した
17〜31 予備。すべてのビットをZEROに設定する。

 備考 縮退は,ファイルサイズを変更する操作を意味する。現在のサイズより短いサイズを指定して操作を行った場合,指定したサイズ以降のデータは失われる。

ディレクトリに対する操作は,次の定義に従う。

表6.24 操作の意味(ディレクトリ用)
ビット意味
0 ディレクトリをセキュア化した。
1 ディレクトリを非セキュア化した。
2 ディレクトリを読み出した。
3 ディレクトリの下にファイル,ディレクトリ又はハードリンクを作成した。
4 ディレクトリの下のファイル,ディレクトリ又はハードリンクを削除した。
5 ディレクトリの下のファイル名,ディレクトリ名又はハードリンク名を変更した。
6 予備。ビットはZEROに設定する。
7 ディレクトリの属性を読み出した。
8 ディレクトリの属性を書き込んだ。
9 ディレクトリ配下の利用者ストリームを読み出した。
10 ディレクトリ配下の利用者ストリームを書き込んだ。
11 ディレクトリ配下の利用者ストリームを縮退した。
12 ディレクトリ配下に利用者ストリームを作成した。
13 ディレクトリ配下の利用者ストリームを削除した。
14 ディレクトリ配下の利用者ストリーム名を変更した。
15 ディレクトリと関連する全ストリームを移出した。
16 ディレクトリと関連する全ストリームを移入した。
17〜31 予備。すべてのビットはZEROに設定する。

6.2.4.1.10.5 利用者識別子種別

この欄には,利用者識別子の種別を設定する。

表6.25 利用者識別子種別の意味
種別意味
0 利用者識別子は,この欄では定義しない。
1 利用者識別子は,JIS X 3030の利用者識別子とする。
2 利用者識別子は,X.509証明証とする。
3〜 予備

6.2.4.1.10.6 利用者識別子又は利用者識別子へのポインタ

この欄には,利用者識別子の種別に従い,利用者識別子または利用者識別子へのポインタを設定する。

6.2.4.1.10.7 操作依存領域長

この欄には,操作に依存した情報を記憶する領域である操作依存領域の長さを設定する。

6.2.4.1.10.8 操作依存領域

この欄には,操作に依存した情報を設定する。

表6.23又は表6.24に示すビット9からビット14のいずれかが1に設定されている場合,次のフォーマットに従った情報を設定する。

表6.26 操作依存領域フォーマット
RBP長さ名前内容
0 2 ストリーム名の長さ (=L_SN) Unt16
2 L_SN ストリーム名 bytes
2+L_SN * 埋込み bytes

6.2.4.1.10.8.1 ストリーム名長

この欄には,ストリーム名も長さを設定する。

6.2.4.1.10.8.2 ストリーム名

この欄には,ストリーム名を設定する。

6.2.4.1.10.8.3 埋込み

この欄には,(L_AD-(2+L_SN))バイト長の#00を設定する。

表6.23又は表6.24に示すビット15又はビット16のいずれかが1に設定されている場合,次のフォーマットに従った情報を設定する。

表6.27 envspecフォーマット
RBP長さ名前内容
0 128 論理ボリューム識別子 dstring
128 6 論理ブロックアドレス lb_addr
134 * 埋込み bytes

6.2.4.1.10.8.4 論理ボリューム識別子

この欄には,操作対象となったファイルが存在する論理ボリューム識別子を設定する。

6.2.4.1.10.8.5 論理ブロックアドレス

この欄には,操作対象となったファイルの先頭ICBが存在する論理ブロック番号を設定する。

6.2.4.1.10.8.6 埋込み

この欄には,(L_AD-134)バイト長の#00を設定する。

6.2.4.1.10.9 埋込み

この欄には,((レコード長)-(24+L_SN+*))バイト長の#00を設定する。

6.2.5 UDFライセンスストリーム

表6.28 UDFライセンスストリーム
ストリーム名ストリーム位置メタデータフラグ
"*UDF_License" 任意のファイル又はディレクトリ 1

6.2.5.1 第1種ライセンスストリーム

表6.29 第1種ライセンスストリームフォーマット
BP長さ名前内容
0 32 実体識別子 EntityID
32 4 ライセンスストリーム種別 Uint32 = 1
36 4 ライセンスレコードの個数 Uint32
40 88 予備 bytes
128 * ライセンスレコード bytes

6.2.5.1.1 実体識別子

TS X 0035の2.1.5を参照。

6.2.5.1.2 ライセンスストリーム種別

表6.30 ライセンスストリーム種別の意味
種別意味
0 ライセンスストリームは,この欄では定義しない。
1 ライセンスストリームは,第1種のライセンスストリームとする。
2〜63 予備
64〜 媒体の作成者及び受領者の合意に基づく。

6.2.5.1.3 ライセンスレコードの個数

この欄には,ライセンスレコードの個数を設定する。

6.2.5.1.4 予備

すべてのビットをZEROに設定する。

6.2.5.1.5 ライセンスレコード

表6.31 ライセンスレコードフォーマット
RBP長さ名前内容
0 4 レコード長 Uint32
4 * ライセンス bytes

6.2.5.1.5.1 レコード長

この欄には,ライセンスレコード長を設定する。値は4の倍数でなくてはならない。

6.2.5.1.5.2 ライセンス

この欄には,ライセンス本体を設定する。ライセンス本体のフォーマットは,ここでは定義しない。