블록체인 응용 분야에 보안 구축 - 1부: 블록체인 작동 원리 및 개인 키 사용 방법

작성자: Stephen Evanczuk

DigiKey 북미 편집자 제공

편집자 주: 블록체인 기술과 거래 방법에 대한 세부 정보는 복잡합니다. 2부로 구성된 이 시리즈의 1부에서는 블록체인 구조와 거래 공정에 대해 간략하게 설명합니다. 또한 개인 키 보호가 블록체인 보안의 핵심인 이유를 설명하는 맥락을 제공하고 개인 키 보호를 위한 턴키 솔루션을 소개합니다. 2부에서는 개발자가 이 턴키 하드웨어 기반 솔루션을 통해 블록체인 거래를 보다 쉽게 보호할 수 있는 방법을 보여줍니다.

보안에 대한 우려는 암호 화폐의 맥락에서 많은 개발자들에게 익숙한 블록체인 기술의 개발을 촉진시켰습니다. 블록체인 기술은 개발자에게 폭넓은 분야에 적용 가능한 보안 인프라를 제공할 수도 있습니다. 분산된 아키텍처이므로 별도의 중앙 기관이 필요하지 않고, 개인 키와 암호화 방법을 사용하여 당사자 간의 교환과 자산을 보호할 수 있습니다. 결과적으로 블록체인 시스템 보안은 키 보안과 강력한 알고리즘을 얼마나 적절하게 사용하느냐에 따라 크게 달라집니다.

알고리즘은 즉시 적절하게 사용할 수 있지만 보안 솔루션을 개발하고 대상 응용 분야에 통합하는 등 구현에는 많은 전문 지식과 경험이 필요합니다. 개발자는 새롭게 등장하는 블록체인 응용 분야에서 키 보안을 보장하는 방식에 쉽게 접근할 수 있어야 합니다.

이 기사에서는 블록체인이 이렇게 큰 관심을 받는 이유와 이 기술의 작동 방식을 간략하게 설명한 다음 Infineon Technologies의 블록체인 보안을 위한 하드웨어 기반 솔루션을 소개합니다.

블록체인의 부상

블록체인 기술은 암호 화폐, ID 보호, 공급망 관리, 투표 등 광범위한 응용 분야에서 사회 전반적인 관심을 받고 있습니다. 분산, 인증, 기록 보존을 결합하여 분산 원장 기술이라고도 하는 이 기술은 거래 실행을 감독하거나 중재할 중앙 기관이 필요하지 않다는 점에서 관심을 끌고 있습니다.

금융 기관에서는 현재의 기술 및 관행으로 제공하는 것보다 더 빠르고 경제적인 결제 메커니즘을 지원할 수 있다는 잠재력에 매력을 느끼고 있습니다. 핀테크를 비롯하여 ID 검증 및 거래 추적 기능에 관심이 있는 기업들은 인증 후 절대 기록이 변경되지 않고 유지되는 블록체인 기술에 큰 관심을 두고 있습니다. 블록체인의 불변성은 블록체인의 구축 방식에 있고, 그 진위성은 거래 이행의 방식에 있습니다.

본질적으로 이 기술은 거래를 전달하는 블록 구성에 포함되는 보안 키를 보호하는 기능에 전적으로 달려 있습니다. 블록체인 기술과 거래 방법에 대한 세부 사항은 이 기사에서 다루지 않지만 블록체인 구조와 거래 공정에 대한 간략한 검토를 통해 개인 키 보호가 블록체인 보안의 핵심인 이유를 설명하는 맥락은 제공할 수 있습니다. 하지만 실제 블록체인 시스템에서는 단순화된 블록체인 기술의 개요에서 추천하는 것보다 훨씬 더 정교한 구조 및 프로토콜을 사용하고 있습니다.

변경할 수 없는 체인

이름에서 알 수 있듯이 블록체인은 거래를 기록하는 데 사용되는 블록의 체인입니다. 비트코인, 이더리움과 같은 공용 블록체인에 사용되는 구조적 세부 정보와 프로토콜은 개별 조직에서 액세스되는 사설 블록체인과 많이 다를 수 있습니다. 법인의 운영 그룹에서 액세스되는 준사설 블록체인(권한 있는 블록체인)도 있습니다.

하지만 각 블록체인 유형에서 블록의 기초는 다음과 같은 몇 가지 공통된 요소를 기반으로 구축됩니다(그림 1).

  • 이전 블록의 해시 값(Prev_Hash) - 블록체인에서 링크를 처리합니다.
  • 블록에 연결된 거래 - 거래(Txi)의 해시(Hashi)를 구성하는 트리(해시 트리 또는 Merkle 트리)의 루트(Tx_Root)로 표시됩니다.
  • 논스(nonce) - 유효 블록 생성에서 중요한 역할을 합니다.
  • 시간 스탬프 - 블록이 생성된 시간을 기록합니다.

비트코인 블록체인을 단순화하여 보여주는 다이어그램그림 1: 비트코인 블록체인을 단순화한 보기에서 각 블록은 시간 스탬프, 임의의 논스(nonce), 해시 트리 또는 Merkel 트리, 체인 내 이전 블록의 해시(Prev_Hash)로 구성됩니다. (이미지 출처: Wikimedia Commons/CC-BY-SA-3.0)

블록체인에 포함된 Prev_Hash 값은 블록체인의 전체적인 무결성을 나타내는 프레임워크를 제공합니다. 해커가 blockn-1에서 일부 과거 거래를 수정하면 해커가 blockn-1에서 Merkle 트리와 Tx_Root를 정정했더라도 blockn에 포함된 해시는 무효화됩니다. 아래 설명된 대로 블록체인 시스템의 분산된 특성으로 인해 이러한 해시 불일치가 해결됩니다.

nonce는 블록 생성 규칙에서 블록체인을 실질적으로 변경하지 못하도록 해주는 중요한 역할을 합니다. 비트코인 및 이더리움 암호 화폐와 같은 공용 블록체인은 새로운 블록에서 소유한 해시 값을 체인을 확장하는 데 사용하기 이전에 인위적으로 제약합니다. 새 블록 구성에 대해 Prev_Hash 거래를 생성할 경우 이러한 규칙에 따라 일반적으로 새로 구성된 블록의 최종 해시는 일부 지정된 최대값보다 작아야 합니다. 블록체인 시스템에 사용되는 해시 알고리즘은 동일한 입력에 대해 동일한 결과를 생성하지만 입력이 약간이라도 변경되면 예측할 수 없는 전혀 새로운 결과를 반환합니다.

논스(nonce)를 사용하면 블록체인 시스템 및 사용자에게 중요한 요소에 영향을 주지 않고 해시 값을 변경할 수 있습니다. 논스에 다른 값을 무차별 대입하여 블록체인의 값과 일치하는 해시를 찾습니다. 논스에 대해 서로 다른 일련의 값을 적용하고 그때마다 블록을 다시 해시하여 규칙을 따르는 해시 값을 찾습니다. 정당한 이유로 이 작업을 수행하는 사람을 블록체인 광부라고 합니다.

허용되는 이 최종 nonce는 컴퓨팅 집약적인 채굴 공정의 성공적인 완료를 나타내므로 작업의 증거라고 합니다. 또한 이 공정과 작업의 증거는 블록체인 시스템의 분산된 특성을 반영합니다. 광부가 허용되는 논스를 찾은 경우 새로 생성된 블록을 통해 블록체인을 확장할 권리(및 암호 화폐 채굴 관련 보상금)를 획득합니다.

다른 광부 및 블록체인 사용자는 성공한 광부가 찾은 논스 및 블록으로 해시를 계산하여 새 블록의 유효성을 쉽게 확인할 수 있습니다.

블록체인의 분산된 아키텍처에서 블록체인 분산 네트워크의 개별 노드는 채굴 중에 적용되는 것과 동일한 규칙에 따라 모든 블록 및 거래를 분석합니다. 따라서 구성 중에 발생한 오류나 일치하지 않거나 잘못된 해시로 인해 유효하지 않은 블록을 노드에서 무시하므로 블록체인은 자동으로 수정될 수 있습니다. 암호 화폐 및 기타 블록체인 시스템에서는 분산 블록체인의 이러한 합의 과정을 최대한 활용하여 공정을 훼손하려는 해커의 시도를 더욱 어렵게 만드는 추가 메커니즘을 적용합니다.

컴퓨팅 집약적인 작업 증거 규칙과 합의 기반 블록 검증 공정을 결합하여 블록체인의 과거 거래를 수정하려는 해커에게 극복하기 어려운 장애물을 제공합니다. 따라서 수정된 블록부터 체인을 다시 구성하려는 해커는 광부 커뮤니티보다 더 빠른 속도로 작업 증거를 완성해야 합니다. 이것만으로도 해커는 개인용 컴퓨터의 그래픽 처리 장치 사용에서 현장에서 프로그래밍 가능한 게이트 어레이, 특수 주문형 반도체 등으로 경쟁적으로 전환되고 있는 가상 공정 리소스를 처리해야 합니다. 컴퓨팅 리소스에 대한 대규모 투자 문제 이외에, 수반되는 전력 소비 요구 사항을 해결하는 것도 엄두를 내기 힘듭니다.

이러한 처리 노력과 전력 사용률에도 불구하고 해커가 수정한 체인이 합의 기반 메커니즘에서 즉시 거부될 가능성이 있습니다. 블록 실행 결과가 크게 차이 나는 경우는 흔치 않지만, 그럴 경우 영향을 받는 블록체인 시스템에 헤드라인을 장식할 정도로 심각한 손상을 초래하여 드물지만 완전히 새로운 버전의 시스템을 구축해야 하는 경우도 있습니다.

거래 인증

블록체인 구조 및 공정에 대한 이전의 모든 논의에서는 블록에서 Merkle 트리로 표시되는 거래가 유효한 것으로 가정했습니다. 잘못된 거래가 블록체인 시스템에 유입될 경우 작업 증거, 분산 블록 검증 등과 같은 노력은 아무런 소용이 없습니다. 블록체인 기술에 대한 근본적인 동기 부여는 변경할 수 없는 블록체인에 유효한 거래를 안정적으로 포함할 수 있는 기능에 있습니다. 이러한 관점에서 사용자가 거래를 요청하면 블록 생성이 시작됩니다. 블록체인 기술에서는 거래를 승인하는 중앙 기관 대신 요청하는 사용자가 소유한 개인 키를 통한 암호화 방법을 사용합니다.

요청을 시작하기 위해 사용자는 개인 키로 요청에 디지털 방식으로 서명한 후 다른 확인되지 않은 거래가 포함된 풀에 요청을 제출합니다(그림 2). 블록체인 광부는 이 풀에서 확인되지 않은 거래를 가져온 다음 확인되지 않은 각 거래에 포함된 요청자의 공용 키를 사용하여 해당 개인 키 소유자가 각 요청을 시작했는지 확인합니다. 암호 화폐에서 다른 광부보다 먼저 블록체인에서 다음 블록을 생성하려는 광부는 서명이 잘못된 거래 요청을 신속하게 우회합니다.

블록체인 거래의 기본 사항을 보여주는 개인/공용 키 쌍 구성도그림 2: 개인/공용 키 쌍은 요청자가 서명하고(왼쪽) 블록체인 광부가 확인하는(오른쪽) 블록체인 거래의 토대를 제공합니다. (이미지 출처: Wikimedia Commons/CC-BY-SA-3.0)

개인 키가 비공개 상태로 유지되는지 확인

블록체인의 분산된 아키텍처에서 거래에 대한 개인 키를 소유하면 거래에 대한 소유권이 부여됩니다. 분실된 자금을 추적하거나 복원을 위해 연방 규정을 준수할 수 있는 고객 서비스 담당자가 준비되어 있지 않습니다. 따라서 개인 키를 분실하거나 도난당할 경우 뉴스 헤드라인을 장식할 만한 대규모 암호 화폐 분실로 이어질 수 있으며 분석가들은 이러한 추세가 지속될 것으로 예측합니다.

블록체인 기술에서는 거래 서명과 확인을 위해 기본적으로 개인 키를 사용하므로 보안 키를 보호해야 합니다. 사용자의 보안 키가 보호되지 않는다면 블록체인 시스템 참여 제어권을 상실할 수 있습니다.

해커는 피싱 공격 및 기타 유사한 접근 방식을 사용하여 모바일 장치나 컴퓨터에 부주의하게 저장된 암호화되지 않은 개인 키에 대한 액세스 권한을 얻습니다. 암호화된 키도 취약할 수 있습니다. 일반적으로 키 생성 소프트웨어를 사용하여 사용자 장치에서 키를 암호화하는 데 사용되는 암호를 입력할 수 있습니다. 보안 전문가에 따르면 이 방법은 모든 비밀번호 기반 접근 방식에 공통된 문제를 발생합니다. 즉, 사용자가 쉽게 추측 가능한 약한 암호로 키를 암호화하는 경우가 비일비재합니다.

사용자가 신중하게 개인 키를 사용하더라도 키 생성 소프트웨어의 결함으로 인해 키가 이미 손상되었을 수도 있습니다. 소프트웨어 기반 키 생성자에서 도둑이 간단한 스크립트로 확인할 수 있는 예측 가능한 패턴으로 작동하는 난수 생성기(RNG)를 사용하는 경우가 있습니다. 또한 키 생성 알고리즘의 코딩 오류 또는 결함으로 인해 해당 키 생성 소프트웨어 유틸리티에 익숙한 사용자의 키가 취약한 상태로 노출될 수 있습니다.

강력한 알고리즘을 완벽하게 구현하더라도 완벽한 보호가 보장되지는 않습니다. 실제로 사용자가 이상적인 코드를 실행 중인 시스템에서 해커에게 완전히 침투된 소프트웨어를 실행할 위험도 있습니다. 키 생성 소프트웨어를 실행하면 메모리 및 프로세서 주기를 손상된 소프트웨어와 공유하여 해커가 보안 데이터를 파악할 수 있습니다.

신뢰할 수 있는 실행 환경(TEE)을 제공하는 프로세서에서는 신뢰할 수 있는 코드와 신뢰할 수 없는 코드를 별도의 실행 공간에서 실행하여 높은 수준의 보호를 제공합니다. 이 접근 방식에서는 운영 체제, 미들웨어 또는 다른 응용 제품의 취약성으로 인해 알고리즘 및 보안 데이터(예: 개인 키)가 공격당할 가능성이 감소합니다.

대부분의 하드웨어 장치는 보안 실행 및 키 보호 기능을 사용하여 구축되었더라도 정교한 마이크로 아키텍처 및 물리적 공격에 여전히 취약합니다. 마이크로 아키텍처 공격에서는 프로세서의 설계상 약점을 활용합니다. 이러한 유형의 공격은 멜트다운 및 스펙터로 주의를 분산시켜서 마이크로 프로세서 메모리 액세스 및 명령 처리의 취약성을 악용합니다.

일반적인 물리적 공격으로는 전력 사용, 전자기 발생 또는 타이밍 특성을 모니터링하여 보호된 정보를 노출시키는 부채널 악용이 있습니다. 다른 물리적 공격에서 해커는 레이저로 결함을 유도하거나 전원 공급 장치 결함을 유도하여 내부 신호를 유추합니다. 더 직접적인 물리적 공격에서 해커는 반도체 장치를 캡슐화 취소하고 마이크로 프로브를 사용하여 데이터 및 명령 시퀀스를 읽으려고 시도합니다.

이러한 광범위한 보안 위협으로부터 보호하려면 반도체 장치를 공격하는 데 사용되는 광범위한 마이크로 아키텍처 및 물리적 방법에 대한 심층 보호 기능에 기본 보안 기능을 결합하는 보안 컨트롤러가 필요합니다. 이러한 유형의 보안 컨트롤러를 기반으로 구축된 Infineon Blockchain Security 2Go 시험용 키트(BLOCKCHAINSTARTKITTOBO1)는 블록체인에 포함할 거래에 서명하는 데 사용되는 개인 키를 보호하는 주요 과제를 즉각적으로 해결하는 솔루션을 제공합니다(그림 3).

Infineon의 Blockchain Security 2Go 스마트 카드 구성도그림 3: Infineon Blockchain Security 2Go 스마트 카드는 중요한 개인 키를 노출하지 않는 거래 서명을 비롯하여 블록체인 보안을 단순화합니다. (이미지 출처: Infineon)

보안 서명 방법을 구성하는 데 시간을 소비하는 대신 블록체인 시스템 통합업체에서는 단순히 Blockchain Security 2Go 시험용 키트 또는 Infineon Security 2GO 10 카드 패키지(BLOCKCHAIN10CARDSTOBO1)에서 스마트 카드를 제공할 수 있습니다.

결론

블록체인 기술은 암호 화폐 이외에 광범위한 분야에서 적용됩니다. 하지만 사용자 거래에 대한 제어권을 잃지 않고 블록체인 시스템이 손상되는 것을 방지하기 위해 복잡하고 강력한 보안 메커니즘이 필요한 개인 키를 사용합니다.

설계자는 보안 서명 방법을 구축하는 데 시간을 투자할 수도 있지만 Infineon Blockchain Security 2Go 시험용 키트는 시간과 자원을 절약할 수 있는 턴키 블록체인 보안 솔루션을 제공합니다.

DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk는 전자 산업에 관해 하드웨어, 소프트웨어, 시스템, 응용 제품(예: IoT)을 비롯한 광범위한 주제에 대해 20년 이상 집필한 경력을 갖고 있습니다. 그는 신경 과학의 뉴런 네트워크 박사 학위를 받았으며항공 우주 산업 분야의 광범위하게 분포된 보안 시스템 및 알고리즘 가속 메서드 관련 업무를 수행했습니다. 현재, 기술 및 엔지니어링에 대해 기사를 쓰지 않을 때에는 인식 및 추천 시스템에 대한 심층적 학습 응용 프로그램을 연구하고 있습니다.

게시자 정보

DigiKey 북미 편집자