KR102111493B1 - Kit for developing a trusted platform using Trusted Platform Module - Google Patents

Kit for developing a trusted platform using Trusted Platform Module Download PDF

Info

Publication number
KR102111493B1
KR102111493B1 KR1020180136595A KR20180136595A KR102111493B1 KR 102111493 B1 KR102111493 B1 KR 102111493B1 KR 1020180136595 A KR1020180136595 A KR 1020180136595A KR 20180136595 A KR20180136595 A KR 20180136595A KR 102111493 B1 KR102111493 B1 KR 102111493B1
Authority
KR
South Korea
Prior art keywords
board
tpm
main controller
training
software
Prior art date
Application number
KR1020180136595A
Other languages
Korean (ko)
Inventor
김민식
박성지
문정환
Original Assignee
김민식
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김민식 filed Critical 김민식
Priority to KR1020180136595A priority Critical patent/KR102111493B1/en
Application granted granted Critical
Publication of KR102111493B1 publication Critical patent/KR102111493B1/en

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention relates to a kit for trusted platform development education using a trusted platform module (TPM). In addition, according to the present invention, the kit for trusted platform development education using a trusted platform module (TPM) comprises: a computer in which software for educational board development is installed and a user implements and compiles an educational control program using the software for educational board development; a main controller board which controls a training board by executing an educational control program developed in the computer; a training board which is attached to the main controller board and which displays execution results according to the control of the main controller board; and a trusted platform module board which is linked to the main controller board and which performs authentication, cryptography, data protection, platform protection, and physical protection functions. The kit for trusted platform development education using a trusted platform module (TPM) can perform security training and the like using the training board and the TPM.

Description

TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트{Kit for developing a trusted platform using Trusted Platform Module}Kit for developing a trusted platform using Trusted Platform Module}

본 발명은 TPM(Truestd Platform Module)을 활용한 신뢰 플랫폼 개발 교육을 위한 키트에 관한 것이다.The present invention relates to a kit for education of trust platform development using a Trusted Platform Module (TPM).

일반적인 정보 보안(Security)을 말할 때 기밀성, 무결성/인증, 가용성은 중요한 요소가 된다. 이외에도 부인방지 등이 있다. 이것은 IoT 또는 임베디드 시스템 등을 신뢰 플랫폼 형태로 개발하고자 할 때에도 반드시 고려돼야 하는 요소이다. 기밀성, 무결성/인증, 가용성은 다음을 의미한다.In general information security, confidentiality, integrity / authentication, and availability are important factors. In addition, there are anti-repudiation. This is an element that must be considered when developing IoT or embedded systems in the form of a trust platform. Confidentiality, integrity / authentication, and availability mean:

기밀성은 허가된 사람만이 특정 정보의 공개 또는 열람이 가능한 것을 말하며, 무결성은 데이터의 변조가 없었다는 것을 보증하는 것을 의미하고, 가용성은 요청된 서비스를 요청한 시간에 올바르게 수행할 수 있는 능력을 의미한다. Confidentiality means that only authorized persons can disclose or view specific information, integrity means that there has been no tampering with data, and availability means the ability to correctly perform the requested service at the requested time. .

또한, 인증은 신원 확인이라고 생각하면 쉽게 이해가 될 것이다. 이것은 참이라는 근거가 있는 무언가를 확인하거나 확증하는 행위를 말한다.Also, if you think of authentication as identity verification, it will be easy to understand. This is the act of confirming or corroborating something that is true.

현재, IoT 기기 또는 보안을 제공하는 제품의 보안 시험 및 인증에 있어서 위 네 가지 사항은 필수 테스트 항목이 된다.Currently, the above four items are required for security testing and certification of IoT devices or products that provide security.

조금 더 자세하게는 다음의 다섯 가지 항목으로 분류하여 설명할 수 있다. In more detail, it can be classified into the following five categories.

(1) 인증(Authentication): 사용자 인증, 인증 정보의 안전한 사용, 기기 인증 (1) Authentication: user authentication, secure use of authentication information, device authentication

(2) 암호(Cryptography): 안전한 암호 알고리즘 사용, 안전한 키 관리, 안전한 난수 생성 (2) Cryptography: Use of secure cryptographic algorithms, secure key management, and secure random number generation

(3) 데이터 보호(Data Protection) : 전송 데이터 보호, 저장 데이터 보호, 정보흐름통제, 안전한 세션 관리, 개인정보 보호 (3) Data Protection: Protection of transmitted data, protection of stored data, control of information flow, secure session management, protection of personal information

(4) 플랫폼 보호(Platform Protection) : 소프트웨어 보안, 안전한 업데이트, 보안 관리, 감사 기록, 타임스탬프(4) Platform Protection: Software security, secure update, security management, audit record, timestamp

(5) 물리적 보호(Physical Protection) : 물리적 인터페이스 보호, 무단조작 방어 (5) Physical Protection: Physical interface protection, unauthorized operation protection

위의 다섯 가지 분류에서 각 항목의 세부 사항에 대해 기술하면 다음과 같다. The details of each item in the above five categories are as follows.

사용자 인증은 다음의 사항들에 대한 확인이 요구된다. User authentication requires confirmation of the following:

(a) 처음 기기를 사용할 때 인증정보를 설정하도록 요구하거나 초기 인증정보를 변경하도록 요구해야 한다. (a) When using the device for the first time, it is required to set authentication information or to change the initial authentication information.

(b) 관리서비스 및 중요정보 접근 시 사용자 신원을 검증하기 위해 식별 및 인증기능이 선행되어야 한다. (b) When accessing management services and important information, identification and authentication functions must be preceded to verify user identity.

(c) 잘못된 인증정보를 통한 반복된 인증 시도를 제한해야 한다. 잘못된 인증이란 IoT 기기 또는 이에 상응하는 기기에 저장 또는 등록되지 않은 인증정보를 말하며, 해당 정보로 인증 시도 시 실패하게 된다. (c) Repeated authentication attempts should be restricted through incorrect authentication information. Incorrect authentication refers to authentication information that is not stored or registered in the IoT device or the corresponding device, and fails when attempting authentication with the information.

(d) 기기의 초기 인증정보는 유일한 값으로 설정되어야 한다. 초기 인증정보란 사용자가 처음으로 IoT 기기 또는 이에 상응하는 기기에 접근을 시도할 때 입력하는 정보(ex, ID/PW)로 초기 인증번호 입력 후 새로운 인증정보로 변경을 해야 한다.(d) Initial authentication information of the device should be set to a unique value. The initial authentication information is the information (ex, ID / PW) that the user enters when attempting to access the IoT device or the corresponding device for the first time. After entering the initial authentication number, the new authentication information must be changed.

(e) 기기에서 사용되는 사용자 계정 및 권한 관리 기능을 제공해야 한다. (e) User account and authority management functions used in the device should be provided.

(f) 모든 사용자 계정에 대해 최소 권한의 원칙을 적용해야 한다. 이것은 주체의 역할 혹은 정해진 목적에 따라 필요한 정보와 리소스에만 접근하도록 설정하는 것이다.(f) The principle of least privilege should be applied to all user accounts. This is set to access only necessary information and resources according to the role of the subject or a specific purpose.

(g) 관리자 계정에 대해서는 동시 접속을 제한해야 한다. (g) Simultaneous access should be restricted for administrator accounts.

(h) 길이, 주기, 복잡성을 고려한 안전한 비밀번호로 설정되도록 해야 한다. (h) It should be set as a secure password considering length, period, and complexity.

(i) 인증정보를 하드코딩 되거나 평문으로 저장되지 않아야 한다. 여기서 인증정보란 인증을 위해 입력해야 하는 요소로써 식별을 위해 입력해야 하는 요소와는 무관하다.(i) The authentication information must not be hard-coded or stored in plain text. Here, the authentication information is an element to be entered for authentication, and is independent of the element to be entered for identification.

(j) 인증을 위한 비밀번호 입력 시 화면에 노출되지 않도록 마스킹 처리해야 한다. (j) When entering the password for authentication, masking must be done to prevent exposure to the screen.

(k) 인증 실패 시 실패 사용에 대한 피드백 정보를 제공하지 않아야 한다. (k) In case of authentication failure, feedback information about the use of failure shall not be provided.

다음은 기기 인증 시에 요구되는 사항들이다. The following are the requirements required for device authentication.

(a) 기기는 각각의 고유 식별정보를 보유해야 한다. 이것은 제조사가 각 기기에 부여한 고유 번호이다. (a) The device must have its own unique identification information. This is a unique number assigned to each device by the manufacturer.

(b) 기기 간 중요정보 전송 시 혹은 기기 제어를 위한 상호연결 수행 시 상호인증이 선행되어야 한다. 하나의 방법으로 공개키 암호 방식의 개인키를 이용한 상호인증 수행이 가능하다. (b) Mutual authentication must be preceded when transferring important information between devices or performing interconnection for device control. It is possible to perform mutual authentication using a private key in a public key encryption method in one way.

암호는 다음의 세부 사항이 요구된다. The password requires the following details.

(a) 암호화 시 안전한 암호 알고리즘을 사용해야 한다. 이것은 암호모듈 검증대상(KS X ISO/IEC 19790* 또는 FIPS140-2**)암호 알고리즘을 사용하며 아래와 같다. (a) A secure cryptographic algorithm must be used for encryption. It uses cryptographic algorithm verification target (KS X ISO / IEC 19790 * or FIPS140-2 **) cryptographic algorithm and is as follows.

* ARIA, SEED, HIGHT, KCDSA, EC-KCDSA 등 * ARIA, SEED, HIGHT, KCDSA, EC-KCDSA, etc.

** AES, Triple-DES, RSA, ECDSA 등** AES, Triple-DES, RSA, ECDSA, etc.

대칭키 암호는 ARIA, SEED, LEA, HIGH, AES, TRIPLE-DES(TRIPLE-KEY)이며, 공개키 암호는 RSA, ECC, 해시함수는 SHA-2, SHA-3, HMAC 등이 있다. 보안 강도는 112bit 이상 암호 알고리즘 사용이 권고된다. The symmetric key cryptography is ARIA, SEED, LEA, HIGH, AES, and TRIPLE-DES (TRIPLE-KEY), and the public key cryptography includes RSA, ECC, and hash functions such as SHA-2, SHA-3, and HMAC. It is recommended to use a cryptographic algorithm of 112 bits or more for the security strength.

(b) 암호키는 안전성이 검증된 방법으로 생성, 갱신, 분배, 사용, 저장, 파기 되어야 한다. (b) Cryptographic keys must be created, updated, distributed, used, stored, and destroyed in a way that has been verified for safety.

(c) 난수성이 검증된 난수 생성 알고리즘을 이용하여 안전하게 난수를 생성한다. (c) Random numbers are generated safely using a random number generation algorithm with proven randomness.

데이터 보호는 다음의 세부 사항이 요구된다.  Data protection requires the following details.

(a) 기기 간 전송되는 중요정보는 암호화하여 전송해야 한다. 중요정보란 인증정보, 암호키 개인 영상정보, 결제정보 등을 말하여, 기기의 특성에 따라 다른 정보들도 중요한 정보가 될 수 있다. 기기 인증(등록)을 위한 고유 식별 정보는 중요정보에 해당하지 않으나 기기 특성에 따라 포함될 수도 있다. (a) Important information transmitted between devices must be encrypted and transmitted. Important information refers to authentication information, encryption key personal video information, payment information, etc., and other information may be important information depending on the characteristics of the device. The unique identification information for device authentication (registration) does not correspond to important information, but may be included according to device characteristics.

(b) 알려진 프로토콜을 기반으로 통신 채널 생성 시 안전한 보안 모드를 사용해야 한다. (b) Secure communication mode should be used when creating communication channels based on known protocols.

(c) 기기에 저장되는 중요정보는 반드시 암호화해야 한다. (c) Important information stored in the device must be encrypted.

(d) 사용자 필요에 의해 기기에 저장된 중요한 정보를 삭제한 경우, 복원이 어렵도록 해야 한다. 완전삭제는 미국 NIST SP 800-88, 독일 VISITR, 호주 ACSI 33 표준 등을 따르기를 권고되고, 단 적용이 어려울 경우 해당 정보의 기록영역을 0x00, 랜던한 값, 0x00 순으로 3회 이상의 덮어쓰기를 할 수 있다. (d) If important information stored in the device is deleted due to user needs, restoration should be made difficult. It is recommended that complete deletion be performed in accordance with NIST SP 800-88 in the United States, VISITR in Germany, and ACSI 33 in Australia.However, if it is difficult to apply, overwrite the record area of the information at least 0x00, random value, and 0x00 can do.

(e) 허가되지 않은 네트워크 트래픽 차단 기능을 제공해야 한다. 허가되지 않은 네트워크 트래픽이란 네트워크 접근통제 정책에 등록되지 않은 기기에서 발생되는 트래픽을 의미한다. (e) Unauthorized network traffic blocking function should be provided. Unauthorized network traffic means traffic generated from devices not registered in the network access control policy.

(f) 세션 연결 후 일정 시간동안 미사용 시 세션을 잠그거나 종료시켜야 한다. 일정시간이란 기기의 특성에 따라 사용자가 설정한 세션 잠금 및 세션 종료 시간이며, 민감한 제어 명령 처리가 포함되는 세션은 30초 이후 세션을 잠금 또는 종료, 민감하지 않은 제어 명령 처리 세션은 10분 이후 자금 또는 종료로 설정할 수 있다. (f) 세션 Session must be locked or terminated when not used for a certain period of time after connection. The fixed time is the session lock and session end time set by the user according to the characteristics of the device, and the session with sensitive control command processing locks or ends the session after 30 seconds, and the non-sensitive control command processing session funds after 10 minutes. Or it can be set to exit.

(g) 세션 ID는 예측할 수 없는 값이어야 한다. 특히, 사용자 인증 또는 중요 데이터 교환 등에 사용하는 세션 ID가 순차적으로 늘어나는 경우, 예측하기 쉽거나 재사용이 가능할 수 있으므로 예측할 수 없도록 설정해야 한다. 세션 인증시 마다 세션ID는 변경되어야 하고, 사용된 세션 ID는 재사용할 수 없도록 폐기되어야 한다. (g) Session ID should be an unpredictable value. In particular, if the session IDs used for user authentication or important data exchange increase sequentially, it must be set to be unpredictable because it may be easy to predict or reuse. Whenever a session is authenticated, the session ID must be changed and the used session ID must be discarded so that it cannot be reused.

(h) 기기에서 처리하는 개인정보를 비식별화 조치되어야 한다. 비식별화란 개인정보의 일부 또는 전부를 삭제하거나 다른 정보로 대체함으로써 다른 정보와 쉽게 결합하여도 특정 개인을 식별하기 어렵도록 하는 일련의 조치를 말한다. 비식별화 조치 방법으로는 가명처리(Pseudonymization), 총계처리(Aggregation), 특정 데이터 삭제(Data Reduction) 데이터 범주화(Data Suppression), 데이터 마스킹(Data Masking)등이 있다. (h) Personal information processed by the device should be de-identified. De-identification refers to a series of measures that makes it difficult to identify a specific individual even if it is easily combined with other information by deleting some or all of the personal information or replacing it with other information. De-identification measures include Pseudonymization, Aggregation, Data Reduction, Data Suppression, and Data Masking.

플랫폼 보호로는 다음의 세부 사항들이 요구된다. Platform protection requires the following details.

(a) 보안약점 및 보안취약점이 존재하지 않도록 시큐어 코딩(Secure Coding)을 적용한다. (a) Secure coding is applied so that there are no security weaknesses or security weaknesses.

(b) 펌웨어 및 앱 분석 방지를 위해 난독화를 적용해야 한다. 공개된 리버스 엔지니어링 도구를 통해 중요 로직이나 키 정보 등을 추출할 수 있으므로 적절한 수준의 보호 방법을 적용해야 한다. (b) Obfuscation should be applied to prevent firmware and app analysis. Important logic or key information can be extracted through publicly available reverse engineering tools, so an appropriate level of protection must be applied.

(c) 주요 설정 값 및 실행코드에 대한 무결성 검증 기능을 지원해야 한다. 무결성 검증 방법은 위변조 시 영향이 큰 경우는 HMAC, RSA 서명 방식을 적용하고, 위변조 시 영향이 크지 않은 경우는 SHA-2 Family을 적용할 수 있으며, 위변조 시 영향이 미미한 경우는 SHA-1, MD-5 Checksum 등을 적용할 수 있다. (c) It should support the integrity verification function for the main setting value and execution code. For integrity verification, HMAC and RSA signature methods are applied when the forgery is high, and the SHA-2 family can be applied when the forgery is not largely affected. -5 Checksum, etc. can be applied.

(d) 업데이트 수행 전 인가된 사용자 여부를 확인해야 한다. (d) Before performing the update, you should check whether or not you are an authorized user.

(e) 업데이트 실패 시 롤백 기능을 지원해야 한다. 이것은 업데이트를 위한 안전한 프로세스를 정의가 요구되며, 실패 시 안전한 상태로의 복구될 수 있도록 롤백 기능을 말한다. (e) If update fails, rollback function must be supported. This means that a secure process for updating is required to be defined, and the rollback function can be restored to a safe state in case of failure.

(f) 업데이트 수행 전 무결성 검사를 수행해야 한다. (f) Integrity check must be performed before performing update.

(g) 불필요한 서비스는 제거하거나 비활성화해야 한다. 이것은 인가된 사용자에 의해서만 서비스 활성화 기능이 수행되어야 함을 의미하며, 인가된 사용자란 관리서비스 접근이 허용된 사용자를 의미한다. (g) Unnecessary services should be removed or disabled. This means that a service activation function should be performed only by an authorized user, and an authorized user means a user allowed to access the management service.

(h) 원격관리는 신뢰할 수 있는 환경에서 수행되어야 한다. 원격관리란 원격 조종자로 하여금 해당 시스템에 물리적으로 접근권한이 있는 것처럼 시스템을 제어하게 해주는 소프트웨어 및 프로그래밍 모음 등을 모두 의미한다. 신뢰할 수 있는 환경이란 내부망, 사전 지정된 원격 관리용 IP, 안전한 채널(TLS, SSH등)이 적용된 시스템이다. (h) Remote management should be performed in a trusted environment. Remote management means a collection of software and programming that allows a remote controller to control the system as if they had physical access to the system. A trusted environment is a system with internal network, pre-specified remote management IP, and secure channel (TLS, SSH, etc.) applied.

(i) 하드웨어 및 소프트웨어의 자체 시험 기능을 제공해야 한다. 기기 시동 시 또는 시동 후 주요 하드웨어 및 소프트웨어에 대한 오류를 탐지할 수 있는 자체검사 기능을 제공해야 한다. (i) Hardware and software self-test functions shall be provided. Self-inspection function should be provided to detect errors in major hardware and software during or after device startup.

(j) 보안과 관련된 이벤트는 감사기록을 생성해야 한다. 그리고 감사기록에 대한 보호 기능을 제공해야 한다. (j) Security-related events should generate audit records. And it must provide protection for audit records.

(k) 신뢰할 수 있는 타임스탬프 기능을 지원해야 한다. 공인된 시간 소스와 동기화를 지원해야 하며 하루에 1초 이내의 정확성을 가져야 한다. (k) It must support a reliable timestamp function. It must support synchronization with an authorized time source and must have accuracy within 1 second per day.

물리적 보호는 다음의 세부 사항들이 요구된다. Physical protection requires the following details.

(a) 불필요한 외부 인터페이스는 비활성화하고 필요 시 접근통제 기능을 지원해야 한다. (a) Unnecessary external interface should be disabled and access control function should be supported if necessary.

외부 인터페이스는 USB, Ethernet, 시리얼 통신 인터페이스(RS232, RS485), SD Card 슬롯 등이다.External interfaces are USB, Ethernet, serial communication interface (RS232, RS485), SD Card slot, etc.

(b) 비인가자의 내부 포트 접근을 방지해야 한다. JTAG, UART, USB, SPI, I2C, SDIO, Ethernet 등 표준/비표준 통신 인터페이스가 해당된다. (b) Access to internal ports by unauthorized persons should be prevented. Standard / non-standard communication interfaces such as JTAG, UART, USB, SPI, I2C, SDIO, and Ethernet are applicable.

(c) 비인가자의 무단 조작을 탐지하야 대응할 수 있는 기능을 지원해야 한다. 접근검출 방법은 Tamper Proofing 기능을 사용할 수 있다. 케이스의 변형 또는 열림을 검출 후 관리자 알람 또는 메모리 전체(민감 정보) 초기화를 실시할 수 있다. 접근 방지/검출 방법은 제품의 성능과 저장된 데이터의 중요도에 따라 강도조절이 가능하다. (c) Unauthorized manipulation of an unauthorized person should be detected to support the ability to respond. Tamper Proofing function can be used for the access detection method. After detecting the deformation or opening of the case, the manager alarm or the entire memory (sensitivity information) can be initialized. The access prevention / detection method can be adjusted according to the performance of the product and the importance of stored data.

추가적으로 국내 IoT 보안얼라이언스에서 제공한 "IoT 기기 공통 보안 가이드"를 살펴보면 '정보보호와 프라이버시 강화를 고려한 IoT 제품/서비스 설계'에서 기본 원칙 Privacy by Design과 Security by Design을 준수하고, 설계 단계에서 소프트웨어 보안 보증 항목들을 적용하고, TPM(Trusted Platform Module)과 같은 하드웨어 기술 적용을 고려할 것을 권고하고 있다. 이것은 추후 개발되는 모든 IoT 기기들은 "안전한 소프트웨어 및 하드웨어 개발 기술 적용 및 검증"에서 권고하는 시큐어 코딩, 오픈소스 보안성 검증 및 시큐어 하드웨어 장치 활용(e.g. TPM)등을 적용하여 신뢰 플랫폼 형태로 개발이 이루어져야 하는 추세로 자리매김 할 것이다. In addition, if you look at the "Common Security Guide for IoT Devices" provided by the IoT Security Alliance in Korea, the basic principles of Privacy by Design and Security by Design are observed in the 'IoT Product / Service Design Considering Information Protection and Privacy Enhancement', and software security at the design stage It is recommended to apply warranty items and to consider hardware technology application such as Trusted Platform Module (TPM). All IoT devices that will be developed in the future must be developed in the form of a trust platform by applying secure coding, open source security verification, and secure hardware device utilization (eg TPM) recommended in "Safe software and hardware development technology application and verification". Will establish itself as a trend.

TPM 하드웨어 보안 칩은 2004년 TCG(Trusted Computing Group)에서 안전한 부팅 솔루션 및 데이터 암/복호화, 디지털 서명(무결성/인증)등을 포함하여 여러 가지 보안 관련 기능을 제공할 수 있는 TPM(Trusted Platform Module) Specification version 1.2 규격 발표에 따라서 해당 표준을 기반으로 TPM 칩을 여러 반도체 제조회사에서 제작/판매 중이다. The TPM hardware security chip is a Trusted Platform Module (TPM) capable of providing a number of security-related functions, including a secure boot solution and data encryption / decryption, and digital signature (integrity / authentication) in the Trusted Computing Group (TCG) in 2004. According to the specification version 1.2 specification announcement, various semiconductor manufacturers are manufacturing / selling TPM chips based on the standard.

TPM은 슬레이브 디바이스로써 외부 마스터 디바이스의 명령에 의해서 동작된다. 마스터 디바이스와의 통신은 임베디드 시스템에서 보편적으로 사용되는 SPI, I2C 등이 사용된다.The TPM is a slave device and is operated by the command of an external master device. SPI, I2C, etc., which are commonly used in embedded systems, are used for communication with the master device.

TPM은 하드웨어 보안 칩으로써 다음의 서비스를 제공할 수 있다. The TPM is a hardware security chip and can provide the following services.

(1) 안전한 난수 생성 (1) Safe random number generation

마스터 디바이스에서 요청한 개수의 난수를 생성 후 제공한다.Generate and provide the number of random numbers requested by the master device.

(2) RSA Key pairs 생성 (2) RSA key pairs generation

마스터 디바이스가 요청 시 RSA 비밀키와 공개키를 생성 후 제공한다. Upon request, the master device generates and provides the RSA secret key and public key.

(3) 데이터 암/복호화 (3) Data encryption / decryption

마스터 디바이스가 요청한 데이터의 암/복호화를 수행한다. The master device performs encryption / decryption of the requested data.

(4) 디지털 서명(무결성/인증)(4) Digital signature (integrity / authentication)

무결성 체크 및 인증 서비스를 제공할 수 있다. Integrity check and authentication services can be provided.

(5)시큐어 부팅 (5) Secure boot

시스템의 부팅 동작에 대한 일련의 무결성 검증을 통해 시큐어 부팅 서비스를 제공할 수 있다. Secure boot service can be provided by verifying the integrity of the system's boot behavior.

(6) 데이터 보호 기능 (6) Data protection function

특정 비휘발성 메모리에 접근 권한을 부여하여 인가된 사람만이 해당 영역에 데이터를 읽거나 쓸 수 있는 기능을 제공한다. By granting access to a specific non-volatile memory, only an authorized person can read or write data in the area.

한편, 현재 상업적 또는 비상업적으로 실시되고 있는 정보보안 관련 대부분의 교육은 실습 교육 과정으로 서버 또는 디바이스 간 통신 네트워크 보안에 집중되어 있다. 하지만 ICT 기술의 급진적인 발전으로 기기 자체에 대한 보안의 중요성은 여러 차례 언급된 것처럼 그 중요도가 급속도로 커질 전망이다. 하지만 이에 대한 업계 또는 학계에서 활용할 수 있는 효과적인(효율적인) IoT 및 임베디드 시스템의 보안 관련 교육용 기자재 및 교재가 전무한 것이 지금의 상황이다.On the other hand, most education related to information security currently being carried out commercially or non-commercially is a hands-on training course focused on the security of communication networks between servers or devices. However, with the rapid development of ICT technology, the importance of security for the device itself is expected to increase rapidly as mentioned many times. However, the current situation is that there are no effective (efficient) IoT and embedded system security education materials and textbooks that can be used by industry or academia.

국내특허공개번호 10-2015-0072694호Domestic Patent Publication No. 10-2015-0072694 국내등록번호 10-1534194호Domestic registration number 10-1534194

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로, 트레이닝 보드와 TPM 모듈을 이용하여 임베디드 시스템 기반의 신뢰 플랫폼 개발을 위한 보안 교육 등을 수행할 수 있도록 하는 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트를 제공하는데 있다.The present invention has been devised to solve the above problems, and provides training on trust platform using TPM to enable security training for embedded system based trust platform development using training board and TPM module. It is to provide a kit for.

본 발명에 따르면, 교육용 보드 개발용 소프트웨어가 설치되어 있으며, 사용자가 교육용 보드 개발용 소프트웨어를 이용하여 교육용 제어 프로그램을 구현하고 컴파일하는 컴퓨터; 상기 컴퓨터에서 개발된 교육용 제어 프로그램을 실행하여 트레이닝 보드를 제어하는 메인 컨트롤러 보드; 상기 메인 컨트롤러 보드에 결착되어 있으며, 상기 메인 컨트롤러 보드의 제어에 따라 실행 결과를 보여주는 트레이닝 보드; 및 상기 메인 컨트롤러 보드와 연동되어 인증(Authentication), 암호(Cryptography), 데이터 보호(Data Protection), 플랫폼 보호(Platform Protection) 및 물리적 보호(Physical Protection) 기능을 수행하는 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트가 제공된다. According to the present invention, an educational board development software is installed, and a user implements and compiles an educational control program using the educational board development software; A main controller board for controlling a training board by executing an educational control program developed in the computer; A training board attached to the main controller board and showing an execution result under control of the main controller board; And a trust platform development training utilizing a TPM that performs authentication, encryption, data protection, platform protection, and physical protection in conjunction with the main controller board. A kit for is provided.

본 발명은 트레이닝 보드와 신뢰 플랫폼 모듈을 이용하여 보안 교육 등을 수행할 수 있도록 한다.The present invention enables security education and the like to be performed using a training board and a trust platform module.

도 1은 본 발명의 바람직한 일 실시예에 따른 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트의 구성도이다.
도 2는 도 1의 메인 컨트롤 보드의 구성도이다.
도 3은 도 1의 트레이닝 보드의 구성도이다.
1 is a block diagram of a kit for training a trust platform using a TPM according to an exemplary embodiment of the present invention.
FIG. 2 is a configuration diagram of the main control board of FIG. 1.
3 is a configuration diagram of the training board of FIG. 1.

본 발명에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It should be noted that the technical terms used in the present invention are only used to describe specific embodiments, and are not intended to limit the present invention. In addition, technical terms used in the present invention should be interpreted as meanings generally understood by a person having ordinary knowledge in the technical field to which the present invention belongs, unless otherwise defined in the present invention. It should not be interpreted as a meaning or an excessively reduced meaning. In addition, when the technical term used in the present invention is a wrong technical term that does not accurately represent the spirit of the present invention, it should be understood as being replaced by a technical term that can be correctly understood by those skilled in the art. In addition, the general terms used in the present invention should be interpreted as defined in the dictionary or in context before and after, and should not be interpreted as an excessively reduced meaning.

또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다.In addition, the singular expression used in the present invention includes a plural expression unless the context clearly indicates otherwise.

본 발명에서, "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들, 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.In the present invention, terms such as “consisting of” or “comprising” should not be construed to include all of the various components, or various stages, described in the invention, including some of the components or some stages. It may or may not be construed as further comprising additional components or steps.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings, but the same or similar elements will be given the same reference numbers regardless of the reference numerals, and repeated descriptions thereof will be omitted.

또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, in the description of the present invention, when it is determined that detailed descriptions of related known technologies may obscure the subject matter of the present invention, detailed descriptions thereof will be omitted. In addition, it should be noted that the accompanying drawings are only for easy understanding of the spirit of the present invention and should not be interpreted as limiting the spirit of the present invention by the accompanying drawings.

도 1은 본 발명의 바람직한 일 실시예에 따른 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트의 구성도이다.1 is a block diagram of a kit for training a trust platform using a TPM according to an exemplary embodiment of the present invention.

도 1을 참조하면, 본 발명의 바람직한 일 실시예에 따른 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트는 컴퓨터(10), 메인 컨트롤러 보드(20), 트레이닝 보드(30) 및 신뢰 플랫폼 모듈 보드(40)를 포함하고 있다.Referring to FIG. 1, a kit for training a trust platform using a TPM according to an exemplary embodiment of the present invention includes a computer 10, a main controller board 20, a training board 30, and a trust platform module board ( 40).

상기 컴퓨터(10)는 노트북 컴퓨터, 개인용 PC, 데스크탑, PDA, 핸드폰, 셀 폰, 스마트 폰 등이 사용될 수 있다.The computer 10 may be a notebook computer, personal PC, desktop, PDA, cell phone, cell phone, smart phone, and the like.

이와 같은 컴퓨터(10)에는 교육용 보드 개발용 소프트웨어가 설치되어 있으며, 사용자는 교육용 보드 개발용 소프트웨어를 이용하여 교육용 제어 프로그램을 구현하고 컴파일한다.The computer 10 is equipped with educational board development software, and the user implements and compiles the educational control program using the educational board development software.

그리고, 메인 컨트롤러 보드(20)는 상기 컴퓨터(10)에서 개발된 교육용 제어 프로그램을 실행하여 트레이닝 보드를 제어한다.Then, the main controller board 20 controls the training board by executing an educational control program developed in the computer 10.

이와 같은 메인 컨트롤러 보드(20)는 도 2에 도시된 바와 같이 확장 파워 제어부(21), 트래이닝 키트 및 TPM 인터페이스(22), 외부 저장 장치 연결부(23), 네트워크 프로세서 회로부(24), 시스템 제어부(25), 입/출력 통신 제어부(26)을 포함하고 있다.2, the main controller board 20 includes an extended power control unit 21, a training kit and a TPM interface 22, an external storage device connection unit 23, a network processor circuit unit 24, and a system control unit as shown in FIG. 25), an input / output communication control unit 26.

상기 트레이닝 보드(30)는 메인 컨트롤러 보드(20)에 결착되어 있으며, 상기 메인 컨트롤러 보드(20)의 제어에 따라 실행 결과를 보여준다. 이와 같은 트레이닝 보드는 도 3에 도시된 바와 같이 220[V]/60[Hz] A/C(교류전원) 제어부(31), TPM 연결부(32), LED 출력부(33), 확장 제어부(34), 저장 장치 제어부(35), 스위치 입력부(36) 및 부저 출력부(37)을 포함한다.The training board 30 is attached to the main controller board 20 and shows execution results under the control of the main controller board 20. As shown in FIG. 3, the training board includes 220 [V] / 60 [Hz] A / C (AC power) control unit 31, TPM connection unit 32, LED output unit 33, and expansion control unit 34 ), A storage device control unit 35, a switch input unit 36 and a buzzer output unit 37.

한편, 신뢰 플랫폼 모듈 보드(40)는 암/복호화 키, 디지털 서명을 위한 서명키, 무결성(Integrity) 검증을 위한 해시 함수, 안전한 데이터 저장을 위한 권한 접근 공간 등을 제공하는 보안 모듈이다. On the other hand, the trust platform module board 40 is a security module that provides an encryption / decryption key, a signature key for digital signature, a hash function for integrity verification, and an authorization access space for secure data storage.

일반적으로 개인용 컴퓨터(PC) 주기판(mother board)에 부착되며, 부팅 단계에서부터 시스템의 무결성 검증에도 이용된다. 중요 데이터가 하드웨어에 저장되기 때문에 외부 소프트웨어 공격이나 물리적인 도난에 대해 더 안전하다. 하드웨어 기반의 난수(random number) 생성, 표준 알고리듬(SHA-1, RSA, HMAC 등) 제공, 안전한 키 생성 및 보관, 암호 처리를 위한 프로세서 및 정보 저장을 위한 플랫폼 구성 레지스터(PCR: Platform Configuration Register) 및 비휘발성 메모리 등으로 구성되어 있다. 이동용 신뢰 플랫폼 모듈(TPM)로 모바일 신뢰 보안 모듈(MTM: Mobile Trusted Module)이 있다.It is usually attached to a personal computer (PC) mother board, and is used to verify the integrity of the system from the boot stage. Because sensitive data is stored on the hardware, it is safer from external software attacks or physical theft. Platform configuration register (PCR) for hardware-based random number generation, standard algorithms (SHA-1, RSA, HMAC, etc.), secure key generation and storage, cryptographic processing and information storage And non-volatile memory. A mobile trust platform module (TPM) is a mobile trust security module (MTM).

이와 같이 구성되는 본 발명의 바람직한 일 실시예에 따른 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트의 동작을 살펴보면 다음과 같다.Looking at the operation of the kit for training the trust platform using the TPM according to an embodiment of the present invention configured as described above is as follows.

1. O/S가 탑재된 임베디드 시스템기반 각종 장치 제어 교육1. Embedded system-based various device control training with O / S

(1) AC(220[V], 60[Hz]) 전원 제어 교육 (1) AC (220 [V], 60 [Hz]) power control training

일반적인 가정이나 공장에서 사용하는 AC 전원을 제어함으로써, AC 전원을 직접 공급 받아 동작하는 모든 기기에 대한 제어 능력을 키우도록 교육한다.By controlling the AC power used in general homes or factories, it is trained to increase control for all devices that operate by receiving AC power directly.

이를 위하여, 먼저 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블 이용하여 서로 연결하며, 메인 컨트롤러 보드(20)에 트레이닝 보드(30)를 결착 한다. To this end, first, the main controller board 20 and the computer 10 on which training board development software is installed are connected to each other using an RS-232 and Ethernet cable, and the training board 30 is connected to the main controller board 20. Should be bound.

이후에, 트레이닝 보드(30)의 AC 전원 커넥터(connector)에 백열전구나 기타 제어하고자 하는 디바이스 결선한 후에, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 AC 전원 제어용 소프트웨어를 구현하고 컴파일 한다. Thereafter, after connecting an incandescent lamp or other device to be controlled to the AC power connector of the training board 30, the user implements and compiles the AC power control software on the computer 10 on which the educational board development software is installed. .

컴퓨터(10)의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드(20)로 실행할 파일을 전송하며, 메인 컨트롤러 보드(20)는 전송받은 AC 전원 제어용 소프트웨어를 실행하여 트레이닝 보드(30)를 제어하며, 트레이닝 보드(30)는 실행 결과를 보여준다.Click the download button of the educational board development software of the computer 10 to transmit a file to be executed to the main controller board 20, and the main controller board 20 executes the received AC power control software to execute the training board 30 , And the training board 30 shows the execution result.

(2) 외부 비휘발성 메모리 제어(EEPROM) 교육 (2) External nonvolatile memory control (EEPROM) training

시스템 동작 중에 전원이 꺼져도 특정 정보를 유지시키고자 할 경우, 외부 시스템에 장착된 비휘발성 메모리(EEPROM)를 활용하여 제어할 수 있는 능력을 키우도록 교육한다.If you want to keep certain information even when the power is turned off during system operation, you are trained to develop the ability to control by utilizing non-volatile memory (EEPROM) mounted on an external system.

이를 위하여, 먼저 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블 이용하여 서로 연결한다. 그리고, 메인 컨트롤러 보드(20)에 트레이닝 보드(30)를 결착 한다.To this end, first, the main controller board 20 and the computer 10 on which education board development software is installed are connected to each other using an RS-232 and Ethernet cable. Then, the training board 30 is attached to the main controller board 20.

이후에, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 트레이닝 보드(30)에 장착된 EEPROM 제어용 소프트웨어를 구현하고 컴파일 한다. Subsequently, the user implements and compiles the EEPROM control software mounted on the training board 30 on the computer 10 on which the education board development software is installed.

상기 컴퓨터(10)의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드(20)로 실행할 파일을 전송하며, 상기 메인 컨트롤러 보드(20)는 전송받은 EEPROM 제어용 소프트웨어를 구동하여, 트레이닝 보드(30)를 제어하며, 트레이닝 보드(30)는 EEPROM 제어용 소프트웨어의 실행 결과를 보여준다.Click the download button of the educational board development software of the computer 10 to transmit a file to be executed to the main controller board 20, and the main controller board 20 drives the transmitted EEPROM control software to train the training board ( 30), and the training board 30 shows the execution result of the EEPROM control software.

(3) 부저(buzzer) 제어 교육(3) Buzzer control training

시스템 제어에서 사용자에게 소리로 정보를 전달할 수 있는 제어 능력을 교육한다.In the system control, the control ability to transmit information to the user by sound is trained.

이를 위하여, 먼저 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블 이용하여 서로 연결하고, 메인 컨트롤러 보드(20)에 트레이닝 보드(30)를 결착한다.To this end, first, the main controller board 20 and the computer 10 on which training board development software is installed are connected to each other using an RS-232 and ethernet cable, and the training board 30 is connected to the main controller board 20. Binds.

이후에, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 트레이닝 보드(30)에 장착된 부저(buzzer) 제어용 소프트웨어를 구현하고 컴파일 한다. 이때 사전에 등록된 음계 제어용 소프트웨어를 활용하여 연주 코드를 손쉽게 구현할 수 있는 기능도 제공된다. Subsequently, the user implements and compiles the buzzer control software mounted on the training board 30 in the computer 10 on which the educational board development software is installed. At this time, a function to easily implement a performance chord by using the software for controlling the scale registered in advance is also provided.

그리고, 컴퓨터(10)의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드(20)로 실행할 파일을 전송하며, 상기 메인 컨트롤러 보드(20)는 전송받은 부저 제어용 소프트웨어를 구동하여, 트레이닝 보드(30)를 제어하며, 트레이닝 보드(30)는 부저 제어용 소프트웨어의 실행 결과를 보여준다.Then, by clicking the download button of the educational board development software of the computer 10 to transmit a file to be executed to the main controller board 20, the main controller board 20 drives the received buzzer control software, training board 30, the training board 30 shows the execution result of the buzzer control software.

(4) 발광다이오드(LED) 제어 교육(4) Light emitting diode (LED) control training

시스템 제어에서 사용자가 시각적으로 정보를 전달할 수 있는 제어 능력을 교육한다.In system control, users are trained to control the ability to visually communicate information.

이를 위하여, 먼저 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결하고, 메인 컨트롤러 보드(20)에 트레이닝 보드(30)를 결착한다.To this end, first, the main controller board 20 and the computer 10 on which training board development software is installed are connected to each other using an RS-232 and Ethernet cable, and the training board 30 is connected to the main controller board 20. ).

그리고, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 트레이닝 보드(30)에 장착된 발광다이오드 제어용 소프트웨어를 구현하고 컴파일 한다. 이때 사전에 등록된 타이머 주기 프로그램을 이용하여, 특정 주기 제어에 활용할 수 있다. And, in the computer 10 on which training board development software is installed, the user implements and compiles the software for controlling the light-emitting diode mounted on the training board 30. At this time, a timer period program registered in advance can be used to control a specific period.

이후에, 컴퓨터(10)의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드(20)로 실행할 파일을 전송하며, 상기 메인 컨트롤러 보드(20)는 전송받은 발광다이오드 제어용 소프트웨어를 구동하여, 트레이닝 보드(30)를 제어하며, 트레이닝 보드(30)는 발광 다이오드 제어용 소프트웨어의 실행 결과를 보여준다.Subsequently, the download button of the educational board development software of the computer 10 is clicked to transmit a file to be executed to the main controller board 20, and the main controller board 20 drives the transmitted light emitting diode control software, The training board 30 is controlled, and the training board 30 shows execution results of software for controlling the light emitting diodes.

(5) 마이크로스위치 제어 교육(5) Micro switch control training

시스템 제어에 있어서 사용자가 입력 수단을 통해 정보를 획득하는 제어 능력을 교육한다.In system control, the user is trained in control ability to obtain information through input means.

이를 위하여, 먼저 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결하며, 메인 컨트롤러 보드(20)에 트레이닝 보드(30)를 결착한다.To this end, first, the main controller board 20 and the computer 10 on which training board development software is installed are connected to each other using an RS-232 and Ethernet cable, and the training board 30 is connected to the main controller board 20. ).

이후에, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 트레이닝 보드(30)에 장착된 마이크로스위치 제어용 소프트웨어를 구현하고 컴파일 한다. 이때 사전에 등록된 안티탬퍼(Anti-Tamper) 검출용 프로그램을 활용할 수 있다.Subsequently, the user implements and compiles the software for controlling the micro switch mounted on the training board 30 in the computer 10 on which the educational board development software is installed. At this time, a pre-registered anti-tamper detection program can be used.

그리고, 컴퓨터(10)의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드로 실행할 파일을 전송하며, 상기 메인 컨트롤러 보드(20)는 전송받은 마이크로스위치 제어용 소프트웨어를 구동하여, 트레이닝 보드(30)를 제어하며, 트레이닝 보드(30)는 마이크로스위치 제어용 소프트웨어의 실행 결과를 보여준다.Then, by clicking the download button of the educational board development software of the computer 10, and transmits a file to be executed to the main controller board, the main controller board 20 drives the received microswitch control software, training board 30 ), And the training board 30 shows the execution result of the software for microswitch control.

(6) 확장용 GPIO (General Purpose Input/Output) 제어 교육(6) GPIO (General Purpose Input / Output) control training for expansion

시스템 제어에 있어서 사용자가 별도의 센서나 기타 소자를 제어하고자 할 때 해당 확장용 GPIO 포트를 활용할 수 있는 능력을 교육한다.In system control, when the user wants to control a separate sensor or other device, the ability to use the corresponding GPIO port for expansion is trained.

먼저, 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결한다. 그리고, 메인 컨트롤러 보드(20)에 트레이닝 보드(30)를 결착 한다.First, the main controller board 20 and the computer 10 on which education board development software is installed are connected to each other using an RS-232 and Ethernet cable. Then, the training board 30 is attached to the main controller board 20.

이후에, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 트레이닝 보드(30)에 장착된 확장 GPIO 제어용 소프트웨어를 구현하고 컴파일 한다.Subsequently, the user implements and compiles the software for controlling the extended GPIO mounted on the training board 30 on the computer 10 on which the educational board development software is installed.

그리고, 컴퓨터(10)의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드로 실행할 파일을 전송하며, 상기 메인 컨트롤러 보드(20)는 전송받은 GPIO 제어용 소프트웨어를 구동하여, 트레이닝 보드(30)를 제어하며, 트레이닝 보드(30)는 GPIO 제어용 소프트웨어의 실행 결과를 보여준다.Then, by clicking the download button of the educational board development software of the computer 10, and transmits a file to be executed to the main controller board, the main controller board 20 drives the received GPIO control software, training board 30 , And the training board 30 shows the execution result of the software for GPIO control.

2. O/S가 탑재된 임베디드 시스템기반 각종 (통신) 인터페이스 제어 교육2. O / S embedded system based various (communication) interface control training

(1) USB Port 제어 교육(1) USB Port control training

시스템 제어에 있어서 USB 인터페이스 기반의 장치를 제어할 수 있는 능력을 배양시키는 교육을 한다.In system control, we train to cultivate the ability to control devices based on USB interfaces.

먼저, 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결 한다.First, the main controller board 20 and the computer 10 on which education board development software is installed are connected to each other using an RS-232 and Ethernet cable.

그리고, 메인 컨트롤러 보드(20)의 USB OTG가 지원되는 USB port에 USB 메모리 장치를 연결한다. Then, the USB memory device is connected to a USB port where the USB OTG of the main controller board 20 is supported.

이후에, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 USB OTG USB 메모리 제어용 소프트웨어를 구현하고 컴파일 한다. 이때 사전에 등록된 USB 메모리 디렉토리 및 파일 읽고, 쓰기 제어용 소프트웨어를 활용할 수 있다. Subsequently, the user implements and compiles the software for USB OTG USB memory control on the computer 10 on which the educational board development software is installed. At this time, the software for reading and writing the USB memory directory and files registered in advance can be utilized.

다음에, 컴퓨터(10)의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드(20)로 실행할 파일을 전송하며, 상기 메인 컨트롤러 보드(20)는 전송받은 USB OTG USB 메모리 제어용 소프트웨어를 구동하여, USB 메모리 제어용 소프트웨어의 실행 결과를 보여준다.Next, click the download button of the educational board development software of the computer 10 to transmit a file to be executed to the main controller board 20, and the main controller board 20 drives the received USB OTG USB memory control software Then, the execution result of the software for USB memory control is shown.

(2) SATA(Serial ATA) 인터페이스 제어 교육(2) SATA (Serial ATA) interface control training

시스템 제어에 있어서 SATA 인터페이스 기반의 장치를 제어할 수 있는 능력을 배양시키는 교육을 수행한다.In system control, training is conducted to cultivate the ability to control devices based on SATA interfaces.

이를 위하여, 먼저 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결 한다.To this end, first, the main controller board 20 and the computer 10 on which education board development software is installed are connected to each other using an RS-232 and Ethernet cable.

그리고, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 SATA 하드디스크 제어용 소프트웨어를 구현하고 컴파일 한다. 이때 사전에 등록된 SATA 하드디스크 디렉토리 및 파일 읽고, 쓰기 제어용 소프트웨어를 활용할 수 있다. In addition, the user implements and compiles the SATA hard disk control software on the computer 10 on which education board development software is installed. At this time, the software for reading and writing the SATA hard disk directory and files registered in advance can be utilized.

컴퓨터(10)의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드(20)로 실행할 파일을 전송하며, 상기 메인 컨트롤러 보드(20)는 전송받은 SATA 하드디스크 제어용 소프트웨어를 구동하여 파일 생성 및 데이터 읽고, 쓰기 등의 소프트웨어의 실행 결과를 보여준다. Click the download button of the educational board development software of the computer 10 to transmit the file to be executed to the main controller board 20, and the main controller board 20 drives the transferred SATA hard disk control software to generate and generate files Shows the results of software execution such as reading and writing data.

(3) RS-232 통신 인터페이스 제어 교육 (3) RS-232 communication interface control training

시스템 제어에 있어서 산업용 통신에서 널리 쓰이는 RS-232 통신 인터페이스 기반의 장치를 제어할 수 있는 능력을 배양시키는 교육을 수행한다.In system control, we train to cultivate the ability to control devices based on RS-232 communication interface, which is widely used in industrial communication.

이를 위하여, 먼저 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결 한다. 그리고, 메인 컨트롤러 보드(20)에 트레이닝 보드(30)를 결착 한다.To this end, first, the main controller board 20 and the computer 10 on which education board development software is installed are connected to each other using an RS-232 and Ethernet cable. Then, the training board 30 is attached to the main controller board 20.

교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 시리얼 통신 명령에 의해 트레이닝 보드(30)에 장착된 LED를 제어하는 LED 제어용 소프트웨어를 구현하고 컴파일 한다. On the computer 10 on which the educational board development software is installed, the user implements and compiles the LED control software that controls the LED mounted on the training board 30 by a serial communication command.

컴퓨터(10)의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드(20)로 실행할 파일을 전송하며, 상기 메인 컨트롤러 보드(20)는 전송받은 LED 제어용 소프트웨어를 구동하여, 트레이닝 보드(30)를 제어하며, 트레이닝 보드(30)는 LED 제어용 소프트웨어의 실행 결과를 보여준다.Click the download button of the educational board development software of the computer 10 to transmit a file to be executed to the main controller board 20, the main controller board 20 drives the received LED control software, training board 30 ), And the training board 30 shows the execution result of the software for LED control.

(4) 이더넷(Ethernet) 통신 제어 교육(4) Ethernet communication control training

시스템 제어에 있어서 산업용 통신에서 널리 쓰이는 이더넷(Ethernet) 통신 인터페이스 기반의 장치를 제어할 수 있는 능력을 배양시키는 교육을 수행한다. In system control, education is conducted to cultivate the ability to control devices based on the Ethernet communication interface, which is widely used in industrial communication.

또한 본 발명에서는 여러 개의 장치를 멀티채널(multi-channel)로 제어할 수 있도록 개별 MAC(Media Access Control)을 가지는 포트를 제공한다.In addition, the present invention provides a port having a separate MAC (Media Access Control) so that multiple devices can be controlled by multi-channel.

이를 위하여, 먼저 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결 하고, 메인 컨트롤러 보드(20)에 트레이닝 보드(30)를 결착 한다.To this end, first, the main controller board 20 and the computer 10 on which training board development software is installed are connected to each other using an RS-232 and ethernet cable, and the training board 30 is connected to the main controller board 20. ).

이후에, TCP/IP 서버 프로그램 포트 8000을 가지는 테스트 프로그램이 설치된 테스트 컴퓨터를 동일한 LAN 에 연결하며, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 TCP/IP 클라이언트 프로그램에 의해 트레이닝 보드(30)에 장착된 LED를 제어하는 LED 제어용 소프트웨어를 구현하고 컴파일 한다. Thereafter, the test computer having the test program having the TCP / IP server program port 8000 is connected to the same LAN, and the user is trained by the TCP / IP client program on the computer 10 where the educational board development software is installed. ) Compile and compile the LED control software that controls the LEDs mounted on it.

컴퓨터(10)의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드(20)로 실행할 파일을 전송하며, 메인 컨트롤러 보드(20)는 클라이언트 실행파일(LED 제어용 소프트웨어)을 실행시키고, 테스트 컴퓨터의 서버 프로그램으로 동작을 테스트하도록 한다.Click the download button of the educational board development software of the computer 10 to transmit a file to be executed to the main controller board 20, the main controller board 20 executes a client executable file (LED control software), and a test computer Let's test the operation with the server program.

3. 하드웨어 보안 칩인 TPM을 활용한 여러 가지 시나리오별 보안 기능 교육3. Training of security functions for each scenario using TPM, a hardware security chip

상기에서는 O/S가 탑재된 일반적인 임베디드 시스템의 여러 가지 장치 제어에 대해 기술하였다. 이것은 보안 관점에서 여러 가지 취약점들을 가지며, 사실상 해킹에 무방비로 노출되었다고 말할 수 있다. In the above, various device control of a general embedded system equipped with O / S has been described. It can be said that it has several vulnerabilities from a security point of view, and in fact has been exposed to hacking without defense.

다음은 앞서 관련 분야 배경 기술에서 언급한 기기 보안에서 필수적인 (1) 인증(Authentication), (2)암호(Cryptography), (3)데이터 보호(Data Protection), (4) 플랫폼 보호(Platform Protection), (5) 물리적 보호(Physical Protection) 등이 개발된 본 발명을 활용하여 어떻게 적용될 수 있는지 서술한다.The following are essential for device security mentioned in the background of related fields (1) Authentication, (2) Cryptography, (3) Data Protection, (4) Platform Protection, (5) It describes how physical protection can be applied using the developed invention.

(시나리오 1 - 인증(Authentication) 교육)(Scenario 1-Authentication training)

기기는 각각의 고유 식별정보를 보유해야 하며, 이를 이용하여 기기 인증을 수행하며, 이를 교육한다. The device must have unique identification information for each device, and it is used to perform device authentication and training.

먼저, 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결 한다.First, the main controller board 20 and the computer 10 on which education board development software is installed are connected to each other using an RS-232 and Ethernet cable.

그리고, 메인 컨트롤러 보드(20)에 TPM 모듈 보드(40)를 결착 한다.Then, the TPM module board 40 is attached to the main controller board 20.

교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(20)에서 사용자가 TPM의 EK(Endorsement Key) 생성 및 공개키 부분을 검출하는 소프트웨어를 구현하고 컴파일 한다. On the computer 20 on which the educational board development software is installed, the user implements and compiles the software that detects the end key (EK) of the TPM and the public key part.

또한, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(20)에서 사용자가 EK 의 공개키를 활용하여 고유 식별정보 암호화 소프트웨어를 구현하고 컴파일한다.In addition, the user implements and compiles the unique identification information encryption software by using the public key of the EK on the computer 20 on which the educational board development software is installed.

이후에, 컴퓨터(10)에서 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드(20)로 TPM의 EK(Endorsement Key) 생성 및 공개키 부분을 검출하는 소프트웨어와 EK 의 공개키를 활용하여 고유 식별정보 암호화 소프트웨어를 전송한다.Subsequently, by clicking the download button of the educational board development software on the computer 10, the software that detects the end key of the TPM and the public key portion of the TPM with the main controller board 20 and the public key of the EK are utilized. The unique identification information encryption software is transmitted.

상기 메인 컨트롤러 보드(20)는 TPM의 EK(Endorsement Key) 생성 및 공개키 부분을 검출하는 소프트웨어를 구동하여 상기 TPM 모듈 보드(40)로 EK 공개키와 비밀키의 생성을 요청하여 생성된 EK 공개키를 전송받아, EK 의 공개키를 활용하여 고유 식별정보 암호화 소프트웨어를 구동하여 메인 컨트롤러 보드(20)의 고유 식별 정보를 암호화하여 TPM 모듈 보드(40)로 전송한다.The main controller board 20 drives the software that detects the end key (EK) generation and public key part of the TPM, and requests the generation of the EK public key and the secret key to the TPM module board 40 to release the EK generated Upon receiving the key, the EK's public key is used to drive the unique identification information encryption software to encrypt the unique identification information of the main controller board 20 and transmit it to the TPM module board 40.

그러면, TPM 모듈 보드는 EK 비밀키를 이용하여 복호화하여 고유 식별 정보를 확인하고 확인된 고유 식별 정보를 메인 컨트롤러 보드(20)로 전송하며, 메인 컨트롤러 보드(20)는 전송받은 고유 식별 정보의 일치 여부를 확인한다.Then, the TPM module board decrypts using the EK secret key to check the unique identification information and transmits the identified unique identification information to the main controller board 20, and the main controller board 20 matches the transmitted unique identification information. Check whether or not.

(시나리오 2 - 인증(Authentication) 교육)(Scenario 2-Authentication training)

기기 간 중요정보 전송 시 혹은 기기 제어를 위한 상호연결 수행 시 상호인증이 선행되어야 하는데 이러한 점에 대하여 교육한다.Mutual authentication must be preceded when transmitting important information between devices or performing interconnection for device control.

먼저, 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결하며, 메인 컨트롤러 보드(20)에 TPM 모듈 보드(40)를 결착한다.First, the main controller board 20 and the computer 10 on which education board development software is installed are connected to each other using an RS-232 and Ethernet cable, and the TPM module board 40 is connected to the main controller board 20. Binds.

다음에, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 TPM의 RSA(Rivest Shamir Adleman) 서명키 생성 및 공개키 부분을 검출하는 소프트웨어를 구현하고 컴파일하며, TCP/IP 서버 클라이언트 소프트웨어를 구현한다. Next, on a computer 10 with educational board development software installed, the user implements and compiles software that detects the TPM's Rivest Shamir Adleman (RSA) signature key and public key portion, and implements TCP / IP server client software. do.

이후에, 컴퓨터(10)는 사용자가 TPM의 RSA(Rivest Shamir Adleman) 서명키 생성 및 공개키 부분을 검출하는 소프트웨어와 TCP/IP 서버 클라이언트 소프트웨어를 메인 컨트롤러 보드(20)로 전송한다.Subsequently, the computer 10 transmits software for detecting a user's RSA (Rivest Shamir Adleman) signature key and public key portion of the TPM and TCP / IP server client software to the main controller board 20.

상기 메인 컨트롤러 보드(20)는 TPM의 RSA(Rivest Shamir Adleman) 서명키 생성 및 공개키 부분을 검출하는 소프트웨어를 구동하여 TPM 모듈보드(40)로 RSA 서명키 생성을 요청하여, 생성된 RSA 서명키를 TPM 모듈 보드(40)로부터 전송받고 공개키를 검출하여 TCP/IP 서버 클라이언트 소프트웨어를 구동하여 RSA 서명 키의 공개키 부분을 서버에 전송한다. The main controller board 20 drives software that detects the TPM's Rivest Shamir Adleman (RSA) signature key and public key portion, and requests the TPM module board 40 to generate the RSA signature key, thereby generating the generated RSA signature key Is transmitted from the TPM module board 40, detects the public key, drives the TCP / IP server client software, and transmits the public key portion of the RSA signature key to the server.

이후에, 메인 컨트롤러 보드(20)는 서버에 데이터 송/수신 전에 TPM을 활용하여 서명 키의 비밀키로 중요 정보(secret information)를 서명 후 전송하고, 서버는 서명 키의 공개키로 서명 확인 및 서명 후 전송한다.Thereafter, the main controller board 20 signs and transmits secret information with the secret key of the signing key by using the TPM before data transmission / reception to the server, and the server confirms and signs the signature with the public key of the signing key. send.

(시나리오 3 - 암호(Cryptography) 교육)(Scenario 3-Cryptography Education)

암호키는 안전성이 검증된 방법으로 생성, 갱신, 분배, 사용, 저장, 파기되어야 하는데, 이러한 점을 교육한다.Cryptographic keys must be created, updated, distributed, used, stored, and destroyed in a method that has been verified for safety, and this is educated.

이를 위하여, 먼저 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결하며, 매인 컨트롤러 보드(20)에 TPM 모듈 보드(40)를 결착 한다.To this end, first, the main controller board 20 and the computer 10 having educational board development software installed are connected to each other using RS-232 and ethernet cables, and the TPM module board ( 40).

교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 TPM의 SRK(Storage Root Key)를 생성하는 프로그램을 구현하고, SRK을 부모키로 각각 암호화에 사용할 RSA 키쌍과 서명에 사용할 RSA 키 쌍을 생성하는 프로그램을 구현한다. On the computer 10 with educational board development software installed, the user implements a program that generates a storage root key (SRK) of the TPM, and generates an RSA key pair to be used for encryption and an RSA key pair to be used for signing, respectively, using the SRK as a parent key. Implement the program.

또한, 컴퓨터(10)에서 암호화에 사용할 키로 TPM_Seal 명령을 활용하여 TPM 내부에서 암호화를 수행하는 프로그램을 구현하며, 복호화에 사용할 키로 TPM_UnSeal 명령을 활용하여 TPM 내부에서 복호화를 수행하는 프로그램을 구현한다. In addition, the computer 10 implements a program that performs encryption inside the TPM by using the TPM_Seal command as a key to be used for encryption, and implements a program that performs decryption inside the TPM by using the TPM_UnSeal command as a key to be used for decryption.

또한, 컴퓨터(10)에서 서명 키로 TPM_Sign 명령을 활용하여 TPM 내부에서 서명을 수행하는 프로그램을 구현하고, 서명 키로 TPM_VerifySign 명령을 활용하여 서명 확인을 수행하는 프로그램을 구현한다.   In addition, the computer 10 implements a program that performs signature within the TPM by using the TPM_Sign command as a signing key, and implements a program that performs signature verification by using the TPM_VerifySign command as a signing key.

상기 컴퓨터(10)에서 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드(20)로 실행할 파일을 전송하여 실행 결과를 확인한다.Click the download button of the educational board development software from the computer 10 to send a file to be executed to the main controller board 20 to check the execution result.

(시나리오 4 - 암호(Cryptography) 교육)(Scenario 4-Cryptography Education)

난수성이 검증된 난수 생성 알고리즘을 이용하여 안전하게 난수를 생성하는 것을 교육한다.It is trained to safely generate random numbers using a random number generation algorithm with proven randomness.

먼저 메인 컨트롤러 보드와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결 한다. 메인 컨트롤러 보드(20)에 TPM 모듈 보드(40)를 결착 한다.First, connect the main controller board and the computer with educational board development software to each other using RS-232 and Ethernet cables. The TPM module board 40 is attached to the main controller board 20.

교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 TPM_GetRandom 또는 TPM_StirRandom 명령을 구현하고, TPM으로부터 요청된 결과에 따른 난수를 저장하고 디스플레이하는 프로그램을 구현한다. On a computer 10 on which educational board development software is installed, a user implements a TPM_GetRandom or TPM_StirRandom command, and implements a program that stores and displays random numbers according to a result requested from the TPM.

상기 컴퓨터(10)에서 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 상기 메인 컨트롤러 보드로 실행할 파일을 전송하고, 실행 결과를 확인한다.     Click the download button of the educational board development software from the computer 10 to transmit a file to be executed to the main controller board, and check the execution result.

(시나리오 5 - 데이터 보호(Data Protection) 교육)(Scenario 5-Data Protection Training)

기기에 저장되는 중요정보는 암호화 또는 난독화하는 교육을 수행한다.Important information stored in the device is encrypted or obfuscated.

먼저, 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결하여, 메인 컨트롤러 보드(20)에 TPM 모듈 보드(40)를 결착한다.First, the TPM module board 40 is connected to the main controller board 20 by connecting the main controller board 20 and the computer 10 on which training board development software is installed to each other using an RS-232 and Ethernet cable. Binds.

교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 TPM_SHA1Start, TPM_SHA1Update 및 TPM_SHA1Complete, TPM_SHA1CompleteExtend 명령을 구현하고, 해시함수의 입력에 사용할 사용자 패스워드(Password)를 해당 명령들을 사용하여 전송 후 TPM 모듈 보드(40)로부터 응답 받은 20 [byte] 해시값을 메모리에 저장하는 프로그램을 구현한다.After the user implements the TPM_SHA1Start, TPM_SHA1Update, TPM_SHA1Complete, and TPM_SHA1CompleteExtend commands on the computer 10 on which the educational board development software is installed, transmits the user password (Password) to be used for the input of the hash function using the corresponding commands, and then transmits the TPM module board (40 ) It implements a program that stores the 20 [byte] hash value received from the memory in memory.

이후에, 컴퓨터의 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드로 실행할 파일을 전송하여 실행 결과를 확인한다.After that, click the download button of the software for development of educational boards of the computer to transfer the files to be executed to the main controller board to check the execution results.

(시나리오 6 - 데이터 보호(Data Protection) 교육)(Scenario 6-Data Protection Training)

중요한 정보를 삭제할 경우 허가된 사람만이 수행할 수 있도록 한다.When deleting important information, make sure that only authorized persons can perform it.

이를 위하여, 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결 한다. 그리고, 메인 컨트롤러 보드(20)에 TPM 모듈 보드(40)를 결착 한다.To this end, the main controller board 20 and the computer 10 equipped with educational board development software are connected to each other using an RS-232 and Ethernet cable. Then, the TPM module board 40 is attached to the main controller board 20.

교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 TPM_Startup, TPM_PhysicalPresence 및 TPM_PhysicalEnable, TPM_SetPhysicalDeActivated, TPM_CreateEndormentKeyPair, TPM_OIAP, TPM_OSAP, TPM_TakeOwnerShip 명령을 구현하고, 설정된 오너의 패스워드(password)가 일치할 경우 설정된 타겟 파일 또는 데이터를 지우는 프로그램을 구현하여, 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드로 실행할 파일을 전송하고, 실행 결과를 확인한다.On the computer 10 with educational board development software installed, the user implements the TPM_Startup, TPM_PhysicalPresence and TPM_PhysicalEnable, TPM_SetPhysicalDeActivated, TPM_CreateEndormentKeyPair, TPM_OIAP, TPM_OSAP, TPM_TakeOwnerShip commands, and if the set owner's password (password) is set or the target file's password (password is set) Implement the program to erase the, click the download button of the educational board development software, transfer the file to be executed to the main controller board, and check the execution result.

(시나리오 7 - 플랫폼 보호(Platform Protection) 교육)(Scenario 7-Platform Protection Training)

주요 설정 값 및 실행코드에 대한 무결성 검증 기능을 지원하는 교육을 수행한다.It conducts training to support the integrity verification function for main setting values and execution codes.

먼저, 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결하며, 메인 컨트롤러 보드(20)에 TPM 모듈 보드(40)를 결착 한다. First, the main controller board 20 and the computer 10 on which education board development software is installed are connected to each other using an RS-232 and Ethernet cable, and the TPM module board 40 is connected to the main controller board 20. Should be bound.

교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 TPM_PCRRead, TPM_PCRReset, TPM_PCRExtend 명령을 구현하고, 실행 코드의 무결성 검증을 위한 프로그램을 구현하며, 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드로 실행할 파일을 전송하고, 실행 결과를 확인한다.On the computer 10 with educational board development software installed, the user implements the TPM_PCRRead, TPM_PCRReset, and TPM_PCRExtend commands, implements a program for verifying the integrity of executable code, and clicks the download button of the educational board development software to the main controller board Send the file to be executed, and check the execution result.

(시나리오 8 - 플랫폼 보호(Platform Protection) 교육)(Scenario 8-Platform Protection training)

하드웨어 및 소프트웨어의 자체 시험 기능을 제공하는 교육을 수행한다.Conduct training that provides self-testing capabilities of hardware and software.

이를 위하여, 먼저 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결 한다. 그리고, 메인 컨트롤러 보드(20)에 TPM 모듈 보드(40)를 결착한다.To this end, first, the main controller board 20 and the computer 10 on which education board development software is installed are connected to each other using an RS-232 and Ethernet cable. Then, the TPM module board 40 is attached to the main controller board 20.

교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 TPM_Startup, TPM_ContinueSelfTest 명령을 구현하고, TPM 응답 메시지로부터 자체 시험 결과에 대한 결과를 화면에 표시하는 프로그램을 구현하여, 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드로 실행할 파일을 전송하여, 실행 결과를 확인한다. On the computer 10 with educational board development software installed, the user implements the TPM_Startup, TPM_ContinueSelfTest command, and implements a program that displays the results of the self-test results on the screen from the TPM response message, thereby downloading the educational board development software button Click to transfer the file to be executed to the main controller board, and check the execution result.

(시나리오 9 - 물리적 보호(Physical Protection) 교육)(Scenario 9-Physical Protection Training)

비인가자의 무단 조작을 탐지하여 대응할 수 있는 기능을 지원하는 교육을 수행한다.It conducts education to support functions that can detect and respond to unauthorized manipulation.

먼저, 메인 컨트롤러 보드(20)와 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)를 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결한다. First, the main controller board 20 and the computer 10 on which education board development software is installed are connected to each other using an RS-232 and Ethernet cable.

그리고, 메인 컨트롤러 보드(20)에 트레이닝 보드(30)를 결착 한다.   Then, the training board 30 is attached to the main controller board 20.

이후에, 교육용 보드 개발용 소프트웨어가 설치된 컴퓨터(10)에서 사용자가 트레이닝 보드(30)에 장착된 마이크로스위치 제어용 소프트웨어를 구현하고 컴파일 한다. 이때 사전에 등록된 안티탬퍼(Anti-Tamper) 검출용 프로그램을 활용할 수 있다. 스위치의 입력 신호가 검출되면 특정 영역의 정보를 삭제하는 기능의 프로그램을 구현한다. 교육용 보드 개발용 소프트웨어의 다운로드 버튼을 클릭하여 메인 컨트롤러 보드로 실행할 파일을 전송하여 실행 결과를 확인한다. Subsequently, the user implements and compiles the software for controlling the micro switch mounted on the training board 30 in the computer 10 on which the educational board development software is installed. At this time, a pre-registered anti-tamper detection program can be used. When a switch input signal is detected, a program with a function of deleting information in a specific area is implemented. Click the download button of the educational board development software to transfer the file to be executed to the main controller board to check the execution result.

본 발명은 트레이닝 보드와 신뢰 플랫폼 모듈을 이용하여 보안 교육 등을 수행할 수 있도록 한다.The present invention enables security education and the like to be performed using a training board and a trust platform module.

상기와 같이 설명된 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성된다.

[용어 해설]
1. TPM_UnSeal:
TPM_Seal 명령에 의해 암호화된 데이터의 복호화에 TPM_UnSeal 명령을 사용.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00004


2. TPM_Sign:
이 명령은 사용자가 디지털 서명 생성을 위해 사용.
명령 구조는 아래 도식과 같다.
Figure 112019131537251-pat00005

3. TPM_VerifySign:
TPM_Sign 명령에 의해 생성된 디지털 서명의 검증을 위한 사용자 명령.

Figure 112019131537251-pat00006


4. TPM_GetRandom:
이 명령은 특정 크기의 난수를 TPM에게 요청할 때 사용.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00007


5. TPM_StirRandom:
이 명령은 TPM의 난수 생성 입력 엔트로피를 추가하고자 할 경우 사용한다.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00008

6. TPM_SHA1Start:
TPM은 마스터 다바이스가 전송한 입력 메시지에 대해 SHA-1 엔진을 이용한 해시데이터를 제공한다. 마스터 디바이스가 TPM의 SHA-1 엔진을 이용하여, 해쉬 데이터를 획득하고자 할 경우는 반드시 이 명령을 최초로 TPM에게 전송해야 한다. 이 명령을 수신한 TPM은 SHA-1 처리쓰레드를 실행하게 된다.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00009


7. TPM_SHA1Update:
사용자의 해쉬 입력 메시지가 64 바이트 이상일 경우는 TPM_SHA1Update 명령을 사용하여, 입력 데이터를 전송해야 한다.
명령 구조는 아래 도식과 같다.
Figure 112019131537251-pat00010


8. TPM_SHA1Complete:
이 명령은 마스터 디바이스가 TPM에게 사용자 입력 메시지에 대한 SHA-1 실행 결과인 20 바이트의 해쉬 데이터를 획득하고자 할 때 사용한다.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00011

9. TPM_SHA1CompleteExtend:
이 명령은 사용자 입력 데이터에 대한 SHA-1 해쉬 데이터를 구하는 것에 더해서, 그 결과를 지정된 PCR(Platform Configuration Register)에 확장(Extend)하는 기능을 동시에 수행한다.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00012

10. TPM_PhysicalPresence:
PhysicalPresence 명령은 권한 있는 사람이 TPM 제어를 직접 수행하고 있음을 증명하는 것.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00013


11. TPM_PhysicalEnable:
PhysicalEnable 명령은 TPM의 동작모드를 Enabled 상태로 전환시키는 명령.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00014


12. TPM_SetPhysicalDeActivated:
명령은 TPM의 동작모드를 Activated 또는 Inactivated로 전환시키는 명령.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00015


13. TPM_CreateEndormentKeyPair:
EK(EndormentKey) 생성 명령.
명령 구조는 아래 도식과 같다.
Figure 112019131537251-pat00016


14. TPM_OIAP:
이 프로토콜은 객체 독립적 인증 프로토콜로써, 인증이 요구되는 TPM 명령 중 TPM 내부 자원의 특정 객체(Entity)를 참조하지 않는 명령에 대해 사용.
명령 구조는 아래 도식과 같다.
Figure 112019131537251-pat00017


15. TPM_OSAP:
이 프로토콜은 객체 의존적 인증 프로토콜로서, TPM 내부의 특정 객체를 참조하며, 인증이 요구되는 명령 사용시 이용된다.
명령 구조는 아래 도식과 같다.
Figure 112019131537251-pat00018


16. TPM_TakeOwnerShip:
TPM의 오너(owner) 획득 명령.
Takeowership 명령은 두개의 암호 설정이 요청되며, 해당 정보는 요청 메시지에 포함된다. 하나는 오너 인증에 사용되는 암호이고, 다른 하나는 SRK(Storage Root Key) 사용시 인증 암호임.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00019



17. TPM_PCRead:
이 명령은 지정된 PCR의 데이터를 마스터 디바이스에게 제공한다
명령 구조는 아래 도식과 같다.
Figure 112019131537251-pat00020


18. TPM_PCReset:
이 명령은 지정된 PCR의 데이터를 초기화한다.
명령 구조는 아래 도식과 같다.

Figure 112019131537251-pat00021



19. TPM_PCRExtend:
이 명령은 지정된 PCR에 새로운 SHA-1 해쉬 데이터를 확장한다.
명령 구조는 아래 도식과 같다.
Figure 112019131537251-pat00022


20. TPM_Startup:
TPM에 전원이 인가되면, 내부 동작에 의해 자동적으로 TPM_INIT이 내부에서 실행된다. 이후 마스터 디바이스에 의해 전송되는 TPM_Startup 명령을 기다린다. TPM_Startup 명령 구조는 아래와 같다.

Figure 112019131537251-pat00023

TPM_Startup 명령이 수신되면, TPM 내부에서 제한된 정해진 자원 테스트 진행 후, 동작 조건에 따라 내부기능 활성화 및 제어 가능한 명령들이 정해진다. TCG 표준에서 최초 TPM은 생산자에 의해 S8 동작 모드로 공급되도록 권장되고 있으며, 이 조건에서는 물리적 존재 확인 명령이 정상적으로 처리된 후에만 동작 모드 전환을 위한 다른 명령들이 정상 처리된다.

21. TPM_ContinueSelfTest:
이 명령은 TPM이 가진 내부 기능들에 대해 자가진단(Self-test)을 수행시키는 명령
Figure 112019131537251-pat00024

The configuration and method of the above-described embodiments described above may not be limitedly applied, but the above-described embodiments are configured by selectively combining all or part of each embodiment so that various modifications can be made.

[Glossary]
1. TPM_UnSeal:
The TPM_UnSeal command is used to decrypt the data encrypted by the TPM_Seal command.
The command structure is shown in the diagram below.
Figure 112019131537251-pat00004


2. TPM_Sign:
This command is used by the user to generate digital signatures.
The command structure is shown in the diagram below.
Figure 112019131537251-pat00005

3. TPM_VerifySign:
User command to verify the digital signature generated by the TPM_Sign command.

Figure 112019131537251-pat00006


4. TPM_GetRandom:
This command is used to request a random number of a certain size from the TPM.
The command structure is shown in the diagram below.

Figure 112019131537251-pat00007


5. TPM_StirRandom:
This command is used to add TPM random number generation input entropy.
The command structure is shown in the diagram below.

Figure 112019131537251-pat00008

6. TPM_SHA1Start:
The TPM provides hash data using the SHA-1 engine for input messages transmitted by the master device. If the master device wants to acquire hash data using the TPM's SHA-1 engine, it must first send this command to the TPM. Upon receiving this command, the TPM executes the SHA-1 processing thread.
The command structure is shown in the diagram below.

Figure 112019131537251-pat00009


7. TPM_SHA1Update:
If the user's hash input message is 64 bytes or more, the input data must be transmitted using the TPM_SHA1Update command.
The command structure is shown in the diagram below.
Figure 112019131537251-pat00010


8. TPM_SHA1Complete:
This command is used when the master device wants to obtain 20 bytes of hash data that is the result of SHA-1 execution of the user input message to the TPM.
The command structure is shown in the diagram below.

Figure 112019131537251-pat00011

9. TPM_SHA1CompleteExtend:
In addition to obtaining SHA-1 hash data for user input data, this command simultaneously performs the function of extending the result to a designated Platform Configuration Register (PCR).
The command structure is shown in the diagram below.

Figure 112019131537251-pat00012

10. TPM_PhysicalPresence:
The PhysicalPresence command is to prove that an authorized person is performing TPM control directly.
The command structure is shown in the diagram below.

Figure 112019131537251-pat00013


11. TPM_PhysicalEnable:
PhysicalEnable command is a command to change the operation mode of TPM to Enabled state.
The command structure is shown in the diagram below.

Figure 112019131537251-pat00014


12. TPM_SetPhysicalDeActivated:
Command is to switch the operation mode of TPM to Activated or Inactivated.
The command structure is shown in the diagram below.

Figure 112019131537251-pat00015


13. TPM_CreateEndormentKeyPair:
EK (EndormentKey) generation command.
The command structure is shown in the diagram below.
Figure 112019131537251-pat00016


14. TPM_OIAP:
This protocol is an object-independent authentication protocol, and it is used for commands that do not refer to a specific object (Entity) of TPM internal resources among TPM commands requiring authentication.
The command structure is shown in the diagram below.
Figure 112019131537251-pat00017


15. TPM_OSAP:
This protocol is an object-dependent authentication protocol. It refers to a specific object inside the TPM and is used when using commands that require authentication.
The command structure is shown in the diagram below.
Figure 112019131537251-pat00018


16.TPM_TakeOwnerShip:
TPM's owner acquisition order.
The Takeowership command requires two password settings, and the information is included in the request message. One is the password used for owner authentication, and the other is the authentication password when using SRK (Storage Root Key).
The command structure is shown in the diagram below.

Figure 112019131537251-pat00019



17. TPM_PCRead:
This command provides the data of the specified PCR to the master device.
The command structure is shown in the diagram below.
Figure 112019131537251-pat00020


18. TPM_PCReset:
This command initializes the specified PCR data.
The command structure is shown in the diagram below.

Figure 112019131537251-pat00021



19. TPM_PCRExtend:
This command extends new SHA-1 hash data to the specified PCR.
The command structure is shown in the diagram below.
Figure 112019131537251-pat00022


20. TPM_Startup:
When power is applied to the TPM, TPM_INIT is automatically executed internally by an internal operation. Then wait for the TPM_Startup command sent by the master device. TPM_Startup command structure is as follows.

Figure 112019131537251-pat00023

When the TPM_Startup command is received, after a limited resource test is performed inside the TPM, commands capable of activating and controlling internal functions are determined according to operating conditions. In the TCG standard, the initial TPM is recommended to be supplied to the S8 mode of operation by the producer. Under this condition, other commands for switching the mode of operation are normally processed only after the physical presence confirmation command is normally processed.

21.TPM_ContinueSelfTest:
This command performs self-test on the internal functions of the TPM.
Figure 112019131537251-pat00024

10 : 컴퓨터 20 : 메인 컨트롤러 보드
30 : 트레이닝 보드 40 : 신뢰 플랫폼 모듈 보드
10: computer 20: main controller board
30: training board 40: trust platform module board

Claims (15)

교육용 보드 개발용 소프트웨어가 설치되어 있으며, 교육용 보드 개발용 소프트웨어를 이용하여 사용자가 구현한 교육용 제어 프로그램을 컴파일하는 컴퓨터;
상기 컴퓨터에서 개발된 교육용 제어 프로그램을 실행하여 트레이닝 보드를 제어하는 메인 컨트롤러 보드;
상기 메인 컨트롤러 보드에 결착되어 있으며, 제어 대상 교육 기기가 장착되어 있으며, 상기 메인 컨트롤러 보드의 제어에 따라 실행 결과를 보여주는 트레이닝 보드; 및
상기 메인 컨트롤러 보드와 연동되어 인증(Authentication), 암호(Cryptography), 데이터 보호(Data Protection), 플랫폼 보호(Platform Protection) 및 물리적 보호(Physical Protection) 기능을 수행하는 신뢰 플랫폼 모듈 보드를 포함하며,
상기 제어 대상 교육 기기는 AC 전원, 비휘발성 메모리(EEPROM), 부저, 발광다이오드 및 마이크로스위치 중 적어도 하나 이상이며,
상기 컴퓨터는 사용자가 구현한 TPM의 EK(Endorsement Key) 생성 및 공개키 부분을 검출하는 소프트웨어와 EK 의 공개키를 활용하여 상기 제어 대상 교육 기기에 대한 고유 식별정보 암호화 소프트웨어를 상기 메인 컨트롤러 보드로 전송하고, 상기 메인 컨트롤러 보드는 TPM의 EK(Endorsement Key) 생성 및 공개키 부분을 검출하는 소프트웨어를 구동하여 상기 신뢰 플랫폼 모듈 보드로 EK 공개키와 비밀키의 생성을 요청하여 생성된 EK 공개키를 전송받아, EK 의 공개키를 활용하여 고유 식별정보 암호화 소프트웨어를 구동하여 상기 메인 컨트롤러 보드의 고유 식별 정보를 암호화하여 상기 신뢰 플랫폼 모듈 보드로 전송하며, 상기 신뢰 플랫폼 모듈 보드는 EK 비밀키를 이용하여 복호화하여 고유 식별 정보를 확인하고 확인된 고유 식별 정보를 상기 메인 컨트롤러 보드로 전송하며,
상기 메인 컨트롤러 보드와 컴퓨터가 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결되고 상기 메인 컨트롤러 보드에 상기 신뢰 플랫폼 모듈 보드가 결착된 상태에서, 상기 컴퓨터는 사용자가 구현한 TPM의 RSA(Rivest Shamir Adleman) 서명키 생성 및 공개키 부분을 검출하는 소프트웨어와 TCP/IP 서버 클라이언트 소프트웨어를 상기 메인 컨트롤러 보드로 전송하며, 상기 메인 컨트롤러 보드는 TPM의 RSA(Rivest Shamir Adleman) 서명키 생성 및 공개키 부분을 검출하는 소프트웨어를 구동하여 상기 신뢰 플랫폼 모듈 보드로 RSA 서명키 생성을 요청하여, 생성된 RSA 서명키를 신뢰 플랫폼 모듈 보드로부터 전송받고 공개키를 검출하여 TCP/IP 서버 클라이언트 소프트웨어를 구동하여 RSA 서명 키의 공개키 부분을 서버에 전송하며, 상기 메인 컨트롤러 보드는 상기 서버에 데이터 송/수신 전에 TPM을 활용하여 서명 키의 비밀키로 중요 정보(secret information)를 서명 후 전송하고, 상기 서버는 서명 키의 공개키로 서명 확인 및 서명 후 전송하며,
상기 컴퓨터는 사용자가 구현한 TPM의 SRK(Storage Root Key)를 생성하는 프로그램과, SRK을 부모키로 각각 암호화에 사용할 RSA 키쌍과 서명에 사용할 RSA 키 쌍을 생성하는 프로그램과, 암호화에 사용할 키로 TPM_Seal 명령을 활용하여 TPM 내부에서 암호화를 수행하는 프로그램과, 복호화에 사용할 키로 TPM_UnSeal 명령을 활용하여 TPM 내부에서 복호화를 수행하는 프로그램과, 서명 키로 TPM_Sign 명령을 활용하여 TPM 내부에서 서명을 수행하는 프로그램 및 서명 키로 TPM_VerifySign 명령을 활용하여 서명 확인을 수행하는 프로그램을 상기 메인 컨트롤러 보드로 전송하여 실행 결과를 확인하며,
상기 컴퓨터는 TPM_GetRandom 또는 TPM_StirRandom 명령과 사용자가 구현한 TPM으로부터 요청된 결과에 따른 난수를 저장하고 디스플레이하는 프로그램을 상기 메인 컨트롤러 보드로 전송하고, 실행 결과를 확인하고,
상기 컴퓨터는 TPM_SHA1Start, TPM_SHA1Update 및 TPM_SHA1Complete, TPM_SHA1CompleteExtend 명령과 사용자가 구현한 해시함수의 입력에 사용할 사용자 패스워드(Password)를 해당 명령들을 사용하여 전송 후 상기 신뢰 플랫폼 모듈 보드로부터 응답 받은 20 [byte] 해시값을 메모리에 저장하는 프로그램을 상기 메인 컨트롤러 보드로 전송하여 실행 결과를 확인하며,
상기 컴퓨터는 TPM_Startup, TPM_PhysicalPresence 및 TPM_PhysicalEnable, TPM_SetPhysicalDeActivated, TPM_CreateEndormentKeyPair, TPM_OIAP, TPM_OSAP, TPM_TakeOwnerShip 명령과 사용자가 구현한 설정된 오너의 패스워드(password)가 일치할 경우 설정된 타겟 파일 또는 데이터를 지우는 프로그램을 상기 메인 컨트롤러 보드로 실행할 파일을 전송하고, 실행 결과를 확인하고,
상기 메인 컨트롤러 보드와 상기 컴퓨터가 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결되고 상기 메인 컨트롤러 보드에 상기 신뢰 플랫폼 모듈 보드가 결착된 상태에서, 상기 컴퓨터는 TPM_PCRRead, TPM_PCRReset, TPM_PCRExtend 명령과 사용자가 구현한 실행 코드의 무결성 검증을 위한 프로그램을 상기 메인 컨트롤러 보드로 전송하고, 실행 결과를 확인하며,
상기 메인 컨트롤러 보드와 상기 컴퓨터가 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결되고 상기 메인 컨트롤러 보드에 상기 신뢰 플랫폼 모듈 보드가 결착된 상태에서, 상기 컴퓨터는 TPM_Startup, TPM_ContinueSelfTest 명령과 사용자가 구현한 TPM 응답 메시지로부터 자체 시험 결과에 대한 결과를 화면에 표시하는 프로그램을 상기 메인 컨트롤러 보드로 전송하여, 실행 결과를 확인하는 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트.
A computer for installing educational board development software, and compiling the educational control program implemented by the user using the educational board development software;
A main controller board for controlling a training board by executing an educational control program developed in the computer;
A training board which is attached to the main controller board , is equipped with a training device to be controlled , and shows execution results under control of the main controller board; And
It includes a trust platform module board that is connected to the main controller board to perform authentication, cryptography, data protection, platform protection, and physical protection functions.
The control target educational device is at least one of AC power, non-volatile memory (EEPROM), a buzzer, a light emitting diode, and a micro switch,
The computer transmits the software for detecting the end key of the TPM implemented by the user and the public key portion of the TPM and the unique identification information encryption software for the education device to be controlled to the main controller board by using the public key of the EK. Then, the main controller board drives the software that detects the end key (EK) generation and public key part of the TPM, and requests the generation of the EK public key and secret key to the trusted platform module board, and transmits the generated EK public key. Receive, use the EK's public key to drive the unique identification information encryption software to encrypt the unique identification information of the main controller board and transmit it to the trusted platform module board, and the trusted platform module board decrypts it using the EK secret key To confirm the unique identification information, and the identified unique identification information to the main controller Transmitted to, and
When the main controller board and the computer are connected to each other using an RS-232 and Ethernet cable and the trust platform module board is attached to the main controller board, the computer is a user-developed TPM RSA (Rivest) Shamir Adleman) Software for detecting the signature key generation and public key portion and TCP / IP server client software are transmitted to the main controller board, and the main controller board generates the TSA RSA (Rivest Shamir Adleman) signature key and public key portion RSA signing by driving the TCP / IP server client software by receiving the generated RSA signing key from the trusting platform module board by requesting the RSA signing key to the trusting platform module board by driving the software that detects the The public key portion of the key is sent to the server, and the main controller board is sent to the server. By using the TPM before the data send / receive transfer of sensitive information (secret information) with the secret key of the signature key to the signature, and the server then transmits the signature verification, and signature with the public key of the signing key,
The computer is a program that generates a storage root key (SRK) of a TPM implemented by a user, a program that generates an RSA key pair to be used for encryption and an RSA key pair to be used for signing, respectively, and a TPM_Seal command as a key to be used for encryption As a program that performs encryption inside the TPM by using, and a program that performs decryption inside the TPM by using the TPM_UnSeal command as the key to be used for decryption, and a program and signature key that performs signature by using the TPM_Sign command as the signing key. A program that performs signature verification is transmitted to the main controller board by using the TPM_VerifySign command to confirm the execution result,
The computer transmits a program that stores and displays a random number according to the requested result from the TPM_GetRandom or TPM_StirRandom command and the user-implemented TPM to the main controller board, confirms the execution result,
The computer sends the TPM_SHA1Start, TPM_SHA1Update, TPM_SHA1Complete, TPM_SHA1CompleteExtend commands and the user password (Password) to be used to input the hash function implemented by the user using the commands, and receives the 20 [byte] hash value received from the trusted platform module board. The program stored in the memory is transmitted to the main controller board to check the execution result,
The computer erases the target program or data set by the controller when the TPM_Startup, TPM_PhysicalPresence and TPM_PhysicalEnable, TPM_SetPhysicalDeActivated, TPM_CreateEndormentKeyPair, TPM_OIAP, TPM_OSAP, TPM_TakeOwnerShip commands match the user's implemented set owner's password, or the controller's target program or data. Transfer files, check execution results,
When the main controller board and the computer are connected to each other using an RS-232 and Ethernet cable, and the trust platform module board is attached to the main controller board, the computer executes TPM_PCRRead, TPM_PCRReset, TPM_PCRExtend command and user The program for verifying the integrity of the execution code implemented by the system is transmitted to the main controller board, and the execution result is checked.
When the main controller board and the computer are connected to each other using an RS-232 and Ethernet cable and the trust platform module board is attached to the main controller board, the computer implements the TPM_Startup, TPM_ContinueSelfTest commands and the user Kit for trust platform development training utilizing TPM to check the execution result by sending a program that displays the result of self-test result from one TPM response message to the main controller board.
청구항 1항에 있어서,
상기 컴퓨터는 사용자가 구현한 상기 트레이닝 보드에 장착된 EEPROM 제어용 소프트웨어를 컴파일 한 후에, EEPROM 제어용 소프트웨어를 상기 메인 컨트롤러 보드로 전송하며, 상기 메인 컨트롤러 보드는 전송받은 EEPROM 제어용 소프트웨어를 구동하여, 상기 트레이닝 보드를 제어하여 EEPROM 제어용 소프트웨어의 실행 결과를 보여주는 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트.
The method according to claim 1,
After compiling the EEPROM control software mounted on the training board implemented by the user, the computer transmits EEPROM control software to the main controller board, and the main controller board drives the received EEPROM control software to drive the training board Kit for training trust platform development using TPM that shows the execution result of EEPROM control software by controlling the control.
청구항 1항에 있어서,
상기 컴퓨터는 사용자가 구현한 상기 트레이닝 보드에 장착된 GPIO 제어용 소프트웨어를 컴파일하여, GPIO 제어용 소프트웨어를 상기 메인 컨트롤러 보드로 전송하고, 상기 메인 컨트롤러 보드는 전송받은 GPIO 제어용 소프트웨어를 구동하여, 상기 트레이닝 보드를 제어하며, 상기 트레이닝 보드는 GPIO 제어용 소프트웨어의 실행 결과를 보여주는 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트.
The method according to claim 1,
The computer compiles the GPIO control software mounted on the training board implemented by the user, transmits GPIO control software to the main controller board, and the main controller board drives the received GPIO control software to load the training board. Control, the training board is a kit for training trust platform development using a TPM showing the execution results of the software for GPIO control.
청구항 1항에 있어서,
상기 메인 컨트롤러 보드의 USB OTG가 지원되는 USB port에 USB 메모리 장치가 연결된 상태에서, 상기 컴퓨터는 상기 사용자가 구현한 상기 트레이닝 보드에 장착된 USB OTG USB 메모리 제어용 소프트웨어를 컴파일하여, USB OTG USB 메모리 제어용 소프트웨어를 상기 메인 컨트롤러 보드로 전송하고, 상기 메인 컨트롤러 보드는 전송받은 USB OTG USB 메모리 제어용 소프트웨어를 구동하여, 상기 트레이닝 보드를 제어하며, 상기 트레이닝 보드는 USB OTG USB 메모리 제어용 소프트웨어의 실행 결과를 보여주는 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트.
The method according to claim 1,
With a USB memory device connected to a USB port that supports USB OTG of the main controller board, the computer compiles the software for USB OTG USB memory control mounted on the training board implemented by the user, and controls USB OTG USB memory. TPM that transmits software to the main controller board, and the main controller board drives the received USB OTG USB memory control software to control the training board, and the training board shows the execution result of the USB OTG USB memory control software Kit for training trust platform development using the tool.
청구항 1항에 있어서,
상기 컴퓨터는 사용자가 구현한 상기 트레이닝 보드에 장착된 SATA 하드디스크 제어용 소프트웨어를 컴파일하여, SATA 하드디스크 제어용 소프트웨어를 상기 메인 컨트롤러 보드로 전송하고, 상기 메인 컨트롤러 보드는 전송받은 SATA 하드디스크 제어용 소프트웨어를 구동하여, 상기 트레이닝 보드를 제어하며, 상기 트레이닝 보드는 SATA 하드디스크 제어용 소프트웨어의 실행 결과를 보여주는 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트.
The method according to claim 1,
The computer compiles the SATA hard disk control software mounted on the training board implemented by the user, transmits the SATA hard disk control software to the main controller board, and the main controller board drives the received SATA hard disk control software. By controlling the training board, the training board is a kit for training a trust platform development utilizing a TPM showing the execution result of the software for SATA hard disk control.
청구항 1항에 있어서,
상기 메인 컨트롤러 보드와 컴퓨터가 RS-232 및 이더넷(ethernet) 케이블을 이용하여 연결되고 상기 메인 컨트롤러 보드에 상기 트레이닝 보드가 결착된 상태에서, 상기 컴퓨터는 사용자가 시리얼 통신 명령에 의해 구현한 상기 트레이닝 보드에 장착된 LED를 제어하는 LED 제어용 소프트웨어를 컴파일하여, LED 제어용 소프트웨어를 상기 메인 컨트롤러 보드로 전송하고, 상기 메인 컨트롤러 보드는 전송받은 LED 제어용 소프트웨어를 구동하여, 상기 트레이닝 보드를 제어하며, 상기 트레이닝 보드는 LED 제어용 소프트웨어의 실행 결과를 보여주는 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트.
The method according to claim 1,
In the state that the main controller board and the computer are connected using an RS-232 and Ethernet cable and the training board is attached to the main controller board, the computer is the training board implemented by a user through a serial communication command. Compile the LED control software for controlling the LED mounted on, transmit the LED control software to the main controller board, the main controller board drives the received LED control software to control the training board, and the training board Is a kit for education of trust platform development using TPM that shows the execution result of the software for LED control.
청구항 1항에 있어서,
상기 메인 컨트롤러 보드와 컴퓨터가 RS-232 및 이더넷(ethernet) 케이블을 이용하여 서로 연결되고 상기 메인 컨트롤러 보드에 상기 트레이닝 보드가 결착되며, TCP/IP 서버 프로그램 포트 8000을 가지는 테스트 프로그램이 설치된 테스트 컴퓨터가 동일한 LAN 에 연결된 상태에서,
상기 컴퓨터는 사용자가 TCP/IP 클라이언트 프로그램에 의해 구현한 상기 트레이닝 보드에 장착된 LED를 제어하는 LED 제어용 소프트웨어를 컴파일하여 상기 메인 컨트롤러 보드로 전송하며, 상기 메인 컨트롤러 보드는 LED 제어용 소프트웨어를 실행시키고, 상기 테스트 컴퓨터의 서버 프로그램으로 동작을 테스트하도록 하는 TPM을 활용한 신뢰 플랫폼 개발 교육을 위한 키트.
The method according to claim 1,
The main controller board and the computer are connected to each other using an RS-232 and Ethernet cable, the training board is attached to the main controller board, and a test computer with a test program having a TCP / IP server program port 8000 is installed. While connected to the same LAN,
The computer compiles and transmits LED control software for controlling the LED mounted on the training board implemented by the TCP / IP client program to the main controller board, and the main controller board executes the LED control software, Kit for training trust platform development using TPM to test the operation with the server program of the test computer.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020180136595A 2018-11-08 2018-11-08 Kit for developing a trusted platform using Trusted Platform Module KR102111493B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180136595A KR102111493B1 (en) 2018-11-08 2018-11-08 Kit for developing a trusted platform using Trusted Platform Module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180136595A KR102111493B1 (en) 2018-11-08 2018-11-08 Kit for developing a trusted platform using Trusted Platform Module

Publications (1)

Publication Number Publication Date
KR102111493B1 true KR102111493B1 (en) 2020-05-15

Family

ID=70678777

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180136595A KR102111493B1 (en) 2018-11-08 2018-11-08 Kit for developing a trusted platform using Trusted Platform Module

Country Status (1)

Country Link
KR (1) KR102111493B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102678799B1 (en) 2024-01-09 2024-06-25 주식회사 티솔루션즈 Firmware write system to shorten production time of open platform boards

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050123152A (en) * 2003-04-10 2005-12-29 인터내셔널 비지네스 머신즈 코포레이션 Physical presence determination in a trusted platform
KR20100069384A (en) * 2008-12-16 2010-06-24 한국전자통신연구원 Method and apparatus for use restriction of encryption key
KR20150028837A (en) * 2012-09-04 2015-03-16 인텔 코포레이션 Measuring platform components with a single trusted platform module
KR20150072694A (en) 2013-12-20 2015-06-30 이재광 Cyber online network-based information security education and training system
KR101534194B1 (en) 2014-12-08 2015-07-08 한국인터넷진흥원 cybersecurity practical training system and method that reflects the intruder behavior patterns
KR20150105393A (en) * 2013-03-05 2015-09-16 인텔 코포레이션 User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system
KR20170002569U (en) * 2016-01-07 2017-07-17 (주)헬로소프트 arduino learning kit embed practice programs
KR20170111901A (en) * 2016-03-30 2017-10-12 강현섭 Apparatus for training Arduino integrated with PC

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050123152A (en) * 2003-04-10 2005-12-29 인터내셔널 비지네스 머신즈 코포레이션 Physical presence determination in a trusted platform
KR20100069384A (en) * 2008-12-16 2010-06-24 한국전자통신연구원 Method and apparatus for use restriction of encryption key
KR20150028837A (en) * 2012-09-04 2015-03-16 인텔 코포레이션 Measuring platform components with a single trusted platform module
KR20150105393A (en) * 2013-03-05 2015-09-16 인텔 코포레이션 User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system
KR20150072694A (en) 2013-12-20 2015-06-30 이재광 Cyber online network-based information security education and training system
KR101534194B1 (en) 2014-12-08 2015-07-08 한국인터넷진흥원 cybersecurity practical training system and method that reflects the intruder behavior patterns
KR20170002569U (en) * 2016-01-07 2017-07-17 (주)헬로소프트 arduino learning kit embed practice programs
KR20170111901A (en) * 2016-03-30 2017-10-12 강현섭 Apparatus for training Arduino integrated with PC

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102678799B1 (en) 2024-01-09 2024-06-25 주식회사 티솔루션즈 Firmware write system to shorten production time of open platform boards

Similar Documents

Publication Publication Date Title
US11036869B2 (en) Data security with a security module
KR102464299B1 (en) Blockchain implementation method and system
JP6275653B2 (en) Data protection method and system
US10211977B1 (en) Secure management of information using a security module
US8832778B2 (en) Methods and apparatuses for user-verifiable trusted path in the presence of malware
US8874922B2 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
Challener et al. A practical guide to trusted computing
CN103460195B (en) For the system and method for security software update
AU2005320910B9 (en) Method and system for securely identifying computer storage devices
KR100879907B1 (en) System and method for security of computing devices
CN107563213B (en) Safety secrecy control device for preventing data extraction of storage equipment
KR100783446B1 (en) System, apparatus and method for providing data security using the usb device
US20070074046A1 (en) Secure microprocessor and method
CN113014444B (en) Internet of things equipment production test system and safety protection method
CN104991526A (en) Industrial control system safe support framework and data safe transmission and storage method thereof
CN101563696A (en) System and method for changing of shared encryption key
CN105099705B (en) A kind of safety communicating method and its system based on usb protocol
KR20120138586A (en) A method for software security treatment and a storage medium
CN101641702A (en) Secure data storage and retrieval incorporating human participation
JP2008005408A (en) Recorded data processing apparatus
KR102111493B1 (en) Kit for developing a trusted platform using Trusted Platform Module
KR101226615B1 (en) A Device For Software Obfuscation And A System For Software Security Treatment
CN116436681B (en) TrustZone-based security isolation system, trustZone-based security isolation method, trustZone-based security isolation terminal and storage medium
Raval et al. Hardware Root of Trust on IoT Gateway
WO2023145240A1 (en) Information processing device and information processing system

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant