[인터넷보안]기말고사 시험 정리

류명운

·

2014. 12. 7. 23:19

반응형


인터넷보안기말완성.hwp


1 사용자 인증 기술

사용자 인증 절차

사용자식별(Identification)→사용자인증(Authentication)→사용자권한부여(Authorization)

 

매체에 의한 사용자 인증 기법

알고 있는 정보(what you know) :비밀번호 인증 - 1Factor

지니고 있는 것(what you have) :스마트 카드, usb 토큰, otp 토큰 등 - 2Factor

생체정보(what you are) :지문인식, 홍체인식, 얼굴인식 -3Factor

* 최근의 추세는 2 Factor이상의 인증 요구

Q. 모바일 어플리케이션을 이용한 OTP는 몇 Factor인가? -> 1Factor (별도의 OTP장치가 없기 때문에)

Q. 일회용 비밀번호 인증에서 HOTP는 몇 Factor인가? -> 2Factor

 

사용자 인증 기술의 종류 (영문표기법 알아 둘 것)

정적 비밀번호 인증(Fixel Password Authentication)

일회용 비밀번호 인증(One-time password Authentication)

공개키 기반의 인증(PKI-based Authentication)

하드웨어 토큰 인증(H/W Token Authentication)

생체인증(Biometrics Authentication)

인증 기술의 혼합(Mixed Authentication)

정적 비밀번호 인증(Fixel Password)

비밀번호를 암호화되지 않은 평문 상태로 네트워크 통신 경로에 전송하고 반복적으로 사용

취약점

비밀번호 가로채기 공격: 도청, 어깨너머 공격

비밀번호 예측 공격: 사전공격

비밀번호 재전송 공격

비밀번호 판매: 내부 사용자에 의한 유출

해결법

가로채기 공격 -> SSL등과 같은 공개키 기반의 암호화 채널 기법 적용

가로채기, 재전송 공격 -> 일회용 비밀번호 기법(OTP) 적용

일회용 비밀번호 인증(One-time Password)

가로채기, 재전송 공격에 대응하기 위한 기술로 별도의 소프트웨어나 하드웨어 장치가 요구됨

일회용 비밀번호 생성과정

1[c]: 접속->[s]

2[s]: 인증요청->[c]

3[c]: 일회용 비밀번호 생성

4[c]: 일회용 비밀번호 제시->[s]

일회용 비밀번호의 네 가지 유형

1 비밀번호 목록에 의한 방식(보안카드) ->2Factor

2 S/Key방식(해쉬 체인을 이용하며 부가적 소프트웨어 요구) ->1Factor

3 질의-응답 방식(별도의 비밀번호 생성장치 요구) ->2Factor

-클라이언트와 서버의 비밀 정보 공유를 전제로 함

-pop(proof of possesiion) 일반적으로 비밀번호 생성을 위한 별도의 h/w 장치 사용

4 동기화 방식(별도의 비밀번호 생성장치 요구)

이벤트 동기화 ->동기화된 counter정보와 공유 비밀번호를 사용하여 일회용생성

시간동기화 ->동기화된 시간 정보와 공유 비밀번호를 사용하여 일회용 생성

* 시간기법은 비밀번호가 변호는 그 단계에서 재전송 공격이 가능함

 

장점

단점

비밀번호 목록

구축비용이적고 구현이 쉬움

비밀번호 유출위험이 큼

S/Key

서버에 사용자 비밀정보가 저장되지 않음

서버가 붕괴되도 안전함

연산량이 가장 많음

최대 인증 횟수를 넘어서면 초기화 과정이 필요

질의-응답

OTP생성에 별도의 제한이 없음

인증단계가 3단계라 사용자가 굉장이 불편

동기화

질의가 필요없어 인증단계가 1단계

동기화가 맞지 않을 경우 보정작업이 필요

일회용 비밀번호 표준-OCRA -> Q(질의값) -필수 / C,P,S,T -옵션

 

2 OCRA

Man In The Browser Attacks에 대한 공격대응 방안

->사전의 사용자 요청에 따라 문자메시지로 결과 전달(그러나 거래가 이루어진 이후이기 때문에 방어하기 쉽지 않음) ->그래서 나온게 “거래연동 인증(transaction signing)” 과정이 추가됨

거래연동 인증->안전카드, 시간동기화, 이벤트 동기화, 질의응답형(최대핵심)

 

OCRA를 이용하여 거래연동인증을 사용

인증방식-기본형

R= OCRA(K, {[C] | Q | [P | S | T] })

Q. OCRA 인증방식-기본형 왜 취약한지?서버는 클라이언트를 인증하지만 클라이언트는 서버에 인증하지 않음

->Server spoofing :클라이언트가 서버에 인증하지 않고 R값을 만듬

->중간자공격 :질의값에 대한 응답값을 가로채서 공격자가 서버에 직접 인증함

인증방식-상호인증(양방향인증)

OCRA(K, [C] | QS | QC | [S|T]) != RS - > STOP

OCRA(K, [C] | QS | QC | [P|S|T]) != RC - > STOP

OCRA-거래인증 어떻게 응용할 것인가?

->QS값 대신에 거래 관련 값을 전송함

단점 : 재전송공격이 가능함 (ex:[천만원을 서버에 보냈으면] 공격자가 나중에 sign값을 알아내면 sign값을 서버에 재전송함)

Q. OCRA 서버와 유저가 인증되는 부분은 어디이며 원리는 무엇인가?

 

3 LTE보안

4G Networks -ITU-R라는 표준 요구사항을 정의

두 개의 중요 요구사항

->High Speed [정지1Gbps / 이동100Mbps]

->Smooth Handover between heterogeneous networks[네트워크 사이의 자연스러운 이동]

두 개의 대표적인 4G네트워크

Long Term Evolution Advanced(LTE-A) ->4세대 (Long Term Evolution (3.9G) ->4세대X)

WIMAX Advanced(우리나라에선 Wibro)

 

LTE보안은 AKA 프로토콜을 사용

USIM->가입자의 비밀키 K(이걸갖고인증함), 식별값 IMSI, 정보, 암복호화 알고리즘을 갖고 있음

UE->사용자 단말기로 USIM을 장착

UE Security Capability: UE가 지원 가능한 암호화 알고리즘 목록

 

LTE 네트워크 구성도

-eNB :LTE 기지국

-MME :UE를 인증하는 역할을 함 (MME가 사용자의 위치를 갱신해줌)

-HSS :가입자(UE)별로 비밀키 K와 정보를 관리하는 서버

어느시점에서 MME가 인증되는가 / UE가 어느시점에서 인증되는가

-UE는 MME로부터 받은 (RAND, AUTNHSS, KSIASME)을 이용해 MAC값을 만들고

MME로부터 받은 AUTNHSS에 있는 XMAC과 비교하여 MME를 인증함

-MME는 UE로부터 RES값을 받고 자신이 만든 XRES와 비교하여 UE를 인증함

벡터값관련...뭐있는데(물어보기)

 

4 SSL

SSL이란? 전자상거래를 하기 위해 만들어짐

웹서버와 웹브라우저에 SSL이 끼면 둘 사이의 채널은 보안채널이 됨

SSL서비스의 종류

통신객체 인증 / 데이터 기밀성 / 데이터 인증 및 무결성

압축 / 세션키 생성 및 분배 / 보안속성 협의

SSL은 두 계층의 프로토콜로 구성됨(TCP계층과 응용계층 사이에서 동작함)

레코드 프로토콜

상위계층 프로토콜

상위계층 프로토콜에게 기본적인 보안서비스를 제공

SSL

HandshakeProtocol

SSL Change Cipher Spec Protocol

SSL

Alert

Protocol

HTTP

Other

Application

Protocols

보안속성협의

암호화알고리즘

에러발생할 경우 주고받는 메시지

 

응용프로그램

ex)카카오톡

SSL 구조

SSL 연결과 세션

연결 :두 객체가 연결하여 통신하는 최소 단위(한 개의 세션과 연관됨)

세션 :한 클라이언트와 한 서버 사이의 연관을 의미, 핸드셰이크 프로토콜에 의해 시작(보안 매개변수들을 합의)

Q. SSL에서 보안 매개변수들을 합의하는 지점은? ->세션(Session)

SSL 세션 정보(방식에 관한 정보)

세션 식별자(Session ID)

대등 인증서(Peer Certificate) :상대방의 인증서를 가져옴

압축방법(Compression Method)

암호명세(Cipher Spec)

마스터 비밀(Master Secret) :마스터키를 교환하기 위해 공개키 연산을 하는데 오래걸림↓

재시작 여부 : 한번 만든 마스터키를 다시 사용할지 물어봄

SSL 연결 정보(실질적인 키 정보)

*서버와 클라이언트 난수

난수와 마스터키를 이용하여

암호화 통신에 쓰일 4가지 키 생성→

*Server Write MAC Secret *MAC은 무결성을 위해

*Client Write MAC Secret

*서버 암호키(Server Write Key)

*클라이언트 암호키(Client Write Key)

*초기화벡터

*순서번호

SSL레코드 프로토콜은 기밀성과 메시지 무결성을 제공함

-> (응용데이터→단편화→압축→MAC첨부→암호화→SSL레코드 헤더 붙이기)

Q. 핸드셰이크 프로토콜 과정 중 협상 부분은? SSL 세션에서 이루어짐

Q. 핸드셰이크 프로토콜 과정 중 중간자 공격에 대응하기 위한 방법은?전자인증

 

Q1. 어느시점에서 Master Secret이 만들어 지는가?

->C가 S에게 clinet_key_exchange을 보내면 S는 그걸 복호화하여 프리마스터시크릿을 알아내고 C난수값과 S난수값을 버무려서 Master Secret값을 생성

 

Q2. 클라이언트 입장에서 서버의 인증이 이루어지는 과정은 어디인가?

->맨 마지막 Finished {이제까지 교환된 핸드셰이크 메이지에 대한 해쉬값을 포함하며 master secret으로 보호됨}

인증과 키교환이 적절히 이루어 졌는지 검증

 

Q3. 클라이언트가 서버에게 인증하는 부분은 어디인가?

->Certificate_Verify = {이제까지 교환된 핸드셰이크 메시지에 대한 전자서명} // 클라이언트의 인증은 필수가 아닌 옵션 임. 서버에 의해 클라이언트 인증이 요구될 경우만

 

Q4. 클라이언트에서 공개키 연산이 이루어지는 부분은?

->Client_Key_Exchange = 서버의 공개키로 암호화된 Premaster secret

 

Q5. 공개키 연산은 각각 몇회씩 이루어 질까?(@@확인해볼것@@)

서버 : 프리마스터시크릿 복호화2회 =2회

클라이언트 : 서버인증1회, 프리마스터시크릿 서버공개키로암호화1회/자신의개인키로 암호화1회 =3회

공개키 연산을 많이 하면 서버가 무거워짐

서버쪽에서 한번의 공개키 연산을 함(@@확인해볼것@@)

ex)서버에서 동시에 50만명이 동시접속할 경우 서버과부하 ->공개키연산을 최적화 하는게 이슈

해결방법 ->SSL가속기 사용: 하드웨어 속에서 이뤄짐

 

 

5 악성소프트웨어 

악성프로그램 (Malicious Program or Malware)

호스트 프로그램 필요 (기생형)

독립적

트랩도어

웜 (자기복제 가능)

논리폭탄

좀비 (자기복제 가능)

트로이목마

 

바이러스 (자기복제 가능)

 

트랩도어(백도어) : 프로그램의 숨겨진 은밀한 진입점 (ex- 게임 개발자가 자신만 아는 치트키)

개발자들이 디버그를 용이하기 위해 (ex – 공인인증서 개발 시 매번 인증할 수 없으니)

논리폭탄: 합법적 프로그램에 삽인된 코드 (if 특정조건 만족 = do damage)

트로이목마 : 숨겨진 코드를 포함하는 유용하거나 매력적인 프로그램 (게임,유틸리티 등)

주로 바이러스/웜의 전파나 백도어 설치를 위해 사용됨

바이러스 : 어떤 호스트에 자신을 복제시키는 코드를 의미

자동동작 불가, 호스트 프로그램에서 바이러스를 실행해야 동작

악성코드의 생명주기

a. 잠복단계 – 감염 후 숨어있는 단계

b. 전파단계 - 감염단계

c. 트리거단계 – 특정 이벤트의 발생으로 바이러스 활성화

d. 실행단계 – 악의적 동작 수행

 

 

바이러스 구조 1

 

바이러스 구조 2 (압축 바이러스)

 

바이러스 구분 법

① 1234567 찾으면 됨

② file size 변동이 있나

③ 기계어를 어셈블리어로 바꾸면 알 수 있다

 

① compress file

② prepend CV to file

③ uncompress rest-of-file

④ run uncompressed file

 

1.발견된 각각의 감염되지 않은 파일 P2에서 바이러스는 처음에 그 파일을 압축하고 바이러스의 크기에 맞추어 원래의 프로그램보다 더 짧은 P2'를 만들어낸다.

2.바이러스의 복사본이 압축된 프로그램으로 사전 삽입

3.압축된 원래의 감염 프로그램 P1' 은 압축이 풀린다

4.압축이 풀린 원래의 프로그램이 실행된다.

 

바이러스 유형 – target에 따라

파일바이러스

(Parastic virus)

실행화일에 붙어서 감염된 프로그램이 실행될 때 활동

메모리 상주 바이러스

(Memory-resident virus)

주 메모리 상주하면서 실행되는 모든 파일 감염시킴

부트섹터 바이러스

(Boot sector virus)

디스크의 부트섹터에 감염되어 부팅시 활성화됨

매크로 바이러스

(Macro virus)

오피스 제품의 매크로 기능을 악용 (주로 이메일에 의해 전파)

 

바이러스 유형 – 숨기는 방법에 따라

암호화 바이러스

 

폴리몰픽 바이러스

 

메타몰픽 바이러스

 

스텔스 바이러스(Stealth virus)

백신에 탐지되지 않도록 정교하게 설계됨 (압축, DisK 1/10)

 

웜의 정의

자동으로 동작하는 프로그램, 자신을 실행시키기 위해 시스템 자원 소모, 자신을 다른 머신으로 전파 가능

독립적으로 자기복제, 빠른전파력을 가진 프로그램 또는 실행코드

웜의 특징 (바이러스와 비교)

바이러스

로컬시스템으로 전파되지 않음, 시스템에서 시스템으로 전파

로컬 컴퓨터 내부를 감염시킴

 

파일을 감염시키지 않음

감염대상이 파일임

일반적으로 메모리 상에서만 존재함

 

웜의 활장 절차

① 잠복단계

② 확산단계 (다른 시스템 검색 -> 원격시스템과 연결 -> 원격시스템에 자신 복사 후 복사본 구동)

③ 트리거 단계

④ 실행단계

반응형