15-1 네트워크 보안의 개념
15장. 네트워크 보안
컴퓨터 바이러스와 보안 문제
우리 사회는 인터넷과 네트워크 기술의 눈부신
발전으로 언제 어디서나 누구든지 원하는 서비스를 편리하게 이용할 수 있음
악성 프로그램(컴퓨터 바이러스)에 의해 공격이나, 사이버 보안 문제 또한 그 어느 때보다 심각하게 대두됨 웜/바이러스, 트로이목마
컴퓨터 바이러스란 ?
컴퓨터 프로그램이나 운영체제의 실행 가능한 부분을 변형하고, 자신 또는 그 무엇인가를 복사하여 정상적인 프로그램이나 다른 데이터 파일을 파괴하는 등 컴퓨터 작동에 피해를 주는 악성 프로그램
목포해양대 해양컴퓨터공학과 2
컴퓨터 바이러스의 유래 (1)
해외의 경우
컴퓨터 바이러스 1970년대 초부터 바이러스 개념 등장
‘크리퍼(The Creeper)’ 바이러스 최초로 보고
브레인(brain) 바이러스 1986년, 앰자드 알비(Amjad Farooq Alvi)와 배시트알비(Basit Farooq Alvi) 형제가 불법 복제
사용자들에게 낭패를 주려는 목적으로 전파함
더욱 악성적인 바이러스들이 줄지어 출현하기 시작 LBC 바이러스, 체르노빌 바이러스, 슬래머 바이러스 등 출현
감염의 확산 1988년 11월 2일, 인터넷에 연결된 컴퓨터 중 1/3 이상이 바이러스에 감염
모리스 웜(Morris Worm) 코넬대학교 학생이었던 로버트
모리스가 배포 심각한 침해 사고 사태의 심각성을 인지한 미국 정부가 USCERT/CC1를 설립 국가 수준의 인터넷 위협대응
컴퓨터 바이러스의 유래 (2)
국내의 경우
MS-SQL 슬레머 웜의 공격 2003년 1월 25일
인터넷이 마비
인터넷 침해사고 대응을 총괄하기 위한
인터넷침해대응센터(KISC)가 설립 미국 정부가 위협대응 체계를 구성한 지 15년 지남 시점
2011년 4월 농협 해킹사건 / 2013년 3.20 및 6.25
사이버테러 정보보호의 현주소를 다시 한 번 인지하게 되는 계기가 됨
보안문제는 선택이 아닌 필수
목포해양대 해양컴퓨터공학과 4
보안의 목표 (1)
기밀성(confidentiality)
중요한 정보가 승인되지 않은 사람에게 노출되는 것을 방지하는 것
정보는 오직 대화하고 있는 쌍방 간에만 교환되고, 도청자에게 노출되지 않도록 해야 함
암호학과 접근제어 방법이 사용됨
무결성(integrity)
사용하는 정보가 정확하고, 완전하며, 진본임을 보장하는 것으로, 허가나 승인 없는 상태에서 변경되지 않았다는 것 (즉, 고의적인 변경이
없었다는 것)을 의미함
수신된 메시지가 전송메시지와 동일하다는 것을 보장받고자 하는 것
연결 무결성은 암호화와 라우팅 제어를 통해 확보될 수 있고, 호스트 무결성에도 암호화가 이용
해시 함수 이용 시스템에 허가 받지 않은 접근의 유무 확인가능
보안의 목표 (2)
가용성(availability)
언제든지 인가된 사용자가 정보와 서비스를 이용할 수 있다는 것을 보장
가용성 보장을 위한 네트워크 설계 개념 중복, 오류 내구성, 안정성, 오류 복구, 백업 복구 등
가용성을 최대한 보장하는 것이 바람직
네트워크 보안 기술은 기밀성, 무결성, 가용성 등을
보장하는 기술을 의미했으나, 최근에는 사이버 융합(ICT) 환경에서 암호, 인증, 인식, 감시 등 보안(security) 기술과 기반 기술을 활용하여 테러ㆍ재난ㆍ재해ㆍ범죄 예방 등과 같은 안전 서비스를 제공하는 기술 및 시스템을 포괄하는 의미로 정의
목포해양대 해양컴퓨터공학과 6
보안의 적용 –다계층 보안 구조 (1)
네트워크 접근 계층 보안
정부, 은행, 군용으로 많이 사용하는 방식 지역 시스템에서 동작
각 링크의 종단에 부착된 전용 하드웨어
장치가 암호화와 복호화를 수행하도록 구성
지역 LAN의 공유매체에 대한 접근 제어
분리된 관리 네트워크를 구성하거나, 가상 LAN(VLAN)이나 가상 광역 네트워크를
사용하여 가상적인 분리 네트워크를 구성
보안의 적용 –다계층 보안 구조 (2)
인터네트워크 계층 보안
방화벽, 라우터, 스위치, 원격 접근 서버, 인증 서버 등을 통해 네트워크 접근을 제어하는 것
중요한 호스트로의 접근을 허가 받은 사용자와 서비스에게만 허용
접근 제어 목록은 라우터에서 구현되는 패킷
필터로서, 근원지/목적지 IP 주소에 의한 접근 허용 여부를 결정
호스트-호스트계층 보안은 모든 응용이나 상위 계층의 전송 프로토콜을 위한 트래픽을 보호하는 데 사용
목포해양대 해양컴퓨터공학과 8
보안의 적용 –다계층 보안 구조 (3)
IPSec (security architecture for IP)
IP 계층 트래픽을 위한 서비스 모음으로, RFC
2401에 정의된 개방형 표준
IP 패킷의 접근제어, 인증, 데이터 무결성,
기밀성을 제공
IPSec은 두 호스트 사이 , 게이트웨이와 호스트,
두 게이트웨이 사이에서 사용
프로세스 응용계층 보안 (1)
프로세스 응용 계층 보안
하나의 호스트에서의 응용으로부터 다른 호스트의 응용까지의 종단 간 보안을 제공하는 것
하위 계층의 전송 방식과는 무관하게 무결성, 기밀성, 부인 방지와 같은 보안 요구사항을 제공
응용 보안의 예) PGP, S-HTTP, HTTPS, SSL과 TLS 등
PGP (Pretty Good Privacy)
1991년 필 짐머맨(Phil Zimmerman)에 의해 만들어진 것으로 개인의
비밀(privacy)를 보호하고
파일을 암호화하며, 이메일 메시지에 대한 전자 서명 등으로 전
세계적으로 널리 사용되고 있음
키를 교화하기 위해서는 RSA 방식을, 메시지를 암호화하기 위해서는 IDEA 알고리즘을 사용함
목포해양대 해양컴퓨터공학과 10
프로세스 응용계층 보안 (2)
S-HTTP(Secure HTTP)와 HTTPS(Hypertext Transfer Protocol Secure)
웹 응용을 보호하기 위해 설계된 프로토콜
S-HTTP 해당 서비스 페이지 데이터만을 암호화
HTTPS 전체 통신에 관계되므로 암호화 과정이 데이터 전송
전에 시작되어야 함
넷스케이프나 마이크로소프트 웹 브라우저 등 S-HTTP 방식보다는 HTTPS 방식을 지원
SSL(Secure Sockets Layer) 신용카드 정보와 같은 웹 거래에
사용되는 프로토콜로 Netscape에서 설계
TLS(Transport Layer Secure IETF)의 공개표준 RFC 2246, 2712, 2817, 2818 등에서 정의
SSL과 TLS는 클라이언트와 서버 간의 연결을 제공/ 연결을 통해
암호화 기술 –암호화와 복호화
암호학(cryptography) 정보를 감추고 특정한 사람만이 그 정보를 볼 수 있도록 하는 것이 목적으로 함
암호화(encryption) 정보를 감추는 것
복호화(decryption) 감추어진 정보를 보는 것
암호(cipher) 암호화 + 복호화
원래의 정보 평문(plain text)
암호화한 정보 암호문(cipher text)
목포해양대 해양컴퓨터공학과 12
시저 암호화 (1)
암호학의 유래
미국의 컴퓨터과학자 프레드 코헨(Fred Cohen) 암호학의 역사는 4000년 전까지 거슬러 올라감
암호의 사용 고대 이집트에서 시작됨
시저 암호화(Caesar’s Cipher)
시저 암호화 (2)
시저 암호화(Caesar’s Cipher) (계속)
Julius Caesar 알파벳 문자들을 이동시켜 암호화하는
독창적인 방법을 처음으로 사용
시저 암호화는 부가적 암호방식(additive cipher) 또는 천이형 암호방식(shift cipher)임
암호화/복호화 방법
알파벳 대문자(혹은 소문자)를 순서대로 0 ~ 25까지 숫자에 대응시킴
각 문자마다 ‘(평문 알파벳의 값+키) mod 26’을 계산 암호문 알파벳의 값
계산된 결과를 다시 문자로 변환하여 암호문 생성
ROT 13rotate 13 시저 암호화와 비슷한 방식으로, 이는 종이에
알파벳을 두 줄로 적고 두 번째 줄은 13번째 행부터 적는 방법
목포해양대 해양컴퓨터공학과 14
암호화 방식 (1)
대칭 암호화와 비대칭 암호화로 구분
대칭키(symmetric key)와 비대칭키(asymmetric key)의 두 가지 형태
대칭키
암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 동일
비밀키(secret key) 대칭키인 경우 비밀을 유지해야 함
암호화 방식 (2)
비대칭키
공개키 암호화 방식이라고도 지칭
두 개의 다른 키를 사용하는 방식
하나는 암호화에 사용되는 공개키(public key)이고, 다른 하나는 복호화에 사용되는 개인키(private key)
목포해양대 해양컴퓨터공학과 16