WO2023167525A1 - 동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치 및 이를 이용한 방법 - Google Patents

동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치 및 이를 이용한 방법 Download PDF

Info

Publication number
WO2023167525A1
WO2023167525A1 PCT/KR2023/002906 KR2023002906W WO2023167525A1 WO 2023167525 A1 WO2023167525 A1 WO 2023167525A1 KR 2023002906 W KR2023002906 W KR 2023002906W WO 2023167525 A1 WO2023167525 A1 WO 2023167525A1
Authority
WO
WIPO (PCT)
Prior art keywords
authentication
user
code
dynamic
user terminal
Prior art date
Application number
PCT/KR2023/002906
Other languages
English (en)
French (fr)
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
Priority claimed from KR1020230027463A external-priority patent/KR20230131442A/ko
Application filed by 주식회사 센스톤 filed Critical 주식회사 센스톤
Publication of WO2023167525A1 publication Critical patent/WO2023167525A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y10/00Economic sectors
    • G16Y10/50Finance; Insurance
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y20/00Information sensed or collected by the things
    • G16Y20/40Information sensed or collected by the things relating to personal data, e.g. biometric data, records or preferences
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/10Detection; Monitoring

Definitions

  • the present disclosure relates to an industrial control device performing authentication based on a dynamic authentication code and a method using the same.
  • Code type data is used in many fields. Not only card numbers and account numbers used for payment, but also IPIN numbers and resident registration numbers for user identification are code-type data.
  • OTP One Time Password
  • a separate OTP generating device is required, which is inconvenient.
  • OTP codes such as generating virtual security codes necessary for user authentication, but do not require a separate OTP generator and at the same time prevent seed data from being leaked. We need a way to increase security.
  • An object of the present disclosure is to provide an industrial control device for performing authentication based on a dynamic authentication code and a method using the same.
  • An industrial control device for performing dynamic authentication code-based authentication for achieving the above-described technical problem is a communication module that communicates with a user's terminal and a central server, and the central server through the communication module. and a central processing unit (CPU) that transmits a request for authentication for a dynamic authentication code generated in the user terminal to a server and changes an operation mode based on a result of the authentication performed by the central server, wherein the Authentication is to determine whether the authentication request is normal access based on the dynamic authentication code, and the dynamic authentication code can be received from the user terminal or input or read by the user through an interface device.
  • CPU central processing unit
  • the CPU may receive identification information of the user from the central server and perform a login process based on the identification information.
  • the dynamic authentication code may include secret data for the user terminal, and the secret data may be used by the central server to search for the identification information.
  • the secret data may be a unique value generated by the central server when the user terminal requests registration of an application for controlling an industrial control device and given only to the user terminal to identify the user terminal.
  • the identification information may be a user ID (Identification) input or generated by the user terminal when the user terminal requests registration of an application for controlling an industrial control device.
  • the CPU changes the operation mode from a deactivation mode to an activation mode, and controls the at least one field device based on a control command received from the user terminal in the activation mode state.
  • an industrial control device for performing dynamic authentication code-based authentication includes a communication module that communicates with a user's terminal and dynamic authentication generated in the user terminal. and a central processing unit (CPU) that performs the requested authentication when code authentication is requested and changes an operation mode based on a result of the authentication, wherein the authentication is performed based on the dynamic authentication code. It is determined whether the authentication request is normal access, and the dynamic authentication code may be received from the user terminal or input or read by the user through an interface device.
  • CPU central processing unit
  • the CPU performs a log-in process based on the user's identification information, and when the log-in is completed, changes the operation mode from a deactivated mode to an active mode, In the active mode state, the at least one field device may be controlled based on a control command received from the user terminal.
  • a method for performing dynamic authentication code-based authentication performed by an industrial control device for achieving the above-described technical problem is a request for authentication for a dynamic authentication code generated in a user's terminal. and changing an operation mode based on a result of the authentication performed by the central server, wherein the authentication determines whether the authentication request is normal access based on the dynamic authentication code.
  • the dynamic authentication code may be received from the user terminal or input or read by the user through an interface device.
  • a method for performing dynamic authentication code-based authentication performed by an industrial control device for achieving the above-described technical problem requires authentication of a dynamic authentication code generated in a user's terminal. , performing the requested authentication and changing an operation mode based on a result of performing the authentication, wherein the authentication determines whether the authentication request is normal access based on the dynamic authentication code.
  • the dynamic authentication code may be received from the user terminal or input or read by the user through an interface device.
  • a computer program stored in a computer readable recording medium for executing a method for implementing the present disclosure may be further provided.
  • a computer readable recording medium recording a computer program for executing a method for implementing the present disclosure may be further provided.
  • FIG. 1 is a diagram schematically illustrating a security system of an industrial control device using authentication based on a dynamic authentication code according to an embodiment of the present disclosure.
  • FIG. 2 is a flowchart of a method for performing authentication based on a dynamic authentication code according to an embodiment of the present disclosure.
  • FIG. 3 is a diagram for explaining an authentication process based on a dynamic authentication code according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram for explaining a user registration process according to an embodiment of the present disclosure.
  • FIG. 5 is a diagram schematically illustrating an industrial control device security system using authentication based on a dynamic authentication code according to another embodiment of the present disclosure.
  • FIG. 6 is a flowchart of a method for performing authentication based on a dynamic authentication code according to another embodiment of the present disclosure.
  • FIG. 7 is a diagram for explaining an authentication process based on a dynamic authentication code according to another embodiment of the present disclosure.
  • FIG. 8 is a diagram for explaining a user registration process according to another embodiment of the present disclosure.
  • the identification code is used for convenience of description, and the identification code does not explain the order of each step, and each step may be performed in a different order from the specified order unless a specific order is clearly described in context. there is.
  • the device includes all various devices capable of providing results to users by performing calculation processing.
  • the device may include all of a computer, a server device, and a portable terminal, or may be of any one type.
  • the computer may include, for example, a laptop computer, a desktop computer, a laptop computer, a tablet PC, a slate PC, and the like equipped with a web browser.
  • the server device is a server that processes information by communicating with an external device, and may include an application server, a computing server, a database server, a file server, a game server, a mail server, a proxy server, and a web server.
  • the portable terminal is, for example, a wireless communication device that ensures portability and mobility, and includes a Personal Communication System (PCS), a Global System for Mobile communications (GSM), a Personal Digital Cellular (PDC), a Personal Handyphone System (PHS), and a PDA.
  • PCS Personal Communication System
  • GSM Global System for Mobile communications
  • PDC Personal Digital Cellular
  • PHS Personal Handyphone System
  • IMT International Mobile Telecommunication
  • CDMA Code Division Multiple Access
  • W-CDMA Wide-Code Division Multiple Access
  • WiBro Wireless Broadband Internet
  • smart phone smart phone
  • wearable devices such as watches, rings, bracelets, anklets, necklaces, glasses, contact lenses, or head-mounted-devices (HMDs).
  • HMDs head-mounted-devices
  • a "character” is a component constituting a code, and includes all or part of uppercase alphabets, lowercase alphabets, numbers, and special characters.
  • code means a string in which characters are listed.
  • dynamic authentication code may mean a One Time Authentication Code (OTAC) that is temporarily generated for authentication of at least one of a user and a device.
  • OTAC One Time Authentication Code
  • authentication code generation function means a function that generates a dynamic authentication code.
  • OTP one time password
  • the "detail code generation function” means a function that generates each detail code constituting the dynamic authentication code.
  • the "detail code combining function” means a function that generates a virtual code by combining or combining a plurality of detailed codes.
  • a "unit count” is a unit defined as being set at a specific time interval and changed as the time interval elapses. For example, 1 count may be set to a specific time interval (eg, 1.5 seconds) and used.
  • storage location means a point (count) on a track corresponding to the time when user registration is requested.
  • industrial control device may include, but is not limited to, PLC (Programmable Logic Controller), SCADA (Supervisory Control And Data Acquisition), ICS (Industrial Control Systems).
  • the industrial control device for example, PLC
  • PLC is a key component in charge of controlling and measuring field devices (field devices) of the industrial control system. It can cause damage to the entire industrial control system.
  • a password (PW) authentication method, an ID/password (ID/PW) authentication method, and a PKI authentication method have been used in the past.
  • PW password
  • ID/PW ID/password
  • ID/PW ID/password
  • the PKI authentication method has problems in that authentication infrastructure costs are high, a two-way network environment is essential, and certificate management is burdensome.
  • FIG. 1 is a diagram schematically illustrating a security system of an industrial control device using authentication based on a dynamic authentication code according to an embodiment of the present disclosure.
  • a security system (hereinafter, a system) of an industrial control device using dynamic authentication code-based authentication according to an embodiment includes an industrial control device 10, a user terminal 20, a central server 30 and It includes a field device 40.
  • the system may include fewer or more components than those shown in FIG. 1 .
  • the industrial control device 10 plays a pivotal role in controlling field devices (field devices) in an actual production site.
  • an industrial control device 10 may include a central processing unit (CPU) 11, a memory 12, a communication module 13, and an input/output terminal 14.
  • the industrial control device 10 may include fewer or more components than those shown in FIG. 1 .
  • the CPU 11 may manage and control all operations of the industrial control device 10 .
  • the CPU 11 may perform arithmetic operations using signals, commands, information, and data input from external devices.
  • the memory 12 can store data supporting various functions of the industrial control device 10, programs for operation of the CPU 11, and input/output data, and the industrial control device 10 It is possible to store a plurality of application programs (application programs or applications) driven in ), data for the operation of the industrial control device 10, and commands. At least some of these application programs may be downloaded from an external server through wireless communication.
  • the memory 12 is a flash memory type, a hard disk type, a solid state disk type, a silicon disk drive type, and a multimedia card micro type. micro type), card type memory (eg SD or XD memory, etc.), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable EEPROM (EEPROM) It may include a storage medium of at least one type of a programmable read-only memory (PROM), a programmable read-only memory (PROM), a magnetic memory, a magnetic disk, and an optical disk. In addition, the memory 12 is separated from the present industrial control device 10, but may be a database connected by wire or wirelessly.
  • the communication module 13 is between the industrial control device 10 and the user terminal 20, between the industrial control device 10 and the central server 30, and between the industrial control device 10 and the field device 40. , It may include one or more modules enabling wireless or wired communication between the industrial control device 10 and the communication network. For example, it may include at least one of a wired communication module, a wireless communication module, a short-distance communication module, and a location information module.
  • Various types of communication networks may be used as the communication network, for example, wireless communication methods such as WLAN (Wireless LAN), Wi-Fi, Wibro, Wimax, and HSDPA (High Speed Downlink Packet Access)
  • wireless communication methods such as WLAN (Wireless LAN), Wi-Fi, Wibro, Wimax, and HSDPA (High Speed Downlink Packet Access)
  • a wired communication method such as Ethernet, xDSL (ADSL, VDSL), HFC (Hybrid Fiber Coax), FTTC (Fiber to The Curb), FTTH (Fiber To The Home) may be used.
  • the communication network is not limited to the communication methods presented above, and may include all other types of communication methods that are widely known or will be developed in the future in addition to the above communication methods.
  • Wired communication modules include not only various wired communication modules such as Local Area Network (LAN) modules, Wide Area Network (WAN) modules, or Value Added Network (VAN) modules, but also USB (Universal Serial Bus) ), high definition multimedia interface (HDMI), digital visual interface (DVI), recommended standard 232 (RS-232), power line communication, or plain old telephone service (POTS).
  • LAN Local Area Network
  • WAN Wide Area Network
  • VAN Value Added Network
  • USB Universal Serial Bus
  • HDMI high definition multimedia interface
  • DVI digital visual interface
  • RS-232 recommended standard 232
  • POTS plain old telephone service
  • wireless communication modules include global system for mobile communication (GSM), code division multiple access (CDMA), wideband code division multiple access (WCDMA), and universal mobile telecommunications system (UMTS). ), time division multiple access (TDMA), long term evolution (LTE), and a wireless communication module supporting various wireless communication schemes such as 4G, 5G, and 6G.
  • GSM global system for mobile communication
  • CDMA code division multiple access
  • WCDMA wideband code division multiple access
  • UMTS universal mobile telecommunications system
  • TDMA time division multiple access
  • LTE long term evolution
  • wireless communication module supporting various wireless communication schemes such as 4G, 5G, and 6G.
  • the short-range communication module is for short-range communication, and includes BluetoothTM, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra Wideband (UWB), ZigBee, and Near Field Communication (NFC). Communication), Wi-Fi (Wireless-Fidelity), Wi-Fi Direct, and wireless USB (Wireless Universal Serial Bus) technologies may be used to support short-distance communication.
  • RFID Radio Frequency Identification
  • IrDA Infrared Data Association
  • UWB Ultra Wideband
  • ZigBee Ultra Wideband
  • NFC Near Field Communication
  • Wi-Fi Wireless-Fidelity
  • Wi-Fi Direct Wireless USB (Wireless Universal Serial Bus) technologies may be used to support short-distance communication.
  • the input/output terminal 14 is directly connected to at least one field device 40 in the field.
  • the input/output terminal 14 transfers a signal input from the field device 40 to the CPU 11 and transfers an operation result of the CPU 11 to the field device 40 .
  • the industrial control device 10 may further include an interface capable of receiving commands, requests, and data from the user terminal 20 or the central server 30 .
  • the user terminal 20 is a user terminal device responsible for managing and controlling the industrial control device 10 through a management program (an application for controlling the industrial control device) provided by the central server 30 .
  • a software development kit (SDK) related to a dynamic authentication code may be installed in the management program.
  • the user terminal 20 may perform all operations related to the dynamic authentication code through the SDK loaded in the management program.
  • the central server 30 receives status information of the field devices 40 collected by the industrial control device 10, manages and controls the industrial control devices 10 based on this status information, and performs overall operation of the system. can be performed.
  • the central server 30 may be connected to the OTAC verification server 31 for authentication of the industrial control device 10.
  • the central server 30 may include an OTAC verification server 31 for authentication of the industrial control device 10.
  • the field device 40 refers to devices that operate according to a control command of the industrial control device 10 in the field.
  • the field device 40 may include a motor valve, a switch, and an actuator, but is not limited thereto.
  • FIG. 2 is a flowchart of a method for performing authentication based on a dynamic authentication code according to an embodiment of the present disclosure.
  • the operation related to OTAC verification is described as being performed by the central server 30 , but more precisely, the operation related to OTAC verification is performed by the OTAC verification server 31 .
  • the CPU 11 of the industrial control device 10 transmits an authentication request for the dynamic authentication code generated in the user's terminal 20 to the central server 30 through the communication module 13. It can (S210).
  • the user may transmit an authentication request to the industrial control device 10 through a management program (an application for controlling the industrial control device) installed in the user terminal 20 .
  • a management program an application for controlling the industrial control device
  • the central server 30 determines whether the corresponding user is a normal user (ie, determines whether the corresponding authentication request is a normal access).
  • the user terminal 20 authenticates with the dynamic authentication code generated by the industrial control device 10 request can be sent.
  • the dynamic authentication code generated by the SDK loaded in the application (the management program) in the user terminal 20 may be transmitted from the user terminal 20 to the industrial control device 10 through communication
  • the industrial control device 10 can obtain the dynamic authentication code by directly inputting the dynamic authentication code into the interface device connected to the industrial control device 10, or the industrial control device 10 can obtain the dynamic authentication code by reading the dynamic authentication code into the interface device.
  • Device 10 may obtain a dynamic authentication code.
  • the central server 30 when the central server 30 receives an authentication request from the industrial control device 10 together with a dynamic authentication code, it can determine whether the authentication request of the user terminal 20 is normal access based on the dynamic authentication code.
  • the dynamic authentication code may include secret data for the user terminal 20 .
  • the central server 30 may search for secret data in the received dynamic authentication code using a pre-stored search algorithm.
  • the central server 30 may perform verification of the dynamic authentication code by comparing the searched secret data with pre-stored secret data. That is, if the searched secret data matches the pre-stored secret data, it may be determined that the dynamic authentication code is a code normally generated at the present time.
  • the secret data is generated by the central server 30 when the user terminal 20 requests registration in a management program (an application for controlling an industrial control device), and is used to identify the user terminal 20. It may be a unique value given only to the corresponding user terminal 20 for this purpose.
  • a management program an application for controlling an industrial control device
  • the secret data may be used by the central server 30 to search for user identification information.
  • Identification information is input by the user through the user terminal 20 or generated by the user terminal 20 when the user terminal 20 requests registration in a management program (an application for controlling industrial control devices). It may be ID (Identification). However, it is not limited thereto, and the identification information can be any information that can identify the user (eg, password, employee number, etc.).
  • the central server 30 may complete user registration by mapping and storing identification information received from the user terminal 20 and secret data generated in the central server 30 .
  • the user's identification information and secret data for the user terminal 20 are mapped and stored, and then, whenever authentication is performed, the secret data for the user terminal 20 is searched for in the dynamic authentication code, User identification information can be searched using the searched secret data.
  • authentication using a dynamic authentication code can simultaneously perform authentication for a user and a user terminal (device).
  • the CPU 11 of the industrial control device 10 may change the operation mode based on the authentication result performed by the central server 30 (S220).
  • the CPU 11 may receive user identification information from the central server 30 . Also, the CPU 11 may perform a user login process based on the received identification information.
  • the CPU 11 may change the operation mode of the industrial control device 10 from the inactive mode to the active mode.
  • the CPU 11 may control at least one field device 40 based on a control command received from the user terminal 20 in the active mode state.
  • the CPU 11 may block the terminal requesting the authentication, and may continue to maintain the operation mode in an inactive state.
  • the CPU 11 may block the terminal requesting the authentication, and may also switch the operation mode from an active state to an inactive state. there is.
  • the OTAC generating module 21 shown in FIGS. 3 and 4 may mean a software development kit (SDK) related to the dynamic authentication code described above.
  • the OTAC verification server 31 may be mounted on (included in) or connected to the central server 30 . Also, for convenience of description, it is described that the industrial control device 10 performs an operation, but it may be understood that the operation is performed by the CPU 11 included in the industrial control device 10 .
  • FIG. 3 is a diagram for explaining an authentication process based on a dynamic authentication code according to an embodiment of the present disclosure.
  • the OTAC generation module 21 may generate a dynamic authentication code (OTAC) (S301).
  • OTAC dynamic authentication code
  • a dynamic authentication code can be generated using one or more seed data.
  • the seed data may include device (user terminal or management program) unique values, device information, and time data, but is not limited thereto.
  • the device-specific value means secret data for the user terminal 20 described above.
  • the device-specific value is a value for identifying the user terminal 20 or a management program installed in the user terminal 20 .
  • the device information may refer to the serial number of the industrial control device 10, but is not limited thereto.
  • the time data may refer to time data at the time of requesting authentication or generating a dynamic authentication code.
  • a dynamic authentication code may be generated based on the one or more seed data using a code generation function.
  • the code generation function may start running at the time of user registration.
  • the user Before the OTAC generation module 21 generates the dynamic authentication code, the user may select the industrial control device 10 to be activated (to log in) through the user terminal 20 .
  • the information of the industrial control device 10 selected in this way is transmitted to the OTAC generation module 21 and may be used as seed data for generating a dynamic authentication code.
  • the OTAC generating module 21 may deliver a dynamic authentication code (OTAC) to the user terminal 20 (S302).
  • OTAC dynamic authentication code
  • the user terminal 20 requests authentication based on a dynamic authentication code (OTAC), but the authentication request may be transmitted to the OTAC verification server 31 via the industrial control device 10 and the central server 30 (S303 , S304, S305).
  • OTAC dynamic authentication code
  • the user terminal 20 may transmit an authentication request to the selected industrial control device 10 .
  • the OTAC verification server 31 may perform the requested verification through dynamic verification code (OTAC) verification (S306).
  • OAC dynamic verification code
  • the OTAC verification server 31 compares seed data included in the received dynamic authentication code with pre-stored seed data, and determines whether the dynamic authentication code is generated in a normal user terminal at the current time according to whether the two values match. can judge
  • the OTAC verification server 31 searches for secret data by applying a search algorithm to the dynamic authentication code, and compares the searched secret data with the secret data included in the dynamic authentication code to perform verification. .
  • the OTAC verification server 31 may search for the user's identification information that is mapped to the secret data and stored.
  • the OTAC verification server 31 may transmit the searched identification information (ie, User ID) to the industrial control device 10 via the central server 30 (S307 and S308).
  • the searched identification information ie, User ID
  • the OTAC verification server 31 may provide the searched identification information (ie, User ID) to the corresponding industrial control device 10 based on the information of the industrial control device included in the dynamic authentication code.
  • the industrial control device 10 may perform a user login process using the received identification information (ie, User ID) (S309).
  • the industrial control device 10 When login is completed, the industrial control device 10 is in an active state, and the user can manage and control the industrial control device 10 using the user terminal 20 .
  • FIG. 4 is a diagram for explaining a user registration process according to an embodiment of the present disclosure.
  • the user terminal 20 requests user registration, but the registration request may be transmitted to the OTAC verification server 31 via the industrial control device 10 and the central server 30 (S401, S402, S403).
  • the user must perform user registration for the industrial control device 10 in charge.
  • the user may request user registration for the industrial control device 10 to be in charge through the management program.
  • the user can input the information of the industrial control device 10 to be in charge and his/her own identification information.
  • the user terminal 20 may transmit a registration request along with user identification information to the corresponding industrial control device 10 based on the input information of the industrial control device 10 .
  • the OTAC verification server 31 may generate and store secret data for identifying the user terminal 20 (or a management program installed in the user terminal 20) requesting registration (S404). .
  • the OTAC verification server 31 may store the generated secret data in a specific storage location within the search algorithm. At this time, the OTAC verification server 31 may map and store the identification information of the user to secret data stored in a specific storage location. Depending on the embodiment, not only the user's identification information but also the information of the industrial control device 10 may be mapped and stored in the secret data.
  • the OTAC verification server 31 can search for the storage location of the secret data in the search algorithm by applying the dynamic authentication code generated by the code generation function to the search algorithm.
  • the OTAC verification server 31 may transmit secret data to the user terminal 20 via the central server 30 and the industrial control device 10 (S405, S406, S407)
  • the user terminal 20 may store secret data (S408) and transmit the secret data to the OTAC generation module 21 (S409). Accordingly, the OTAC generation module 21 can generate a dynamic authentication code using the secret data.
  • each code generation function may have a different driving time. That is, when user registration for each industrial control device 10 is completed, driving of the corresponding code generation function may be started.
  • the code generating function A may start driving when user registration for industrial control device A is completed
  • the code generating function B may start driving when user registration for industrial control device B is completed. Accordingly, when the user applies for an authentication request to control the industrial control device A, a dynamic authentication code is generated using the code generation function A, and when the user applies for an authentication request to control the industrial control device B, the code A dynamic authentication code may be generated using the generation function B.
  • FIG. 5 is a diagram schematically illustrating a security system of an industrial control device using authentication based on a dynamic authentication code according to another embodiment of the present disclosure.
  • a security system (hereinafter, a system) of an industrial control device using dynamic authentication code-based authentication according to another embodiment includes an industrial control device 10, a user terminal 20, and a field device 40.
  • the system may include fewer or more components than those shown in FIG. 5 .
  • the OTAC verification server 31 for authentication of the industrial control device 10 has been described as being included in or connected to the central server 30, but the following FIGS. 5 to 4
  • the OTAC verification server 15 for authentication of the industrial control device 10 may be included in or connected to the industrial control device 10.
  • the OTAC verification server 31 and the OTAC verification server 15 perform the same operation.
  • FIG. 6 is a flowchart of a method for performing authentication based on a dynamic authentication code according to another embodiment of the present disclosure.
  • the operation related to OTAC verification is described as being performed by the industrial control device 10, but more precisely, the operation related to OTAC verification is performed by the OTAC verification server 15.
  • the CPU 11 of the industrial control device 10 performs the requested authentication. It can (S610).
  • the user may transmit an authentication request to the industrial control device 10 through a management program (an application for controlling the industrial control device) installed in the user terminal 20 .
  • the industrial control device 10 may determine whether the corresponding user is a normal user (ie, determine whether the corresponding authentication request is normal access).
  • the user terminal 20 authenticates with the dynamic authentication code generated by the industrial control device 10 request can be sent.
  • the dynamic authentication code generated by the SDK loaded in the application (the management program) in the user terminal 20 may be transmitted from the user terminal 20 to the industrial control device 10 through communication
  • the industrial control device 10 can obtain the dynamic authentication code by directly inputting the dynamic authentication code into the interface device connected to the industrial control device 10, or the industrial control device 10 can obtain the dynamic authentication code by reading the dynamic authentication code into the interface device.
  • Device 10 may obtain a dynamic authentication code.
  • the industrial control device 10 may determine whether the authentication request of the user terminal 20 is normal access based on the dynamic authentication code.
  • the dynamic authentication code may include secret data for the user terminal 20 .
  • the industrial control device 10 may search for secret data in the received dynamic authentication code using a pre-stored search algorithm.
  • the industrial control device 10 may perform verification of the dynamic authentication code by comparing the searched secret data with previously stored secret data. That is, if the searched secret data matches the pre-stored secret data, it may be determined that the dynamic authentication code is a code normally generated at the present time.
  • the secret data is generated by the industrial control device 10 when the user terminal 20 requests registration in the management program (an application for controlling the industrial control device), and identifies the user terminal 20. It may be a unique value given only to the corresponding user terminal 20 in order to do so.
  • the secret data may be used by the industrial control device 10 to search for user identification information.
  • Identification information is input by the user through the user terminal 20 or generated by the user terminal 20 when the user terminal 20 requests registration in a management program (an application for controlling industrial control devices). It may be ID (Identification). However, it is not limited thereto, and the identification information can be any information that can identify the user (eg, password, employee number, etc.).
  • the industrial control device 10 may complete user registration by mapping and storing identification information received from the user terminal 20 and secret data generated by the industrial control device 10 .
  • the user's identification information and secret data for the user terminal 20 are mapped and stored, and then, whenever authentication is performed, the secret data for the user terminal 20 is searched for in the dynamic authentication code, User identification information can be searched using the searched secret data.
  • authentication using a dynamic authentication code can simultaneously perform authentication for a user and a user terminal (device).
  • the CPU 11 of the industrial control device 10 may change the operation mode based on the authentication result (S620).
  • the CPU 11 may perform a user login process based on the searched identification information.
  • the CPU 11 may change the operation mode of the industrial control device 10 from the inactive mode to the active mode.
  • the CPU 11 may control at least one field device 40 based on a control command received from the user terminal 20 in the active mode state.
  • the CPU 11 may block the terminal requesting the authentication, and may continue to maintain the operation mode in an inactive state.
  • the CPU 11 may block the terminal requesting the authentication, and may also switch the operation mode from an active state to an inactive state. there is.
  • the OTAC generation module 21 shown in FIGS. 7 and 8 may mean a software development kit (SDK) related to the dynamic authentication code described above.
  • the OTAC verification server 15 may be mounted (included) or connected to the industrial control device 10. Also, for convenience of description, it is described that the industrial control device 10 performs an operation, but it may be understood that the operation is performed by the CPU 11 included in the industrial control device 10 .
  • FIG. 7 is a diagram for explaining an authentication process based on a dynamic authentication code according to another embodiment of the present disclosure.
  • the OTAC generation module 21 may generate a dynamic authentication code (OTAC) (S701).
  • OTAC dynamic authentication code
  • a dynamic authentication code can be generated using one or more seed data.
  • the seed data may include device (user terminal or management program) unique values, device information, and time data, but is not limited thereto.
  • the device-specific value means secret data for the user terminal 20 described above.
  • the device-specific value is a value for identifying the user terminal 20 or a management program installed in the user terminal 20 .
  • the device information may refer to the serial number of the industrial control device 10, but is not limited thereto.
  • the time data may refer to time data at the time of requesting authentication or generating a dynamic authentication code.
  • a dynamic authentication code may be generated based on the one or more seed data using a code generation function.
  • the code generation function may start running at the time of user registration.
  • the user Before the OTAC generation module 21 generates the dynamic authentication code, the user may select the industrial control device 10 to be activated (to log in) through the user terminal 20 .
  • the information of the industrial control device 10 selected in this way is transmitted to the OTAC generation module 21 and may be used as seed data for generating a dynamic authentication code.
  • the OTAC generation module 21 may transmit the dynamic authentication code (OTAC) to the user terminal 20 (S702).
  • OTAC dynamic authentication code
  • the user terminal 20 requests authentication based on a dynamic authentication code (OTAC), and the authentication request may be transmitted to the OTAC verification server 15 via the industrial control device 10 (S703 and S704).
  • OTAC dynamic authentication code
  • the user terminal 20 may transmit an authentication request to the selected industrial control device 10 .
  • the OTAC verification server 15 may perform the requested verification through dynamic verification code (OTAC) verification (S705).
  • OTAC dynamic verification code
  • the OTAC verification server 15 compares seed data included in the received dynamic authentication code with pre-stored seed data, and determines whether the dynamic authentication code is generated in a normal user terminal at the current time according to whether the two values match. can judge
  • the OTAC verification server 15 searches for secret data by applying a search algorithm to the dynamic authentication code, and compares the searched secret data with the secret data included in the dynamic authentication code to perform verification. .
  • the OTAC verification server 15 may search for the user's identification information that is mapped to the secret data and stored.
  • the OTAC verification server 15 may transmit the searched identification information (ie, User ID) to the industrial control device 10 (S306).
  • the industrial control device 10 may perform a user login process using the received identification information (ie, User ID) (S308).
  • the industrial control device 10 When login is completed, the industrial control device 10 is in an active state, and the user can manage and control the industrial control device 10 using the user terminal 20 .
  • FIG. 8 is a diagram for explaining a user registration process according to another embodiment of the present disclosure.
  • the user terminal 20 requests user registration, but the registration request may be transmitted to the OTAC verification server 15 via the industrial control device 10 (S801 and S802).
  • the user must perform user registration for the industrial control device 10 in charge.
  • the user may request user registration for the industrial control device 10 to be in charge through the management program.
  • the user can input the information of the industrial control device 10 to be in charge and his/her own identification information.
  • the user terminal 20 may transmit a registration request along with user identification information to the corresponding industrial control device 10 based on the input information of the industrial control device 10 .
  • the OTAC verification server 15 may generate and store secret data for identifying the user terminal 20 (or a management program installed in the user terminal 20) requesting registration (S803). .
  • the OTAC verification server 15 may store the generated secret data in a specific storage location within the search algorithm. At this time, the OTAC verification server 15 may map and store the identification information of the user to secret data stored in a specific storage location. Depending on the embodiment, not only the user's identification information but also the information of the industrial control device 10 may be mapped and stored in the secret data.
  • the OTAC verification server 15 can search the storage location of the secret data in the search algorithm by applying the dynamic authentication code generated by the code generation function to the search algorithm.
  • the OTAC verification server 15 may transmit secret data to the user terminal 20 via the industrial control device 10 (S804, S805).
  • the user terminal 20 may store secret data (S806) and transmit the secret data to the OTAC generation module 21 (S807). Accordingly, the OTAC generation module 21 can generate a dynamic authentication code using the secret data.
  • network connection is required only when the user terminal 20 transmits a dynamic authentication code to the industrial control device 10 . That is, the verification of the dynamic authentication code and the control of the industrial control device 10 according to the result are performed by one device (the industrial control device 10 or the OTAC verification server 15 mounted on the industrial control device 10) Because of this, there is no need for two-way communication.
  • each code generation function may have a different driving time. That is, when user registration for each industrial control device 10 is completed, driving of the corresponding code generation function may be started.
  • the code generating function A may start driving when user registration for industrial control device A is completed
  • the code generating function B may start driving when user registration for industrial control device B is completed. Accordingly, when the user applies for an authentication request to control the industrial control device A, a dynamic authentication code is generated using the code generation function A, and when the user applies for an authentication request to control the industrial control device B, the code A dynamic authentication code may be generated using the generation function B.
  • the SDK installed in the management program can generate one or more detailed codes.
  • the detailed code refers to a part of the code constituting the dynamic authentication code.
  • the dynamic authentication code may consist of only the detailed code, or the final dynamic authentication by combining one or more detailed codes with the virtual security code generated by the OTP function. It may be formed in the form of code OTAC.
  • the SDK includes a code generating function that generates a dynamic authentication code, and the code generating function includes a detailed code generating function that generates one or more detailed codes and a detailed code combining function that generates a virtual code by combining the detailed codes (i.e., rules for combining a plurality of detailed codes).
  • the code generating function when the dynamic authentication code includes a plurality of detailed codes, the code generating function generates a plurality of detailed codes using the plurality of detailed codes generating functions, and bases the plurality of detailed codes through the detailed code combining function. Combining with the set combination creates a dynamic authentication code.
  • a plurality of detailed codes have a correlation used by the OTAC verification servers 15 and 31 to search for a storage location of information capable of identifying a user or device. That is, the OTAC verification servers 15 and 31 have a search algorithm, and the search algorithm extracts a plurality of detailed codes included in the dynamic authentication code and provides information to the user or device based on the correlation between the plurality of detailed codes. The storage location of the given unique value (eg, secret data) is searched.
  • the search algorithm operates based on the correlation between the plurality of detailed codes from a waypoint corresponding to one or more detailed codes among the plurality of detailed codes, and the user or A storage location of device-specific values (eg, secret data) may be searched. At this time, the number of waypoints may be one or plural, and the number and order are not limited.
  • the plurality of detailed codes may include first codes and second codes
  • the SDK includes the first function and the second function as detailed code generating functions, Code and second code are generated.
  • the first code and the second code have a correlation to search the storage location of the user or device's unique value (eg, secret data) within the OTAC verification server 15, 31, but the SDK increases security
  • only the first function for generating the first code and the second function for generating the second code are included as detailed code generation functions, and data on correlation between the first code and the second code may not be included.
  • the first code and the second code may play respective roles for searching for the storage location of the unique value. That is, the first code may include information about the waypoint, and the second code may include information necessary for an operation capable of reaching the storage location of the eigenvalue from the waypoint.
  • the first code may be generated based on the first count
  • the second code may be generated based on the second count.
  • the first count is the number of unit counts that have elapsed from the initial point when the code generation function is driven in the OTAC generation module 21 or the OTAC verification server 15, 31 to the point when the dynamic authentication code is generated
  • the second count may include the number of unit counts elapsed from the time when the unique value (eg, secret data) of the user or device is stored in the OTAC verification server 15 or 31.
  • the first function generating the first code is a function providing a specific code value corresponding to the first count
  • the second function generating the second code is a function providing a specific code value corresponding to the second count. am.
  • the OTAC verification servers 15 and 31 when the OTAC verification servers 15 and 31 receive the dynamic authentication code from the user terminal 20, the time data of receiving the dynamic authentication code and the time data of the dynamic authentication code The dynamic authentication code may be verified by comparison.
  • the OTAC verification server 15 or 31 converts the received dynamic authentication code to the current one based on the information stored in the OTAC verification server 15 or 31 (that is, the code generation function and seed data). Determine whether the dynamic authentication code is normal by checking whether it is normally generated at the time.
  • the OTAC verification servers 15 and 31 apply an inverse function of the code generation function to the dynamic verification code to find a count corresponding to the time point at which the dynamic verification code is generated.
  • the OTAC verification servers 15 and 31 are Since the count of receiving the authentication code and the count of generating the OTP number corresponding to the virtual code for authentication may not match, the OTAC verification servers 15 and 31 allow an error range from the count of receiving the dynamic authentication code.
  • the OTAC verification servers 15 and 31 search the storage location of the unique value (eg, secret data) of the user or device based on the dynamic authentication code to extract the unique value and user or device authentication may be performed based on the extracted unique value.
  • the unique value eg, secret data
  • FIGS. 2 and 6 are described as sequentially executing steps, but this is merely an example of the technical idea of this embodiment, and those skilled in the art to which this embodiment belongs will understand the essentials of this embodiment. Since the order described in FIGS. 2 and 6 may be changed and executed in a range that does not deviate from the characteristics or executed in parallel, various modifications and variations may be applied, so FIGS. 2 and 6 are not limited to a time-series order.
  • FIGS. 2 and 6 may be further divided into additional steps or combined into fewer steps according to an embodiment of the present disclosure. Also, some steps may be omitted if necessary, and the order of steps may be changed.
  • the disclosed embodiments may be implemented in the form of a recording medium storing instructions executable by a computer. Instructions may be stored in the form of program codes, and when executed by a processor, create program modules to perform operations of the disclosed embodiments.
  • the recording medium may be implemented as a computer-readable recording medium.
  • Computer-readable recording media include all types of recording media in which instructions that can be decoded by a computer are stored. For example, there may be read only memory (ROM), random access memory (RAM), magnetic tape, magnetic disk, flash memory, optical data storage device, and the like.
  • ROM read only memory
  • RAM random access memory
  • magnetic tape magnetic tape
  • magnetic disk magnetic disk
  • flash memory optical data storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Biophysics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Toxicology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Electromagnetism (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치 및 이를 이용한 방법이 제공된다. 본 개시에 따른 산업용 제어장치는, 사용자의 단말 및 중앙 서버와 통신을 수행하는 통신 모듈 및 상기 통신 모듈을 통해 상기 중앙 서버로 상기 사용자 단말에서 생성된 동적 인증 코드를 송신하여 상기 동적 인증 코드에 대한 인증을 요청하고, 상기 인증의 결과에 기초하여 동작 모드를 변경하는 CPU(Central Processing Unit)를 포함한다.

Description

동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치 및 이를 이용한 방법
본 개시는 동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치 및 이를 이용한 방법에 관한 것이다.
코드형태 데이터는 많은 영역에서 이용되고 있다. 결제 시에 이용되는 카드번호, 계좌 번호뿐만 아니라 사용자 식별을 위한 IPIN번호, 주민등록번호 등이 코드형태 데이터이다.
그러나 이러한 코드데이터를 이용하는 과정에서 유출되는 사고가 많이 발생한다. 카드번호의 경우, 카드 표면에 실제 카드번호가 그대로 기재되어 있어서 타인에게 시각적으로 유출되며, 마그네틱을 이용한 결제 시에 카드번호가 그대로 POS장치로 전달되면서 유출된다.
실제코드가 그대로 유출되지 않도록 하기 위해 가상코드를 이용하고자 하는 시도가 많았으나, 가상코드에 대응되는 실제코드를 탐색하기 위해 사용자를 식별하기 위한 데이터가 필요하였다.
그러나 OTP(One Time Password)의 경우, 별도의 OTP생성 장치를 필요로 하여 불편함을 수반하고, 특히 사용자 단말기의 경우 OTP생성에 이용되는 시드 데이터의 유출로 보안상의 취약점 존재한다.
따라서 많은 사용자가 소지하고 있는 카드의 카드 데이터를 기반으로 사용자 인증에 필요한 가상 보안 코드를 생성하는 것과 같이 OTP코드를 생성하되, 별도의 OTP생성 장치를 필요로 하지 않고 동시에 시드 데이터가 유출되지 않도록 하여 보안을 높이는 방안이 필요하다.
본 개시에 개시된 실시예는 동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치 및 이를 이용한 방법을 제공하는데 그 목적이 있다.
본 개시가 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 기술적 과제를 달성하기 위한 본 개시에 일 측면에 따른 동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치는, 사용자의 단말 및 중앙 서버와 통신을 수행하는 통신 모듈 및 상기 통신 모듈을 통해 상기 중앙 서버로 상기 사용자 단말에서 생성된 동적 인증 코드에 대한 인증의 요청을 송신하고, 상기 중앙 서버에 의해 수행된 상기 인증의 결과에 기초하여 동작 모드를 변경하는 CPU(Central Processing Unit)를 포함하고, 상기 인증은, 상기 동적 인증 코드를 기반으로 상기 인증 요청이 정상적인 접근인지를 판단하는 것이고, 상기 동적 인증 코드는, 상기 사용자 단말로부터 수신되거나, 상기 사용자에 의해 인터페이스 장치를 통해 입력 또는 리딩될 수 있다.
또한, 상기 인증 요청이 정상적인 접근으로 판단된 경우, 상기 CPU는, 상기 중앙 서버로부터 상기 사용자의 식별정보를 수신하고, 상기 식별정보를 기초로 로그인 처리를 수행할 수 있다.
또한, 상기 동적 인증 코드는, 상기 사용자 단말에 대한 시크릿 데이터(Secret Data)를 포함하고, 상기 시크릿 데이터는, 상기 중앙 서버가 상기 식별정보를 탐색하는 데 이용될 수 있다.
또한, 상기 시크릿 데이터는, 상기 사용자 단말이 산업용 제어장치의 제어를 위한 애플리케이션에 등록 요청 시, 상기 중앙 서버에 의해 생성되고, 상기 사용자 단말을 식별하기 위해 상기 사용자 단말에만 부여되는 고유값일 수 있다.
또한, 상기 식별정보는, 상기 사용자 단말이 산업용 제어장치의 제어를 위한 애플리케이션에 등록 요청 시, 상기 사용자 단말에 의해 입력되거나 생성되는 유저 ID(Identification)일 수 있다.
또한, 상기 로그인이 완료되면, 상기 CPU는, 상기 동작 모드를 비활성화 모드에서 활성화 모드로 변경하고, 상기 활성화 모드 상태에서 상기 사용자 단말로부터 수신되는 제어명령에 기초하여 상기 적어도 하나의 필드 기기를 제어할 수 있다.
또한, 상술한 기술적 과제를 달성하기 위한 본 개시에 다른 측면에 따른 동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치는, 사용자의 단말과 통신을 수행하는 통신 모듈 및 상기 사용자 단말에서 생성된 동적 인증 코드에 대한 인증이 요청되면, 상기 요청된 인증을 수행하고, 상기 인증의 수행 결과에 기초하여 동작 모드를 변경하는 CPU(Central Processing Unit)를 포함하고, 상기 인증은, 상기 동적 인증 코드를 기반으로 상기 인증 요청이 정상적인 접근인지를 판단하는 것이고, 상기 동적 인증 코드는, 상기 사용자 단말로부터 수신되거나, 상기 사용자에 의해 인터페이스 장치를 통해 입력 또는 리딩될 수 있다.
또한, 상기 인증 요청이 정상적인 접근으로 판단된 경우, 상기 CPU는, 상기 사용자의 식별정보를 기초로 로그인 처리를 수행하고, 상기 로그인이 완료되면, 상기 동작 모드를 비활성화 모드에서 활성화 모드로 변경하고, 상기 활성화 모드 상태에서 상기 사용자 단말로부터 수신되는 제어명령에 기초하여 상기 적어도 하나의 필드 기기를 제어할 수 있다.
또한, 상술한 기술적 과제를 달성하기 위한 본 개시에 일 측면에 따른 산업용 제어장치에 의해 수행되는 동적 인증 코드 기반의 인증을 수행하는 방법은, 사용자의 단말에서 생성된 동적 인증 코드에 대한 인증의 요청을 중앙 서버로 송신하는 단계 및 상기 중앙 서버에 의해 수행된 상기 인증의 결과에 기초하여 동작 모드를 변경하는 단계를 포함하고, 상기 인증은, 상기 동적 인증 코드를 기반으로 상기 인증 요청이 정상적인 접근인지를 판단하는 것이고, 상기 동적 인증 코드는, 상기 사용자 단말로부터 수신되거나, 상기 사용자에 의해 인터페이스 장치를 통해 입력 또는 리딩될 수 있다.
또한, 상술한 기술적 과제를 달성하기 위한 본 개시에 다른 측면에 따른 산업용 제어장치에 의해 수행되는 동적 인증 코드 기반의 인증을 수행하는 방법은, 사용자의 단말에서 생성된 동적 인증 코드에 대한 인증이 요청되면, 상기 요청된 인증을 수행하는 단계 및 상기 인증의 수행 결과에 기초하여 동작 모드를 변경하는 단계를 포함하고, 상기 인증은, 상기 동적 인증 코드를 기반으로 상기 인증 요청이 정상적인 접근인지를 판단하는 것이고, 상기 동적 인증 코드는, 상기 사용자 단말로부터 수신되거나, 상기 사용자에 의해 인터페이스 장치를 통해 입력 또는 리딩될 수 있다.
이 외에도, 본 개시를 구현하기 위한 방법을 실행하기 위한 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 더 제공될 수 있다.
이 외에도, 본 개시를 구현하기 위한 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공될 수 있다.
본 개시의 전술한 과제 해결 수단에 의하면, 산업용 제어장치 또는 중앙 서버에 탑재된 OTAC 서버를 통해 사용자 및 기기 인증이 가능하다.
또한, OTAC 인증 방식을 활용하여 인증된 사용자 및 기기만 산업용 제어장치에 접속 가능하다.
또한, 매번 다르게 생성되는 동적 인증 코드(OTAC)를 통해 외부 단말로부터의 접근 제어가 가능하다.
또한, 기존의 산업용 제어장치 인증에서 사용했던 패스워드(PW) 인터페이스를 수정할 필요가 없고 기존 시스템 변경 관리의 최소화가 가능하기 때문에, 비용 부담이 적다.
본 개시의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일 실시예에 따른 동적 인증 코드 기반의 인증을 이용한 산업용 제어장치의 보안 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 개시의 일 실시예에 따른 동적 인증 코드 기반의 인증을 수행하는 방법의 순서도이다.
도 3은 본 개시의 일 실시예에 따른 동적 인증 코드 기반의 인증 프로세스를 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 사용자 등록 프로세스를 설명하기 위한 도면이다.
도 5는 본 개시의 다른 실시예에 따른 동적 인증 코드 기반의 인증을 이용한 산업용 제어장치 보안 시스템을 개략적으로 나타낸 도면이다.
도 6은 본 개시의 다른 실시예에 따른 동적 인증 코드 기반의 인증을 수행하는 방법의 순서도이다.
도 7은 본 개시의 다른 실시예에 따른 동적 인증 코드 기반의 인증 프로세스를 설명하기 위한 도면이다.
도 8은 본 개시의 다른 실시예에 따른 사용자 등록 프로세스를 설명하기 위한 도면이다.
본 개시 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 개시가 실시예들의 모든 요소들을 설명하는 것은 아니며, 본 개시가 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 ‘부, 모듈, 부재, 블록’이라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '부, 모듈, 부재, 블록'이 하나의 구성요소로 구현되거나, 하나의 '부, 모듈, 부재, 블록'이 복수의 구성요소들을 포함하는 것도 가능하다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 간접적으로 연결되어 있는 경우를 포함하고, 간접적인 연결은 무선 통신망을 통해 연결되는 것을 포함한다.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
명세서 전체에서, 어떤 부재가 다른 부재 "상에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
제 1, 제 2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 전술된 용어들에 의해 제한되는 것은 아니다.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.
각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
이하 첨부된 도면들을 참고하여 본 개시의 작용 원리 및 실시예들에 대해 설명한다.
이하, 첨부된 도면을 참조하여 본 개시의 실시예를 상세하게 설명한다.
설명에 앞서 본 명세서에서 사용하는 용어의 의미를 간략히 설명한다. 그렇지만 용어의 설명은 본 명세서의 이해를 돕기 위한 것이므로, 명시적으로 본 개시를 한정하는 사항으로 기재하지 않은 경우에 본 개시의 기술적 사상을 한정하는 의미로 사용하는 것이 아님을 주의해야 한다.
본 명세서에서 “장치”는 연산처리를 수행하여 사용자에게 결과를 제공할 수 있는 다양한 장치들이 모두 포함된다. 예를 들어, 장치는, 컴퓨터, 서버 장치 및 휴대용 단말기를 모두 포함하거나, 또는 어느 하나의 형태가 될 수 있다.
여기에서, 상기 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop), 태블릿 PC, 슬레이트 PC 등을 포함할 수 있다.
상기 서버 장치는 외부 장치와 통신을 수행하여 정보를 처리하는 서버로써, 애플리케이션 서버, 컴퓨팅 서버, 데이터베이스 서버, 파일 서버, 게임 서버, 메일 서버, 프록시 서버 및 웹 서버 등을 포함할 수 있다.
상기 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), WiBro(Wireless Broadband Internet) 단말, 스마트 폰(Smart Phone) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치와 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD) 등과 같은 웨어러블 장치를 포함할 수 있다.
본 명세서에서 "문자"는 코드를 구성하는 구성요소로서, 대문자 알파벳, 소문자 알파벳, 숫자 및 특수문자 등의 전부 또는 일부를 포함한다.
본 명세서에서 "코드"는 문자가 나열된 문자열을 의미한다.
본 명세서에서 “동적 인증 코드”는 사용자 및 디바이스 중 적어도 하나의 인증을 위해 임시적으로 생성되는 OTAC(One Time Authentication Code)를 의미할 수 있다.
본 명세서에서 "인증 코드 생성 함수"는 동적 인증 코드를 생성하는 함수를 의미한다. 예를 들어, OTP(One Time Password) 등을 포함하며, 이에 한정하는 것은 아니다.
본 명세서에서 "세부코드 생성 함수"는 동적 인증 코드를 구성하는 각각의 세부코드를 생성하는 함수를 의미한다.
본 명세서에서 "세부코드 결합 함수"는 복수의 세부코드를 조합 또는 결합하여 가상코드를 생성하는 함수를 의미한다.
본 명세서에서 "단위카운트"는 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것으로 정의된 단위이다. 예를 들어, 1카운트 는 특정한 시간간격(예를 들어, 1.5초)으로 설정되어 사용될 수 있다.
본 명세서에서 “저장위치”는 사용자 등록이 요청된 시점에 해당하는 트랙 상 지점(카운트)을 의미한다.
본 명세서에서 “산업용 제어장치”는 PLC(Programmable Logic Controller), SCADA(Supervisory Control And Data Acquisition), ICS(Industrial Control Systems)을 포함할 수 있으며, 이에 제한되지 않는다.
최근 산업제어시스템을 대상으로 사이버 공격이 증가하고 있다. 산업제어시스템의 구성요소 중 산업용 제어장치(예를 들어, PLC)는 산업제어시스템의 현장장치(필드 기기) 제어 및 계측을 담당하는 핵심 구성요소이며, 산업용 제어장치를 대상으로 사이버 공격이 발생할 경우 산업제어시스템 전체의 피해를 유발할 수 있다. 이를 방지하기 위해 기존에는 패스워드(PW) 인증 방식, 아이디/패스워드(ID/PW) 인증 방식, PKI 인증 방식을 활용하였다. 그러나, 패스워드(PW) 인증 방식 및 아이디/패스워드(ID/PW) 인증 방식은 산업용 제어장치 기기별로 지정된 아이디/패스워드(ID/PW)의 관리가 어렵고, 사용자 변경에 따른 추가 관리가 어렵고, 해커가 패스워드 크래킹 소프트웨어를 통해 쉽게 해킹이 가능하다는 문제가 있다. PKI 인증 방식은 인증 인프라 비용 부담이 크고, 양방향 네트워크 환경이 필수적이고, 인증서 관리에 부담이 크다는 문제가 있다.
보다 상세하게, 기존에 패스워드만 사용하는 경우가 많았는데, 이런 경우 패스워드 탈취만으로 접근하여 설정하거나 제어할 수 있는 문제가 발생할 수 있고, 또한, 패스워드만 입력하면 되므로 어느 사용자가 접근하여 설정하거나 제어했는지 확인이 어렵다.
또한, 아이디와 패스워드를 함께 쓰더라도 두 개 모두 고정값이므로 탈취의 문제가 발생할 수 있다.
또한, 산업용 제어장치 자체가 하드웨어 스펙이 높지 않아서 PKI와 같은 모바일 기기에서 이용하던 인증 기술을 그대로 사용할 수 없을 수가 있으며, 산업용 제어장치가 서버와 같이 직접 사용자 인증을 할 필요가 있어서 기존 모바일 디바이스에 사용되던 인증기술을 적용하기 어려움이 있다.
이에, 본 개시에서는 동적 인증 코드(One-Time Authentication Cod, OTAC)를 이용한 인증 방식을 이용함으로써, 해킹 위험으로부터 산업용 제어장치를 보호할 수 있고, 기존의 인증 방식 대비 비용, 시스템 요구 스펙 등에서의 경쟁력 우위를 점할 수 있다.
이하에서는, 도 1 내지 도 4를 참조하여, 산업용 제어장치(10), 사용자 단말(20) 및 중앙 서버(30)를 이용한 산업용 제어장치의 보안 방법에 대해서 설명하도록 한다.
도 1은 본 개시의 일 실시예에 따른 동적 인증 코드 기반의 인증을 이용한 산업용 제어장치의 보안 시스템을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 일 실시예에 따른 동적 인증 코드 기반의 인증을 이용한 산업용 제어장치의 보안 시스템 (이하, 시스템)은 산업용 제어장치(10), 사용자 단말(20), 중앙 서버(30) 및 필드 기기(40)를 포함한다. 다만, 몇몇 실시예에서 시스템은 도 1에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 수의 구성요소를 포함할 수도 있다.
산업용 제어장치(10)는 실제 산헙현장에서 현장 기기(필드 기기)들의 제어를 담당하는 중추적인 역할을 한다.
도 1을 참조하면, 산업용 제어장치(10)는 CPU(Central Processing Unit)(11), 메모리(12), 통신모듈(13) 및 입출력 단자(14)를 포함할 수 있다. 다만, 몇몇 실시예에서 산업용 제어장치(10)는 도 1에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 수의 구성요소를 포함할 수도 있다.
CPU(11)는 산업용 제어장치(10)의 모든 동작을 관리 제어할 수 있다.
CPU(11)는 외부 기기로부터 입력받은 신호, 명령, 정보, 데이터를 이용하여 연산 동작을 수행할 수 있다.
메모리(12)는 산업용 제어장치(10)의 다양한 기능을 지원하는 데이터와, CPU(11)의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들을 저장할 수 있고, 본 산업용 제어장치(10)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 산업용 제어장치(10)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다.
이러한, 메모리(12)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), SSD 타입(Solid State Disk type), SDD 타입(Silicon Disk Drive type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(random access memory; RAM), SRAM(static random access memory), 롬(read-only memory; ROM), EEPROM(electrically erasable programmable read-only memory), PROM(programmable read-only memory), 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 메모리(12)는 본 산업용 제어장치(10)와는 분리되어 있으나, 유선 또는 무선으로 연결된 데이터베이스가 될 수도 있다.
통신 모듈(13)은 상기 산업용 제어장치(10)와 사용자 단말(20) 사이, 상기 산업용 제어장치(10)와 중앙 서버(30) 사이, 상기 산업용 제어장치(10)와 필드 기기(40) 사이, 상기 산업용 제어장치(10)와 통신망 사이의 무선 또는 유선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 예를 들어, 유선통신 모듈, 무선통신 모듈, 근거리 통신 모듈, 위치정보 모듈 중 적어도 하나를 포함할 수 있다.
통신망은 다양한 형태의 통신망이 이용될 수 있으며, 예컨대, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신방식 또는 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coax), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신방식이 이용될 수 있다.
한편, 통신망은 상기에 제시된 통신방식에 한정되는 것은 아니며, 상술한 통신방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.
유선 통신 모듈은, 지역 통신(Local Area Network; LAN) 모듈, 광역 통신(Wide Area Network; WAN) 모듈 또는 부가가치 통신(Value Added Network; VAN) 모듈 등 다양한 유선 통신 모듈뿐만 아니라, USB(Universal Serial Bus), HDMI(High Definition Multimedia Interface), DVI(Digital Visual Interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 다양한 케이블 통신 모듈을 포함할 수 있다.
무선 통신 모듈은 와이파이(Wifi) 모듈, 와이브로(Wireless broadband) 모듈 외에도, GSM(global System for Mobile Communication), CDMA(Code Division Multiple Access), WCDMA(Wideband Code Division Multiple Access), UMTS(universal mobile telecommunications system), TDMA(Time Division Multiple Access), LTE(Long Term Evolution), 4G, 5G, 6G 등 다양한 무선 통신 방식을 지원하는 무선 통신 모듈을 포함할 수 있다.
근거리 통신 모듈은 근거리 통신(Short range communication)을 위한 것으로서, 블루투스(Bluetooth™), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus) 기술 중 적어도 하나를 이용하여, 근거리 통신을 지원할 수 있다.
입출력 단자(14)는 현장에 있는 적어도 하나의 필드 기기(40)와 직접 연결된다. 입출력 단자(14)는 필드 기기(40)로부터 입력받은 신호를 CPU(11)로 전달하고, CPU(11)의 연산 결과를 필드 기기(40)로 전달한다.
도 1에 도시되지는 않았지만, 산업용 제어장치(10)는 사용자 단말(20) 또는 중앙 서버(30)로부터 명령, 요청, 데이터를 수신할 수 있는 인터페이스(Interface)를 더 포함할 수 있다.
사용자 단말(20)은 중앙 서버(30)가 제공하는 관리용 프로그램(산업용 제어장치의 제어를 위한 애플리케이션)을 통해 산업용 제어장치(10)의 관리 및 제어를 담당하는 사용자의 단말 장치이다.
관리용 프로그램에는 동적 인증 코드와 관련한 SDK(Software Development Kit)가 탑재되어 있을 수 있다. 사용자 단말(20)은 관리용 프로그램에 탑재된 SDK를 통해 동적 인증 코드와 관련된 모든 동작을 수행할 수 있다.
중앙 서버(30)는 산업용 제어장치(10)에서 수집한 필드 기기(40)들의 상태정보를 전달받고, 이러한 상태정보를 기초로 산업용 제어장치(10)들의 관리 및 제어를 수행하고 시스템의 전반적인 운영을 수행할 수 있다.
중앙 서버(30)는 산업용 제어장치(10)의 인증을 위한 OTAC 검증 서버(31)와 연결되어 있을 수 있다. 또는, 중앙 서버(30)는 산업용 제어장치(10)의 인증을 위한 OTAC 검증 서버(31)를 포함할 수 있다.
필드 기기(40)는 현장에서 산업용 제어장치(10)의 제어명령에 따라 동작하는 장치들을 의미한다. 예를 들어, 필드 기기(40)는 모터 밸브, 스위치, 액추에이터(actuator)를 포함할 수 있으며, 이에 제한되는 것은 아니다.
도 2는 본 개시의 일 실시예에 따른 동적 인증 코드 기반의 인증을 수행하는 방법의 순서도이다. 도 2에서는 OTAC 검증과 관련한 동작을 중앙 서버(30)에서 수행하는 것으로 설명하지만, 보다 정확하게는 OTAC 검증과 관련한 동작은 OTAC 검증 서버(31)가 수행한다.
도 2를 참조하면, 산업용 제어장치(10)의 CPU(11)는 통신 모듈(13)을 통해 중앙 서버(30)로 사용자의 단말(20)에서 생성된 동적 인증 코드에 대한 인증의 요청을 송신할 수 있다(S210).
산업용 제어장치(10)를 담당(관리 및 제어)하는 사용자가 산업용 제어장치(10)를 이용하기 위해서는, 해당 사용자가 해당 산업용 제어장치(10)의 담당 사용자가 맞는지가 확인되어야 한다.
이를 위해, 사용자는 사용자 단말(20)에 설치된 관리용 프로그램(산업용 제어장치의 제어를 위한 애플리케이션)을 통해 산업용 제어장치(10)로 인증 요청을 송신할 수 있다. 산업용 제어장치(10)가 수신된 인증 요청을 중앙 서버(30)로 전달하면, 중앙 서버(30)는 해당 사용자가 정상적인 사용자가 맞는지를 판단(즉, 해당 인증 요청이 정상적인 접근인지를 판단)할 수 있다.
구체적으로, 사용자 단말(20)에서(구체적으로, 관리용 프로그램에 탑재된 OTAC SDK) 동적 인증 코드를 생성하면, 사용자 단말(20)은 산업용 제어장치(10)로 생성된 동적 인증 코드와 함께 인증 요청을 송신할 수 있다.
이렇게 사용자 단말(20) 내의 어플리케이션(상기 관리용 프로그램)에 탑재된 SDK에서 생성된 동적 인증 코드가 통신을 통해 사용자 단말(20)에서 산업용 제어장치(10)로 전송될 수도 있지만, SDK에서 생성된 동적 인증 코드를 산업용 제어장치(10)에 연결된 인터페이스 장치에 사용자가 직접 입력함으로써 산업용 제어장치(10)가 동적 인증 코드를 획득할 수 있고, 또는 사용자가 동적 인증 코드를 인터페이스 장치에 리딩시킴으로써 산업용 제어장치(10)가 동적 인증 코드를 획득할 수도 있다.
그리고, 중앙 서버(30)가 산업용 제어장치(10)로부터 동적 인증 코드와 함께 인증 요청을 수신하면, 동적 인증 코드를 기반으로 사용자 단말(20)의 인증 요청이 정상적인 접근인지를 판단할 수 있다.
동적 인증 코드는 사용자 단말(20)에 대한 시크릿 데이터(Secret Data)를 포함할 수 있다.
중앙 서버(30)는 기 저장된 탐색 알고리즘을 이용하여 수신된 동적 인증 코드에서 시크릿 데이터를 탐색할 수 있다. 중앙 서버(30)는 탐색된 시크릿 데이터와 기 저장된 시크릿 데이터를 비교하여 동적 인증 코드에 대한 검증을 수행할 수 있다. 즉, 탐색된 시크릿 데이터와 기 저장된 시크릿 데이터가 일치하면, 동적 인증 코드가 현시점에 정상적으로 생성된 코드인 것으로 판단할 수 있다.
여기서, 시크릿 데이터는 사용자 단말(20)이 관리용 프로그램(산업용 제어장치의 제어를 위한 애플리케이션)에 등록을 요청할 때, 중앙 서버(30)에 의해 생성되는 것으로, 상기 사용자 단말(20)을 식별하기 위해 해당 사용자 단말(20)에만 부여되는 고유값일 수 있다.
또한, 시크릿 데이터는 중앙 서버(30)가 사용자의 식별정보를 탐색하는 데 이용될 수 있다. 식별정보는 사용자 단말(20)이 관리용 프로그램(산업용 제어장치의 제어를 위한 애플리케이션)에 등록을 요청할 때, 사용자가 사용자 단말(20)을 통해 입력하거나, 사용자 단말(20)에 의해 생성되는 유저 ID(Identification)일 수 있다. 그러나 이에 제한되지 않고, 식별정보는 사용자를 식별할 수 있는 정보(예를 들어, 패스워드, 직원번호 등)라면 무엇이든 가능하다.
중앙 서버(30)는 사용자 단말(20)로부터 수신된 식별정보와 중앙 서버(30)에서 생성된 시크릿 데이터를 맵핑하여 저장함으로써 사용자 등록을 완료할 수 있다.
이렇게 사용자 등록 시에, 사용자의 식별정보와 사용자 단말(20)에 대한 시크릿 데이터를 맵핑하여 저장하고, 이후 인증을 수행할 때마다 동적 인증 코드에서 사용자 단말(20)에 대한 시크릿 데이터를 탐색하고, 탐색된 시크릿 데이터를 이용해 사용자의 식별정보를 탐색할 수 있다. 이로써, 동적 인증 코드를 이용한 인증은 사용자와 사용자 단말(기기)에 대한 인증을 동시에 수행할 수가 있다.
도 2를 참조하면, 산업용 제어장치(10)의 CPU(11)는 중앙 서버(30)에 의해 수행된 인증의 결과에 기초하여 동작 모드를 변경할 수 있다(S220).
중앙 서버(30)에 의해 인증 요청이 정상적인 접근으로 판단된 경우, CPU(11)는 중앙 서버(30)로부터 사용자의 식별정보를 수신할 수 있다. 그리고 CPU(11)는 수신된 식별정보를 기초로 사용자의 로그인 처리를 수행할 수 있다.
로그인이 완료되면, CPU(11)는 산업용 제어장치(10)의 동작 모드를 비활성화 모드에서 활성화 모드로 변경할 수 있다. CPU(11)는 상기 활성화 모드 상태에서 상기 사용자 단말(20)로부터 수신되는 제어명령에 기초하여 적어도 하나의 필드 기기(40)를 제어할 수 있다.
중앙 서버(30)에 의해 인증 요청이 비정상적인 접근으로 판단된 경우, CPU(11)는 해당 인증 요청한 단말을 차단할 수 있고, 또한, 동작 모드를 비활성화 상태로 계속 유지할 수 있다.
실시예에 따라, 동작 모드가 활성화인 상태에서 수신된 인증 요청이 비정상적 접근인 경우, CPU(11)는 해당 인증 요청한 단말을 차단할 수 있고, 또한, 동작 모드를 활성화 상태에서 비활성화 상태로 전환할 수 있다.
이하에서는, 도 3 및 도 4를 참조하여 동적 인증 코드 기반의 인증 프로세스와 사용자 등록 프로세스를 순차적으로 설명하도록 한다. 도 3 및 도 4에 도시된 OTAC 생성 모듈(21)은 위에서 설명한 동적 인증 코드와 관련한 SDK(Software Development Kit)를 의미할 수 있다. 또한, OTAC 검증 서버(31)는 중앙 서버(30)에 탑재(포함)되거나 연결될 수 있다. 또한, 설명의 편의를 위해 산업용 제어장치(10)가 동작을 수행하는 것으로 설명하지만, 이는 산업용 제어장치(10)에 포함된 CPU(11)에 의해 수행되는 것으로 이해될 수 있다.
도 3은 본 개시의 일 실시예에 따른 동적 인증 코드 기반의 인증 프로세스를 설명하기 위한 도면이다.
도 3을 참조하면, OTAC 생성 모듈(21)은 동적 인증 코드(OTAC)를 생성할 수 있다(S301).
동적 인증 코드(OTAC)는 하나 이상의 시드 데이터를 이용하여 생성될 수 있댜. 시드 데이터는 디바이스(사용자 단말 또는 관리용 프로그램) 고유값, 장치 정보, 시간 데이터를 포함할 수 있지만, 이에 제한되는 것은 아니다.
여기서, 디바이스 고유값은 상술한 사용자 단말(20)에 대한 시크릿 데이터를 의미한다. 디바이스 고유값은 사용자 단말(20) 또는 사용자 단말(20)에 설치된 관리용 프로그램을 식별하기 위한 값이다.
장치 정보는 산업용 제어장치(10)의 시리얼 넘버를 의미할 수 있지만, 이에 제한되는 것은 아니다.
시간 데이터는 인증 요청 시점 또는 동적 인증 코드 생성 시점의 시간 데이터를 의미할 수 있다.
구체적으로, 동적 인증 코드는 코드 생성 함수를 이용하여 상기 하나 이상의 시드 데이터를 기반으로 생성될 수 있다. 여기서, 코드 생성 함수는 사용자의 등록 시점에 구동이 시작될 수 있다.
OTAC 생성 모듈(21)이 동적 인증 코드를 생성하기 전에, 사용자는 사용자 단말(20)을 통해 활성화시키려는(로그인하려는) 산업용 제어장치(10)를 선택할 수 있다. 이렇게 선택된 산업용 제어장치(10)의 정보는 OTAC 생성 모듈(21)로 전달되어 동적 인증 코드를 생성하기 위한 시드 데이터로써 활용될 수 있다.
도 3을 참조하면, OTAC 생성 모듈(21)은 동적 인증 코드(OTAC)를 사용자 단말(20)로 전달할 수 있다(S302).
사용자 단말(20)은 동적 인증 코드(OTAC) 기반의 인증을 요청하되, 해당 인증 요청은 산업용 제어장치(10) 및 중앙 서버(30)를 거쳐서 OTAC 검증 서버(31)로 전달 될 수 있다(S303, S304, S305).
보다 상세하게, 사용자 단말(20)은 상기 선택된 산업용 제어장치(10)로 인증 요청을 전달할 수 있다.
OTAC 검증 서버(31)는 동적 인증 코드(OTAC) 검증을 통해 요청된 인증 수행할 수 있다(S306).
OTAC 검증 서버(31)는 수신된 동적 인증 코드에 포함된 시드 데이터와 기 저장된 시드 데이터 간의 비교를 수행하고, 두 값의 일치 여부에 따라 동적 인증 코드가 현 시점에 정상적인 사용자 단말에서 생성된 것인지를 판단할 수 있다.
실시예에 따라, OTAC 검증 서버(31)는 탐색 알고리즘을 동적 인증 코드에 적용하여 시크릿 데이터를 탐색하고, 탐색된 시크릿 데이터를 상기 동적 인증 코드에 포함된 시크릿 데이터와 비교하여 검증을 수행할 수 있다.
검증 결과 두 값이 일치하여 인증 요청이 정상적인 접근인 것으로 판단되면, OTAC 검증 서버(31)는 시크릿 데이터에 맵핑되어 저장된 사용자의 식별정보를 탐색할 수 있다.
도 3을 참조하면, OTAC 검증 서버(31)는 탐색된 식별정보(즉, User ID)를 중앙 서버(30)를 거쳐 산업용 제어장치(10)로 전달할 수 있다(S307, S308).
보다 상세하게, OTAC 검증 서버(31)는 동적 인증 코드에 포함된 산업용 제어장치의 정보를 기초로, 해당 산업용 제어장치(10)로 탐색된 식별정보(즉, User ID)를 제공할 수 있다.
도 3을 참조하면, 산업용 제어장치(10)는 수신된 식별정보(즉, User ID)를 이용하여 사용자 로그인 처리를 수행할 수 있다(S309).
로그인이 완료되면, 산업용 제어장치(10)는 활성화 상태가 되고, 사용자는 사용자 단말(20)을 이용하여 산업용 제어장치(10)의 관리 및 제어를 수행할 수 있게 된다.
도 4는 본 개시의 일 실시예에 따른 사용자 등록 프로세스를 설명하기 위한 도면이다.
도 4를 참조하면, 사용자 단말(20)은 사용자 등록을 요청하되, 해당 등록 요청은 산업용 제어장치(10) 및 중앙 서버(30)를 거쳐서 OTAC 검증 서버(31)로 전달 될 수 있다(S401, S402, S403).
사용자는 담당 산업용 제어장치(10)에 대한 사용자 등록을 수행해야 한다. 보다 상세하게, 사용자는 관리용 프로그램을 통해 담당하게 될 산업용 제어장치(10)에 대한 사용자 등록을 요청할 수 있다. 이때, 사용자는 담당하게 될 산업용 제어장치(10)의 정보 및 자신의 식별정보를 입력할 수 있다.
사용자 단말(20)은 입력된 산업용 제어장치(10)의 정보에 기초하여 해당 산업용 제어장치(10)로 사용자의 식별정보와 함께 등록 요청을 송신할 수 있다.
도 4를 참조하면, OTAC 검증 서버(31)는 등록을 요청한 사용자 단말(20)(또는, 사용자 단말(20)에 설치된 관리용 프로그램)을 식별하기 위한 시크릿 데이터를 생성 및 저장할 수 있다(S404).
보다 상세하게, OTAC 검증 서버(31)는 생성된 시크릿 데이터를 탐색 알고리즘 내의 특정한 저장위치에 저장할 수 있다. 이때, OTAC 검증 서버(31)는 특정한 저장위치에 저장된 시크릿 데이터에 상기 사용자의 식별정보를 맵핑하여 저장할 수 있다. 실시예에 따라, 시크릿 데이터에 사용자의 식별정보뿐만 아니라 산업용 제어장치(10)의 정보도 함께 맵핑되어 저장될 수 있다.
이와 같이 OTAC 검증 서버(31) 내에서 사용자 등록이 완료될 수 있다. 이때, 사용자 단말(20)에 대한 코드 생성 함수의 구동이 시작되게 된다. 이에 따라, OTAC 검증 서버(31)는 코드 생성 함수로 생성된 동적 인증 코드를 탐색 알고리즘에 적용하여 탐색 알고리즘 내의 시크릿 데이터의 저장위치를 탐색할 수 있게 된다.
도 4를 참조하면, OTAC 검증 서버(31)는 시크릿 데이터를 중앙 서버(30), 산업용 제어장치(10)를 거쳐 사용자 단말(20)로 전달할 수 있다(S405, S406, S407)
사용자 단말(20)은 시크릿 데이터를 저장하고(S408), 시크릿 데이터를 OTAC 생성 모듈(21)로 전달할 수 있다(S409). 이에 따라, OTAC 생성 모듈(21)은 시크릿 데이터를 이용하여 동적 인증 코드를 생성할 수 있게 된다.
한편, 사용자가 관리하는 산업용 제어장치(10)가 여러 개인 경우, 각 산업용 제어장치(10)에 대해서 상이한 코드 생성 함수가 할당될 수 있다. 그리고 각 코드 생성 함수는 그 구동 시점이 상이할 수 있다. 즉, 각각의 산업용 제어장치(10)에 대한 사용자 등록이 완료된 시점에 해당 코드 생성 함수의 구동이 시작될 수 있다. 예를 들어, 산업용 제어장치 A에 대한 사용자 등록이 완료된 시점에 코드 생성 함수 A가 구동을 시작하고, 산업용 제어장치 B에 대한 사용자 등록이 완료된 시점에 코드 생성 함수 B가 구동을 시작할 수 있다. 이에 따라, 사용자가 산업용 제어장치 A를 제어하고자 인증 요청을 신청한 경우, 코드 생성 함수 A를 이용하여 동적 인증 코드가 생성되고, 사용자가 산업용 제어장치 B를 제어하고자 인증 요청을 신청한 경우, 코드 생성 함수 B를 이용하여 동적 인증 코드가 생성될 수 있다.
이하에서는, 도 5 내지 도 8을 참조하여, 산업용 제어장치(10) 및 사용자 단말(20)을 이용한 산업용 제어장치의 보안 방법에 대해서 설명하도록 한다.
도 5는 본 개시의 다른 실시예에 따른 동적 인증 코드 기반의 인증을 이용한 산업용 제어장치의 보안 시스템을 개략적으로 나타낸 도면이다.
도 5를 참조하면, 다른 실시예에 따른 동적 인증 코드 기반의 인증을 이용한 산업용 제어장치의 보안 시스템(이하, 시스템)은 산업용 제어장치(10), 사용자 단말(20) 및 필드 기기(40)를 포함한다. 다만, 몇몇 실시예에서 시스템은 도 5에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 수의 구성요소를 포함할 수도 있다.
산업용 제어장치(10), 사용자 단말(20) 및 필드 기기(40)에 대한 설명은 상기 도 1을 참조하여 설명한 내용과 중복되므로 생략하도록 한다.
다만, 도 1 내지 도 4를 참조하여 설명한 실시예에서는 산업용 제어장치(10)의 인증을 위한 OTAC 검증 서버(31)가 중앙 서버(30)에 포함되거나 연결되는 것으로 설명하였지만, 이하 도 5 내지 도 8을 참조하여 설명할 실시예에서는 산업용 제어장치(10)의 인증을 위한 OTAC 검증 서버(15)가 산업용 제어장치(10)에 포함되거나 연결될 수 있다. 여기서, OTAC 검증 서버(31)와 OTAC 검증 서버(15)는 동일한 동작을 수행한다.
도 6은 본 개시의 다른 실시예에 따른 동적 인증 코드 기반의 인증을 수행하는 방법의 순서도이다. 도 6에서는 OTAC 검증과 관련한 동작을 산업용 제어장치(10)에서 수행하는 것으로 설명하지만, 보다 정확하게는 OTAC 검증과 관련한 동작은 OTAC 검증 서버(15)가 수행한다.
도 6을 참조하면, 산업용 제어장치(10)의 CPU(11)는 통신 모듈(13)을 통해 사용자의 단말(20)에서 생성된 동적 인증 코드에 대한 인증이 요청되면, 요청된 인증을 수행할 수 있다(S610).
산업용 제어장치(10)를 담당(관리 및 제어)하는 사용자가 산업용 제어장치(10)를 이용하기 위해서는, 해당 사용자가 해당 산업용 제어장치(10)의 담당 사용자가 맞는지가 확인되어야 한다.
이를 위해, 사용자는 사용자 단말(20)에 설치된 관리용 프로그램(산업용 제어장치의 제어를 위한 애플리케이션)을 통해 산업용 제어장치(10)로 인증 요청을 송신할 수 있다. 산업용 제어장치(10)는 수신된 인증 요청에 대한 응답으로 해당 사용자가 정상적인 사용자가 맞는지를 판단(즉, 해당 인증 요청이 정상적인 접근인지를 판단)할 수 있다.
구체적으로, 사용자 단말(20)에서(구체적으로, 관리용 프로그램에 탑재된 OTAC SDK) 동적 인증 코드를 생성하면, 사용자 단말(20)은 산업용 제어장치(10)로 생성된 동적 인증 코드와 함께 인증 요청을 송신할 수 있다.
이렇게 사용자 단말(20) 내의 어플리케이션(상기 관리용 프로그램)에 탑재된 SDK에서 생성된 동적 인증 코드가 통신을 통해 사용자 단말(20)에서 산업용 제어장치(10)로 전송될 수도 있지만, SDK에서 생성된 동적 인증 코드를 산업용 제어장치(10)에 연결된 인터페이스 장치에 사용자가 직접 입력함으로써 산업용 제어장치(10)가 동적 인증 코드를 획득할 수 있고, 또는 사용자가 동적 인증 코드를 인터페이스 장치에 리딩시킴으로써 산업용 제어장치(10)가 동적 인증 코드를 획득할 수도 있다.
그리고, 산업용 제어장치(10)는 동적 인증 코드를 기반으로 사용자 단말(20)의 인증 요청이 정상적인 접근인지를 판단할 수 있다.
동적 인증 코드는 사용자 단말(20)에 대한 시크릿 데이터(Secret Data)를 포함할 수 있다.
산업용 제어장치(10)는 기 저장된 탐색 알고리즘을 이용하여 수신된 동적 인증 코드에서 시크릿 데이터를 탐색할 수 있다. 산업용 제어장치(10)는 탐색된 시크릿 데이터와 기 저장된 시크릿 데이터를 비교하여 동적 인증 코드에 대한 검증을 수행할 수 있다. 즉, 탐색된 시크릿 데이터와 기 저장된 시크릿 데이터가 일치하면, 동적 인증 코드가 현시점에 정상적으로 생성된 코드인 것으로 판단할 수 있다.
여기서, 시크릿 데이터는 사용자 단말(20)이 관리용 프로그램(산업용 제어장치의 제어를 위한 애플리케이션)에 등록을 요청할 때, 산업용 제어장치(10)에 의해 생성되는 것으로, 상기 사용자 단말(20)을 식별하기 위해 해당 사용자 단말(20)에만 부여되는 고유값일 수 있다.
또한, 시크릿 데이터는 산업용 제어장치(10)가 사용자의 식별정보를 탐색하는 데 이용될 수 있다. 식별정보는 사용자 단말(20)이 관리용 프로그램(산업용 제어장치의 제어를 위한 애플리케이션)에 등록을 요청할 때, 사용자가 사용자 단말(20)을 통해 입력하거나, 사용자 단말(20)에 의해 생성되는 유저 ID(Identification)일 수 있다. 그러나 이에 제한되지 않고, 식별정보는 사용자를 식별할 수 있는 정보(예를 들어, 패스워드, 직원번호 등)라면 무엇이든 가능하다.
산업용 제어장치(10)는 사용자 단말(20)로부터 수신된 식별정보와 산업용 제어장치(10)에서 생성된 시크릿 데이터를 맵핑하여 저장함으로써 사용자 등록을 완료할 수 있다.
이렇게 사용자 등록 시에, 사용자의 식별정보와 사용자 단말(20)에 대한 시크릿 데이터를 맵핑하여 저장하고, 이후 인증을 수행할 때마다 동적 인증 코드에서 사용자 단말(20)에 대한 시크릿 데이터를 탐색하고, 탐색된 시크릿 데이터를 이용해 사용자의 식별정보를 탐색할 수 있다. 이로써, 동적 인증 코드를 이용한 인증은 사용자와 사용자 단말(기기)에 대한 인증을 동시에 수행할 수가 있다.
도 6을 참조하면, 산업용 제어장치(10)의 CPU(11)는 인증의 수행 결과에 기초하여 동작 모드를 변경할 수 있다(S620).
인증 요청이 정상적인 접근으로 판단된 경우, CPU(11)는 탐색된 식별정보를 기초로 사용자의 로그인 처리를 수행할 수 있다.
로그인이 완료되면, CPU(11)는 산업용 제어장치(10)의 동작 모드를 비활성화 모드에서 활성화 모드로 변경할 수 있다. CPU(11)는 상기 활성화 모드 상태에서 상기 사용자 단말(20)로부터 수신되는 제어명령에 기초하여 적어도 하나의 필드 기기(40)를 제어할 수 있다.
인증 요청이 비정상적인 접근으로 판단된 경우, CPU(11)는 해당 인증 요청한 단말을 차단할 수 있고, 또한, 동작 모드를 비활성화 상태로 계속 유지할 수 있다.
실시예에 따라, 동작 모드가 활성화인 상태에서 수신된 인증 요청이 비정상적 접근인 경우, CPU(11)는 해당 인증 요청한 단말을 차단할 수 있고, 또한, 동작 모드를 활성화 상태에서 비활성화 상태로 전환할 수 있다.
이하에서는, 도 7 및 도 8을 참조하여 동적 인증 코드 기반의 인증 프로세스와 사용자 등록 프로세스를 순차적으로 설명하도록 한다. 도 7 및 도 8에 도시된 OTAC 생성 모듈(21)은 위에서 설명한 동적 인증 코드와 관련한 SDK(Software Development Kit)를 의미할 수 있다. 또한, OTAC 검증 서버(15)는 산업용 제어장치(10)에 탑재(포함)되거나 연결될 수 있다. 또한, 설명의 편의를 위해 산업용 제어장치(10)가 동작을 수행하는 것으로 설명하지만, 이는 산업용 제어장치(10)에 포함된 CPU(11)에 의해 수행되는 것으로 이해될 수 있다.
도 7은 본 개시의 다른 실시예에 따른 동적 인증 코드 기반의 인증 프로세스를 설명하기 위한 도면이다.
도 7을 참조하면, OTAC 생성 모듈(21)은 동적 인증 코드(OTAC)를 생성할 수 있다(S701).
동적 인증 코드(OTAC)는 하나 이상의 시드 데이터를 이용하여 생성될 수 있댜. 시드 데이터는 디바이스(사용자 단말 또는 관리용 프로그램) 고유값, 장치 정보, 시간 데이터를 포함할 수 있지만, 이에 제한되는 것은 아니다.
여기서, 디바이스 고유값은 상술한 사용자 단말(20)에 대한 시크릿 데이터를 의미한다. 디바이스 고유값은 사용자 단말(20) 또는 사용자 단말(20)에 설치된 관리용 프로그램을 식별하기 위한 값이다.
장치 정보는 산업용 제어장치(10)의 시리얼 넘버를 의미할 수 있지만, 이에 제한되는 것은 아니다.
시간 데이터는 인증 요청 시점 또는 동적 인증 코드 생성 시점의 시간 데이터를 의미할 수 있다.
구체적으로, 동적 인증 코드는 코드 생성 함수를 이용하여 상기 하나 이상의 시드 데이터를 기반으로 생성될 수 있다. 여기서, 코드 생성 함수는 사용자의 등록 시점에 구동이 시작될 수 있다.
OTAC 생성 모듈(21)이 동적 인증 코드를 생성하기 전에, 사용자는 사용자 단말(20)을 통해 활성화시키려는(로그인하려는) 산업용 제어장치(10)를 선택할 수 있다. 이렇게 선택된 산업용 제어장치(10)의 정보는 OTAC 생성 모듈(21)로 전달되어 동적 인증 코드를 생성하기 위한 시드 데이터로써 활용될 수 있다.
도 7을 참조하면, OTAC 생성 모듈(21)은 동적 인증 코드(OTAC)를 사용자 단말(20)로 전달할 수 있다(S702).
사용자 단말(20)은 동적 인증 코드(OTAC) 기반의 인증을 요청하되, 해당 인증 요청은 산업용 제어장치(10)를 거쳐서 OTAC 검증 서버(15)로 전달 될 수 있다(S703, S704).
보다 상세하게, 사용자 단말(20)은 상기 선택된 산업용 제어장치(10)로 인증 요청을 전달할 수 있다.
OTAC 검증 서버(15)는 동적 인증 코드(OTAC) 검증을 통해 요청된 인증 수행할 수 있다(S705).
OTAC 검증 서버(15)는 수신된 동적 인증 코드에 포함된 시드 데이터와 기 저장된 시드 데이터 간의 비교를 수행하고, 두 값의 일치 여부에 따라 동적 인증 코드가 현 시점에 정상적인 사용자 단말에서 생성된 것인지를 판단할 수 있다.
실시예에 따라, OTAC 검증 서버(15)는 탐색 알고리즘을 동적 인증 코드에 적용하여 시크릿 데이터를 탐색하고, 탐색된 시크릿 데이터를 상기 동적 인증 코드에 포함된 시크릿 데이터와 비교하여 검증을 수행할 수 있다.
검증 결과 두 값이 일치하여 인증 요청이 정상적인 접근인 것으로 판단되면, OTAC 검증 서버(15)는 시크릿 데이터에 맵핑되어 저장된 사용자의 식별정보를 탐색할 수 있다.
도 7을 참조하면, OTAC 검증 서버(15)는 탐색된 식별정보(즉, User ID)를 산업용 제어장치(10)로 전달할 수 있다(S306).
산업용 제어장치(10)는 수신된 식별정보(즉, User ID)를 이용하여 사용자 로그인 처리를 수행할 수 있다(S308).
로그인이 완료되면, 산업용 제어장치(10)는 활성화 상태가 되고, 사용자는 사용자 단말(20)을 이용하여 산업용 제어장치(10)의 관리 및 제어를 수행할 수 있게 된다.
도 8은 본 개시의 다른 실시예에 따른 사용자 등록 프로세스를 설명하기 위한 도면이다.
도 8을 참조하면, 사용자 단말(20)은 사용자 등록을 요청하되, 해당 등록 요청은 산업용 제어장치(10)를 거쳐서 OTAC 검증 서버(15)로 전달 될 수 있다(S801, S802).
사용자는 담당 산업용 제어장치(10)에 대한 사용자 등록을 수행해야 한다. 보다 상세하게, 사용자는 관리용 프로그램을 통해 담당하게 될 산업용 제어장치(10)에 대한 사용자 등록을 요청할 수 있다. 이때, 사용자는 담당하게 될 산업용 제어장치(10)의 정보 및 자신의 식별정보를 입력할 수 있다.
사용자 단말(20)은 입력된 산업용 제어장치(10)의 정보에 기초하여 해당 산업용 제어장치(10)로 사용자의 식별정보와 함께 등록 요청을 송신할 수 있다.
도 8을 참조하면, OTAC 검증 서버(15)는 등록을 요청한 사용자 단말(20)(또는, 사용자 단말(20)에 설치된 관리용 프로그램)을 식별하기 위한 시크릿 데이터를 생성 및 저장할 수 있다(S803).
보다 상세하게, OTAC 검증 서버(15)는 생성된 시크릿 데이터를 탐색 알고리즘 내의 특정한 저장위치에 저장할 수 있다. 이때, OTAC 검증 서버(15)는 특정한 저장위치에 저장된 시크릿 데이터에 상기 사용자의 식별정보를 맵핑하여 저장할 수 있다. 실시예에 따라, 시크릿 데이터에 사용자의 식별정보뿐만 아니라 산업용 제어장치(10)의 정보도 함께 맵핑되어 저장될 수 있다.
이와 같이 OTAC 검증 서버(15) 내에서 사용자 등록이 완료될 수 있다. 이때, 사용자 단말(20)에 대한 코드 생성 함수의 구동이 시작되게 된다. 이에 따라, OTAC 검증 서버(15)는 코드 생성 함수로 생성된 동적 인증 코드를 탐색 알고리즘에 적용하여 탐색 알고리즘 내의 시크릿 데이터의 저장위치를 탐색할 수 있게 된다.
도 8을 참조하면, OTAC 검증 서버(15)는 시크릿 데이터를 산업용 제어장치(10)를 거쳐 사용자 단말(20)로 전달할 수 있다(S804, S805)
사용자 단말(20)은 시크릿 데이터를 저장하고(S806), 시크릿 데이터를 OTAC 생성 모듈(21)로 전달할 수 있다(S807). 이에 따라, OTAC 생성 모듈(21)은 시크릿 데이터를 이용하여 동적 인증 코드를 생성할 수 있게 된다.
도 4 내지 도 8을 참조하여 설명한 실시예에서는 사용자 단말(20)이 산업용 제어장치(10)로 동적 인증 코드를 전달할 때에만 네트워크 연결이 필요하다. 즉, 동적 인증 코드의 검증 및 그 결과에 따른 산업용 제어장치(10)의 제어는 하나의 장치(산업용 제어장치(10) 또는 산업용 제어장치(10)에 탑재된 OTAC 검증 서버(15))에서 수행되기 때문에, 양방향 통신이 필요없다.
한편, 사용자가 관리하는 산업용 제어장치(10)가 여러 개인 경우, 각 산업용 제어장치(10)에 대해서 상이한 코드 생성 함수가 할당될 수 있다. 그리고 각 코드 생성 함수는 그 구동 시점이 상이할 수 있다. 즉, 각각의 산업용 제어장치(10)에 대한 사용자 등록이 완료된 시점에 해당 코드 생성 함수의 구동이 시작될 수 있다. 예를 들어, 산업용 제어장치 A에 대한 사용자 등록이 완료된 시점에 코드 생성 함수 A가 구동을 시작하고, 산업용 제어장치 B에 대한 사용자 등록이 완료된 시점에 코드 생성 함수 B가 구동을 시작할 수 있다. 이에 따라, 사용자가 산업용 제어장치 A를 제어하고자 인증 요청을 신청한 경우, 코드 생성 함수 A를 이용하여 동적 인증 코드가 생성되고, 사용자가 산업용 제어장치 B를 제어하고자 인증 요청을 신청한 경우, 코드 생성 함수 B를 이용하여 동적 인증 코드가 생성될 수 있다.
이하에서는 OTAC 생성 모듈(21)이 동적 인증 코드를 생성하는 방법에 대해서 구체적으로 설명하도록 한다.
관리용 프로그램에 탑재된 SDK는 하나 또는 복수의 세부코드를 생성할 수 있다. 세부코드는 동적 인증 코드를 구성하는 일부 코드를 의미하는데, 동적 인증 코드는 세부코드만으로 구성될 수도 있으며, 또는 OTP함수에 의해 생성된 가상보안코드에 하나 또는 복수의 세부코드를 결합하여 최종 동적 인증 코드(OTAC)의 형태로 형성될 수도 있다.
SDK는 동적 인증 코드를 생성하는 코드 생성 함수를 포함하고, 코드 생성 함수는 하나 이상의 세부코드를 생성하는 세부코드 생성 함수와, 상기 세부코드를 결합하여 가상코드를 생성하는 세부코드 결합 함수(즉, 복수의 세부코드를 조합하는 규칙)를 포함한다.
즉, 동적 인증 코드가 복수의 세부코드를 포함하는 경우, 코드 생성 함수는 복수의 세부코드 생성 함수를 이용하여 복수의 세부코드를 생성하고, 상기 세부코드 결합 함수를 통해 상기 복수의 세부코드를 기 설정된 조합으로 결합하여 동적 인증 코드를 생성한다.
복수의 세부코드 간에는 OTAC 검증 서버(15, 31)가 사용자 또는 디바이스를 식별할 수 있는 정보의 저장위치를 탐색하기 위해 이용되는 상관관계를 가진다. 즉, OTAC 검증 서버(15, 31)는 탐색 알고리즘을 구비하고, 상기 탐색 알고리즘은 동적 인증 코드에 포함된 복수의 세부코드를 추출하고, 상기 복수의 세부코드의 상관관계를 기반으로 사용자 또는 디바이스에 부여된 고유값(예를 들어, 시크릿 데이터)의 저장위치를 탐색한다. 상기 복수의 세부코드가 가지는 상관 관계에 대한 일 실시예로, 탐색 알고리즘은 복수의 세부코드 중 하나 이상의 세부코드에 대응하는 경유지점으로부터 상기 복수의 세부코드 간의 상관 관계를 기반으로 연산하여 상기 사용자 또는 디바이스의 고유값(예를 들어, 시크릿 데이터)의 저장위치를 탐색할 수 있다. 이때, 상기 경유지점은 하나 또는 복수일 수 있으며 개수 및 순서에 제한은 없다.
또한, 복수의 세부코드의 일 실시예로, 복수의 세부코드는 제1코드 및 제2코드를 포함할 수 있고, SDK는 세부코드 생성 함수로 제1함수 와 제2함수를 포함하여, 제1코드 및 제2코드를 생성한다. 제1코드와 제2코드는 OTAC 검증 서버(15, 31) 내에서 사용자 또는 디바이스의 고유값(예를 들어, 시크릿 데이터)의 저장위치를 탐색하기 위한 상관관계를 가지나, SDK는 보안성을 높이기 위해 제1코드를 생성하는 제1함수와 제2코드를 생성하는 제2함수를 세부코드 생성 함수로 포함할 뿐, 제1코드와 제2코드의 상관관계에 대한 데이터를 포함하지 않을 수 있다.
제1코드와 제2코드의 상관관계의 구체적인 예로, 제1코드와 제2코드는 상기 고유값의 저장위치를 탐색하기 위한 각각의 역할을 수행할 수 있다. 즉, 제1코드는 상기 경유지점에 대한 정보를 포함하고, 제2코드는 상기 경유 지점으로부터 상기 고유값의 저장위치에 도달할 수 있는 연산에 필요한 정보를 포함할 수 있다.
한편, 본 개시의 일 실시예로 제1코드는 제1카운트를 기반으로 생성 되며, 제2코드는 제2카운트를 기반으로 생성될 수 있다. 이때, 제1카운트는 OTAC 생성 모듈(21) 또는 OTAC 검증 서버(15, 31)에서 코드 생성 함수가 구동된 최초시점으로부터 동적 인증 코드가 생성된 시점까지 경과된 단위 카운트의 개수이고, 제2카운트는 사용자 또는 디바이스의 고유값(예를 들어, 시크릿 데이터)이 OTAC 검증 서버(15, 31)에 저장된 시점으로부터 경과된 단위 카운트 개수를 포함할 수 있다.
즉, 제1코드를 생성하는 제1함수는 제1카운트에 대응되는 특정한 코 드값을 제공하는 함수이고, 제2코드를 생성하는 제2함수는 제2카운트에 대응되는 특정한 코드값을 제공하는 함수이다.
이하에서는, OTAC 생성 모듈(21)이 동적 인증 코드를 검증하는 방법에 대하여 구체적으로 설명하도록 한다.
본 개시의 일 실시예로, OTAC 검증 서버(15, 31)가 상기 사용자 단말(20)로부터 상기 동적 인증 코드를 수신하면, 상기 동적 인증 코드를 수신한 시간 데이터 및 상기 동적 인증 코드의 시간 데이터를 비교하여 상기 동적 인증 코드를 검증할 수 있다.
구체적으로, OTAC 검증 서버(15, 31)에서 동적 인증 코드가 정상적으로 생성된 것인지를 검증한다. 즉, OTAC 검증 서버(15, 31)는 동적 인증 코드를 수신한 후 OTAC 검증 서버(15, 31)에 저장된 정보(즉, 코드 생성 함수 및 시드 데이터)를 바탕으로 상기 수신한 동적 인증 코드가 현 시점에 정상적으로 생성된 것인지를 확인하여 동적 인증 코드의 정상여부를 판단한다. OTAC 검증 서버(15, 31)는 동적 인증 코드에 코드 생성 함수의 역함수를 적용하여 동적 인증 코드가 생성된 시점에 상응하는 카운트를 찾아낸다. 동적 인증 코드의 전송시간이나 딜레이에 의해 동적 인증 코드가 생성된 시점과 OTAC 검증 서버(15, 31)가 동적 인증 코드를 수신한 시점의 차이가 존재함에 따라 OTAC 검증 서버(15, 31)가 동적 인증 코드를 수신한 카운트와 인증용 가상코드에 해당하는 OTP번호를 생성한 카운트가 일치하지 않을 수도 있으므로, OTAC 검증 서버(15, 31)는 동적 인증 코드를 수신한 카운트로부터 오차범위를 허용한다.
한편, 본 개시의 일 실시예로 OTAC 검증 서버(15, 31)는 상기 동적 인증 코드를 기반으로 사용자 또는 디바이스의 고유값(예를 들어, 시크릿 데이터)의 저장위치를 탐색하여 상기 고유값을 추출하고, 상기 추출한 고유값을 기반으로 사용자 또는 기기 인증을 수행할 수 있다.
도 2 및 도 6은 단계들을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 2 및 도 6에 기재된 순서를 변경하여 실행하거나 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 2 및 도 6은 시계열적인 순서로 한정되는 것은 아니다.
한편, 상술한 설명에서, 도 2 및 도 6에 기재된 단계들은 본 개시의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
한편, 개시된 실시예들은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 프로그램 모듈을 생성하여 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 개시가 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.

Claims (10)

  1. 사용자의 단말 및 중앙 서버와 통신을 수행하는 통신 모듈; 및
    상기 통신 모듈을 통해 상기 중앙 서버로 상기 사용자 단말에서 생성된 동적 인증 코드에 대한 인증의 요청을 송신하고, 상기 중앙 서버에 의해 수행된 상기 인증의 결과에 기초하여 동작 모드를 변경하는 CPU(Central Processing Unit);를 포함하고,
    상기 인증은, 상기 동적 인증 코드를 기반으로 상기 인증 요청이 정상적인 접근인지를 판단하는 것이고,
    상기 동적 인증 코드는, 상기 사용자 단말로부터 수신되거나, 상기 사용자에 의해 인터페이스 장치를 통해 입력 또는 리딩되는,
    동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치.
  2. 제1 항에 있어서,
    상기 인증 요청이 정상적인 접근으로 판단된 경우, 상기 CPU는,
    상기 중앙 서버로부터 상기 사용자의 식별정보를 수신하고, 상기 식별정보를 기초로 로그인 처리를 수행하는,
    동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치.
  3. 제2 항에 있어서,
    상기 동적 인증 코드는, 상기 사용자 단말에 대한 시크릿 데이터(Secret Data)를 포함하고,
    상기 시크릿 데이터는, 상기 중앙 서버가 상기 식별정보를 탐색하는 데 이용되는,
    동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치.
  4. 제3 항에 있어서,
    상기 시크릿 데이터는, 상기 사용자 단말이 산업용 제어장치의 제어를 위한 애플리케이션에 등록 요청 시, 상기 중앙 서버에 의해 생성되고, 상기 사용자 단말을 식별하기 위해 상기 사용자 단말에만 부여되는 고유값인,
    동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치.
  5. 제2 항에 있어서,
    상기 식별정보는, 상기 사용자 단말이 산업용 제어장치의 제어를 위한 애플리케이션에 등록 요청 시, 상기 사용자 단말에 의해 입력되거나 생성되는 유저 ID(Identification)인,
    동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치.
  6. 제2 항에 있어서,
    상기 로그인이 완료되면, 상기 CPU는,
    상기 동작 모드를 비활성화 모드에서 활성화 모드로 변경하고, 상기 활성화 모드 상태에서 상기 사용자 단말로부터 수신되는 제어명령에 기초하여 적어도 하나의 필드 기기를 제어하는,
    동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치.
  7. 사용자의 단말과 통신을 수행하는 통신 모듈; 및
    상기 사용자 단말에서 생성된 동적 인증 코드에 대한 인증이 요청되면, 상기 요청된 인증을 수행하고, 상기 인증의 수행 결과에 기초하여 동작 모드를 변경하는 CPU(Central Processing Unit);를 포함하고,
    상기 인증은, 상기 동적 인증 코드를 기반으로 상기 인증 요청이 정상적인 접근인지를 판단하는 것이고,
    상기 동적 인증 코드는, 상기 사용자 단말로부터 수신되거나, 상기 사용자에 의해 인터페이스 장치를 통해 입력 또는 리딩되는,
    동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치.
  8. 제7 항에 있어서,
    상기 인증 요청이 정상적인 접근으로 판단된 경우, 상기 CPU는,
    상기 사용자의 식별정보를 기초로 로그인 처리를 수행하고,
    상기 로그인이 완료되면, 상기 동작 모드를 비활성화 모드에서 활성화 모드로 변경하고, 상기 활성화 모드 상태에서 상기 사용자 단말로부터 수신되는 제어명령에 기초하여 적어도 하나의 필드 기기를 제어하는,
    동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치.
  9. 산업용 제어장치에 의해 수행되는 방법에 있어서,
    사용자의 단말에서 생성된 동적 인증 코드에 대한 인증의 요청을 중앙 서버로 송신하는 단계; 및
    상기 중앙 서버에 의해 수행된 상기 인증의 결과에 기초하여 동작 모드를 변경하는 단계;를 포함하고,
    상기 인증은, 상기 동적 인증 코드를 기반으로 상기 인증 요청이 정상적인 접근인지를 판단하는 것이고,
    상기 동적 인증 코드는, 상기 사용자 단말로부터 수신되거나, 상기 사용자에 의해 인터페이스 장치를 통해 입력 또는 리딩되는,
    동적 인증 코드 기반의 인증을 수행하는 방법.
  10. 산업용 제어장치에 의해 수행되는 방법에 있어서,
    사용자의 단말에서 생성된 동적 인증 코드에 대한 인증이 요청되면, 상기 요청된 인증을 수행하는 단계; 및
    상기 인증의 수행 결과에 기초하여 동작 모드를 변경하는 단계;를 포함하고,
    상기 인증은, 상기 동적 인증 코드를 기반으로 상기 인증 요청이 정상적인 접근인지를 판단하는 것이고,
    상기 동적 인증 코드는, 상기 사용자 단말로부터 수신되거나, 상기 사용자에 의해 인터페이스 장치를 통해 입력 또는 리딩되는,
    동적 인증 코드 기반의 인증을 수행하는 방법.
PCT/KR2023/002906 2022-03-04 2023-03-03 동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치 및 이를 이용한 방법 WO2023167525A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2022-0027972 2022-03-04
KR20220027972 2022-03-04
KR10-2023-0027463 2023-03-02
KR1020230027463A KR20230131442A (ko) 2022-03-04 2023-03-02 동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치 및 이를 이용한 방법

Publications (1)

Publication Number Publication Date
WO2023167525A1 true WO2023167525A1 (ko) 2023-09-07

Family

ID=87884024

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/002906 WO2023167525A1 (ko) 2022-03-04 2023-03-03 동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치 및 이를 이용한 방법

Country Status (1)

Country Link
WO (1) WO2023167525A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007235558A (ja) * 2006-03-01 2007-09-13 Nec Corp 自動モード変更システム、不正変更防止方法
KR20080013852A (ko) * 2005-03-21 2008-02-13 소니 에릭슨 모빌 커뮤니케이션즈 에이비 이동 단말기의 다중 동작 모드들을 제공하는 방법, 장치,및 컴퓨터 프로그램 생성물
JP2012034179A (ja) * 2010-07-30 2012-02-16 Buffalo Inc 無線通信を行う通信装置、無線通信システム、無線通信を行う方法、および、コンピュータプログラム
KR20150065996A (ko) * 2013-12-05 2015-06-16 주식회사 비즈모델라인 카드를 이용한 일회용코드 기반 안심 로그인 방법
KR20220002892A (ko) * 2019-05-03 2022-01-07 트러스토닉 리미티드 원격 보안 잠금해제

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080013852A (ko) * 2005-03-21 2008-02-13 소니 에릭슨 모빌 커뮤니케이션즈 에이비 이동 단말기의 다중 동작 모드들을 제공하는 방법, 장치,및 컴퓨터 프로그램 생성물
JP2007235558A (ja) * 2006-03-01 2007-09-13 Nec Corp 自動モード変更システム、不正変更防止方法
JP2012034179A (ja) * 2010-07-30 2012-02-16 Buffalo Inc 無線通信を行う通信装置、無線通信システム、無線通信を行う方法、および、コンピュータプログラム
KR20150065996A (ko) * 2013-12-05 2015-06-16 주식회사 비즈모델라인 카드를 이용한 일회용코드 기반 안심 로그인 방법
KR20220002892A (ko) * 2019-05-03 2022-01-07 트러스토닉 리미티드 원격 보안 잠금해제

Similar Documents

Publication Publication Date Title
WO2017003243A1 (ko) 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법
WO2020032321A1 (ko) 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램
WO2014104507A1 (ko) 안전 로그인 시스템과 방법 및 이를 위한 장치
WO2022102930A1 (ko) 브라우저 기반 보안 pin 인증을 이용한 did 시스템 및 그것의 제어방법
WO2014007516A1 (ko) 단일 인증 서비스 시스템 및 이의 운용 방법
WO2017188610A1 (ko) 인증 방법 및 시스템
WO2013065915A1 (ko) 보안 영역과 비보안 영역 사이의 보안 연동 방법 및 보안 어플리케이션 다운로드 관리방법, 관리서버, 단말기, 및 이를 적용한 관리시스템
WO2013009045A2 (ko) 동적 키 생성 기반의 내장 sim의 mno 변경방법 및 그를 위한 내장 sim과 기록매체
WO2016129838A1 (en) Electronic device and method for processing secure information
WO2020050424A1 (ko) 블록체인 기반의 모바일 단말 및 IoT 기기 간의 다중 보안 인증 시스템 및 방법
WO2022050652A1 (en) Method, apparatus, and computer readable storage medium for controlling account
WO2017119548A1 (ko) 보안성이 강화된 사용자 인증방법
WO2015157942A1 (zh) 接入无线网络的装置及方法
WO2021080316A1 (ko) 권한 정보에 기초한 인증서를 사용하여 액세스 컨트롤하는 방법 및 장치
WO2021235893A1 (ko) 전자 디바이스 및 전자 디바이스가 레인징 기반 서비스를 제공하는 방법
WO2021261728A1 (ko) 다기능을 가지는 보안 연결을 제공하는 보안 통신 장치 및 그 동작 방법
WO2020022700A1 (ko) 디지털 키를 처리 및 인증하는 보안 요소 및 그 동작 방법
CN107113177A (zh) 数据连接、传送、接收、交互的方法及系统,及存储器、飞行器
WO2019139421A1 (en) User terminal device, electronic device, system comprising the same and control method thereof
WO2023167525A1 (ko) 동적 인증 코드 기반의 인증을 수행하는 산업용 제어장치 및 이를 이용한 방법
WO2015026083A1 (ko) 휴대폰 본인인증 도용방지와 스미싱 방지를 위한 문자메시지 보안시스템 및 방법
WO2020149500A1 (ko) 공유된 키를 등록하기 위한 방법 및 장치
WO2018110775A1 (ko) 전자 기기 인증 매니저 장치
WO2020071693A1 (ko) 전자 장치, 서버 및 이를 이용한 서명 인증 방법
WO2023167567A1 (ko) 인증용 가상코드 기반의 인증을 통해 해킹을 방지하기 위한 장치 및 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23763723

Country of ref document: EP

Kind code of ref document: A1