JP2015230707A - リレーショナルデータベースを内在するカーネルプログラム、方法及び装置 - Google Patents

リレーショナルデータベースを内在するカーネルプログラム、方法及び装置 Download PDF

Info

Publication number
JP2015230707A
JP2015230707A JP2014118082A JP2014118082A JP2015230707A JP 2015230707 A JP2015230707 A JP 2015230707A JP 2014118082 A JP2014118082 A JP 2014118082A JP 2014118082 A JP2014118082 A JP 2014118082A JP 2015230707 A JP2015230707 A JP 2015230707A
Authority
JP
Japan
Prior art keywords
application program
socket
relational database
program
kernel
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.)
Granted
Application number
JP2014118082A
Other languages
English (en)
Other versions
JP5711840B1 (ja
Inventor
清和 池田
Kiyokazu Ikeda
清和 池田
尚三 竹岡
Shozo Takeoka
尚三 竹岡
孝通 香野
Takamichi Kono
孝通 香野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Takeoka Lab Corp
Toyota Tsusho Corp
Original Assignee
Takeoka Lab Corp
Toyota Tsusho Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Takeoka Lab Corp, Toyota Tsusho Corp filed Critical Takeoka Lab Corp
Priority to JP2014118082A priority Critical patent/JP5711840B1/ja
Application granted granted Critical
Publication of JP5711840B1 publication Critical patent/JP5711840B1/ja
Priority to US15/313,997 priority patent/US10324774B2/en
Priority to PCT/JP2015/066311 priority patent/WO2015186820A1/ja
Priority to CN201580027797.7A priority patent/CN106575342B/zh
Publication of JP2015230707A publication Critical patent/JP2015230707A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】OSのカーネルレベルにおけるファイルシステムを実装することなく、ストレージデバイスに記憶されたデータの秘匿性を高めるカーネルプログラム等を提供する。
【解決手段】アプリケーションプログラムとストレージデバイスとの間でデータを入出力するコンピュータに搭載されたカーネルプログラムにおいて、アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力するアクセス制御手段としてコンピュータを機能させる。
【選択図】図1

Description

本発明は、OS(Operating System)のカーネルプログラムの技術に関する。
Unix(登録商標)やWindows(登録商標)に代表されるOSのカーネルプログラムは、当然にファイルシステムを内在している。「ファイルシステム」とは、ストレージデバイス(補助記憶装置、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive))との間でファイル(データ)を操作するためのファイル管理機能である。ファイルシステムは、アプリケーションから見てストレージデバイスに対するデータの格納状態を隠蔽し、抽象的なファイル操作(アクセス)インタフェースをアプリケーションに提供する。
このようなファイルシステムは、全てのファイルが、1つのルートディレクトリの下に配置され、1つの階層構造にあるように見せる。また、マウント(mount)によって、一方のディレクトリに他方のディレクトリを従属させることができる。これによって、アプリケーションから見て、ディレクトリ(階層構造)とファイル名とを用いて、当該ファイルを特定することができる。
ファイルシステムは一般的に、ファイル毎に、「所有者」「グループ」「他ユーザ」それぞれに対して、「読込みr」「書込みw」「実行e」のアクセス権限を付与している。アクセス権限は、例えば以下のように3ビットずつ9ビットで表される。
「所有者」 「グループ」 「他ユーザ」
r,w,e r,w,e r,w,e
Unixのlsコマンドで参照した場合、例えば以下のように表示される。
%ls -l owner.c
-rw-r--r-- 1 ikeda toyotsu 375 May 14 10:35 owner.c
owner.cのファイルに対して、所有者は、読込み及び書込みはできるが、直接的に実行させることはできない。また、グループメンバや他のユーザは、読込むことはできるが、書込み及び実行はさせることができない。このように、ファイルシステムは、ファイル毎にアクセス権限を管理している。
特表2006−503369
前述した従来のファイルシステムによれば、所有者権限(又はAdministrator権限)が奪取された際、ルートディレクトリ配下の全てのファイルを読み出すことが可能となる。一方で、ストレージデバイスに記憶されたファイルのセキュリティ確保は、アプリケーションレベルで実行されている。OSのカーネルプログラムは、少ない演算量で高速に処理する必要があるために、カーネルプログラムのアクセス権限の認証は極めて簡易なものとなっている。
しかしながら、近年、膨大な数のスマートフォンやタブレット端末が普及してきており、これら全てのコンピュータがネットワークに接続するような状況下にある。そのために、アプリケーションレベルにおけるセキュリティ確保のための演算量は極めて増大してきている。一方で、OSのカーネルレベルのファイルシステムは、ストレージデバイスに対して、ファイルをディレクトリに構成して蓄積しているだけであるために、アプリケーションレベルのセキュリティが破られると、ストレージデバイスに記憶されたルートディレクトリ配下のファイルは全て、奪取されることとなる。特に、ファイルシステムに記憶されたデータが、個人情報であるほど問題となる。
尚、カーネルプログラムは極めて高速高精度化が追求されたものであるために、グローバルに見ても、UnixやWindows等の数種類しかない。特に、そのOSのカーネルレベルにおけるファイルシステムの概念自体は、旧態依然としたものに過ぎない。
そこで、本発明は、OSのカーネルレベルにおけるファイルシステムを実装することなく、ストレージデバイスに記憶されたデータの秘匿性を高めることができるカーネルプログラム、方法及び装置を提供することを目的とする。
本発明によれば、アプリケーションプログラムとストレージデバイスとの間でデータを入出力するコンピュータに搭載されたカーネルプログラムにおいて、
アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力するアクセス制御手段と
してコンピュータを機能させることを特徴とする。
本発明のカーネルプログラムにおける他の実施形態によれば、
リレーショナルデータベースは、クライアントとRDBMS(Relational DataBase Management System)サーバとを一体化した軽量SQLデータベースである
ようにコンピュータを機能させることも好ましい。
本発明のカーネルプログラムにおける他の実施形態によれば、
ファイルシステムと、当該ファイルシステムに関するシステムコールとを実装しない
ようにコンピュータを機能させることも好ましい。
本発明のカーネルプログラムにおける他の実施形態によれば、
当該カーネルプログラムは、第1の秘密鍵及び第1の公開鍵を管理し、第1の公開鍵をアプリケーションプログラムへ送信すると共に、第2の秘密鍵及び第2の公開鍵を管理するアプリケーションプログラムから、第2の公開鍵を受信するアクセス認証手段を更に有し、
アプリケーションプログラムへソケットを介して送信するメッセージは、第1の公開鍵によって暗号化し、アプリケーションプログラムからソケットを介して受信するメッセージは、第2の公開鍵によって暗号化されている
ようにコンピュータを機能させることも好ましい。
本発明のカーネルプログラムにおける他の実施形態によれば、
アクセス認証手段は、アプリケーションプログラムのアクセス権限となるライツ(rights)を生成し、該ライツを第2の公開鍵で暗号化し、暗号化された該ライツをアプリケーションプログラムへ送信し、
アプリケーションプログラムからソケットを介して受信するメッセージには、コマンドと共にライツが含まれており、
アクセス制御手段は、アプリケーションプログラムから受信したメッセージを第1の秘密鍵によって復号し、該メッセージに含まれるライツを認証し、認証成功の場合にのみ、当該コマンドをリレーショナルデータベースへ出力する
ようにコンピュータを機能させることも好ましい。
本発明のカーネルプログラムにおける他の実施形態によれば、
アクセス認証手段は、認証用パスワードを予め記憶しており、
アクセス認証手段は、アプリケーションプログラムから暗号化されたパスワードを受信した際に、受信したパスワードを第1の秘密鍵によって復号し、予め記憶されたパスワードと一致するか否かを認証し、認証成功の場合にのみ、ライツを生成する
ようにコンピュータを機能させることも好ましい。
本発明によれば、アプリケーションプログラムとストレージデバイスとの間でデータを入出力するカーネルプログラムを実装した装置において、
アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力するアクセス制御手段と
を有することを特徴とする。
本発明によれば、アプリケーションプログラムとストレージデバイスとの間でデータを入出力するカーネルプログラムの実行方法において、
カーネルプログラム内に、ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースを有し、
アプリケーションプログラムとの間で、ソケット(socket)を確立する第1のステップと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力する第2のステップと
を有することを特徴とする。
本発明のカーネルプログラム、方法及び装置は、OSのカーネルレベルにおけるファイルシステムを実装することなく、ストレージデバイスに記憶されたデータの秘匿性を高めることができる。
本発明におけるカーネルプログラムを実装した装置の機能構成図である。 ソケットの確立とメッセージの送受信とを、コードで表記した説明図である。 APIライブラリ部と、ソケット確立部及びアクセス制御部との間のシーケンス図である。 APIライブラリ部とアクセス認証部との間の第1のシーケンス図である。 APIライブラリ部とアクセス認証部との間の第2のシーケンス図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
図1は、本発明におけるカーネルプログラムを実装した装置の機能構成図である。
図1によれば、装置1は、ハードウェアとして、プロセッサ(コンピュータ)と、HDDやSSDのようなストレージデバイス10とを有する。また、ソフトウェアとして、装置に搭載されたプロセッサの実行によって機能するカーネルプログラム11と、API(Application Programming Interface)ライブラリ部12と、アプリケーションプログラム13とを有する。更に、本発明のカーネルプログラム11は、リレーショナルデータベース111、デバイスドライバ112と、ソケット確立部113と、アクセス制御部114と、アクセス認証部115とを有する。また、これら機能構成部の処理の流れは、カーネルプログラムの実行方法としても理解できる。
[APIライブラリ部12]
APIライブラリ部12は、アプリケーションプログラム13の言語と、クエリの言語(リレーショナルデータベースの言語)との間で相互に変換する機能を有する。APIは、アプリケーション側インタフェースに対して、カーネルプログラム11のシステムコールインタフェースを用いてシステムプログラミングとして記述したものである。
ここで、本発明のカーネルプログラム11は、既存のファイルシステムに基づく、低水準のシステムコールが取り除かれている。例えば以下のようなシステムコールが取り除かれている。
open()、close()
アプリケーションレベルのセキュリティが破られた後、所有者権限でファイルシステムにアクセスされた場合、open()のような低水準システムコールは、そのファイル全体を完全に開いてしまう。そのために、簡単に全てのファイルが読み取られることとなる。そこで、本発明によれば、カーネルプログラム11からファイルシステムを取り除くと共に、それに基づくシステムコール(open()、close()等)も取り除かれている。
[リレーショナルデータベース111]
本発明のカーネルプログラム11は、既存のファイルシステムに代えて、リレーショナルデータベース111を実装している。一般に、カーネル空間のメモリ領域は、管理者権限を持っていても、読み書きすることはできない。本発明によれば、リレーショナルデータベースのみならず、プログラムコード及び動作メモリ領域も、カーネル空間に置くために、データベースの秘匿性を極めて高めることができる。
リレーショナルデータベース111は、ストレージデバイス10との間で、デバイスドライバ112を介してデータを入出力する。リレーショナルデータベース111は、クライアントとRDBMSサーバとを一体化した軽量SQLデータベースであって、データベース全体を1つのファイルとして扱うことができる。即ち、ストレージデバイス10全体を、データベース用の1つのファイルとして扱うこととなる。軽量SQLデータベースとしては、具体的には「SQLite3」がある。
ここで注目すべきは、SQLデータベースは、ディレクトリ構造のファイルシステムと異なって、ファイル毎に取り出すことができない。即ち、SQLデータベースは全て、クエリの入力に対して、レスポンス(実行結果)を出力するものである。そのために、悪意の第三者がデータベース全体を奪取することができたとしても、そのデータベースから個々のファイルを取り出すことが極めて困難となる。本発明は、カーネルプログラム内に、既存のファイルシステムに代えて、このようなSQLデータベースを実装することによって、ファイル管理のセキュリティレベルを格段に向上させようとするものである。
ストレージデバイス10にどのように記憶されるかは、SQLデータベースによって全て判断される。SQLデータベースに基づく記憶構造は、外部から判断できないように、インメモリ・データベースとして高効率に構成される。即ち、SQLデータベースを用いることによって、セキュリティが破られたとしても、各ファイルの読取り又は改ざんも不可能となる。
従来のSQLデータベースは、アプリケーションとして実行されるものであって、データベースの実体であるファイルも、既存のファイルシステム上に記憶される。既存のファイルシステム上に置かれているデータベースは、管理者権限を用いた場合、ファイル全部を、通常のコマンドで一括して読み取ることができる。
これに対し、本発明によれば、SQLデータベースのファイルをそのまま、デバイスドライバを介してストレージデバイスに記憶させている。SQLデータベースが、ストレージデバイスの領域を、直接的に管理することとなる。データベースを既存のファイルシステム上に配置していないために、OSの管理者権限を持った者であっても、データベースのファイルの一部又は全部に対して、コピー操作をすることができない。
SQLデータベースのデータ実体におけるストレージデバイス10上の配置場所は、データベース内部のデータ構造と、その管理方式を同時に熟知していなければならない。従って、データベースのデータを、ストレージデバイス10上から意味のあるデータとして読取り又は改ざんすることは極めて困難となる。また、カーネル空間のプログラムコードやメモリ領域の情報も読み取れないために、SQLデータベース自体のプログラムコードやメモリ空間のみならず、ストレージデバイス10上のデータの配置場所情報も読み解くことができなくなる。
本発明のSQLデータベースとして、「SQLite」を用いている。SQLiteとは、PHPと組み合わせて使用されているDBMS(DataBase Management System)1つであって、組み込み専用のものである。クライアント・サーバ型のDBMS(例えばMySQLやPostgreSQL)と異なって、サーバの概念が存在しない。即ち、SQLiteは、サーバとクライアントとが一体的に構成されており、そのデータベースの内容は全て、1つのローカル領域に保存される。
図2は、ソケットの確立とメッセージの送受信とを、コードで表記した説明図である。
図3は、APIライブラリ部と、ソケット確立部及びアクセス制御部との間のシーケンス図である。
[ソケット確立部113]
ソケット確立部113は、アプリケーションプログラム13との間で、ソケット(socket)を確立する(図3のS1参照)。ソケットは、APIライブラリ部12(アプリケーションプログラム側)をクライアントとし、カーネルプログラム11をサーバとして確立される。アプリケーションプログラム13が、データにアクセスする場合、常に、確立されたソケットを介して、SQL言語のクエリによって、そのメッセージが送信される。ソケットは、TCP/IPに基づくIPアドレス及びポート番号を用いて相互に通信する組をいう。本発明によれば、IPアドレス及びポート番号共に、ローカルアドレスを指し示すこととなる。
ソケットは、アプリケーションプログラム13から見て、抽象的なファイル構成やデータベースのメモリ空間も完全に隠蔽し、高い安全性を確保する。ソケットは、例えば以下のシステムコールを用いて確立される(図2のソケット確立部113参照)。
socket(domain, type, protocol):カーネルプログラム側によるソケットの生成
domain=AF-UNIX:ローカルアドレス(UNIXドメイン)
type:通信方法
protocol:プロトコル
bind :カーネルプログラム側によるサーバ名及びポート番号の決定
listen:カーネルプログラム側によるソケットの受入開始
connect(s, dbname, namelen):API側によるソケットの接続
s:ソケット番号
dbname:SQLite3データベース名
namelen:nameサイズ
accept(s, name, namelen):カーネルプログラム側によるconnectの受理
s:ソケット番号
dbname:SQLite3データベース名
namelen:nameサイズ
close :API側によるソケットの取り外し
「domain=AF-UNIX」によって、IPアドレス及びポート番号を用いることなく、1つの装置内に閉じた、同一装置内だけのソケット通信を確立することができる。これによって、他の装置から接続することができないために、セキュリティを高めることができる。
ソケットが確立された後、アプリケーションプログラム13(APIライブラリ部12)は、ソケット通信のシステムコールを用いて、カーネルプログラム11内のSQLデータベースへアクセスする。
ここで、APIライブラリ部12とカーネルプログラム11との間は、メッセージ構造体「sqmsg」を用いて通信される(図3のS2参照)。
struct sqmsg {
int msglen;
int reqid;
int request;
uint32_t flag;
union {
char msg[1];
struct {
int id;
char param[1];
} bind;
int value;
} u;
}
(クエリの送信)
APIがクエリをカーネルプログラムへ送信するために、以下の処理を実行する。
sqmsg.msg[]にクエリを設定し、sqmsg.request=1に設定する
(予め登録されたクエリを実行する場合、sqmsg.msg[]に、BSON形式でパラメータ
を設定し、sqmsg.request=2に設定する)
即時実行を要求する場合、sqmsg.flag=1に設定する
APIは、send()/write()を用いてsqmsgをカーネルプログラムへ送信する(図3のS3参照)
カーネルプログラムは、recv()/read()を用いてsqmsgを受信する(図3のS3参照)
(実行結果の受信)
カーネルプログラムは、実行結果をAPIへ返信するために、以下の処理を実行する。
sqmsg.request=0に設定する
成功/失敗をsqmsg.u.valueに設定する
成功:sqmsg.u.value=0 失敗:sqmsg.u.value=-1;
sqmsg構造体に、実行結果を設定する
(予め登録されたクエリが実行された場合、sqmsg.payload[]に、BSON形式でパラ
メータを設定し、sqmsg.request=3に設定する)
カーネルプログラムは、send()/write()を用いてsqmsgをAPIへ送信する(図3のS6参照)
APIは、recv()/read()を用いてsqmsgを受信する(図3のS6参照)
尚、BSONは、バイナリ形式であって、JSONの場合、例えば以下のように表記される。
INSERT INTO A VALUES ( :a :b :c );
[アクセス制御部114]
アクセス制御部114は、アプリケーションプログラム13からソケットのメッセージ構造を介してコマンドを入力し、そのコマンドをリレーショナルデータベース111へ出力する。また、リレーショナルデータベース111から実行結果を入力し、その実行結果をソケットのメッセージ構造を介してアプリケーションプログラム13へ出力する。
ここで、APIライブラリ部12について、アプリケーションプログラム側のインタフェースと、カーネルプログラム側のシステムコールとの関係を、具体的に明示する。
(1)最初に、カーネルプログラムのリレーショナルデータベース111に対するSQL言語のクエリを、BSONでまとめるために、以下の関数が用意されている
int ksqlite_bind_int(struct ksqlite_stmt *stmt, char *pchar, int value)
int ksqlite_bind_double(struct ksqlite_stmt *stmt, char *pchar, double value)
int ksqlite_bind_int64(struct ksqlite_stmt *stmt, char *pchar, int64_t value)
アプリケーションプログラム13は、これら関数を用いて、アプリケーションプログラムのメモリバッファ上に、リレーショナルデータベース111へのコマンドを書き込む。
(問い合わせの生成)
bson_init(&bs); /* BSON 問い合わせを置く領域の初期化 */
bson_append_string(&bs, ":a", "AAA"); /* 問い合わせ作成中 */
bson_append_string(&bs, ":b", "GEGE" );
bson_append_int(&bs, ":c", 10);
bson_finish(&bs);
(2)次に、アプリケーションプログラムは、ksqlite_prepare()によって、問い合わせ送信の準備をする。
sqm->request = 2 ;
sqm->msglen = sizeof(struct sqmsg)+ bson_size(&bs);
printf("SIZE %d\n", sqm->msglen);
memcpy(sqm->u.msg, bson_data(&bs), bson_size(&bs));
bson_destroy(&bs);
(3)そして、アプリケーションプログラムは、カーネルプログラム内へコマンドを送信する。
(問い合わせ送信)
send(s, sqm, sqm->msglen, 0);
printf("SEND END C\n");
(4)これに対し、リレーショナルデータベース111の実行結果は、複数をまとめることができる。アプリケーションプログラムは、これら実行結果を、ksqlite_step()で取得する。ksqlite_step()は、実行結果を完全に読み出せるまで、繰り返し呼び出す。
(問い合わせ結果の受信)
bzero(sqm->u.msg, 300); /*受信領域のクリア */
while(sqm->flag == 2 ){ /*継続フラグチェック*/
rcvsize =recv(s, sqm, 500, 0); /*受信*/
printf("rcvsize%d %d\n", rcvsize, sqm->msglen);
bson_init_finished_data(&bs, &sqm->u.msg, 0);
bson_print(&bs); /*データの表示(デバグ用)*/
bson_destroy(&bs);
}
データ中の「継続フラグ」によって、読み出したデータに続きがあるか/否かを判定することができる。
[アクセス認証部115]
アクセス認証部115は、アプリケーションプログラム13からのアクセス権限を認証するものであって、秘密鍵及び公開鍵を管理して制御する。
(1)当該カーネルプログラム11のアクセス認証部115は、「第1の秘密鍵」及び「第1の公開鍵」を管理する。そして、第1の公開鍵をアプリケーションプログラム13へ送信して公開する。
アプリケーションプログラム13は、カーネルプログラム11へソケットを介して送信するメッセージを、第1の公開鍵によって暗号化する。
(2)アプリケーションプログラム13は、「第2の秘密鍵」及び「第2の公開鍵」を管理する。そして、アプリケーションプログラム13は、第2の公開鍵をカーネルプログラム11のアクセス認証部115へ送信して公開する。
カーネルプログラム11は、アプリケーションプログラム13へソケットを介して送信するメッセージを、第2の公開鍵によって暗号化する。
尚、カーネルプログラム11のアクセス認証部115は、認証用のパスワードも予め設定している。
図4は、APIライブラリ部とアクセス認証部との間の第1のシーケンス図である。尚、図4によれば、APIライブラリ部をアプリケーションプログラム側として、図示している。
(S101)カーネルプログラム11側のアクセス認証部115は、「第1の公開鍵」を、APIライブラリ部12へ予め送信する。
(S102)APIライブラリ部12は、カーネルプログラム11のリレーショナルデータベースへアクセスする場合、最初に、自ら保持する「パスワード」と、自ら生成した「第2の公開鍵」とを、S101によって受信した「第1の公開鍵」によって暗号化する。
(S103)APIライブラリ部12は、暗号化されたメッセージ(パスワード及び第2の公開鍵)を、システムコールによってカーネルプログラム11へ送信する。例えば、以下のようなシステムコールを別途設定する。
sqlite3_set_authorizer()
(S104)カーネルプログラム11のアクセス認証部115は、システムコールによって受信したメッセージを「第1の秘密鍵」によって復号し、パスワード及び第2の公開鍵を取得する。そして、その「パスワード」が、予め設定されているパスワードと一致するか否かを認証する。
(S105)パスワード認証に成功した場合、カーネルプログラム11のアクセス認証部115は、「ライツ(rights)」を生成する。ライツとは、カーネルプログラム11のデータベースに対するアクセス権限を意味する。
(S106)カーネルプログラム11のアクセス認証部115は、ライツを「第2の公開鍵」によって暗号化する。
(S107)そして、カーネルプログラム11のアクセス認証部115は、暗号化されたライツを、先のシステムコールに対する応答として、APIライブラリ部12へ返信する。
これによって、APIライブラリ部12(アプリケーションプログラム13)は、受信したライツを「第2の秘密鍵」によって復号して取得することができる。
その後、APIライブラリ部12は、SQLデータベースに対するコマンドと共に、ライツを必ず付加して送信することを要する。
尚、APIライブラリ部12を介してライツを取得したアプリケーションのプロセスは、信用できる他のアプリケーションのプロセスへ、そのライツを渡すこともできる。即ち、カーネルプログラムに対して、複数のプロセスが同一のアクセス権限を持つこともできる。ライツ自体が、公開鍵方式によって暗号されているために、ライツの不正奪取も困難となる。
図5は、APIライブラリ部とアクセス認証部との間の第2のシーケンス図である。図4のシーケンスに続いて、図5のシーケンスが実行される。
(S1)カーネルプログラム11は、アクセス認証に成功した後(ライツをAPIライブラリ部12へ送信した後)、ソケット確立部113が、APIライブラリ部12との間で、ソケットを確立する(前述した図3のS1と同様)。
(S11)APIライブラリ部12は、カーネルプログラム11のSQLデータベースにアクセスする「コマンド」と、先に取得した「ライツ」(図4参照)とを、「第1の公開鍵」を用いて暗号化する。
(S2)APIライブラリ部12は、暗号化されたメッセージ(コマンド及びライツ)を含む、メッセージ構造体「sqmsg」を作成する。
(S3)APIライブラリ部12は、send()/write()を用いてsqmsgをカーネルプログラムへ送信する。カーネルプログラムは、recv()/read()を用いてsqmsgを受信する。
(S31)カーネルプログラムのアクセス制御部114は、sqmsgに含まれるメッセージを、「第1の秘密鍵」によって復号する。
(S32)カーネルプログラムのアクセス制御部114は、復号されたライツが、自ら生成したライツと一致するか否かを認証する。
(S4)ライツの認証成功の場合のみ、アクセス制御部114は、リレーショナルデータベース111へ、復号されたコマンドを出力する。これによって、その検査を通ったアプリケーションプログラムのコマンドだけが、SQLデータベースへアクセスすることができる。これに対し、リレーショナルデータベース111は、その実行結果を返信する。
(S41)カーネルプログラムのアクセス制御部114は、リレーショナルデータベース111からの実行結果を、「第2の公開鍵」によって暗号化する。
(S5)アクセス制御部114は、暗号化された実行結果を含む、メッセージ構造体「sqmsg」を作成する。
(S6)アクセス制御部114は、send()/write()を用いてsqmsgをAPIライブラリ部12へ送信する。APIライブラリ部12は、recv()/read()を用いてsqmsgを受信する。
(S7)APIライブラリ部12は、sqmsgに含まれるメッセージを、「第2の秘密鍵」によって復号する。
以上、詳細に説明したように、本発明のカーネルプログラム、方法及び装置は、OSのカーネルレベルにおけるファイルシステムを実装することなく、ストレージデバイスに記憶されたデータの秘匿性を高めることができる。
本発明によれば、一般にアプリケーションとしてユーザ空間で実行されるデータベースと、カーネル空間に実装することによって、データベースに対するアクセスのみならず、その動作のメモリ領域も秘匿することができる。即ち、OSに対するAdministrator権限であっても、データベースのプログラムコードやメモリ領域を読み出せないために、極めて高い秘匿性を維持することができる。
本発明のカーネルプログラムを実装する装置としては、個人管理データベースとして最適である。近年、個人情報を蓄積した端末から、悪意の第三者によってネットワークを介して読み取られるという問題が多い。このような問題に対し、本発明の装置によれば、個人情報全体が奪取されることができなくなる。特に、自動車に搭載するコンピュータシステムにおける記憶装置としても用いることも好ましい。将来的に自動運転が実現される社会となった際に、自動車毎のデータを秘匿性や耐改ざん性を高めることは必須の要素技術となる。本発明に基づく装置を、各個人が所有することによって、個人情報の高度なセキュリティの確保を実現することができる。
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
1 装置
10 ストレージデバイス
11 カーネルプログラム
111 リレーショナルデータベース
112 デバイスドライバ
113 ソケット確立部
114 アクセス制御部
115 アクセス認証部
12 APIライブラリ部
13 アプリケーションプログラム
本発明によれば、アプリケーションプログラムとストレージデバイスとの間でデータを入出力するコンピュータに搭載されたカーネルプログラムにおいて、
アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力するアクセス制御手段と
してコンピュータを機能させ、
当該カーネルプログラムは、ファイルシステムと、当該ファイルシステムに関するシステムコールとを実装せず、
リレーショナルデータベースが管理するデータは、デバイスドライバを介してストレージデバイスのみに配置されることを特徴とする。
本発明によれば、アプリケーションプログラムとストレージデバイスとの間でデータを入出力するカーネルプログラムを実装した装置において、
アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力するアクセス制御手段と
を有し、
当該カーネルプログラムは、ファイルシステムと、当該ファイルシステムに関するシステムコールとを実装せず、
リレーショナルデータベースが管理するデータは、デバイスドライバを介してストレージデバイスのみに配置されることを特徴とする。
本発明によれば、アプリケーションプログラムとストレージデバイスとの間でデータを入出力するカーネルプログラムの実行方法において、
カーネルプログラム内に、ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースを有し、
アプリケーションプログラムとの間で、ソケット(socket)を確立する第1のステップと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力する第2のステップと
を有し、
当該カーネルプログラムは、ファイルシステムと、当該ファイルシステムに関するシステムコールとを実装せず、
リレーショナルデータベースが管理するデータは、デバイスドライバを介してストレージデバイスのみに配置されることを特徴とする。

Claims (8)

  1. アプリケーションプログラムとストレージデバイスとの間でデータを入出力するコンピュータに搭載されたカーネルプログラムにおいて、
    アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
    ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
    前記アプリケーションプログラムから前記ソケットのメッセージ構造を介してコマンドを入力し、該コマンドを前記リレーショナルデータベースへ出力すると共に、前記リレーショナルデータベースから実行結果を入力し、該実行結果を前記ソケットのメッセージ構造を介して前記アプリケーションプログラムへ出力するアクセス制御手段と
    してコンピュータを機能させることを特徴とするカーネルプログラム。
  2. 前記リレーショナルデータベースは、クライアントとRDBMS(Relational DataBase Management System)サーバとを一体化した軽量SQLデータベースである
    ようにコンピュータを機能させることを特徴とする請求項1に記載のカーネルプログラム。
  3. ファイルシステムと、当該ファイルシステムに関するシステムコールとを実装しない
    ようにコンピュータを機能させることを特徴とする請求項1又は2に記載のカーネルプログラム。
  4. 当該カーネルプログラムは、第1の秘密鍵及び第1の公開鍵を管理し、第1の公開鍵をアプリケーションプログラムへ送信すると共に、第2の秘密鍵及び第2の公開鍵を管理するアプリケーションプログラムから、第2の公開鍵を受信するアクセス認証手段を更に有し、
    前記アプリケーションプログラムへ前記ソケットを介して送信するメッセージは、第1の公開鍵によって暗号化し、前記アプリケーションプログラムから前記ソケットを介して受信するメッセージは、第2の公開鍵によって暗号化されている
    ようにコンピュータを機能させることを特徴とする請求項1から3のいずれか1項に記載のカーネルプログラム。
  5. 前記アクセス認証手段は、前記アプリケーションプログラムのアクセス権限となるライツ(rights)を生成し、該ライツを第2の公開鍵で暗号化し、暗号化された該ライツを前記アプリケーションプログラムへ送信し、
    前記アプリケーションプログラムから前記ソケットを介して受信するメッセージには、前記コマンドと共に前記ライツが含まれており、
    前記アクセス制御手段は、前記アプリケーションプログラムから受信したメッセージを第1の秘密鍵によって復号し、該メッセージに含まれる前記ライツを認証し、認証成功の場合にのみ、当該コマンドを前記リレーショナルデータベースへ出力する
    ようにコンピュータを機能させることを特徴とする請求項4に記載のカーネルプログラム。
  6. 前記アクセス認証手段は、認証用パスワードを予め記憶しており、
    前記アクセス認証手段は、前記アプリケーションプログラムから暗号化されたパスワードを受信した際に、受信したパスワードを第1の秘密鍵によって復号し、予め記憶されたパスワードと一致するか否かを認証し、認証成功の場合にのみ、前記ライツを生成する
    ようにコンピュータを機能させることを特徴とする請求項5に記載のカーネルプログラム。
  7. アプリケーションプログラムとストレージデバイスとの間でデータを入出力するカーネルプログラムを実装した装置において、
    アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
    ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
    前記アプリケーションプログラムから前記ソケットのメッセージ構造を介してコマンドを入力し、該コマンドを前記リレーショナルデータベースへ出力すると共に、前記リレーショナルデータベースから実行結果を入力し、該実行結果を前記ソケットのメッセージ構造を介して前記アプリケーションプログラムへ出力するアクセス制御手段と
    を有することを特徴とする装置。
  8. アプリケーションプログラムとストレージデバイスとの間でデータを入出力するカーネルプログラムの実行方法において、
    前記カーネルプログラム内に、ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースを有し、
    アプリケーションプログラムとの間で、ソケット(socket)を確立する第1のステップと、
    前記アプリケーションプログラムから前記ソケットのメッセージ構造を介してコマンドを入力し、該コマンドを前記リレーショナルデータベースへ出力すると共に、前記リレーショナルデータベースから実行結果を入力し、該実行結果を前記ソケットのメッセージ構造を介して前記アプリケーションプログラムへ出力する第2のステップと
    を有することを特徴とするカーネルプログラムの実行方法。
JP2014118082A 2014-06-06 2014-06-06 リレーショナルデータベースを内在するカーネルプログラム、方法及び装置 Active JP5711840B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014118082A JP5711840B1 (ja) 2014-06-06 2014-06-06 リレーショナルデータベースを内在するカーネルプログラム、方法及び装置
US15/313,997 US10324774B2 (en) 2014-06-06 2015-06-05 Kernel program including relational database, and method and apparatus for executing said program
PCT/JP2015/066311 WO2015186820A1 (ja) 2014-06-06 2015-06-05 リレーショナルデータベースを内在するカーネルプログラム、該プログラムを実行する方法及び装置
CN201580027797.7A CN106575342B (zh) 2014-06-06 2015-06-05 包括关系数据库的内核程序、以及用于执行所述程序的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014118082A JP5711840B1 (ja) 2014-06-06 2014-06-06 リレーショナルデータベースを内在するカーネルプログラム、方法及び装置

Publications (2)

Publication Number Publication Date
JP5711840B1 JP5711840B1 (ja) 2015-05-07
JP2015230707A true JP2015230707A (ja) 2015-12-21

Family

ID=53277225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014118082A Active JP5711840B1 (ja) 2014-06-06 2014-06-06 リレーショナルデータベースを内在するカーネルプログラム、方法及び装置

Country Status (4)

Country Link
US (1) US10324774B2 (ja)
JP (1) JP5711840B1 (ja)
CN (1) CN106575342B (ja)
WO (1) WO2015186820A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10339325B2 (en) * 2016-03-03 2019-07-02 JJD Software LLC Multi-level security model for securing access to encrypted private data
CN107203715B (zh) * 2016-03-18 2021-03-19 斑马智行网络(香港)有限公司 执行系统调用的方法及装置
US11038691B2 (en) * 2018-01-03 2021-06-15 JJD Software LLC Database platform for maintaining secure data
US11899812B2 (en) * 2018-01-03 2024-02-13 JJD Software LLC Compound platform for maintaining secure data
US11076022B2 (en) * 2018-12-31 2021-07-27 Lyft, Inc. Systems and methods for implementing robotics frameworks
EP3811557A4 (en) 2019-01-04 2022-04-13 Baidu.com Times Technology (Beijing) Co., Ltd. METHOD AND SYSTEM FOR DERIVING A SESSION KEY TO SECURE AN INFORMATION EXCHANGE CHANNEL BETWEEN A HOST SYSTEM AND A DATA PROCESSING ACCELERATOR
US11328075B2 (en) 2019-01-04 2022-05-10 Baidu Usa Llc Method and system for providing secure communications between a host system and a data processing accelerator
US11374734B2 (en) * 2019-01-04 2022-06-28 Baidu Usa Llc Method and system for key distribution and exchange for data processing accelerators
WO2020140267A1 (en) 2019-01-04 2020-07-09 Baidu.Com Times Technology (Beijing) Co., Ltd. A data processing accelerator having a local time unit to generate timestamps
EP3794444A4 (en) 2019-01-04 2022-01-12 Baidu.com Times Technology (Beijing) Co., Ltd. METHOD AND SYSTEM FOR THE PROTECTION OF DATA PROCESSED BY DATA PROCESSING ACCELERATORS
US11799651B2 (en) 2019-01-04 2023-10-24 Baidu Usa Llc Data processing accelerator having a security unit to provide root trust services
CN112334902A (zh) 2019-01-04 2021-02-05 百度时代网络技术(北京)有限公司 建立主机系统与数据处理加速器之间的安全信息交换信道的方法
CN112236772B (zh) 2019-01-04 2023-12-22 百度时代网络技术(北京)有限公司 用于管理数据处理加速器的内存的方法和系统
US11392687B2 (en) * 2019-01-04 2022-07-19 Baidu Usa Llc Method and system for validating kernel objects to be executed by a data processing accelerator of a host system
US11409534B2 (en) 2019-01-04 2022-08-09 Baidu Usa Llc Attestation protocol between a host system and a data processing accelerator
CN110955582A (zh) * 2019-11-24 2020-04-03 浪潮电子信息产业股份有限公司 一种内核信息输出方法、装置、设备及可读存储介质
US11727127B2 (en) * 2020-10-16 2023-08-15 Micron Technology, Inc. Secure storage device verification with multiple computing devices

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549996B1 (en) * 1999-07-02 2003-04-15 Oracle Corporation Scalable multiple address space server
US7143288B2 (en) 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
GB2404537B (en) * 2003-07-31 2007-03-14 Hewlett Packard Development Co Controlling access to data
JP4705406B2 (ja) * 2005-05-13 2011-06-22 富士通株式会社 マルチモーダル制御装置およびマルチモーダル制御方法
US7702906B1 (en) * 2005-06-30 2010-04-20 Symantec Operating Corporation Securing kernel metadata communication in environments employing distributed software services
JP2007094879A (ja) * 2005-09-29 2007-04-12 Toshiba Corp オペレーティングシステム用基本プログラムの認証システム、これに用いるコンピュータ、およびコンピュータプログラム
US8924707B2 (en) * 2009-04-28 2014-12-30 Hewlett-Packard Development Company, L.P. Communicating confidential information between an application and a database

Also Published As

Publication number Publication date
CN106575342A (zh) 2017-04-19
US20180232266A1 (en) 2018-08-16
US10324774B2 (en) 2019-06-18
JP5711840B1 (ja) 2015-05-07
WO2015186820A1 (ja) 2015-12-10
CN106575342B (zh) 2018-02-02

Similar Documents

Publication Publication Date Title
JP5711840B1 (ja) リレーショナルデータベースを内在するカーネルプログラム、方法及び装置
EP1522167B1 (en) A method and an apparatus for retrieving a value secured in a key management system
EP3585032B1 (en) Data security service
WO2021003980A1 (zh) 黑名单共享方法、装置、计算机设备和存储介质
US11329962B2 (en) Pluggable cipher suite negotiation
US9767299B2 (en) Secure cloud data sharing
US8489889B1 (en) Method and apparatus for restricting access to encrypted data
US11196561B2 (en) Authorized data sharing using smart contracts
US8621036B1 (en) Secure file access using a file access server
US11829502B2 (en) Data sharing via distributed ledgers
US10445524B2 (en) Compromise free cloud data encryption and security
JP6678457B2 (ja) データセキュリティサービス
US9906499B1 (en) Apparatus, system and method for secure data exchange
JP2016510962A (ja) 暗号化ネットワークストレージスペース
CN112733180A (zh) 数据查询方法、装置和电子设备
CN113886793A (zh) 设备登录方法、装置、电子设备、系统和存储介质
CN117157623A (zh) 结合容器化应用程序使用时保护秘密的系统和方法
US20060047625A1 (en) DBMS administration of secure stores
CN115544583B (zh) 一种服务器密码机的数据处理方法及装置
US20240048532A1 (en) Data exchange protection and governance system
US20240048380A1 (en) Cryptography-as-a-Service
JP2023048659A (ja) ファイルの保護機能を備えるシステム、ファイルを保護する方法およびファイルの保護プログラム
GB2610072A (en) Data sharing via distributed ledgers
CN113591153A (zh) 一种数据处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150306

R150 Certificate of patent or registration of utility model

Ref document number: 5711840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250