KR20230032807A - Secure platform system for analyzing cdm data in multi-institutional distributed network, and method of the same - Google Patents
Secure platform system for analyzing cdm data in multi-institutional distributed network, and method of the same Download PDFInfo
- Publication number
- KR20230032807A KR20230032807A KR1020210135966A KR20210135966A KR20230032807A KR 20230032807 A KR20230032807 A KR 20230032807A KR 1020210135966 A KR1020210135966 A KR 1020210135966A KR 20210135966 A KR20210135966 A KR 20210135966A KR 20230032807 A KR20230032807 A KR 20230032807A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- server
- ticket
- code
- analysis
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004458 analytical method Methods 0.000 claims abstract description 162
- 238000012795 verification Methods 0.000 claims abstract description 13
- 238000004891 communication Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 17
- 238000007405 data analysis Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013478 data encryption standard Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 238000013499 data model Methods 0.000 description 2
- CCPHAMSKHBDMDS-UHFFFAOYSA-N Chetoseminudin B Natural products C=1NC2=CC=CC=C2C=1CC1(SC)NC(=O)C(CO)(SC)N(C)C1=O CCPHAMSKHBDMDS-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H70/00—ICT specially adapted for the handling or processing of medical references
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/88—Medical equipments
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Computer Hardware Design (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Automatic Analysis And Handling Materials Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
다양한 실시예들은 의료 정보 시스템 및 그의 방법에 관한 것으로, 보다 세부적으로는 여러 병원의 의료 데이터를 안전하고 편리하게 분석하기 위한 네트워크 보안 플랫폼 시스템 및 그의 방법에 관한 것이다.Various embodiments relate to a medical information system and method thereof, and more particularly, to a network security platform system and method for safely and conveniently analyzing medical data of various hospitals.
지난 수십년간 전세계 각 지역의 병원들은 환자에 대한 진료 및 관찰 데이터를 수집해 빅데이터를 형성했다. 하지만, 헬스 빅데이터는 병원별로 각기 다른 양식으로 보관되고 있기 때문에 다기관 연구에 적합하지 않다. 이에 국제 비영리 단체인 OHDSI(observational health data sciences and informatics)는 헬스 빅데이터 분석을 지원하기 위한 많은 소프트웨어를 제시했다.Over the past decades, hospitals around the world have collected medical treatment and observation data on patients to form big data. However, since health big data is stored in different formats for each hospital, it is not suitable for multi-center research. In response, OHDSI (observational health data sciences and informatics), an international non-profit organization, has presented many software to support health big data analysis.
첫 번째로, OHDSI는 병원별로 상이한 데이터 양식을 표준화하기 위해 OMOP-CDM(observational medical outcomes partnership common data model)을 제공한다. OMOP-CDM은 진료 및 관찰 데이터를 저장하기 위한 공통된 데이터베이스 스키마이다. OMOP-CDM은 오라클(Oracle) 및 MS SQL 서버와 같은 대중적으로 사용되는 DBMS를 지원한다. 병원의 데이터 큐레이터는 ETL(extract-transform-load)을 통해 원내의 원본 의료 데이터를 OMOP-CDM으로 변환한다.First, OHDSI provides the OMOP-CDM (observational medical outcomes partnership common data model) to standardize different data formats for different hospitals. OMOP-CDM is a common database schema for storing medical and observational data. OMOP-CDM supports popular DBMS such as Oracle and MS SQL Server. The hospital's data curator converts the original medical data in the hospital into OMOP-CDM through ETL (extract-transform-load).
두 번째로, OHDSI는 OMOP-CDM으로 변환된 의료 데이터를 분석하기 위한 플랫폼으로 아틀라스(Atlas)를 제공한다. 아틀라스는 웹 애플리케이션 형태로 구현되었으며, 코호트 정의와 같은 기능을 지원한다. 아틀라스의 가장 특징적인 기능은 데이터를 분석하기 위한 분석코드를 자동으로 생성하는 것이다. 이 분석코드는 R 언어로 작성되어 있다. 사용자는 아틀라스를 통해 생성한 분석코드를 자신의 로컬 컴퓨팅 환경에서 실행하여 의료 데이터를 분석한다. 이 분석코드는 실행 중 원격의 OMOP-CDM 데이터베이스에 접속하여 필요한 데이터를 읽는다. 또한, 2개 이상의 병원이 OMOP-CDM 데이터베이스를 마련했다면, 사용자는 동일한 분석코드를 통해 해당 병원들의 데이터를 손 쉽게 분석할 수 있다.Second, OHDSI provides Atlas as a platform for analyzing medical data converted to OMOP-CDM. Atlas is implemented in the form of a web application and supports functions such as cohort definition. The most distinctive feature of Atlas is that it automatically generates analysis codes to analyze data. This analysis code is written in R language. The user analyzes medical data by executing the analysis code generated through Atlas in his/her local computing environment. During execution, this analysis code accesses the remote OMOP-CDM database and reads necessary data. In addition, if two or more hospitals have prepared the OMOP-CDM database, the user can easily analyze the data of the corresponding hospitals through the same analysis code.
이와 같이 OHIDS가 OMOP-CDM으로 표현된 의료 데이터를 분석하기 위한 다양한 소프트웨어를 지원하지만, 아틀라스와 OMOP-CDM은 여전히 몇 가지 문제들을 가지고 있다. 그들 중 하나는, OMOP-CDM 데이터가 의료 데이터에 대한 통일된 표현을 제공하지만, 병원들은 여전히 데이터베이스를 외부로부터 격리된 원내 네트워크에 보관한다는 것이다. 이러한 운영 환경은 외부 사용자의 데이터에 대한 접근성을 떨어뜨린다. 그들 중 다른 하나는, 사용자는 여전히 데이터에 접근하기 위해 각 병원에 개별적으로 신원을 증명해야 한다는 것이다. 다시 말해, 각 병원은 사용자를 인증하기 위한 계정 데이터베이스를 별도로 운영해야 한다.As such, although OHIDS supports various software for analyzing medical data expressed in OMOP-CDM, Atlas and OMOP-CDM still have some problems. One of them is that although OMOP-CDM data provides a unified representation of medical data, hospitals still keep their databases in isolated in-hospital networks. Such an operating environment reduces the accessibility to external users' data. Another of them is that users still have to individually prove their identity to each hospital in order to access their data. In other words, each hospital must operate a separate account database for authenticating users.
사용자에 대한 인증은 네트워크를 통한 원격 서비스 개발에 필수이다. 인가된 사용자에게만 서비스를 제공해야 하기 때문이다. 특히, 서비스들이 네트워크 상에 분산된 경우, 특별한 인증 프로토콜이 요구된다. 분산 환경에 대한 고려 없이, 인증 프로토콜을 설계할 경우, 서비스 별로 사용자의 계정 데이터베이스를 운영해야 한다. 커버로스(Kerberos)는 이를 해결하기 위해 고안되었다.User authentication is essential for remote service development through the network. This is because the service must be provided only to authorized users. In particular, when services are distributed over a network, a special authentication protocol is required. When designing an authentication protocol without considering a distributed environment, a user account database must be operated for each service. Kerberos was designed to solve this.
커버로스는 사용자 인증과 서비스 접근 인가를 분리하는 것을 목표로 하며, 이를 위해 3개의 주요 구성요소들, 즉, 인증 서버, 티켓 발행 서버, 및 서비스 서버를 요구한다. 이들 중 서비스 서버는 앞서 언급한 네트워크 상에 분산된 서비스를 의미하며, 서비스를 제공하는 (CDM 데이터 분석하는) 서버로써, 여러 개이다. 인증 서버는 사용자의 계정 데이터베이스와 연동하여 사용자의 신원을 검증하는 역할을 수행한다. 신원이 확인된 사용자는 인증 서버로부터 티켓 발생 서버를 이용할 수 있는 티켓이 발행된다. 티켓 발행 서버는 신원이 확인된 사용자에게 서비스 서버를 이용할 수 있게 하는 티켓을 발행한다. 티켓 발행 서버가 발급한 티켓을 서비스 서버가 검증함으로써, 서비스 서버는 별도의 사용자 계정 데이터베이스 없이 사용자에게 서비스 접근을 인가할 수 있다. 또한 사용자가 새로운 서비스 서버에 접근할 경우, 인증 서버를 통해 처음부터 신원 증명을 수행하지 않고, 티켓 발행 서버에 인증 서버의 티켓만 제시함으로써, 서비스 서버에 대한 접근 권한을 획득할 수 있다.Kerberos aims to separate user authentication and service access authorization, and for this purpose, it requires three main components: an authentication server, a ticket issuance server, and a service server. Among them, the service server means the aforementioned service distributed on the network, and there are several servers that provide the service (analyze CDM data). The authentication server plays a role in verifying the user's identity in conjunction with the user's account database. The user whose identity has been confirmed is issued a ticket to use the ticket generation server from the authentication server. The ticket issuing server issues a ticket allowing the user to use the service server to the identified user. When the service server verifies the ticket issued by the ticket issuing server, the service server can authorize service access to the user without a separate user account database. In addition, when a user accesses a new service server, it is possible to acquire access rights to the service server by presenting only the ticket of the authentication server to the ticket issuing server without performing identity verification from the beginning through the authentication server.
커버로스가 분산 네트워크 환경에서 편리한 사용자 인증을 제공하지만, 사용자가 한 번에 하나의 서비스에만 접근할 수 있도록 한다. 또한 커버로스는 사용자의 신원을 입증하기 위한 정보만 암호화되어 전달될 뿐, 추가적인 데이터를 안전하게 전달하기 위한 수단은 서비스에 의존한다.Although Kerberos provides convenient user authentication in a distributed network environment, it allows users to access only one service at a time. In Kerberos, only the information to prove the user's identity is encrypted and delivered, and the means to safely deliver additional data relies on the service.
전술한 바와 같이, 병원들은 관리와 보안상의 이유로 의료 데이터를 기관의 로컬 네트워크 내에 보관한다. 이러한 세팅은 분석할 자원(의료 데이터)가 네트워크상에 분산되게 하기 때문에, 의료 데이터를 통합하기 위한 고민을 강구하게 한다. 한편, 일반적으로, 병원은 개별적으로 데이터를 누적해왔기 때문에 고유의 데이터를 저장하기 위한 고유의 양식을 가지고 있다. 데이터 양식의 차이는 각 기관으로부터 수집된 의료 데이터를 병합하고, 나아가 분석할 때 걸림돌이 될 수 있다. 또한, 적절한 보안 없이 데이터를 병원 전산망 밖으로 전송하는 것은 환자의 프라이버시를 침해할 수 있다. 아울러, 기관들 간에 안전한 네트워크 채널을 통해 의료 데이터를 전달하더라도 환자들은 자신의 개인정보가 포함되는 것을 원치 않을 수 있다.As mentioned above, hospitals store medical data within the institution's local network for administrative and security reasons. Since this setting causes the resources to be analyzed (medical data) to be distributed on the network, it is difficult to integrate the medical data. On the other hand, in general, hospitals have their own form for storing their own data because they have individually accumulated data. Differences in data formats can be an obstacle when merging and further analyzing medical data collected from each institution. In addition, transferring data outside the hospital network without adequate security may violate patients' privacy. In addition, even if medical data is transmitted through a secure network channel between institutions, patients may not want their personal information to be included.
따라서, 다양한 실시예들은, 인터넷상에 위치한 플랫폼의 보안 서버 그룹으로부터 인증된 사용자가 플랫폼에 연결된 병원들의 서버에 의료 데이터 분석코드를 안전하고 신속하게 전달하고, 분석 결과 또한 안전하고 신속하게 회신 받는데 그 목적이 있다.Therefore, in various embodiments, a user authenticated from a secure server group of a platform located on the Internet safely and quickly delivers medical data analysis codes to servers of hospitals connected to the platform, and the analysis results are also safely and quickly returned. There is a purpose.
다양한 실시예들은 다기관 분산 환경에서 안전한 다기관 CDM 데이터를 분석하기 위한 플랫폼 시스템 및 그의 방법을 제공한다.Various embodiments provide a platform system and method thereof for analyzing secure multi-agency CDM data in a multi-agency distributed environment.
다양한 실시예들에 따른 플랫폼 시스템은, 사용자를 위한 토큰을 생성하도록 구성되는 인증 서버, 상기 사용자의 분석코드에 대한 전자서명을 생성하도록 구성되는 코드 사이너, 상기 사용자를 위한 티켓을 발행하도록 구성되는 티켓 발행 서버, 및 각 병원에서, 상기 티켓을 이용하여 상기 사용자를 검증하고, 상기 전자서명을 이용하여 상기 분석코드를 검증하며, 상기 사용자 및 상기 분석코드에 대한 검증에 성공 시, 상기 분석코드를 실행하여, 상기 병원의 CDM 데이터를 분석하도록 구성되는 서비스 서버를 포함한다. A platform system according to various embodiments includes an authentication server configured to generate a token for a user, a code signer configured to generate an electronic signature for an analysis code of the user, and a ticket configured to issue a ticket for the user. The ticket issuing server and each hospital verify the user using the ticket, verify the analysis code using the electronic signature, and when the verification of the user and the analysis code succeeds, the analysis code and a service server configured to execute and analyze CDM data of the hospital.
다양한 실시예들에 따른 플랫폼 시스템의 방법은, 인증 서버가 사용자를 위한 토큰을 생성하는 단계, 코드 사이너가 상기 사용자의 분석코드에 대한 전자서명을 생성하는 단계, 티켓 발행 서버가 상기 사용자를 위한 티켓을 발행하는 단계, 각 병원의 서비스 서버가 상기 티켓을 이용하여 상기 사용자를 검증하고, 상기 전자서명을 이용하여 상기 분석코드를 검증하는 단계, 및 상기 사용자 및 상기 분석코드에 대한 검증에 성공 시, 상기 서비스 서버가 상기 분석코드를 실행하여, 상기 병원의 CDM 데이터를 분석하는 단계를 포함한다. The method of the platform system according to various embodiments includes generating a token for a user by an authentication server, generating a digital signature for an analysis code of the user by a code signer, and generating a ticket by a ticket issuing server for the user. issuing, the service server of each hospital verifying the user using the ticket, verifying the analysis code using the electronic signature, and when the verification of the user and the analysis code succeeds, and analyzing the CDM data of the hospital by the service server executing the analysis code.
다양한 실시예들에 따르면, 플랫폼에 연결된 병원들의 의료 데이터가 CDM으로 통일화되기 때문에, 외부 연구자가 동일한 방법론을 통해 여러 병원의 데이터를 분석할 수 있다. 그리고, CDM 데이터가 병원의 로컬 네트워크 밖으로 전송되지 않고, 내부, 즉 서비스 서버에서만 분석되기 때문에, 환자들은 개인정보를 병원 외부로의 유출을 염려하지 않아도 된다. According to various embodiments, since medical data of hospitals connected to the platform are unified into CDM, an external researcher can analyze data of multiple hospitals through the same methodology. And, since the CDM data is not transmitted outside the local network of the hospital and analyzed only inside the service server, patients do not have to worry about leakage of personal information outside the hospital.
다양한 실시예들에 따르면, 사용자들은 병원의 로컬 네트워크 외부에 위치한 플랫폼의 보안 서버 그룹을 통해 (여러 단계의) 인증을 수행한다. 인증에 통과한 사용자는 데이터 분석을 요청할 각 병원에서 추가로 인증을 수행하지 않는다. 따라서, 각 병원은 사용자의 신원을 확인하기 위한 계정 데이터베이스를 운영하지 않아도 된다.According to various embodiments, users perform (multiple steps) authentication through a group of secure servers on the platform located outside the hospital's local network. Users who pass authentication do not perform additional authentication at each hospital that requests data analysis. Therefore, each hospital does not have to operate an account database to verify the user's identity.
사용자가 작성한 CDM 데이터 분석코드는 사용자로부터 병원의 서비스 서버까지 전달되는 동안 제3자에 의해 변조되어서는 안된다. 다양한 실시예들은 이 과정에서 분석코드의 무결성을 보장할 수 있다.The CDM data analysis code written by the user must not be altered by a third party while being transferred from the user to the hospital's service server. Various embodiments may ensure the integrity of the analysis code in this process.
도 1은 다양한 실시예들에 따른 다기관 분산 환경에서 안전한 다기관 CDM 데이터를 분석하기 위한 플랫폼 시스템 및 그의 방법을 개략적으로 도시하는 도면이다.
도 2는 도 1의 사용자가 인증 서버를 통해 플랫폼의 인증을 수행하는 과정를 세부적으로 도시하는 도면이다.
도 3은 도 1의 사용자가 CDM 데이터를 분석하기 위한 분석코드에 대한 전자서명을 코드 사이너로부터 발급받는 과정을 세부적으로 도시하는 도면이다.
도 4는 도 1의 사용자가 티켓 발행 서버를 통해 플랫폼의 모든 병원의 CDM 데이터 접근하기 위한 티켓을 발급받는 과정을 세부적으로 도시하는 도면이다.
도 5 및 도 6은 도 1의 사용자가 중계 서버를 통해 티켓과 전자서명이 포함된 분석코드를 플랫폼에 연결된 모든 병원에 분배하고, 분석 결과를 회신받는 과정를 세부적으로 도시하는 도면들이다.
도 7은 다양한 실시예들에 따른 플랫폼 시스템의 서비스 서버의 내부 구성을 도시하는 도면이다.1 is a diagram schematically illustrating a platform system and method thereof for analyzing secure multi-organization CDM data in a multi-organization distributed environment according to various embodiments.
FIG. 2 is a diagram showing in detail a process in which the user of FIG. 1 performs platform authentication through an authentication server.
FIG. 3 is a diagram showing in detail a process in which the user of FIG. 1 receives an electronic signature for an analysis code for analyzing CDM data from a code signer.
FIG. 4 is a diagram showing in detail a process in which the user of FIG. 1 obtains a ticket for accessing CDM data of all hospitals of the platform through a ticket issuing server.
5 and 6 are diagrams showing in detail a process in which the user of FIG. 1 distributes an analysis code including a ticket and an electronic signature to all hospitals connected to the platform through a relay server and receives an analysis result.
7 is a diagram illustrating an internal configuration of a service server of a platform system according to various embodiments.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 설명된다. Hereinafter, various embodiments of this document will be described with reference to the accompanying drawings.
도 1은 다양한 실시예들에 따른 다기관 분산 환경에서 안전한 다기관 CDM 데이터를 분석하기 위한 플랫폼 시스템(100) 및 그의 방법을 개략적으로 도시하는 도면이다. 1 is a diagram schematically illustrating a
도 1을 참조하면, 다양한 실시예들에 따른 플랫폼 시스템(100)은, 병원들의 각각이 CDM 데이터를 자체 서버에 보관하면서, 네트워크로 연결되는 분산 네트워크 위에서 구축된다. 구체적으로, 플랫폼 시스템(100)은 보안 서버 그룹(110), 인증 기관(certificate authority; CA) (120), 및 각 병원의 병원 네트워크(130)를 포함한다. 보안 서버 그룹(110)은 인증 서버(authentication server; AS)(111), 코드 사이너(code signer; CS)(113), 티켓 발행 서버(ticket-granting server; TGS)(115), 및 중계 서버(relaying server; RS)(117)로 구성된다. 보안 서버 그룹(110)의 각 서버(111, 113, 115, 117)들은 하나의 컴퓨터 내의 각 응용 프로그램 형태로 구현되거나, 네트워크에 연결되어 있는 복수의 컴퓨터들의 각각에 독립적으로 구현될 수 있다. 독립적으로 동작하는 인증 기관(120)은 인터넷을 통해 보안 서버 그룹(110)에 연결된다. 병원 네트워크(130)는 서비스 서버(service server; SS)(131) 및 CDM 데이터를 위한 데이터베이스(133)로 구성된다. 이 플랫폼 시스템(100)은 의료 CDM으로써 OMOP-CDM을 사용한다. 따라서, 플랫폼 시스템(100)은 OMOP-CDM으로 변환된 의료 데이터를 분석하기 위해 R 언어로 작성된 분석코드(analysis codes; AC)를 이용한다. 병원 네트워크(130)는 인터넷을 통해 보안 서버 그룹(110)에 연결된다.Referring to FIG. 1 , a
이 플랫폼 시스템(100)을 구성하는 각 컴포넌트와 사용자(140)가 플랫폼 시스템(100)에 연결된 병원의 데이터를 분석하는 방법은 다음과 같다. 먼저, 151 단계에서, 사용자(140)가 보안 서버 그룹(110)에 자신의 신원을 증명한다. 인증 서버(111)가 사용자 인증을 책임지고, 인증된 사용자(140)에게 토큰을 발행한다. 이어서, 153 단계에서, 사용자(140)는 분석코드를 코드 사이너(113)에 보내어, 코드 사이너(113)를 통해 병원들이 보유한 의료 CDM 데이터를 분석하기 위해 작성한 분석코드에 대한 전자서명을 획득한다. 계속해서, 155 단계에서, 사용자(140)는 티켓 발행 서버(115)로부터 각 병원의 서비스 서버(131)를 이용하기 위한 티켓을 발급받는다. 마지막으로, 157 단계에서, 사용자(140)는 중계 서버(117)를 통해 티켓과 전자서명이 포함된 분석코드를 플랫폼에 연결된 모든 병원에 분배하고, 분석 결과를 회신받는다. 이 모든 과정이 안전하게 운영되기 위한 사전 작업으로써 사용자(140)와 플랫폼을 구성하는 모든 컴포넌트는 각자 개인키와 공개키를 생성하고, 인증 기관(120)으로부터 공개키 인증서를 발급받는다. 이 인증서는 현시점에서 가장 널리 보편적으로 사용되고 있는 X.509 version 3 표준을 따른다. 플랫폼 참여자들은 일반적인 전자 금융 거래와 유사하게 인증서를 발급받을 수 있다.The method of analyzing the data of each component constituting the
도 2는 도 1의 사용자(140)가 인증 서버(111)를 통해 플랫폼의 인증을 수행하는 과정(151 단계)를 세부적으로 도시하는 도면이다. FIG. 2 is a diagram showing in detail a process (step 151) in which the
도 2를 참조하면, 플랫폼을 이용하려는 사용자(140)는 211 단계에서, 인증 서버(111)에 신원을 증명을 요청하기 위해 아이디(ID)와 패스워드(password), 또는 생체 정보(biometric)와 같은 사용자(140)의 식별 정보(IDC)를 포함하는 메시지(MC-AS)와 이에 대한 서명()을 전달한다. 메시지와 함께 서명이 전달되는 이유는 메시지가 네트워크를 통해 전달되는 동안 공격자에 의해 변조되는 것을 방지하고, 송신자를 확인하기 위함이다. 플랫폼의 모든 컴포넌트는 항상 이와 같이 메시지와 서명 쌍을 전달하기 때문에 특별한 경우를 제외하고 앞으로 편의상 서명에 대한 설명은 생략한다. Referring to FIG. 2, a
만약 적법한 사용자(140)라면, 인증 서버(111)는 213 단계에서, 암호학적으로 생성된 토큰(token)을 포함한 메시지(MAS-C)와 이에 대한 서명()를 사용자(140)에게 반환한다. 이 토큰(token)은 사용자(140)의 신원과 유효기간을 DES(data encryption standard)나 AES(advanced encryption standard)와 같은 대칭키 암호 알고리즘으로 암호화하여 생성된다. 따라서, 토큰(token) 생성에 사용된 키를 알고 있는 참여자만 토큰(token)의 유효성을 검증할 수 있다. 인증 서버(111)는 제3자가 임의로 토큰(token)을 생성하는 것을 방지하기 위해 토큰(token) 생성에 사용된 키를 누구와도 공유하지 않는다. 반대로, 플랫폼에 등록되지 않은 사용자(140)나 불법적인 요청이라면, 인증 서버(111)는 인증 실패 응답을 사용자(140)에게 전달하고, 사용자(140)는 플랫폼의 어떠한 서비스도 이용할 수 없다.If the
도 3은 도 1의 사용자(140)가 CDM 데이터를 분석하기 위한 분석코드(AC)에 대한 전자서명을 코드 사이너(113)로부터 발급받는 과정(153 단계)을 세부적으로 도시하는 도면이다. FIG. 3 is a diagram showing in detail a process (step 153) in which the
도 3을 참조하면, 코드 사이너(113)에 접근하기 전에, 사용자(140)는 플랫폼을 통해 병원들의 CDM 데이터를 분석하기 위한 분석코드(AC)를 작성한다. 분석코드(AC)는 다양한 방식으로 작성될 수 있다. 플랫폼이 OMOP-CDM에 기반해 구현되었기 때문에, 사용자(140)는 OHDSI에서 제공하는 소프트웨어를 이용한다. 따라서, 분석코드(AC)는 일반적으로 R 언어로 작성된다. 분석코드(AC)는 코호트 정의와 SQL 질의문 같이 CDM 데이터를 분석하기 위한 모든 정보를 포함한다. 분석코드(AC)는 의료 데이터를 분석에 사용하기 때문에 네트워크를 통해 각 병원에 전달되기까지 어떠한 방식으로든 변조되어서는 안된다. 전자서명은 데이터의 무결성과 전송에서의 부인방지를 위해 사용된다. 이 요구사항을 만족하기 위해 사용자(140)는 코드 사이너(113)에게 분석코드(AC)에 대한 전자서명 생성을 요청한다. 이를 위해, 사용자(140)는, 311 단계에서, 이전 단계(213 단계)에서 인증 서버(111)로부터 발급받은 토큰(token)과 분석코드(AC)를 포함한 메시지(MC-CS)와 이에 대한 서명()을 코드 사이너(113)에 전달한다. Referring to FIG. 3 , before accessing the
메시지에 이상이 없다면, 코드 사이너(113)는 313 단계에서, 자신의 개인키를 이용해 분석코드(AC)에 대한 전자서명(sigAC)을 생성하고, 이를 포함하는 메시지(MCS-C)와 이에 대한 서명()을 사용자(140)에게 응답으로 전달한다. 이 전자서명은 코드 사이너(113)의 개인키로 생성되었기 때문에 코드 사이너(113)를 제외한 누구도 동일한 전자서명을 생성할 수 없다. 반면, 코드 사이너(113)의 공개키를 획득할 수 있다면 누구나 전자서명을 검증할 수 있다. 만약 사용자(140)가 분석코드(AC)의 일부를 수정하거나, 완전히 새로운 분석코드(AC)를 작성할 경우, 코드 사이너(113)에 새로운 전자서명 생성을 요청해야 한다.If there is nothing wrong with the message, the
도 4는 도 1의 사용자(140)가 티켓 발행 서버(115)를 통해 플랫폼의 모든 병원의 CDM 데이터 접근하기 위한 티켓을 발급받는 과정(155 단계)을 세부적으로 도시하는 도면이다. FIG. 4 is a diagram showing in detail a process (step 155) in which the
도 4를 참조하면, 사용자(140)는 티켓 발행 서버(115)에 플랫폼에 연결된 병원에 접근하기 위한 티켓 발급을 요청한다. 이를 위해, 사용자(140)는 411 단계에서, 인증 서버(111)의 토큰(token)과 코드 사이너(113)의 전자서명(sigAC)을 포함하는 메시지(MC-TGS)와 이에 대한 서명()를 전달한다. Referring to FIG. 4 , a
티켓 발행 서버(115)는 413 단계에서, 플랫폼의 사용자(140)에게 암호학적으로 생성된 티켓(ticket)을 포함하는 메시지(MTGS-C)와 이에 대한 서명()을 전달한다. 이 티켓(ticket)은 인증 서버(111)의 토큰(token)과 유사하게 사용자의 ID와 유효기간 같은 정보를 DES나 AES와 같은 대칭키 암호 알고리즘을 이용해 생성된다. 하지만, 티켓 발행 서버(115)는, 인증 서버(111)와는 달리, 티켓(ticket)을 암호화하는 데 사용한 키를 티켓(ticket)을 수신할 각 서비스 서버(131)의 공개키로 암호화하여 티켓(ticket)과 함께 사용자(140)에게 전달한다. 사용자(140)는 티켓(ticket)과 함께 전달받은 티켓 검증을 위한 키를 복호화할 수 없다. 즉, 서비스 서버(131)를 제외하고, 사용자(140)를 포함하여 어떠한 방식으로든 티켓(ticket)을 획득한 제3자는 티켓(ticket)을 생성하거나 복호화할 수 없다. 티켓 발행 서버(115)는 분산 네트워크 위에서 운영되는 플랫폼에 있어 가장 중요한 컴포넌트이다. 플랫폼의 도움 없이, 사용자(140)가 여러 의료 기관의 CDM 데이터를 분석하려 한다면 사용자(140)는 각 기관의 관리자에게 일일이 신원을 증명하고, 분석코드(AC) 실행을 요청해야 한다. 심지어, 이런 환경에서는, 각 기관이 데이터를 이용하려는 모든 사용자(140)의 신원 정보를 저장하는 데이터베이스를 운영해야 한다. 티켓 발행 서버(115)는 이러한 번거로움을 해소하기 위해 모든 의료 기관에서 데이터를 분석하려는 사용자(140)의 신원을 인증할 수 있게 하는 티켓을 생성한다. 각 병원은 이 티켓을 검증함으로써, 별도의 사용자 계정 데이터베이스 없이 사용자(140)를 인증할 수 있게 된다.In
도 5 및 도 6은 도 1의 사용자(140)가 중계 서버(117)를 통해 티켓과 전자서명이 포함된 분석코드를 플랫폼에 연결된 모든 병원에 분배하고, 분석 결과를 회신받는 과정(157 단계)를 세부적으로 도시하는 도면들이다. 5 and 6 are the process of the
도 5는 일 실시예에 따라 완전 자동화 모델에서 사용자(140), 중계 서버(117), 그리고 병원들의 서비스 서버(131)들이 통신하는 과정을 보여준다. 이 모델에서는 분석코드(AC) 분배에서 CDM 데이터 분석 결과의 회신까지 전체 과정이 완전하게 자동으로 진행된다. 5 shows a process in which a
도 5를 참조하면, 사용자(140)는 사전에 인증 서버(111)의 토큰(token), 분석코드(AC), 코드 사이너(113)의 전자서명(sigAC), 및 티켓 발행 서버(115)의 티켓(ticket)을 소유하고 있다고 가정한다. 먼저 사용자(140)는 511 단계에서, 이 4개의 정보를 포함한 메시지(MC-RS)와 이에 대한 서명()을 보안 서버 그룹(110)의 중계 서버(117)에 전달한다. 중계 서버(117)는 토큰(token)을 검증하여 송신자의 인증 서버(111)에 의해 인증된 사용자(140)인지 확인한다. 사용자(140)의 신원이 확인되면, 중계 서버(117)는 513 단계에서, 토큰(token)을 제외한 나머지 정보를 메시지(MRS-SS)로 다시 포장하고, 이 메시지와 이에 대한 서명()을 플랫폼에 등록된 모든 병원의 서비스 서버(131)들(SS1-SSn)에 전달한다. Referring to FIG. 5 , the
이들을 전달받은 서비스 서버(131)들의 각각은 티켓(ticket)과 전자서명(sigAC)을 이용해 사용자(140)와 분석코드(AC)의 진위를 확인한다. 사용자(140)와 분석코드(AC)에 대한 검증에 성공하면, 서비스 서버(131)들의 각각은 515 단계에서, 분석코드(AC)를 실행하여 해당 병원의 CDM 데이터를 분석한다. 그런 다음, 서비스 서버(131)들의 각각은 517 단계에서, 분석 결과(analysis results; AR)를 다시 중계 서버(117)로 회신한다. 마지막으로, 사용자(140)는 519 단계에서, 병원들로부터 수집된 분석 결과(AR)들을 다운로드한다. 완전 자동화 모델에서, 사용자(140)는 어느 누구의 개입 없이 병원들의 데이터를 분석할 수 있다.Each of the
도 6은 다른 실시예에 따라 승인 우선 모델에서 사용자(140), 중계 서버(117), 및 병원들의 서비스 서버(131)들이 통신하는 과정을 보여준다.6 shows a process in which the
도 6을 참조하면, 사용자(140)는 611 단계에서, 인증 서버(111)의 토큰(token), 분석코드(AC), 코드 사이너(113)의 전자서명(sigAC), 및 티켓 발행 서버(115)의 티켓(ticket)을 중계 서버(117)에 전달한다. 중계 서버(117)는 인증 서버(111)의 토큰(token)을 검증하여 사용자의 신원을 확인한다. 중계 서버(117)는 613 단계에서, 인증된 사용자(140)가 전달한 분석코드(AC), 전자서명(sigAC), 및 티켓(ticket)을 병원들의 서비스 서버(131)들에 분배한다. Referring to FIG. 6 , in
서비스 서버(131)들의 각각은 전달받은 티켓(ticket)을 검증하여 사용자를 인증하고, 전자서명(sigAC)을 검증하여 분석코드(AC)의 무결성을 확인한다. 서비스 서버(131)들의 각각은 검증을 통과한 분석코드(AC)를 곧바로 실행하지 않고, 병원의 데이터 관리자(custodian)(135)의 승인을 대기한다. 관리자(135)는 615 단계에서, 해당 병원으로 전달된 분석코드(AC)를 확인하고, 실행을 승인한다. 승인 즉시, 서비스 서버(131)들의 각각은 617 단계에서, 분석코드(AC)를 실행하여 병원의 CDM 데이터를 분석한다. 만약 관리자(135)가 분석코드(AC)의 실행을 보류하거나, 거부할 경우, 분석코드(AC)는 실행되지 않는다. 서비스 서버(131)들의 각각은 CDM 데이터에 대한 분석 결과(AR)를 곧바로 사용자(140)에게 회신하지 않고, 관리자(135)의 반출 승인을 대기한다. 관리자(135)가 619 단계에서, 분석 결과(AR)의 반출을 승인하면, 사용자(140)는 621 단계에서, 분석 결과(AR)를 다운로드할 수 있다. 반면, 관리자(135)가 분석 결과(AR)의 반출을 보류하거나, 거부할 경우, 사용자(140)는 데이터 분석이 완료되었음에도 분석 결과(AR)에 접근할 수 없다.Each of the
한편, 어떤 실시예들에서는, 완전 자동화 모델과 승인 우선 모델을 결합한 하이브리드 모델이 가능하다. 하이브리드 모델에서는 병원별로 설치된 서비스 서버(131)들이 신뢰 연구자에 대한 화이트리스트를 보유한다. 만약 CDM 데이터 분석을 요청한 사용자(140)가 화이트리스트에 등록되었다면, 해당 요청은 완전 자동화 모델로 처리되고, 그렇지 않은 경우, 승인 우선 모델로 처리된다.On the other hand, in some embodiments, a hybrid model combining a fully automated model and an approval-first model is possible. In the hybrid model, the
도 7은 다양한 실시예들에 따른 플랫폼 시스템(100)의 서비스 서버(131)의 내부 구성을 도시하는 도면이다. 이 때, 도 7의 서비스 서버(131)는 완전 자동화 모델, 승인 우선 모델, 및 하이브리드 모델을 지원하기 위한 구조를 갖는다. 7 is a diagram illustrating an internal configuration of the
도 7을 참조하면, 서비스 서버(131)는 플랫폼 시스템(100)의 다른 컴포넌트와 달리, 의료 데이터를 분석하기 위해 다양한 기능들을 제공한다. 이를 위해, 서비스 서버(131)는 검증 모듈(710), 대기 큐(720), 실행 관리자(730), 분석코드 풀(740), R 엔진(750), 및 분석 결과 관리자(760)를 포함한다. Referring to FIG. 7 , the
서비스 서버(131)는 분석코드(AC), 분석코드(AC)의 전자서명(sigAC), 및 티켓(ticket)을 검증 모듈(710)에 전달한다. 검증 모듈(710)은 도 5및 6을 참조하여 설명한 바와 같이 분석코드(AC)에 대한 검증을 수행한다. 서비스 서버(131)는 분석코드(AC)를 실행 대기 큐(720)에 넣는다. The
일반적으로 분석코드(AC)의 실행은 많은 컴퓨팅 자원을 요구하기 때문에 사용자(140)의 모든 분석 요청을 병렬로 실행할 수 없다. 따라서, 서비스 서버(131)는 실행 관리자(730)를 두어, 분석코드(AC)에 대한 분석코드 풀(740)을 이용해 한 번에 실행 가능한 분석코드(AC)를 제한한다. 실행 관리자(730)는 관리자의 승인을 얻어 분석코드(AC)를 실행하여 해당 기관의 데이터베이스(133)의 CDM 데이터를 분석할 수 있다. 앞서 모든 유효성 검증에 성공하면, 서비스 서버(131)는 R 엔진(750)을 이용해 분석코드(AC)를 실행한다. 혹은 R 언어 이외의 다른 프로그래밍 언어로 분석코드(AC)가 작성되었을 경우, 적절한 실행 엔진이 호출된다. In general, since execution of the analysis code AC requires a lot of computing resources, all analysis requests of the
데이터 분석이 완료되면, 서비스 서버(131)는 분석 결과(AR)을 분석 결과 관리자(760)에 보관한다. 이 때, 분석결과(AR)는 zip과 같은 압축 파일 유형으로 보관될 수 있다. 서비스 서버(131)는 사용자(140)에게 CDM 데이터 분석 상태를 알릴 수 있다. 데이터 분석 과정은 많은 시간이 소요된다. 또한 기관 별로 분석코드(AC)의 실행 시간에 차이가 있을 수 있다. 사용자(140)는 모든 병원의 데이터 분석이 완료되는 것을 대기할 수 없기 때문에 주기적으로 각 병원의 분석 상태를 확인할 수 있다. 서비스 서버(131)는 사용자(140)가 분석 상태를 요청하면, "실행 대기", "실행 중", 또는 "분석 완료" 중 하나로 응답한다. 만약, 서비스 서버(131)가 완전 자동화 모델인 경우, 분석코드(AC)는 실행 대기 상태를 거치지 않고, 곧바로 실행된다. 서비스 서버(131)는 분석 결과 관리자(760)를 통해 분석결과(AR) 반출 상태를 사용자(140)에게 알릴 수 있다. 실행 관리자(730)와 마찬가지로, 분석 결과 관리자(760)는 CDM 데이터 분석 결과(AR)에 대한 사용자(140)의 회신 여부를 관리자(135)로부터 입력받는다. 사용자(140)가 서비스 서버(131)에게 분석 결과(AR) 회신 가능 여부를 요청하면, 서비스 서버(131)는 "다운로드 가능" 혹은 "반출 대기" 상태 중 하나를 회신한다. 사용자(140)는 "다운로드 가능"인 경우에만 분석 결과(AR)를 다운로드할 수 있다. 마찬가지로, 서비스 서버(131)가 완전 자동화 모델인 경우, "반출 대기" 상태는 사용되지 않는다.When data analysis is completed, the
전술된 바와 같이, 분석코드(AC)는 사용자(140)에 의해 작성되되, 각 병원, 즉 서비스 서버(131)에 의해 실행된다. 따라서, 플랫폼 시스템(100)에서, 분석코드(AC)에 대한 사용자(140)와 서비스 서버(131)의 역할 분담 및 협력적 분석이 이루어질 수 있다. 아울러, 분석코드(AC)는 공통 데이터 모델(CDM)에 기반한 코드이기 때문에, 표준화된 환경에서 실행될 수 있으며, 복수의 병원들, 즉 서비스 서버(131)들에서 일괄적으로 인증될 수 있다. 따라서, 복수의 병원들, 즉 서비스 서버(131)들의 각각이 독립적으로 분석 코드(AC)를 실행하여, 각각의 CDM 데이터를 분석할 수 있다. As described above, the analysis code (AC) is created by the
다양한 실시예들에 따르면, 플랫폼에 연결된 병원들의 의료 데이터가 CDM으로 통일화되기 때문에, 외부 연구자가 동일한 방법론을 통해 여러 병원의 데이터를 분석할 수 있다. 그리고, CDM 데이터가 병원의 로컬 네트워크 밖으로 전송되지 않고, 내부, 즉 서비스 서버(131)에서만 분석되기 때문에, 환자들은 개인정보를 병원 외부로의 유출을 염려하지 않아도 된다. According to various embodiments, since medical data of hospitals connected to the platform are unified into CDM, an external researcher can analyze data of multiple hospitals through the same methodology. In addition, since the CDM data is not transmitted outside the local network of the hospital and is analyzed only inside the
다양한 실시예들에 따르면, 사용자(140)들은 병원의 로컬 네트워크 외부에 위치한 플랫폼의 보안 서버 그룹을 통해 (여러 단계의) 인증을 수행한다. 인증에 통과한 사용자(140)는 데이터 분석을 요청할 각 병원에서 추가로 인증을 수행하지 않는다. 따라서, 각 병원은 사용자(140)의 신원을 확인하기 위한 계정 데이터베이스를 운영하지 않아도 된다.According to various embodiments,
사용자(140)가 작성한 CDM 데이터에 대한 분석코드(AC)는 사용자(140)로부터 병원의 서비스 서버(131)까지 전달되는 동안 제3자에 의해 변조되어서는 안된다. 다양한 실시예들은 이 과정에서 분석코드(AC)의 무결성을 보장할 수 있다.The analysis code (AC) for the CDM data prepared by the
다양한 실시예들은 다기관 분산 환경에서 안전한 다기관 CDM 데이터를 분석하기 위한 플랫폼 시스템(100) 및 그의 방법을 제공한다.Various embodiments provide a platform system (100) and method thereof for analyzing secure multi-agency CDM data in a multi-agency distributed environment.
다양한 실시예들에 따른 플랫폼 시스템(100)은, 사용자(140)를 위한 토큰을 생성하도록 구성되는 인증 서버(111), 사용자(140)의 분석코드에 대한 전자서명을 생성하도록 구성되는 코드 사이너(113), 사용자(140)를 위한 티켓을 발행하도록 구성되는 티켓 발행 서버(115), 및 각 병원에서, 티켓을 이용하여 사용자(140)를 검증하고, 전자서명을 이용하여 분석코드를 검증하며, 사용자(140) 및 분석코드에 대한 검증에 성공 시, 분석코드를 실행하여, 병원의 CDM 데이터를 분석하도록 구성되는 서비스 서버(131)를 포함한다. The
다양한 실시예들에 따르면, 인증 서버(111)는, 사용자(140)로부터 사용자(140)의 식별 정보가 수신되면, 식별 정보를 기반으로 사용자(140)를 인증하여, 토큰을 생성하고, 사용자(140)에게 토큰을 제공하도록 구성된다.According to various embodiments, when the identification information of the
다양한 실시예들에 따르면, 코드 사이너(113)는, 사용자(140)로부터 토큰 및 분석코드가 수신되면, 개인키를 이용하여, 분석코드에 대한 전자서명을 생성하고, 사용자(140)에게 전자서명을 제공하도록 구성된다. According to various embodiments, when the token and the analysis code are received from the
다양한 실시예들에 따르면, 분석코드는, 사용자(140)에 의해 작성되고, 각 병원의 CDM 데이터를 분석하기 위한 정보를 포함한다. According to various embodiments, the analysis code is written by the
다양한 실시예들에 따르면, 티켓 발행 서버(115)는, 사용자(140)로부터 토큰 및 전자서명이 수신되면, 암호화 키를 이용하여, 티켓을 생성하고, 서비스 서버(131)의 공개키를 이용하여, 암호화 키를 암호화하고, 사용자(140)에게 티켓을 암호화 키와 함께 제공하도록 구성된다. According to various embodiments, the
다양한 실시예들에 따르면, 서비스 서버(131)는, 사용자(140)에게 CDM 데이터에 대한 분석 결과를 회신하도록 구성된다. According to various embodiments, the
다양한 실시예들에 따르면, 플랫폼 시스템(100)은, 사용자(140)와 서비스 서버(131) 간 통신을 중계하도록 구성되는 중계 서버를 더 포함한다.According to various embodiments, the
다양한 실시예들에 따르면, 중계 서버는, 사용자(140)로부터 토큰, 전자서명, 및 티켓이 수신되면, 토큰을 이용하여, 사용자(140)를 확인하고, 서비스 서버(131)에 전자서명 및 티켓을 전달하도록 구성된다. According to various embodiments, when the token, digital signature, and ticket are received from the
일 실시예에 따르면, 서비스 서버(131)는, 분석 결과를 중계 서버에 회신하도록 구성되고, 사용자(140)는, 중계 서버로부터 분석 결과를 다운로드한다. According to one embodiment, the
다른 실시예에 따르면, 서비스 서버(131)는, 관리자의 승인을 기반으로, 분석코드를 실행하여, CDM 데이터를 분석하고, 관리자의 승인을 기반으로, 분석 결과를 사용자(140)에게 회신하도록 구성된다. According to another embodiment, the
또 다른 실시예에 따르면, 서비스 서버(131)는, 사용자(140)가 화이트리스트에 등록되어 있으면, 분석 결과를 사용자(140)에게 회신하고, 사용자(140)가 화이트리스트에 등록되어 있지 않으면, 관리자의 승인을 기반으로, 분석 결과를 사용자(140)에게 회신하도록 구성된다. According to another embodiment, the
다양한 실시예들에 따른 플랫폼 시스템(100)의 방법은, 인증 서버(111)가 사용자(140)를 위한 토큰을 생성하는 단계(151 단계), 코드 사이너(113)가 사용자(140)의 분석코드에 대한 전자서명을 생성하는 단계(153 단계), 티켓 발행 서버(115)가 사용자(140)를 위한 티켓을 발행하는 단계(155 단계), 각 병원의 서비스 서버(131)가 티켓을 이용하여 사용자(140)를 검증하고, 전자서명을 이용하여 분석코드를 검증하는 단계(157 단계), 및 사용자(140) 및 분석코드에 대한 검증에 성공 시, 서비스 서버(131)가 분석코드를 실행하여, 병원의 CDM 데이터를 분석하는 단계(157 단계)를 포함한다. In the method of the
다양한 실시예들에 따르면, 토큰을 생성하는 단계(151 단계)는, 사용자(140)가 인증 서버(111)에 사용자(140)의 식별 정보를 전송하는 단계, 인증 서버(111)가 식별 정보를 기반으로 사용자(140)를 인증하여, 토큰을 생성하는 단계, 및 인증 서버(111)가 사용자(140)에게 토큰을 제공하는 단계를 포함한다. According to various embodiments, the step of generating a token (step 151) is a step in which the
다양한 실시예들에 따르면, 전자서명을 생성하는 단계(153 단계)는, 사용자(140)가 코드 사이너(113)에 코드 사이너(113)에 토큰 및 분석코드를 전송하는 단계, 코드 사이너(113)가 개인키를 이용하여, 분석코드에 대한 전자서명을 생성하는 단계, 및 코드 사이너(113)가 사용자(140)에게 전자서명을 제공하는 단계를 포함한다. According to various embodiments, the step of generating the digital signature (step 153) may include a step in which the
다양한 실시예들에 따르면, 분석코드는, 사용자(140)에 의해 작성되고, 각 병원의 CDM 데이터를 분석하기 위한 정보를 포함한다. According to various embodiments, the analysis code is written by the
다양한 실시예들에 따르면, 티켓을 발행하는 단계(155 단계)는, 사용자(140)가 티켓 발행 서버(115)에 토큰 및 전자서명을 전송하는 단계, 티켓 발행 서버(115)가 암호화 키를 이용하여, 티켓을 생성하는 단계, 티켓 발행 서버(115)가 서비스 서버(131)의 공개키를 이용하여, 암호화 키를 암호화하는 단계, 및 티켓 발행 서버(115)가 사용자(140)에게 티켓을 암호화 키와 함께 제공하는 단계를 포함한다. According to various embodiments, issuing a ticket (step 155) includes a step in which the
다양한 실시예들에 따르면, 플랫폼 시스템(100)의 방법은, 서비스 서버(131)가 사용자(140)에게 CDM 데이터에 대한 분석 결과를 회신하는 단계(157 단계)를 더 포함한다. According to various embodiments, the method of the
다양한 실시예들에 따르면, 사용자(140) 및 분석 코드를 검증하는 단계(157 단계)는, 사용자(140)가 중계 서버에 토큰, 전자서명, 및 티켓을 전송하는 단계, 중계 서버가 토큰을 이용하여, 사용자(140)를 확인하는 단계, 중계 서버가 서비스 서버(131)에 전자서명 및 티켓을 전달하는 단계, 및 서비스 서버(131)가 티켓을 이용하여 사용자(140)를 검증하고, 전자서명을 이용하여 분석코드를 검증하는 단계를 포함한다. According to various embodiments, the step of verifying the
일 실시예에 따르면, 분석 결과를 회신하는 단계(157 단계)는, 서비스 서버(131)가 분석 결과를 중계 서버에 회신하는 단계, 및 사용자(140)가 중계 서버로부터 분석 결과를 다운로드하는 단계를 포함한다. According to one embodiment, the step of returning the analysis result (step 157) includes the
다른 실시예에 따르면, CDM 데이터를 분석하는 단계(157 단계)는, 서비스 서버(131)가 관리자의 승인을 기반으로, 분석코드를 실행하여, CDM 데이터를 분석하는 단계를 포함하고, 분석 결과를 회신하는 단계는, 관리자의 승인을 기반으로, 분석 결과를 사용자(140)에게 회신하는 단계를 포함한다. According to another embodiment, the step of analyzing the CDM data (step 157) includes the step of analyzing the CDM data by allowing the
또 다른 실시예에 따르면, 분석 결과를 회신하는 단계(157 단계)는, 사용자(140)가 화이트리스트에 등록되어 있으면, 서비스 서버(131)가 분석 결과를 사용자(140)에게 회신하는 단계, 및 사용자(140)가 화이트리스트에 등록되어 있지 않으면, 서비스 서버(131)가 관리자의 승인을 기반으로, 분석 결과를 사용자(140)에게 회신하는 단계를 포함한다. According to another embodiment, the step of returning the analysis result (step 157) includes, if the
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in the embodiments include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), and a programmable PLU (programmable logic unit). logic unit), microprocessor, or any other device capable of executing and responding to instructions. The processing device may run an operating system (OS) and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. The software and/or data may be embodied in any tangible machine, component, physical device, computer storage medium, or device to be interpreted by, or to provide instructions or data to, a processing device. there is. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.
다양한 실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이 때 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 그리고, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.Methods according to various embodiments may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer readable medium. In this case, the medium may continuously store a program executable by a computer or temporarily store the program for execution or download. Also, the medium may be a single or various types of recording means or storage means in the form of a combination of several pieces of hardware. It 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.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성 요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성 요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성 요소를 다른 구성 요소와 구분하기 위해 사용될 뿐 해당 구성 요소들을 한정하지 않는다. 어떤(예: 제 1) 구성 요소가 다른(예: 제 2) 구성 요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성 요소가 상기 다른 구성 요소에 직접적으로 연결되거나, 다른 구성 요소(예: 제 3 구성 요소)를 통하여 연결될 수 있다.Various embodiments of this document and terms used therein are not intended to limit the technology described in this document to a specific embodiment, and should be understood to include various modifications, equivalents, and/or substitutes of the embodiment. In connection with the description of the drawings, like reference numerals may be used for like elements. Singular expressions may include plural expressions unless the context clearly dictates otherwise. In this document, expressions such as "A or B", "at least one of A and/or B", "A, B or C" or "at least one of A, B and/or C" refer to all of the items listed together. Possible combinations may be included. Expressions such as "first," "second," "first," or "second" may modify the elements in any order or importance, and are used only to distinguish one element from another. The components are not limited. When a (e.g., first) element is referred to as being "(functionally or communicatively) connected" or "connected" to another (e.g., second) element, it is referred to as being "connected" to the other (e.g., second) element. It may be directly connected to the component or connected through another component (eg, a third component).
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다. The term "module" used in this document includes a unit composed of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be an integral part or a minimum unit or part thereof that performs one or more functions. For example, the module may be composed of an application-specific integrated circuit (ASIC).
다양한 실시예들에 따르면, 기술한 구성 요소들의 각각의 구성 요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성 요소들 중 하나 이상의 구성 요소들 또는 단계들이 생략되거나, 또는 하나 이상의 다른 구성 요소들 또는 단계들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성 요소들(예: 모듈 또는 프로그램)은 하나의 구성 요소로 통합될 수 있다. 이런 경우, 통합된 구성 요소는 복수의 구성 요소들 각각의 구성 요소의 하나 이상의 기능들을 통합 이전에 복수의 구성 요소들 중 해당 구성 요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 단계들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 단계들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 단계들이 추가될 수 있다. According to various embodiments, each component (eg, module or program) of the described components may include a singular object or a plurality of entities. According to various embodiments, one or more components or steps among the aforementioned components may be omitted, or one or more other components or steps may be added. Alternatively or additionally, a plurality of components (eg modules or programs) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to integration. According to various embodiments, steps performed by a module, program, or other component are executed sequentially, in parallel, iteratively, or heuristically, or one or more of the steps are executed in a different order, omitted, or , or one or more other steps may be added.
Claims (20)
사용자를 위한 토큰을 생성하도록 구성되는 인증 서버;
상기 사용자의 분석코드에 대한 전자서명을 생성하도록 구성되는 코드 사이너;
상기 사용자를 위한 티켓을 발행하도록 구성되는 티켓 발행 서버; 및
각 병원에서, 상기 티켓을 이용하여 상기 사용자를 검증하고, 상기 전자서명을 이용하여 상기 분석코드를 검증하며, 상기 사용자 및 상기 분석코드에 대한 검증에 성공 시, 상기 분석코드를 실행하여, 상기 병원의 CDM 데이터를 분석하도록 구성되는 서비스 서버
를 포함하는,
플랫폼 시스템.
In a platform system for safely analyzing multi-organizational CDM data in a multi-organization distributed environment,
an authentication server configured to generate a token for a user;
a code signer configured to generate an electronic signature for the analysis code of the user;
a ticket issuing server configured to issue a ticket for the user; and
In each hospital, the user is verified using the ticket, the analysis code is verified using the electronic signature, and when the verification of the user and the analysis code is successful, the analysis code is executed, and the hospital service server configured to analyze CDM data from
including,
platform system.
상기 인증 서버는,
상기 사용자로부터 상기 사용자의 식별 정보가 수신되면, 상기 식별 정보를 기반으로 상기 사용자를 인증하여, 상기 토큰을 생성하고,
상기 사용자에게 상기 토큰을 제공하도록 구성되는,
플랫폼 시스템.
According to claim 1,
The authentication server,
When identification information of the user is received from the user, authenticating the user based on the identification information to generate the token;
configured to provide the token to the user;
platform system.
상기 코드 사이너는,
상기 사용자로부터 상기 토큰 및 상기 분석코드가 수신되면, 개인키를 이용하여, 상기 분석코드에 대한 상기 전자서명을 생성하고,
상기 사용자에게 상기 전자서명을 제공하도록 구성되는,
플랫폼 시스템.
According to claim 1,
The code signer,
When the token and the analysis code are received from the user, the digital signature for the analysis code is generated using a private key;
configured to provide the electronic signature to the user;
platform system.
상기 분석코드는,
상기 사용자에 의해 작성되고, 각 병원의 CDM 데이터를 분석하기 위한 정보를 포함하는,
플랫폼 시스템.
According to claim 1,
The analysis code is
Created by the user and including information for analyzing the CDM data of each hospital,
platform system.
상기 티켓 발행 서버는,
상기 사용자로부터 상기 토큰 및 상기 전자서명이 수신되면, 암호화 키를 이용하여, 상기 티켓을 생성하고,
상기 서비스 서버의 공개키를 이용하여, 상기 암호화 키를 암호화하고,
상기 사용자에게 상기 티켓을 상기 암호화 키와 함께 제공하도록 구성되는,
플랫폼 시스템.
According to claim 1,
The ticket issuing server,
When the token and the electronic signature are received from the user, the ticket is generated using an encryption key;
Encrypting the encryption key using the public key of the service server,
configured to provide the user with the ticket along with the encryption key;
platform system.
상기 서비스 서버는,
상기 사용자에게 상기 CDM 데이터에 대한 분석 결과를 회신하도록 구성되는,
플랫폼 시스템.
According to claim 1,
The service server,
Is configured to send an analysis result for the CDM data to the user,
platform system.
상기 사용자와 상기 서비스 서버 간 통신을 중계하도록 구성되는 중계 서버
를 더 포함하고,
상기 중계 서버는,
상기 사용자로부터 상기 토큰, 상기 전자서명, 및 상기 티켓이 수신되면, 상기 토큰을 이용하여, 상기 사용자를 확인하고,
상기 서비스 서버에 상기 전자서명 및 상기 티켓을 전달하도록 구성되는,
플랫폼 시스템.
According to claim 6,
A relay server configured to relay communication between the user and the service server
Including more,
The relay server,
When the token, the electronic signature, and the ticket are received from the user, the user is identified using the token;
configured to deliver the electronic signature and the ticket to the service server;
platform system.
상기 서비스 서버는,
상기 분석 결과를 상기 중계 서버에 회신하도록 구성되고,
상기 사용자는,
상기 중계 서버로부터 상기 분석 결과를 다운로드하는,
플랫폼 시스템.
According to claim 7,
The service server,
configured to return the analysis result to the relay server;
The user,
Downloading the analysis result from the relay server,
platform system.
상기 서비스 서버는,
관리자의 승인을 기반으로, 상기 분석코드를 실행하여, 상기 CDM 데이터를 분석하고,
상기 관리자의 승인을 기반으로, 상기 분석 결과를 상기 사용자에게 회신하도록 구성되는,
플랫폼 시스템.
According to claim 7,
The service server,
Based on the administrator's approval, the analysis code is executed to analyze the CDM data,
Based on the administrator's approval, configured to return the analysis result to the user,
platform system.
상기 서비스 서버는,
상기 사용자가 화이트리스트에 등록되어 있으면, 상기 분석 결과를 상기 사용자에게 회신하고,
상기 사용자가 상기 화이트리스트에 등록되어 있지 않으면, 관리자의 승인을 기반으로, 상기 분석 결과를 상기 사용자에게 회신하도록 구성되는,
플랫폼 시스템.
According to claim 7,
The service server,
If the user is registered in the whitelist, the analysis result is returned to the user;
If the user is not registered in the whitelist, configured to return the analysis result to the user based on an administrator's approval.
platform system.
인증 서버가 사용자를 위한 토큰을 생성하는 단계;
코드 사이너가 상기 사용자의 분석코드에 대한 전자서명을 생성하는 단계;
티켓 발행 서버가 상기 사용자를 위한 티켓을 발행하는 단계;
각 병원의 서비스 서버가 상기 티켓을 이용하여 상기 사용자를 검증하고, 상기 전자서명을 이용하여 상기 분석코드를 검증하는 단계; 및
상기 사용자 및 상기 분석코드에 대한 검증에 성공 시, 상기 서비스 서버가 상기 분석코드를 실행하여, 상기 병원의 CDM 데이터를 분석하는 단계
를 포함하는,
플랫폼 시스템의 방법.
In the method of a platform system for safely analyzing multi-organizational CDM data in a multi-organization distributed environment,
the authentication server generating a token for the user;
generating, by a code signer, an electronic signature for the analysis code of the user;
a ticket issuing server issuing a ticket for the user;
a service server of each hospital verifying the user using the ticket and verifying the analysis code using the digital signature; and
When the verification of the user and the analysis code is successful, the service server executing the analysis code to analyze the CDM data of the hospital.
including,
method of the platform system.
상기 토큰을 생성하는 단계는,
상기 사용자가 상기 인증 서버에 상기 사용자의 식별 정보를 전송하는 단계;
상기 인증 서버가 상기 식별 정보를 기반으로 상기 사용자를 인증하여, 상기 토큰을 생성하는 단계; 및
상기 인증 서버가 상기 사용자에게 상기 토큰을 제공하는 단계
를 포함하는,
플랫폼 시스템의 방법.
According to claim 11,
The step of generating the token is,
transmitting identification information of the user to the authentication server by the user;
authenticating the user based on the identification information by the authentication server and generating the token; and
providing, by the authentication server, the token to the user;
including,
method of the platform system.
상기 전자서명을 생성하는 단계는,
상기 사용자가 상기 코드 사이너에 상기 코드 사이너에 상기 토큰 및 상기 분석코드를 전송하는 단계;
상기 코드 사이너가 개인키를 이용하여, 상기 분석코드에 대한 상기 전자서명을 생성하는 단계; 및
상기 코드 사이너가 상기 사용자에게 상기 전자서명을 제공하는 단계
를 포함하는,
플랫폼 시스템의 방법.
According to claim 11,
Generating the electronic signature,
transmitting, by the user, the token and the analysis code to the code signer;
generating, by the code signer, the electronic signature for the analysis code using a private key; and
Step of the code signer providing the digital signature to the user
including,
method of the platform system.
상기 분석코드는,
상기 사용자에 의해 작성되고, 각 병원의 CDM 데이터를 분석하기 위한 정보를 포함하는,
플랫폼 시스템의 방법.
According to claim 11,
The analysis code is
Created by the user and including information for analyzing the CDM data of each hospital,
method of the platform system.
상기 티켓을 발행하는 단계는,
상기 사용자가 상기 티켓 발행 서버에 상기 토큰 및 상기 전자서명을 전송하는 단계;
상기 티켓 발행 서버가 암호화 키를 이용하여, 상기 티켓을 생성하는 단계;
상기 티켓 발행 서버가 상기 서비스 서버의 공개키를 이용하여, 상기 암호화 키를 암호화하는 단계; 및
상기 티켓 발행 서버가 상기 사용자에게 상기 티켓을 상기 암호화 키와 함께 제공하는 단계
를 포함하는,
플랫폼 시스템의 방법.
According to claim 11,
The step of issuing the ticket,
transmitting the token and the digital signature to the ticket issuing server by the user;
generating the ticket by the ticket issuing server using an encryption key;
encrypting the encryption key by the ticket issuing server using the public key of the service server; and
providing, by the ticket issuing server, the ticket to the user along with the encryption key;
including,
method of the platform system.
상기 서비스 서버가 상기 사용자에게 상기 CDM 데이터에 대한 분석 결과를 회신하는 단계
를 더 포함하는,
플랫폼 시스템의 방법.
According to claim 11,
The service server returning an analysis result of the CDM data to the user.
Including more,
method of the platform system.
상기 사용자 및 상기 분석 코드를 검증하는 단계는,
상기 사용자가 중계 서버에 상기 토큰, 상기 전자서명, 및 상기 티켓을 전송하는 단계;
상기 중계 서버가 상기 토큰을 이용하여, 상기 사용자를 확인하는 단계;
상기 중계 서버가 상기 서비스 서버에 상기 전자서명 및 티켓을 전달하는 단계; 및
상기 서비스 서버가 상기 티켓을 이용하여 상기 사용자를 검증하고, 상기 전자서명을 이용하여 상기 분석코드를 검증하는 단계
를 포함하는,
플랫폼 시스템의 방법.
17. The method of claim 16,
The step of verifying the user and the analysis code,
transmitting, by the user, the token, the electronic signature, and the ticket to a relay server;
verifying the user by the relay server using the token;
transferring, by the relay server, the digital signature and ticket to the service server; and
The service server verifying the user using the ticket and verifying the analysis code using the digital signature.
including,
method of the platform system.
상기 분석 결과를 회신하는 단계는,
상기 서비스 서버가 상기 분석 결과를 상기 중계 서버에 회신하는 단계; 및
상기 사용자가 상기 중계 서버로부터 상기 분석 결과를 다운로드하는 단계
를 포함하는,
플랫폼 시스템의 방법.
18. The method of claim 17,
The step of returning the analysis result,
the service server returning the analysis result to the relay server; and
The user downloading the analysis result from the relay server.
including,
method of the platform system.
상기 CDM 데이터를 분석하는 단계는,
상기 서비스 서버가 관리자의 승인을 기반으로, 상기 분석코드를 실행하여, 상기 CDM 데이터를 분석하는 단계
를 포함하고,
상기 분석 결과를 회신하는 단계는,
상기 관리자의 승인을 기반으로, 상기 분석 결과를 상기 사용자에게 회신하는 단계
를 포함하는,
플랫폼 시스템의 방법.
18. The method of claim 17,
Analyzing the CDM data,
Analyzing the CDM data by the service server executing the analysis code based on the manager's approval
including,
The step of returning the analysis result,
Based on the manager's approval, returning the analysis result to the user.
including,
method of the platform system.
상기 분석 결과를 회신하는 단계는,
상기 사용자가 화이트리스트에 등록되어 있으면, 상기 서비스 서버가 상기 분석 결과를 상기 사용자에게 회신하는 단계; 및
상기 사용자가 상기 화이트리스트에 등록되어 있지 않으면, 상기 서비스 서버가 관리자의 승인을 기반으로, 상기 분석 결과를 상기 사용자에게 회신하는 단계
를 포함하는,
플랫폼 시스템의 방법. 18. The method of claim 17,
The step of returning the analysis result,
If the user is registered in the whitelist, the service server returning the analysis result to the user; and
If the user is not registered in the whitelist, the service server returning the analysis result to the user based on the administrator's approval.
including,
method of the platform system.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210115831 | 2021-08-31 | ||
KR1020210115831 | 2021-08-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230032807A true KR20230032807A (en) | 2023-03-07 |
KR102623243B1 KR102623243B1 (en) | 2024-01-11 |
Family
ID=85512751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210135966A KR102623243B1 (en) | 2021-08-31 | 2021-10-13 | Secure platform system for analyzing cdm data in multi-institutional distributed network, and method of the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102623243B1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050234746A1 (en) * | 2004-03-26 | 2005-10-20 | Fuji Photo Film Co., Ltd. | Medical information provision method, and client terminal and statistical server used for the same |
JP2020515089A (en) * | 2017-05-24 | 2020-05-21 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | Blockchain-based data processing method and device |
KR102119449B1 (en) * | 2019-08-30 | 2020-06-08 | 주식회사쿠콘 | Aggregation open api platform system, method for prividing financial services using the same and computer program for the same |
KR20200111303A (en) * | 2019-03-18 | 2020-09-29 | 한승현 | System and method for retrieval of medical information using blockchain and computer program for the same |
JP2021103348A (en) * | 2019-12-24 | 2021-07-15 | 株式会社メドレー | Medical information system, medical information device, control method for medical information device, and control program |
KR102323680B1 (en) * | 2021-05-25 | 2021-11-10 | 주식회사쿠콘 | Platform system and method for collecting information using integrated authentication and computer program for the same |
-
2021
- 2021-10-13 KR KR1020210135966A patent/KR102623243B1/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050234746A1 (en) * | 2004-03-26 | 2005-10-20 | Fuji Photo Film Co., Ltd. | Medical information provision method, and client terminal and statistical server used for the same |
JP2020515089A (en) * | 2017-05-24 | 2020-05-21 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | Blockchain-based data processing method and device |
KR20200111303A (en) * | 2019-03-18 | 2020-09-29 | 한승현 | System and method for retrieval of medical information using blockchain and computer program for the same |
KR102119449B1 (en) * | 2019-08-30 | 2020-06-08 | 주식회사쿠콘 | Aggregation open api platform system, method for prividing financial services using the same and computer program for the same |
JP2021103348A (en) * | 2019-12-24 | 2021-07-15 | 株式会社メドレー | Medical information system, medical information device, control method for medical information device, and control program |
KR102323680B1 (en) * | 2021-05-25 | 2021-11-10 | 주식회사쿠콘 | Platform system and method for collecting information using integrated authentication and computer program for the same |
Also Published As
Publication number | Publication date |
---|---|
KR102623243B1 (en) | 2024-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11658961B2 (en) | Method and system for authenticated login using static or dynamic codes | |
US11963006B2 (en) | Secure mobile initiated authentication | |
US11659392B2 (en) | Secure mobile initiated authentications to web-services | |
US20230004675A1 (en) | Secure identity and profiling system | |
CN111213147B (en) | Systems and methods for blockchain-based cross-entity authentication | |
KR102197218B1 (en) | System and method for providing distributed id and fido based block chain identification | |
EP1914951B1 (en) | Methods and system for storing and retrieving identity mapping information | |
CN110535648B (en) | Electronic certificate generation and verification and key control method, device, system and medium | |
US20080263644A1 (en) | Federated authorization for distributed computing | |
US20140096213A1 (en) | Method and system for distributed credential usage for android based and other restricted environment devices | |
WO2021127577A1 (en) | Secure mobile initiated authentications to web-services | |
WO2021139338A1 (en) | Data access permission verification method and apparatus, computer device, and storage medium | |
WO2021127575A1 (en) | Secure mobile initiated authentication | |
WO2022262322A1 (en) | Authentication method, apparatus and system, electronic device, and storage medium | |
CN114760070A (en) | Digital certificate issuing method, digital certificate issuing center and readable storage medium | |
EP3883204B1 (en) | System and method for secure generation, exchange and management of a user identity data using a blockchain | |
KR102623243B1 (en) | Secure platform system for analyzing cdm data in multi-institutional distributed network, and method of the same | |
US20240193255A1 (en) | Systems and methods of protecting secrets in use with containerized applications | |
JP7367692B2 (en) | Apparatus, request apparatus, method, and program | |
CN115514584B (en) | Server and credible security authentication method of financial related server | |
US12143817B2 (en) | Secure mobile initiated authentications to web-services | |
US20240305631A1 (en) | Systems and methods for identity verification and authentication | |
CN116208666A (en) | Processing method and device supporting multi-source data center joint security calculation data | |
Sathiya et al. | An Architecture For Secure Mobile Database Transaction For Corporate Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |