프로그래밍 공부
2022-08-05 교육 본문
블록체인과 보안기술
- 암호기술 - 비대칭키 (암호화, 복호화)
- 인증기술 - PKI, CA, 서명(내가 이 데이터를 만들었음을 증명)
- 해쉬기술 - 데이터 무결성 보장
기본적인 암호학
- 대칭키 암호화
- 공개키 암호화
- 디지털 서명
- 메시지 인증
- 해시
대칭키 암호화
- Cipher & key 가 있을때 이것을 통해서 접속
- 효율이 안좋음
공개키 암호화
- 키분배의 문제가 없지만 느리다
- 데이터 통신에 사용할 수 없음
해시
- 정해져 있는 해시 알고리즘을 통해서 원본데이터를 확인
- 목적은 데이터가 무결한지 검사하기 위해 사용
- 암호는 복호화가 가능하지만 해시는 복호화를 할 수가 없음
공개키-비밀키 암호통신의 문제
- 공개키가 누구의 것인지 모르는 문제가 있음 따라서 CA(인증)가(이) 필요함
공개 키 기반구조(PKI)
보안의 목표
- 기밀성(Confidentiality) -민감한 정보가 컴퓨터 내에 있건, 네트워크 상에 있건 사람들이 읽을 수 없어야 함
- 무결성(Intergrity) - 민감한 정보가 컴퓨터 내에 있건, 네트워크 상에 있건 사람들이 변경하거나 파괴할 수 없어야 하고 적어도 그 정보가 변경되었꺼나 파괴 되어도 ,정보를 접수한 사람이 그 사실을 탐지하거나 데이터를 복원할 수 있어야함
- 가용성(Availability) - 정보를 사용할 권한을 가진 사람이 사용하지 못하는 일이 없어져야하는 것 을 의미함 컴퓨터에 대한 공격이던 정보에 대한 접근의 권한을 갖기 못하게 하여야 한다.
보안용어
- 위해(compromises) - 성공한 공격은 사건, 침해또는 위해라고도 부른다
- 대책(countermeasure) - 분류 : 예방형, 탐지형, 복구형
블록체인에서의 보안의 활용
- IOT
- 기밀성과 데이터 무결성 개선
- 개인 메세지 보호
- PKI강화 대체
- 안전한 DNS
- DDOS 방지
Blockchain Trilemma
- Decentralization
- Scalability
- Security
공격대상에 따른 암호화폐 지갑 공격 흐름
- 내부직원 PC해킹(이메일, 원격접속프로그램), 거래소 시스템 해킹(서버, 홈페이지 해킹) - 암호화폐거래소 임, 직원
시스템 직접 공격 - 접속정보 탈취(이메일, 크리덴셜 스터핑등을 이용한 거래소 접속정보 탈취, 핫 월렛 정보 탈취) - 암호화폐거래소
사용자 공격 - 악성코드 설치(개인정보 및 권한 탈취, 핫 월렛 정보 탈취) - 암호화폐거래소 임, 직원, 시스템 직접 공격
- 개인, 거래소의 핫 월렛 공격(개인, 거래소의 암호화폐 지갑의 ㅋ개인키를 탈취하여 핫 월렛에 저장된 암호화폐를 다른 전자지갑으로 이동) - 암호화폐거래소 사용자 공격
- 암호화폐 세탁 및 환전(다수의 거래소에서 암호화폐 환전 및 현금화)
재귀호출 취약점(Recursive Calls Vulnerability) 공격
- ex) A계좌에 있는 100만원을 B계좌로 50만원 출금신청을 하는 경우 A계좌의 100만원을 차감하기 전에 B계좌로 다시 출금을 시도하고 다시 또 50만원을 출금하는 행동을 반복하면 A계좌에서는 50을 차감하기 전에 새로운 출금요청이 왔기 댸문에 100만원이 그대로 존재하게 되고 B계좌에는 출금한 50만원들이 꾸준히 쌓이게 되는 것이다.
- 이 공격을 사용해 일어난 사건이 이더리움의 DAO 해킹사건이다
분산 네트워크
- 블록체인 정보는 네트워크에 참여하는 노드들이 가지고 있으며, 동일한 거래내역이 분산 저장됨
- 분산 합의제도(거래를 블록체인에 포함시키기 위해서 거래를 승인하는 분산 합의 제도를 채택하고 있으며
제 3의 신용기관 없이 P2P 분산 네트워크에서 검증) - 채굴 시 각 정보는 각 노드들에게 정송되고, 유효성 검증을 수행한 후 합의(노드의 51% 이상)를 통해 블록을 승인, 단 모든 노드가 가진 컴퓨팅 파워 51%를 악의적 행위자가 장악하게 되는 경우, 거래 기록을 조작할 위험성이 존재하나 현재의 컴퓨팅 파워로는 사실상 불가능함
분산 합의 과정
- 새로운 거래 내역이 발생하면 모든 노드에 알려짐
- 각 노드들은 새로운 거래 내역을 블록에 취합
- 각 노드들은 그 블록에 대한 작업증명을 찾는 과정을 수행
- 노드가 작업증명을 성공적으로 수행하면, 모든 노드에게 해당 블록을 전송
- 노드들은 해당 블록의 모든 거래가 이전에 쓰이지 않는 경우에만 승인
- 노드들은 자신이 승인한 블록이 해시를 이전 해시로 사용하여 다음 블록을 생성하는 과정을 통해 해당 블록이
승인되었을을 알림
적용 보안 기술 - 암호기술
- 복호화가 가능한 공개키 기반 검증과 일방향 함수라고도 불리는 해쉬 암호화(SHA-2)를 이용
- (공개키 암호화) 개인간 거래 시 생성되는 디지털 서명을 검증하여 거래 내역이 변경되지 않았음을 입증하는데 ECDSA 전자서명 알고리즘 이용
- (해쉬 암호화) 거래 내역을 포함하는 블록의 정보가 변경되지 않을을 증명하고, 새로운 블록을 찾기 위한
넌스 값을 찾는데 이용 ex) 거래내역 입증 간소화 - 각각의 거래 내역의 해쉬 값을 누적하는 머클 트리 구조의
루트 해시를 가짐으로써 중간에 값이 변경되면 루트 해시 값이 변경됨으로 변조 유무를 쉽게 판단 가능
비트코인에서 디지털 서명
ex)
- Alice는 Bob에게 1BTC를 보내기 위한 거래 전문과 해시 값을 생성한 후 Alice의 개인키를 이용하여 해시 값을 암호화
- 거래 전문과 암호화된 거래 전문의 해시 값을 Bob에게 전송
- Bob은 거래 전문 정보로 해시 값을 만들고, 암호화된 해시 값을 Alice의 공개키로 복호화 한 후 생성된 해시 값과
비교하여 무결성을 검증함
이중거래 방지
악의적인 목적으로 동시에 두 곳 이상의 계좌로 송금하는 행윌르 방지 하기 위해서 총 통화량, The Longest Chain Wins
메커니즘을 이용
ex)
- 이중 거래 발생 시 총 통화량(2,100만개)이 초과됨
- 중복 지출에 의해 블록체인이 분기(Fork)될 경우 다음 블록을 먼저 생성하여 길이가 길어지는
체인을 인정(The Longest chain Wins 메커니즘)
그 외
블록체인에서 리더가 있으면 어시메트릭 없으면 시메트릭
운영체체와 플렛폼이 중요함
블록체인은 무결성, 가용성이 좋으나 기밀성이 떨어짐
블록체인은 익명성을 특성으로한게 많음
Blockchain Trilemma는 Trade off 관계라고 볼 수 있다
'2022 블록체인 지역특화 프로젝트 과정' 카테고리의 다른 글
2022-08-11 공부 (0) | 2022.08.16 |
---|---|
2022-08-10 공부 (0) | 2022.08.16 |
2022-08-09 공부 (0) | 2022.08.16 |
2022-08-08 공부 (0) | 2022.08.16 |
2022-08-04 교육 (0) | 2022.08.04 |
Comments