JP2009519511A - 文書データセキュリティ管理方法及びそのシステム - Google Patents
文書データセキュリティ管理方法及びそのシステム Download PDFInfo
- Publication number
- JP2009519511A JP2009519511A JP2008543635A JP2008543635A JP2009519511A JP 2009519511 A JP2009519511 A JP 2009519511A JP 2008543635 A JP2008543635 A JP 2008543635A JP 2008543635 A JP2008543635 A JP 2008543635A JP 2009519511 A JP2009519511 A JP 2009519511A
- Authority
- JP
- Japan
- Prior art keywords
- document
- role
- authority
- key
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 174
- 230000008569 process Effects 0.000 claims description 62
- 238000010606 normalization Methods 0.000 claims description 32
- 238000013475 authorization Methods 0.000 claims description 13
- 238000012986 modification Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims 3
- 238000010168 coupling process Methods 0.000 claims 3
- 238000005859 coupling reaction Methods 0.000 claims 3
- 230000004913 activation Effects 0.000 claims 1
- 239000010410 layer Substances 0.000 description 103
- 230000006870 function Effects 0.000 description 68
- 238000012545 processing Methods 0.000 description 38
- 238000004422 calculation algorithm Methods 0.000 description 31
- 238000003860 storage Methods 0.000 description 21
- 239000011800 void material Substances 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 7
- 238000007639 printing Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 239000012792 core layer Substances 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Abstract
【選択図】図11
Description
基本的に、異なるユーザは、同じアプリケーションで処理された文書だけ交換でき、異なるアプリケーションで処理された文書を交換できないため、情報の閉鎖につながる。
異なる文書処理アプリケーションの間で、文書フォーマットは互いに互換できず、処理中においては、相手のフォーマットに対して、相手のコンポーネントを利用して解析し(相手から相応インターフェースの提供を前提とする)、又は、自分で研究開発の力を投入して最初から最後まで解析する必要がある。
現在、テキスト文書に対する権限制御手段は単一で、主にデータ暗号化とパスワード認証とを含む。毎年、情報漏えいで会社が巨大な損失を食う事件は次々に発生する。
各人のコンピュータに大量な文書があるが、複数の文書の間では、有効な組織管理が乏しく、且つリソースの共有が難しい。例えば、フォント・書体ファイルや全文データ検索などである。
現在、Adobe(登録商標)のphotoshopやMicrosoftのwordのようなアプリケーションには層という概念が多少あったが、その層は、機能がまだ単純で、管理手段が比較的に簡単で、応用ニーズを満たすことができない。
情報の大量化に伴い、どのキーワードで検索しても膨大な検索結果になってしまう。全文検索技術により再現率の課題がほぼ解決されているが、適合率が速やかに最も重要な課題になっている。従来技術では、適合率の課題の解決に全ての情報を十分に利用していない。例えば、各字の書体や文字サイズが、この字の重要性判断にまったく使用可能であるが、検索時に無視されてしまった。
同一文書フォーマット標準規格を使用する異なるアプリケーションがこのフォーマットの文書の解釈・生成を自分で行う必要があることにより、大量の重複開発をもたらす。また、各アプリケーションの解釈プログラムは異り、例えば、整備なものもあるし、相対的に簡単なものもあり、新バージョンをサポートするものもあるし、旧バージョンのみをサポートするものもある。そのため、同一文書は異なるアプリケーションによって異なるページレイアウトで表示され、ひいては、解釈エラーが発生して文書を開けくことができないこともある。
ソフトウェア産業は絶えずに革新している産業であるが、新機能を追加するたびにこの機能の記述情報を追加する必要があり、且つ、新たなフォーマットの追加が標準規格の修正時まで待つしかできないため、記憶フォーマットの固定は技術革新の競争を妨害する。
大量の情報に対して、検索性能を向上するため、大量の検索情報を追加する必要があるが、固定の記憶フォーマットについては検索情報の追加が難しい。
異なるシステム環境下で、異なる応用ニーズにより異なる記憶要求がありうる。例えば、ハードディスクに記憶する場合、性能を向上するようにディスクヘッドのシーク回数を如何に減少するかを考慮する必要がある。一方、組込式応用では、データがメモリに記憶されるものに相当するため、上記問題はない。例えば、同一メーカーのデータベースアプリケーションは、異なるプラットフォームで異なる記憶フォーマットを使用する可能性がある。そのため、文書記憶標準規格の設定はシステムの可搬性と拡張性に影響を及ぼす。
公開鍵:n=pq(p、qは非常に大きな2つの異なる素数であり、pとqを秘密にしなければならない) φ(n)=(p−1)×(q−1)
φ(n)と互いに素な整数e(1<e<φ(n))を選択し、
秘密鍵:d=e−1modφ(n)、即ち、式de=1modφ(n)を満たすように、数dを算出し、
暗号化:c=mc(mod n)
復号化:m=cd(mod n)
ここで、mは平文であり、cは暗号文である。
楕円曲線暗号の暗号化アルゴリズムは、もう1つの非対称鍵暗号アルゴリズムであり、楕円曲線を暗号アルゴリズムに利用するものである。このアルゴリズムが現れて以来、暗号解読法の研究対象となっている。現在、ビジネス向けと政府向けの用途において、楕円曲線暗号システム(ECC)が安全であると考えられる。既知の暗号解読法の知識によって、伝統の暗号システムに比べて、楕円曲線暗号システムがより高い安全性を提供している。
Y2=x3+ax+b (mod p)
前記文書ベース又は文書のロールを作成する過程と、
前記ロールに権限を配分する過程と、
ロールで前記文書又は文書ベースにログインする過程と、
前記文書ベースシステムを介して前記文書又は文書ベースにアクセスする際、ログインしたロールの権限を検査する過程とを含む。
前記文書又は文書ベースのロールを作成し、前記ロールに権限を配分するロール管理手段と、
ロールが前記文書又は文書ベースにログインする際、前記ロール管理手段を介して該ロールの身分を認証する身分認証手段と、
該文書又は文書ベースにアクセスする際、前記ロール管理手段と身分認証手段を介して、ログインしたロールの権限を検査するアクセス制御手段とを含む。
前記文書のロールを作成し、文書オブジェクト、ページオブジェクト、又はページオブジェクトのサブオブジェクトに対する権限を前記ロールに配分するロール管理手段と、
ロールが前記文書にログインする際、前記ロール管理手段を介して該ロールの身分を認証する身分認証手段と、
文書にアクセスする際、前記ロール管理手段と身分認証手段を介して、ログインしたロールの権限を検査するアクセス制御手段とを含む。
紙の特性を参考して前記汎用文書モデルを定義してよい。これは、紙を文書情報の記録手段とすることが今まで通用している標準方法であり、紙の全ての機能さえあれば、仕事や生活などの実際の応用ニーズを満たすことができるためである。
文書ベースにおいて若干のロールを定義して、ロールオブジェクトを形成する。通常、ロールオブジェクトは文書ベースオブジェクトのサブオブジェクトである。対応の汎用文書モデルには文書ベースオブジェクトがない場合、ロールは文書において定義され、即ちロールオブジェクトは文書オブジェクトのサブオブジェクトである。この場合、本汎用文書セキュリティモデルに言われた文書ベースは全て文書により代替されるべきである。
任意ロールによる任意オブジェクト(例えば、文書ベース、文書セット、文書、ページ、層、オブジェクトグループ、レイアウトオブジェクトなど)へのアクセス権限を指定できる。あるロールによるあるオブジェクトへのアクセス権限を指定すると、この権限は該オブジェクトの全てのサブオブジェクトに適用する。
あるロールの身分で各オブジェクトに対して署名できる。あるオブジェクトに対する署名範囲は、該オブジェクトのサブオブジェクト、及び該オブジェクトで引用されたオブジェクトを含む。
ロールオブジェクト作成指令の応答として、後で該ロール身分でログインするための鍵が返信される。この鍵は、通常、PKIの秘密鍵であり、アプリケーションによって適切に保管される必要がある。この鍵はログインパスワードであってもよい。好ましくは、いかなるアプリケーションが、いかなる権限もない新たなロールの作成権限を有する。再付与権限のあるロールを用いて新たなロールに一定の権限を付与することが可能である。
アプリケーションが、あるロールの身分でログインする場合、「挑戦/応答」メカニズムが採用できる。即ち、文書ベースシステムが、保存しているロールの公開鍵を用いてランダムデータブロックを暗号化して、アプリケーションに送信し、アプリケーションが、そのデータブロックを復号化してから文書ベースシステムに返信し、復号化が正しい場合は、アプリケーションがこのロールに対応する秘密鍵を確実に有することを表す(念のため、この認証プロセスが何回も繰り返されることが可能である)。「挑戦/応答」メカニズムは下記の方式で実現することもできる。即ち、文書ベースシステムがランダムデータブロックをアプリケーションに送信し、アプリケーションが秘密鍵を用いてそれを暗号化してから文書ベースシステムに返信し、文書ベースシステムが、保存しているロールの公開鍵を用いて、その暗号化されたものを復号化し、復号化が正しい場合は、アプリケーションがこのロールに対応する秘密鍵を確実に有することを表す。「挑戦/応答」メカニズムを用いることで、秘密鍵のセキュリティをよりよく保護できる。ロールの鍵がログインパスワードである場合、ユーザが正しいログインパスワードを入力しなければならない。
特殊のデフォルトロールが作成できる。デフォルトロールが存在する場合、いかなるロールでもログインしなくても、デフォルトロールの身分で文書ベースを操作できる。好ましくは、文書ベースの初期作成時に、全ての権限を有するデフォルトロールを自動的に作成する。
前記インターフェース層の統一インターフェース標準は、汎用文書モデル、汎用文書セキュリティモデル及び常用の文書操作に基づいて定義されてよく、汎用文書モデル内の各オブジェクトに対する操作指令を送信することに用いられる。前記汎用文書モデル内の各オブジェクトに対する操作指令はインターフェース標準に適合し、各種のアプリケーションはインターフェース層を介して標準指令を送信できる。
オープン:文書ベースを作成又はオープンする。
クローズ:セッションハンドルや文書ベースをクローズする。
取得:オブジェクトリスト、オブジェクトの関連属性及びデータを取得する。
設定:オブジェクトデータを設定・修正する。
挿入:指定のオブジェクト又はデータを挿入する。
削除:オブジェクトのあるサブオブジェクトを削除する。
検索問い合わせ:定義された条件によって文書において条件に適合する内容を検索する。これらの条件は、正確な情報であってもよいし、不正確な情報であってもよい。即ち、曖昧検索がサポートされる。
属性
SUCCESS:値が真(true)の場合は操作成功、それ以外の場合は操作失敗、を表す。
子要素
ERR_INFO:選択可能なものであり、操作失敗の場合だけ出現し、相応のエラー情報を記述する。
他の子要素:具体的な命令によって決定され、各命令に対する説明を参照してよい。
1.UOML_OPEN(文書ベースの作成又はオープン)
1.1 属性
1.1.1 Create:trueの場合は作成し、それ以外の場合は既存の文書ベースをオープンすることを表す。
1.2 子要素
1.2.1 Path:文書ベースのパス。それは、ディスクファイル名、URL、メモリポインタ、ネットワークパス、文書ベースのロジック名称、又は文書ベースを指定できる他の表現方式であってよい。
1.3 戻り値
成功の場合、ハンドルを記録するための子要素「handle」をUOML_RETに追加する。
2.UOML_CLOSE(クローズ)
3.1 属性:なし。
2.2 子要素
2.2.1 handle:文字列で表される、オブジェクトへの引用ポインタであるオブジェクトハンドル。
2.2.2 db_handle:文字列で表される、文書ベースへの引用ポインタである文書ベースハンドル。
2.3 戻り値:なし。
3.UOML_GET(取得)
3.1 属性
usage:用途であり、「GetHandle」(指定オブジェクトハンドル取得)、「GetObj」(指定オブジェクトデータ取得)、「GetPageBmp」(ページビットマップ取得)のうち1つ。
3.2 子要素
3.2.1 parent:親オブジェクトハンドルであり、usage属性が「GetHandle」の場合に使用する。
3.2.2 pos:位置順番であり、usage属性が「GetHandle」の場合に使用する。
3.2.3 handle:指定オブジェクトのハンドルであり、usage属性が「GetObj」の場合に使用する。
3.2.4 Page:表示必要なページのハンドルであり、usage属性が「GetPageBmp」の場合に使用する。
3.2.5 input:入力ページに対する要求を記述し、例えば、1層又は複数層の内容の表示を指定でき(表示可能な層は必ず現在のロールにアクセス権限がある層である)、Clip領域の指定によって表示領域の大きさも指定できる。usage属性が「GetPageBmp」の場合に使用する。
3.2.6 output:ページビットマップの出力方式を記述し、usage属性が「GetPageBmp」の場合に使用する。
3.3 戻り値
3.3.1 usage属性が「GetHandle」の場合、実行成功のとき、parentの第pos個のサブオブジェクトのハンドルを記録するための子要素「handle」をUOML_RETに追加する。
3.3.2 usage属性が「GetObj」の場合、実行成功のとき、handleオブジェクトデータのxml表現を含む子要素「xobj」をUOML_RETに追加する。
3.3.3 usage属性が「GetPageBmp」の場合、実行成功のとき、子要素「output」で指定された位置にページビットマップを出力する。
4.UOML_SET(設定)
4.1 属性:なし。
4.2 子要素
4.2.1 Handle:オブジェクトのハンドルを設定する。
4.2.2 xobj:オブジェクトの記述。
4.3 戻り値:なし。
5.UOML_INSERT(挿入)
5.1 属性:なし。
5.2 子要素
5.2.1 parent:親オブジェクトハンドル。
5.2.2 xobj:オブジェクトの記述。
5.2.3 pos:挿入位置。
5.3 戻り値:実行成功の場合、パラメータ「xobj」で表されるオブジェクトを、parentの第pos個のサブオブジェクトとしてparentに挿入し、新たに挿入されたオブジェクトのハンドルを表す子要素「handle」をUOML_RETに追加する。
6.UOML_DELETE(削除)
6.1 属性:なし。
6.2 子要素
6.2.1 handle:削除必要なオブジェクトのハンドル。
6.3 戻り値:なし。
7.UOML_QUERY(検索問い合わせ)
7.1 属性:なし。
7.2 子要素
7.2.1 handle:問い合わせ必要な文書ベースハンドル。
7.2.2 condition:問い合わせ条件。
7.3 戻り値:成功の場合、問い合わせ結果のハンドルを表す子要素「handle」、及び問い合わせ結果の数を表す子要素「number」をUOML_RETに追加する。UOML_GETで各問い合わせ結果を取得できる。
文書ベース(UOML_DOCBASE)、文書セット(UOML_DOCSET)、文書(UOML_DOC)、ページ(UOML_PAGE)、層(UOML_LAYER)、オブジェクトグループ(UOML_OBJGROUP)、テキスト(UOML_TEXT)、画像(UOML_IMAGE)、直線(UOML_LINE)、曲線(UOML_BEIZER)、円弧(UOML_ARC)、パス(UOML_PATH)、ソースファイル(UOML_SRCFILE)、背景色(UOML_BACKCOLOR)、前景色(UOML_COLOR)、ROP(UOML_ROP)、文字サイズ(UOML_CHARSIZE)、及び書体(UOML_TYPEFACE)を含む。
1 UOML_DOC
1.1 属性:なし
1.2 子要素
1.2.1 metadata:メタデータ
1.2.2 pageset:各ページ
1.2.3 fontinfo:組み込みフォント
1.2.4 navigation:ナビゲーション情報
1.2.5 thread:スレッド情報
1.2.6 minipage:サムネイルイメージ
1.2.7 signiture:デジタル署名
1.2.8 log:履歴
1.2.9 shareobj:文書共有オブジェクト
2 UOML_PAGE
2.1 属性
2.1.1 resolution:ロジック分解能
2.1.2 size:幅と高さで表される版面のサイズ
2.1.3 rotaion:回転角度
2.1.4 log:履歴
2.2 子要素
2.2.1 GS:初期図形ステータスであり、文字スタイル(charstyle)、線スタイル(linestyle)、線の端のスタイル(linecap)、継ぎ目のスタイル(linejoint)、線幅(linewidth)、塗りつぶし規則(fillrule)、文字間隔(charspace)、行間隔(linespace)、文字回転角度(charroate)、文字傾斜方向(charslant)、文字の太さ(charweight)、文字方向(chardirect)、テキスト方向(textdirect)、陰影幅(shadowwidth)、陰影方向(shadowdirect)、陰影の枠線の幅(shadowboderwidth)、輪郭線の幅(outlinewidth)、輪郭の枠線の幅(outlineboderwidth)、線色(linecolor)、塗りつぶし色(fillcolor)、背景色(backcolor)、文字色(textcolor)、陰影色(shadowcolor)、輪郭線色(outlinecolor)、変換行列(matrix)、クリップ領域(cliparea)を含む。
2.2.2 metadata:メタデータ
2.2.3 layerset:該ページに属する各層
2.2.4 signiture:デジタル署名
2.2.5 log:履歴
3 UOML_TEXT
3.1 属性
3.1.1 Encoding:テキスト符号化方式
3.2 子要素
3.2.1 TextData:テキスト内容。
3.2.2 CharSpacingList:非等間隔の場合の文字間隔リスト。
3.2.3 StartPos:開始位置。
4 UOML_CHARSIZE
4.1 属性
4.1.1 width:文字幅
4.1.2 height:文字高さ
4.2 子要素:なし
5 UOML_LINE
5.1 属性
5.1.1 LineStyle:線スタイル
5.1.2 LineCap:線の端のスタイル
5.2 子要素
5.2.1 StartPoint:線の起点座標
5.2.2 EndPoint:線の終点座標
6 UOML_BEIZER
6.1 属性
6.1.1 LineStyle:線スタイル
6.2 子要素
6.2.1 StartPoint:ベジェ曲線の起点座標
6.2.2 Control1_Point:ベジェ曲線の第1制御点
6.2.3 Control2_Point:ベジェ曲線の第2制御点
6.2.4 EndPoint:ベジェ曲線の終点座標
7 UOML_ARC
7.1 属性
7.1.1 ClockWise:弧の方向
7.2 子要素
7.2.1 StartPoint:弧の起点座標
7.2.2 EndPoint:弧の終点座標
7.2.3 Center:弧の円心座標
8 UOML_COLOR
8.1 属性
8.1.1 Type:色の類型、RGB又はCMYK
8.2 子要素
RGBモード
8.2.1 Red:赤色
8.2.2 Green:緑色
8.2.3 Blue:青色
8.2.4 Alpha:透明度
CMYKモード
8.2.5 Cyan:青緑色
8.2.6 Magenta:赤紫色
8.2.7 Yellow:黄色
8.2.8 Black_ink:黒色
<UOML_OPEN create=true>
<path val=f:\\data\\docbase1.sep/>
</UOML_OPEN>
<UOML_INSERT>
<parent val=123.456.789/>
<pos val=1/>
<xobj>
<docset/>
</xobj>
</UOML_INSERT>
1, f:\\data\\docbase1.sep,/Open
/docset, 1, “123.456.789” ,/Insert
UOML_INSERT_DOCSET:文書ベースに文書セットの作成を指示
属性:なし
子要素:
parent:文書ベースハンドル
pos:挿入位置
戻り値:実行成功の場合、新たに挿入された文書セットのハンドルを表す子要素「handle」をUOML_RETに追加する。
<UOML_INSERT_DOCSET>
<parent val=123.456.789/>
<pos val=1/>
</UOML_INSERT_DOCSET>
struct UOI_Ret {
BOOL m_bSuccess; // 操作成功又は失敗
CString m_ErrInfo;// 操作失敗の場合、エラー情報を示す
};
そして、全てのUOIオブジェクトの基本クラスを定義する。
class UOI_Object {
public:
enum Type {
TYPE_DOCBASE,
TYPE_DOCSET,
TYPE_DOC,
TYPE_PAGE,
TYPE_LAYER,
TYPE_TEXT,
TYPE_CHARSIZE,
……汎用文書モデルに定義された他のオブジェクトの類型の定義が上記と類似するため、以下は省略する。
};
Type m_Type;
UOI_Object();
virtual 〜 UOI_Object();
static UOI_Object* Create(Type objType); //指定類型に基づいて相応のオブジェクトを作成する
};
UOI_RET UOI_Open(char *path, BOOL bCreate, HANDLE *pHandle);
db_handle文書ベースのhandleハンドルをクローズし、handleがNULLである場合、文書ベース全体をクローズする:
UOI_RET UOI_Close(HANDLE handle, HANDLE db_handle);
指定のサブオブジェクトのハンドルを取得する:
UOI_RET UOI_GetHandle(HANDLE hParent, int nPos, HANDLE *pHandle);
ハンドルに関連付けられたオブジェクトの類型を取得する:
UOI_RET UOI_GetObjType(HANDLE handle, UOI_Object ::Type *pType);
ハンドルに関連付けられたオブジェクトのデータを取得する:
UOI_RET UOI_GetObj(HANDLE handle, UOI_Object *pObj);
ページビットマップを取得する:
UOI_RET UOI_GetPageBmp(HANDLE hPage, RECT rect, void *pBuf);
オブジェクトを設定する:
UOI_RET UOI_SetObj(HANDLE handle, UOI_Object *pObj);
オブジェクトを挿入する:
UOI_RET UOI_Insert(HANDLE hParent, int nPos, UOI_Object *pObj, HANDLE *pHandle = NULL);
オブジェクトを削除する:
UOI_RET UOI_Delete(HANDLE handle);
検索問い合わせし、検索結果の数をpResultCountで、検索結果リストのハンドルをphResultに戻す:
UOI_RET UOI_Query(HANDLE hDocbase, const char *strCondition, HANDLE *phResult, int *pResultCount);
class UOI_Doc:public UOI_Object {
public:
UOI_MetaData m_MetaData;
int m_nPages;
UOI_Page **m_pPages;
int m_nFonts;
UOI_Font **m_pFonts;
UOI_Navigation m_Navigation;
UOI_Thread m_Thread;
UOI_MiniPage *m_pMiniPages;
UOI_Signature m_Signature;
int m_nShared;
UOI_Obj *m_pShared;
UOI_Doc();
virtual 〜UOI_Doc();
};
class UOI_Text:public UOI_Object {
public:
enum Encoding {
ENCODE_ASCII,
ENCODE_GB13000,
ENCODE_UNICODE,
......
};
Encoding m_Encoding;
char *m_pText;
Point m_Start;
int *m_CharSpace;
UOI_Text();
virtual 〜 UOI_Text();
};
class UOI_CharSize:public UOI_Object {
public:
int m_Width;
int m_Height;
UOI_CharSize();
virtual 〜UOI_CharSize();
};
ret = UOI_Open(f:\\data\\docbase1.sep,TRUE,&hDocBase);
HANDLE InsertNewObj(HANDLE hParent, int nPos, UOI_Object::Type type)
{
UOI_Ret ret;
HADNLE handle;
UOI_Obj *pNewObj = UOI_Obj::Create(type);
if(pNewObj == NULL)
return NULL;
ret = UOI_Insert(hParent,nPos,pNewObj, &handle);
delete pNewObj;
return ret.m_bSuccess ? handle: NULL;
}
UOI_Obj *GetObj(HANDLE handle)
{
UOI_Ret ret;
UOI_Object::Type type;
UOI_Obj *pObj;
ret=UOI_GetObjType(handle,&type);
if(!ret.m_bSuccess)
return NULL;
pObj=UOI_Obj::Create(type);
if(pObj==NULL)
return NULL;
ret=UOI_GetObj(handle,pObj);
if(!ret.m_bSuccess) {
delete pObj;
return NULL;
}
return pObj;
}
UOI_InsertDocset(pDocbase,0);
class UOI_DocBase:public UOI_Obj
{
public:
/*!
* \brief 文書ベースの作成
* \param szPath: 文書ベースのフルパス
* \param bOverride: 元のファイルをオーバーライトするかどうか
* \return UOI_DocBase オブジェクト
*/
BOOL Create(const char *szPath, bool bOverride = false);
/*!
* \brief 文書ベースのオープン
* \param szPath: 文書ベースのフルパス
* \return UOI_DocBase オブジェクト
*/
BOOL Open(const char *szPath);
/*!
* \brief 文書ベースのクローズ
* \param なし
* \return なし
*/
void Close();
/*!
* \brief ロールリストの取得
* \param なし
* \return UOI_RoleList オブジェクト
* \sa UOI_RoleList
*/
UOI_RoleList GetRoleList();
/*!
* \brief 文書ベースの記憶
* \param szPath: 記憶しようとする文書ベースのフルパス
* \return なし
*/
void Save(char *szPath = 0);
/*!
* \brief 文書セットの挿入
* \param nPos: 文書セットの挿入位置
* \return UOI_DocSet オブジェクト
* \sa UOI_DocSet
*/
UOI_DocSet InsertDocSet(int nPos);
/*!
* \brief 指定インデックスの文書セットの取得
* \param nIndex: 文書リストのインデックス番号
* \return UOI_DocSet オブジェクト
* \sa UOI_DocSet
*/
UOI_DocSet GetDocSet(int nIndex);
/*!
* \brief 文書セットの総数の取得
* \param なし
* \return 文書セットの数
*/
int GetDocSetCount();
/*!
* \brief 文書ベース名称の設定
* \param nLen: 文書ベース名称の長さ
* \param szName: 文書ベース名称
* \return なし
*/
void SetName(int nLen, const char* szName);
/*!
* \brief 文書ベース名称の長さの取得
* \param なし
* \return 長さ
*/
int GetNameLen();
/*!
* \brief 文書ベース名称の取得
* \param なし
* \return 文書ベース名称
*/
const char* GetName();
/*!
* \brief 文書ベースidの長さの取得
* \param なし
* \return 長さ
*/
int GetIDLen();
/*!
* \brief 文書ベースidの取得
* \param なし
* \return id
*/
const char* GetID();
//! コンストラクタ関数
UOI_DocBase();
//! デストラクタ関数
virtual 〜UOI_DocBase();
};
class UOI_Text : public UOI_Obj
{
public:
//! コンストラクタ関数
UOI_Text();
//! デストラクタ関数
virtual 〜UOI_Text();
//! テキストの符号化方式の列挙型を表す
enum UOI_TextEncoding
{
CHARSET_ASCII,
CHARSET_GB13000,
CHARSET_UNICODE,
};
//! テキストの符号化方式の取得
UOI_TextEncoding GetEncoding();
//! テキストの符号化方式の設定
void SetEncoding(UOI_TextEncoding nEncoding );
//! テキストのデータの取得
const char * GetTextData();
//! テキストのデータ長さの取得
int GetTextDataLen();
//! テキストのデータの設定
/*!
\param pData テキストデータ
\param nLen データ長さ
*/
void SetTextData(const char * pData, int nLen);
//! 起点位置の取得
Point GetStartPoint();
//! 起点位置の設定
void SetStartPoint(Point startPoint);
//! 文字間隔リストの大きさの取得
int GetCharSpacingCount();
//! 文字間隔リスト内の指定位置の文字間隔の取得
float GetCharSpacing(int nIndex);
//! 文字間隔リストの大きさの設定
bool SetCharSpacingCount(int nLen);
//! 文字間隔の設定
bool SetCharSpacing (int nIndex, float charSpace );
//! テキストの外枠の取得
UOI_Rect GetExtentArea() ;
};
class UOI_RoleList : public UOI_Obj
{
public:
//! リスト内のロール数の取得
int GetRoleCount();
//! 指定インデックスに従って、ロールを取得する
UOI_Role *GetRole(int nIndex);
//! ロールの作成
/*!
\param pPrivKey 秘密鍵のバッファー
\param pnKeyLen 戻される実際の秘密鍵の長さ
\return 新規作成のロール
*/
UOI_Role AddRole(unsigned char *pPrivKey, int *pnKeyLen);
//! コンストラクタ関数
UOI_RoleList();
//! デストラクタ関数
virtual 〜UOI_RoleList();
};
class UOI_Role : public UOI_Obj
{
public:
//! コンストラクタ関数
UOI_Role();
//! デストラクタ関数
virtual 〜UOI_Role();
//! ロールIDの取得
int GetRoleID();
//! ロールIDの設定
/*!
\param nID ロールID
*/
void SetRoleID(int nID);
//! ロール名称の取得
const char * GetRoleName();
//! ロール名称の設定
/*!
\param szName ロール名称
*/
void SetRoleName(const char *szName);
};
class UOI_PrivList : public UOI_Obj // 権限リスト
{
public:
//! 指定ロールに対応する権限の取得
UOI_RolePriv *GetRolePriv (UOI_Role *pRole);
//! あるロールの権限項目の新規作成
UOI_RolePriv *pPriv AddRole ();
//! リスト内のロールの権限項目数の取得
int GetRolePrivCount();
//! インデックス値に従って、ロールの権限項目を取得する
UOI_RolePriv *GetRolePriv (int nIndex);
//! コンストラクタ関数
UOI_PrivList();
//! デストラクタ関数
virtual 〜UOI_PrivList();
};
class UOI_RolePriv : public UOI_Obj // あるロールの全ての権限に対応する
{
public:
//! ロールの取得
UOI_Role *GetRole();
//!あるオブジェクトに対する権限を設定する。権限が該ロールの該オブジェクトに対する現在の権限を越える場合、権限付与になり、権限が該ロールの該オブジェクトに対する現在の権限より小さい場合、権限解除になる。現在ログインしたロールは相応の権限再付与又は権限解除の権限を持たなければならない。
bool SetPriv(UOI_Obj *pObj, UOI_Priv *pPriv);
//!設定された権限の数の取得
int GetPrivCount();
//! インデックス値に対応する権限が設定されたオブジェクトの取得
UOI_Obj *GetObj(int nIndex);
//! インデックス値に対応する権限で設定された権限の取得
UOI_Priv *GetPriv(int nIndex);
//! あるオブジェクトに対応する権限の取得
UOI_Priv *GetPriv(UOI_Obj *pObj);
//! コンストラクタ関数
UOI_RolePriv ();
//! デストラクタ関数
virtual 〜UOI_RolePriv ();
};
class UOI_Priv : public UOI_Obj
{
public:
enum PrivType { // 各権限類型の定義
PRIV_READ, // リード権限
PRIV_WRITE, // ライト権限
PRIV_RELICENSE, // 権限再付与の権限
PRIV_BEREAVE, // 権限解除の権限
PRIV_PRINT, // 印刷権限
他の権限の定義
}
//! 相応の権限の有無
bool GetPriv(PrivType privType);
//! 相応の権限の設定
void SetPriv(PrivType privType, bool bPriv);
//! コンストラクタ関数
UOI_Priv ();
//! デストラクタ関数
virtual 〜UOI_Priv ();
};
class UOI_SignList : public UOI_Obj
{
public:
//! コンストラクタ関数
UOI_SignList();
//! デストラクタ関数
virtual 〜UOI_SignList();
//! 新たなノード署名を追加し、そのインデックス値を戻す
int AddSign(UOI_Sign *pSign);
//! 指定のインデックス値に従って、ノード署名を取得する
UOI_Sign GetSign(int index);
//! 指定のインデックス値に従って、ノード署名を削除する
void DelSign(int index);
//! リスト内のノード署名の数の取得
int GetSignCount();
};
class UOI_Sign : public UOI_Obj
{
public:
//! コンストラクタ関数
UOI_Sign();
//! デストラクタ関数
virtual 〜UOI_Sign();
//! 署名の実行
/*!
\param pDepList 署名の依存リスト
\param pRole 署名するロール
\param pObj 署名されるオブジェクト
*/
void Sign(UOI_SignDepList pDepList, UOI_Role pRole , UOI_Obj pObj);
//! 署名の検証
bool Verify();
//! 署名の依存リストの取得
UOI_SignDepList GetDepList();
};
class UOI_SignDepList : public UOI_Obj
{
public:
//! コンストラクタ関数
UOI_SignDepList();
//! デストラクタ関数
virtual 〜UOI_SignDepList();
//! 依存項目の追加
void InsertSignDep(UOI_Sign *pSign);
//! 依存項目数の取得
int GetDepSignCount();
//! 指定のインデックス値に従って、依存項目を取得する
UOI_Sign *GetDepSign(int nIndex);
};
pDocBase.InsertDocset(0);
a)セッション識別子に基づいて、セッションが既に開始したかどうかを判断し、既に開始した場合、セキュリティセッションチャンネルの確立プロセスを終了し、開始していない場合、セキュリティセッションチャンネルの確立プロセスを継続する。
b)アプリケーションと文書ベースとのうちの一方はランダムPKI鍵ペアを生成する。
c)ランダムPKI鍵ペアの生成側は公開鍵を相手側に送信する。
d)相手側はセッション鍵としてランダム対称鍵を生成して、該公開鍵を用いてセッション鍵を暗号化してから、ランダムPKI鍵ペアの生成側に返信する。
e)ランダムPKI鍵ペアの生成側は秘密鍵を用いてセッション鍵を復号化する。
f)セッション識別子を設定する。
g)ログインロールリストをデフォルトロールに設定する。
a)アプリケーションは、ログインしようとするロールのIDと、ログイン先の文書ベースとを提供する。
b)身分認証手段は、セッションのログインロールリストを検査し、該ロールが既にログインした場合(デフォルトロールを含む)、本ステップが完成し、該ロールがログインしていない場合、本ステップを継続する。
c)該ロールの鍵がPKI鍵である場合、身分認証手段はロールオブジェクトに記憶されたロールの公開鍵を取り出し、該ロールの鍵がログインパスワードである場合、ステップh)を実行する。
d)身分認証手段はランダムデータブロックを生成し、該ロールの公開鍵を用いて該データブロックを暗号化する。
e)身分認証手段は、暗号化されたデータブロックをアプリケーションに送信する。
f)アプリケーションは該ロールの秘密鍵で復号化して、復号化されたデータを身分認証手段に送信する。
g)身分認証手段は、返信されたデータが正しいかどうかを判断し、正しくない場合、ログイン失敗になり、正しい場合、ステップi)を実行する。
h)アプリケーションがログインパスワードを提供し、身分認証手段は、ロールオブジェクトに記憶されたログインパスワードと、アプリケーションから提供されたログインパスワードとを比較し、正しい場合、ログイン成功になり、後続のステップを継続に実行し、正しくない場合、ログイン失敗になる。
i)セッションのログインロールリストに該ロールを追加する。
a)アプリケーションは新たなロールを作成するための指令を送信する。
b)ロール管理手段は一意のロールID番号を生成する。
c)該指令で要求された作成しようとするロールの鍵がPKI鍵である場合、ロール管理手段はランダムPKI鍵ペアを生成し、該指令で要求された作成しようとするロールの鍵がログインパスワードである場合、該ロールのログインパスワードは該指令により指定されたログインパスワードであり、又は、該ロールのログインパスワードはロール管理手段によりランダムに生成されてもよい。
e)ロール管理手段は文書ベースにおいてロールオブジェクトを作成し、ロールオブジェクトに上記ID番号と鍵(前記公開鍵又はログインパスワード)を記憶する。該ロールは、権限がヌルであり、即ち、いかなるオブジェクトに対してもいかなる権限も有しない。
f)ID番号と鍵(前記秘密鍵又はログインパスワード)をアプリケーションに返信する。
あるオブジェクトに対する権限設定について、最も簡単な実現方式は、各ロールの該オブジェクト(及びそのサブオブジェクト)に対する権限を簡単に記録して、且つ今後各ロールでのアクセス時に比較し、権限に適合する場合、相応の操作を許し、権限に適合しない場合、エラー情報を報告して戻すことを含む。更に好ましい実現方式は、相応のデータを暗号化して、鍵で権限を制御することを含む。該ロールには相応の鍵がなければ対応の権限もない。このような方式は攻撃耐性が更に強い。
a)アプリケーションは権利付与の要求を送信する。
b)ロール管理手段は、ログインロールリスト内の全てのロールの、オブジェクトOに対する権限の和集合を算出し、この和集合が権限Pのスーパーセット(superset)であり且つ権限再付与の権限を含むということが成立するかどうかを判断する。成立しない場合、権限付与失敗になる(この時、全てのロールの権限においても、権限付与に必要な権限が含まれない)。成立する場合、プロセスを継続する。
c)ロール管理手段は、オブジェクトOに対する権限PをロールRの権限リストに追加する。権限Pにはリード又はライトの権限が含まれない場合、権限付与が完成し、権限Pにはリード又はライトの権限が含まれる場合、プロセスを継続する。
d)アクセス制御手段は、オブジェクトOに対してリード/ライトのアクセス制御権限が既に設定されたかどうかを検査する。設定されていない場合、以下のようなステップを実行する。
i.ランダム対称鍵とランダムPKI鍵を生成する。
ii.対称鍵を用いてオブジェクトOを暗号化する。オブジェクトOのあるサブオブジェクトに対してリード/ライトのアクセス制御権限が既に設定された場合、該サブオブジェクトは変更されない。
保護されたデータ領域(通常はサブツリーであり、あるオブジェクト及びその全てのサブオブジェクトに対応する)に対応するPKI鍵ペアがあり、そのうちの暗号化鍵を用いてこのデータ領域を暗号化する。
iii.PKI暗号化鍵を用いて対称鍵を暗号化して、得られた暗号文を記憶し、オブジェクトOに対して署名を行う。
iv.文書ベース内の全てのロールを検査し、オブジェクトOに対してリード権限を有するロールでさえあれば(この時、オブジェクトOは、該ロールがリード権限を有するあるオブジェクトのサブオブジェクトである)、該ロールの公開鍵を用いて復号化鍵を暗号化して、得られた暗号文を該ロールの権限リストに記憶する。オブジェクトOに対してライト権限を有するロールでさえあれば(この時、オブジェクトOは、該ロールがライト権限を有するあるオブジェクトのサブオブジェクトである)、該ロールの公開鍵を用いて暗号化鍵を暗号化して、得られた暗号文を該ロールの権限リストに記憶する。
v.ステップhを実行する。
e)現在ログインしたロールから、オブジェクトOに対して相応の権限を有するロールを選択する。
f)該ロールの権限リスト内のオブジェクトOの対応の鍵(リード権限が復号化鍵に対応し、ライト権限が暗号化鍵に対応し、リード/ライト権限がその2つの鍵に対応する)の暗号文を取り出し、該ロールの鍵がPKI鍵である場合、該暗号文をアプリケーションに送信して、ステップg)に進み、該ロールの鍵がログインパスワードである場合、アクセス制御手段は該暗号文を復号化してから、ステップh)に進む。
リード権限のあるロールに復号化鍵を与え、該ロールはこの鍵を用いて該データ領域を復号化して、これらのデータを正確に読み取ることができる。ライト権限のあるロールに暗号化鍵を与え、該ロールはこの鍵を用いて修正後のデータを暗号化して、該領域のデータを正確に書き込むことができる。
g)アプリケーションは該ロールの秘密鍵を用いて鍵を復号化して、アクセス制御手段に返信する。
h)アクセス制御手段は権限Pの設定に基づいて、相応の鍵を暗号化し、対応の暗号文を生成して、ロールRの権限リストに記憶する。
あるロールに暗号化鍵又は復号化鍵を与える場合、このロールの公開鍵を用いて該暗号化鍵又は復号化鍵を暗号化してから記憶するようにしてよい。これにより、該ロールの秘密鍵を持たなければ、該暗号化鍵又は復号化鍵を取り出すことができない。
PKIの暗号化・復号化の効率が比較的に低いため、運行効率を向上させるように、対称鍵を利用して該データ領域を暗号化してもよい。暗号化鍵でこの対称鍵を暗号化し、暗号化された鍵データを復号化鍵で復号化することで、正確な対称鍵を取得する。リード権限だけあるロールが対称鍵を取得した後にそれを利用してデータを修正することを防止するために、暗号化鍵を用いて該データ領域に対してデジタル署名を行うようにしてよい。ライト権限のあるロールが該データ領域を修正するたびに改めて署名を行うことによって、データがライト権限のないロールに改竄されないことを確保する。
a)アプリケーションは権限解除の要求を送信する。
b)ロール管理手段は、ログインロールリスト内の全てのロールから、オブジェクトOに対して権限解除の権限を有するロールを検索し、権限解除の権限を有するロールがない場合、権限解除失敗になり、権限解除の権限を有するロールがある場合、プロセスを継続する。
c)ロールRのオブジェクトOに対する権限から権限Pを除去する。
d)権限Pにはリード又はライト権限が含まれる場合、オブジェクトOに対応する復号化鍵及び/又は暗号化鍵をロールRの権限リストから削除する。
a)アプリケーションはオブジェクトOを読み取るための操作指令を送信する。
b)アクセス制御手段はログインロールリスト内の全てのロールのオブジェクトOに対する権限を検査して、オブジェクトOへのリード権限を有するロールが少なくとも1つあるかどうかを確認する。1つもない場合、失敗になり、少なくとも1つある場合、プロセスを継続する。
c)オブジェクトOに対してリード/ライトのアクセス制御権限が既に設定されたかどうかを検査し、設定されていない場合、その親オブジェクトを検査し、親オブジェクトに対しても設定されていない場合、リード/ライトアクセス制御権限が設定されたオブジェクトを見つけるまで、該親オブジェクトの親オブジェクトを更に検査する。
d)該オブジェクトに対してリード権限を有するロールを1つ選択する。
e)該ロールの権限リストに記憶された該オブジェクトの復号化鍵の暗号文を取り出し、該ロールの鍵がPKI鍵である場合、該暗号文をアプリケーションに送信してステップf)に進み、該ロールの鍵がログインパスワードである場合、アクセス制御手段は該暗号文を復号化してステップg)に進む。
f)アプリケーションは該ロールの秘密鍵を用いて復号化鍵を復号化して、アクセス制御手段に返信する。
g)アクセス制御手段は該復号化鍵を用いて該オブジェクトの対称鍵を復号化する。
h)該対称鍵を用いてオブジェクトOのデータを復号化する。
i)復号化されたデータをアプリケーションに返信する。
a)アプリケーションはオブジェクトOを修正するための操作指令を送信する。
b)アクセス制御手段はログインロールリスト内の全てのロールのオブジェクトOに対する権限を検査し、オブジェクトOへのライト権限を有するロールが少なくとも1つあるかどうかを確認する。1つもない場合、失敗になり、少なくとも1つある場合、プロセスを継続する。
c)オブジェクトOに対してリード/ライトのアクセス制御権限が既に設定されたかどうかを検査し、設定されていない場合、その親オブジェクトを検査し、親オブジェクトに対しても設定されていない場合、リード/ライトアクセス制御権限が設定されたオブジェクトO1を見つけるまで、該親オブジェクトの親オブジェクトを更に検査する。
d)オブジェクトO1に対してライト権限を有するロールを1つ選択する。
e)該ロールの権限リストに記憶されたオブジェクトO1の暗号化鍵の暗号文を取り出し、該ロールの鍵がPKI鍵である場合、該暗号文をアプリケーションに送信してステップf)に進み、該ロールの鍵がログインパスワードである場合、アクセス制御手段は該暗号文を復号化してステップg)に進む。
f)アプリケーションは該ロールの秘密鍵を用いてオブジェクトO1の暗号化鍵を復号化して、アクセス制御手段に返信する。
g)該暗号化鍵をを用いてオブジェクトOの新たなデータを暗号化する(オブジェクトOのあるサブオブジェクトに対してリード/ライトアクセス制御権限が既に設定された場合、依然としてその鍵を用いて該サブオブジェクトを暗号化する)。
h)暗号化されたデータで元のデータをオーバーライトし、書き込むプロセスを完成する。
a)アプリケーションはオブジェクトOに対して署名を行うための指令を送信する。
b)アクセス制御手段はオブジェクトOのデータに対して正規化を行う。
あるオブジェクトに対して署名を行うことは、即ちその対応ノードから始めるサブツリーに対して署名を行うことである。具体的な物理記憶方式による影響を署名に及ぼさないために、予め正規化を行うことにより、論理的に等価な変化(例えば、記憶位置の変化が相応ポインタの変化につながる)が署名の有効性を影響しないようにする必要がある。正規化の方法は上述した通りである。
c)正規化結果のHASH値を算出する。
d)HASH値をアプリケーションに送信する。
e)ログインロールリスト内のロール鍵がPKI鍵である全てのロールに対して、アプリケーションは前記ロールの秘密鍵を用いて該HASH値を暗号化(即ち署名)する。
f)アプリケーションは署名結果をアクセス制御手段に返信する。
g)アクセス制御手段は署名結果をデジタル署名オブジェクトに記憶する。
a)アプリケーションはあるログインロールをログアウトするための指令を送信する。
b)ログインロールリストに該ロールが存在している場合、セキュリティセッションチャンネル手段はログインロールリストから該ロールを除去する。
a)アプリケーションと文書ベースシステムのうちの一方はセッション終了要求を送信する。
b)セキュリティセッションチャンネル手段は現在のセッションに関連する全てのスレッドを終了し、セッション識別子を削除し、ログインロールリストを削除する。
class UOI_RoleList : public UOI_Obj
{
public:
//! リスト内のロール数の取得
int GetRoleCount();
//! 指定のインデックスに従って、ロールを取得する
UOI_Role *GetRole(int nIndex);
//! ロールの作成
/*!
\param pPrivKey 秘密鍵のバッファー
\param pnKeyLen 戻される実際の秘密鍵の長さ
\return 新規作成のロール
*/
UOI_Role AddRole(unsigned char *pPrivKey, int *pnKeyLen);
//! コンストラクタ関数
UOI_RoleList();
//! デストラクタ関数
virtual 〜UOI_RoleList();
};
class UOI_Role : public UOI_Obj
{
public:
//! コンストラクタ関数
UOI_Role();
//! デストラクタ関数
virtual 〜UOI_Role();
//! ロールIDの取得
int GetRoleID();
//! ロールIDの設定
/*!
\param nID ロールID
*/
void SetRoleID(int nID);
//! ロール名称の取得
const char * GetRoleName();
//! ロール名称の設定
/*!
\param szName ロール名称
*/
void SetRoleName(const char *szName);
};
class UOI_PrivList : public UOI_Obj // 権限リスト
{
public:
//! 指定ロールに対応する権限の取得
UOI_RolePriv *GetRolePriv (UOI_Role *pRole);
//! あるロールの権限項目の新規作成
UOI_RolePriv *pPriv AddRole ();
//! リスト内のロールの権限項目数の取得
int GetRolePrivCount();
//! インデックス値に従って、ロールの権限項目を取得する
UOI_RolePriv *GetRolePriv (int nIndex);
//! コンストラクタ関数
UOI_PrivList();
//! デストラクタ関数
virtual 〜UOI_PrivList();
};
class UOI_RolePriv : public UOI_Obj // あるロールの全ての権限に対応する
{
public:
//! ロールの取得
UOI_Role *GetRole();
//!あるオブジェクトに対する権限を設定する。権限が該ロールの該オブジェクトに対する現在の権限を越える場合、権限付与になり、権限が該ロールの該オブジェクトに対する現在の権限より小さい場合、権限解除になる。現在ログインしたロールは相応の権限再付与又は権限解除の権限を持たなければならない。
bool SetPriv(UOI_Obj *pObj, UOI_Priv *pPriv);
//!設定された権限の数の取得
int GetPrivCount();
//! インデックス値に対応する権限が設定されたオブジェクトの取得
UOI_Obj *GetObj(int nIndex);
//! インデックス値に対応する権限で設定された権限の取得
UOI_Priv *GetPriv(int nIndex);
//! あるオブジェクトに対応する権限の取得
UOI_Priv *GetPriv(UOI_Obj *pObj);
//! コンストラクタ関数
UOI_RolePriv ();
//! デストラクタ関数
virtual 〜UOI_RolePriv ();
};
class UOI_Priv : public UOI_Obj
{
public:
enum PrivType { // 各権限類型の定義
PRIV_READ, // リード権限
PRIV_WRITE, // ライト権限
PRIV_RELICENSE, // 権限再付与の権限
PRIV_BEREAVE, // 権限解除の権限
PRIV_PRINT, // 印刷権限
他の権限の定義
}
//! 相応の権限の有無
bool GetPriv(PrivType privType);
//! 相応の権限の設定
void SetPriv(PrivType privType, bool bPriv);
//! コンストラクタ関数
UOI_Priv ();
//! デストラクタ関数
virtual 〜UOI_Priv ();
};
class UOI_SignList : public UOI_Obj
{
public:
//! コンストラクタ関数
UOI_SignList();
//! デストラクタ関数
virtual 〜UOI_SignList();
//! 新たなノード署名を追加し、そのインデックス値を戻す
int AddSign(UOI_Sign *pSign);
//! 指定のインデックス値に従って、ノード署名を取得する
UOI_Sign GetSign(int index);
//! 指定のインデックス値に従って、ノード署名を削除する
void DelSign(int index);
//! リスト内のノード署名の数の取得
int GetSignCount();
};
class UOI_Sign : public UOI_Obj
{
public:
//! コンストラクタ関数
UOI_Sign();
//! デストラクタ関数
virtual 〜UOI_Sign();
//! 署名の実行
/*!
\param pDepList 署名の依存リスト
\param pRole 署名するロール
\param pObj 署名されるオブジェクト
*/
void Sign(UOI_SignDepList pDepList, UOI_Role pRole , UOI_Obj pObj);
//! 署名の検証
bool Verify();
//! 署名の依存リストの取得
UOI_SignDepList GetDepList();
};
class UOI_SignDepList : public UOI_Obj
{
public:
//! コンストラクタ関数
UOI_SignDepList();
//! デストラクタ関数
virtual 〜UOI_SignDepList();
//! 依存項目の追加
void InsertSignDep(UOI_Sign *pSign);
//! 依存項目数の取得
int GetDepSignCount();
//! 指定のインデックス値に従って、依存項目を取得する
UOI_Sign *GetDepSign(int nIndex);
};
1.アプリケーションは、文書を初めて処理するとき、1層を新規作成し、新たな編集内容に対応するレイアウトオブジェクトを新規作成の層に挿入するとともに、自分のフォーマットで新たな編集内容(即ちソースファイル)を別途記憶する。
2.文書オブジェクトのサブオブジェクトとしてソースファイルオブジェクトを新規作成する。該ソースファイルオブジェクトは、ソースファイルを組み込み(例えば、2値化データの方式で全体組み込む)、どの層が該ソースファイルオブジェクトに対応するかを記録することに用いられる。
3.同じアプリケーションを用いて該文書を再度編集するとき、対応のソースファイルオブジェクトから対応のソースファイルを取り出す。
4.該ソースファイルを使用して該層の内容を引き続き編集する。このソースファイルのフォーマットが該アプリケーション自分のフォーマットであるため、該アプリケーション自分の機能によって該層の内容を引き続き編集できる。
5.再度編集が終了した後、新たに編集後の結果によって該層の内容を更新する(例えば、全部消去後改めて生成する方式で)とともに、新たに修正後のソースファイルを改めて文書オブジェクトに組み込む。
6.このように繰り返して、元のアプリケーションを用いて元の方式で文書の既存内容を編集できる。
1.いかなる文書について、いかなるアプリケーションでも、正確にオープン・表示・印刷できる。
2.いかなる文書について、いかなるアプリケーションでも、いかなる内容を追加でき、且つ文書の既存署名が破壊されない。
3.いかなる文書について、文書の既存署名を考慮する必要がない(署名なし、又は署名あるが破壊を許す)前提で、いかなるアプリケーションでも、文書の既存内容に対してレイアウトレベルの編集を行うことができる。
4.いかなる文書について、文書の既存内容の元の編集アプリケーションで、この内容を正常に編集できる。
Claims (43)
- 文書データセキュリティ管理方法であって、
汎用文書モデルに適合する文書又は文書ベースを管理する文書ベースシステムに応用され、
前記文書ベース又は文書のロールを作成する過程と、
前記ロールに権限を配分する過程と、
ロールで前記文書又は文書ベースにログインする過程と、
前記文書ベースシステムを介して前記文書又は文書ベースにアクセスする際、ログインしたロールの権限を検査する過程と、
を含むことを特徴とする方法。 - 前記文書ベース又は文書のロールを作成する過程は、アプリケーションが前記文書ベースシステムを介して文書又は文書ベースのロールを作成する過程を含み、
前記ロールで前記文書又は文書ベースにログインする過程は、アプリケーションが前記文書ベースシステムを介して前記文書又は文書ベースにログインする過程を含むことを特徴とする請求項1に記載の方法。 - アプリケーションが文書又は文書ベースにログインする前に、該アプリケーションと該文書ベースシステムとの間でセキュリティセッションを確立する過程をさらに含むことを特徴とする請求項2に記載の方法。
- 前記該アプリケーションと該文書ベースシステムとの間でセキュリティセッションを確立する過程が、
該アプリケーションと該文書ベースシステムのうちの一方が、公開鍵と秘密鍵とを含むランダムのPKI鍵ペアを生成し、該公開鍵を相手側に送信する過程と、
公開鍵の受信側が、セッション鍵としてランダムの対称鍵を生成し、該公開鍵を用いて該セッション鍵を暗号化して、相手側に返信する過程と、
暗号化して返信されたセッション鍵の受信側が、前記PKI鍵ペアの秘密鍵で復号化して、セッション鍵を得る過程と、
を含むことを特徴とする請求項3に記載の方法。 - 前記ロールに権限を配分する過程が、
前記汎用文書モデルにおける一部又は全部のオブジェクトに対する権限をロールに配分する過程を含むことを特徴とする請求項1に記載の方法。 - 前記汎用文書モデルにおける一部又は全部のオブジェクトが、文書ベースオブジェクト、文書セットオブジェクト、文書オブジェクト、ページオブジェクト、層オブジェクト、オブジェクトグループ、及びレイアウトオブジェクトのいずれか1つ又は任意の組合せを含むことを特徴とする請求項5に記載の方法。
- 前記ロールに権限を配分する過程が、
アプリケーションが、目標オブジェクトに対して目標ロールに目標権限を配分することを要求するための権限付与要求を送信する過程と、
該アプリケーションの全てのログインしたロールの、該目標オブジェクトに対する権限の和集合を計算し、該和集合が該目標権限のスーパーセットであり且つ権限再付与の権限を含む場合、該目標権限を該目標ロールの権限に追加する過程と、
を含むことを特徴とする請求項5に記載の方法。 - 該目標権限を該目標ロールの権限に追加した後に、該目標権限にリード権限が含まれる場合、目標オブジェクトを暗号化方式で記憶し、その復号化鍵を目標ロールに記憶する過程をさらに含むことを特徴とする請求項7に記載の方法。
- 該目標権限を該目標ロールの権限に追加した後に、該目標権限にライト権限が含まれる場合、目標オブジェクトを暗号化方式で記憶し、その暗号化鍵を目標ロールに記憶する過程をさらに含むことを特徴とする請求項7に記載の方法。
- 前記復号化鍵を目標ロールに記憶する過程が、ロールに対応する鍵を用いて該復号化鍵を暗号化して、得られた該復号化鍵の暗号文を記憶する過程を含むことを特徴とする請求項8に記載の方法。
- 前記暗号化鍵を目標ロールに記憶する過程が、ロールに対応する鍵を用いて該暗号化鍵を暗号化して、得られた該暗号化鍵の暗号文を記憶する過程を含むことを特徴とする請求項9に記載の方法。
- 前記目標オブジェクトを暗号化方式で記憶する過程が、
ランダムの対称鍵とランダムのPKI鍵ペアを生成する過程と、
該対称鍵を用いて該目標オブジェクトを暗号化する過程と、
該PKI鍵ペアの暗号化鍵を用いて該対称鍵を暗号化して、得られた該対称鍵の暗号文を記憶し、該目標オブジェクトに対して署名を行う過程と、
を含むことを特徴とする請求項8〜11のいずれか1項に記載の方法。 - 文書ベース又は文書を作成する際に、該文書ベースオブジェクト又は文書オブジェクト自身、及びその全てのサブオブジェクトに対する全ての権限を有するデフォルトロールを自動的に作成する過程をさらに含むことを特徴とする請求項1に記載の方法。
- 前記権限が、リード権限、ライト権限、権限再付与の権限、及び権限解除の権限のうち1つ又は複数の任意の組合せを含むことを特徴とする請求項5〜13のいずれか1項に記載の方法。
- 前記文書ベース又は文書のロールを作成する過程が、
アプリケーションが、目標文書ベースオブジェクト又は文書オブジェクトの新たなロールの作成を要求する過程と、
文書ベースシステムが、該新たなロールのロールオブジェクトを作成する過程と、
を含むことを特徴とする請求項1に記載の方法。 - 前記文書ベースシステムが、該新たなロールのロールオブジェクトを作成する過程が、
一意のロールID番号と一意のロール鍵を生成し、文書ベースシステムを介して該新たなロールのロールオブジェクトを作成し、該ロールオブジェクトに前記ロールID番号とロール鍵を記憶し、該ロールオブジェクトのロールID番号とロール鍵をアプリケーションに返信する過程を含むことを特徴とする請求項15に記載の方法。 - 該新規作成のロールの権限を、いかなるオブジェクトに対しても権限がないように設定することを特徴とする請求項16に記載の方法。
- 前記ロールで文書又は文書ベースにログインする過程が、
アプリケーションが、ログインしようとするロールのID番号を提供する過程と、
文書ベースシステムが、該ロールのロールオブジェクトに記憶された鍵を用いて、該ロールに対して身分認証を行う過程と、
身分認証が通過した場合、ログイン成功になる過程と、
を含むことを特徴とする請求項16に記載の方法。 - 前記ロールオブジェクトに記憶された鍵が、ランダムに生成したPKI公開鍵であり、前記該ロールのロールオブジェクトに記憶された鍵を用いて、該ロールに対して身分認証を行う過程が、「挑戦/応答」の方式でロールに対して身分認証を行う過程を含み、又は、
前記ロールオブジェクトに記憶された鍵がログインパスワードであり、前記該ロールのロールオブジェクトに記憶された鍵を用いて、ロールに対して身分認証を行う過程が、該ロールのロールオブジェクトに記憶されたログインパスワードと、アプリケーションによって提供されたログインパスワードとが一致するかどうかを比較する過程を含む、
ことを特徴とする請求項18に記載の方法。 - ロールの目標オブジェクトに対する権限を解除する過程をさらに含むことを特徴とする請求項1に記載の方法。
- 前記ロールの目標オブジェクトに対する権限を解除する過程が、
アプリケーションが、目標ロールの目標オブジェクトに対する目標権限の解除を要求するための権限解除要求を送信する過程と、
該アプリケーションの全てのログインしたロールから、該目標オブジェクトに対して権限解除の権限を有するロールを検索する過程と、
目標ロールの該目標オブジェクトに対する権限から該目標権限を削除する過程と、
を含むことを特徴とする請求項20に記載の方法。 - 前記目標ロールの該目標オブジェクトに対する権限から該目標権限を削除する過程が、該目標権限にリード及び/又はライト権限が含まれる場合、該目標オブジェクトに対する目標権限に対応する復号化鍵及び/又は暗号化鍵を、目標ロールの権限から削除する過程をさらに含むことを特徴とする請求項21に記載の方法。
- 前記文書又は文書ベースにアクセスすることが、該文書又は文書ベース内のオブジェクトの読み取りである場合、前記アクセスが、
アプリケーションが、目標オブジェクトの読み取りを要求するためのオブジェクト読み取り指令を送信する過程と、
該アプリケーションの全てのログインしたロールの、該目標オブジェクトに対する権限を検査し、少なくとも1つのロールが該目標オブジェクトに対してリード権限を有する場合、
該目標オブジェクトに対してリード/ライトのアクセス制御権限が既に設定されたかどうかを検査し、設定されていないとき、ステップ12)を実行し、設定されたとき、ステップ13)を実行するステップ11)と、
該目標オブジェクトの各親オブジェクトから、リード/ライトのアクセス制御権限が既に設定されたオブジェクトを検索するステップ12)と、
リード/ライトのアクセス制御権限が既に設定された該オブジェクトに対してリード権限を有するロールを選択し、選択されたロールの権限に記憶された該オブジェクトの復号化鍵の暗号文をアプリケーションに送信するステップ13)と、
アプリケーションが、選択されたロールの秘密鍵で復号化して、復号化鍵を得て返信するステップ14)と、
返信された該復号化鍵で復号化して、リード/ライトのアクセス制御権限が既に設定された該オブジェクトの対称鍵を得、該対称鍵で復号化して、リード/ライトのアクセス制御権限が既に設定された該オブジェクトのデータを得、復号化されたデータをアプリケーションに返信するステップ15)とを実行する過程と、
を含むことを特徴とする請求項1に記載の方法。 - 前記文書又は文書ベースにアクセスすることが、文書又は文書ベース内のオブジェクトの書き込みである場合、該アクセスが、
アプリケーションが、目標オブジェクトの書き込みを要求するためのオブジェクト修正指令を送信する過程と、
該アプリケーションの全てのログインしたロールの、該目標オブジェクトに対する権限を検査し、少なくとも1つのロールが該目標オブジェクトに対してライト権限を有する場合、
該目標オブジェクトに対して、リード/ライトのアクセス制御権限が既に設定されたかどうかを検査し、設定されていないとき、ステップ22)を実行し、設定されたとき、ステップ23)を実行するステップ21)と、
該目標オブジェクトの各親オブジェクトから、リード/ライトのアクセス制御権限が既に設定されたオブジェクトを検索するステップ22)と、
リード/ライトのアクセス制御権限が既に設定された該オブジェクトに対してライト権限を有するロールを選択し、選択されたロールの権限に記憶された該オブジェクトの暗号化鍵の暗号文をアプリケーションに送信するステップ23)と、
アプリケーションが、選択されたロールの秘密鍵で復号化して、暗号化鍵を得て返信するステップ24)と、
返信された該暗号化鍵で暗号化して、リード/ライトのアクセス制御権限が既に設定された該オブジェクトの新たなデータを得、暗号化された該新たなデータで元のデータをオーバーライトするステップ25)とを実行する過程と、
を含むことを特徴とする請求項1に記載の方法。 - 文書又は文書ベース内のオブジェクトに対してデジタル署名を行う過程をさらに含むことを特徴とする請求項1に記載の方法。
- 前記オブジェクトに対してデジタル署名を行う過程が、
該オブジェクトに対して正規化を行い、正規化結果のHASH値を算出して、HASH値をアプリケーションに送信する過程と、
アプリケーションが全てのログインしたロールの秘密鍵を用いて該HASH値を暗号化し、署名結果を返信する過程と、
を含むことを特徴とする請求項25に記載の方法。 - 前記オブジェクト自身及びその各サブオブジェクトがサブツリーに対応し、
前記正規化が、所定の走査順序に従って、該サブツリーの各ノードの正規化結果を算出して結合し、該オブジェクトの正規化結果を得る過程を含むことを特徴とする請求項26に記載の方法。 - 正規化方法であって、
ツリー構造に対して正規化を行うことに用いられ、
所定の走査順序に従って、該ツリー構造の各ノードの正規化結果を算出して結合し、該ツリー構造の正規化結果を得る過程を含むことを特徴とする方法。 - 前記走査が深さ優先走査又は幅優先走査を含むことを特徴とする請求項28に記載の方法。
- ツリー構造において、あるノードが他のノードを引用した場合、引用されたノードを該引用ノードのサブノードとして、正規化結果を算出するための走査に参加させる過程をさらに含むことを特徴とする請求項28に記載の方法。
- 前記各ノードの正規化結果を算出する過程が、
該ノードのサブノード数、類型、及び各属性の、元の値又は変換値を、所定の順序に従って結合して、結合結果の元の値又は変換値を該ノードの正規化結果とする過程を含むことを特徴とする請求項28に記載の方法。 - 前記各ノードの正規化結果を算出する過程が、
該ノードのサブノード数、類型、及び各属性の、元の値又は変換値、並びに、サブノード数、類型、及び各属性の、長さの元の値又は変換値のいずれか1つ又は任意の組合せを、所定の順序に従って結合して、結合結果の元の値又は変換値を該ノードの正規化結果とする過程を含むことを特徴とする請求項31に記載の方法。 - 前記結合が、直接の結合又はセパレーターでの結合を含むことを特徴とする請求項31又は32に記載の方法。
- 前記変換値がHASH値を含むことを特徴とする請求項31又は32に記載の方法。
- 文書ベースシステムであって、
汎用文書モデルに適合する文書又は文書ベースへのセキュリティ管理に用いられ、
前記文書又は文書ベースのロールを作成し、前記ロールに権限を配分するロール管理手段と、
ロールが前記文書又は文書ベースにログインする際、前記ロール管理手段を介して該ロールの身分を認証する身分認証手段と、
該文書又は文書ベースにアクセスする際、前記ロール管理手段と身分認証手段を介して、ログインしたロールの権限を検査するアクセス制御手段と、
を含むことを特徴とするシステム。 - アプリケーションと自身だけで持たれるランダムに生成されたセッション鍵を用いて、アプリケーションとの間のセキュリティセッションを確立するセキュリティセッションチャンネル手段をさらに含むことを特徴とする請求項35に記載のシステム。
- 前記ロール管理手段が、さらに、既にロールに付与した権限を解除することを特徴とする請求項35に記載のシステム。
- 前記ロール管理手段が、さらに、前記汎用文書モデルにおける一部又は全部のオブジェクトに対する権限をロールに配分することを特徴とする請求項35に記載のシステム。
- 前記汎用文書モデルにおける一部又は全部のオブジェクトが、文書ベースオブジェクト、文書セットオブジェクト、文書オブジェクト、ページオブジェクト、層オブジェクト、オブジェクトグループ、及びレイアウトオブジェクトのいずれか1つ又は任意の組合せを含むことを特徴とする請求項38に記載のシステム。
- 文書又は文書ベース内のオブジェクトを読み取る際、
前記アクセス制御手段が、さらに、全てのログインしたロールの、該オブジェクトに対する権限を検査し、少なくとも1つのロールが該オブジェクトに対してリード権限を有する場合、該オブジェクトの復号化鍵を取得し、該復号化鍵を用いて該オブジェクトのデータを復号化することを特徴とする請求項35に記載のシステム。 - 文書又は文書ベース内のオブジェクトを書き込む際、
前記アクセス制御手段が、さらに、全てのログインしたロールの、該オブジェクトに対する権限を検査し、少なくとも1つのロールが該オブジェクトに対してライト権限を有する場合、該オブジェクトの暗号化鍵を取得し、該暗号化鍵で暗号化して得られた新たなデータで元のデータをオーバーライトすることを特徴とする請求項35に記載のシステム。 - 前記アクセス制御手段が、さらに、文書ベースオブジェクト又は文書オブジェクトに対して正規化を行い、正規化結果のHASH値を算出し、ログインしたロールの秘密鍵を前記ロール管理手段から取り出し、得られたHASH値を該秘密鍵で暗号化して、署名結果を得ることを特徴とする請求項35に記載のシステム。
- 文書データセキュリティ管理システムであって、
文書のセキュリティ管理に用いられ、
前記文書のロールを作成し、文書オブジェクト、ページオブジェクト、又はページオブジェクトのサブオブジェクトに対する権限を前記ロールに配分するロール管理手段と、
ロールが前記文書にログインする際、前記ロール管理手段を介して該ロールの身分を認証する身分認証手段と、
文書にアクセスする際、前記ロール管理手段と身分認証手段を介して、ログインしたロールの権限を検査するアクセス制御手段と、
を含むことを特徴とするシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101266836A CN100547590C (zh) | 2005-12-05 | 2005-12-05 | 文档处理系统 |
CN2005101310716A CN1979511B (zh) | 2005-12-09 | 2005-12-09 | 一种文档数据安全管理系统和方法 |
PCT/CN2006/003294 WO2007065354A1 (fr) | 2005-12-05 | 2006-12-05 | Procede et systeme de gestion de la securite des donnees d'un document |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009519511A true JP2009519511A (ja) | 2009-05-14 |
JP2009519511A5 JP2009519511A5 (ja) | 2010-01-21 |
Family
ID=38122483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008543635A Pending JP2009519511A (ja) | 2005-12-05 | 2006-12-05 | 文書データセキュリティ管理方法及びそのシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20090320141A1 (ja) |
EP (1) | EP1965327A4 (ja) |
JP (1) | JP2009519511A (ja) |
WO (1) | WO2007065354A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009054089A (ja) * | 2007-08-29 | 2009-03-12 | Hitachi Ltd | 計算機システム及び書類へのアクセス制御方法 |
JP2015526049A (ja) * | 2012-08-15 | 2015-09-07 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | キーローテーション情報を有するメタデータツリー |
US9588909B2 (en) | 2013-12-19 | 2017-03-07 | International Business Machines Corporation | Information processing technique to manage security attributes of data generated in different modes |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539922A (zh) * | 2008-03-18 | 2009-09-23 | 北京书生国际信息技术有限公司 | 一种文档库系统的权限实现方法 |
CN102122333B (zh) * | 2011-03-21 | 2015-01-07 | 北京书生国际信息技术有限公司 | 一种登录文档库系统的方法 |
WO2007065356A1 (fr) * | 2005-12-05 | 2007-06-14 | Beijing Sursen Co., Ltd | Procede de traitement documentaire |
CN101512523A (zh) * | 2006-09-12 | 2009-08-19 | 国际商业机器公司 | 把内容动态上下文相关地集成到门户网站应用程序中的系统和方法 |
CN101510238B (zh) * | 2008-02-15 | 2011-12-28 | 北京书生国际信息技术有限公司 | 一种文档库安全访问方法及系统 |
CN101783787A (zh) * | 2009-01-16 | 2010-07-21 | 北京书生国际信息技术有限公司 | 客户端/服务器模式的非结构化数据处理系统及方法 |
CN102447689B (zh) * | 2010-09-30 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 一种消息的更新提示方法以及网络客户端 |
EP2450818B1 (en) | 2010-11-08 | 2019-06-12 | ABB Research Ltd. | Method for setting up an access level for use of a software system, and computer program products and processor devices therefor |
US10110380B2 (en) * | 2011-03-28 | 2018-10-23 | Nxp B.V. | Secure dynamic on chip key programming |
KR101963787B1 (ko) * | 2012-07-09 | 2019-03-29 | 삼성전자주식회사 | 휴대 단말기의 부가 기능 운용 방법 및 장치 |
US20150227472A1 (en) * | 2014-02-10 | 2015-08-13 | Kabushiki Kaisha Toshiba | Memory system, controller, and method |
CN110019994A (zh) | 2017-11-13 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据加密、解密及查询方法、数据加密解密及查询装置 |
US11216417B2 (en) * | 2019-12-09 | 2022-01-04 | Open Text Holdings, Inc. | Systems and methods for scaling beyond maximum number of unique object identifiers in single content repository |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08292952A (ja) * | 1995-04-20 | 1996-11-05 | Fuji Xerox Co Ltd | 文書処理装置 |
JP2002099528A (ja) * | 2000-09-21 | 2002-04-05 | Canon Inc | 情報処理装置及びその方法、コンピュータ可読メモリ |
JP2004151868A (ja) * | 2002-10-29 | 2004-05-27 | Canon Inc | 電子バインダ装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2005A (en) * | 1841-03-16 | Improvement in the manner of constructing molds for casting butt-hinges | ||
US1504925A (en) * | 1923-01-23 | 1924-08-12 | Antonio Paul | Drawer |
US1488111A (en) * | 1923-10-01 | 1924-03-25 | Bartholomew J Goehringer | Tension weight for braid carriers |
US1558594A (en) * | 1924-01-11 | 1925-10-27 | Candee & Company L | Testing machine |
US1647035A (en) * | 1927-01-12 | 1927-10-25 | Albert J Davis | Pasteurizing apparatus |
US5434962A (en) * | 1990-09-07 | 1995-07-18 | Fuji Xerox Co., Ltd. | Method and system for automatically generating logical structures of electronic documents |
US5787175A (en) * | 1995-10-23 | 1998-07-28 | Novell, Inc. | Method and apparatus for collaborative document control |
US6006242A (en) * | 1996-04-05 | 1999-12-21 | Bankers Systems, Inc. | Apparatus and method for dynamically creating a document |
US7043637B2 (en) * | 2001-03-21 | 2006-05-09 | Microsoft Corporation | On-disk file format for a serverless distributed file system |
US20050086584A1 (en) * | 2001-07-09 | 2005-04-21 | Microsoft Corporation | XSL transform |
US20030055871A1 (en) * | 2001-07-31 | 2003-03-20 | Javier Roses | Document/poster composition and printing |
US20040205656A1 (en) * | 2002-01-30 | 2004-10-14 | Benefitnation | Document rules data structure and method of document publication therefrom |
US7035837B2 (en) * | 2002-01-30 | 2006-04-25 | Benefitnation | Document component management and publishing system |
US20040003248A1 (en) * | 2002-06-26 | 2004-01-01 | Microsoft Corporation | Protection of web pages using digital signatures |
US7562215B2 (en) * | 2003-05-21 | 2009-07-14 | Hewlett-Packard Development Company, L.P. | System and method for electronic document security |
GB2405730A (en) * | 2003-09-03 | 2005-03-09 | Business Integrity Ltd | Cross-reference generation |
CN100337423C (zh) * | 2004-01-14 | 2007-09-12 | 哈尔滨工业大学 | 一种电子文档的保密、认证、权限管理与扩散控制的处理方法 |
US20050216886A1 (en) * | 2004-03-12 | 2005-09-29 | Onfolio, Inc. | Editing multi-layer documents |
US8661332B2 (en) * | 2004-04-30 | 2014-02-25 | Microsoft Corporation | Method and apparatus for document processing |
-
2006
- 2006-12-05 JP JP2008543635A patent/JP2009519511A/ja active Pending
- 2006-12-05 WO PCT/CN2006/003294 patent/WO2007065354A1/zh active Application Filing
- 2006-12-05 EP EP06828248.2A patent/EP1965327A4/en not_active Withdrawn
-
2008
- 2008-06-04 US US12/133,309 patent/US20090320141A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08292952A (ja) * | 1995-04-20 | 1996-11-05 | Fuji Xerox Co Ltd | 文書処理装置 |
JP2002099528A (ja) * | 2000-09-21 | 2002-04-05 | Canon Inc | 情報処理装置及びその方法、コンピュータ可読メモリ |
JP2004151868A (ja) * | 2002-10-29 | 2004-05-27 | Canon Inc | 電子バインダ装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009054089A (ja) * | 2007-08-29 | 2009-03-12 | Hitachi Ltd | 計算機システム及び書類へのアクセス制御方法 |
JP2015526049A (ja) * | 2012-08-15 | 2015-09-07 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | キーローテーション情報を有するメタデータツリー |
US10025903B2 (en) | 2012-08-15 | 2018-07-17 | EntIT Software, LLC | Validating a metadata tree using a metadata integrity validator |
US11373736B2 (en) | 2012-08-15 | 2022-06-28 | Micro Focus Llc | Metadata tree with key rotation information |
US9588909B2 (en) | 2013-12-19 | 2017-03-07 | International Business Machines Corporation | Information processing technique to manage security attributes of data generated in different modes |
Also Published As
Publication number | Publication date |
---|---|
WO2007065354A1 (fr) | 2007-06-14 |
US20090320141A1 (en) | 2009-12-24 |
EP1965327A4 (en) | 2015-11-11 |
EP1965327A1 (en) | 2008-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009519511A (ja) | 文書データセキュリティ管理方法及びそのシステム | |
CN101322136B (zh) | 一种文档数据安全管理方法和系统 | |
JP5530101B2 (ja) | 文書処理システム及びその方法 | |
US8756492B2 (en) | Method and system for processing document on layers | |
CN1979478B (zh) | 文档处理系统和文档处理方法 | |
US20050134896A1 (en) | Data processing system, data processing method and apparatus, document printing system, client device, printing device, document printing method, and computer program | |
EP2309398A1 (en) | Method and system for performing unstructured data | |
US20080013727A1 (en) | Image processing apparatus and image processing method | |
CN1979511B (zh) | 一种文档数据安全管理系统和方法 | |
US20050021980A1 (en) | Access control decision system, access control enforcing system, and security policy | |
US20080301431A1 (en) | Text security method | |
JPH09233067A (ja) | 知的情報処理方法および装置 | |
JPWO2006001268A1 (ja) | 文書処理装置、文書閲覧装置および文書処理方法 | |
US20080263333A1 (en) | Document processing method | |
US9081977B2 (en) | Method and apparatus for privilege control | |
CN100507913C (zh) | 一种文档处理方法及系统 | |
JP2005165844A (ja) | 文書印刷システム、クライアント装置、印刷装置、文書印刷方法、およびプログラム | |
CN1979479B (zh) | 文档处理系统和文档处理方法 | |
US20210303640A1 (en) | Document management system, processing terminal device, and control device | |
JP2006040186A (ja) | 秘密情報漏洩防止方法及び装置 | |
Bertino et al. | A system for securing push-based distribution of XML documents | |
JP2005031980A (ja) | ファイル管理方法、電子文書管理システム | |
JP2007249865A (ja) | 文書管理装置及び文書管理装置用プログラム | |
ITRM20010135A1 (it) | Procedimento per l'autenticazione di documenti a stampa tramite firmadigitale, e per la loro verifica quando richiesto. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091125 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120508 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120806 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20121204 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130305 |