Computer Science/Security

[HUFS/정보보안] #6 인터넷 보안, 암호의 이해

성중 2022. 11. 12. 17:15

인터넷 보안

DNS

인터넷에서 식별할 ID인 IP 주소가 숫자로만 되어있어 직관적이지 않아 이름을 붙인 형태 사용

ex) www.naver.com, www.hufs.ac.kr

 

이름을 IP 주소로 변환해주는 DNS 서버는 계층적으로 구성된 분산 데이터베이스로 관리된다

* 하나의 이름에 여러 개의 IP를 지정해 부하 분산 (특히 웹 서버의 경우)

 

DNS의 계층 구조

DNS 서버가 공격받는 경우 인터넷이 정상 작동해도 서비스가 마비될 수 있다

  • DDoS 공격: 과도한 트래픽을 발생시켜 루트 DNS 서버를 공격하는 경우 핑 메시지를 차단하거나 캐시를 통해 루트 DNS 트래픽을 감소시켜 대응, TLD 서버 공격은 대체제가 없어 위험
  • 가로채기: DNS 패킷을 가로채거나 가짜 패킷을 보내는 경우 (구현이 어려워 거의 없음)
  • DNS 구조에 기반한 호스트 DDoS 공격: 책임 DNS가 호스트에게 DNS 요청이 쏟아지도록 공격

 

새로운 도메인을 등록할 때, 기존에 존재하는 이름인지, 등록/관리자 및 생성 시기, 할당 지역 등을 확인할 수 있는 최상위 관리 정보를 담고 있는 WHOIS 서버 (보통 공공기관이 관리)

* nslookup 명령어로 DNS 서버에 도메인 ip를 문의하기 전에, hosts 파일을 먼저 조회해보자!

 

KISA 후이즈검색🔽

 

KISA 후이즈검색 whois.kisa.or.kr

한국인터넷진흥원 인터넷주소자원 검색(후이즈검색) 서비스 입니다.

xn--c79as89aj0e29b77z.xn--3e0b707e

 

IP 추적

패킷의 출발지와 목적지 확인 / 메일 위치 추적 / P2P를 이용한 IP 추적 / 웹 게시판 / traceroute ~ WHOIS에 IP 조회

 

e-mail 구성 요소

e-mail은 각 user agent(사용자 프로그램, 메일 작성 및 표시)에서 mail server(message queue, mailbox, 메일 전송 및 저장)를 통해 SMTP(메일 서버끼리 메일을 주고받을 때 사용하는 프로토콜, 포트)에 따라 메일을 주고받는다. 각 메일은 서버에 저장되며 클라이언트에 캐싱 가능하다

 

SMTP(Simple Mail Transfer Protocol) 포트에 대한 액세스 방지🔽

 

SMTP(Simple Mail Transfer Protocol) 포트에 대한 액세스 방지

알 수 없는 애플리케이션으로부터 SMTP(Simple Mail Transfer Protocol) 서버를 보호하려면 SMTP 포트에 대한 액세스를 방지하는 것이 좋습니다. SMTP가 시작되지 않도록 방지하고 누군가가 사용자 애플리케

www.ibm.com

 

메일의 헤더를 확인해 메일 추적
파일 전송 등 P2P를 이용한 IP 추적

스캔

공격 대상의 정보를 모으는 방법을 풋프린팅(footprinting)이라고 하며, 서버의 존재 여부와 서비스를 확인하는 것은 스캔이라고 한다 (TCP 기반 서비스는 요청시 응답을 보내는 것을 이용)

 

해당 IP에 네트워크와 시스템이 정상 작동하는지 확인하기 위한 유틸리티인 ping도 있다

 

ICMP를 사용하며 악용될 수 있어 애초에 방화벽이 막기도 한다

동작중인 서비스의 네트워크 창구 번호인 포트가 열려 있으면 서비스가 구동 중이라는 의미이다

ex) HTTP 80, FTP 21, SMTP 25

 

TCP Open 스캔 (응답을 통해 포트가 열려 있는지 식별)

보통 포트 스캔은 로그가 남아 서버 관리자가 눈치챌 수 있어, 해커들은 세션 연결을 하지 않고 포트 활성화 여부를 확인하는 스텔스 스캔을 사용해 로그를 남기지 않는다

 

TCP Half Open 스캔 (RST 신호를 보내 연결을 무효화해 로그를 남기지 않음)

처음부터 연결을 종료한다는 패킷을 보내는 FIN 스캔을 사용하기도 한다

 

FIN, NULL, XMAS 스캔 (응답이 없는 경우 열린 포트, 로그를 남기지 않음)

운영 체제별로 약간씩 다른 프로토콜 특성을 활용해 운영 체제 정보를 탐지할 수 있는데, 원격지 접속시 안내문 같은 배너를 확인하는 배너 그래빙(banner grab)이나 운영 체제별로 다른 TCP/IP 반응을 확인해볼 수 있다

 

배너 그래빙(banner grab)
방화벽의 존재 확인 방법

 

암호의 이해

암호화

암호화 알고리즘

암호학적 강도를 높이는 방법

  • 혼돈(Confusion): 키를 활용해 단순한 통계적 성질의 관계를 제거
  • 확산(Diffusion): 키의 한 비트만 바꿔도 결과의 모든 비트가 변하도록 설계

 

암호화와 복호화에 동일한 키를 사용하는 방식을 대칭키 암호화(symmetric-key crypto)라고 하며, 송수신자가 동일한 키를 보유한다. 키는 노출되지 않아야 하며 간단한 치환과 전치의 조합으로 연산 속도가 빠르다. 다수의 사용자가 있을 때 많은 키를 관리해야 한다

 

고정된 크기의 블록 단위로 암호화/복호화가 이루어지는 방식을 블록 암호(Block cipher)라고 하며 대표적인 알고리즘으로 DES, AES, SEED, HIGTH 등이 있다

 

DES(Data Encryption Standard) 알고리즘 - 현재는 사용되지 않음

  • 더욱 발전한 AES(Advanced Encryption Standard) 알고리즘은 128비트 암호화 블록과 다양한 키 길이, 라운드 수 가변 등을 제공해 현재도 사용 중
  • 국내에는 전자상거래 등의 개인 정보 보호를 위해 개발된 SEED 알고리즘, 전자정부가 구현한 ARIA 알고리즘, 저전력 및 경량화 버전인 HIGHT(HIGh security and light weighHT) 알고리즘이 있다
  • 그 외에도 IDEA, RC5 등의 대칭형 알고리즘이 있다

 

암호화 키 교환의 문제로 비밀키와 공개키를 활용하는 비대칭 암호화 방식이 만들어졌다. 비밀키를 가지고 있는 내가 공개키를 생성해 외부에 공개할 때, 외부로 전달하는 정보는 사람들이 공개키로 복호화 할 수 있지만 반대로 공개키로 암호화되어 나에게 오는 정보는 개인키로만 복호화 할 수 있다. 공개키 생성에는 RSA 알고리즘이 사용된다

 

비대칭 암호화 구조
기밀성 보장 (송신자와 수신자 보장)

  • 개인키로 암호화하는 경우: 전자서명 등 내가 메시지를 만들었다는 사실을 공공에게 증명
  • 공개키로 암호화하는 경우: 비밀 보장, 신원 보증 등 개인 키를 가진 사람만 복호화 가능

 

해시

하나의 문자열을 짧은 길이의 값이나 키로 변환하는 구조를 해시(Hash)라고 한다. 기밀성이 목적인 암호화와 달리 검증을 목적으로 사용된다

 

보안에서 사용하는 해시

해시 알고리즘

  • MD(message Digest Algorithm): MD2, MD4, MD5 등 32개의 16진수로 구성되며 충돌이 생길 수 있고 무결성 확인을 위한 알고리즘으로 사용된다
  • SHA(Secure Hash Algorithm): SHA-1, SHA-2(SHA-256, SHA-384, SHA-512) 등 MD4가 발전한 형태로 160비트를 생성하고 조금 느리지만 더 안전하다

 

해시의 동작
MD5 해시 알고리즘

블록체인

블록체인이란 분산되고 독립적이며 개방된 공통 장부(원장) 관리 기술이다

* 전자화폐 / 해외 송금 / 데이터, 메시지 저장 및 보호에 활용

 

모든 거래 정보(트랜잭션)는 여러 노드(컴퓨터)에 걸쳐 분산 저장

  • 중앙 집중형 거래: 제 3자 신뢰기관과 개인의 거래인 경우, 중앙 서버가 거래를 공증하는 중앙집중화 방식으로, 사이버 공격의 위협과 유지 관리가 필요한 전통적 방식
  • 분산형 거래: 기관에 비의존적이고 수수료가 절감되는 탈중앙화 방식으로, 투명한 거래 내역이 모든 네트워크 참여자들에게 공유 및 보관되며, 해킹의 위험성이 낮고 높은 보안성을 가짐

 

블록체인의 분류

  • public block chain: 일반적으로 생각되는 블록체인으로, 누구나 열람/송금이 가능한 공개된 형태. 모두가 운영의 주체이며 51% 이상의 동의로 프로토콜 변경. 경제적 인센티브를 제공하지만 악용의 소지 있음
  • private block chain: 하나의 기관에서 독자적으로 관리하는 블록체인으로, 참여자가 미리 정해져 있으며 추가/제거될 수 있음. 금융기관에서 사용
  • consortium block chain: 반중앙형 블록체인으로, 동일한 목적을 가진 다수의 기업 혹은 조직이 하나의 컨소시엄을 구성해 네트워크를 관리

 

블록체인의 분류

블록 체인의 기술

  • 해시 함수: 단방향이며, 역방향은 산출 (위조, 조작) 불가능한 함수로 데이터 변조 유무를 검증
  • 공개키 암호화: 공개키/개인키로 암호화/복호화 작업을 해 전자 서명

 

비트코인은 국가나 기관의 통재를 받지 않는 세계 최초의 블록체인 기술 기반 암호화폐로, 지갑은 비대칭 암호화를 사용하며 블록 생성에 대한 보상으로 비트코인을 지급한다. 처리 속도가 느리고 저장 공간이 많이 필요해 이를 보완한 이더리움이 등장했다

* 암호화폐는 종합적인 분석, 설명, 전망을 포함한 암호화폐 백서를 함께 제시

 

블록체인의 노드(컴퓨터)는 다음과 같이 분류된다

  • 완전 노드(full node): 모든 블록체인 정보를 수집/저장하며 새로운 블록 추가를 위한 검증 수행
  • 단순 지금 검증 노드(light node): 블록 체인에 참여하는 일반 노드로, 모든 정보를 갖지진 않으며 개별 거래의 트랜잭션 확인을 위해 SPV 수행

* SPV(Simple Payment Verify): 거래 검증을 위해 일반 노드가 풀 노드에게 블록 정보를 요청해 검증하는 행위

 

블록에 트랜잭션이 쌓여 새로운 블록을 만들어야 할 때, 작업증명을 통해 블록 생성 및 배포한다. 이는 난스(nonce)값을 변경하며 계산해 조건에 맞는 값을 찾는 개념으로 맞으면 보상으로 새로운 블록 체인이 추가되고 맞지 않으면 난스값을 변경한다

 

기본 동작

이 때 난이도는 블록 생성을 조절하기 위한 수치로, 블록 헤드 중 유일하게 변경될 수 있는 난스(nonce)값을 1씩 증가시키며 난이도 값과 맞는 작업 증명이 될 때까지 반복한다