[블록체인] 정보 보안
1990년대
윈도우 NT 3.1
- 1993년 7월 27일에 마이크로소프트에서 윈도우 NT 3.1 발표
해킹 도구의 개발
- 1994년에 인터넷 브라우저인 넷스케이프가 개발되어 웹 정보에 대한 접근이 가능해짐
아메리카온라인 해킹
- 1997년에 아메리카온라인(AOL) 침입만을 목적으로 고안된 무료 해킹 툴인 AOHell이 공개됨
- 이후 며칠 동안 초보 해커들이 악용하여 미국 내 수백만 미국 온라인 사용자가 대용량 메일 폭탄 공격을 받음
트로이 목마, 백 오리피스
- 1998년에 cDc(Cult of the Dead 라는 해킹 그룹이 데프콘 해킹 대회에서 강력한 툴로 사용할 수 있는 트로이 목마 프로그램인 백 오리피스(Back Orifice)를 발표함
2000년대
분산 서비스 거부 공격
- 2000년 2월에 인터넷에서 소통량이 많은 몇 개 사이트에 분산 서비스 거부(DDoS, Distributed Denial of Service)공격이 가해짐
- 이로 인해 야후, CNN, 아마존 등의 사이트가 ICMP 패킷을 이용한 스머프 (Smurf) 공격으로 몇 시간 동안 마비됨
윔과 바이러스
- 2000년에 러브 버그 (Love Bug) 바이러스가 등장해 87억 5,000만 달러의 경제적 손실 발생시킴
- 2003년 1월 25일 오후 2시 30분부터 약 2일 동안 마이크로소프트의 MS-SQL 2000 서버를 공격하는 슬래머(Slammer) 웜이 전국 네트워크를 마비시킴
- 2004년에 베이글 웜, 마이둠 웜, 넷스카이 웜이라는 웜 삼총사가 등장
개인정보 유출과 도용
- 2005년 10월부터 2006년 2월 사이에 우리나라에서 주민등록번호 수십만 개가 유출되어 인터넷 게임 사이트 가입에 사용되는 등 개인 정보 무단 도용 사건 발생
- 2005년 11월에 국내 모 은행의 피싱 사이트를 만들어놓고 인터넷 카페 등에 대출 광고를 한 다음, 연락해온 피해자들이 피싱 사이트에 접속하도록 유도함. 이들이 입력한 금융 정보를 이용해서 총 12명으로부터 1억 2,000만원 상당을 가로챈 사건 발생
전자상거래 교란
- 2006년 7월에 안심클릭의 허점을 이용한 해킹 사기 사건 발생
- 2006년 3월에 클릭 수를 자동 증가시키는 방법으로 , 국내 대형 포털 사이트의 정보 검색 순위를 조작한 인터넷 광고 대행업체의 대표 이 씨가 업무 방해 등의 혐의로 불구속 입건
- 2007년 2월 8일에 공인인증서 유출로 인한 시중 은행 불법 인출 사건 발생
- 2007년 2월 11일에 한국씨티은행 해킹 사건 발생 등 금전적 이익을 노린 해킹이 급증
APT공격의 등장
- 오랜 시간을 들여 사이트를 분석하고 취약점을 찾아내어 해킹하는 경우를 일반적으로 APT(지능적 지속 위협 , Advanced Persistent Threat) 공격이라고 함
2010년대
농협 사이버 테러
- 2011년 4월에 대규모 데이터 삭제로 농협의 전산 시스템이 멈추는 사건 발생
스마트폰해킹
- 스마트폰은 공격 대상이 되기도 하지만 공격 도구로도 활용도가 매우 높아서 스마트폰을 이용한 보안 사건은 스마트폰 내의 정보 유출부터 스마트폰을 조작하는 것까지 점차 범위가 확대될 것으로 예상
보안의 3대 요소
1. 기밀성(Confidentiality)
- 인가된 사용자만 정보 자산에 접근할 수 있는 것으로, 방화벽, 암호, 패스워드 등이 대표적인 예
2. 무결성(Integrity)
- 적절한 권한을 가진 사용자가 인가한 방법으로만 정보를 변경할 수 있도록 하는 것
3. 가용성(Availability)
- 필요한 시점에 정보 자산에 대한 접근이 가능하도록 하는 것
퍼블릭 블록체인의 경우, 무결성과 가용성은 우수하지만 데이터가 공개되어 있다는 점에서 기밀성이 낮다. 이를 보완하기 위해 프라이빗 블록체인의 CA 인증서를 사용하거나 Public Key가 누구의 것인지 모르는 익명성을 이용한다.
서비스 거부 공격(DoS)
- 자원 고갈 공격형
- 스머프 공격
- ICMP 패킷과 네트워크에 존재하는 임의의 시스템으로 패킷을 확장해 서비스 거부 공격을 수행하는 것으로, 네트워크 공격에 많이 사용함
- 다이렉트 브로드캐스트를 악용하는 것으로 공격 방법은 간단함
분산 서비스 거부 공격(DDoS): 분산화 DoS
- 기본 구성
- 공격자(Attacker): 공격을 주도하는 해커 컴퓨터
- 마스터(Master): 공격자에게 직접 명령을 받는 시스템으로 여러 대의 에이전트를 관리
- 핸들러(Handler) 프로그램: 마스터 시스템의 역할을 수행하는 프로그램
- 에이전트(Agent): 직접 공격을 가하는 시스템
- 데몬(Daemon) 프로그램: 에이전트 시스템의 역할을 수행하는 프로그램
* 중앙화된 서버는 DoS와 DDoS에 취약하다! 그래서 데이터 분산화를 해야한다! 또는 DMZ라는 기법을 사용할 수 있다.
* 중앙화된 서버에 연결관리 zone을 만들어 접근이 오면 필터링을 거친 후, 통과된 것만이 서버에 접근하게 해주는 것을 DMZ라고 한다.
블록체인에 필요한 보안기술
- 암호: 대칭형(AES, ...), 비대칭형(RSA, ECDSA, ...)
- 서명
- 암호 통신
- 해쉬: SHA
- 공개키인증구조: 인증서(x.509, ...)
- 스마트 컨트랙트
암호
- 데이터를 보낼 떄는 암호화를 해야하고, 받을 때는 복호화를 해야한다. 이때, 반드시 키가 딸려간다.
- 대칭형(AES, ...): 암호화/복호화에 사용하는 키가 같다. 속도/효율이 높다. 대칭키 분배의 문제가 있다!
- 대칭키는 암호 통신에 사용된다.
- 비대칭형(RSA, ECDSA, ...): 암호화/복호화에 사용하는 키가 다르다. 속도/효율이 매우 낮다.
- 비대칭키는 서명과 암호 통신에 사용된다.
대칭 암호화 방식
- 암호 통신에 사용된다.
- DES, 트리플 DES
- AES(Advanced Encryption Standard) 알고리즘
- SEED 알고리즘: 국내 기술로 개발된 128비트 블록의 암호화 알고리즘
- ARIA 알고리즘
- 양자 암호
비대칭 암호화 방식
- 서명과 암호 통신에 사용된다.
- 기밀성과 부인 방지 기능이 있다.
- RSA 알고리즘
해시(Hash)
- 하나의 문자열을 더 짧은 정해진 길이의 키로 변환하는 것
- 암호가 정보를 숨기기 위한 것이라면, 해시는 정보의 위조/변조를 확인하기 위한 것
- 즉, 정보의 무결성을 확인하기 위한 것
- 해시를 사용하여 전자서명, 전자봉투, 전자화폐 등 다양한 전자상거래 기능 구현 가능
- 대표적인 해시 알고리즘은 MD5, SHA1/2/3, ...
- 원래 해시는 DB의 탐색을 효과적으로 구현하기 위해 만들어진 것
* SHA(Secure Hash Algorithm)는 160비트의 값을 생성하는 해시 함수로, MD4가 발전한 형태. MD5보다 조금 느리지만, 좀 더 안전하다고 알려져 있으며 SHA에 입력하는 데이터는 512비트 크기의 블록임
공개 키 기반 구조(PKI)
- 공인인증서가 신분증과 같은 효력을 발휘하려면 검증 기관 필요
- 이때, 검증은 공개 키 기반 구조로 이루어진다.
- 상호 인증으로 연결된 공개 키 기반 구조
- 인증 기관이 상호 인증(Cross Certification)으로 연결되어 있는 모델도 가능
- 상호 인증은 두 인증 기관이 상대방의 공개 키를 서로 인증하는 인증서인 상호 인증서(Cross-Certiticate)를 발급하여 사용함
- 일반적인 공개 키 기반 구조는 트리형과 네트워크 구조가 혼합됨
공인인증서
- 공인인증서는 공개 키와 공개 키의 소유자를 연결해주는 전자문서
- 발급 인증 기관 이름을 기준으로 저장
- 저장된 공인인증서는 더블클릭하면 내용 확인 가능
- 누구나 사용자의 공인인증서와 공개 키를 획득 가능
- 인증 기관 이외에는 공인인증서를 수정 및 발급할 수 없음
- 같은 인증 구조 내의 사용자는 상호 인증의 신뢰가 가능함
* 공인인증서는 원래 국가에서 지정해준 기관에서만 발급해주었지만, 각 분야의 컨소시엄(기관들)에서 발급해주는 공동인증서로 바뀌었다. 인증서라는 개념은 유지된다.
전자서명(Digital Signature)
- 전자서명은 서명자가 해당 전자문서에 서명하였음을 나타내기 위해 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보(전자서명법의 전자서명 정의)
- 인감도장처럼 전자서명도 공인된 인증 기관에 등록 및 검증하여 사용 가능
전자봉투(Digital Envelope)
- 전달 메시지를 암호화하여 한 사람을 통해 보내고 암호화 키는 다른 사람이 가져가게 하는 것을 암호학적으로 구현한 것
CA와 TLS