CN106575342A - 包括关系数据库的内核程序、以及用于执行所述程序的方法和装置 - Google Patents

包括关系数据库的内核程序、以及用于执行所述程序的方法和装置 Download PDF

Info

Publication number
CN106575342A
CN106575342A CN201580027797.7A CN201580027797A CN106575342A CN 106575342 A CN106575342 A CN 106575342A CN 201580027797 A CN201580027797 A CN 201580027797A CN 106575342 A CN106575342 A CN 106575342A
Authority
CN
China
Prior art keywords
program
application program
socket
kernel
relational database
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
CN201580027797.7A
Other languages
English (en)
Other versions
CN106575342B (zh
Inventor
池田清和
竹冈尚三
香野孝通
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.)
Bamboo Research Laboratory Co Ltd
Original Assignee
Bamboo Research Laboratory Co Ltd
Hsbc Electronics
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 Bamboo Research Laboratory Co Ltd, Hsbc Electronics filed Critical Bamboo Research Laboratory Co Ltd
Publication of CN106575342A publication Critical patent/CN106575342A/zh
Application granted granted Critical
Publication of CN106575342B publication Critical patent/CN106575342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (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内核级上的文件系统的情况下增强存储在存储设备中的数据的机密性的内核程序等。所述内核程序安装在计算机上,可操作用于在应用程序与存储设备之间输入和输出数据并且使所述计算机充当:套接字建立器,所述套接字建立器建立用于与所述应用程序连接的套接字;关系数据库,所述关系数据库可操作用于通过设备驱动器从/向所述存储设备输入和输出数据;以及访问控制器,所述访问控制器通过所述套接字的消息结构从所述应用程序输入命令然后向所述关系数据库输出所述命令,并且从所述关系数据库输入执行结果然后通过所述套接字的消息结构向所述应用程序输出所述执行结果。

Description

包括关系数据库的内核程序、以及用于执行所述程序的方法 和装置
技术领域
本发明涉及在OS(操作系统)中的内核程序的技术。
本申请要求于2014年6月6日递交的日本专利申请号2014-118082的根据巴黎公约的优先权权益,所述日本专利申请根据PCT规则20.6通过引用结合在此。
背景技术
由Unix(注册商标)和Windows(注册商标)表示的OS的内核程序被配置成从本质上包括文件系统。所述文件系统是具有对存储在(辅助)存储设备(如HDD(硬盘驱动器)或SSD(固态驱动器))中的文件(数据)进行管理的功能的系统。所述文件系统为应用程序提供用于操作文件同时使应用程序看不到在存储设备中存储数据的实际状态的抽象(访问)接口。
所述文件系统通常以使所有文件在根目录下构成分层结构的方式来表示数据的状态。所述文件系统被进一步适配成用于使用挂载操作来使一个目录从属于另一个目录,这使得应用程序能够通过指示目录(分层位置)和文件名来指定目标文件。
所述文件系统通常具有在每个文件中向每个“所有者”、“组”以及“其他用户”给予访问权限“读r”、“写w”以及“执行e”的结构。所述访问权限被如下表达(例如,每个用户3比特,总共9比特):
“所有者” “组” “其他用户”
r,w,e r,w,e r,w,e
通过使用Unix(注册商标)的ls命令来引用访问权限的结果的示例如下:
%ls-l owner.c
-rw-r--r--1ikeda toyotsu 375May 14 10:35owner.c
此参考结果示出所有者可以执行读和写然而被阻止直接进行执行,并且组成员和其他用户可以进行读然而既不允许执行写也不允许执行。使用这种形式,文件系统管理每个文件的访问权限。
现有技术文献
专利文献
专利文献1:日本未审查专利申请公开号2006-503369
发明内容
本发明要解决的课题
如上文描述的常规文件系统允许人员窃取所有者授权(或管理员授权)来读出根目录下的所有文件。这种问题的常规解决方案之一是在应用级别上确保存储在存储设备中的文件的安全性。然而,由于需要内核程序以较高的速度、较少的运算量来执行过程,因此OS的常规内核程序仅提供访问授权的相当简单的认证。
然而,近年来,在智能电话和平板型终端已经变得非常流行的情况下,大量计算机被连接到通信网络。因此,在应用级别上确保安全性需要的运算量急剧增大。然而,在OS内核级上的文件系统中,存储设备仅以目录的形式积累文件。因此,如果破坏应用级别安全性,那么窃取存储在存储设备中的根目录下的所有文件变得可能。具体地,当存储在文件系统中的数据是私人信息时,安全性问题变得更加严重。
此处内核程序通常是通过以极高的速度追求执行高精度处理而获得的产品。因此,即使从全球来看,仅存在几种内核程序,如Unix(注册商标)、Windows(注册商标)等。由于这种情况,OS内核级上的文件系统的配置一直未改变并且变得过时。
因此,本发明的目标是提供能够增强存储在存储设备中的数据的机密性而不使用OS内核级上的文件系统的内核程序、方法和装置。
解决课题的方法
根据本发明,提供了一种将被安装在计算机上的内核程序,所述内核程序可操作用于在应用程序与存储设备之间输入和输出数据,所述内核程序使所述计算机充当:
套接字建立器,所述套接字建立器建立用于与所述应用程序连接的套接字;
关系数据库,所述关系数据库可操作用于通过设备驱动器从/向所述存储设备输入和输出数据;以及
访问控制器,所述访问控制器通过所述套接字的消息结构从所述应用程序输入命令然后向所述关系数据库输出所述命令,并且从所述关系数据库输入执行结果然后通过所述套接字的消息结构向所述应用程序输出所述执行结果,
在不使用文件系统以及用于所述文件系统的系统调用的情况下对所述内核程序进行配置,并且
由所述关系数据库管理的数据通过所述设备驱动器仅被布置在所述存储设备内。
如根据本发明的内核程序的实施例,优选的是,所述关系数据库为其中客户端和RDBMS(关系数据库管理系统)服务器被整合在一起的轻型SQL数据库。
如根据本发明的内核程序的另一个实施例,还优选的是,内核程序进一步使所述计算机充当:
访问认证器,所述访问认证器管理第一密钥和第一公钥以向所述应用程序发送所述第一公钥,并且从管理第二密钥和第二公钥的所述应用程序中接收所述第二公钥,
其中,通过使用所述第一公钥对将要通过所述套接字发送到所述应用程序的消息进行加密,并且使用所述第二公钥对通过所述套接字从所述应用程序中接收的消息进行加密。
如根据本发明的内核程序的另一个实施例,还优选的是:
所述访问认证器生成作为针对所述应用程序的访问授权的权限,并且使用所述第二公钥对所述权限进行加密,然后向所述应用程序发送所述加密权限;
通过所述套接字从所述应用程序中接收的所述消息包括所述权限以及所述命令;并且
所述访问控制器使用所述第一密钥对从所述应用程序中接收的所述消息进行解密,对包括在所述消息中的所述权限执行认证过程,并且然后仅当所述认证过程成功时向所述关系数据库输出所述命令。
如根据本发明的内核程序的另一个实施例,还优选的是:
所述访问认证器提前存储用于认证的口令;并且
当从所述应用程序中接收加密口令时,所述访问认证器使用所述第一密钥对所述接收的口令进行解密,通过判断所述解密口令是否与所述预先存储的口令一致来执行认证过程,并且然后仅当所述认证过程成功时生成所述权限。
根据本发明,提供了一种设置有内核程序的装置,所述内核程序可操作用于在应用程序与存储设备之间输入和输出数据,所述装置包括:
套接字建立器,所述套接字建立器建立用于与所述应用程序连接的套接字;
关系数据库,所述关系数据库可操作用于通过设备驱动器从/向所述存储设备输入和输出数据;以及
访问控制器,所述访问控制器通过所述套接字的消息结构从所述应用程序输入命令然后向所述关系数据库输出所述命令,并且从所述关系数据库输入执行结果然后通过所述套接字的消息结构向所述应用程序输出所述执行结果,
在不使用文件系统以及用于所述文件系统的系统调用的情况下对所述内核程序进行配置,并且
由所述关系数据库管理的数据通过所述设备驱动器仅被布置在所述存储设备内。
根据本发明,提供了一种执行内核程序的方法,所述内核程序可操作用于在应用程序与存储设备之间输入和输出数据,所述内核程序包括可操作用于通过设备驱动器从/向所述存储设备输入和输出数据的关系数据库,并且所述方法包括:
建立用于与所述应用程序连接的套接字的步骤;以及
通过所述套接字的消息结构从所述应用程序输入命令然后向所述关系数据库输出所述命令并且从所述关系数据库输入执行结果然后通过所述套接字的消息结构向所述应用程序输出所述执行结果的步骤,
在不使用文件系统以及用于所述文件系统的系统调用的情况下对所述内核程序进行配置,并且
由所述关系数据库管理的数据通过所述设备驱动器仅被布置在所述存储设备内。发明的效果
根据本发明的内核程序以及用于执行所述内核程序的方法和装置使能够在不使用OS内核级上的文件系统的情况下增强存储在存储设备中的数据的机密性。
附图说明
呈现附图,在附图中:
图1是功能性框图,展示了根据本发明的设置有内核程序的装置的一个实施例;
图2是示意图,用于使用所描述的代码来解释建立套接字以及发送和接收消息的实施例;
图3是时序图,示出了在API库、套接字建立器以及访问控制器之间的时序过程的实施例;
图4是第一时序图,示出了在API库与访问认证器之间的时序过程的实施例;并且
图5是第二时序图,示出了在API库与访问认证器之间的时序过程的实施例。
具体实施方式
以下将参照附图描述本发明的说明性实施例。
图1是功能性框图,展示了根据本发明的设置有内核程序的装置的一个实施例。
如图1所示,装置1被配置成包括处理器(计算机)和存储设备10(如HDD或SSD)并且用于设置有作为软件通过在安装的处理器上被执行而起作用的内核程序11、API(应用程序接口)库12以及一个或多个应用程序13。此外,根据本发明的内核程序11包括关系数据库111、设备驱动器112、套接字建立器113、访问控制器114以及访问认证器115。此处,在图中通过箭头连接功能单元而直观化的处理流程可以被理解为一种用于执行内核程序的方法。
(API库12)所述API库12被适配成用于实现应用程序13中所使用的语言与查询语言(即在关系数据库中所使用的语言)之间的相互转换。通过使用内核程序11的系统调用接口将API的应用侧接口描述为系统程序设计。
此处,以使得删除与现有文件系统相关联的低级别系统调用的方式构建根据本发明的内核程序11。例如,可以删除以下系统调用。
open(),close()
在破坏应用级别安全性然后以访问具有所有者授权的文件系统的情况下,低级别系统调用(如,open())可以打开整个文件。因此,读出所有文件变得容易。为了防范攻击,在根据本发明的内核程序11中,文件系统被删除并因此排除相关联的系统调用(如open()和close())。
(关系数据库111)根据本发明的内核程序11设置有代替现有文件系统的关系数据库111。通常,即使是管理员授权也不能从对应于内核空间的存储器区域中进行读取或写入。此处,本发明在内核空间内安排程序代码和操作存储器区域以及关系数据库,所述关系数据库实现数据库的极高机密性。
关系数据库111被适配成用于通过设备驱动器112从/向所述存储设备10输入和输出数据。其中客户端和RDBMS服务器被整合在一起的轻型SQL数据库可以被用作关系数据库111,并且整个数据库可以被视作单个文件。明确地,可以采用“SQLite3”作为所述轻型SQL数据库。
此处,值得注意的一点是,不像具有目录结构的文件系统,SQL数据库原则上防止在文件单元中取出数据。即,SQL数据库总是被配置成用于当输入查询时输出响应(执行结果)。因此,即使是成功窃取整个数据库的恶意第三方,几乎很难从窃取的数据库中取出单独的文件。因此,本发明在内核程序而非现有文件系统中实现以上SQL数据库,从而极大地提高文件管理的安全性。
SQL数据库确定在存储设备10中进行存储的每种方式。基于SQL数据库,存储设备10中的存储器结构被构建成具有高效率的内存数据库,以便不识别来自外部的结构。通过使用这种SQL数据库,即使在破坏安全性的情况下,仍然不可能读出或篡改每个文件。
此处,常规的SQL数据库被执行为应用程序,并且因此作为数据库的实体的文件还被存储在现有文件系统中。布置在现有文件系统上的这种数据库允许具有管理员授权的人员通过使用常用命令来统一地读出所有文件。
相比之下,根据本发明的SQL数据库的文件如它们在存储设备中一样通过设备驱动器被存储。这意味着,SQL数据库直接管理存储设备区域。因此,因为本发明的数据库没有布置在现有文件系统上,所以即使是具有OS管理员授权的人员也不能复制数据库的文件的全部或部分。
不可能找到存储设备10上的SQL数据库的数据实体的位置,除非深入理解数据库的内部数据结构以及用于管理所述结构的方法两者。因此,以显著的形式读出或篡改存储设备10上的数据库数据是极其困难的。进一步地,因为内核空间中的程序代码和存储器区域信息也都不可以被取出,所以存储设备10上的任何数据的位置以及程序代码和SQL数据库自身的存储器空间不可以被分析。
如根据本发明的SQL数据库,可以使用“SQLite”,所述“SQLite”是结合PHP使用DBMS(数据库管理系统)管理的内置类型数据库。SQLite不基于服务器的任何概念,不像客户端-服务器类型DBMS(如MySQL和PostgreSQL)。也就是说,SQLite具有一套体制,在所述体制中,服务器与客户端被整合在一起并因此数据库的全部内容存储在单个本地区域中。
图2是示意图,用于使用描述的代码来解释建立套接字以及发送和接收消息的实施例。并且图3是时序图,示出了在API库、套接字建立器以及访问控制器之间的时序过程的实施例。
(套接字建立器113)套接字建立器113被配置成用于建立与应用程序13连接的套接字(参见图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:名称大小
accept(s,name,namelen):在内核程序侧接受连接
s:套接字号
dbname:SQLite3数据库名称
namelen:名称大小
close:在API侧删除套接字
上述代码“domain=AF-UNIX”在不使用任何IP地址或端口号的情况下实现了关闭在单个装置内的套接字通信的建立。因此,阻止与任何其他装置的通信连接实现了高安全性。
在建立套接字之后,应用程序13(API库12)可以通过使用针对套接字通信的系统调用来访问布置在内核程序11内的SQL数据库。此处,API库12和内核程序11使用如下消息结构“sqmsg”来与彼此通信(参见图3中的步骤S2)。
(传输查询)API可以通过执行以下过程来向内核程序发送查询:
在“sqmsg.msg[]”中设置查询,然后设置“sqmsg.request=1”(当执行预注册的查询时,使用BSON形式来设置“sqmsg.msg[]”中的参数,然后设置“sqmsg.request=2”);
当请求立即执行时,设置“sqmsg.flag=1”;
API通过使用“send()/write()”来向内核程序发送“sqmsg”(参见图3中的步骤S3);以及
内核程序通过使用“recv()/read()”来接收sqmsq(参见图3中的步骤S3)。
(接收执行结果)为了将执行结果返回至API,内核程序执行以下过程:
设置“sqmsg.request=0”(将“sqmsg.request”设置为零);
将“sqmsg.u.value”设置为成功值/失败值(如果成功,则sqmsg.u.value=0;如果失败,则sqmsg.u.value=-1);
在sqmsg结构中设置执行结果(当执行预注册的查询时,使用BSON形式来设置“sqmsg.payload[]”中的参数,然后设置“sqmsg.request=3”);
内核程序通过使用“send()/write()”来将“sqmsg”发送至API(参见图3中的步骤S6);以及
API通过使用“recv()/read()”来接收sqmsq(参见图6中的步骤S3)。
此处,BSON是二进制格式,并且如下例如在JSON的情况下对其进行描述。
插入到值(:a:b:c)中;
(访问控制器114)访问控制器114被配置成用于通过套接字的消息结构从应用程序13输入命令,然后向关系数据库111输出所述命令。访问控制器114被进一步被适配成用于输入来自关系数据库111的执行结果,然后通过套接字的消息结构将执行结果输出至应用程序13。
此处,将描述在API库12中的应用程序侧的接口与内核程序侧的系统调用之间的关系的特定示例。
(1)首先,准备以下函数来将以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()”重复地执行调用,直到读出所有执行结果为止。
(接收查询执行结果)
此处,在以上数据中的“连续标志”使能够判断所读数据之后是否是连续的数据。
(访问认证器115)访问认证器115被配置成用于认证应用程序13的访问权限,并且管理和控制有待使用的密钥和公钥。
(1)内核程序11的访问认证器115管理“第一密钥”和“第一公钥”,并且将“第一公钥”发送至应用程序13,从而打开它。
应用程序13使用接收的第一公钥来对有待通过套接字发送至内核程序11的消息进行加密。
(2)应用程序13管理“第二密钥”和“第二公钥”,并且将“第二公钥”发送至内核程序11的访问认证器115,从而打开它。
内核程序11使用接收的第二公钥来对有待通过套接字发送至应用程序13的消息进行加密。此处,内核程序11的访问认证器115提前设置用于认证的口令。
图4是第一时序图,示出了在API库与访问认证器之间的时序过程的实施例。如图所示,API库被布置在应用程序侧。
(S101)内核程序11的访问认证器115提前将“第一公钥”发送至API库12。
(S102)当访问内核程序11的关系数据库时,API库12首先通过使用在步骤S101中接收的第一公钥来对保存的“口令”以及生成的“第二公钥”进行加密。
(S103)API库12使用系统调用来将加密消息(加密口令和第二公钥)发送至内核程序11。例如,分别设置以下系统调用。
sqlite3_set_authorizer()
(S104)内核程序11的访问认证器115通过使用“第一密钥”来解密使用系统调用接收的消息,由此获得口令和第二公钥。然后,访问认证器115通过判断所获得的口令是否与预设口令一致来执行认证过程。
(S105)在口令认证成功时,内核程序11的认证器115生成“权限”。所述权限是指用于访问内核程序11的数据库的访问授权。
(S106)内核程序11的访问认证器115使用“第二公钥”来对权限进行加密。
(S107)作为对之前的系统调用的响应,内核程序11的访问认证器115将加密权限返回至API库12。
然后,API库12(应用程序13)通过使用“第二密钥”来解密所接收的加密权限,以获得权限。在那之后,每当向SQL数据库发送命令时,API库12总是将权限添加至待发送的命令中。
此处,由通过API库12来获得权限的应用执行的过程可以给予其他可靠应用的过程权限。即,多个处理可以共享用于访问内核程序的单个访问授权。因为通过公钥方法来将其自己的权限进行加密,所以更加难以欺骗地获取权限。
图5是第二时序图,示出了在API库与访问认证器之间的时序过程的实施例。在图5中示出的时序过程紧随在图4中示出的时序过程。
(S1)在内核程序11成功认证访问之后(在向API库12发送权限之后),套接字建立器113建立用于与API库12进行连接的套接字(如在图3中的以上步骤S1)。
(S11)API库12使用“第一公钥”来对用于访问内核程序11的SQL数据库的“命令”以及之前获得的“权限”进行加密(参见图4)。
(S2)API库12生成包括加密消息(命令和权限)的消息结构“sqmsg”。
(S3)API库12使用“send()/write()”来将sqmsg发送至内核程序。内核程序使用“recv()/read()”来接收sqmsg。
(S31)内核程序的访问控制器114通过使用“第一密钥”来解密包括在sqmsg中的消息。
(S32)作为权限认证,内核程序的访问控制器114判断解密权限是否与其自己生成的权限相匹配。
(S4)只有在权限认证成功时,访问控制器114才将解密权限输出至关系数据库111。因此,只有应用程序的通过以上检查的命令可以实现对SQL数据库的访问。接收这种命令,关系数据库111返回执行结果。
(S41)内核程序的访问控制器114使用“第二公钥”来对从关系数据库111中接收的执行结果进行加密。
(S5)访问控制器114生成包括加密执行结果的消息结构“sqmsg”。
(S6)访问控制器114使用“send()/write()”来将sqmsg发送至API库12。API库12通过使用“recv()/read()”来接收sqmsg。
(S7)API库12使用“第二密钥”来解密包括在sqmsg中的消息。
如以上详细地解释的,根据本发明的内核程序以及用于执行内核程序的方法和装置允许在不使用OS内核级上的文件系统的情况下提高存储在存储设备中的数据的机密性。
根据本发明,通常作为应用在用户空间中被执行的数据库被安排在内核空间内。因此,可以阻止对数据库的访问并且可以隐藏数据库的操作存储器区域。也就说,即使是OS的管理员授权也不可以读出数据库的程序代码以及存储器区域的任何数据,这实现了极高的机密性。
设置有根据本发明的内核程序的装置最适合用作用于管理个人数据的数据库。最近,经常发生这样的问题:恶意第三方通过通信网络来窃取存储在个人终端中的个人数据。本发明提供了针对所述问题的解决方案,所述解决方案防止所有个人数据被窃取。具体地,优选的是,将根据本发明的装置应用到安装在汽车上的计算机系统的存储器装置上。未来将实现的自动驾驶技术必须要求改进存储在每辆汽车中的数据的机密性和防篡改。进一步地,通过在每个单独的所有者中利用本发明的装置,实现了个人信息的高级安全性。
在不背离本发明的精神和范围的情况下,可以构建本发明的上述各种实施例的许多广泛不同的替换和修改。所有前述实施例是仅作本发明的示例之用,并且并不旨在限制。相应地,仅如以下权利要求书及其等效物中所界定的那样限定本发明。
附图标记列表
1 装置;10 存储设备; 11 内核程序;111 关系数据库;112 设备驱动器;113 套接字建立器;114 访问控制器;115 访问认证器;12 API库;以及 13 应用程序。

Claims (7)

1.一种有待安装在计算机上的内核程序,所述内核程序可操作用于在应用程序与存储设备之间输入和输出数据,所述内核程序使所述计算机充当:
套接字建立器,所述套接字建立器建立用于与所述应用程序连接的套接字;
关系数据库,所述关系数据库可操作用于通过设备驱动器从/向所述存储设备输入和输出数据;以及
访问控制器,所述访问控制器通过所述套接字的消息结构从所述应用程序输入命令然后向所述关系数据库输出所述命令,并且从所述关系数据库输入执行结果然后通过所述套接字的消息结构向所述应用程序输出所述执行结果,
在不使用文件系统以及用于所述文件系统的系统调用的情况下对所述内核程序进行配置,并且
由所述关系数据库管理的数据通过所述设备驱动器仅被布置在所述存储设备内。
2.如权利要求1所述的内核程序,其中,所述关系数据库为其中客户端与RDBMS(关系数据库管理系统)服务器被整合在一起的轻型SQL数据库。
3.如权利要求1所述的内核程序,进一步使所述计算机充当:
访问认证器,所述访问认证器管理第一密钥和第一公钥以向所述应用程序发送所述第一公钥,并且从管理第二密钥和第二公钥的所述应用程序中接收所述第二公钥,
其中,通过使用所述第一公钥对有待通过所述套接字发送到所述应用程序的消息进行加密,并且使用所述第二公钥对通过所述套接字从所述应用程序中接收的消息进行加密。
4.如权利要求3所述的内核程序,其中,所述访问认证器生成作为针对所述应用程序的访问授权的权限,并且使用所述第二公钥对所述权限进行加密,然后将所述加密权限发送至所述应用程序,
其中,通过所述套接字从所述应用程序中接收的所述消息包括所述权限以及所述命令,并且
其中,所述访问控制器使用所述第一密钥对从所述应用程序中接收的所述消息进行解密,对包括在所述消息中的所述权限执行认证过程,并且然后仅当所述认证过程成功时向所述关系数据库输出所述命令。
5.如权利要求4所述的内核程序,其中,所述访问认证器提前存储用于认证的口令,并且
其中,当从所述应用程序中接收加密口令时,所述访问认证器使用所述第一密钥对所述接收的口令进行解密,通过判断所述解密口令是否与所述预先存储的口令一致来执行认证过程,并且然后仅当所述认证过程成功时生成所述权限。
6.一种设置有内核程序的装置,所述内核程序可操作用于在应用程序与存储设备之间输入和输出数据,所述装置包括:
套接字建立器,所述套接字建立器建立用于与所述应用程序连接的套接字;
关系数据库,所述关系数据库可操作用于通过设备驱动器从/向所述存储设备输入和输出数据;以及
访问控制器,所述访问控制器通过所述套接字的消息结构从所述应用程序输入命令然后向所述关系数据库输出所述命令,并且从所述关系数据库输入执行结果然后通过所述套接字的消息结构向所述应用程序输出所述执行结果,
在不使用文件系统以及用于所述文件系统的系统调用的情况下对所述内核程序进行配置,并且
由所述关系数据库管理的数据通过所述设备驱动器仅被布置在所述存储设备内。
7.一种执行内核程序的方法,所述内核程序可操作用于在应用程序与存储设备之间输入和输出数据,所述内核程序包括可操作用于通过设备驱动器从/向所述存储设备输入和输出数据的关系数据库,并且所述方法包括:
建立用于与所述应用程序连接的套接字的步骤;以及
通过所述套接字的消息结构从所述应用程序输入命令然后向所述关系数据库输出所述命令并且从所述关系数据库输入执行结果然后通过所述套接字的消息结构向所述应用程序输出所述执行结果的步骤,
在不使用文件系统以及用于所述文件系统的系统调用的情况下对所述内核程序进行配置,并且
由所述关系数据库管理的数据通过所述设备驱动器仅被布置在所述存储设备内。
CN201580027797.7A 2014-06-06 2015-06-05 包括关系数据库的内核程序、以及用于执行所述程序的方法和装置 Active CN106575342B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014-118082 2014-06-06
JP2014118082A JP5711840B1 (ja) 2014-06-06 2014-06-06 リレーショナルデータベースを内在するカーネルプログラム、方法及び装置
PCT/JP2015/066311 WO2015186820A1 (ja) 2014-06-06 2015-06-05 リレーショナルデータベースを内在するカーネルプログラム、該プログラムを実行する方法及び装置

Publications (2)

Publication Number Publication Date
CN106575342A true CN106575342A (zh) 2017-04-19
CN106575342B CN106575342B (zh) 2018-02-02

Family

ID=53277225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580027797.7A Active CN106575342B (zh) 2014-06-06 2015-06-05 包括关系数据库的内核程序、以及用于执行所述程序的方法和装置

Country Status (4)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955582A (zh) * 2019-11-24 2020-04-03 浪潮电子信息产业股份有限公司 一种内核信息输出方法、装置、设备及可读存储介质

Families Citing this family (16)

* 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
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
US11616651B2 (en) 2019-01-04 2023-03-28 Baidu Usa Llc Method for establishing a secure information exchange channel between a host system and a data processing accelerator
KR102323763B1 (ko) 2019-01-04 2021-11-08 바이두닷컴 타임즈 테크놀로지(베이징) 컴퍼니 리미티드 호스트 시스템과 데이터 처리 가속기 사이의 보안 통신을 제공하기 위한 방법 및 시스템
CN112236772B (zh) 2019-01-04 2023-12-22 百度时代网络技术(北京)有限公司 用于管理数据处理加速器的内存的方法和系统
CN112262546B (zh) * 2019-01-04 2024-04-23 百度时代网络技术(北京)有限公司 用于数据处理加速器的密钥分配和交换的方法和系统
US11233652B2 (en) 2019-01-04 2022-01-25 Baidu Usa Llc Method and system to derive a session key to secure an information exchange channel between a host system and a data processing accelerator
US11799651B2 (en) 2019-01-04 2023-10-24 Baidu Usa Llc Data processing accelerator having a security unit to provide root trust services
WO2020140261A1 (en) 2019-01-04 2020-07-09 Baidu.Com Times Technology (Beijing) Co., Ltd. Method and system for protecting data processed by data processing accelerators
EP3794763B1 (en) 2019-01-04 2024-08-14 Baidu.com Times Technology (Beijing) Co., Ltd. An attestation protocol between a host system and a data processing accelerator
CN112352242B (zh) 2019-01-04 2024-03-22 百度时代网络技术(北京)有限公司 具有本地时间单元以生成时间戳的数据处理加速器
US11727127B2 (en) * 2020-10-16 2023-08-15 Micron Technology, Inc. Secure storage device verification with multiple computing devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259450A1 (en) * 2005-05-13 2006-11-16 Fujitsu Limited Multimodal control device and multimodal control method
US20070050620A1 (en) * 2002-10-16 2007-03-01 Duc Pham Secure file system server architecture and methods
JP2007094879A (ja) * 2005-09-29 2007-04-12 Toshiba Corp オペレーティングシステム用基本プログラムの認証システム、これに用いるコンピュータ、およびコンピュータプログラム
CN101877700A (zh) * 2009-04-28 2010-11-03 惠普开发有限公司 在应用与数据库之间传递机密信息

Family Cites Families (3)

* 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
GB2404537B (en) * 2003-07-31 2007-03-14 Hewlett Packard Development Co Controlling access to data
US7702906B1 (en) * 2005-06-30 2010-04-20 Symantec Operating Corporation Securing kernel metadata communication in environments employing distributed software services

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050620A1 (en) * 2002-10-16 2007-03-01 Duc Pham Secure file system server architecture and methods
US20060259450A1 (en) * 2005-05-13 2006-11-16 Fujitsu Limited Multimodal control device and multimodal control method
JP2007094879A (ja) * 2005-09-29 2007-04-12 Toshiba Corp オペレーティングシステム用基本プログラムの認証システム、これに用いるコンピュータ、およびコンピュータプログラム
CN101877700A (zh) * 2009-04-28 2010-11-03 惠普开发有限公司 在应用与数据库之间传递机密信息

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955582A (zh) * 2019-11-24 2020-04-03 浪潮电子信息产业股份有限公司 一种内核信息输出方法、装置、设备及可读存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
CN106575342B (zh) 包括关系数据库的内核程序、以及用于执行所述程序的方法和装置
US11887705B2 (en) Apparatus, system and method for patient-authorized secure and time-limited access to patient medical records utilizing key encryption
US7802112B2 (en) Information processing apparatus with security module
CN113545006B (zh) 远程授权访问锁定的数据存储设备
EP3585032B1 (en) Data security service
EP2731042B1 (en) Computer system for storing and retrieval of encrypted data items using a tablet computer and computer-implemented method
US9166796B2 (en) Secure biometric cloud storage system
US11290446B2 (en) Access to data stored in a cloud
CN103561034B (zh) 一种安全文件共享系统
US9721071B2 (en) Binding of cryptographic content using unique device characteristics with server heuristics
US20150121498A1 (en) Remote keychain for mobile devices
US20150143107A1 (en) Data security tools for shared data
CN113316915B (zh) 解锁数据存储设备
CN107209843A (zh) 安全执行环境通信
CN105279453A (zh) 一种支持分离存储管理的文件分区隐藏系统及其方法
CN113383335B (zh) 数据存储设备事件的安全日志记录
US8755521B2 (en) Security method and system for media playback devices
US20060047625A1 (en) DBMS administration of secure stores
CN108345801B (zh) 一种面向密文数据库的中间件动态用户认证方法及系统
CN108243158A (zh) 一种安全认证的方法和装置
WO2023178724A1 (zh) 智能门铃防盗版方法、系统、智能门铃及计算机可读存储介质
JP2024043587A (ja) ファイル共有システム及び方法
TW202418783A (zh) 上鎖與解鎖儲存裝置的方法和其相關的系統
CN117313144A (zh) 敏感数据的管理方法、装置、存储介质和电子设备
NZ618683B2 (en) Access control to data stored in a cloud

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170808

Address after: Japan's Tokyo port harbor 2-3-13

Applicant after: Apex Electronics Inc

Applicant after: Bamboo Research Laboratory Co Ltd

Address before: Japan's Aichi Nagoya City West cattle Island town of 6-1

Applicant before: HSBC Electronics

Applicant before: Bamboo Research Laboratory Co Ltd

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191018

Address after: Tokyo, Japan

Patentee after: Bamboo Research Laboratory Co Ltd

Address before: Japan's Tokyo port harbor 2-3-13

Co-patentee before: Bamboo Research Laboratory Co Ltd

Patentee before: Apex Electronics Inc