JP2015230707A - リレーショナルデータベースを内在するカーネルプログラム、方法及び装置 - Google Patents
リレーショナルデータベースを内在するカーネルプログラム、方法及び装置 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 13
- 230000006870 function Effects 0.000 claims description 18
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241001562081 Ikeda Species 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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
【解決手段】アプリケーションプログラムとストレージデバイスとの間でデータを入出力するコンピュータに搭載されたカーネルプログラムにおいて、アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力するアクセス制御手段としてコンピュータを機能させる。
【選択図】図1
Description
「所有者」 「グループ」 「他ユーザ」
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のファイルに対して、所有者は、読込み及び書込みはできるが、直接的に実行させることはできない。また、グループメンバや他のユーザは、読込むことはできるが、書込み及び実行はさせることができない。このように、ファイルシステムは、ファイル毎にアクセス権限を管理している。
アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力するアクセス制御手段と
してコンピュータを機能させることを特徴とする。
リレーショナルデータベースは、クライアントとRDBMS(Relational DataBase Management System)サーバとを一体化した軽量SQLデータベースである
ようにコンピュータを機能させることも好ましい。
ファイルシステムと、当該ファイルシステムに関するシステムコールとを実装しない
ようにコンピュータを機能させることも好ましい。
当該カーネルプログラムは、第1の秘密鍵及び第1の公開鍵を管理し、第1の公開鍵をアプリケーションプログラムへ送信すると共に、第2の秘密鍵及び第2の公開鍵を管理するアプリケーションプログラムから、第2の公開鍵を受信するアクセス認証手段を更に有し、
アプリケーションプログラムへソケットを介して送信するメッセージは、第1の公開鍵によって暗号化し、アプリケーションプログラムからソケットを介して受信するメッセージは、第2の公開鍵によって暗号化されている
ようにコンピュータを機能させることも好ましい。
アクセス認証手段は、アプリケーションプログラムのアクセス権限となるライツ(rights)を生成し、該ライツを第2の公開鍵で暗号化し、暗号化された該ライツをアプリケーションプログラムへ送信し、
アプリケーションプログラムからソケットを介して受信するメッセージには、コマンドと共にライツが含まれており、
アクセス制御手段は、アプリケーションプログラムから受信したメッセージを第1の秘密鍵によって復号し、該メッセージに含まれるライツを認証し、認証成功の場合にのみ、当該コマンドをリレーショナルデータベースへ出力する
ようにコンピュータを機能させることも好ましい。
アクセス認証手段は、認証用パスワードを予め記憶しており、
アクセス認証手段は、アプリケーションプログラムから暗号化されたパスワードを受信した際に、受信したパスワードを第1の秘密鍵によって復号し、予め記憶されたパスワードと一致するか否かを認証し、認証成功の場合にのみ、ライツを生成する
ようにコンピュータを機能させることも好ましい。
アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力するアクセス制御手段と
を有することを特徴とする。
カーネルプログラム内に、ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースを有し、
アプリケーションプログラムとの間で、ソケット(socket)を確立する第1のステップと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力する第2のステップと
を有することを特徴とする。
APIライブラリ部12は、アプリケーションプログラム13の言語と、クエリの言語(リレーショナルデータベースの言語)との間で相互に変換する機能を有する。APIは、アプリケーション側インタフェースに対して、カーネルプログラム11のシステムコールインタフェースを用いてシステムプログラミングとして記述したものである。
open()、close()
アプリケーションレベルのセキュリティが破られた後、所有者権限でファイルシステムにアクセスされた場合、open()のような低水準システムコールは、そのファイル全体を完全に開いてしまう。そのために、簡単に全てのファイルが読み取られることとなる。そこで、本発明によれば、カーネルプログラム11からファイルシステムを取り除くと共に、それに基づくシステムコール(open()、close()等)も取り除かれている。
本発明のカーネルプログラム11は、既存のファイルシステムに代えて、リレーショナルデータベース111を実装している。一般に、カーネル空間のメモリ領域は、管理者権限を持っていても、読み書きすることはできない。本発明によれば、リレーショナルデータベースのみならず、プログラムコード及び動作メモリ領域も、カーネル空間に置くために、データベースの秘匿性を極めて高めることができる。
図3は、APIライブラリ部と、ソケット確立部及びアクセス制御部との間のシーケンス図である。
ソケット確立部113は、アプリケーションプログラム13との間で、ソケット(socket)を確立する(図3のS1参照)。ソケットは、APIライブラリ部12(アプリケーションプログラム側)をクライアントとし、カーネルプログラム11をサーバとして確立される。アプリケーションプログラム13が、データにアクセスする場合、常に、確立されたソケットを介して、SQL言語のクエリによって、そのメッセージが送信される。ソケットは、TCP/IPに基づくIPアドレス及びポート番号を用いて相互に通信する組をいう。本発明によれば、IPアドレス及びポート番号共に、ローカルアドレスを指し示すこととなる。
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つの装置内に閉じた、同一装置内だけのソケット通信を確立することができる。これによって、他の装置から接続することができないために、セキュリティを高めることができる。
ここで、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は、アプリケーションプログラム13からソケットのメッセージ構造を介してコマンドを入力し、そのコマンドをリレーショナルデータベース111へ出力する。また、リレーショナルデータベース111から実行結果を入力し、その実行結果をソケットのメッセージ構造を介してアプリケーションプログラム13へ出力する。
(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);
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);
(問い合わせ送信)
send(s, sqm, sqm->msglen, 0);
printf("SEND END C\n");
(問い合わせ結果の受信)
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は、アプリケーションプログラム13からのアクセス権限を認証するものであって、秘密鍵及び公開鍵を管理して制御する。
(1)当該カーネルプログラム11のアクセス認証部115は、「第1の秘密鍵」及び「第1の公開鍵」を管理する。そして、第1の公開鍵をアプリケーションプログラム13へ送信して公開する。
アプリケーションプログラム13は、カーネルプログラム11へソケットを介して送信するメッセージを、第1の公開鍵によって暗号化する。
(2)アプリケーションプログラム13は、「第2の秘密鍵」及び「第2の公開鍵」を管理する。そして、アプリケーションプログラム13は、第2の公開鍵をカーネルプログラム11のアクセス認証部115へ送信して公開する。
カーネルプログラム11は、アプリケーションプログラム13へソケットを介して送信するメッセージを、第2の公開鍵によって暗号化する。
尚、カーネルプログラム11のアクセス認証部115は、認証用のパスワードも予め設定している。
(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データベースに対するコマンドと共に、ライツを必ず付加して送信することを要する。
(S11)APIライブラリ部12は、カーネルプログラム11のSQLデータベースにアクセスする「コマンド」と、先に取得した「ライツ」(図4参照)とを、「第1の公開鍵」を用いて暗号化する。
(S31)カーネルプログラムのアクセス制御部114は、sqmsgに含まれるメッセージを、「第1の秘密鍵」によって復号する。
(S32)カーネルプログラムのアクセス制御部114は、復号されたライツが、自ら生成したライツと一致するか否かを認証する。
(S41)カーネルプログラムのアクセス制御部114は、リレーショナルデータベース111からの実行結果を、「第2の公開鍵」によって暗号化する。
10 ストレージデバイス
11 カーネルプログラム
111 リレーショナルデータベース
112 デバイスドライバ
113 ソケット確立部
114 アクセス制御部
115 アクセス認証部
12 APIライブラリ部
13 アプリケーションプログラム
アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力するアクセス制御手段と
してコンピュータを機能させ、
当該カーネルプログラムは、ファイルシステムと、当該ファイルシステムに関するシステムコールとを実装せず、
リレーショナルデータベースが管理するデータは、デバイスドライバを介してストレージデバイスのみに配置されることを特徴とする。
アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力するアクセス制御手段と
を有し、
当該カーネルプログラムは、ファイルシステムと、当該ファイルシステムに関するシステムコールとを実装せず、
リレーショナルデータベースが管理するデータは、デバイスドライバを介してストレージデバイスのみに配置されることを特徴とする。
カーネルプログラム内に、ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースを有し、
アプリケーションプログラムとの間で、ソケット(socket)を確立する第1のステップと、
アプリケーションプログラムからソケットのメッセージ構造を介してコマンドを入力し、該コマンドをリレーショナルデータベースへ出力すると共に、リレーショナルデータベースから実行結果を入力し、該実行結果をソケットのメッセージ構造を介してアプリケーションプログラムへ出力する第2のステップと
を有し、
当該カーネルプログラムは、ファイルシステムと、当該ファイルシステムに関するシステムコールとを実装せず、
リレーショナルデータベースが管理するデータは、デバイスドライバを介してストレージデバイスのみに配置されることを特徴とする。
Claims (8)
- アプリケーションプログラムとストレージデバイスとの間でデータを入出力するコンピュータに搭載されたカーネルプログラムにおいて、
アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
前記アプリケーションプログラムから前記ソケットのメッセージ構造を介してコマンドを入力し、該コマンドを前記リレーショナルデータベースへ出力すると共に、前記リレーショナルデータベースから実行結果を入力し、該実行結果を前記ソケットのメッセージ構造を介して前記アプリケーションプログラムへ出力するアクセス制御手段と
してコンピュータを機能させることを特徴とするカーネルプログラム。 - 前記リレーショナルデータベースは、クライアントとRDBMS(Relational DataBase Management System)サーバとを一体化した軽量SQLデータベースである
ようにコンピュータを機能させることを特徴とする請求項1に記載のカーネルプログラム。 - ファイルシステムと、当該ファイルシステムに関するシステムコールとを実装しない
ようにコンピュータを機能させることを特徴とする請求項1又は2に記載のカーネルプログラム。 - 当該カーネルプログラムは、第1の秘密鍵及び第1の公開鍵を管理し、第1の公開鍵をアプリケーションプログラムへ送信すると共に、第2の秘密鍵及び第2の公開鍵を管理するアプリケーションプログラムから、第2の公開鍵を受信するアクセス認証手段を更に有し、
前記アプリケーションプログラムへ前記ソケットを介して送信するメッセージは、第1の公開鍵によって暗号化し、前記アプリケーションプログラムから前記ソケットを介して受信するメッセージは、第2の公開鍵によって暗号化されている
ようにコンピュータを機能させることを特徴とする請求項1から3のいずれか1項に記載のカーネルプログラム。 - 前記アクセス認証手段は、前記アプリケーションプログラムのアクセス権限となるライツ(rights)を生成し、該ライツを第2の公開鍵で暗号化し、暗号化された該ライツを前記アプリケーションプログラムへ送信し、
前記アプリケーションプログラムから前記ソケットを介して受信するメッセージには、前記コマンドと共に前記ライツが含まれており、
前記アクセス制御手段は、前記アプリケーションプログラムから受信したメッセージを第1の秘密鍵によって復号し、該メッセージに含まれる前記ライツを認証し、認証成功の場合にのみ、当該コマンドを前記リレーショナルデータベースへ出力する
ようにコンピュータを機能させることを特徴とする請求項4に記載のカーネルプログラム。 - 前記アクセス認証手段は、認証用パスワードを予め記憶しており、
前記アクセス認証手段は、前記アプリケーションプログラムから暗号化されたパスワードを受信した際に、受信したパスワードを第1の秘密鍵によって復号し、予め記憶されたパスワードと一致するか否かを認証し、認証成功の場合にのみ、前記ライツを生成する
ようにコンピュータを機能させることを特徴とする請求項5に記載のカーネルプログラム。 - アプリケーションプログラムとストレージデバイスとの間でデータを入出力するカーネルプログラムを実装した装置において、
アプリケーションプログラムとの間で、ソケット(socket)を確立するソケット確立手段と、
ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースと、
前記アプリケーションプログラムから前記ソケットのメッセージ構造を介してコマンドを入力し、該コマンドを前記リレーショナルデータベースへ出力すると共に、前記リレーショナルデータベースから実行結果を入力し、該実行結果を前記ソケットのメッセージ構造を介して前記アプリケーションプログラムへ出力するアクセス制御手段と
を有することを特徴とする装置。 - アプリケーションプログラムとストレージデバイスとの間でデータを入出力するカーネルプログラムの実行方法において、
前記カーネルプログラム内に、ストレージデバイスとの間で、デバイスドライバを介して、データを入出力するリレーショナルデータベースを有し、
アプリケーションプログラムとの間で、ソケット(socket)を確立する第1のステップと、
前記アプリケーションプログラムから前記ソケットのメッセージ構造を介してコマンドを入力し、該コマンドを前記リレーショナルデータベースへ出力すると共に、前記リレーショナルデータベースから実行結果を入力し、該実行結果を前記ソケットのメッセージ構造を介して前記アプリケーションプログラムへ出力する第2のステップと
を有することを特徴とするカーネルプログラムの実行方法。
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)
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)
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 |
-
2014
- 2014-06-06 JP JP2014118082A patent/JP5711840B1/ja active Active
-
2015
- 2015-06-05 CN CN201580027797.7A patent/CN106575342B/zh active Active
- 2015-06-05 US US15/313,997 patent/US10324774B2/en active Active
- 2015-06-05 WO PCT/JP2015/066311 patent/WO2015186820A1/ja active Application Filing
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 |