KR102819844B1 - System and method for data sharing with enhanced security through docker and nfs - Google Patents
System and method for data sharing with enhanced security through docker and nfs Download PDFInfo
- Publication number
- KR102819844B1 KR102819844B1 KR1020240037853A KR20240037853A KR102819844B1 KR 102819844 B1 KR102819844 B1 KR 102819844B1 KR 1020240037853 A KR1020240037853 A KR 1020240037853A KR 20240037853 A KR20240037853 A KR 20240037853A KR 102819844 B1 KR102819844 B1 KR 102819844B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- user
- owner
- docker
- shared
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0838—Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
데이터 소유자와 상기 데이터 소유자의 데이터를 사용하는 인공지능 모델을 소유한 데이터 사용자 간의 데이터 공유를 안전하게 수행할 수 있도록 Docker기반의 데이터 소유자 및 데이터 사용자를 위한 어플리케이션을 제공하는 데이터 공유 시스템 및 방법에 관한 것으로, 외부장치로 공유할 공유데이터를 구비하고, 상기 공유데이터에 대한 공유 요청에 따라 인증 수행 및 접근 권한을 확인하고, 상기 공유데이터를 암호화한 후 상기 공유데이터로 접근을 위한 공유 정보를 전달하는 소유자도커모듈을 포함하는 데이터소유자장치; 및 상기 소유자도커모듈로 데이터 공유를 요청하고, 수신한 공유 정보에 따라 데이터에 접근하여 AI모델의 입력 데이터로 전달하고 상기AI모델을 실행하는 사용자도커모듈을 포함하는 데이터사용자장치;를 구비한다.A data sharing system and method for providing an application for data owners and data users based on Docker to safely perform data sharing between a data owner and a data user who owns an artificial intelligence model using the data of the data owner, comprises: a data owner device including an owner Docker module which provides shared data to be shared with an external device, performs authentication and confirms access rights according to a sharing request for the shared data, encrypts the shared data, and transmits shared information for access to the shared data; and a data user device including a user Docker module which requests data sharing with the owner Docker module, accesses the data according to the received shared information, transmits it as input data of an AI model, and executes the AI model.
Description
본 발명은 데이터 소유자와 상기 데이터 소유자의 데이터를 사용하는 인공지능 모델을 소유한 데이터 사용자 간의 데이터 공유를 안전하게 수행할 수 있도록 Docker기반의 데이터 소유자 및 데이터 사용자를 위한 어플리케이션을 제공하고, 소유자는 NFS 통신을 통해 인증된 사용자에게 암호화된 데이터를 공유하고, 데이터 사용자는 NFS URL을 통해 암호화된 데이터에 접근하여 복호화한 후 AI 모델의 입력으로 전달하여 AI모델을 실행하고 결과를 출력하며, 인증, 데이터 공유, AI모델의 데이터 적용 및 실행은 Docker 내에서 동작하는 것을 특징으로 한다.The present invention provides a Docker-based application for data owners and data users to safely perform data sharing between a data owner and a data user who owns an artificial intelligence model that uses the data of the data owner, wherein the owner shares encrypted data to an authenticated user through NFS communication, and the data user accesses the encrypted data through an NFS URL, decrypts it, and then passes it as an input to an AI model to execute the AI model and output the result, and authentication, data sharing, data application and execution of the AI model are characterized by operating within Docker.
인터넷과 디지털 기술의 발전으로 인해 데이터의 생성과 공유가 쉬워지면서 다양한 개인, 기업 및 조직이 데이터를 소유하고 관리하는 데이터의 탈중앙화 현상이 가속화되고 있다. 특히 인공지능 기술이 급속히 발전하면서, 인공지능 모델은 학습을 위해 대량의 데이터가 필요하고, 성능 향상과 실시간 응답성을 제공하기 위해 분산된 데이터와 분산된 모델을 사용하여 여러 위치에서 병렬적으로 추론을 수행해야 하므로 분산된 데이터에 대한 공유 및 액세스가 요구되고 있다.The development of the Internet and digital technology has made it easier to create and share data, accelerating the decentralization of data in which various individuals, companies, and organizations own and manage data. In particular, as artificial intelligence technology rapidly develops, artificial intelligence models require large amounts of data for learning, and in order to provide improved performance and real-time responsiveness, they must perform inference in parallel in multiple locations using distributed data and distributed models, which requires sharing and access to distributed data.
그러나, 다양한 디바이스 및 시스템에서 데이터를 공유하고, 액세스하기 위해서는 데이터의 기밀성을 유지하는 것이 중요하며, 이를 위한 보안 환경 및 정책을 운영해야 하는 어려움이 존재한다.However, in order to share and access data across various devices and systems, it is important to maintain the confidentiality of the data, and there is the difficulty of operating a security environment and policy for this.
따라서, 데이터 소유자는 데이터에 대한 소유권과 안전한 접근 제어가 가능해야 하고, 데이터 사용자는 데이터 관리 및 보안에 대한 부담을 줄이면서 데이터를 손쉽게 사용할 수 있는 데이터 공유 기술이 요구되고 있다.Therefore, data owners need to have ownership of their data and secure access control, and data users need data sharing technology that allows them to easily use data while reducing the burden of data management and security.
본 발명은 상기 문제점을 해결하기 위해 Docker기반의 데이터 소유자 및 데이터 사용자 모듈을 제공하고, 소유자는 NFS 통신을 통해 인증된 사용자에게 암호화된 데이터를 공유하고, 데이터 사용자는 NFS 링크를 통해 암호화된 데이터를 수신한 후 복호화하여 인공지능 모델이 사용할 수 있도록 하며, 상기 데이터 공유 작업 및 AI모델의 데이터 적용은 Docker 내에서 동작하도록 하여 데이터 기밀성을 유지하는 것을 목적으로 한다.The present invention provides a Docker-based data owner and data user module to solve the above problems, wherein the owner shares encrypted data with an authenticated user through NFS communication, the data user receives the encrypted data through an NFS link and decrypts it so that an artificial intelligence model can use it, and the data sharing operation and the data application of the AI model are performed within Docker, thereby maintaining data confidentiality.
본 발명의 일 실시예에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 시스템은, 외부장치로 공유할 공유데이터를 구비하고, 상기 공유데이터에 대한 공유 요청에 따라 인증 수행 및 접근 권한을 확인하고, 상기 공유데이터를 암호화한 후 상기 공유데이터로 접근을 위한 공유 정보를 전달하는 소유자도커모듈을 포함하는 데이터소유자장치; 및 상기 소유자도커모듈로 데이터 공유를 요청하고, 수신한 공유 정보에 따라 데이터에 접근하여 AI모델의 입력 데이터로 전달하고 상기AI모델을 실행하는 사용자도커모듈을 포함하는 데이터사용자장치;를 구비한다.A data sharing system with enhanced security through Docker and NFS according to one embodiment of the present invention comprises: a data owner device including an owner Docker module that has shared data to be shared with an external device, performs authentication and verifies access rights in response to a sharing request for the shared data, encrypts the shared data, and then transmits shared information for access to the shared data; and a data user device including a user Docker module that requests data sharing with the owner Docker module, accesses the data in response to the received shared information, transmits it as input data of an AI model, and executes the AI model.
또한, 상기 소유자도커모듈은 데이터소유자장치의 운영체제 내에서 독립적이고 격리된 환경에서 동작하는 도커(Docker) 기반 어플리케이션이고, 상기 소유자도커모듈은 데이터사용자장치의 운영체제 내에서 독립적이고 격리된 환경에서 동작하는 도커(Docker) 기반 어플리케이션이다.In addition, the owner Docker module is a Docker-based application that operates in an independent and isolated environment within the operating system of the data owner device, and the owner Docker module is a Docker-based application that operates in an independent and isolated environment within the operating system of the data user device.
또한, 상기 소유자도커모듈은, 상기 사용자도커모듈로부터 수신한 인증 요청에 포함된 사용자식별자 및 사용자OTP(One-Time Password)를 통해 사용자를 인증하되, 사전에 등록된 상기 사용자식별자의 OTP Seed를 조회하여 검증용 OTP를 생성하고, 수신한 사용자OTP와 비교하여 검증하며, 상기 사용자식별자의 데이터 접근 권한을 확인하는 소유자인증부;를 포함할 수 있다.In addition, the owner docker module may include an owner authentication unit that authenticates a user through a user identifier and a user OTP (One-Time Password) included in an authentication request received from the user docker module, generates an OTP for verification by looking up an OTP seed of the user identifier registered in advance, verifies it by comparing it with the received user OTP, and confirms the data access authority of the user identifier.
또한, 상기 소유자도커모듈은, 상기 사용자도커모듈로부터 수신한 사용자식별자에 대한 데이터 접근 권한에 따라 파일 시스템의 특정 디렉토리 또는 파일에 접근이 가능하도록 NFS 설정을 수행하고, 제공할 공유데이터에 대한 암호화를 요청하며, 암호화된 공유데이터의 NFS URL 및 데이터 정보를 전달하는 데이터공유부;를 더 포함하고, 상기 공유데이터는 상기 데이터소유자장치의 운영체제 상의 파일 시스템에 존재하되, 상기 소유자도커모듈이 동작하는 도커 컨테이너 외부 영역에 존재하는 것을 특징으로 한다.In addition, the owner Docker module further includes a data sharing unit that performs NFS settings to allow access to a specific directory or file of a file system according to data access rights for a user identifier received from the user Docker module, requests encryption of shared data to be provided, and transmits NFS URL and data information of encrypted shared data; and the shared data is characterized in that it exists in a file system on an operating system of the data owner device, but exists in an area outside the Docker container in which the owner Docker module operates.
또한, 상기 소유자도커모듈은, 상기 사용자도커모듈로부터 수신한 사용자OTP(One-Time Password)를 SALT값으로 적용하여 암호화키를 생성하고, 상기 암호화키를 적용하여 상기 사용자도커모듈이 요청한 공유데이터를 암호화하는 소유자암호부;를 더 포함할 수 있다.In addition, the owner docker module may further include an owner password section that generates an encryption key by applying a user OTP (One-Time Password) received from the user docker module as a SALT value, and encrypts shared data requested by the user docker module by applying the encryption key.
또한, 상기 사용자도커모듈은, 사전에 등록된 사용자식별자 및 OTP(One-Time Password) Seed를 포함하는 인증 정보를 조회하여 사용자OTP를 생성하고, 상기 사용자식별자 및 상기 사용자OTP를 포함한 인증 정보를 상기 소유자도커모듈로 전송하여 데이터 사용을 위한 인증을 요청하고, 요청한 공유데이터의 정보 및 접근을 위한 NFS URL을 수신하는 사용자인증부;를 포함할 수 있다.In addition, the user docker module may include a user authentication unit that searches for authentication information including a pre-registered user identifier and an OTP (One-Time Password) Seed to generate a user OTP, transmits authentication information including the user identifier and the user OTP to the owner docker module to request authentication for data use, and receives information on the requested shared data and an NFS URL for access.
또한, 상기 사용자도커모듈은, 수신한 공유데이터의 NFS URL을 통해 암호화된 공유데이터를 읽은 후, 복호화를 요청하고, 복호화된 데이터를 특정 AI모델의 입력으로 적용하여 AI모델을 실행한 후 상기 AI모델의 결과를 저장하는 데이터사용부;를 더 포함하고, 상기 AI모델은 상기 데이터사용자장치의 운영체제 상의 파일 시스템에 존재하되, 상기 사용자도커모듈이 동작하는 도커 컨테이너 외부 영역에 존재하는 것을 특징으로 한다.In addition, the user docker module further includes a data usage unit that reads encrypted shared data through an NFS URL of the received shared data, requests decryption, applies the decrypted data as input to a specific AI model, executes the AI model, and then stores the result of the AI model; and the AI model is characterized in that it exists in a file system on the operating system of the data user device, but exists in an area outside the docker container in which the user docker module operates.
또한, 상기 사용자도커모듈은, 상기 소유자도커모듈로 인증 요청 시 전송한 사용자OTP(One-Time Password)를 SALT값으로 적용하여 복호화키를 생성하고, 상기 복호화키를 적용하여 암호화된 공유데이터를 복호화하는 사용자암호부;를 더 포함할 수 있다.In addition, the user docker module may further include a user password section that applies a user OTP (One-Time Password) transmitted when requesting authentication to the owner docker module as a SALT value to generate a decryption key, and decrypts encrypted shared data by applying the decryption key.
한편, 본 발명의 일 실시예에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 방법은, 데이터사용자장치의 사용자도커모듈에서 사전에 등록된 사용자 인증 정보를 조회하여 사용자 OTP(One-Time Password)를 생성하고, 사용자식별자 및 상기 사용자 OTP를 데이터소유자장치의 소유자도커모듈로 전송하여 인증을 요청하는 단계; 상기 데이터소유자장치의 소유자도커모듈에서 사용자 인증을 수행하고, 데이터 공유 작업을 수행하는 단계; 및 상기 데이터사용자장치의 사용자도커모듈에서 전달받은 공유 정보를 통해 공유데이터에 접근하여 상기 AI모델에 적용하는 단계;를 포함할 수 있다.Meanwhile, a method for sharing data with enhanced security through Docker and NFS according to one embodiment of the present invention may include a step of generating a user OTP (One-Time Password) by querying user authentication information registered in advance in a user Docker module of a data user device and transmitting a user identifier and the user OTP to an owner Docker module of a data owner device to request authentication; a step of performing user authentication and a data sharing task in the owner Docker module of the data owner device; and a step of accessing shared data through shared information received from the user Docker module of the data user device and applying the same to the AI model.
또한, 상기 데이터소유자장치의 소유자도커모듈에서 사용자 인증을 수행하고, 데이터 공유 작업을 수행하는 단계는, 수신한 사용자식별자 및 사용자 OTP를 사용하여 사용자 인증을 수행하는 단계; 공유데이터에 접근 가능하도록 NFS 설정 작업을 수행하는 단계; 상기 공유데이터를 암호화하여 NFS설정 공간에 저장하는 단계; 및 상기 공유데이터의 데이터 정보 및 NFS URL을 포함하는 공유 정보를 전송하는 단계;를 포함할 수 있다.In addition, the step of performing user authentication and performing data sharing operation in the owner docker module of the data owner device may include the step of performing user authentication using the received user identifier and user OTP; the step of performing NFS setting operation to enable access to shared data; the step of encrypting the shared data and storing it in an NFS setting space; and the step of transmitting the shared information including the data information of the shared data and the NFS URL.
또한, 상기 AI모델에 적용하는 단계는, 수신한 공유데이터의 NFS URL을 사용하여 암호화된 공유데이터를 읽는 단계; 인증 요청 시 사용한 사용자OTP(One-Time Password)를 기반으로 복호화키를 생성하여 상기 공유데이터를 복호화하는 단계; 및 복호화된 데이터를 AI모델의 입력 데이터로 전달하여 AI모델을 실행하고 결과를 출력하는 단계;를 포함할 수 있다.In addition, the step of applying to the AI model may include a step of reading encrypted shared data using the NFS URL of the received shared data; a step of decrypting the shared data by generating a decryption key based on the user OTP (One-Time Password) used when requesting authentication; and a step of transmitting the decrypted data as input data of the AI model to execute the AI model and output the result.
데이터 접근, 인증, 공유 및 인공지능 모델 적용까지 도커(Docker)라는 논리적으로 독립적인 공간에서 수행됨으로써, 데이터 보안성 및 기밀성을 유지할 수 있다.Data access, authentication, sharing, and even AI model application are performed in a logically independent space called Docker, which maintains data security and confidentiality.
또한, 데이터 사용자에게 직접적으로 데이터를 제공하지 않고, NFS 통신을 통해 암호화된 데이터를 제공하고, 암복호화키는 도커 내에서 관리되어 외부에 노출되지 않으므로 안전하게 데이터를 공유할 수 있다.In addition, data can be shared safely as it is not provided directly to data users, but rather encrypted data is provided via NFS communication, and encryption/decryption keys are managed within Docker and not exposed to the outside.
도 1은 본 발명의 일 실시예에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 시스템의 전체 관계도이다.
도 2는 본 발명의 일 실시예에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 시스템에서 데이터소유자장치의 기능에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 시스템에서 데이터사용자장치의 기능에 대한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 시스템에서 소유자도커모듈과 사용자도커모듈 간의 데이터 공유 과정을 나타낸 흐름도이다.Figure 1 is an overall relationship diagram of a data sharing system with enhanced security through Docker and NFS according to one embodiment of the present invention.
FIG. 2 is a block diagram of the function of a data owner device in a data sharing system with enhanced security through Docker and NFS according to one embodiment of the present invention.
FIG. 3 is a block diagram of the functions of a data user device in a data sharing system with enhanced security through Docker and NFS according to one embodiment of the present invention.
FIG. 4 is a flowchart illustrating a data sharing process between an owner Docker module and a user Docker module in a data sharing system with enhanced security through Docker and NFS according to one embodiment of the present invention.
이하에서는 도면을 참조하여 본 발명의 구체적인 실시예를 상세하게 설명한다. 다만, 본 발명의 사상은 제시되는 실시예에 제한되지 아니하고, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에서 다른 구성요소를 추가, 변경, 삭제 등을 통하여, 퇴보적인 다른 발명이나 본 발명 사상의 범위 내에 포함되는 다른 실시예를 용이하게 제안할 수 있을 것이나, 이 또한 본원 발명 사상 범위 내에 포함된다고 할 것이다.Hereinafter, specific embodiments of the present invention will be described in detail with reference to the drawings. However, the spirit of the present invention is not limited to the presented embodiments, and those skilled in the art who understand the spirit of the present invention will be able to easily propose other regressive inventions or other embodiments included within the scope of the spirit of the present invention by adding, changing, deleting, etc. other components within the scope of the same spirit, but this will also be considered to be included within the scope of the spirit of the present invention.
그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 설정된 용어들로써 이는 발명자의 의도 또는 관례에 따라 달라질 수 있으므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이고, 본 명세서에서 본 발명에 관련된 공지의 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에 이에 관한 자세한 설명은 생략하기로 한다.In addition, the terms described below are terms established in consideration of their functions in the present invention, and as such, they may vary depending on the inventor's intention or custom, and therefore, their definitions should be made based on the contents throughout this specification, and if it is determined that a specific description of a known configuration or function related to the present invention in this specification may obscure the gist of the present invention, a detailed description thereof will be omitted.
이하, 도면을 참조로 하여 본 발명에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 시스템을 설명한다.Hereinafter, a data sharing system with enhanced security through Docker and NFS according to the present invention will be described with reference to the drawings.
도 1은 본 발명의 일 실시예에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 시스템(이하, 데이터 공유 시스템(10)이라 함.)의 전체 관계도이다.Figure 1 is an overall relationship diagram of a data sharing system (hereinafter referred to as data sharing system (10)) with enhanced security through Docker and NFS according to one embodiment of the present invention.
도 1을 참조하면, 데이터 공유 시스템(10)은 데이터소유자장치(100) 및 데이터사용자장치(200)를 포함하며, 상기 장치들은(100, 200)는 물리적으로 분리된 서버로 구성되어 네트워크로 연결되어 있다.Referring to FIG. 1, the data sharing system (10) includes a data owner device (100) and a data user device (200), and the devices (100, 200) are configured as physically separated servers and connected to a network.
본 발명에서 언급하는 네트워크라 함은 유선 공중망, 무선 이동 통신망, 또는 휴대 인터넷 등과 통합된 코어 망일 수도 있고, TCP/IP 프로토콜 및 그 상위 계층에 존재하는 여러 서비스, 즉 HTTP(Hyper Text Transfer Protocol), HTTPS(Hyper Text Transfer Protocol Secure), Telnet, FTP(File Transfer Protocol) 등을 제공하는 전 세계적인 개방형 컴퓨터 네트워크 구조를 의미할 수 있으며, 이러한 예에 한정하지 않고 다양한 형태로 데이터를 송수신할 수 있는 데이터 통신망을 포괄적으로 의미하는 것이다.The network referred to in the present invention may be a core network integrated with a wired public network, a wireless mobile communication network, or a portable Internet, or may mean a worldwide open computer network structure that provides various services existing in the TCP/IP protocol and its upper layer, such as HTTP (Hyper Text Transfer Protocol), HTTPS (Hyper Text Transfer Protocol Secure), Telnet, FTP (File Transfer Protocol), etc., and is not limited to these examples, but comprehensively means a data communication network capable of transmitting and receiving data in various forms.
데이터 공유 시스템(10)은 데이터 소유자와 상기 데이터 소유자의 데이터를 사용하는 인공지능 모델을 소유한 데이터 사용자 간의 데이터 공유를 안전하게 수행할 수 있도록 Docker기반의 데이터 소유자 및 데이터 사용자를 위한 어플리케이션을 제공하고, 소유자는 NFS 통신을 통해 인증된 사용자에게 암호화된 데이터를 공유하고, 데이터 사용자는 NFS URL을 통해 암호화된 데이터를 수신한 후 복호화하여 인공지능 모델이 사용할 수 있도록 하며, 상기 데이터 공유 작업 및 AI모델의 데이터 적용은 Docker 내에서 동작하는 것을 특징으로 한다.The data sharing system (10) provides an application for data owners and data users based on Docker to safely perform data sharing between a data owner and a data user who owns an artificial intelligence model that uses the data of the data owner. The owner shares encrypted data with an authenticated user through NFS communication, and the data user receives the encrypted data through an NFS URL and decrypts it so that the artificial intelligence model can use it. The data sharing operation and the data application of the AI model are characterized by operating within Docker.
데이터소유자장치(100)는 데이터를 구비하고, 상기 데이터를 요청에 따라 공유하여 사용될 수 있도록 하되, 상기 데이터에 대한 관리, 접근 제어 및 허가된 사용자에 대해서만 제공할 수 있도록 인증을 수행하고, 데이터의 직접 제공 대신 NFS(Network File System)을 통해 공유하는 방식을 사용한다.The data owner device (100) provides data and allows the data to be used by sharing it upon request, but performs management, access control, and authentication for the data so that it can be provided only to authorized users, and uses a method of sharing via NFS (Network File System) instead of directly providing the data.
데이터사용자장치(200)는 적어도 하나 이상의 AI모델을 구비하고, 데이터소유자장치(100)가 제공하는 데이터를 AI모델에 적용하여 학습하거나, 추론을 수행하되, 데이터소유자장치(100)의 데이터에 접근하기 위해 사전에 인증 등록 과정을 수행한다.The data user device (200) is equipped with at least one AI model, and learns or performs inference by applying data provided by the data owner device (100) to the AI model, but performs an authentication registration process in advance to access the data of the data owner device (100).
또한, 데이터소유자장치(100)와 데이터사용자장치(200)는 데이터의 보안성, 기밀성을 위해 도커(Docker) 기반 컨테이너 내에서 소유자도커모듈(110) 및 사용자도커모듈(210)을 통해 사용자 인증, 데이터 암복호화, 데이터 공유 작업 및 상기 데이터를 사용한 AI 모델 실행을 수행하는 것을 특징으로 한다.In addition, the data owner device (100) and the data user device (200) are characterized by performing user authentication, data encryption/decryption, data sharing tasks, and AI model execution using the data through the owner Docker module (110) and the user Docker module (210) within a Docker-based container to ensure data security and confidentiality.
여기서 도커(Docker)란 컨테이너 기반의 가상화 플랫폼을 의미하며, 어플리케이션별 가상화를 가능하게 하는 독립된 단위인 컨테이너를 생성하고, 각 컨테이너에는 어플리케이션 실행에 필요한 라이브러리, 구성 파일이 포함되어 있어 호스트 시스템과 독립적이고 격리된 환경에서 어플리케이션을 실행할 수 있다.Here, Docker refers to a container-based virtualization platform that creates containers, which are independent units that enable application-specific virtualization. Each container includes the libraries and configuration files required to run the application, allowing the application to run in an environment that is independent and isolated from the host system.
또한, 호스트 운영체제와 커널을 공유하며, 컨테이너 내에 별도의 파일시스템(저장소)을 생성하여 사용하므로, 컨테이너가 종료되면 컨테이너 내부의 저장소에 저장된 데이터는 모두 삭제된다.Additionally, it shares the host operating system and kernel, and creates and uses a separate file system (storage) within the container, so when the container is terminated, all data stored in the storage within the container is deleted.
한편, 소유자도커모듈(110) 및 사용자도커모듈(210)은 도커 컨테이너 내에서 수행되는 어플리케이션 또는 어플리케이션을 포함한 컨테이너 자체를 의미할 수 있다.Meanwhile, the owner Docker module (110) and the user Docker module (210) may mean an application running within a Docker container or a container itself including an application.
도 2는 본 발명의 일 실시예에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 시스템에서 데이터소유자장치의 기능에 대한 블록도이다.FIG. 2 is a block diagram of the function of a data owner device in a data sharing system with enhanced security through Docker and NFS according to one embodiment of the present invention.
도 2를 참조하여 데이터소유자장치(100)의 기능에 대해 설명한다.The function of the data owner device (100) is described with reference to Fig. 2.
데이터소유자장치(100)는 외부 장치로 공유할 공유데이터를 구비하고, 상기 공유데이터에 대한 공유 요청에 따라 인증 수행 및 접근 권한을 확인하고, 상기 공유데이터를 암호화한 후 상기 공유데이터로 접근을 위한 공유 정보를 전달하는 소유자도커모듈(110) 및 공유데이터(120)를 포함한다.The data owner device (100) includes an owner docker module (110) and shared data (120) that have shared data to be shared with an external device, performs authentication and checks access rights in response to a request to share the shared data, encrypts the shared data, and then transmits shared information for access to the shared data.
소유자도커모듈(110)은 데이터소유자장치의 운영체제 내에서 독립적이고 격리된 환경에서 동작하는 도커(Docker) 기반 어플리케이션이고, 공유데이터(120)는 데이터소유자장치(100)의 파일시스템 상에 존재하는 데이터로, 소유자도커모듈(110) 이 동작하는 컨테이너의 외부 영역에 존재하고, 외부로 공유할 데이터이다.The owner Docker module (110) is a Docker-based application that operates in an independent and isolated environment within the operating system of the data owner device, and the shared data (120) is data that exists on the file system of the data owner device (100), exists in an external area of the container in which the owner Docker module (110) operates, and is data to be shared externally.
소유자도커모듈(110)은 소유자인증부(111), 데이터공유부(112), 소유자암호부(113), 소유자통신부(114) 및 소유자저장소(115)를 포함한다.The owner docker module (110) includes an owner authentication unit (111), a data sharing unit (112), an owner password unit (113), an owner communication unit (114), and an owner storage unit (115).
소유자인증부(111)는 데이터사용자장치(200)의 사용자도커모듈(210)로부터 수신한 인증 요청에 포함된 사용자식별자 및 사용자OTP(One-Time Password)를 통해 사용자를 인증하되, 사전에 등록된 상기 사용자식별자의 OTP Seed를 조회하여 검증용 OTP를 생성하고, 수신한 사용자OTP와 비교하여 검증하며, 상기 사용자식별자의 데이터 접근 권한을 확인한다.The owner authentication unit (111) authenticates the user through the user identifier and user OTP (One-Time Password) included in the authentication request received from the user docker module (210) of the data user device (200), and generates an OTP for verification by looking up the OTP seed of the user identifier registered in advance, and verifies it by comparing it with the received user OTP, and confirms the data access authority of the user identifier.
이때, 인증에 필요한 인증 정보는 어플리케이션 설치 또는 실행 후 인증 정보 등록 과정을 통해 도커 내 저장소에 저장될 수 있다.At this time, the authentication information required for authentication can be stored in the Docker storage through the authentication information registration process after installing or running the application.
소유자도커모듈(110)은 데이터를 사용할 각각의 사용자도커모듈(210)의 사용자식별자(Docker ID), OTP Seed 및 접근권한정책(Access Control Policy)을 등록할 수 있도록 인터페이스를 제공할 수 있다.The owner Docker module (110) can provide an interface to register the user identifier (Docker ID), OTP Seed, and access control policy of each user Docker module (210) that will use data.
상기 인터페이스를 통해 등록된 인증 정보들은 도커(Docker) 내의 저장소, 즉 소유자저장소(115)에 저장되어 관리되며, 각각의 사용자도커모듈(210)의 사용자저장소(215)에도 자신의 사용자식별자(Docker ID) 및 OTP Seed를 저장하여 관리한다.The authentication information registered through the above interface is stored and managed in a storage within Docker, i.e., the owner storage (115), and each user Docker module (210) also stores and manages its own user identifier (Docker ID) and OTP Seed in its user storage (215).
인증 정보는 도커 컨테이너의 저장소에 저장됨으로써, 외부로 노출되지 않고 관리되며, 작업이 완료되고 도커 컨테이너가 종료되면 도커 내의 저장소(115, 215)도 삭제되므로 인증 정보를 안전하게 관리할 수 있다.Since the authentication information is stored in the storage of the Docker container, it is managed without being exposed to the outside, and when the task is completed and the Docker container is terminated, the storage (115, 215) within the Docker is also deleted, so the authentication information can be managed safely.
소유자인증부(111)는 사용자 인증을 OTP(One-Time Password)를 통해 인증하게 된다. 여기서 사용자OTP는 초기의 인증 등록 과정에서 등록한 각 사용자도커모듈(210)별 OTP Seed를 기반으로 생성된다.The owner authentication unit (111) authenticates the user through an OTP (One-Time Password). Here, the user OTP is generated based on the OTP Seed for each user docker module (210) registered during the initial authentication registration process.
소유자인증부(111)는 데이터사용자장치(200)의 사용자도커모듈(210)로부터 수신한 사용자식별자를 사용하여 OTP Seed와 접근 권한 정책을 조회하고, 상기 OTP Seed로 검증용 OTP를 생성한 후 수신한 사용자OTP와 비교하여 검증함으로서, 사용자를 인증하게 된다.The owner authentication unit (111) uses the user identifier received from the user docker module (210) of the data user device (200) to look up the OTP Seed and access right policy, creates an OTP for verification using the OTP Seed, and then verifies it by comparing it with the received user OTP, thereby authenticating the user.
여기서 접근 권한 정책은 데이터에 대한 CRUD, 즉 생성, 읽기, 갱신 및 삭제 권한을 포함한다.Here, the access rights policy includes CRUD, that is, create, read, update, and delete rights for the data.
인증에 성공하면, 데이터공유부(113)에 의해 데이터 공유 과정을 수행하게 된다.If authentication is successful, the data sharing process is performed by the data sharing unit (113).
데이터공유부(112)는 데이터사용자장치(200)의 사용자도커모듈(210)로부터 수신한 사용자식별자에 대한 데이터 접근 권한에 따라 파일 시스템의 특정 디렉토리 또는 파일에 접근이 가능하도록 NFS 설정을 수행하고, 제공할 공유데이터에 대한 암호화를 요청하며, 암호화된 공유데이터의 NFS URL 및 데이터 정보를 인증 요청에 대한 응답으로 전달한다.The data sharing unit (112) performs NFS settings to allow access to a specific directory or file of the file system based on the data access rights for the user identifier received from the user docker module (210) of the data user device (200), requests encryption of the shared data to be provided, and transmits the NFS URL and data information of the encrypted shared data in response to the authentication request.
데이터공유부(112)는 외부에서 데이터에 대한 접근을 가능하게 위해 NFS(Network File System)을 설정한다. The data sharing unit (112) sets up NFS (Network File System) to enable access to data from the outside.
NFS 설정을 통해 공유데이터(120)에 접근이 가능해 지면, 소유자암호부(113)로 공유데이터에 대한 암호화를 요청하고, 인터넷 상에서 암호화된 데이터 파일에 접근할 수 있도록 NFS URL을 데이터사용자장치(200)의 사용자도커모듈(210)로 전달한다.When access to shared data (120) is enabled through NFS settings, encryption of the shared data is requested using the owner password (113), and an NFS URL is transmitted to the user docker module (210) of the data user device (200) so that the encrypted data file can be accessed over the Internet.
소유자암호부(113)는 사용자도커모듈(210)로부터 수신한 사용자OTP를 SALT값으로 적용하여 암호화키를 생성하고, 상기 암호화키를 적용하여 상기 사용자도커모듈(210)이 요청한 공유데이터(120)를 암호화한 후 암호화된 데이터를 NFS가 설정된 공간에 저장한다.The owner password unit (113) applies the user OTP received from the user docker module (210) as a SALT value to generate an encryption key, applies the encryption key to encrypt the shared data (120) requested by the user docker module (210), and then stores the encrypted data in a space where NFS is set.
이때, 암호화는 대칭키 방식을 적용하며, 암복호화에 사용하는 키는 사용자OPT를 SALT값으로 적용하여 생성한다.At this time, encryption uses a symmetric key method, and the key used for encryption/decryption is generated by applying the user OPT as the SALT value.
소유자통신부(114)는 도커 컨테이너 간의 통신을 수행한다. 소유자통신부(114)는 서버로 동작할 수 있으며, 일례로, HTTPS기반 RestAPI 기반으로 동작할 수 있다. 다만 이에 한정하지 않고, TCP, GCP 등 다양한 형태의 통신을 기반으로 동작할 수 있다.The owner communication unit (114) performs communication between Docker containers. The owner communication unit (114) can operate as a server, and for example, can operate based on HTTPS-based RestAPI. However, it is not limited to this, and can operate based on various forms of communication such as TCP and GCP.
도 3은 본 발명의 일 실시예에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 시스템에서 데이터사용자자장치의 기능에 대한 블록도이다.FIG. 3 is a block diagram of the functions of a data user device in a data sharing system with enhanced security through Docker and NFS according to one embodiment of the present invention.
도 3을 참조하여 데이터사용자장치(200)의 기능에 대해 설명한다.The functions of the data user device (200) are described with reference to FIG. 3.
데이터사용자장치(200)는 데이터소유자장치(100)의 소유자도커모듈(110)로 데이터 공유를 요청하고, 수신한 공유 정보에 따라 데이터에 접근하여 AI모델에 전달하고 상기AI모델을 실행하는 사용자도커모듈(210) 및 적어도 하나 이상의 AI모델파일(220)을 포함한다.The data user device (200) requests data sharing with the owner docker module (110) of the data owner device (100), accesses the data according to the received sharing information, transfers it to the AI model, and includes a user docker module (210) and at least one AI model file (220) that executes the AI model.
사용자도커모듈(210)은 데이터사용자장치(200)의 운영체제 내에서 독립적이고 격리된 환경에서 동작하는 도커(Docker) 기반 어플리케이션이다.The user docker module (210) is a Docker-based application that operates in an independent and isolated environment within the operating system of the data user device (200).
AI모델파일(220)은 AI모델 시작을 위한 실행 스크립트와 AI모델 프로그램을 포함하며, 사용자도커모듈(210)이 동작하는 컨테이너의 외부 영역에 저장되어 있다.The AI model file (220) includes an execution script for starting the AI model and an AI model program, and is stored in an external area of the container in which the user docker module (210) operates.
사용자도커모듈(210)은 사용자인증부(211), 데이터사용부(112), 사용자암호부(213), 사용자통신부(214) 및 사용자저장소(215)를 포함한다.The user docker module (210) includes a user authentication unit (211), a data usage unit (112), a user password unit (213), a user communication unit (214), and a user storage unit (215).
사용자인증부(211)는 사전에 등록되어 사용자저장소(215)에 저장된 사용자식별자 및 OTP(One-Time Password) Seed를 포함하는 인증 정보를 사용하여 사용자OTP를 생성한다.The user authentication unit (211) generates a user OTP using authentication information including a user identifier and OTP (One-Time Password) Seed that have been registered in advance and stored in the user storage (215).
일례로, 사용자OTP는 OPT Seed와 TimeStamp를 결합하여 해시를 적용한 값으로 생성될 수 있다. For example, a user OTP can be generated by combining an OPT Seed and a TimeStamp and applying a hash to the value.
이후, 사용자식별자 및 생성된 사용자OTP를 포함한 인증 정보를 소유자도커모듈(110)로 전송하여 데이터 사용을 위한 인증을 요청하고, 인증에 성공한 경우 응답으로 요청한 공유데이터의 정보 및 접근을 위한 NFS URL을 수신한다.Thereafter, authentication information including a user identifier and a generated user OTP is transmitted to the owner docker module (110) to request authentication for data use, and if authentication is successful, information on the requested shared data and an NFS URL for access are received in response.
데이터사용부(212)는 수신한 공유데이터의 NFS URL을 통해 암호화된 공유데이터를 읽은 후, 사용자암호부(213)을 통해 복호화를 요청하고, 복호화된 데이터를 특정 AI모델의 입력으로 적용하여 AI모델을 실행한 후 상기 AI모델의 결과를 저장한다.The data usage unit (212) reads the encrypted shared data through the NFS URL of the received shared data, requests decryption through the user encryption unit (213), applies the decrypted data as input to a specific AI model, executes the AI model, and then saves the result of the AI model.
보다 구체적으로, 데이터사용부(212)는 수신한 NFS URL을 사용하여 암호화된 공유데이터에 접근하여 데이터를 읽고, 사용자암호부(213)를 통해 복호화를 수행한다. More specifically, the data usage unit (212) accesses the encrypted shared data using the received NFS URL, reads the data, and performs decryption through the user encryption unit (213).
복호화된 데이터는 AI모델의 학습 또는 추론을 위한 데이터로 사용되며, 이를 위해 데이터사용부(212)는 어플리케이션의 초기화 과정에서 실행할 특정 AI모델파일(220)을 읽어 도커 내의 사용자저장소(215)에 저장한다.The decrypted data is used as data for learning or inference of an AI model, and for this purpose, the data usage unit (212) reads a specific AI model file (220) to be executed during the initialization process of the application and stores it in the user storage (215) within the docker.
이때, AI모델의 실행 결과는 사용자도커모듈(210) 외부의 파일 시스템에 저장될 수 있다.At this time, the execution result of the AI model can be stored in a file system outside the user docker module (210).
사용자암호부(213)은 소유자도커모듈(110)로 인증 요청 시 전송한 사용자OTP(One-Time Password)를 SALT값으로 적용하여 복호화키를 생성하고, 상기 복호화키를 적용하여 암호화된 공유데이터를 복호화한다.The user password section (213) applies the user OTP (One-Time Password) transmitted when requesting authentication to the owner docker module (110) as a SALT value to generate a decryption key, and decrypts the encrypted shared data by applying the decryption key.
사용자통신부(214)는 도커 컨테이너 간의 통신을 수행한다. 사용자통신부 (214)는 클라이언트로 동작할 수 있으며, 일례로, HTTPS기반 RestAPI 기반으로 동작할 수 있다. 다만 이에 한정하지 않고, TCP, GCP 등 다양한 형태의 통신을 기반으로 동작할 수 있다.The user communication unit (214) performs communication between Docker containers. The user communication unit (214) can operate as a client, and for example, can operate based on HTTPS-based RestAPI. However, it is not limited thereto, and can operate based on various forms of communication such as TCP and GCP.
데이터 공유 시스템(10)의 데이터소유자장치(100) 및 데이터사용자장치(200)는 네트워크 상에서 연결되어 물리적으로 분리된 하드웨어로 구성된 장치일 수 있다.The data owner device (100) and the data user device (200) of the data sharing system (10) may be devices composed of physically separated hardware that are connected over a network.
데이터소유자장치(100) 및 데이터사용자장치(200)는 중앙처리장치(1000), 메모리(2000), 사용자 인터페이스(3000), 데이터베이스 인터페이스(4000), 네트워크 인터페이스(5000), 웹서버(6000) 등을 포함한 하드웨어로 구성된다.The data owner device (100) and the data user device (200) are composed of hardware including a central processing unit (1000), memory (2000), user interface (3000), database interface (4000), network interface (5000), web server (6000), etc.
사용자 인터페이스(3000)는 그래픽 사용자 인터페이스(GUI, graphical user interface)를 사용함으로써, 사용자에게 입력과 출력 인터페이스를 제공한다.The user interface (3000) provides an input and output interface to the user by using a graphical user interface (GUI).
데이터베이스 인터페이스(4000)는 데이터베이스와 하드웨어 구조 사이의 인터페이스를 제공한다.The database interface (4000) provides an interface between the database and the hardware architecture.
네트워크 인터페이스(5000)는 사용자가 보유한 장치 간의 네트워크 연결을 제공한다.The network interface (5000) provides network connectivity between devices owned by users.
웹 서버(6000)는 사용자가 네트워크를 통해 하드웨어 구조로 액세스하기 위한 수단을 제공한다. 대부분의 사용자들은 원격에서 웹 서버로 접속하여 데이터소유자장치(100) 및 데이터사용자장치(200)를 사용할 수 있다.The web server (6000) provides a means for users to access the hardware structure via a network. Most users can access the web server remotely and use the data owner device (100) and the data user device (200).
상술한 구성 또는 방법의 각 단계는, 컴퓨터 판독 가능한 기록 매체 상의 컴퓨터 판독 가능 코드로 구현되거나 전송 매체를 통해 전송될 수 있다. 컴퓨터 판독 가능한 기록 매체는, 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터를 저장할 수 있는 데이터 저장 디바이스이다.Each step of the above-described configuration or method may be implemented as a computer-readable code on a computer-readable recording medium or transmitted via a transmission medium. The computer-readable recording medium is a data storage device capable of storing data that can be read by a computer system.
컴퓨터 판독 가능한 기록 매체의 예로는 데이터베이스, ROM, RAM, CD-ROM, DVD, 자기 테이프, 플로피 디스크 및 광학 데이터 저장 디바이스가 있으나 이에 한정되는 것은 아니다. 전송 매체는 인터넷 또는 다양한 유형의 통신 채널을 통해 전송될 수 있다. 또한 컴퓨터 판독 가능한 기록 매체는, 컴퓨터 판독 가능 코드가 분산 방식으로 저장되고, 실행되도록 네트워크 결합 컴퓨터 시스템을 통해 분배될 수 있다.Examples of computer-readable recording media include, but are not limited to, databases, ROMs, RAMs, CD-ROMs, DVDs, magnetic tapes, floppy disks, and optical data storage devices. The transmission media may be transmitted via the Internet or various types of communication channels. Additionally, the computer-readable recording media may be distributed through a network-coupled computer system so that the computer-readable code is stored and executed in a distributed manner.
또한 본 발명에 적용된 적어도 하나 이상의 구성요소는, 각각의 기능을 수행하는 중앙처리장치(CPU), 마이크로프로세서 등과 같은 프로세서를 포함하거나 이에 의해 구현될 수 있으며, 상기 구성요소 중 둘 이상은 하나의 단일 구성요소로 결합되어 결합된 둘 이상의 구성요소에 대한 모든 동작 또는 기능을 수행할 수 있다. 또한 본 발명에 적용된 적어도 하나 이상의 구성요소의 일부는, 이들 구성요소 중 다른 구성요소에 의해 수행될 수 있다. 또한 상기 구성요소들 간의 통신은 버스를 통해 수행될 수 있다.In addition, at least one or more components applied to the present invention may include or be implemented by a processor such as a central processing unit (CPU), a microprocessor, etc., which performs each function, and two or more of the components may be combined into a single component that may perform all operations or functions of the two or more combined components. In addition, a part of at least one or more components applied to the present invention may be performed by another component among these components. In addition, communication between the components may be performed via a bus.
도 4는 본 발명의 일 실시예에 따른 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 시스템에서 소유자도커모듈과 사용자도커모듈 간의 데이터 공유 과정을 나타낸 흐름도이다.FIG. 4 is a flowchart illustrating a data sharing process between an owner Docker module and a user Docker module in a data sharing system with enhanced security through Docker and NFS according to one embodiment of the present invention.
도 4를 참조하여 Docker 및 NFS를 통해 보안성을 강화한 데이터 공유 방법에 대해 설명한다.Referring to Figure 4, a method of data sharing with enhanced security through Docker and NFS is described.
데이터 공유 방법은 데이터 공유 시스템(10)에서 수행된다.The data sharing method is performed in a data sharing system (10).
먼저, 소유자도커모듈(110) 및 사용자도커모듈(210)이 실행되면 초기화 단계를 수행할 수 있다. First, when the owner Docker module (110) and the user Docker module (210) are executed, an initialization step can be performed.
소유자도커모듈(110)은 초기화 단계에서 사용자도커모듈(210)과의 통신을 위해 서버 통신 모듈을 동작시켜 요청을 수신할 수 있도록 한다.The owner Docker module (110) operates the server communication module to communicate with the user Docker module (210) during the initialization phase so that it can receive requests.
사용자도커모듈(210)은 초기화 단계에서 공유데이터를 활용하기 위한 AI모델을 도커 내의 저장소(215)로 로딩한다.The user docker module (210) loads an AI model for utilizing shared data into a storage (215) within the docker during the initialization phase.
초기화 단계가 끝나면, 데이터사용자장치(200)의 사용자도커모듈(210)에서 사전에 등록된 사용자 인증 정보를 조회하여 사용자 OTP를 생성하고, 사용자식별자 및 상기 사용자 OTP를 전송하여 인증을 요청하는 단계(S100)을 수행한다.After the initialization step is completed, the user docker module (210) of the data user device (200) searches for pre-registered user authentication information to generate a user OTP, and performs a step (S100) of requesting authentication by transmitting a user identifier and the user OTP.
사전에 등록되어 사용자저장소(215)에 저장된 사용자식별자 및 OTP(One-Time Password) Seed를 조회하고, OTP Seed를 기반으로 사용자OTP를 생성한 후 데이터소유자장치(100)의 소유자도커모듈(110)로 인증을 요청한다.The user identifier and OTP (One-Time Password) Seed that have been registered in advance and stored in the user storage (215) are searched, a user OTP is generated based on the OTP Seed, and then authentication is requested to the owner docker module (110) of the data owner device (100).
데이터소유자장치(100)의 소유자도커모듈(110)에서 인증 요청을 수신하면, 요청에 포함된 인증 정보에 따라 사용자 인증을 수행하고, 데이터 공유 작업을 수행하는 단계(S200)을 수행한다.When an authentication request is received from the owner docker module (110) of the data owner device (100), a step (S200) of performing user authentication and performing data sharing operation is performed according to the authentication information included in the request.
S200단계는 S210 ~ S240의 세부 단계를 수행한다.Step S200 performs the substeps S210 to S240.
S200단계에서는 데이터사용자장치(200)의 사용자도커모듈(210)로부터 수신한 상기 사용자식별자 및 사용자 OTP를 사용하여 사용자 인증을 수행한다(S210).In step S200, user authentication is performed using the user identifier and user OTP received from the user docking module (210) of the data user device (200) (S210).
S210단계에서는 사용자식별자로 OTP Seed를 조회한 후 상기 OTP Seed를 사용하여 검증용 OTP를 생성하고, 사용자 OTP와 비교하여 사용자를 인증한다.In step S210, an OTP Seed is searched using a user identifier, an OTP for verification is generated using the OTP Seed, and the user is authenticated by comparing it with the user OTP.
사용자가 인증되면 인터넷을 통해 공유데이터에 접근이 가능하도록 공유데이터에 대한 NFS 설정 작업을 수행한다(S220). When a user is authenticated, NFS setup for shared data is performed to enable access to shared data via the Internet (S220).
NFS 설정 작업이 완료되면, 공유데이터를 암호화하여 NFS설정 공간에 저장하고(S230), 상기 공유데이터의 데이터 정보 및 NFS 포함하는 공유 정보를 인증 요청에 대한 응답으로 전송한다(S240).When the NFS setup task is completed, the shared data is encrypted and stored in the NFS setup space (S230), and the data information of the shared data and the shared information including NFS are transmitted in response to the authentication request (S240).
다음으로, 데이터사용자장치(200)의 사용자도커모듈(210)에서 전달받은 공유데이터의 공유 정보를 통해 공유데이터에 접근하여 상기 AI모델에 적용하는 단계(S300)를 수행한다.Next, a step (S300) is performed to access the shared data through the shared information of the shared data received from the user docker module (210) of the data user device (200) and apply it to the AI model.
S300단계에서는 S300단계는 S310 ~ S330의 세부 단계를 수행한다.At step S300, step S300 performs the sub-steps S310 to S330.
먼저, 수신한 상기 공유데이터의 NFS URL을 사용하여 암호화된 공유데이터에 접근하여 데이터를 읽고(S310), 사용자OTP를 SALT값으로 적용하여 생성한 복호화키를 사용하여 데이터를 복호화한다(S320).First, the encrypted shared data is accessed and read using the NFS URL of the received shared data (S310), and the data is decrypted using a decryption key generated by applying the user OTP as a SALT value (S320).
이후, 복호화된 데이터를 AI모델의 입력 데이터로 전달하고 AI모델을 실행하고 결과를 출력한다(S330).Afterwards, the decrypted data is passed as input data to the AI model, the AI model is executed, and the result is output (S330).
이때, 출력된 결과는 데이터사용자장치(200)의 파일 시스템에 저장될 수 있다.At this time, the output result can be stored in the file system of the data user device (200).
한편, S300단계가 완료되면, 데이터 공유를 종료하는 과정을 더 수행할 수 있다.Meanwhile, once step S300 is completed, the process of terminating data sharing can be further performed.
데이터에 대한 공유 및 AI모델에 사용이 완료되면 데이터사용자장치(200)의 사용자도커모듈(210) 내의 데이터를 삭제하고, 어플리케이션 종료에 대한 알림을 데이터소유자장치(100)의 소유자도커모듈(110)로 전달한 후 사용자도커모듈(210)이 종료된다.When sharing of data and use in an AI model is completed, the data in the user docker module (210) of the data user device (200) is deleted, a notification of application termination is transmitted to the owner docker module (110) of the data owner device (100), and then the user docker module (210) is terminated.
소유자도커모듈(110)이 종료에 대한 알림을 수신하면, 공유 데이터에 대한 초기화를 수행하고, 암호 데이터를 삭제한 후 NFS를 종료하게 된다.When the owner Docker module (110) receives a notification of termination, it performs initialization of shared data, deletes the password data, and then terminates NFS.
위와 같은 데이터 공유 과정을 통해 데이터 사용자에게 직접적으로 데이터를 제공하지 않고, NFS 통신을 통해 암호화된 데이터를 제공하며, 암복호화키는 도커 내에서 관리되어 외부에 노출되지 않으므로 안전하게 데이터를 공유할 수 있다.Through the data sharing process as above, data is not provided directly to data users, but rather encrypted data is provided through NFS communication, and the encryption/decryption keys are managed within Docker and are not exposed to the outside, so data can be shared safely.
상기에서는 본 발명에 따른 실시예를 기준으로 본 발명의 구성과 특징을 설명하였으나 본 발명은 이에 한정되지 않으며, 본 발명의 사상과 범위 내에서 다양하게 변경 또는 변형할 수 있음은 본 발명이 속하는 기술분야의 당업자에게 명한 것이며, 따라서 이와 같은 변경 또는 변형은 첨부된 특허청구범위에 속함을 밝혀둔다.Although the configuration and features of the present invention have been described above based on embodiments according to the present invention, the present invention is not limited thereto, and it will be apparent to those skilled in the art that various changes or modifications can be made within the spirit and scope of the present invention, and therefore, it is made clear that such changes or modifications fall within the scope of the appended patent claims.
10: 데이터 공유 시스템
100: 데이터소유자장치
110: 소유자도커모듈
111: 소유자인증부 112: 데이터공유부
113: 소유자암호부 114: 소유자통신부
115: 소유자저장소
120: 공유데이터
200: 데이터사용자장치
210: 사용자도커모듈
211: 사용자인증부 212: 데이터사용부
213: 사용자암호부 214: 사용자통신부
215: 사용자저장소
220: AI모델파일10: Data sharing system
100: Data owner device
110: Owner Docker Module
111: Owner authentication section 112: Data sharing section
113: Owner Password 114: Owner Communications
115: Owner's Repository
120: Shared data
200: Data User Device
210: User Docker Module
211: User authentication section 212: Data usage section
213: User Password Section 214: User Communication Section
215: User storage
220: AI model file
Claims (11)
상기 소유자도커모듈로 데이터 공유를 요청하고, 수신한 공유 정보에 따라 데이터에 접근하여 암호화된 상기 데이터를 복호화한 후, AI모델의 입력 데이터로 전달하여 상기AI모델을 실행하는 사용자도커모듈을 포함하는 데이터사용자장치;를 구비하고,
상기 소유자도커모듈은 데이터소유자장치의 운영체제 내에서 독립적이고 격리된 환경에서 동작하는 도커(Docker) 기반 어플리케이션이고,
상기 소유자도커모듈은 데이터사용자장치의 운영체제 내에서 독립적이고 격리된 환경에서 동작하는 도커(Docker) 기반 어플리케이션이며,
상기 소유자도커모듈은,
상기 사용자도커모듈로부터 수신한 사용자식별자에 대한 데이터 접근 권한에 따라 파일 시스템의 특정 디렉토리 또는 파일에 접근이 가능하도록 NFS 설정을 수행하고, 제공할 공유데이터에 대한 암호화를 요청하며, 암호화된 공유데이터의 NFS URL 및 데이터 정보를 전달하는 데이터공유부;를 포함하고,
상기 공유데이터는 상기 데이터소유자장치의 운영체제 상의 파일 시스템에 존재하되, 상기 소유자도커모듈이 동작하는 도커(Docker) 외부 영역에 존재하고, 상기 NFS 설정을 통해 상기 소유자도커모듈에서 상기 사용자도커모듈에게 공유되는 것을 특징으로 하며,
상기 사용자도커모듈은,
수신한 공유데이터의 NFS URL을 통해 암호화된 공유데이터를 읽은 후, 복호화를 요청하고, 복호화된 데이터를 특정 AI모델의 입력으로 적용하여 AI모델을 실행한 후 상기 AI모델의 결과를 저장하는 데이터사용부;를 포함하고,
상기 AI모델의 실행 결과는 상기 사용자도커모듈이 동작하는 도커(Docker) 외부의 파일 시스템에 저장되는 것을 특징으로 하는,
데이터 공유 시스템.
A data owner device including an owner docker module that prepares shared data to be shared with an external device, performs authentication and verifies access rights according to a sharing request for the shared data, encrypts the shared data, and then transmits shared information for access to the shared data; and
A data user device including a user docker module that requests data sharing with the owner docker module, accesses the data according to the received shared information, decrypts the encrypted data, and then transmits it as input data of the AI model to execute the AI model;
The above owner Docker module is a Docker-based application that operates in an independent and isolated environment within the operating system of the data owner device.
The above owner Docker module is a Docker-based application that operates in an independent and isolated environment within the operating system of the data user device.
The above owner docker module is,
A data sharing unit that performs NFS settings to allow access to a specific directory or file of a file system according to data access rights for a user identifier received from the user Docker module, requests encryption of shared data to be provided, and transmits NFS URL and data information of encrypted shared data;
The above shared data exists in the file system of the operating system of the data owner device, but exists in an area outside of Docker where the owner Docker module operates, and is shared from the owner Docker module to the user Docker module through the NFS settings.
The above user docker module is,
A data usage unit is included, which reads encrypted shared data through the NFS URL of the received shared data, requests decryption, applies the decrypted data as input to a specific AI model, executes the AI model, and then stores the result of the AI model.
The execution result of the above AI model is characterized in that it is stored in a file system outside of Docker where the user Docker module operates.
Data sharing system.
상기 소유자도커모듈은,
상기 사용자도커모듈로부터 수신한 인증 요청에 포함된 사용자식별자 및 사용자OTP(One-Time Password)를 통해 사용자를 인증하되, 사전에 등록된 상기 사용자식별자의 OTP Seed를 조회하여 검증용 OTP를 생성하고, 수신한 사용자OTP와 비교하여 검증하며, 상기 사용자식별자의 데이터 접근 권한을 확인하는 소유자인증부;를 포함하는,
데이터 공유 시스템.
In the first paragraph,
The above owner docker module is,
An owner authentication unit that authenticates a user through a user identifier and a user OTP (One-Time Password) included in an authentication request received from the user docker module, generates an OTP for verification by looking up the OTP Seed of the user identifier registered in advance, verifies it by comparing it with the received user OTP, and verifies the data access authority of the user identifier;
Data sharing system.
상기 소유자도커모듈은,
상기 사용자도커모듈로부터 수신한 사용자OTP(One-Time Password)를 SALT값으로 적용하여 암호화키를 생성하고, 상기 암호화키를 적용하여 상기 사용자도커모듈이 요청한 공유데이터를 암호화하는 소유자암호부;를 더 포함하는,
데이터 공유 시스템.
In the first paragraph,
The above owner docker module is,
It further includes an owner password section that generates an encryption key by applying the user OTP (One-Time Password) received from the user Docker module as a SALT value and encrypts the shared data requested by the user Docker module by applying the encryption key.
Data sharing system.
상기 사용자도커모듈은,
사전에 등록된 사용자식별자 및 OTP(One-Time Password) Seed를 포함하는 인증 정보를 조회하여 사용자OTP를 생성하고, 상기 사용자식별자 및 상기 사용자OTP를 포함한 인증 정보를 상기 소유자도커모듈로 전송하여 데이터 사용을 위한 인증을 요청하고, 요청한 공유데이터의 정보 및 접근을 위한 NFS URL을 수신하는 사용자인증부;를 포함하는,
데이터 공유 시스템.
In the first paragraph,
The above user docker module is,
A user authentication unit including a user identifier registered in advance and authentication information including an OTP (One-Time Password) Seed is generated to create a user OTP, and the authentication information including the user identifier and the user OTP is transmitted to the owner docker module to request authentication for data use, and receives information on the requested shared data and an NFS URL for access;
Data sharing system.
상기 사용자도커모듈은,
상기 소유자도커모듈로 인증 요청 시 전송한 사용자OTP(One-Time Password)를 SALT값으로 적용하여 복호화키를 생성하고, 상기 복호화키를 적용하여 암호화된 공유데이터를 복호화하는 사용자암호부;를 더 포함하는,
데이터 공유 시스템.
In the first paragraph,
The above user docker module is,
A user password section further comprising: a user OTP (One-Time Password) transmitted when requesting authentication with the above owner Docker module is applied as a SALT value to generate a decryption key, and the user password section further comprising: a user OTP (One-Time Password) transmitted when requesting authentication with the above owner Docker module is applied as a SALT value to generate a decryption key, and a ... a user OTP (One-Time Password) transmitted when requesting authentication with the above owner Docker module; a user password section further comprising a user OTP (One-Time Password) transmitted when requesting authentication with the above owner Docker module is applied as a SALT value to generate a decryption key, and a user password section further comprising a user OTP (One-Time Password) transmitted when requesting authentication with the above owner Docker module; a user OTP (One-Time Password) transmitted when requesting authentication with the above
Data sharing system.
데이터사용자장치의 사용자도커모듈에서 사전에 등록된 사용자 인증 정보를 조회하여 사용자 OTP(One-Time Password)를 생성하고, 사용자식별자 및 상기 사용자 OTP를 데이터소유자장치의 소유자도커모듈로 전송하여 인증을 요청하는 단계;
상기 데이터소유자장치의 소유자도커모듈에서 사용자 인증을 수행하고, 데이터 공유 작업을 수행하는 단계; 및
상기 데이터사용자장치의 사용자도커모듈에서 전달받은 공유 정보를 통해 공유데이터에 접근하여 AI모델에 적용하는 단계;를 포함하고,
상기 데이터소유자장치의 소유자도커모듈에서 사용자 인증을 수행하고, 데이터 공유 작업을 수행하는 단계는,
수신한 사용자식별자 및 사용자 OTP를 사용하여 사용자 인증을 수행하는 단계;
공유데이터에 접근 가능하도록 NFS 설정 작업을 수행하는 단계;
상기 공유데이터를 암호화하여 NFS설정 공간에 저장하는 단계; 및
상기 공유데이터의 데이터 정보 및 NFS URL을 포함하는 공유 정보를 전송하는 단계;를 포함하는,
데이터 공유 방법.
In the data sharing method performed by the data sharing system described in Article 1,
A step of generating a user OTP (One-Time Password) by querying pre-registered user authentication information in the user docker module of the data user device, and requesting authentication by transmitting the user identifier and the user OTP to the owner docker module of the data owner device;
A step of performing user authentication and performing data sharing tasks in the owner Docker module of the above data owner device; and
A step of accessing shared data through shared information received from the user docker module of the above data user device and applying it to the AI model;
The step of performing user authentication and performing data sharing tasks in the owner Docker module of the above data owner device is as follows:
A step of performing user authentication using the received user identifier and user OTP;
Steps to perform NFS setup tasks to enable access to shared data;
A step of encrypting the above shared data and storing it in the NFS setting space; and
A step of transmitting shared information including data information of the shared data and NFS URL;
How to share data.
상기 AI모델에 적용하는 단계는,
수신한 공유데이터의 NFS URL을 사용하여 암호화된 공유데이터를 읽는 단계;
인증 요청 시 사용한 사용자OTP(One-Time Password)를 기반으로 복호화키를 생성하여 상기 공유데이터를 복호화하는 단계; 및
복호화된 데이터를 AI모델의 입력 데이터로 전달하여 AI모델을 실행하고 결과를 출력하는 단계;를 포함하는,
데이터 공유 방법.
In Article 9,
The steps to apply to the above AI model are:
A step of reading encrypted shared data using the NFS URL of the received shared data;
A step of decrypting the shared data by generating a decryption key based on the user OTP (One-Time Password) used when requesting authentication; and
A step of transmitting the decrypted data as input data of the AI model, executing the AI model, and outputting the result; including;
How to share data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020240037853A KR102819844B1 (en) | 2024-03-19 | 2024-03-19 | System and method for data sharing with enhanced security through docker and nfs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020240037853A KR102819844B1 (en) | 2024-03-19 | 2024-03-19 | System and method for data sharing with enhanced security through docker and nfs |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102819844B1 true KR102819844B1 (en) | 2025-06-12 |
Family
ID=96015333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020240037853A Active KR102819844B1 (en) | 2024-03-19 | 2024-03-19 | System and method for data sharing with enhanced security through docker and nfs |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102819844B1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220052811A (en) * | 2020-10-21 | 2022-04-28 | 한국전자통신연구원 | Apparatus and method for storage management for sharing large-scale data |
JP2023011145A (en) * | 2021-07-12 | 2023-01-24 | ヤフー株式会社 | Terminal device, information processing method and information processing program |
KR102514114B1 (en) * | 2021-12-14 | 2023-03-27 | 주식회사 테스트웍스 | Method for managing virtual remote server for providing deep learning based service, system and computer program for the same method |
JP2023046341A (en) * | 2021-09-23 | 2023-04-04 | Eaglys株式会社 | Data sharing system, data sharing method and data sharing program |
KR20230071025A (en) * | 2021-11-15 | 2023-05-23 | 한국과학기술원 | Methods for protecting privacy with full unlossy recovery of the original location per level of requirement |
-
2024
- 2024-03-19 KR KR1020240037853A patent/KR102819844B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220052811A (en) * | 2020-10-21 | 2022-04-28 | 한국전자통신연구원 | Apparatus and method for storage management for sharing large-scale data |
JP2023011145A (en) * | 2021-07-12 | 2023-01-24 | ヤフー株式会社 | Terminal device, information processing method and information processing program |
JP2023046341A (en) * | 2021-09-23 | 2023-04-04 | Eaglys株式会社 | Data sharing system, data sharing method and data sharing program |
KR20230071025A (en) * | 2021-11-15 | 2023-05-23 | 한국과학기술원 | Methods for protecting privacy with full unlossy recovery of the original location per level of requirement |
KR102514114B1 (en) * | 2021-12-14 | 2023-03-27 | 주식회사 테스트웍스 | Method for managing virtual remote server for providing deep learning based service, system and computer program for the same method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11487530B2 (en) | Software container registry service | |
CN108369622B (en) | Software container registry service | |
JP6335280B2 (en) | User and device authentication in enterprise systems | |
EP2973166B1 (en) | Systems and methods for identifying a secure application when connecting to a network | |
US7987357B2 (en) | Disabling remote logins without passwords | |
CN116490868A (en) | System and method for secure and fast machine learning reasoning in trusted execution environments | |
US9202020B2 (en) | File protection using session-based digital rights management | |
US20220197970A1 (en) | Systems and methods for improved remote display protocol for html applications | |
JP2011507414A (en) | System and method for protecting data safety | |
US20110161370A1 (en) | Apparatus, program, and method for file management | |
JP7609980B2 (en) | Encrypted File Control | |
US11636068B2 (en) | Distributed file locking for a network file share | |
US20220207105A1 (en) | Systems and methods for deep linking of saas application via embedded browser | |
JP2022504499A (en) | Systems and methods for system-on-chip traffic optimization of intermediate devices | |
JP2009543208A5 (en) | ||
JP2024539854A (en) | Control of access to computing resources implemented in an isolated environment | |
CN118713902A (en) | A method, system, device and storage medium for sharing trusted data in the Internet of Things | |
US20220417032A1 (en) | Distributed signing system | |
JP4453678B2 (en) | Data processing method and data processing system | |
KR102819844B1 (en) | System and method for data sharing with enhanced security through docker and nfs | |
CN113272788A (en) | System and method for real-time tiles for SAAS | |
US20220353073A1 (en) | Method for authenticating an end-user account, method for single authenticating within a cluster of hsm, and method for implementing access control | |
Narayanan | Securing hadoop | |
Gkotsis | Creating a windows active directory lab and performing simulated attacks | |
KR102741305B1 (en) | System and method for controlling file encryption and decryption permissions in shared folders |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
P14-X000 | Amendment of ip right document requested |
St.27 status event code: A-5-5-P10-P14-nap-X000 |