728x90
반응형
SMALL

블록체인을 이용한 금융과 IT 융합의 가속화가 이루어지면서 다양한 블록체인 기반 시스템이
도입되고 있는 상황이지만 블록체인 또한 하나의 ICT기술이기에 보안상 취약점이 존재할 수
밖에 없다. 특히 금융 비즈니스관련 IT시스템은 고객의 개인정보를 다루고 있기 때문에
개인정보보호 관점의 정보보안 이슈를 고려할 필요가 있다.

금융권에 블록체인 도입시 고려해야 할 정보보안 이슈

구분 정보보안 이슈 설명
키관리 키 도난 및 분실 키에 대한 도난 및 분실은 어느 보안시스템이나 항상 중요한 이슈
중에 하나이다. 
공격자에게 키를 도난 당하거나 분실된 키가 악용될 경우 자산
밀 기밀거래 노출
취약한 키 생성 키 생성 알고리즘의 취약성으로 인해 키 재생공격이 가능
거래검증 및 합의 합의 가로채기 참여자 중 과반수를 장악하여 블록체인의 합의 과정
을 조작할 수 있다.
사이드 체인내 비정상거래 발생 메인 체인에서 유효하지 않은 자산이 *사이드 체인
에서 거래 가능
참여자 권한
관리
개인정보 침해 거래정보에 대한 참여자의 접근건한 관리 부족으로
인해 개인정보 침해가능성 존재
권한 오남용 참여자의 내외부 권한관리 부족 시 금융회사 및 내부
직원에 의한 귬융사고 발생 가능
블록체인
SW보안
블록체인  SW취약점 블록체인  SW 자체에 보안 취약점이 존재할 경우
키 도난, 합의조작, DDoS 공격 가능
스마트 컨트렉트 취약점 스마트 컨트랙트에 취약점이 존재할 경우 자산유출
,개인정보침해, DDoS 공격 가능
서비스보안 분산 서비스 공격 다수 참여자가 악성코드 등을 통해 공격자에게 
장약시 대량의 스팸거래 발생으로 인해 블록체인
서비스가 중단될 수 있다.
가용성 저하 블록체인 자체가 속도가 느린게 단점
거래급증으로 인해 속도저하 등 가용성에 문제가
생길 수 있음
비정상거래 탐지 불가 비정상거래에 대한 탐지기술이 아직 부족하여 사기
거래, 자금세탁, 이중지불 등의 사고 발생 가능.
  상호 운용성 미제공 블록체인 간 자산교환, 기능 확장 등 연계 필요시
책임주체 및 표준규격이 명확하지 않아 예상치 못한
보안위협 발생 가능
컴플라이언스
이슈
보안사고시 책임 불분명 현재 전자금융거래법상 블록체인을 통한 분산환경
에서 발생한 보안사고에 대한 책임소재 불분명
개인정보 파기문제 블록체인 기술의 특성상 거래 종료 후 과거 블록의
파기가 어려움.
개인정보 법규준수  - 개인정보보호법,
 - 신용 정보의 이용 및 보호에 관한 법률,
 - 정보통신망 이용촉진 및 정보보호 등에 관한 법률
준수 필요
개인정보 식별문제 금융기관과 민간기관, 공동기관이 공동을 분산원장
을 보관하는 경우 분산환경에서 개인정보 식별문제
발생

* 사이드 체인 (SideChain) 이란 ?
    비트코인(bitcoin)의 탄생은 획기적이기는 하지만 모든 최초 탄생이 그랬듯이 고유한 한계점을
    가지고 있다.

    <한계점>
        ① 속도가 느리다
        ② 오직 비트코인 블록체인 위에서는 오직 비트코인 만이 이체가 가능하다. 따라서
            이종화폐와
교환할려면 결국 중앙화된 웹거래소를 이용해야하는데 이는 결국
            블록체인이 가진 보안적
,탈중앙화적 이점을 부정하는 셈이 된다.
        ③ 비트코인 블록체인에서 사용할 수 있는 기능이 제한적이다.
        ④ 비트코인은 로직을 수정하기에는 감담이 안된다.. 
        ⑤ 비트코인 상에서 일어나는 모든 거래는 기밀이 유지 안된다.

  <한계점을 극복하고자 고안한 것이 바로 사이드 체인>
     이러한 한계점을 갖고 있는 비트코인이지만 그렇다고 비트코인을 안 쓸수는 없다.
     왜냐 암호화폐계
의 기준통화나 다름 없기 때문이다. 따라서 생각해 낸것이 바로 비트코인을
     다른 블록체인에서
거래를 하는 방법이다.
     비트코인이 이더리움 블록체인에 올라갈 수 있다면, 다양한 스마트 컨트랙트(Smart Contract)나
     탈중앙화
 어플리케이션(DApp)에서 사용될 수 있을 것이다. 비트코인의 속도가 걱정이 된다면,
     속도가 빠른 다른
블록체인에 비트코인을 올려서 사용하면 될 것이고 응용성을 원한다면
     이더리움(Ethereum)에, 기밀성을
 원한다면 대쉬코인(Dashcoin) 등의 블록체인에 올려서
     거래를 하면 될 것이다. 

     비트코인의 소유자가 해당 코인을 이더리움 블록체인 위에 올려서 거래하고자 할 경우,
     비트코인 블록체인에
 있는 비트코인을 '동결(Freeze)'시키고 이더리움 블록체인 위에서
     이 비트코인에 해당하는
 '상응물(counterpart)'을 만들어 거래할 수 있도록 하는 것이다.
     이후 거래된 '상응물'의 소유자는 비트코인
 블록체인에 있는 진짜 비트코인으로 이 상응물을
     교환해 갈 수 있다.

     즉, 비트코인 블록체인의 비트코인을 동결하고, 이에 상응하는 코인을 사이드체인에 생성해서,
     사이드체인
위에서 사이드체인의 혜택을 누리며 거래를 하고, 이를 마치면 다시 해당 상을물로
     비트코인 블록체인의
비트코인을 수령하는 것이다.
     (위의 경우 이더리움이 곧 사이드체인이 되는 셈이다)      

728x90
반응형
LIST

'정보보안' 카테고리의 다른 글

소프트웨어 개발 보안  (0) 2019.11.17
해시값(Hash Value)과 해시함수(Hash Function)  (0) 2019.11.09
디지털 윤리(Digital Ethics)와 개인정보보호(Privacy)  (1) 2019.11.03
양자암호통신  (0) 2019.10.21
ISMS 와 ISMS-P  (0) 2019.10.12
728x90
반응형
SMALL

블록체인을 보안강화를 위해 도입을 하지만 또 반대로 블록체인을 도입시에 블록체인 자체에 대한
보안 위협이 존재한다. 
2017년 8월 17일 금융보안원에서 발표한 [블록체인 기술과 보안 고려사항] 을 기반으로 블록체인
도입시 고려해야 할 보안위협및 그 대책에 대해서 알아보고자 한다.

블록체인 도입 시 보안위협

금융권에서 블록체인 도입 시 고려가 필요한 보안위협을 아래 5가지로ㅗ 분류했다.
  (1) 키 관리, (2) 거래 검증 및 합의, (3) 참여자 권한관리, (4) 블록체인 S/W 보안, (5) 서비스 보안

분류 보안위협 설명
키 관리 키 도난 및 분실 공격자에게 키를 도난당하거나 분실된 키가 악용될 경우 자산 및 기밀거래 메시지 유출
취약한 키 생성 취약한 키 생성 알고리즘으로 인해 키 재생성 공격이 가능할 경우 자산 및 기밀거래 메시지가 유출 가능
거래 검증 및 
합의
합의 가로채기 참여자 중 과반수(또는 운영주체)를 장악하여 블록체인의 합의 과정을 조작
사이드 체인 내 비정상
거래 발생
메인 체인에서 유효하지 않은 자산이 사이드 체인에서 거래 가능
참여자
권한관리
개인정보 침해 거래정보에 대한 참여자의 접근권한 관리 부족시
개인정보 침해 가능
권한 오남용 참여자의 내·외부 권한관리 부족시 금융회사 및 내부직원에 의한 보안사고 등 발생 가능
블록체인 S/W
보안
블록체인 S/W 취약점 블록체인 S/W에 보안 취약점이 존재할 경우 키 도난, 합의 조작, DDoS 공격 등에 악용가능
스마트 컨트랙트 취약점 스마트 컨트랙트에 취약점이 존재할 경우 자산유출, 개인정보 침해, DDoS 공격 등에 악용가능
서비스
보안
분산 서비스 거부 공격 분산 서비스 거부 공격분산 서비스 거부 공격다수 참여자가 악성코드 등을 통해 공격자에게
장악될 경우 대량의 스팸거래를 발생 가능하며
이로 인해 블록체인 서비스가 중단 가능
가용성 저하 블록체인의 처리속도 한계, 거래정보 급증으로
인해 추가 서비스 개발 및 확대 제한 등의
가용성이 저하
비정상거래 탐지 불가 비정상거래에 대한 사전 탐지 및 차단 기술이
부족하여 사기거래, 자금세탁, 이중지불 등의
거래가 발생 가능
상호운용성 미제공 블록체인 간 자산교환, 기능 확장 등 연계 필요시
책임주체 및 표준규격이 명확하지 않아 예상치
못한 보안위협 발생 가능


* 사이드 체인 (SideChain) 이란 ?
    비트코인(bitcoin)의 탄생은 획기적이기는 하지만 모든 최초 탄생이 그랬듯이 고유한 한계점을 가지고 있다.
    <한계점>
        ① 속도가 느리다
        ② 오직 비트코인 블록체인 위에서는 오직 비트코인 만이 이체가 가능하다. 따라서 이종화폐와
            교환할려면 결국 중앙화된 웹거래소를 이용해야하는데 이는 결국 블록체인이 가진 보안적
           ,탈중앙화적 이점을 부정하는 셈이 된다.
        ③ 비트코인 블록체인에서 사용할 수 있는 기능이 제한적이다.
        ④ 비트코인은 로직을 수정하기에는 감담이 안된다.. 
        ⑤ 비트코인 상에서 일어나는 모든 거래는 기밀이 유지 안된다.

  <한계점을 극복하고자 고안한 것이 바로 사이드 체인>
     이러한 한계점을 갖고 있는 비트코인이지만 그렇다고 비트코인을 안 쓸수는 없다. 왜냐 암호화폐계
     의 기준통화나 다름 없기 때문이다. 따라서 생각해 낸것이 바로 비트코인을 다른 블록체인에서
     거래를 하는 방법이다.
      비트코인이 이더리움 블록체인에 올라갈 수 있다면, 다양한 스마트 컨트랙트(Smart Contract)나 탈중앙화
     어플리케이션(DApp)에서 사용될 수 있을 것이다. 비트코인의 속도가 걱정이 된다면, 속도가 빠른 다른
     블록체인에 비트코인을 올려서 사용하면 될 것이고 응용성을 원한다면 이더리움(Ethereum)에, 기밀성을
     원한다면 대쉬코인(Dashcoin) 등의 블록체인에 올려서 거래를 하면 될 것이다. 
     비트코인의 소유자가 해당 코인을 이더리움 블록체인 위에 올려서 거래하고자 할 경우, 비트코인 블록체인에
     있는 비트코인을 '동결(Freeze)'시키고 이더리움 블록체인 위에서 이 비트코인에 해당하는
     '상응물(counterpart)'을 만들어 거래할 수 있도록 하는 것이다. 이후 거래된 '상응물'의 소유자는 비트코인
     블록체인에 있는 진짜 비트코인으로 이 상응물을 교환해 갈 수 있다.
      즉, 비트코인 블록체인의 비트코인을 동결하고, 이에 상응하는 코인을 사이드체인에 생성해서, 사이드체인
     위에서 사이드체인의 혜택을 누리며 거래를 하고, 이를 마치면 다시 해당 상을물로 비트코인 블록체인의
     비트코인을 수령하는 것이다. (위의 경우 이더리움이 곧 사이드체인이 되는 셈이다)      

 


블록체인 도입시 보안위협에 대한 대응방안

< 출처 : 정보관리기술사 118회 모임 - 두드림 >

 

728x90
반응형
LIST
728x90
반응형
SMALL

머클트리 (Merkle Tree) 의 정의

머클트리(Merkle Tree)는 이진트리(Binary Tree) 의 형태를 띠고 있다.
이진트리는 아시겠지만 아래 그림과 같이 부모노드가 자식노드를 2개만 가지고
있는 트리구조를 말한다. 

이진 트리 (Binary Tree)

그럼 머클트리는 무었이냐?. 머클트리는 맨 마지막 노드 (Leaf Node) 는 값에 대한
Hash값을 저장하고 있고 그 상위 부모노드는 자식노드의 Hash값을  가지고 
다시 Hashing 한 Hash값을 저장하는 방식입니다.
예를 들어 a 에 대한 Hash값을 H(a) 라고 하고, b에 대한 Hash값을 H(b) 라고 하면
그 부모노드는 H(a)+(Hb) 에 대한 Hash값 H(ab)를 저장하고,, 계속 상위 노드로
올라가보면 결국 최상위 노드 즉 Root Node 는 전체  Node에 대한 Hash값을
가지고 있는 머클루트(Merkle Root) 가 되는 것이다.

머클트리 (Merkle Tree)

머클트리(Merkle Tree)의 특징

1. 이진트리와 동일한 방식이지만 노드값이 Hash값으로 이루어져 있으며노
2. Hash값은 항상 동일한 크기의 값을 리턴하기 때문에 머클트리의  모든 노드는
   동일한 크기를 가지게 된다.
3. 따라서 
공간절약을 장점으로 꼽을 수 있다. 
4. 일반적인 이진트리(Binary Tree)는 위에서 아래로 트리구조가 만들어지는
   반면 머클트리(Merkle Tree)는 아래에서 위로 올라가면서 노드가 생성되는 구조이다.
5. a,b,c,d 중 어느 값이 하나라도 변경되면 머클루트 도 변경된다.
   이는 곧 특정 노드값의 위변조를 알아차릴수 있다는 뜻으로 머클트리의 탄생배경의
   주된 이유라고 볼수 있을 만큼 제일 중요한 머클트리의 특징이다.

머클트리(Merkle Tree) 의 용도

그럼 이 머클트리는 왜 만들었을까?
요즘 이슈가 되고 있는 블록체인(Block Chain)은 각 블록(노드)마다 원장을 공유함으로써 특정
블록(노드)의 원장의 위변조를 검증할 수 있다는 게 가장 큰 특징이다.
그러면 모든 블록(노드)이 전체 거래원장을 가지고 있다면 어마어마한 용량의 PC가 있어야 하고
스마트폰에서는 블록체인 원장을 가지고 있을 수 도 없을 것이다.
물론 실제 이런 구조로 되어 있지도 않다.
노드(Node)는 크게 풀노드(Full Node)와 SPV노드(Simple Payment Verification)  로 분류할수
있다. 풀노드(Full Node)는 블록체인에 있는 모든 데이터를 자기의 로컬에 저장을 하는 노드
이며, SPV노드는 블록의 헤더값만 저장을 하는 노드입니다. 일반적인 블록체인의 블록들은
이 SPV노드이기 때문에 스마트폰과 같은 저장용량이 적은 경우에도 운용을 할수 가 있는
것이다.  따라서 SPV노드는 특정 거래를 검증을 위해서는 풀(Full Node) 로부터 데이터를
받아와서 비교를 해야 하는데 이때 쓰이는 것이 바로 머클트리(Merkle Tree) 이다.
SPV노드는 블록체인의 전체원장을 가지고 있지 않다고 했고, 대신 블록헤더(Block Header)라는
정보만 가지고 있는데 그 블록헤더에 머클루트(Merkle Root) 값이 저장되어 있다.
예를 들어 어떤 SPV노드가 있는데 이 노드에서 거래 c 에 대해서 진짜 유효한 거래 c 인지 
알고싶을때 SPV노드는 풀노드에게 물어본다. 그러면 풀노드는 SPV노드에게 H(d) , H(ab) 값을
전달해 준다. SPV노드는 H(c)를 만들어서 풀노드가 준  H(d)를 가지고  H(cd)를 만든다.
그리고 H(ab) 와 H(cd)를 가지고 H(abcd)를 만들어서 자기가 갖고 있는 블록헤더에 있는
H(abcd) 와 비교를 해서 같으면 c는 유효한 거래이고, 틀리면 먼가 위조된 거래인 것이다.
(요 방법을  머클패스(Merkle Path)  라고 함)


SPV노드

<출처 : https://blog.naver.com/mage7th/221457285394>

SPV노드는 위 그림과 같이 Chain으로 묶인 블록헤더(Block Header) 정보만을 가지고 있다.
그 안에  머클루트(Merkle Root) 값 즉, H(abcd) 값이 들어있다.

블록체인(Block Chain)의 용량은 시간이 갈수록 기하급수적으로 늘어나기 때문에  이제는 성능이
좋은 컴퓨터만 모든 블록체인을 다운받는 풀노드(Full Node)가 될수 있는데 이 머클트리(Merkle Tree)
방식은 우리가 들고 다니는 모바일 기기에서도 일부 블록체인만 다운받는 라이트노드(Light Node)
로도 특정 거래를 빠르게 찾을 수있게 해주는 역할을 한다.

728x90
반응형
LIST

+ Recent posts