KR20230044952A - Computing method and system for file security based on ipfs - Google Patents

Computing method and system for file security based on ipfs Download PDF

Info

Publication number
KR20230044952A
KR20230044952A KR1020220120258A KR20220120258A KR20230044952A KR 20230044952 A KR20230044952 A KR 20230044952A KR 1020220120258 A KR1020220120258 A KR 1020220120258A KR 20220120258 A KR20220120258 A KR 20220120258A KR 20230044952 A KR20230044952 A KR 20230044952A
Authority
KR
South Korea
Prior art keywords
file
ipfs
access
key
security
Prior art date
Application number
KR1020220120258A
Other languages
Korean (ko)
Inventor
권영동
Original Assignee
주식회사 와이리즘
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 주식회사 와이리즘 filed Critical 주식회사 와이리즘
Publication of KR20230044952A publication Critical patent/KR20230044952A/en

Links

Images

Classifications

    • 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
    • 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/31User 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/602Providing cryptographic facilities or services
    • 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/604Tools and structures for managing or administering access control systems
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

IPFS 기반의 파일 보안을 위한 컴퓨팅 방법 및 시스템이 개시된다. 상기 컴퓨팅 방법은, 적어도 하나의 프로세서에 의해 수행되는, IPFS 기반의 파일 보안을 위한 컴퓨팅 방법으로서, IPFS 기반의 파일 보안을 위한 시스템에 의해, AES 암호화 키 및 초기화 벡터(IV)를 생성하고 이를 기초로 파일 암호화를 수행하는 단계를 포함한다. 또한, 파일 소유자의 블록체인 계정의 어드레스를 통해 공개키를 추출하고 이를 기초로 상기 AES 암호화 키를 RSA 암호화하는 단계와, AES 암호화된 파일을 분산 환경의 스토리지에 저장하고, 분산 환경 접근 키를 암호화하는 단계를 포함한다. 또한, IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 암호화된 분산 환경 접근 키를 통해 접근가능한 NFT 파일을 생성하는 단계와, 상기 NFT 파일에 대한 생성 정보, 파일 정보, 및 암호화 정보를 블록체인의 스마트컨트랙트에 기록하는 단계를 포함할 수 있다.A computing method and system for IPFS-based file security are disclosed. The computing method is a computing method for IPFS-based file security, which is performed by at least one processor, and generates an AES encryption key and an initialization vector (IV) by a system for IPFS-based file security and based thereon and performing file encryption with In addition, extracting the public key through the address of the file owner's blockchain account and RSA-encrypting the AES encryption key based on this, storing the AES-encrypted file in a storage in a distributed environment, and encrypting the distributed environment access key It includes steps to In addition, the IPFS-based system for file security creates an NFT file that is accessible through the encrypted distributed environment access key, and the generation information, file information, and encryption information for the NFT file are stored in the block chain. It may include recording in a smart contract.

Description

IPFS 기반의 파일 보안을 위한 컴퓨팅 방법 및 시스템{COMPUTING METHOD AND SYSTEM FOR FILE SECURITY BASED ON IPFS}Computing method and system for file security based on IPFS {COMPUTING METHOD AND SYSTEM FOR FILE SECURITY BASED ON IPFS}

본 발명은 IPFS 기반의 파일 보안을 위한 컴퓨팅 방법 및 시스템에 관한 것으로, 보다 구체적으로는 NFT 기술을 활용하여 소프트웨어적으로 파일 보안을 제공할 수 있는 IPFS 기반의 파일 보안을 위한 컴퓨팅 방법 및 시스템에 관한 것이다. The present invention relates to a computing method and system for IPFS-based file security, and more particularly, to a computing method and system for IPFS-based file security capable of providing file security in software using NFT technology. will be.

블록체인(blockchain) 기술은, 네트워크 통신 상에서 이루어지는 트랜잭션의 내용을 신뢰성 있고 안전한 방법으로 기록하고 저장하는 기술이다. 블록체인 네트워크는, 디지털화된 자산이나 트랜잭션의 교환이 가능한 분산 환경의 시스템으로, 공유된 장부(ledger)를 이용하여 P2P(peer-to-peer) 네트워크에서 발생되는 전자적 거래 또는 작업 내역의 이력을 기록한다. Blockchain technology is a technology for recording and storing the contents of transactions performed on network communication in a reliable and safe way. A blockchain network is a system in a distributed environment in which digitized assets or transactions can be exchanged, and uses a shared ledger to record the history of electronic transactions or work history occurring in a peer-to-peer (P2P) network. do.

블록체인 네트워크는 탈중앙화된 또는 분산된 합의 프로토콜(decentralized consensus mechanism)을 이용하기 때문에, 제3자에 의한 트랜잭션의 위변조가 사실상 불가능하게 되어, 트랜잭션의 신뢰성과 투명성을 보장할 수 있다. 최근에는, 금융 서비스, 헬스케어 등의 의료분야 서비스 등 다양한 서비스 분야에서 블록체인 기술의 활용이 시도되고 있다.Since the blockchain network uses a decentralized or decentralized consensus mechanism, transaction forgery by a third party is virtually impossible, thereby ensuring reliability and transparency of the transaction. Recently, the use of blockchain technology has been attempted in various service fields such as financial services and medical services such as healthcare.

한편, 기존의 데이터베이스에 기록되는 파일 보안 시스템은 파일의 접근 자격, 파일의 암호화 및 복호화 키는 물론, 파일 위치에 대한 접근 기록까지 모두 데이터베이스에 기록되는 방식의 파일 보안 시스템이었다. 또한, 이들 대부분의 파일보안 솔루션이나 시스템들은 하드웨적으로 파일의 접근을 차단하고 파일의 이력을 관리하고 있다. 이를 위한 하드웨어 장비는 고가이며 보안에 한계가 있다. 따라서, 해당 데이터베이스나 파일 스토리지가 뚫리면 모든 데이터가 유출되는 것은 물론, 파일이 위조 또는 변조되어 원본을 찾을 수 없거나, 또는 자격 증명 조작이 쉽게 이루어질 수 있다. 최근, 파일을 인질로 돈을 요구하는 랜섬웨어 문제도 그 하나의 예라고 볼 수 있다.On the other hand, the file security system recorded in the existing database was a file security system in which all access records for file locations, as well as file access qualifications, file encryption and decryption keys, are recorded in the database. In addition, most of these file security solutions or systems block access to files in hardware and manage file history. Hardware equipment for this is expensive and has limitations in security. Therefore, if the corresponding database or file storage is breached, not only all data is leaked, but also the original file cannot be found because the file is forged or tampered with, or credentials can be easily manipulated. Recently, the ransomware issue that demands money by holding files hostage can be seen as an example.

일반적으로 파일의 소유자와 파일에 접근하려는 요청자가 다를 경우, 보안을 위해 여러 단계의 프로세스를 거치게 되는데, 이때 소유자가 파일에 대한 접근을 요청받은 경우 즉각 처리하기가 어려울 뿐만 아니라, 처리를 위해 파일의 소유자가 관리자나 시스템에 접근해서 요청자에게 권한을 제공해야 하므로 즉각적인 반응이 이루어지 어렵고, 특히 원격간의 요청인 경우에는 처리가 더 어려워진다.In general, when the owner of a file and the requester who wants to access the file are different, it goes through a multi-step process for security. Since the owner has to access the administrator or system and provide the requester with authority, it is difficult to respond immediately, and especially in the case of a remote request, processing becomes more difficult.

또한, 파일의 저장공간을 분산하거나 백업을 잘 구성하더라도 하드웨어의 한계와 비용 문제로 인해 원본의 유출이나 위, 변조를 온전히 막을 수 없다. 나아가, 파일 접근에 대한 요청과 허가의 과정이 매끄럽지 못하고 유출에 대한 책임 소재를 완벽하게 따질 수 없다. 또한, 파일 접근에 대한 기록이나 파일 관련 기록도 위, 변조가 가능하므로, 온전히 신뢰하기가 어렵다. In addition, even if the storage space of the file is distributed or the backup is well configured, the leakage, forgery, or alteration of the original cannot be completely prevented due to hardware limitations and cost issues. Furthermore, the process of requesting and granting access to files is not smooth, and responsibility for leakage cannot be perfectly determined. In addition, it is difficult to completely trust records of file access or records related to files because they can be forged or tampered with.

본 개시는 상기와 같은 문제점을 해결하기 위한 IPFS 기반의 파일 보안을 위한 컴퓨팅 방법, 기록매체에 저장된 컴퓨터 프로그램 및 시스템 또는 장치를 제공한다. The present disclosure provides a computing method for IPFS-based file security, a computer program stored in a recording medium, and a system or device to solve the above problems.

본 개시의 일부 실시 예에 따르면, 파일의 위조 및 변조가 불가능하고 분산환경에서 암호화된 형태로 저장함에 따라 파일의 유출 또는 유실 위험이 제거될 수 있는 IPFS 기반의 파일 보안을 위한 컴퓨팅 방법 및 시스템을 제공하는데 그 목적이 있다.According to some embodiments of the present disclosure, an IPFS-based computing method and system for file security in which forgery and falsification of files is impossible and the risk of leakage or loss of files can be eliminated by storing them in an encrypted form in a distributed environment. Its purpose is to provide

또한, 본 개시의 일부 실시예에 따르면, 별도의 하드웨어를 추가할 필요없이 소트프웨적으로 보안을 제공할 수 있고 범용적으로 사용가능한 IPFS 기반의 파일 보안을 위한 컴퓨팅 방법을 제공하는데 그 목적이 있다.In addition, according to some embodiments of the present disclosure, an object of the present disclosure is to provide a computing method for IPFS-based file security that can provide security in software without the need to add additional hardware and can be used universally. .

또한, 본 개시의 일부 실시예에 따르면, 파일 접근에 대한 요청을 소유자가 실시간으로 확인한 다음 허가할 수 있고, 복잡한 증명 없이 파일의 소유권을 관리할 수 있는 IPFS 기반의 파일 보안을 위한 컴퓨팅 방법을 제공하는데 그 목적이 있다.In addition, according to some embodiments of the present disclosure, an IPFS-based computing method for file security in which an owner can confirm and then grant a request for file access in real time and manage ownership of a file without complicated proof is provided. But it has a purpose.

본 개시는 IPFS 기반의 파일 보안을 위한 컴퓨팅 방법, 기록매체에 저장된 컴퓨터 프로그램 및 시스템 또는 장치를 포함한 다양한 방식으로 구현될 수 있다.The present disclosure may be implemented in various ways, including a computing method for IPFS-based file security, a computer program stored in a recording medium, and a system or device.

구체적으로, 본 개시의 일 실시예에 따르면, 적어도 하나의 프로세서에 의해 수행되는, IPFS 기반의 파일 보안을 위한 컴퓨팅 방법으로서, IPFS 기반의 파일 보안을 위한 시스템에 의해, AES 암호화 키 및 초기화 벡터(IV)를 생성하고 이를 기초로 파일 암호화를 수행하는 단계; IPFS 기반의 파일 보안을 위한 시스템에 의해, 파일 소유자의 블록체인 계정의 어드레스를 통해 공개키를 추출하고 이를 기초로 상기 AES 암호화 키를 RSA 암호화하는 단계; IPFS 기반의 파일 보안을 위한 시스템에 의해, AES 암호화된 파일을 분산 환경의 스토리지에 저장하고, 분산 환경 접근 키를 암호화하는 단계; IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 암호화된 분산 환경 접근 키를 통해 접근가능한 NFT 파일을 생성하는 단계; 및 IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 NFT 파일에 대한 생성 정보, 파일 정보, 및 암호화 정보를 블록체인의 스마트컨트랙트에 기록하는 단계를 포함할 수 있다. Specifically, according to an embodiment of the present disclosure, as a computing method for IPFS-based file security, performed by at least one processor, an AES encryption key and an initialization vector ( IV) generating and performing file encryption based on it; Extracting a public key through an address of a file owner's blockchain account and RSA-encrypting the AES encryption key based on the extracted public key by an IPFS-based file security system; storing an AES-encrypted file in a storage of a distributed environment and encrypting a distributed environment access key by an IPFS-based file security system; Generating an NFT file accessible through the encrypted distributed environment access key by a system for file security based on IPFS; and recording creation information, file information, and encryption information on the NFT file in a smart contract of the blockchain by an IPFS-based file security system.

실시 예에 따라, 상기 분산 환경 접근 키를 암호화하는 단계는, 파일 소유자의 블록체인 계정의 어드레스를 통해 추출된 공개 키(Public key)로 상기 분산 환경 접근 키를 RSA 비대칭 암호화할 수 있다.According to an embodiment, in the step of encrypting the distributed environment access key, the distributed environment access key may be RSA asymmetrically encrypted with a public key extracted through an address of a blockchain account of a file owner.

실시 예에 따라, 상기 NFT 파일의 생성 후, IPFS 기반의 파일 보안을 위한 시스템에 의해, 제3자의 파일 접근 요청을 수신하는 단계; 및 IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 수신된 요청을 파일 소유자의 블록체인 계정 지갑 또는 키 스토어(keystore)에서 제공하는 서비스를 통해 파일 소유자에게 허가를 요청하는 단계를 더 포함할 수 있다.According to an embodiment, after generating the NFT file, receiving a third party's file access request by an IPFS-based file security system; and requesting permission from the file owner through a service provided by the file owner's block chain account wallet or keystore for the received request by the IPFS-based file security system. .

실시 예에 따라, IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 허가 요청에 대한 파일 소유자의 응답에 기초하여, 상기 암호화된 분산 환경 접근 키를 복호화하여, AES 암호화된 파일을 추출하는 단계를 더 포함할 수 있다.According to an embodiment, the step of extracting an AES-encrypted file by decrypting the encrypted distributed environment access key based on the file owner's response to the permission request by the IPFS-based file security system is further included. can include

실시 예에 따라, 상기 암호화된 파일의 추출 후, IPFS 기반의 파일 보안을 위한 시스템에 의해, 암호화된 AES 키를 복호화하여 AES 암호화된 파일을 복호화하는 단계를 더 포함할 수 있다.According to an embodiment, after extracting the encrypted file, the method may further include decrypting the AES-encrypted file by decrypting the encrypted AES key by an IPFS-based file security system.

실시 예에 따라, 상기 AES 암호화된 파일의 복호화 후, IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 복호화된 파일에 접근할 수 있는 접근 URI를 생성하는 단계; 및 IPFS 기반의 파일 보안을 위한 시스템에 의해, 생성된 접근 URI를 파일 접근 요청을 전송한 제3자의 단말로 전송하는 단계를 더 포함할 수 있다.According to an embodiment, after decrypting the AES-encrypted file, generating an access URI for accessing the decrypted file by an IPFS-based file security system; and transmitting the access URI generated by the IPFS-based file security system to a terminal of a third party that has transmitted the file access request.

실시 예에 따라, IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 전송된 접근 URI를 미리정해진 시간 경과후 폐기하는 단계를 더 포함할 수 있다.According to an embodiment, the method may further include discarding the transmitted access URI after a predetermined time has elapsed by an IPFS-based file security system.

실시 예에 따라, IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 미리정해진 시간 경과 후 상기 복호화된 파일이 저장된 메모리 캐쉬로부터 상기 복호화된 파일을 삭제하는 단계를 더 포함할 수 있다.According to an embodiment, the method may further include deleting the decrypted file from a memory cache in which the decrypted file is stored after the elapse of the predetermined time by an IPFS-based file security system.

실시 예에 따라, IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 파일 접근 요청에 관한 정보를 블록체인의 스마트컨트랙트에 기록하는 단계를 더 포함할 수 있다.According to an embodiment, the IPFS-based system for file security may further include recording information about the file access request in a smart contract of a blockchain.

실시 예에 따라, 파일 소유자가 복수인 경우, 상기 NFT 파일을 복수의 파일 소유자만큼 생성하고, 복수의 파일 소유자 각각의 블록체인 계정을 통해 추출한 각각의 공개키(Public key)를 사용하여 각각의 AES 암호화 키를 RSA 암호화하는 단계를 포함할 수 있다.According to the embodiment, when there are multiple file owners, the NFT files are created as many as the multiple file owners, and each AES is created using each public key extracted through the blockchain account of each of the multiple file owners. RSA encrypting the encryption key.

본 개시의 일부 실시예에 따르면, 블록체인에 기록되고 관리되어 위조 및 변조가 불가능하고 IPFS와 같은 분산환경에서 암호화된 형태로 저장되기 때문에 파일의 유출 또는 유실 위험이 제거된다.According to some embodiments of the present disclosure, since it is recorded and managed in a blockchain, forgery and tampering is impossible, and stored in an encrypted form in a distributed environment such as IPFS, the risk of leakage or loss of files is eliminated.

또한, 본 개시의 일부 실시예에 따르면, 별도의 하드웨어를 추가할 필요없이 NFT 기술을 활용하여 소트프웨적으로 보안을 제공하므로, 보안 및 관리 비용을 절약할 수 있으며, 서비스 기반의 구성을 통해 운영환경과 실행환경에 대한 제약 없이 범용적으로 사용될 수 있으므로 사용성이 확대된다.In addition, according to some embodiments of the present disclosure, since security is provided in a software manner by utilizing NFT technology without the need to add additional hardware, security and management costs can be saved, and operation is performed through a service-based configuration. Usability is expanded because it can be used universally without restrictions on the environment and execution environment.

또한, 본 개시의 일부 실시예에 따르면, 별도의 블록체인 및 IPFS 와 같은 분산환경을 구성하여 허가된 노드만이 참가할 수 있어서 더 강한 보안 시스템을 제공하며, 접근에 대한 요청을 소유자가 실시간으로 확인한 다음 허가할 수 있으므로 특히, 민감한 개일 파일에 대한 접근을 관리하는데 유용하게 사용될 수 있다.In addition, according to some embodiments of the present disclosure, a separate blockchain and distributed environment such as IPFS are configured to provide a stronger security system in which only authorized nodes can participate, and the owner confirms the request for access in real time. Since it can grant the following permission, it can be particularly useful for managing access to sensitive individual files.

또한, 본 개시의 일부 실시예에 따르면, 관리자는 블록체인 계정만으로 별도의 증명 없이 파일의 소유권을 관리할 수 있으므로 여러 계정을 관리해야 하는 번거로움을 피할 수 있고, 해시 키(Hash Key)가 공개되더라도 NFT의 비공개키를 통해서만 파일 확인이 가능하기 때문에 보안성을 유지되는 장점이 갖는다.In addition, according to some embodiments of the present disclosure, an administrator can manage file ownership only with a blockchain account without separate proof, thereby avoiding the hassle of managing multiple accounts, and the hash key is disclosed. Even if it is, it has the advantage of maintaining security because the file can be checked only through the private key of the NFT.

본 개시의 실시예들은, 이하 설명하는 첨부 도면들을 참조하여 설명될 것이며, 여기서 유사한 참조 번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.
도 1은 종래에, 데이터베이스에 기록하는 파일 보안 시스템의 예시를 보인 도면이다.
도 2는 종래에, 소유자 이의외 제3자가 기록된 파일에 접근시 수행되는 프로세서의 예시를 보인 도면이다.
도 3은 본 개시의 실시 예에 따라, 분산 환경 기술을 사용하여 파일을 저장하는 기술을 설명하기 위한 예시 개념도이다.
도 4는 본 개시의 실시 예에 따라, 파일 접근 권한과 관련된 파일 암호화 방법에서, 파일의 소유자가 한명인 경우를 설명하기 위한 예시 개념도이다.
도 5는 본 개시의 실시 예에 따라, 파일 접근 권한과 관련된 파일 암호화 방법에서, 파일의 소유자가 복수인 경우를 설명하기 위한 예시 개념도이다.
도 6은 도 4와 관련된 파일 업로드 방법이고, 도 7은 도 5와 관련된 파일 업로드 방법을 설명하기 위한 개념도들이다.
도 8은 본 개시의 실시 예에 따라, 파일 접근 및 소유자의 허가 방법을 설명하기 위한 개념도이다.
도 9는 본 개시의 실시 예에 따라, 정보 처리 시스템이 복수의 사용자 단말과 통신 가능하도록 연결된 구성을 나타내는 개요도이다.
도 10은 본 개시의 실시 예에 따라, 정보 처리 시스템 및 사용자 단말의 예시적 내부 구성을 나타내는 블록도이다.
도 11은 본 개시에 따른 파일 업로드 방법의 과정을 도시한 대표 흐름도이고, 도 12는 본 개시에 따른 파일 접근 방법의 과정을 설명하기 위한 대표 흐름도이다.
Embodiments of the present disclosure will be described with reference to the accompanying drawings described below, wherein like reference numbers indicate like elements, but are not limited thereto.
1 is a diagram showing an example of a conventional file security system for recording in a database.
2 is a diagram showing an example of a process performed when a third party other than the owner accesses a recorded file in the related art.
3 is an exemplary conceptual diagram illustrating a technique of storing a file using a distributed environment technique according to an embodiment of the present disclosure.
4 is an exemplary conceptual diagram for explaining a case in which one owner of a file is used in a file encryption method related to file access authority according to an embodiment of the present disclosure.
5 is an exemplary conceptual diagram for explaining a case in which a plurality of file owners exist in a file encryption method related to file access authority according to an embodiment of the present disclosure.
6 is a file upload method related to FIG. 4 , and FIG. 7 is conceptual diagrams for explaining a file upload method related to FIG. 5 .
8 is a conceptual diagram for explaining a file access and owner permission method according to an embodiment of the present disclosure.
9 is a schematic diagram illustrating a configuration in which an information processing system is communicatively connected with a plurality of user terminals according to an embodiment of the present disclosure.
10 is a block diagram illustrating exemplary internal configurations of an information processing system and a user terminal according to an embodiment of the present disclosure.
11 is a representative flowchart illustrating a process of a file upload method according to the present disclosure, and FIG. 12 is a representative flow chart illustrating a process of a file access method according to the present disclosure.

이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, specific details for the implementation of the present disclosure will be described in detail with reference to the accompanying drawings. However, in the following description, if there is a risk of unnecessarily obscuring the gist of the present disclosure, detailed descriptions of well-known functions or configurations will be omitted.

첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응되는 구성요소를 중복하여 기술하는 것이 생략될 수 있다.In the accompanying drawings, identical or corresponding elements are given the same reference numerals. In addition, in the description of the following embodiments, overlapping descriptions of the same or corresponding components may be omitted.

그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.However, omission of a description of a component does not intend that such a component is not included in an embodiment.

개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 통상의 기술자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments, and methods of achieving them, will become apparent with reference to the following embodiments in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below and may be implemented in various different forms, but only the present embodiments make the present disclosure complete, and the present disclosure does not extend the scope of the invention to those skilled in the art. It is provided only for complete information.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. 본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail. The terms used in this specification have been selected from general terms that are currently widely used as much as possible while considering the functions in the present disclosure, but they may vary according to the intention of a person skilled in the related field, a precedent, or the emergence of new technology. In addition, in a specific case, there is also a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the invention. Therefore, the terms used in the present disclosure should be defined based on the meaning of the terms and the general content of the present disclosure, not simply the names of the terms.

본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.Expressions in the singular number in this specification include plural expressions unless the context clearly dictates that they are singular. Also, plural expressions include singular expressions unless the context clearly specifies that they are plural. When it is said that a certain part includes a certain component in the entire specification, this means that it may further include other components without excluding other components unless otherwise stated.

또한, 명세서에서 사용되는 '모듈' 또는 '부'라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, '모듈' 또는 '부'는 어떤 역할들을 수행한다. 그렇지만, '모듈' 또는 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈' 또는 '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서, '모듈' 또는 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 또는 변수들 중 적어도 하나를 포함할 수 있다. 구성요소들과 '모듈' 또는 '부'들은 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈' 또는 '부'들로 결합되거나 추가적인 구성요소들과 '모듈' 또는 '부'들로 더 분리될 수 있다.Also, the term 'module' or 'unit' used in the specification means a software or hardware component, and the 'module' or 'unit' performs certain roles. However, 'module' or 'unit' is not meant to be limited to software or hardware. A 'module' or 'unit' may be configured to reside in an addressable storage medium and may be configured to reproduce one or more processors. Thus, as an example, a 'module' or 'unit' includes components such as software components, object-oriented software components, class components, and task components, processes, functions, and attributes. , procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, or variables. Functions provided within components and 'modules' or 'units' may be combined into a smaller number of components and 'modules' or 'units', or further components and 'modules' or 'units'. can be further separated.

본 개시의 일 실시예에 따르면, '모듈' 또는 '부'는 프로세서 및 메모리로 구현될 수 있다. '프로세서'는 범용 프로세서, 중앙 처리 장치(CPU), 마이크로프로세서, 디지털 신호 프로세서(DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다.According to one embodiment of the present disclosure, a 'module' or 'unit' may be implemented with a processor and a memory. 'Processor' should be interpreted broadly to include general-purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, and the like.

몇몇 환경에서, '프로세서'는 주문형 반도체(ASIC), 프로그램가능 로직 디바이스(PLD), 필드 프로그램가능 게이트 어레이(FPGA) 등을 지칭할 수도 있다. '프로세서'는, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다. 또한, '메모리'는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. '메모리'는 임의 액세스 메모리(RAM), 판독-전용 메모리(ROM), 비-휘발성 임의 액세스 메모리(NVRAM), 프로그램가능 판독-전용 메모리(PROM), 소거-프로그램가능 판독 전용 메모리(EPROM), 전기적으로 소거가능 PROM(EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.In some circumstances, 'processor' may refer to an application specific integrated circuit (ASIC), programmable logic device (PLD), field programmable gate array (FPGA), or the like. 'Processor' refers to a combination of processing devices, such as, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in conjunction with a DSP core, or a combination of any other such configurations. You may. Also, 'memory' should be interpreted broadly to include any electronic component capable of storing electronic information. 'Memory' includes random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable-programmable read-only memory (EPROM), It may also refer to various types of processor-readable media, such as electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, and the like. A memory is said to be in electronic communication with the processor if the processor can read information from and/or write information to the memory. Memory integrated with the processor is in electronic communication with the processor.

본 개시에서, '시스템'은 서버 장치와 클라우드 장치 중 적어도 하나의 장치를 포함할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 시스템은 하나 이상의 서버 장치로 구성될 수 있다. 다른 예로서, 시스템은 하나 이상의 클라우드 장치로 구성될 수 있다. 또 다른 예로서, 시스템은 서버 장치와 클라우드 장치가 함께 구성되어 동작될 수 있다.In the present disclosure, a 'system' may include at least one of a server device and a cloud device, but is not limited thereto. For example, a system may consist of one or more server devices. As another example, a system may consist of one or more cloud devices. As another example, the system may be operated by configuring a server device and a cloud device together.

본 개시에서, '디스플레이'는 컴퓨팅 장치와 연관된 임의의 디스플레이 장치를 지칭할 수 있는데, 예를 들어, 컴퓨팅 장치에 의해 제어되거나 컴퓨팅 장치로부터 제공된 임의의 정보/데이터를 표시할 수 있는 임의의 디스플레이 장치를 지칭할 수 있다.In this disclosure, 'display' may refer to any display device associated with a computing device, for example, any display device capable of displaying any information/data provided or controlled by the computing device. can refer to

본 개시에서, '복수의 A의 각각' 또는 '복수의 A 각각'은 복수의 A에 포함된 모든 구성 요소의 각각을 지칭하거나, 복수의 A에 포함된 일부 구성 요소의 각각을 지칭할 수 있다.In the present disclosure, 'each of a plurality of A' or 'each of a plurality of A' may refer to each of all components included in a plurality of A's, or each of some components included in a plurality of A's. .

본 개시에서, '스마트 컨트렉트(Smart Contract)'는, 개인간에 원하는 계약을 안전하게 체결할 수 있도록 서면으로 이루어지던 계약을 코드로 구현한 것으로 특정 조건이 충족되었을 때 해당 계약이 이행되게 하는 스크립트(script)를 의미한다. 블록체인 메인넷에 올라간 컨트랙트(contract)는 누구나 볼 수 있도록 공개되며 위변조가 어렵다.In this disclosure, 'Smart Contract' is a code implementation of a written contract so that a desired contract can be safely concluded between individuals, and a script that executes the contract when specific conditions are met means (script). The contracts uploaded to the blockchain mainnet are open for anyone to see and are difficult to falsify.

본 개시에서, 'EOA'는 지갑 프로그램을 통해 개인 키를 생성하고, 생성된 개인 키를 통해 공개 키를 생성하고, 주소를 생성하는 일련의 과정이 계정 생성 과정이며, 이러한 과정을 통해 생성된 계정을 EOA라 지칭한다.In this disclosure, 'EOA' is an account creation process in which a private key is generated through a wallet program, a public key is generated through the generated private key, and an address is generated, and an account created through this process. is referred to as EOA.

본 개시에서, 'NFT(Non-Fungible Token, 대체 불가 토큰)'은 하나의 토큰을 다른 토큰으로 대체하는 것이 불가능한 암호화폐를 의미하며, 대체 불가 토큰은 사용자의 디지털 자산 소유권을 보장하는데 큰 역할을 한다. 기존의 중앙집중방식의 서비스들은 서비스가 종료되면 더 이상 이용하지 못하는 한계가 있지만, NFT는 블록체인 시스템에 기록하여 안전한 보호 및 권리를 보장한다. 그에 따라 사용자가 자신의 디지털 자산을 더 온전히 소유하고 활용할 수 있게 된다.In this disclosure, 'Non-Fungible Token (NFT)' refers to a cryptocurrency in which one token cannot be replaced with another, and non-fungible tokens play a large role in ensuring the ownership of digital assets by users. do. Existing centralized services have limitations that can no longer be used when the service is terminated, but NFTs are recorded in the blockchain system to ensure safe protection and rights. As a result, users can more fully own and utilize their digital assets.

본 개시에서, 'AES(Advanced Encryption Standard) 암호화'는 고급 암호화 표준으로서, AES는 미국 표준 기술 연구소에 의해서 연방 정보 처리 표준으로 지정된 암호화 방식으로서, 승인된 암호화 알고리즘 중 유일하게 공개된 알고리즘이다.In the present disclosure, 'Advanced Encryption Standard (AES) encryption' is As an advanced encryption standard, AES is an encryption method designated as a federal information processing standard by the National Institute of Standards and Technology, and is the only publicly available encryption algorithm among approved encryption algorithms.

본 개시에서, '비대칭 암호화'는 암호화와 관련하여 두 개의 키를 사용하는 것을 의미하며, 여기서 키(key)란 메시지를 열고 잠그는 상수(constant)를 의미한다. 일반적으로, 많은 공개키 알고리즘에서, 공개키(public key)는 모두에게 알려져 있으며 메시지를 암호화(encrypt)하는데 사용된다. 암호화된 메시지는 개인키(private key)를 가진 자만이 복호화(decrypt)하여 열람할 수 있다. 공개키 알고리즘은 누구나 메시지를 암호화할 수 있지만, 개인키를 가진 사람만이 암호화된 메시지를 해독하여 열람할 수 있다.In the present disclosure, 'asymmetric encryption' means using two keys in relation to encryption, where a key means a constant that opens and locks a message. Generally, in many public key algorithms, the public key is known to everyone and is used to encrypt the message. Encrypted messages can be decrypted and viewed only by those who have the private key. Anyone with a public key algorithm can encrypt a message, but only a person with a private key can decrypt and read the encrypted message.

본 개시에서, '비대칭키'는 공개키(Public Key)와 개인키(Private Key)가 하나의 쌍을 이루고 있다. 암호화할 때의 키와 복호화할 때의 키 값이 다르면 비대칭키라고 말할 수 있다. 비대칭키는, 다른 사람들에게 공개된 키로 정보를 암호화할 수 있는 공개키(Public Key)와 사용자 본인만 알고 있어서 권한 있는 특정인만 암호를 풀 수 있는 개인키(Private Key)를 포함하며, 이들은 하나의 쌍을 이룬다.In the present disclosure, an 'asymmetric key' is a pair of a public key and a private key. If the key for encryption and the key for decryption are different, it is said to be an asymmetric key. An asymmetric key includes a public key that can encrypt information with a key that is open to others and a private key that only the user knows and can decrypt only a specific person with authority. pair up

비대칭키를 사용한 암호화 방식은, 공개키로 암호화 하는 경우와 개인키로 암호화 하는 경우로 구분할 수 있다. 데이터 보안에 좀더 중점을 두는 경우에는 공개키로 암호화를 선택하고, 안전한 전자서명을 통한 인증 과정에 중점을 두는 경우에는 개인키로 암호화를 선택한다.The encryption method using an asymmetric key can be divided into a case of encryption with a public key and a case of encryption with a private key. If more emphasis is placed on data security, encryption with a public key is selected, whereas encryption with a private key is selected if the emphasis is on the authentication process through a secure digital signature.

본 개시에서, 'IPFS(InterPlanetary File System)'는 분산형 파일 시스템에 데이터를 저장하고 인터넷으로 공유하기 위한 프로토콜을 의미한다. IPFS는, 예를 들어, 냅스터, 토렌트(Torrent) 등의 P2P 방식으로 대용량 파일과 데이터를 공유하기 위해 사용된다. 또한, IPFS는 개방적이고 중앙집중화되어 있지 않으므로, 웹의 중앙화를 제한하며, 디앱들의 백본은 블록체인화되어 있다.In the present disclosure, 'InterPlanetary File System (IPFS)' means a protocol for storing data in a distributed file system and sharing it over the Internet. IPFS is used, for example, to share large files and data in a peer-to-peer manner such as Napster or Torrent. Also, since IPFS is open and non-centralized, it limits the centralization of the web, and the backbone of dApps is blockchainized.

기존의 HTTP 방식은 데이터가 위치한 곳의 주소를 찾아가서 원하는 콘텐츠를 한꺼번에 가져오는 방식이었지만, 본 개시에 따른 IPFS는 데이터의 내용을 변환한 해시 값을 이용하여 전 세계 여러 컴퓨터에 분산 저장되어 있는 콘텐츠를 찾아서 데이터를 조각조각으로 잘게 나누어 빠른 속도로 가져온 후 다시 하나로 합쳐서 보여주는 방식으로 작동한다. 이때, 해시 테이블은 정보를 키와 값의 쌍(key/value pairs)으로 저장하는데, 전 세계 수많은 분산화된 노드들이 해당 정보를 저장하기 때문에, 사용자는 IPFS를 사용함으로써 기존 HTTP 방식에 의하는 경우에 비해 훨씬 빠른 속도로 데이터를 저장하고 가져올 수 있다. IPFS 상에 파일을 등록하면, 접근할 수 있는 IPFS 해시 키가 발급되며, 그 해시 키를 통해 파일에 접근할 수 있다.The existing HTTP method was a method of finding the address where the data is located and bringing the desired content at once, but the IPFS according to the present disclosure uses a hash value converted to the data content to distribute and store content in multiple computers around the world. It works by finding the data, breaking it into small pieces, importing them at high speed, and then putting them back together and displaying them. At this time, the hash table stores information in key/value pairs, and since numerous distributed nodes around the world store the information, the user can use IPFS to save information in the case of the existing HTTP method. Data can be stored and retrieved much faster than before. When a file is registered on IPFS, an accessible IPFS hash key is issued, and the file can be accessed through the hash key.

본 개시에서, '힙(Heap) 메모리 영역'은 운영체제의 런타임에 따라 크기가 결정되는 사용자의 동적 할당 영역을 의미하며, 데이터를 일시적으로 보관할 수 있다.In the present disclosure, a 'heap memory area' means a user's dynamically allocated area whose size is determined according to the runtime of an operating system, and can temporarily store data.

이하, 본 개시에서는, 블록체인에 기록되고 관리되어 위조 및 변조가 불가능하고 IPFS와 같은 분산환경에서 암호화된 형태로 저장되어 파일의 유출 또는 유실 위험이 제거되는, IPFS 기반의 파일 보안을 위한 컴퓨팅 방법, 기록매체에 저장된 컴퓨터 프로그램 및 시스템에 대하여 구체적으로 설명하겠다.Hereinafter, in the present disclosure, a computing method for IPFS-based file security that is recorded and managed in a blockchain so that forgery and tampering is impossible and stored in an encrypted form in a distributed environment such as IPFS to eliminate the risk of leakage or loss of files. , a computer program and system stored in a recording medium will be described in detail.

먼저, 본 개시에 따른 컴퓨팅 방법, 기록매체에 저장된 컴퓨터 프로그램 및 시스템에 관한 설명에 앞서 종래의 파일 저장 및 파일 접근에 관하여 기술하겠다. First, prior to the description of the computing method, computer program and system stored in a recording medium according to the present disclosure, conventional file storage and file access will be described.

도 1은 종래에, 데이터베이스에 기록하는 파일 보안 시스템의 예시이고, 도 2는 종래에, 소유자 이의외 제3자가 기록된 파일에 접근시 수행되는 프로세서의 예시를 도시한 것이다.1 is an example of a conventional file security system that records in a database, and FIG. 2 illustrates an example of a conventional process performed when a third party other than the owner accesses a recorded file.

도 1을 참조하면, 사용자(10-1, 10-2, 10-3)는 보안 하드웨어(20)를 사용하여 파일 시스템(파일 URI)(40)에 접속한다. 이때, 상기 사용자(10-1, 10-2, 10-3)는 파일의 소유자, 파일에 접근하려는 사용자, 제3자를 포함할 수 있다.Referring to FIG. 1 , users 10 - 1 , 10 - 2 , and 10 - 3 access a file system (file URI) 40 using security hardware 20 . In this case, the users 10-1, 10-2, and 10-3 may include the owner of the file, a user trying to access the file, and a third party.

사용자(10-1, 10-2, 10-3)는 파일 시스템(파일 URI)(40)에 접속하여 파일을 저장, 업로드, 접근하는 경우, 파일의 암호화 및 복호화(41), 접근 자격 증명(42), 파일의 위ㅊ(43), 접근 기록(44) 등의 기록이 데이터베이스(50)에 모두 저장된다. 이들 기록은 데이터베이스(50)를 통해 또는 파일 스토리지(30)를 통해 한꺼번에 접근할 수 있다. 따라서, 예를 드렁 보안 하드웨어(20) 등의 문제로 인해 데이터베이스(50)나 파일 스토리지(30)의 보안이 뚫리면 파일 기록이 유출, 유실, 위변조될 수 있는 위험에 노출된다.When users 10-1, 10-2, and 10-3 access the file system (file URI) 40 to store, upload, or access files, encryption and decryption of files 41, access credentials ( 42), file location 43, access record 44, etc. are all stored in the database 50. These records can be accessed either through database 50 or collectively through file storage 30 . Therefore, if the security of the database 50 or the file storage 30 is breached due to a problem such as the dreung security hardware 20, the file record is exposed to the risk of being leaked, lost, or falsified.

또한, 도 2를 참조하면, 요청자(200), 예를 들어 파일(240)에 접근하려는 제3자가 소유자에 파일 접근 요청(201)을 전송하면, 파일 소유자(230)가 이를 인지한 후에 관리자(시스템)(230)에 파일 접근 설정(202)을 전송한다. 그러면, 관리자(시스템)(230)는 접근 권한 확인 후 요청자(220)에게 파일 접근 정보(예, 접근 키)를 제공(203)한다. 이 후, 요청자(220)는 제공받은 파일 접근 정보(예, 접근 키)를 사용하여 해당 파일(240)에 접근하여 파일을 열람할 수 있다(204).In addition, referring to FIG. 2, when a requester 200, for example, a third party trying to access a file 240 sends a file access request 201 to the owner, the file owner 230 recognizes it and then the administrator ( system) (230) to transmit the file access settings (202). Then, the manager (system) 230 provides file access information (eg, an access key) to the requester 220 after checking the access authority (203). Thereafter, the requester 220 may access the corresponding file 240 using the provided file access information (eg, access key) and view the file (204).

도 2의 과정은 파일 소유자(230)가 요청을 인지하기까지의 시간과 파일 접근 설정(202)을 위한 추가 시간이 소요된다. 또한, 요청자(220)에게 파일 접근 정보를 제공함으로써, 보안이 취약해지는 문제도 있다.The process of FIG. 2 takes time for the file owner 230 to recognize the request and additional time for setting up file access 202 . In addition, there is a problem that security is weakened by providing file access information to the requester 220.

이에, 본 개시는 NFT(Non-Fungible Token)을 활용한 블록체인 기반의 파일 보안 구현 방법 및 시스템을 제시한다. 구체적으로, 발행된 NFT가 파일의 암호화 키와 접근 키로 사용되고, 암호화된 파일은 IPFS(InterPlanetary File System)와 같은 분산 스토리지에 저장되며, 파일의 주소는 NFT에 기록된다.Accordingly, the present disclosure proposes a method and system for implementing block chain-based file security using NFT (Non-Fungible Token). Specifically, the issued NFT is used as the encryption key and access key of the file, the encrypted file is stored in a distributed storage such as IPFS (InterPlanetary File System), and the address of the file is recorded in the NFT.

파일에 대한 기본 정보는 NFT의 메타(Meta)에 기록되며 생성, 접근, 수정 이력들은 블록체인(Blockchain)의 스마트 컨트랙트(Smart contract)에 기록된다.Basic information about the file is recorded in the meta of NFT, and creation, access, and modification histories are recorded in the smart contract of the blockchain.

실시 예에 따라, 파일 업로드의 경우, 개인 파일의 경우 앱(App)이나 웹(Web)을 통해 액세스하여, 파일의 소유자(개인 또는 그룹) 파일을 업로드 하면, 시스템은 파일을 임시 서버의 메모리 캐쉬에 보관하고 32자의 AES 암호화 키와 16자의 IV(Initialization Vector, 초기화 벡터)를 생성하고 이를 통해 파일을 암호화 시킨다. 그리고, 소유자 블록체인 계정의 주소(Address)를 통해 공개 키(Public key)를 추출하고 AES 암호화 키를 비대칭 암호화시킨다. AES 암호화된 파일은 분산 환경에 저장되며, 공개 키(Public key)로 분산환경에의 접근 키를 비대칭 암호화 시킨다. 이후, NFT를 생성하고 파일정보와 암호화 정보를 기록하고 시스템에 생성 정보를 기록하면 파일 업로드가 완료된다.Depending on the embodiment, in the case of file upload, in the case of a personal file, access through an app or the web, and when the owner of the file (individual or group) uploads the file, the system stores the file in the memory cache of the temporary server. and creates a 32-character AES encryption key and a 16-character IV (Initialization Vector), which encrypts the file. Then, the public key is extracted through the address of the owner's blockchain account and the AES encryption key is asymmetrically encrypted. AES-encrypted files are stored in a distributed environment, and the access key to the distributed environment is asymmetrically encrypted with a public key. Thereafter, when an NFT is created, file information and encryption information are recorded, and the creation information is recorded in the system, the file upload is completed.

실시 예에 따라, 파일 접근의 경우, NFT 생성 이후 파일에 접근하기 위한 요청이 수신되면, 시스템은 해당 NFT 소유자로부터 앱(App) 또는 웹(Web)을 통해 접근을 통보 받고 허가할 수 있다. 허가된 파일은 NFT를 통해 복호화 되어 시스템상의 메모리 캐쉬에 저장되고, 별도의 주소(URI)를 할당받는다. 할당받은 주소(URI)는 접근을 요청한 서비스에 공개되며, 미리설정된 일정시간이 지나면 메모리 캐쉬의 파일은 자동 삭제 되고 주소(URI)도 삭제된다. 그에 따라 NFT 소유자의 허가가 없을 때는 파일의 접근을 완벽하게 차단할 수 있고 유출 되지 않은 파일 보안 시스템을 구성할 수 있다.Depending on the embodiment, in the case of file access, when a request for access to a file is received after NFT creation, the system may receive notification of access from the owner of the NFT through an app or web and allow access. Permitted files are decrypted through NFT, stored in the memory cache on the system, and assigned a separate address (URI). The allocated address (URI) is disclosed to the service that requested access, and after a predetermined period of time, the file in the memory cache is automatically deleted and the address (URI) is also deleted. Accordingly, when there is no permission from the NFT owner, file access can be completely blocked and a file security system that is not leaked can be configured.

도 3은 본 개시의 실시 예에 따라, 분산 환경 기술을 사용하여 파일을 저장하는 기술을 설명하기 위한 예시 개념도이다.3 is an exemplary conceptual diagram illustrating a technique of storing a file using a distributed environment technique according to an embodiment of the present disclosure.

도 3에서, 파일은 분산환경 기술을 사용한 IPFS(330)에 암호화되어 저장된다. IPFS(330)가 제공하는 분산 스토리지는, 파일의 해시(Hash) 값이 다수의 분산 노드(Node)에 저장되어 파일의 백업이나 관리를 신경 쓰지 않아도 된다. 또한, 기존에 파일 시스템이 중앙화되어 발생하는 문제들이 해소된다.In FIG. 3, files are encrypted and stored in IPFS 330 using distributed environment technology. In the distributed storage provided by the IPFS 330, the hash value of a file is stored in a plurality of distributed nodes, so there is no need to worry about file backup or management. In addition, existing problems caused by the centralization of the file system are resolved.

또한, 기존 시스템에서는 데이터베이스(Database)에 기록하던 내용들, 예를 들어 소유자 계정, 파일 정보, 변경 이력, 파일 접근 이력, 접근 허가 정보 등을 블록체인(Blockchain)(320)의 스마트 컨트랙트에 기록해서 위,변조가 불가능하다.In addition, in the existing system, the contents recorded in the database, for example, the owner account, file information, change history, file access history, access permission information, etc. are recorded in the smart contract of the blockchain (320) Above, tampering is impossible.

또한, AES 암호화된 파일은 분산 환경에 저장되며, 공개 키(Public key)로 분산환경에의 접근 키를 비대칭 암호화한 후 생성된 NFT(310)는 블록체인(320)에 기반하여 접근을 차단함으로써 파일의 유실 및 유출을 원천 방지한다.In addition, the AES-encrypted file is stored in a distributed environment, and the NFT (310) generated after asymmetric encryption of the access key to the distributed environment with a public key blocks access based on the block chain (320). Prevent file loss and leakage at the source.

이제는, NFT 생성 후, 저장된 파일에 대한 접근과 관련한 파일 암호화 방법을 구체적으로 설명하겠다.Now, after the NFT is created, a file encryption method related to access to the stored file will be described in detail.

먼저, 도 4는 본 개시의 실시 예에 따라, 파일 접근 권한과 관련된 파일 암호화 방법에서, 파일의 소유자가 한명인 경우를 설명하기 위한 예시 개념도이다. First, FIG. 4 is an exemplary conceptual diagram for explaining a case in which there is only one owner of a file in a file encryption method related to file access authority according to an embodiment of the present disclosure.

도 4에 도시된 바와 같이, 하나의 파일(410)에 대한 소유자가 한면인 경우에는, 하나의 NFT(430)를 발급해서 자격을 증명하고 파일에 대한 접근 권한을 관리한다. 이때, 메타 정보(411)로, 예를 들어 파일의 생성일자, 파일명, 기타 파일과 관련된 정보가 저장될 수 있다.As shown in FIG. 4, when the owner of one file 410 is one-sided, one NFT 430 is issued to prove qualifications and manage access rights to the file. At this time, as the meta information 411 , for example, a file creation date, a file name, and other file-related information may be stored.

발급된 NFT(430)는 블록체인의 계정(420)을 통해 접근하여 추출한 공개 키(Public key)(421)를 사용하여 RSA 암호화하고(423), AES암호화 키(424)를 공개키(421)와 개인키(422)를 통해 AES 암호화하고(425), 이를 사용하여 파일을 비대칭암호화 한다(426). AES 암호화된 파일을 IPFS와 같은 분산환경, 예를 들어 분산 스토리지(434)에 업로드한다(427). 분산환경, 예를 들어 분산 스토리지(434)에 업로드된 파일의 접근주소는 다시 공개키를 통해 암호화하여 저장된다.The issued NFT (430) is accessed through the blockchain account (420) and extracted using the public key (421) RSA encryption (423), AES encryption key (424) public key (421) and the private key 422 through AES encryption (425), and asymmetric encryption of the file using this (426). The AES-encrypted file is uploaded to a distributed environment such as IPFS, for example, distributed storage 434 (427). The access address of the file uploaded to the distributed environment, for example, the distributed storage 434, is stored after being encrypted using a public key.

구체적으로, 분산 환경의 접근 키(433)가 생성되며, 이는 RSA 암호화(423)를 사용한 암호화 정보(431)와 인덱스 ID(432)를 포함한다.Specifically, an access key 433 of a distributed environment is generated, which includes encryption information 431 using RSA encryption 423 and an index ID 432.

이와 같이, 분산된 파일정보는 블록체인의 스마트컨트랙트에 암호화되고, 분산 환경에 접근하기 위해 저장된 주소도 암호화되어 보관되므로, NFT를 통한 허가 없이는 파일에 접근할 수도 없고 파일을 복호화할 수도 없다.In this way, the distributed file information is encrypted in the smart contract of the blockchain, and the address stored to access the distributed environment is also encrypted and stored, so the file cannot be accessed or decrypted without permission through NFT.

실시 예에 따라, 도 5는 파일 접근 권한과 관련된 파일 암호화 방법에서, 1개의 파일에 소유자가 복수인 경우를 설명하기 위한 예시 개념도이다. According to an embodiment, FIG. 5 is an exemplary conceptual diagram for explaining a case where a single file has a plurality of owners in a file encryption method related to file access authority.

도 5를 참조하면, 하나의 파일(510)에 대한 소유자가 여러명인 경우에도, 소유자가 한명일 때와 유사한 방식으로 암호화가 수행되는데, 소유자의 수만큼 복수의 NFT(530a, 530b)가 발급된다.Referring to FIG. 5 , even if there are several owners of one file 510, encryption is performed in a similar manner to the case where there is only one owner, and a plurality of NFTs 530a and 530b are issued as many as the number of owners.

복수의 NFT(530a, 530b) 각각에 대하여 자격을 증명하고 파일에 대한 접근 권한을 관리한다. 이때, 메타 정보(511), 예를 들어 파일의 생성일자, 파일명, 기타 파일과 관련된 정보는 복수의 NFT(530a, 530b)에 대하여 공유될 수 있다.Credentials are verified for each of the plurality of NFTs 530a and 530b, and access rights to files are managed. At this time, the meta information 511, for example, the date of creation of the file, the file name, and other file-related information may be shared with respect to a plurality of NFTs 530a and 530b.

발급된 복수의 NFT(530a, 530b)는 각각의 블록체인 계정(520a, 520b)을 통해 접근하여 추출한 각각의 공개 키(Public key)(521, 521-2)를 사용하여 RSA 암호화하고(523), AES암호화 키(524)를 각각의 공개키(521, 521-2)와 개인키(522, 522-2)를 통해 AES 암호화하고(525), 이를 사용하여 파일을 비대칭암호화 한다(526). 그런 다음, AES 암호화된 파일을 IPFS와 같은 분산환경, 예를 들어 분산 스토리지(534)에 업로드한다(527). 분산환경, 예를 들어 분산 스토리지(534)에 업로드된 파일의 접근주소는 다시 각각의 공개키(521, 521-2)를 통해 암호화하여 저장된다. 구체적으로, 분산 환경의 접근 키(533)가 생성되며, 이는 RSA 암호화(523)를 사용한 각각의 암호화 정보(531, 531-2)와 인덱스 ID(532, 532-2)를 포함한다.The issued plurality of NFTs (530a, 530b) are accessed through respective blockchain accounts (520a, 520b) and RSA encrypted using each public key (521, 521-2) extracted (523) , AES encryption key 524 is AES encrypted (525) through each public key (521, 521-2) and private key (522, 522-2), and the file is asymmetrically encrypted (526). Then, the AES-encrypted file is uploaded to a distributed environment such as IPFS, for example, distributed storage 534 (527). The access address of the file uploaded to the distributed environment, for example, the distributed storage 534, is encrypted and stored using the respective public keys 521 and 521-2. Specifically, an access key 533 of a distributed environment is generated, which includes encryption information 531 and 531-2 using RSA encryption 523 and index IDs 532 and 532-2.

이와 같이 AES 암호화 키를 각각의 NFT(530a, 503b) 소유자의 공개키와 비공개키로 비대칭암호화하여 저장하고, 파일 주소도 각각의 공개키와 개인키로 비대칭 암호화되어 저장된다. 따라서, 각각의 NFT(530a, 503b) 소유자가 서로 간섭없이 독립적으로 접근을 관리할 수 있으며, 원본파일에 대한 수정 삭제는 불가능하다.In this way, the AES encryption key is asymmetrically encrypted and stored with the public and private keys of the owner of each NFT (530a, 503b), and the file address is also asymmetrically encrypted and stored with each public and private key. Therefore, the owners of each NFT (530a, 503b) can manage access independently without interfering with each other, and it is impossible to modify or delete the original file.

한편, 도 6은 도 4(업로드된 파일에 대한 소유자 1명)와 관련된 파일 업로드 방법이고, 도 7은 도 5(업로드된 파일에 대한 소유자 여러명)와 관련된 파일 업로드 방법의 예시를 보인 것이다.Meanwhile, FIG. 6 is a file upload method related to FIG. 4 (one owner of an uploaded file), and FIG. 7 shows an example of a file upload method related to FIG. 5 (several owners of an uploaded file).

먼저, 도 6을 참조하면, 파일 및 메타 정보(610), 예를 들어 소유자 정보가 업로드되면(601), 블록체인에 기반한 애플리케이션(620), 즉 DApp에 액세스하여, AES 암호화 키(621)를 이용하여 암호화된 파일(622)을 분산 환경인 분산 스토리지(630)에 저장한다(602). 이때, 분산 스토리지(630)에는 접근 키(623)를 통해 접근이 가능하며, 암호화된 접근 키(624)가 저장된다. 또한, AES 암호화 키(621)를 이용하여 공개 키로 RSA 암호화를 수행하여, AES 암호화 키를 암호화한다(625).First, referring to FIG. 6, when file and meta information 610, for example, owner information is uploaded (601), a blockchain-based application 620, that is, DApp is accessed, and an AES encryption key 621 is obtained. The encrypted file 622 is stored in the distributed storage 630, which is a distributed environment (602). At this time, the distributed storage 630 can be accessed through an access key 623, and an encrypted access key 624 is stored. In addition, RSA encryption is performed with the public key using the AES encryption key 621 to encrypt the AES encryption key (625).

블록체인(640)에는 발급된 NFT(641)와 관련된 정보, 예를 들어 파일 소유자의 계정에 NFT 발행, 생성된 NFT 의 메타에 파일 정보 기록, 암호화 정보 기록을 저장한다. The blockchain 640 stores information related to the issued NFT 641, for example, NFT issuance in the account of the file owner, file information record, and encryption information record in the meta of the generated NFT.

한편, 도 7은 각각의 NFT(741, 742)를 발행하고 개인키와 공개키를 통해 암호화한 파일의 해시(Hash) 값을 IFPS등과 같은 분산환경에 기록하는 것은 동일 하지만 소유자가 여러명일 경우에는 원본파일이 하나만 기록되고 이 파일에 대한 암호화 키를 각각의 공개키와 개인키를 통해서만 복호화 시킬 수 있다는 점에서 차이가 있다. 파일의 업로드(701)시 파일의 기본정보는 메타(Meta)와 시스템의 DB에 기록되고 소유자 정보는 블록체인(740)의 계정에 귀속된다. 그러나, 파일의 소유권이 이전되는 NFT(741, 742)의 경우 블록체인 계정간의 NFT 거래로서 소유권이 변경될 수 있다.On the other hand, in FIG. 7, it is the same to issue each NFT (741, 742) and record the hash value of the file encrypted through the private key and public key in a distributed environment such as IFPS, but if there are several owners There is a difference in that only one original file is recorded and the encryption key for this file can be decrypted only through each public key and private key. When a file is uploaded (701), the basic information of the file is recorded in the meta and the DB of the system, and the owner information is attributed to the account of the block chain (740). However, in the case of NFTs (741, 742) in which ownership of files is transferred, ownership may be changed as an NFT transaction between blockchain accounts.

구체적으로, 파일 및 메타 정보(710), 예를 들어 소유자 정보가 업로드되면(701), 블록체인에 기반한 애플리케이션(720), 즉 DApp에 액세스하여, AES 암호화 키(721)를 이용하여 암호화된 파일(722)을 분산 환경인 분산 스토리지(730)에 저장한다(702). 이때, 분산 스토리지(730)에는 접근 키(723)를 통해 접근이 가능하며, 각각의 NFT (741, 742)에 접근하기 위한 각각의 암호화된 접근 키(724, 726)가 저장된다. 또한, AES 암호화 키(721)를 이용하여 공개 키로 RSA 암호화를 수행하여, 각각의 암호화된 AES 암호화 키(725, 727)를 생성한다.Specifically, when file and meta information (710), for example, owner information is uploaded (701), a blockchain-based application (720), i.e., a DApp is accessed, and a file encrypted using an AES encryption key (721) (722) is stored in a distributed storage (730), which is a distributed environment (702). At this time, the distributed storage 730 can be accessed through an access key 723, and each encrypted access key 724, 726 for accessing each NFT (741, 742) is stored. In addition, RSA encryption is performed with the public key using the AES encryption key 721 to generate encrypted AES encryption keys 725 and 727, respectively.

도 7에서, 제1 암호화된 접근 키(724)를 통해서는 제1 NFT(741)에만 접근할 수 있고, 제2 암호화된 접근 키(726)를 통해서는 제2 NFT(742)에만 접근할 수 있다.In FIG. 7, only the first NFT 741 can be accessed through the first encrypted access key 724 and only the second NFT 742 can be accessed through the second encrypted access key 726. there is.

도 8은 본 개시의 실시 예에 따라, 파일 접근 및 소유자의 허가 방법을 설명하기 위한 개념도이다.8 is a conceptual diagram for explaining a file access and owner permission method according to an embodiment of the present disclosure.

도 8에 도시된 바와 같이, 요청자(810), 예를 들어 제3자가 파일에 접근하기 위해, 먼저 파일 소유자의 블록체인 계정이 연동된 지갑 또는 키 스토어(Keystore)를 보관하고있는 서비스(821)에 액세스할 수 있는 앱(App) 또는 웹(Web) 매니저(820)를 통해 접근 요청(801)을 전송하여 사용자에게 실시간으로 허가를 요청한다.As shown in FIG. 8, in order for the requester 810, for example, a third party to access the file, first, a service 821 that stores a wallet or keystore linked to the blockchain account of the file owner An access request 801 is transmitted through an App or Web manager 820 capable of accessing to request permission from the user in real time.

서비스(821)는 NFT 앱(840)을 통해, 소유자(850)에게 접근 요청(805)을 전달하고, 소유자(850)로부터 허가(806)를 수신한다. 이때, 접근과 허가에 대한 내용을 블록체인의 스마트컨트랙트에 기록한다.The service 821 forwards the access request 805 to the owner 850 through the NFT app 840 and receives permission 806 from the owner 850 . At this time, the contents of access and permission are recorded in the smart contract of the blockchain.

서비스(821)는 허가(806)에 응답하여, 복호화된 URI(802)를 분산 환경 IPFS(830)에 전달한다. IPFS(830)는 저장된 해시 값(803)를 제공하여, 파일은 복호화된 메모리에 저장하고(822), 요청자(810)에게는 접근 URI를 제공한다(823).Service 821 responds to authorization 806 and forwards decrypted URI 802 to distributed environment IPFS 830 . The IPFS 830 provides the stored hash value 803, stores the file in the decrypted memory (822), and provides an access URI to the requester 810 (823).

즉, 복호화된 파일이 서버의 메모리 캐쉬에 임시로 보관되며, 그에 대한 접근 주소가 요청자(810)에게 전달되어, 파일에 접근할 수 있게 해준다. 한편, 서버의 메모리 캐쉬에 제공된 파일과 접근 URI 는 정해진 일정시간이 지나면 폐기된다.That is, the decrypted file is temporarily stored in the memory cache of the server, and an access address thereof is transmitted to the requester 810, allowing access to the file. Meanwhile, files and access URIs provided in the server's memory cache are discarded after a certain period of time.

도 9는 본 개시의 실시 예에 따라, 정보 처리 시스템이 복수의 사용자 단말과 통신 가능하도록 연결된 구성을 나타내는 개요도이다.9 is a schematic diagram illustrating a configuration in which an information processing system is communicatively connected with a plurality of user terminals according to an embodiment of the present disclosure.

도 9는 본 개시의 일 실시예에 따른 정보 처리 시스템(930)이 복수의 사용자 단말(910_1, 910_2, 910_3)과 통신 가능하도록 연결된 구성을 나타내는 개요도이다. 도시된 바와 같이, 복수의 사용자 단말(910_1, 910_2, 910_3)은 네트워크(920)를 통해 파일을 암호화하고 NFT 를 발급하고, 분산 환경에 접근 키를 생성하고, 파일 접근 요청에 대해 URI 를 제공받을 수 있는 정보 처리 시스템(930)과 연결될 수 있다. 여기서, 복수의 사용자 단말(910_1, 910_2, 910_3)은 개인 키(private key)에 의해 식별되는 사용자 식별 정보(예: 패스워드, UID, 검증가능한 신원정보(Verifiable Credential, VC), 및/또는 사용자 생체정보 등)를 사용하여 파일 접근 요청에 대한 허가에 기초하여 파일 접근 URI 를 제공받을 수 있는 사용자 및/또는 접근권한이 운영자의 단말을 포함할 수 있다. 일 실시예에서, 정보 처리 시스템(930)은 IPFS 기반의 파일 보안과 관련된 컴퓨터 실행 가능한 프로그램(예를 들어, 다운로드 가능한 애플리케이션) 및 데이터를 저장, 제공 및 실행할 수 있는 하나 이상의 서버 장치 및/또는 데이터베이스, 또는 클라우드 컴퓨팅 서비스 기반의 하나 이상의 분산 컴퓨팅 장치 및/또는 분산 데이터베이스를 포함할 수 있다.9 is a schematic diagram illustrating a configuration in which an information processing system 930 according to an embodiment of the present disclosure is communicatively connected to a plurality of user terminals 910_1, 910_2, and 910_3. As shown, the plurality of user terminals 910_1, 910_2, and 910_3 encrypt files through the network 920, issue NFTs, generate access keys in a distributed environment, and receive URIs for file access requests. It can be connected to the information processing system 930 that can be. Here, the plurality of user terminals 910_1, 910_2, and 910_3 provide user identification information identified by a private key (eg, password, UID, verifiable credential, VC), and/or user biometrics. information, etc.) to be provided with a file access URI based on permission for a file access request, and/or access rights may include an operator's terminal. In one embodiment, the information processing system 930 is one or more server devices and/or databases capable of storing, providing, and executing computer-executable programs (eg, downloadable applications) and data related to IPFS-based file security. , or one or more distributed computing devices and/or distributed databases based on cloud computing services.

정보 처리 시스템(930)에 의해 제공되는 IPFS 기반의 파일 업로드, 암호화, 접근 요청에 대한 결과는, 복수의 사용자 단말(910_1, 910_2, 910_3)의 각각에 설치된 IPFS 기반의 파일 보안과 관련된 애플리케이션, 모바일 브라우저 애플리케이션, 웹 브라우저 또는 웹 브라우저 확장 프로그램 등을 통해 사용자에게 제공될 수 있다.The result of the IPFS-based file upload, encryption, and access request provided by the information processing system 930 is an application related to IPFS-based file security installed in each of the plurality of user terminals 910_1, 910_2, and 910_3, mobile It may be provided to the user through a browser application, a web browser, or a web browser extension program.

복수의 사용자 단말(910_1, 910_2, 910_3)은 네트워크(920)를 통해 정보 처리 시스템(930)과 통신할 수 있다.A plurality of user terminals 910_1 , 910_2 , and 910_3 may communicate with the information processing system 930 through the network 920 .

네트워크(920)는 복수의 사용자 단말(910_1, 910_2, 910_3)과 정보 처리 시스템(930) 사이의 통신이 가능하도록 구성될 수 있다. 네트워크(920)는 설치 환경에 따라, 예를 들어, 이더넷(Ethernet), 유선 홈 네트워크(Power Line Communication), 전화선 통신 장치 및 RS-serial 통신 등의 유선 네트워크, 이동통신망, WLAN(Wireless LAN), Wi-Fi, Bluetooth 및 ZigBee 등과 같은 무선 네트워크 또는 그 조합으로 구성될 수 있다. 통신 방식은 제한되지 않으며, 네트워크(920)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망, 위성망 등)을 활용하는 통신 방식뿐만 아니라 사용자 단말(910_1, 910_2, 910_3) 사이의 근거리 무선 통신 역시 포함될 수 있다.The network 920 may be configured to enable communication between the plurality of user terminals 910_1, 910_2, and 910_3 and the information processing system 930. Depending on the installation environment, the network 920 may be, for example, a wired network such as Ethernet, a wired home network (Power Line Communication), a telephone line communication device and RS-serial communication, a mobile communication network, a wireless LAN (WLAN), It may consist of a wireless network such as Wi-Fi, Bluetooth, and ZigBee, or a combination thereof. The communication method is not limited, and the user terminals (910_1, 910_2, 910_3) as well as a communication method utilizing a communication network (eg, mobile communication network, wired Internet, wireless Internet, broadcasting network, satellite network, etc.) that the network 920 may include ), short-range wireless communication between them may also be included.

도 9에서 휴대폰 단말(910_1), 태블릿 단말(910_2) 및 노트북 단말(910_3)이 사용자 단말의 예로서 도시되었으나, 이에 한정되지 않으며, 사용자 단말(910_1, 910_2, 910_3)은 유선 및/또는 무선 통신이 가능하고 애플리케이션, 모바일 브라우저 애플리케이션, 웹 브라우저 또는 웹 브라우저 확장 프로그램 등이 설치되어 실행될 수 있는 임의의 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 단말은, AI 스피커, 스마트폰, 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC, 게임 콘솔(game console), 웨어러블 디바이스(wearable device), IoT(internet of things) 디바이스, VR(virtual reality) 디바이스, AR(augmented reality) 디바이스, 셋톱 박스 등을 포함할 수 있다. 또한, 도 8에는 3개의 사용자 단말(910_1, 910_2, 910_3)이 네트워크(920)를 통해 정보 처리 시스템(930)과 통신하는 것으로 도시되어 있으나, 이에 한정되지 않으며, 상이한 수의 사용자 단말이 네트워크(920)를 통해 정보 처리 시스템(930)과 통신하도록 구성될 수도 있다.In FIG. 9, a mobile phone terminal 910_1, a tablet terminal 910_2, and a notebook terminal 910_3 are illustrated as examples of user terminals, but are not limited thereto, and the user terminals 910_1, 910_2, and 910_3 may perform wired and/or wireless communication. It may be any computing device capable of this and having an application, mobile browser application, web browser or web browser extension program installed and running thereon. For example, user terminals include AI speakers, smartphones, mobile phones, navigation devices, computers, laptop computers, digital broadcasting terminals, personal digital assistants (PDA), portable multimedia players (PMPs), tablet PCs, game consoles, It may include a wearable device, an internet of things (IoT) device, a virtual reality (VR) device, an augmented reality (AR) device, a set-top box, and the like. In addition, although FIG. 8 shows three user terminals 910_1, 910_2, and 910_3 communicating with the information processing system 930 through the network 920, it is not limited thereto, and a different number of user terminals may be connected to the network ( 920 may be configured to communicate with information processing system 930.

일 실시예에 따르면, 정보 처리 시스템(930)은 복수의 사용자 단말(910_1, 910_2, 910_3)로부터 하나 이상의 파일 접근 요청을 수신할 수 있다. 정보 처리 시스템(930)은 수신된 요청에 대한 소유자 허가에 기반하여, 복수의 사용자 단말(910_1, 910_2, 910_3)에게 별도의 주소(URI)를 할당한다. 할당받은 주소(URI)는 접근을 요청한 서비스에 공개되며, 미리설정된 일정시간이 지나면 메모리 캐쉬의 파일은 자동 삭제 되고 주소(URI)도 삭제된다.According to one embodiment, the information processing system 930 may receive one or more file access requests from a plurality of user terminals 910_1, 910_2, and 910_3. The information processing system 930 allocates separate addresses (URIs) to the plurality of user terminals 910_1, 910_2, and 910_3 based on the owner permission for the received request. The allocated address (URI) is disclosed to the service that requested access, and after a predetermined period of time, the file in the memory cache is automatically deleted and the address (URI) is also deleted.

도 10은 본 개시의 실시 예에 따라, 정보 처리 시스템 및 사용자 단말의 예시적 내부 구성을 나타내는 블록도이다.10 is a block diagram illustrating exemplary internal configurations of an information processing system and a user terminal according to an embodiment of the present disclosure.

사용자 단말(1010)은 IPFS 기반의 파일 보안과 관련된 애플리케이션, 모바일 브라우저 애플리케이션, 웹 브라우저 또는 웹 브라우저 확장 프로그램 등을 실행 가능하고 유/무선 통신이 가능한 임의의 컴퓨팅 장치를 지칭할 수 있다.The user terminal 1010 may refer to any computing device capable of executing an IPFS-based file security-related application, a mobile browser application, a web browser or a web browser extension program, and capable of wired/wireless communication.

도시된 바와 같이, 사용자 단말(1010)은 메모리(1013), 프로세서(1014), 통신 모듈(1015) 및 입출력 인터페이스(1012)를 포함할 수 있다. 이와 유사하게, 정보 처리 시스템(1030)은 메모리(1032), 프로세서(1033), 통신 모듈(1034) 및 입출력 인터페이스(1031)를 포함할 수 있다. 도 4에 도시된 바와 같이, 사용자 단말(1010) 및 정보 처리 시스템(1030)은 각각의 통신 모듈을 이용하여 네트워크(1020)를 통해 정보 및/또는 데이터를 통신할 수 있도록 구성될 수 있다. 또한, 입출력 장치(1011)는 입출력 인터페이스(1012)를 통해 사용자 단말(1010)에 정보 및/또는 데이터를 입력하거나 사용자 단말(1010)로부터 생성된 정보 및/또는 데이터를 출력하도록 구성될 수 있다.As shown, the user terminal 1010 may include a memory 1013, a processor 1014, a communication module 1015, and an input/output interface 1012. Similarly, the information processing system 1030 may include a memory 1032 , a processor 1033 , a communication module 1034 and an input/output interface 1031 . As shown in FIG. 4 , the user terminal 1010 and the information processing system 1030 may be configured to communicate information and/or data through the network 1020 using respective communication modules. In addition, the input/output device 1011 may be configured to input information and/or data to the user terminal 1010 through the input/output interface 1012 or output information and/or data generated from the user terminal 1010.

메모리(1013, 1032)는 비-일시적인 임의의 컴퓨터 판독 가능한 기록매체를 포함할 수 있다. 일 실시예에 따르면, 메모리(1013, 1032)는 RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 다른 예로서, ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리와는 구분되는 별도의 영구 저장 장치로서 사용자 단말(1010) 또는 정보 처리 시스템(1030)에 포함될 수 있다. 또한, 메모리(1013, 1032)에는 운영체제와 적어도 하나의 프로그램 코드(예를 들어, 사용자 단말(1010)에 설치되어 구동되는 IPFS 기반의 파일 보안과 관련된 애플리케이션 등을 위한 코드)가 저장될 수 있다.The memories 1013 and 1032 may include any computer readable recording medium that is non-transitory. According to one embodiment, the memories 1013 and 1032 are non-perishable mass storage devices such as random access memory (RAM), read only memory (ROM), disk drive, solid state drive (SSD), flash memory, and the like. (permanent mass storage device) may be included. As another example, a non-perishable mass storage device such as ROM, SSD, flash memory, disk drive, etc. may be included in the user terminal 1010 or the information processing system 1030 as a separate permanent storage device distinct from memory. In addition, the memories 1013 and 1032 may store an operating system and at least one program code (eg, a code for an IPFS-based file security-related application that is installed and driven in the user terminal 1010).

이러한 소프트웨어 구성요소들은 메모리(1013, 1032)와는 별도의 컴퓨터에서 판독가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독가능한 기록매체는 이러한 사용자 단말(1010) 및 정보 처리 시스템(1030)에 직접 연결가능한 기록 매체를 포함할 수 있는데, 예를 들어, 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 예로서, 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈을 통해 메모리(1013, 1032)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 애플리케이션의 설치 파일을 배포하는 파일 배포 시스템이 네트워크(1020)를 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 메모리(1013, 1032)에 로딩될 수 있다.These software components may be loaded from a computer-readable recording medium separate from the memories 1013 and 1032 . A recording medium readable by such a separate computer may include a recording medium directly connectable to the user terminal 1010 and the information processing system 1030, for example, a floppy drive, a disk, a tape, a DVD/CD- It may include a computer-readable recording medium such as a ROM drive and a memory card. As another example, software components may be loaded into the memories 1013 and 1032 through a communication module rather than a computer-readable recording medium. For example, at least one program is loaded into the memories 1013 and 1032 based on a computer program installed by files provided by developers or a file distribution system that distributes application installation files through the network 1020. It can be.

프로세서(1014, 1033)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(1013, 1032) 또는 통신 모듈(1015, 1034)에 의해 프로세서(1014, 1033)로 제공될 수 있다. 예를 들어, 프로세서(1014, 1033)는 메모리(1013, 1032)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.Processors 1014 and 1033 may be configured to process commands of computer programs by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to processors 1014 and 1033 by memories 1013 and 1032 or communication modules 1015 and 1034. For example, processors 1014 and 1033 may be configured to execute received instructions according to program codes stored in a recording device such as memory 1013 and 1032 .

통신 모듈(1015, 1034)은 네트워크(1020)를 통해 사용자 단말(1010)과 정보 처리 시스템(1030)이 서로 통신하기 위한 구성 또는 기능을 제공할 수 있으며, 사용자 단말(1010) 및/또는 정보 처리 시스템(1030)이 다른 사용자 단말 또는 다른 시스템(일례로 별도의 클라우드 시스템 등)과 통신하기 위한 구성 또는 기능을 제공할 수 있다. 일례로, 사용자 단말(1010)의 프로세서(1014)가 메모리(1013) 등과 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청 또는 데이터(예를 들어, 파일 접근 파일 요청, AES 및 RSA 암호화와 관련된 데이터, 분산 환경 접근 키와 관련된 데이터, NFT 파일 생성 경로, 다양한 기록 데이터, 접근 URI 와 관련된 데이터 등)는 통신 모듈(1015)의 제어에 따라 네트워크(1020)를 통해 정보 처리 시스템(1030)으로 전달될 수 있다.The communication modules 1015 and 1034 may provide configurations or functions for the user terminal 1010 and the information processing system 1030 to communicate with each other through the network 1020, and the user terminal 1010 and/or information processing The system 1030 may provide configurations or functions for communicating with other user terminals or other systems (eg, a separate cloud system). For example, a request or data generated by the processor 1014 of the user terminal 1010 according to a program code stored in a recording device such as a memory 1013 (eg, file access file request, data related to AES and RSA encryption) , data related to the distributed environment access key, NFT file creation path, various record data, data related to the access URI, etc.) are transmitted to the information processing system 1030 through the network 1020 under the control of the communication module 1015. can

역으로, 정보 처리 시스템(1030)의 프로세서(1033)의 제어에 따라 제공되는 제어 신호나 명령이 통신 모듈(1034)과 네트워크(1020)를 거쳐 사용자 단말(1010)의 통신 모듈(1015)을 통해 사용자 단말(1010)에 수신될 수 있다. 예를 들어, 사용자 단말(1010)은 정보 처리 시스템(1030)으로부터 통신 모듈(1015)을 통해, 요청한 파일에 접근하기 위한 URI 정보를 수신할 수 있다.Conversely, a control signal or command provided under the control of the processor 1033 of the information processing system 1030 passes through the communication module 1034 and the network 1020 and through the communication module 1015 of the user terminal 1010. It may be received by the user terminal 1010 . For example, the user terminal 1010 may receive URI information for accessing a requested file from the information processing system 1030 through the communication module 1015 .

입출력 인터페이스(1012)는 입출력 장치(1011)와의 인터페이스를 위한 수단일 수 있다. 일 예로서, 입력 장치는 오디오 센서 및/또는 이미지 센서를 포함한 카메라, 키보드, 마이크로폰, 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커, 햅틱 피드백 디바이스(haptic feedback device) 등과 같은 장치를 포함할 수 있다. 다른 예로, 입출력 인터페이스(1012)는 터치스크린 등과 같이 입력과 출력을 수행하기 위한 구성 또는 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 사용자 단말(1010)의 프로세서(1014)가 메모리(1013)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 정보 처리 시스템(1030)이나 다른 사용자 단말이 제공하는 정보 및/또는 데이터를 이용하여 구성되는 서비스 화면 등이 입출력 인터페이스(1012)를 통해 디스플레이에 표시될 수 있다. 도 10에서는 입출력 장치(1011)가 사용자 단말(1010)에 포함되지 않도록 도시되어 있으나, 이에 한정되지 않으며, 사용자 단말(1010)과 하나의 장치로 구성될 수 있다. 또한, 정보 처리 시스템(1030)의 입출력 인터페이스(1031)는 정보 처리 시스템(1030)과 연결되거나 정보 처리 시스템(1030)이 포함할 수 있는 입력 또는 출력을 위한 장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 도 10에서는 입출력 인터페이스(1012, 1031)가 프로세서(1014, 1033)와 별도로 구성된 요소로서 도시되었으나, 이에 한정되지 않으며, 입출력 인터페이스(1012, 1031)가 프로세서(1014, 1033)에 포함되도록 구성될 수 있다.The input/output interface 1012 may be a means for interface with the input/output device 1011 . As an example, the input device may include a device such as a camera, keyboard, microphone, mouse, etc. including an audio sensor and/or image sensor, and the output device may include a device such as a display, speaker, haptic feedback device, or the like. can As another example, the input/output interface 1012 may be a means for interface with a device in which a configuration or function for performing input and output is integrated into one, such as a touch screen. For example, when the processor 1014 of the user terminal 1010 processes a command of a computer program loaded into the memory 1013, information and/or data provided by the information processing system 1030 or other user terminals are used. A service screen or the like configured as described above may be displayed on the display through the input/output interface 1012 . In FIG. 10 , the input/output device 1011 is shown not to be included in the user terminal 1010, but is not limited thereto, and the user terminal 1010 and the user terminal 1010 may be configured as one device. In addition, the input/output interface 1031 of the information processing system 1030 is connected to the information processing system 1030 or means for interface with a device (not shown) for input or output that the information processing system 1030 may include. can be In FIG. 10, the input/output interfaces 1012 and 1031 are shown as elements configured separately from the processors 1014 and 1033, but are not limited thereto, and the input/output interfaces 1012 and 1031 may be included in the processors 1014 and 1033. there is.

사용자 단말(1010) 및 정보 처리 시스템(1030)은 도 10의 구성요소들보다 더 많은 구성요소들을 포함할 수 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 일 실시예에 따르면, 사용자 단말(1010)은 상술된 입출력 장치(1011) 중 적어도 일부를 포함하도록 구현될 수 있다. 또한, 사용자 단말(1010)은 트랜시버(transceiver), GPS(Global Positioning system) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수 있다. 예를 들어, 사용자 단말(1010)이 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 구성요소를 포함할 수 있으며, 예를 들어, 가속도 센서, 자이로 센서, 카메라 모듈, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 사용자 단말(1010)에 더 포함되도록 구현될 수 있다. 일 실시예에 따르면, 사용자 단말(1010)의 프로세서(1014)는 IPFS 기반의 파일 보안과 관련된 애플리케이션 등이 동작하도록 구성될 수 있다. 이 때, 해당 애플리케이션 및/또는 프로그램과 연관된 코드가 사용자 단말(1010)의 메모리(1013)에 로딩될 수 있다.The user terminal 1010 and the information processing system 1030 may include more components than those shown in FIG. 10 . However, there is no need to clearly show most of the prior art components. According to one embodiment, the user terminal 1010 may be implemented to include at least some of the aforementioned input/output devices 1011 . In addition, the user terminal 1010 may further include other components such as a transceiver, a global positioning system (GPS) module, a camera, various sensors, and a database. For example, when the user terminal 1010 is a smartphone, it may include components that are generally included in a smartphone, for example, an acceleration sensor, a gyro sensor, a camera module, various physical buttons, and a touch screen. Various components such as a button using a panel, an input/output port, and a vibrator for vibration may be implemented to be further included in the user terminal 1010 . According to an embodiment, the processor 1014 of the user terminal 1010 may be configured to operate an application related to IPFS-based file security. At this time, codes associated with the application and/or program may be loaded into the memory 1013 of the user terminal 1010 .

IPFS 기반의 파일 보안과 관련된 애플리케이션 등을 위한 프로그램이 동작되는 동안에, 프로세서(1014)는 입출력 인터페이스(1012)와 연결된 터치 스크린, 키보드, 오디오 센서 및/또는 이미지 센서를 포함한 카메라, 마이크로폰 등의 입력 장치를 통해 입력되거나 선택된 텍스트, 이미지, 영상, 음성 및/또는 동작 등을 수신할 수 있으며, 수신된 텍스트, 이미지, 영상, 음성 및/또는 동작 등을 메모리(1013)에 저장하거나 통신 모듈(1015) 및 네트워크(1020)를 통해 정보 처리 시스템(1030)에 제공할 수 있다.While a program for IPFS-based file security-related applications is running, the processor 1014 connects the input/output interface 1012 with a touch screen, keyboard, audio sensor, and/or an input device such as a camera, microphone, and the like including an image sensor. It is possible to receive input or selected text, image, video, voice, and/or action, and store the received text, image, video, voice, and/or action in the memory 1013 or in the communication module 1015. And it can be provided to the information processing system 1030 through the network 1020.

사용자 단말(1010)의 프로세서(1014)는 입력 장치(1011), 다른 사용자 단말, 정보 처리 시스템(1030) 및/또는 복수의 외부 시스템으로부터 수신된 정보 및/또는 데이터를 관리, 처리 및/또는 저장하도록 구성될 수 있다. 프로세서(1014)에 의해 처리된 정보 및/또는 데이터는 통신 모듈(1015) 및 네트워크(1020)를 통해 정보 처리 시스템(1030)에 제공될 수 있다. 사용자 단말(1010)의 프로세서(1014)는 입출력 인터페이스(1012)를 통해 입출력 장치(1011)로 정보 및/또는 데이터를 전송하여, 출력할 수 있다. 예를 들면, 프로세서(1014)는 수신한 정보 및/또는 데이터를 사용자 단말의 화면에 디스플레이할 수 있다.The processor 1014 of the user terminal 1010 manages, processes, and/or stores information and/or data received from the input device 1011, other user terminals, the information processing system 1030, and/or a plurality of external systems. can be configured to Information and/or data processed by processor 1014 may be provided to information processing system 1030 via communication module 1015 and network 1020 . The processor 1014 of the user terminal 1010 may transmit and output information and/or data to the input/output device 1011 through the input/output interface 1012 . For example, the processor 1014 may display the received information and/or data on the screen of the user terminal.

정보 처리 시스템(1030)의 프로세서(1033)는 복수의 사용자 단말(1010) 및/또는 복수의 외부 시스템으로부터 수신된 정보 및/또는 데이터를 관리, 처리 및/또는 저장하도록 구성될 수 있다. 프로세서(1033)에 의해 처리된 정보 및/또는 데이터는 통신 모듈(1034) 및 네트워크(1020)를 통해 사용자 단말(1010)에 제공할 수 있다.The processor 1033 of the information processing system 1030 may be configured to manage, process, and/or store information and/or data received from a plurality of user terminals 1010 and/or a plurality of external systems. Information and/or data processed by the processor 1033 may be provided to the user terminal 1010 through the communication module 1034 and the network 1020 .

일 실시예에서, 정보 처리 시스템(1030)의 프로세서(1033)는 사용자 단말(1010)로부터 수신된 하나 이상의 파일 업로드 요청에 기초하여, 파일을 임시 서버의 메모리 캐쉬에 보관하고 32자의 AES 암호화 키와 16자의 IV(Initialization Vector, 초기화 벡터)를 생성하고 이를 통해 파일을 암호화 시킨다. 그리고, 소유자 블록체인 계정의 주소(Address)를 통해 공개 키(Public key)를 추출하고 AES 암호화 키를 비대칭 암호화시킨다. AES 암호화된 파일은 분산 환경에 저장되며, 공개 키(Public key)로 분산환경에의 접근 키를 비대칭 암호화 시킨다. 이후, NFT를 생성하고 파일정보와 암호화 정보를 기록하고 시스템에 생성 정보를 기록하고, 파일 업로드의 완료 결과를 사용자 단말(1010)로 전송할 수 있다.In one embodiment, the processor 1033 of the information processing system 1030, based on one or more file upload requests received from the user terminal 1010, stores the file in the memory cache of the temporary server and provides a 32-character AES encryption key and A 16-character IV (Initialization Vector) is created and the file is encrypted through it. Then, the public key is extracted through the address of the owner's blockchain account and the AES encryption key is asymmetrically encrypted. AES-encrypted files are stored in a distributed environment, and the access key to the distributed environment is asymmetrically encrypted with a public key. Thereafter, an NFT may be created, file information and encryption information may be recorded, generation information may be recorded in the system, and a file upload completion result may be transmitted to the user terminal 1010 .

또한, 정보 처리 시스템(1030)의 프로세서(1033)는 사용자 단말(1010)로부터 수신된 하나 이상의 파일 접근 요청에 기초하여, NFT 소유자로부터 앱(App) 또는 웹(Web)을 통해 접근을 통보하고, 허가된 파일은 NFT를 통해 복호화 되어 시스템상의 메모리 캐쉬에 저장되고, 사용자 단말(1010)에 임시 주소(URI)를 할당한다. 할당받은 주소(URI)는 접근을 요청한 서비스에 공개되며, 미리설정된 일정시간이 지나면 메모리 캐쉬의 파일은 자동 삭제 되고 주소(URI)도 삭제된다.In addition, the processor 1033 of the information processing system 1030 notifies access from the NFT owner through an App or Web based on one or more file access requests received from the user terminal 1010, The permitted file is decrypted through NFT and stored in a memory cache on the system, and a temporary address (URI) is assigned to the user terminal 1010. The allocated address (URI) is disclosed to the service that requested access, and after a predetermined period of time, the file in the memory cache is automatically deleted and the address (URI) is also deleted.

정보 처리 시스템(1030)의 프로세서(1033)는 사용자 단말(1010)의 디스플레이 출력 가능 장치(예: 터치 스크린, 디스플레이 등), 음성 출력 가능 장치(예: 스피커) 등의 출력 장치(1011)를 통해 처리된 정보 및/또는 데이터를 출력하도록 구성될 수 있다.The processor 1033 of the information processing system 1030 is configured through an output device 1011 such as a display output capable device (eg, a touch screen, a display, etc.) or an audio output capable device (eg, speaker) of the user terminal 1010. It may be configured to output processed information and/or data.

도 11은 본 개시에 따른 파일 업로드 방법의 과정을 도시한 흐름도이고, 도 12는 본 개시에 따른 파일 접근 방법의 과정을 설명하기 위한 흐름도이다.11 is a flowchart illustrating a process of a file upload method according to the present disclosure, and FIG. 12 is a flowchart illustrating a process of a file access method according to the present disclosure.

먼저, 도 11을 참조하면, AES 암호화 키와 IV(Initialization Vector, 초기화 벡터)를 생성하고, 이에 근거하여 파일을 암호화하는 과정을 수행한다(1110). 다음, 사용자 계정의 어드레스를 통해 공개키를 추출하고, RSA 암호화를 수행한다(1120). 계속해서, AES 암호화된 파일을 분산 환경에 저장하고, 분산 환경에의 접근키를 RSA 암호화한다(1130). 이후, NFT 파일을 생성하고, 파일 정보 및 암호화 정보를 기록한다(1140). 그리고, NFT 생성 정보를 저장함으로써(1150), 파일 업로드가 종료된다.First, referring to FIG. 11, an AES encryption key and an Initialization Vector (IV) are generated, and a file is encrypted based on the AES encryption key (1110). Next, a public key is extracted through the address of the user account, and RSA encryption is performed (1120). Subsequently, the AES-encrypted file is stored in a distributed environment, and an access key to the distributed environment is RSA encrypted (1130). Thereafter, an NFT file is created and file information and encryption information are recorded (1140). Then, by storing the NFT generation information (1150), file upload is terminated.

도 12를 참조하면, 본 개시에 따른 파일 접근 프로세서는, 파일의 소유자에게 파일 공유 허가 요청을 전송하는 것으로 개시된다(1210). 소유자로부터 요청 수락이 수신되면, 블록체인 파일의 암호화 정보를 추출한다(1220). 다음, 암호화된 분산 환경 접근 키를 복호화하여, 암호화된 파일을 추출한다(1230). 계속해서, 암호화된 AES 키를 복호화하여 파일을 복호화하고, 이를 서버로 전송한다(1240). 다음, 파일 공유 요청자에게 임시 URI를 제공한 후, 일정 시간이 지나면 파일은 자동 파기하고, 이러한 파일 접근 내용을 블록 체인에 기록한다(1250).Referring to FIG. 12 , the file access processor according to the present disclosure starts by transmitting a file sharing permission request to the owner of the file ( 1210 ). When request acceptance is received from the owner, encryption information of the blockchain file is extracted (1220). Next, the encrypted distributed environment access key is decrypted and the encrypted file is extracted (1230). Subsequently, the file is decrypted by decrypting the encrypted AES key and transmitted to the server (1240). Next, after providing a temporary URI to the file sharing requester, the file is automatically destroyed after a certain period of time, and these file access details are recorded in the block chain (1250).

한편, 본 발명은 파일 보안, DRM(Digital Rights Management) 디지털 콘텐츠 저작권 보호, 파일을 통한 자격증명, 네트워크 상의 파일에 보안 및 저작권, 접근이력 관리가 필요한 소프트웨어 및 서비스에 널리 활용될 수 있다. 나아가, 본 발명은 문서보안 솔루션, 파일보안 솔루션 이외에도 개인 파일 보호 시스템, 개인 의료 데이터 관리, 개인 학적부, 계약 및 증명 문서 관리에 대한 분야까지 폭 넓게 활용될 수 있을 것이다.On the other hand, the present invention can be widely used in software and services that require file security, DRM (Digital Rights Management) digital content copyright protection, credentials through files, security and copyright of files on a network, and management of access history. Furthermore, the present invention can be widely used in the fields of personal file protection system, personal medical data management, personal register, contract and certification document management in addition to document security solutions and file security solutions.

이상에서 설명한 바와 같이, 본 개시의 실시 예에 따른 IPFS 기반의 파일 보안을 위한 컴퓨팅 방법 및 시스템에 의하면, 블록체인에 기록되고 관리되어 위조 및 변조가 불가능하고 IPFS와 같은 분산환경에서 암호화된 형태로 저장되기 때문에 파일의 유출 또는 유실 위험이 제거된다. 또한, 별도의 하드웨어를 추가할 필요없이 NFT 기술을 활용하여 소트프웨적으로 보안을 제공하므로, 보안 및 관리 비용을 절약할 수 있으며, 서비스 기반의 구성을 통해 운영환경과 실행환경에 대한 제약 없이 범용적으로 사용될 수 있으므로 사용성이 확대된다. 또한, 별도의 블록체인 및 IPFS 와 같은 분산환경을 구성하여 허가된 노드만이 참가할 수 있어서 더 강한 보안 시스템을 제공하며, 접근에 대한 요청을 소유자가 실시간으로 확인한 다음 허가할 수 있으므로 특히, 민감한 개일 파일에 대한 접근을 관리하는데 유용하게 사용될 수 있다. 나아가, 관리자는 블록체인 계정만으로 별도의 증명 없이 파일의 소유권을 관리할 수 있으므로 여러 계정을 관리해야 하는 번거로움을 피할 수 있고, 해시 키(Hash Key)가 공개되더라도 NFT의 비공개키를 통해서만 파일 확인이 가능하기 때문에 보안성을 유지되는 장점이 갖는다.As described above, according to the IPFS-based computing method and system for file security according to an embodiment of the present disclosure, it is recorded and managed in a block chain, making forgery and tampering impossible and encrypted in a distributed environment such as IPFS. Because it is stored, the risk of leakage or loss of files is eliminated. In addition, security is provided in a software manner by utilizing NFT technology without the need to add additional hardware, so security and management costs can be saved. It can be used as an enemy, so its usability is expanded. In addition, by configuring a distributed environment such as a separate blockchain and IPFS, only authorized nodes can participate, providing a stronger security system. It can be useful for managing access to files. Furthermore, the administrator can manage the ownership of the file only with the blockchain account without separate proof, avoiding the hassle of managing multiple accounts, and even if the hash key is disclosed, the file can be verified only through the private key of the NFT. Since this is possible, it has the advantage of maintaining security.

상술한 방법은 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램으로 제공될 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있으며, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The above method may be provided as a computer program stored in a computer readable recording medium to be executed on a computer. The medium may continuously store programs executable by a computer or temporarily store them for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or combined hardware, and is not limited to a medium directly connected to a certain computer system, and may be distributed on a network. Examples of the medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROM and DVD, magneto-optical media such as floptical disks, and ROM, RAM, flash memory, etc. configured to store program instructions. In addition, examples of other media include recording media or storage media managed by an app store that distributes applications, a site that supplies or distributes various other software, and a server.

본 개시의 방법, 동작 또는 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 통상의 기술자들은 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 대체를 명확하게 설명하기 위해, 다양한 예시적인 구성요소들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능적 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 요구사항들에 따라 달라진다. 통상의 기술자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.The methods, acts or techniques of this disclosure may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or combinations thereof. Those skilled in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchange of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design requirements imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementations should not be interpreted as causing a departure from the scope of the present disclosure.

하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들(digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들(programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들(field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본 개시에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다.In a hardware implementation, the processing units used to perform the techniques may include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs) ), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, and other electronic units designed to perform the functions described in this disclosure. , a computer, or a combination thereof.

따라서, 본 개시와 연계하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 구성의 조합으로서 구현될 수도 있다.Accordingly, the various illustrative logical blocks, modules, and circuits described in connection with this disclosure may be incorporated into a general-purpose processor, DSP, ASIC, FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or may be implemented or performed in any combination of those designed to perform the functions described in A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, eg, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other configuration.

펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read-only memory; ROM), 비휘발성 RAM(non-volatile random access memory; NVRAM), PROM(programmable read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable PROM), 플래시 메모리, 컴팩트 디스크(compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로서 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본 개시에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다.In firmware and/or software implementation, the techniques include random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), PROM ( on a computer readable medium, such as programmable read-only memory (EPROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage device, or the like. It can also be implemented as stored instructions. Instructions may be executable by one or more processors and may cause the processor(s) to perform certain aspects of the functionality described in this disclosure.

이상 설명된 실시예들이 하나 이상의 독립형 컴퓨터 시스템에서 현재 개시된 주제의 양태들을 활용하는 것으로 기술되었으나, 본 개시는 이에 한정되지 않고, 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 본 개시에서 주제의 양상들은 복수의 프로세싱 칩들이나 장치들에서 구현될 수도 있고, 스토리지는 복수의 장치들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 장치들은 PC들, 네트워크 서버들, 및 휴대용 장치들을 포함할 수도 있다.Although the embodiments described above have been described as utilizing aspects of the presently-disclosed subject matter in one or more stand-alone computer systems, the disclosure is not limited thereto and may be implemented in conjunction with any computing environment, such as a network or distributed computing environment. . Further, aspects of the subject matter in this disclosure may be implemented in a plurality of processing chips or devices, and storage may be similarly affected across multiple devices. These devices may include PCs, network servers, and portable devices.

본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 개시의 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present disclosure has been described in relation to some embodiments in this specification, various modifications and changes may be made without departing from the scope of the present disclosure that can be understood by those skilled in the art. Moreover, such modifications and variations are intended to fall within the scope of the claims appended hereto.

Claims (10)

적어도 하나의 프로세서에 의해 수행되는, IPFS 기반의 파일 보안을 위한 컴퓨팅 방법에 있어서,
IPFS 기반의 파일 보안을 위한 시스템에 의해, AES 암호화 키 및 초기화 벡터(IV)를 생성하고 이를 기초로 파일 암호화를 수행하는 단계;
IPFS 기반의 파일 보안을 위한 시스템에 의해, 파일 소유자의 블록체인 계정의 어드레스를 통해 공개키를 추출하고 이를 기초로 상기 AES 암호화 키를 RSA 암호화하는 단계;
IPFS 기반의 파일 보안을 위한 시스템에 의해, AES 암호화된 파일을 분산 환경의 스토리지에 저장하고, 분산 환경 접근 키를 암호화하는 단계;
IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 암호화된 분산 환경 접근 키를 통해 접근가능한 NFT 파일을 생성하는 단계; 및
IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 NFT 파일에 대한 생성 정보, 파일 정보, 및 암호화 정보를 블록체인의 스마트컨트랙트에 기록하는 단계를 포함하는 IPFS 기반의 파일 보안을 위한 방법.
In the computing method for IPFS-based file security, performed by at least one processor,
Generating an AES encryption key and an initialization vector (IV) by a system for file security based on IPFS and performing file encryption based thereon;
Extracting a public key through an address of a file owner's blockchain account and RSA-encrypting the AES encryption key based on the extracted public key by an IPFS-based file security system;
storing an AES-encrypted file in a storage of a distributed environment and encrypting a distributed environment access key by an IPFS-based file security system;
Generating an NFT file accessible through the encrypted distributed environment access key by a system for file security based on IPFS; and
A method for IPFS-based file security comprising the step of recording creation information, file information, and encryption information for the NFT file in a smart contract of a blockchain by a system for IPFS-based file security.
제1항에 있어서,
상기 분산 환경 접근 키를 암호화하는 단계는,
파일 소유자의 블록체인 계정의 어드레스를 통해 추출된 공개 키(Public key)로 상기 분산 환경 접근 키를 RSA 비대칭 암호화하는 단계인 방법.
According to claim 1,
Encrypting the distributed environment access key,
RSA asymmetric encryption of the distributed environment access key with a public key extracted through the address of the file owner's blockchain account.
제1항에 있어서,
상기 NFT 파일의 생성 후, IPFS 기반의 파일 보안을 위한 시스템에 의해, 제3자의 파일 접근 요청을 수신하는 단계; 및
IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 수신된 요청을 파일 소유자의 블록체인 계정 지갑 또는 키 스토어(keystore)에서 제공하는 서비스를 통해 파일 소유자에게 허가를 요청하는 단계를 더 포함하는 방법.
According to claim 1,
After generating the NFT file, receiving a third party's file access request by an IPFS-based file security system; and
The method further comprising requesting, by the system for IPFS-based file security, permission from the file owner through a service provided by the file owner's blockchain account wallet or keystore for the received request.
제3항에 있어서,
IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 허가 요청에 대한 파일 소유자의 응답에 기초하여, 상기 암호화된 분산 환경 접근 키를 복호화하여, AES 암호화된 파일을 추출하는 단계를 더 포함하는 방법.
According to claim 3,
The method further comprising extracting an AES-encrypted file by decrypting the encrypted distributed environment access key, based on the file owner's response to the permission request, by a system for file security based on IPFS.
제4항에 있어서,
상기 암호화된 파일의 추출 후,
IPFS 기반의 파일 보안을 위한 시스템에 의해, 암호화된 AES 키를 복호화하여 AES 암호화된 파일을 복호화하는 단계를 더 포함하는 방법.
According to claim 4,
After extracting the encrypted file,
The method further comprising decrypting the AES-encrypted file by decrypting the encrypted AES key, by the IPFS-based system for file security.
제5항에 있어서,
AES 암호화된 파일의 복호화 후,
IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 복호화된 파일에 접근할 수 있는 접근 URI를 생성하는 단계; 및
IPFS 기반의 파일 보안을 위한 시스템에 의해, 생성된 접근 URI를 파일 접근 요청을 전송한 제3자의 단말로 전송하는 단계를 더 포함하는 방법.
According to claim 5,
After decryption of AES encrypted files,
generating an access URI through which the decrypted file can be accessed by an IPFS-based file security system; and
The method further comprising transmitting the access URI generated by the IPFS-based system for file security to a terminal of a third party that has transmitted the file access request.
제6항에 있어서,
IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 전송된 접근 URI를 미리정해진 시간 경과후 폐기하는 단계를 더 포함하는 방법.
According to claim 6,
The method further comprising the step of discarding the transmitted access URI after a predetermined time has elapsed by a system for file security based on IPFS.
제7항에 있어서,
IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 미리정해진 시간 경과 후 상기 복호화된 파일이 저장된 메모리 캐쉬로부터 상기 복호화된 파일을 삭제하는 단계를 더 포함하는 방법.
According to claim 7,
The method further comprising deleting the decrypted file from a memory cache in which the decrypted file is stored after the elapse of the predetermined time by an IPFS-based file security system.
제6항에 있어서,
IPFS 기반의 파일 보안을 위한 시스템에 의해, 상기 파일 접근 요청에 관한 정보를 블록체인의 스마트컨트랙트에 기록하는 단계를 더 포함하는 방법.
According to claim 6,
The method further comprising the step of recording information on the file access request in a smart contract of a blockchain by an IPFS-based file security system.
제1항에 있어서,
파일 소유자가 복수인 경우,
상기 NFT 파일을 복수의 파일 소유자만큼 생성하고, 복수의 파일 소유자 각각의 블록체인 계정을 통해 추출한 각각의 공개키(Public key)를 사용하여 각각의 AES 암호화 키를 RSA 암호화하는 단계를 포함하는 방법.
According to claim 1,
If there are multiple file owners,
Generating the NFT file as many as a plurality of file owners, and RSA encrypting each AES encryption key using each public key extracted through the blockchain account of each of the plurality of file owners.
KR1020220120258A 2021-09-27 2022-09-22 Computing method and system for file security based on ipfs KR20230044952A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210127432 2021-09-27
KR20210127432 2021-09-27

Publications (1)

Publication Number Publication Date
KR20230044952A true KR20230044952A (en) 2023-04-04

Family

ID=85928496

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220120258A KR20230044952A (en) 2021-09-27 2022-09-22 Computing method and system for file security based on ipfs

Country Status (1)

Country Link
KR (1) KR20230044952A (en)

Similar Documents

Publication Publication Date Title
US10650167B2 (en) Trusted computing
US9760727B2 (en) Secure host interactions
US9455963B1 (en) Long term encrypted storage and key management
KR101608510B1 (en) System and method for key management for issuer security domain using global platform specifications
TWI724683B (en) Computer-implemented method for managing user key pairs, system for managing user key pairs, and apparatus for managing user key pairs
JP5852265B2 (en) COMPUTER DEVICE, COMPUTER PROGRAM, AND ACCESS Permission Judgment Method
US9948668B2 (en) Secure host communications
US9547773B2 (en) Secure event log management
KR102222948B1 (en) Method and system for managing access security
JP6756056B2 (en) Cryptographic chip by identity verification
TW202044084A (en) Managing cryptographic keys based on identity information
CN110352411A (en) Method and apparatus for controlling the access to safe computing resource
TWM540328U (en) Built-in intelligence security mobile device
KR20230044953A (en) Computing method and system for managing files through account authentication of blockchain
KR20230067062A (en) Method and system for providing privacy-preserving data analysis
KR20230044952A (en) Computing method and system for file security based on ipfs
TW201828186A (en) Mobile device with built-in access control mechanism comprises an access control unit including a control module and a storage module; a memory unit storing an application program; and a processing unit
JP2009259133A (en) Method for controlling access of portable medium