1. 정보보호 관리

(1) 정보보관리 개념

1) 정보보호의 목적 및 특성

- 정보보호의 정의 : 정보의 수집, 가공, 저장, 검색, 송신, 수신 중 발생할 수 있는 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적/기술적 수단(정보보호시스템)을 마련하는 것을 말한다.(국가정보화 기본법)

- 정보보호 ≠ 정보보안 : 정보보안이 Site(공간)이라는 개념이 더 들어간, 넓은 개념이라고 생각하자

- 정보보호의 목적 : 기밀성 / 무결성 / 가용성 / 인증 / 부인방지 / 신뢰성 등


2) 정보보호와 비즈니스

- 정보보호와 비즈니스 : IT 인프라에 대한 정보보호는 비즈니스의 보호뿐만이 아니라 비즈니스 가치의 증가로 이어 짐

-- 한 조직의 정보 자산뿐만이 아니라 고객의 정보(개인정보)까지 보호해야 할 법적인 의무도 있고, 고객의 신뢰로 이어지니까

-- 향후 조직의 비즈니스에 큰 도움이 될 것은 자명해


3) 정보보호관리의 개념

- 정보보호관리(Information Security Management)

-- 조직의 정보자산을 외부로 부터의 유(노)출과 오용, 유실으로 부터 방어하고, 정보나 정보 시설을 방어하는데 관련된 모든 일련의 활동

- 정보보호관리를 위한 6단계 활동

-- 정보보호 정책 및 조직 수립 → 정보보호 범위 설정 → 정보자산의 식별 → 위험관리 → 구현 → 사후관리

- 위의 활동들을 지속적으로 하기 위해 체계화해서 만든게 정보보호관리체계(ISMS ; Information Security Management)

-- 그냥 한 번 정보보호 솔루션을 만들고 끝내는게 아니라, 비즈니스의 연속성과 함께 계속 지속되어야 되

-- 최근에는 매출이 크거나 고객이 많은 조직은 법적으로 갖춰야해



(2) 정보보호 정책 및 조직

1) 정보보호 정책의 의미 및 유형

- 정책(Policy) : 최고 경영진의 전략적인 사고를 문서화한 것

-- 정책 中, 가장 핵심적인 걸 "정책서"라고 함

-- 하향식 유형(Top-Down) : 상위 정책으로 부터 하위수준의 정책을 도출하는 방식

-- 상향식 유형(Bottom-Up) : 기존의 정책들을 종합해 새로운 정책을 수립하는 방식

- 정책이 가지는 특징과 가져야할 특징

-- 여러 다른 지침과 하위 수준간의 정책들이 일관성과 연관성이 필요함

-- 최상위 정책은 전사적인 정책을 모두 포함해야 함

-- 간결하고 명확 / 정보보호의 목표와 회사의 비전을 포함해야 함

-- 영향을 받는 임직원들에게 정책에 대한 설명 해야 함 / 간단한 내용과 이해하기 쉬운 표현

- 정보보호 정책서의 구성

- 정보보호 선언문 : 보통 1장에 심플하게 작성 / 정보보호전반에 대한 경영자의 의지 및 실천을 다짐하는 선언문

- 정책서 목적과 구성 / 기본 방침 / 정보보호계획수립 / 보안에대한 역할과 책임 / 정보자산의 보안 / 등


2) 정보보호 정책수립 절차

- 정보보호 정책 수립 : 조직 전반에 걸친, 최상위 수준의 정보보호정책을 수립하고, 조직내 책임을 설정

-- 정보보호 정책서 안에 포함되는 개념인듯

- 정보보호 정책 수립 과정

-- 경영목표를 지원하는 법적/규제적인 요건을 파악

-- 위험관리에 따른 전략적 정보보호 정책 수립

- 정보보호 정책서 작성 방안(정보보호 정책 수립도 여기에 들어가)

-- 목적 : 중요한 정보자산이 무엇인지 식별하여 선언

-- 적용 범위 : 정책이 적용되는 범위(전사이냐, 특정 부서이냐)

-- 정책의 내용 : 간단하고 명료하게

-- 책임 : 정책을 수행하기 전에, 기본적으로 책임사항을 정의해야함(경영진의 책임, 일반직원의 책임 등)

-- 문서승인 : 정보보호 정책의 승인은 최고 경영자(CEO)가 이 정책을 승인하고 지원의지를 알리는 것(반드시 승인받아야 해)

-- 정보보호위원회의 구성 : 정보보호정책 수립의 이행을 위해 만든 위원회(형식적인 위원회 구성이 아닌 실직적 운영을 위한)


3) 조직 체계와 역할/책임

- 정보보호 조직 : 정보보호 정책을 잘 수립하여 수행해 나갈 수 있는, 체계적인 역할과 책임을 가지는 조직

-- 위에서 언급했듯이, 정보보호 정책서에 책임사항을 정의한거랑 연계해서 생각해

- 일반적인 정보보호 조직체계

-- 정보보호 심의위원회 : 정보보호 활동계획 및 예산 심의 / 정보보호 정책 및 규정의 최종승인

--- 위원장 : 대표이사 / 위원 : 정보보호책임자 / 간사 : 정보보호 관리자

-- 정보보호 책임자 : 정보보호 조직의 구성 및 운영 총괄 / 정보보호 방침 및 계획 실무지침 수립 및 승인

-- 정보보호 관리자 : 정보보호 롸동의 계획 및 관리 / 정보보호방침의 유지, 이행

-- 정보보호 담당자

--- 정보보호 운영 담당자

--- 정보보호 대응 담당자



(3) 위험관리

- 정보보호관리체계(ISMS)의 5단계에서 위험관리의 위치

-- [정보보호 정책 수립 → 관리체계 범위설정 → 위험관리 → 구현 → 사후관리] 를 계속 반복함

 

- 위험관리 : 조직이 정보자산에 대한 위험을 수용할 수 있는 수준으로 유지하기 위해

정보자산에 대한 위험을 분석하고 이에 대한 비용대비 효과적인 보호 대책을 마련하는 일련의 과정

- 위험관리과정(5단계로 구성)

-- 위험관리전략 및 계획수립 → 위험분석 → 위혐평가(처리) → 정보보호 대책수립 → 정보보호 계획수립(다이렇게표현하는데?)

-- 위험관리전략 및 계획수립 → 위험분석 → 위혐평가(처리) → 보호대책 선정 → 이행계획 수립(내가 배울때는 이렇게 배움)

-- 위 그림같이 3단계로도 표하기도 하네

- 위험(Risk) : 원하지 않는 사건이 발생해 손실 또는 부정적인 영향을 미칠 가능성

- 위험의 요소

-- 자산(Assets) : 조직이 보호해야할 대상

-- 위협(Threats) : 원치 않은 사건의 잠재적인 원인이나 행위자

-- 취약성(Vulnerability) : 자산의 잠재적인 속성으로, 위협의 이용 대상

-- 정보보호대책(Safeguard) : 위협에 대응하여, 자산을 지키기 위한 대책


1) 위험관리 전략 및 계획수립

- 위험분석 접근법

-- 베이스라인 접근법(Baseline Approach)

--- 위험분석을 수행하지 않는 대신, 모든 시스템에 대해 표준화된 보호대책을체크리스트형태로 제공

--- 소규모조직이나, 대규모조직의 중요치 않은 일반 자산에 대하여 사용하는 접근법(화장실 청소 체크리스트??)

-- 비정형 접근법(Informal Approach ; 전문가 판단법)

--- 구조적인 방법론에 기반하지 않고, 전문가의 지식과 경험에 따라 위험을 분석

--- 작은 조직에서는 효과적

-- 상세 위험분석(Detailed Risk Analysis)

--- 구조적인 방법론에 기반해서 위험을 분석하는 것

--- 많은 시간(돈)과 노력(돈)이 필요하고 비정형 접근법과 같이 고급인력이 필요함(돈)ㅋ

--- 자산분석 → 위협평가 → 취약성평가 → 정보보호 대책평가 → 잔여 위협평가

-- 복합 접근법(Combined Approach)

--- 상세 위험분석을 수행하고, 그 외 다른 영역은 베이스라인 접근법만을 사용하는 방식

- 위험분석 방법론의 선정

-- 정성적 분석방법(Qualitative) : 위험을 매우높은, 높은, 중간, 낮은 등으로 표현

--- 델파이법 : 전문가 집단에게 설문조사를 실시해 의견을 정리하는 분석방법

---- 짧은 시간에 도출할 수 있지만, 전문가의 추정이라 정확도는 낮지

--- 시나리오법 : 어떤 사실도 기대대로 발생되지 않는다고 치고, 특정 시나리오를 통해 발생 가능한 위협의 결과로 순위를 매겨 도출

---- 전반적인 가능성을 추론가능하지만, 발생 가능성의 이론적 추축에 불과해 정확성이 낮지

--- 순위결정법 : 비교우위 순위 결정표에, 위험 항목의 서술적 순위를 결정하는 방식

---- 이것도 정확도 낮네(다 낮어 ㅅㅂ ㅋㅋㅋ)

-- 정량적 분석방법(Quantitative) : 위험을 손실액과 같은 숫자값으로 표현 / 주로 미국에서 사용하는 방식

--- 연간예상손실액(ALE) = 단일예상손실액(SLE) X 연간발생률(ARO)

---- 단일 예상손실액(SEL) = 자산의가치(AV) X 노출계수(EF)


2) 위험분석

- 위험의 3요소인 자산 / 취약성 / 위협을 분석(식별과 분류)

-- 어떻게 할껀지 방법론과 접근방법은 위에서 제시 함


2-1) 위험평가(기출내용엔 없지만, 걍 내가 만들었어)

- 목표 위험 수준 및 우선순위 설정 : 수용가능한 위험수준를 기반으로 우선순위를 결정

-- 수용가능한 위험수준(DOA)은 사전에 정의해야 일관성이 유지됨(위험관리 전략 및 계획수립 단계)


3) 정보보호 대책 선정 및 계획서 작성

- 위험관리의 마지막 순서로, 위험을 분석하고 순위를 매겼으니까 그에 대한 위험처리 방법을 선택하고 계획서 짜는 단계

- 위험처리 방법

-- 위험수용(Acceptance) : 해당 위험의 잠재 손실 비용을 감수
-- 위험감소(Mitigation) : 위험을 감소시킬 수 있는 대책을 채택하여 구현하는 것

-- 위험회피(Risk Avoidance) : 위험이 존재하는 프로세스나 사업을 수행하지않고 포기

-- 위험전가(Risk Transfer) : 보험이나 외주 등으로 잠재적 비용을 제3자에게 이전하거나 할당



(4) 대책구현 및 운영

1) 정보보호 대책 구현

- 정보보호 대책 : 위험을 감소시키기 위한 정보보호조치를 의미(장치 / 절차 / 기법 / 행위 등을 포함)


2) 정보보호 교육 및 훈련

- 수업에서 교수님이 진짜 사실이게 핵심이랬는데 ㅋ(아무리 대책잘짜면 뭐하냐고 상놈들이 실천안하는데)

- 그냥 말단직원부터 임원, 최고경영자까지도 전사적으로 싹다 교육시켜야되


3) 컴퓨터/네트워크 보안운영

- PC보안 / 네트워크 보안 / 매체보안(데이터의 보관과 폐기)



(5) 업무연속성 관리(Business Continuity Management)

1) 업무지속성 관리체계

- 업무연속성 관리 : 재난이나 재해, 테러 같은 예기지 못한 위기상황에서도 적시에 복구해 업무를 계속수행할 수 있는 위기 관리 능력

- 업무연속성 관리 단계

-- 1단계 시작단계 : 업무연속성 관리에 대한 정책의 수립 및 범위설정을 하는 단계

-- 2단계 전략수립단계 : 재해가 업무에 미치는 잠재적인 연향과 위험을 평가 / 위험감소를 위한 사항들을 파악 / 효과적인 전략 수립

-- 3단계 구현단계 : 업무가 지속적으로 이루어지기 위한 프로그램을 수립하는 단계(설비 구현 / 계획을 문서화)

-- 4단계 운영관리단계 : 수립된 업무연속성 전략 및 계획, 절차를 계속적으로 테스트 및 검토, 유지 보수 / 이에 대한 교육과 훈련


2) 업무연속성 계획수립(BCP ; Business Continuity Plan)

- 업무연속성 계획 5단계 방법론(4단계 / 5단계 / 6단계로 종류가 있지만 5단계가 출제됬었어...)

-- 1단계 프로젝트 범위설정 및 계획

-- 2단계 사업영향평가(BIA ; Business Impact Assessment)

--- 각 사업단위가 받게될 재정적 손실의 영향도를 파악해서 문서화

--- 주요 취지 : 핵심우선순위결정(프로세스간의 구별) / 중단시간 산정(얼마만에 복구?) / 자원요구사항(어디에 얼마나 자원할당?)

-- 3단계 복구전략개발

--- 사업영향평가에서 수집된 정보를 기반으로 어떻게 복구를 할 것인지 전략을 세움

-- 4단계 복구계획수립

--- 사업을 지속하기 위한 실제 복구계획의 수립단계 / 문서화는 필수

-- 5단계 프로젝트수행 및 테스트

--- 유지보수 활동을 포함한 이후에 있을 테스트 절차 등을 수립

- 업무연속성 관리 단계에 BCP가 포함되는건가??? 자세히는 모르겠네


3) 업무연속성 유지관리

- 지속적으로 유지보수, 테스트

-- 체크리스트 / 구조적점검 / 시뮬레이션 / 병렬테스트 / 전체 중단테스트


4) 재난복구계획(DRP ; Disaster Recovery Plan)(기출내용엔없는데 책과 기출에있네??)

- BCP는 전사적인 복구계획이라면, DRP는 기업의 세부 시스템 별 복구 계획(카더라...?)

- 재난복구계획 프로세스

-- 데이터 지속처리 계획(DPCP ; Data Processing Continuity Planning) : 재해를 예측하고 그에 대처하기 위한 계획수립

--- 가장 많이 사용되는 대체 처리 사이트(Site ; 공간의개념) 방식

---- Hot Site : 모든 컴퓨터설비를 완전히 갖추고 있는 공간 / 실제로 운영되고 있는 환경과 동일한 상태로 관리)

---- Warm Site : Hot Site와 Cold Site의 절충안(전원/컴퓨터 등은 갖춰져있지만 어플리케이션이 설치되거나 구성되지 않음)

---- Cold Site : 비상시 장비를 가져올 준비만 할 뿐, 어떤 컴퓨터 하드웨어도 공간에 존재하지않음

-- 데이터 복구 계획 유지 보수(Data Recovery Plan Maintenance) : 계획이 항상 적적하게 최신버전을 반영하도록 유지하는 프로세스



(6) 관련 표준/지침

1) 국제/국가 표준

- OECD 정보보호 가이드라인

-- 인식 / 책임 / 대응 / 윤리 / 민주성 / 위험평가 / 정보보호의 설계와 이행 / 정보보호 관리 / 재평가

- TCSEC(Trusted Computer System Evaluation Criteria)

-- 미국에서 1985년 최초로 만들어짐 / 오렌지 북으라고도 함

-- 정보제품을 몇가지 요구사항을 만족하는 수준에 따라 보안등급을 매김(A1, B3, B2, B1, C2, C1)

-- 기밀성, 무결성, 가용성 中, 기밀성을 중시함(무결성, 가용성은 다소 취약)

- ITSEC

-- 1991년에 미국의 TCSEC를 참조해서 만든 유럽 공통 평가기준

-- 기밀성 뿐만아니라 무결성, 가용성에 대한 평가기준도 수용함

- 보안성평가(CC ; Common Criteria) : TCSEC, ITSEC같이 나라/지역별로 서로 다른 평가기준을 하나로 표준화한 결과

-- 현재 3.1버전까지 공개

-- CCRA(Common Criteria Recognition Arrangement) : 정보보호 제품의 안정성을 회원국가간에 상호인정하는 국제 협약

--- CAP(인증서발행국) : 국내에서 발행한 정보보호시스템 평가 인증서가 해외에서도 인정받게됨

--- CCP(인증서수용국) : 정보보호 평가 인증서를 발행은 않하고 수용만 하는 국가

-- 우리나라는 CAP에 2006년에 가입함

-- CAP에 가입한 국가는 5년마다 재심사(2012년 11월에 있었음(일본과 프랑스가 심사))

http://www.cybersecurity.my/mycc/mutual.html

- 보안성평가에 있어서 국내기관과 역할

-- 정책기관 : 행정자치부

-- 인증기관 : 미래창조과학부

-- 평가기관 : 한국인터넷진흥원 + 기타 등등

- 보안성평가의 결과

-- 국제적인 표준은 EAL(Evaluation Assurance Level) 1부터 7까지 있음

http://en.wikipedia.org/wiki/Evaluation_Assurance_Level

-- 우리나라는 가(EAL 4), 나(EAL 3), 다(EAL 2)로 분류



2) 인증체계

- BS7797

-- 조직의 정보를 체계적으로 관리하고 정보보안사고를 예방하기 위해 영국에서 제정된 규정

- ISMS(Information Security Management System)

-- BS7797을 기반으로 국내 환경에 적합하게 작성

-- 구성요소 : 정보보호관리과정 / 정보보호대책 / 문서화

--- 정보보호관리과정 : 정보보호 관리체계 인증심사시 요구되는 필수 항목 / 지속적으로 유지관리되는 순환 주기의 형태

---- 정보보호정책 수립 및 범위설정 → 경영진책임 및 조직구성 → 위험관리 → 정보보호대책구현 → 사후관리

--- 정보보호대책 : 총 13개분야 92개 통제항목으로 구성

---- 시스템개발보안 / 암호통제 / 접근통제 / 운영보안 / 정보보호정책 / 정보보호조직

---- 외부자보안 / 정보자산분류 / 정보보호교육 / 인적보안 / 물리적보안 / 침해사고관리 / IT재해복구

 

1. 보안요소 기술(10문제+-/20문제)

(1) 인증기술

1) 사용자 인증기술

- 사용자 인증 : 통신하고 있는 상대가 내가 원하는 상대인지 확인할 수 있도록 해주는 기술

-- A와 B가 통신할 때, A가 B에게 자신이 A임을 증명할 수 있는 것

-- 개별식별 : 사용자 인증에서 더 발전해서, A와 C가 통신할 때 B가 C에게 A인척 못하게 하는 것

- 사용자 인증 유형별 방법

-- What you know(지식기반 인증방식) : ID/PW, I-PIN, 사전에 등록된 질문과 답

--- 사람의 지식에 따른 내용으로 인증 / 관리가 편하고 용이 / 습관에 따라 패스워드 설정하기에 유추쉽고 보안성 낮음

-- What you have(소유기반 인증방식): OTP, HSM, 보안카드, 스마트카드, 공인인증서

--- 소지한 별도 매체의 고유정보를 직접 제시 / 매체에 대한 분실 우려

-- What you are(생체기반 인식기술) : 지문, 홍채, 음성, DNA, 서명, 망막

--- 인증자의 신체적인 특성이나 행동학적 특성을 이용해 인증

- Chalenge-Response방식(이걸 어따 넣어야될지 모르겠네 / OTP에서도 쓰임)

-- 사용자가 서버에 암호화 키 자체를 직접적으로 전송하지 않으면서 해당 비밀키나 개인키를 소유하고 있는 정당한 사용자임을 증명

-- 매번 새로운 세션의 차별성을 위해 타임스탬프 / 세션 랜던 값 / 순서번호 를 이용할 수 있음

-- 대칭키를 이용한 방법

--- 사전에 사용자와 서버간의 대칭키를 공유하는 방식

--- 사용자가 서버로 접속해 서버로 부터 난수 값을 받아서 그걸 대칭키로 암호화해서 보내는 것

-- 공개키를 이용한 방법

--- 사용자가 서버로 접속해 서버로 부타 난수 값을 받아서 그걸 개인키르 암호화해서 보내는 것

- 사용자 인증의 보안 요구사항 : 식별 / 인증 / 인가 / 책임추적성


2) 메시지출처 인증기술

- 메시지 또는 자료의 출처가 알려진 출처가 맞는지 확인하는 기술

- 메시지출처를 인증하는 기술은 크게 "메시지를 암호화 하는 방법 / 메시지 인증코드 / 해시함수" 로 나뉨

- 메시지를 암호화 하는 방법

-- Case 1) 대칭키를 이용해 암호화 → 기밀성 + 부분적인 인증(송신부인방지)

-- Case 2) 비대칭키를 이용한 암호화

--- i) 수신자의 공개키로 암호화 → 기밀성

--- ii) 송신자의 사설키로 암호화 → 인증과 서명

--- iii) 송신자의 사설키로 암호화하고 수신자의 공개키로 암호화 → 기밀성 + 인증과 서명

- 메시지 인증코드(MAC ; Message Authentication Code)

-- 메시지와 대칭키를 입력으로해 인증값으로 쓰기 위해 만들어진 코드

-- 사전에 송신자와 수신자 간의 대칭키의 공유가 필요함

-- 수신자는 수신한 메시지와 대칭키를 가지고 직접 MAC을 만들어, 수신한 MAC과 비교해 인증을 수행

- 해시함수

-- 데이터를 정해진 크기의 Message Digest로 만드는 일방향함수(One-Way Function)

-- MAC과 달리 대칭키를 사용하지 않기에 키교환이 필요 없음

-- 해시함수의 결과값 자체는 기밀성이 없어서 암호화와 섞어서 사용함


3) 디바이스 인증기술

- 유비쿼터스 시대 네트워크에 들어서면서 디바이스와 디바이스 끼리의인증을 해야되는 일이 많아짐

- 디바이스와 사람간의 인증체계, 이기종 디바이스 간의 인증체계, 인증체계와 콘텐츠 보호와의 연동의 필요성이 생김

- ID/PW기반 디바이스 인증

-- 일반적으로 사용되는 이증방식

-- SSID방식 / WEP 인증방식 / RFID와 리더기 간의 인증방식 등

- MAC주소기반 디바이스 인증

-- 접속 하는 단말기의 MAC주소값을 인증서버 또는 AP에 등록해서 인증받는 방식

-- AP에서 사용됨

- 암호 프로토콜을 이용한 디바이스 인증

-- AP를 통한 정보자산의 불법적인 접근 또는 키나 세션을 훔쳐 정보를 유출하는 시도를 차단

-- 802.1x 인증 : 유무선 네트워크에서 인증된 네트워크를 접속하는 IEEE 표준

--- 사용자 ID 인증, 동적 키 관리 및 계정 지원

--- PAP / CHAP / RADIUS / PEAP / WEP 프로토콜

-- 802.11i 인증 : RC4 기반의 WEP 기술에 대한 취약점 해결하기 위해 제정

-- WPA(Wi-Fi Protected Access) : WEP에 비해 정교한 데이터 암호화와 완전한 사용자 인증기능 제공

--- TKIP과 802.1x 인증 방식을 사용

-- EAP(Extensible Authentication Protocol) : 인증을 위해 최적화된 전송 프로토콜

--- EAP-MD5 / EAP-TLS / EAP-TTLS / EAP-PEAP / EAP-Fast / LEAP

- Challenge-Response 인증

-- OTP에서의 Challenge-Response와 유사하게, 일회성 해시값을 생성해 사용자를 인증하는 방법

-- 인증서버가 난수를 만들어 클라이언트로 전송하면, 클라이언트는 패스워드 해쉬 알고리즘을 적용해 반환 함


4) Kerberos 프로토콜

- MIT에서 개발한, 분산 환경하에서 개체 인증서비스를 제공하는 네트워크 인증시스템 / 현재 네트워크상에서 가장 많이 사용 됨

- 사용자가 서버의 인증을 받기 위해 티켓이라는 인증값을 사용

- 비대칭키 암호방식을 전혀 사용하지 않고, 대칭키 암호방식만 사용하여 신뢰된 티켓 발급서버를 이용해서 인증

- 구성요소 : 클라이언트(다수) / 인증서버(AS) / 티켓발급서버(TGS) / 서버(다수)

-- 클라이언트가 패스워드로 인증서버에게 인증을 받음

-- 인증서버는 티켓발급서버가 인증된 클라이언트로 티켓을 발급하는 것을 허락함

-- 티켓발급서버가 클라이언트로 티켓을 발급함

-- 티켓을 받은 클라이언트는, 티켓을 이용해 서버에 인증을 받고 서비스를 받음

- Realm(영역) : 하나의 Kerberos 시스템에 속해 있는 클라이언트와 서버의 범위

-- 영역 안의 클라이언트들은 영역 안의 각 서버에대한 권한이 다름 / 권한에 따라 접속할 수 있는 기간도 다름

- 신임장(Credential) : 티켓발급서버가 클라이언트에게 발급하는 것으로 티켓(Ticket)과 인증자(Authenticator)로 구성

-- 인증자 : 티켓이 유효하다는 것을 증명하기 위해 사용되는 값으로 부가정보를 포함

-- 티켓의 포함 내용 : 클라이언트 ID와 네트워크주소 / 티켓의 유효기간 / 접속하기원하는 서버의 ID / 서비스기간동안 공유하는 세션키

http://www.zeroshell.org/kerberos/Kerberos-operation/

- 장점 : 통신내용을 암호화키와 암호프로세스를 이용하여 보호하기에 데이터의 기밀성과 무결성이 보장됨

- 단점

-- 모든 클라이언트와 암호화 키에 대한 정보가 KDC에 있기에, KDC 단일 오류 지점이 될수 있음

-- 비밀키와 세션키가 사용자 시스템에 저장되기에 유출과 침입에 취약

-- 패스워드 추측 공격에 취약하며, 사용자가 패스워드를 바꾸면 대칭키 또한 변경해야되는 번거로움

-- 티켓의 유효기간 때문에, 모든 클라이언트와 서버간의 시간의 동기화가 필요함

-- 가장 큰 문제점으로, 재전송 공격에 약함

- Kerberos 4

-- 암호화 시스템에 대해 의존함, DES 알고리즘 사용

-- 인증의 발송과 영역간의 인증은 불가능

- Kerberos 5

-- CBC 모드 사용(암호화 하는 방법임), 알고리즘 선택이 가능

-- 티켓의 유효시간에 시작기간과 끝 시간을 표시함

-- 인증의 발송과과 영역간의 인증이 가능



(2) 접근통제정책

1) 접근통제정책 구성요소

- 접근통제는 인증 성공 이후에, 각 시스템 자원에 대한 사용자의 요청을 허용할것인가? 말것인가?하는 문제

- 접근통제 시스템은 기능적으로 접근통제 정책 / 접근통제 매카니즘 / 접근통제 관련 보안 모델로 나뉨

-- 접근통제 정책

--- 신분 기반 정책 : 주체의 신분에 근거한 접근통제 정책

---- 임의적 접근통제(DAC)에 적용

--- 규칙 기반 정책 : 주체에 허용된 접근 수준과 객체에 부여된 허용등급 에 따른 접근통제 정책

---- 강제적 접근통제(MAC)와 동일한 개념

---- 라우터나 방화벽 등의 접근통제에 쓰임

--- 역할 기반 정책 : 객체에 대한 접근이 주체의 역할에 의해 결정되는 접근통제 정책

---- 역할기반 접근통제(RBAC)와 동일한 개념

-- 접근통제 메카니즘 : 접근요청을 접근통제 정책에 대응시켜 불법적인 접근을 방어함

--- ACL(Access Control List) : 신분 기반 정책을 지원

--- CL(Capability List) : 신분 기반 정책을 지원 / 주체에게 티켓을 부여(접근 객체와 범위가 지정됨)

--- SL(Security Lable) : 규칙 기반 정책을 지원

--- 더 많긴한데 모르겠다.. 필요하면 추가함

-- 접근통제 관련 보안 모델(다양한데 잘나오는 3가지만)

--- Bell-LaPadula(BLP)

---- 데이터의 기밀성유지를 주목적(미국방부에서만듬) / 정보의 불법적 유출을 방어하기 위한 최초의 수학적 모델

---- 단순보안속성(Simpe Security Property) : 주체는 자신의 보안등급보다 높은 등급의 객체에 접근불가 ; No Read Up

---- 성형속성(The ★-Property) : 주체는 자신의 보안등급보다 낮은 등급의 데이터를 수정할수 없음 ; No Wirte Down

--- Biba

---- 데이터의 무결성유지를 주목적으로 함(비 군사적 조직) / Bell-LaPadula 모델의 단점인 무결성을 보장할 수 있도록 보완

---- 단순무결성원리(Simple Integrity Axiom) : 주체집단에게 주어진 무결성등급보다 낮은 객체는 못 읽음 ; No Read Down

---- 성형무결성원리(The ★-Integrity Axiom) : 주체에게 주어진 무결성등급보다 높은 등급의 객체는 수정 못함 ; No Write Up

--- Clark-Wilson

---- Biba 이후에 나왔으며, Biba의 무결성 보호를 조금 다른 관점에서 접근함

---- 주체가 객체에 직접접근은 할 수 X / 오직 프로그램을 통해 간접적으로 접근


2) 임의적 접근통제(DAC ; Discretionary Access Control)

- 신분 기반 정책을 적용했다고 보면될려나??

- 어떤 사용자든 임의적으로 객체에 대한 다른 사용자들의 접근을 허용할 수 있는 기법

-- 데이터 소유자가, 사용자나 사용자 그룹에 따라 접근을 제어

-- 예를 들자면, Windows에서 Everyone같이 그룹단위로 접근제어 하는거 생각해봐

--- DAC는 대부분 운영체제에서 지원됨

- 모든 주체와 객체에 대해 일정하며, 하나의 주체와 하나의 객체 단위로 접근 제어는 불가능

- 구현을 위해 일반적으로 ACL(Access Control List)을 활용 / 중앙집중적으로 통제되는 환경에서 부적합

- 결론적으로, 사용자가 누구고 어떤 그룹에 속해있는지에 따라 접근통제가 이루어져


3) 강제적 접근통제(MAC ; Mandatory Access Control)

- 규칙 기반 정책을 적용 했다고보자...(이게 맞는 건지는 모르겠으나 다들 그렇게 연결 짓던데?)

- 관리자가 주체들에겐 허가등급을, 각각의 객체에는 비밀등급을 부여해서 주체의 허가등급과 객체의 비밀등급을 따져 접근을 제어함

-- 주체들과 객체들의 등급을 따로 보안레이블에 저장해둠

-- 운영체제(관리자) / 주체(프로세스 들) / 객체(시스템 리소스) 이렇게도 쓰여

- 최상의 허가등급을 가진 사용자라도 모든 객체를 열람 할 수는 X

- 통제가 용이하고 보안관리자 주도하에 중앙 집중적 관리가 가능하다는 장점

- 기밀성이 매우 높은 조직에서 사용됨


4) 역할기반 접근통제(RBAC ; Role Based Access Control)

- 역할 기반 정책의 적용 / 임의적 접근통제와 강제적 접근통제의 단점을 보완한 기법(비 임의적 접근통제라고도함)

- 역할들을 생성해서 역할마다 권한을 준다음, 사용자들에게 각 역할을 부여함. 즉, 사용자의 역할에 따라 접근을 제어 함

- 규모가 큰 회사에 알맞은 시스템(인사이동 등이 잦아도 그냥 사용자의 역할만 변경하면 됨)


5) 접근통제행렬과 AC

- 접근통제행렬 : 주체를 열에, 객체를 행에 표시해서 각각에 권한을 부여하는 방법

- AC(Access Control ; 접근통제) : 몇몇 접근통제 모델은, 해당 모델이 가지고 있는 접근통제 메카니즘을 보안모델로 발전시킴

-- 접근통제 메카니즘과 보안모델은 1)에서 설명



(3) 키 분배 프로토콜

1) KDC 기반 키 분배

- KDC(Key Distribution Center)

-- 암호통신을 원하는 두 가입자 사이에, 공통의 암호키를 소유할 수 있고 키 분배 과정을 수행하는 신뢰된 기관

-- 간단히 말해, 비밀키를 만들어서 대칭키 암호화 통신을 원하는 사람들에게 키를 나누어 주는 역할

-- 키를 나누어 준 뒤, KDC에서 키를 삭제하는것도 좋지만 분실에 대비하는것도 좋음(이런 의미에서 키 복구센터라고도함)

-- 인원이 많아지면, 관리하는 키의 수가 기하급수적으로 증가해 현실적으로 관리가 불가능

- 키 분배 방식

-- 키의 사전분배(Key Predistribution) 방식 : 한 가입자가 키를 만들어, 상대 가입자 혹은 양측 가입자에게 전달하는 방식

--- Blom 방식 / 중앙집중식 키 분배(Kerberos에서 사용) / 공개키 분배(KDC가 공개키 분배)

-- 키 공유방식(Key Agreement) 방식 : 키를 설정하는데 공동으로 참여

--- Diffie-Hellman 키 교환 방식 등등


2) Needham-Schroeder 프로토콜

- Roger Needham과 Micheal Schroedor이 1978년 대칭키와 trent 개념을 사용해 제안

- 인증서버 S / 통신주체 A / 통신주체 B 가있다고 가정하고 설명(K는 키값 / N은 난수값)

-- 1) A → S : A / B / N_A

--- (A가 S에게 B와 통신하고 싶다고 알림 ; A와 B의 ID와 A가 생성한 난수값보냄

-- 2) S → A : N_A / K_ab / B / [ [ K_ab, A ]K_bs ]K_as

--- (S가 A에게, B와 통신할 때 쓸 키 K_ab를 주고, B에게도 알려주라고 K_ab를 K_bs로 암호화 해서 줌

-- 3) A → B : [ K_ab, A ]K_bs

--- 아까 S가 B주라고 줬던걸, B한테 보내줘

-- 4) B → A : [ N_b ]K_ab

--- A로부터 키 값 K_ab를 받은 B는 응답신호로써 자신이 생성한 난수값 N_b를 암호화 해서 보냄

-- 5) A → B : [ N-b - 1 ]K_ab

--- B로부터 받은 난수값에서 1빼고 암호화 해서 보내

- 재전송 공격의 취약점이 있음(MITM에 취약) 그래서 타임스탬프를 사용함

-- 타임스탬프사용해서 하는건 위의 1)에서 타임스탬프를 주거니 받거니함(걍 생략)


3) Diffie-Hellman 프로토콜

- 1976년 Diffie와 Hellman이 발표한 것으로 이산대수 계산의 어려움을 이용함 / 공개키 암호의 시초

- 네트워크상에서 A와 B가 알고리즘에 사용하는 비밀키를 서로 만나지않고 공유할 수 있는 방법

- Alice와 Bob이 키교환하고자함!

-- 1) Alice와 Bob은 소수 p와 p미만의 임의의 정수 g를 선택해 공유함

-- 2) Alice와 Bob은 서로 비밀키 a와 b를 만듬

-- 3-1) Alice는 A = g^a (mod p)를 계산해 공개키 A를 Bob에게 보냄

-- 3-2) Bob은 B = g^b (mod p)를 계산해 공개키 B를 Alice에게 보냄

-- 4-1) Alice는 B^a (mod p)를 계산하고, Bob은 A^b를 계산해서 A^b = B^a = g^ab (mod p)라는 결과를 만들어냄

-- 5) g^ab (mod p)를 둘 만의 비밀키로 사용

- 세션키 같은거 필요없고 단순하고 효율적으로 키 교환이 가능

- 재전송 공격(MITM)에 취약함


4) RSA 이용 키 분배 방법(RSA 암호 알고리즘을 말하는게 아냐)

- RSA는 소인수 분해의 어려움을 이용하는 암호 알고리즘임

- 일단, 여기선 RSA를 이용한 키 분배 방법이기에 키 생성가은건 집어치우고 시작

-- 1) Alice와 Bob이 각각 공개키 쌍과 사설키 쌍을 만듬

-- 2) Alice가 공개키 쌍과 자신의 ID값을 Bob에게 보냄(ID값은 뭐..그냥 자기라고 인증할만한 값?인듯)

-- 3) Bob이 공유할 대칭키를 생성해서 Alice의 공개키로 암호화해서 Alice에게 보냄

-- 4) Alice는 받은 대칭키로 데이터를 암호화해서 보냄(여기부터 통신시작)


(4) 전자서명과 공개키 기반구조(PKI)

1) 전자인증서 구조

- 사용자 공개키와 사용자 ID정보를 결합해 인증기관이 서명한 문서 / 공개키의 인증성을 제공

- 쉽게말해, 사용자의 공개키 + 사용자의 공개키에 대한 인증기관의 전자서명 = 사용자의 전자인증서

- X.509 인증서 표준 : ITU에서 제안한 인증서에 대한 기본 형식을 정의한 규격

-- 인증서를 이용한 공개키의 효율적인 분배 방법을 정의

-- X.509 v1(1988)

-- X.509 v2(1993)

--- 인증서 취소목록(CRL ; Certificate Revocation List)을 도입

--- 인증기관 고유 ID(Unique Identifier) 도입 : 한 주체가 둘 이상의 인증기관으로 부터 인증서가 발급됬을 경우 구분하기 위해

--- 주체 고유 식별자 : 주체를 식별하는 값(동명이인일 경우 구분하기 위해)

-- X.509 v3(1996)

--- 인증기관 키 식별자

--- 주체키 식별자

--- 키 용도 : 암호용인지 서명용인지 구분

--- v3부터는 확장자의 개념이 도입됨

---- 키 및 정책 확장자

---- 주체와 발급자에 대한 속성 정보

---- 인증서 경로 및 규제 정보

---- CRL을 위한 확장자

- 전자인증서 구조

-- 버전(Version) : X.509의 몇 번째 버전이냐??

-- 일련번호(Serial Number) : 발행하는 CA 내부에서의 유일한 정수값

-- 알고리즘 식별자(Algorithm Identifier) : 인증서를 생성하는데 어떤 알고리즘 썻는지

-- 발행자(Issuer) : 인증서를 발행하고 표시하는 CA

-- 유효기간(Period of Validity) : 인증서가 유효한 시작과 끝기간

-- 주체(Subject) : 인증서가 가르키는 사람

-- 공개키 정보(Public-key Information) : 주체의 공개키와, 이 키가 사용될 알고리즘 식별자

-- 서명(Signature) : CA의 개인 서명키로 서명한 서명문


2) 전자서명 보안 서비스

- 전자서명(DIgital Signature) : 내가 받은 메시지를 어떤 사람이 만들었는지를 확인하는 인증

- 전자서명의 기능 : 사용자인증(송신 부인방지) / 메시지 인증(무결성의 보장의 개념)

- 전자서명의 특징 : 위조불가 / 서명자 인증 / 부인 불가(서명사실에 대해) / 변경불가(변조불가) / 재사용 불가

- 전자서명 방식에 따른 분류

-- 직접 서명(Direct Digital Signature) 방식 : 혼자서 서명알고리즘 수행하고 서명하는 방식

--- 키가 유출되면, 송신 부인방지가 안되며 기타 다른 요구사항이 충족 안됨

-- 중재 서명(Arbitrated Digital Signature) 방식 : 서명자가 서명해서, 중재자에게 보내면 중재자가 한 번더 서명하는 방식

-- ※ 전자서명 알고리즘의 분류

--- 메시지 복구가능 전자서명 알고리즘(DSS ; Digital Signature Scheme) : 서명값으로 부터 메시지 추출해서 검증가능

--- 원메시지 필요 전자서명 알고리즘(DSS with appendix) : 검증을 위해 따로 원메시지가 필요

- 전자서명 방법

-- 메시지에 직접하는 방법

-- 메시지의 해쉬값에 서명하는 방법 : 좀더 효율적


3) PKI 구성방식(계층, 네트워크)

- PKI(Public Key Infrastructure ; 공개키 기반 구조) : 공개키 인증서의 인증성(무결성)을 제공하기 위한 신뢰구조

- PKI 구성요소(컴포넌트 ; Component)

-- 공개키 인증서(Public Key Certificate) : 해당 키가 누구 것인지 알려줌(공개키 정보와 주인의 정보)

--- 구성 : 공개키 인증서/ 인증서 정책 / 인증서 경로 / 인증서 철회 리스트(CRL ; Certificate Revocation List)

-- 인증기관(CA ; Certification Authority)

--- 인증서의 발급 / 상태관리 / 문제 발생 시 CRL의 발급

--- 지금까지 발행한 인증서와 모든 CRL을 저장

-- 등록기관(RA ; Registration Authority) : 인증서 신청시, CA대신 신분, 소속을 확인해주는 기관

-- 저장소, 디렉터리(Repository) : 공개키를 저장하고 있는 기관

--- CA로부터 인증서와 CRL을 받아 저장하고, 이를 요구하는 사용자에게 나눠줌

-- 사용자(User)

- PKI 구성 방식

-- 순수 계층 방식(트리구조)

--- 최상위 인증기관인 Root CA에 대한 신뢰를 바탕으로, 하부 CA간의 상호인증은 원칙으로 배제하는 방식

--- Root CA간의 상호 인증으로 국제적으로 구성이 가능

-- 네트워크 구조 방식

--- 여러 Root CA를 두어 운영함 / 복잡함


4) CRL 구조 및 기능

- CRL(Certificate Revocation List) : 인증서 취소 목록

- 취소 이유

-- 인증서 발행 조직에서 탈퇴 / 비밀키의 손상 / 비밀키 유출 의심

-- 인증서 소유자나 소유자의 대리인의 취소 요구

- 인증서 취소 메카니즘 : X.509에서 정의된 CRL을 이용해 관리

- CRL은 네트워크를 통해 공개되고 Repository에 저장됨

-- 주기적으로 CRL을 생성하는 방법과 실시간으로 생성하는 방법이 있음(하이브리드 하는게 좋음)


5) OCSP 동작절차

- OCPS(Online Certificate Status Protocol) : 실시간으로 인증서가 유효한지 검증하는 프로토콜

-- CRL과 마찬가지로 유효성을 검증할 수 있는 프로토콜(업데이트 주기나, 비요 등에서 차이가 있어)

- OCSP 방식은 CA와 Repository와는 별도로 OCSP 서버를 하나 두고, 사용자의 검증 요구에 대한 결과를 제공하는 방식

-- OCSP Server는 특정 CA기관과 사용계약을 맺어야하고 사용량에 따라 추가 비용 지불

-- OCSP Server가 CA기관과 계약을 맺으면 OCSP Server에 Server 인증서와 개인키가 발급됨

-- OCSP Server 인증서는 1년마다 교체해야됨

- OCSP 동작 절차

-- 1) CA 내부에 OCSP Responder가 존재

-- 2) OCSP Server가 CA내부의 OCSP Responder로 OCSP Request 전송

-- 3) 인증서의 폐기 여부를 검증함

-- 4) CA에서 OCSP Server로 OCSP Response 전송

- OCSP와 CRL의 비교

-- CRL같은경우는 실시간이 아니라 일정한 주기마다(6시간~24시간) 폐기목록을 생성

-- CRL이 갱신되어야 폐기로 판단

-- 따로 비용이 들지는 않음


6) 전자서명 관련법규

- 이건 나중에 법규할 때 다루자




2. 암호학(12문제~13문제/20문제)

(1) 암호 알고리즘

1) 암호 관련용어

- 평문(Plaintext) / 암호문(Ciphertext)

- 암호화(Encryption) / 복호화(Decryption)

- 전자서명(Digital Signature)

- 기밀성 / 무결성 / 가용성 / 부인방지


2) 암호 공격방식

- 수동적 공격(소극적 공격)

-- 도청 / 트래픽 분석

- 능동적 공격(적극적 공격)

-- 변조 / 삽입 / 삭제 / 재생

- 암호 메시지에 대한 공격(해독하려는 시도)

-- 암호문 단독 공격(Ciphertext Only Attack/COA)

-- 알려진 평문 공격(Known Plaintext Attack/KPA)

-- 선택 평문 공격(Chosen Plaintext Attack/CPA)

-- 선택 암호문 공격(Chosen Ciphertext Attack/CCA)



3) 대칭키, 공개키 암호시스템 특징 / 4) 대칭키, 공개키 암호시스템 활용

- 대칭키 암호시스템(비밀키/관용키 암호시스템)

-- 암호화키와 복호화키가 동일함

-- 암호화와 복호화가 빨라서 효율적임

-- 치환가 전치의 조합으로 간단한 구조로 개발 쉬움(Feistel 구조를 기반으로 해서 그런듯)

-- 많은 사람과의 정보교환시 키 관리의 어려움이 있음(N명의 경우 N(N-1)/2의 비밀키가 필요

-- 암호화에 적용되는 평문에 따라 Stream Cipher / Block Cipher

-- Steam Cipher : RC4

-- Block CIpher : DES(3DES) / IDEA / RC5 / RC6 / AES / SEED / Blowfish /ARIA

http://www.slideshare.net/skccsocial/security-framework220

- 공개키 암호시스템(비 대칭키 암호시스템)

-- 암호화키와 복호화키가 다름

-- 다른 유저와 키를 공유안해도 암호화 통신이 가능

-- 수학적인 난제을 기반으로해서 암/복호화가 복잡

--- 이산대수를 이용 : Diffie-Hellman / El Gamal / DSA / KCDSA / Schnorr

--- 소인수분해를 이용 : RSA / Rabin

--- 기타 : ECC(타원곡선) / Knapsack


5) 스트림 암호

- 대칭키 암호시스템 구조 중 하나로, 한번에 한 바이트씩 암호화되는 형식(가장 처음에 초기값(IV ; Initial Vector)가 필요)

- 가장 중요한 건 키 스트림을 생성하는 것(동기적 / 비 동기적)

-- 동기식 스트림 암호 : 키 스트림을 대칭키와 이전상태로부터 뽑아냄(예를 들어, N키스트림과 N+10 키 스트림이 동일)

--- 대표적으로 RC4가 있음

-- 비동기식 스트림 암호 : 키 스트림을 대칭키와 평문으로 부터 뽑아냄

- 키 스트림의 무작위성이 암호의 강도가 됨


6) 블록 암호

- 대칭키 암호시스템 구조 중 하나로, 고정된 크기의 블록을 고정된 크기의 암호화 블록으로 암호화하는 방식

- Feistel 구조와 SPN구조를 다루고 싶지만...

- 블록암호 운영모드 : 평문의 길이가 블록의 크기보다 클 경우에 대한 문제점을 해결하기 위해 제시된 암호화 모드

-- ECB(Electronic Code Book) : 평문을 블록단위로 잘라서, 각 블록마다 암호화

--- C[i] = Ek( M[i] )

--- 블록 크기보다 작으면 적용 불가능

--- 이전 블록 값의 오류가, 이후에 영향을 안줘(소규모 암호화에 적합)

---- 오류 전파가 안된다는 특징

---- 동일한 평문엔 동일한암호문이 나와 → 암호문 단독공격에 약해


-- CBC(Cipher Block Chaining) : 출력되는 암호문이 다음 평문 블록에 영향을 줘

--- C[i] = Ek( C[i-1] × M[i] )

--- 암호화 과정에서, 평문 블록 M[i]에서 1bit가 오류 → 암호문 블록 C[i]부터 끝까지 영향

---- ECB가 암호문 단독공격에 취약한걸 해결

---- 이런 특징 때문에, 메시지 인증코드에 사용되기도 해(무결성이 유지되기에)

--- 복호화 과정에서, 암호문 블록 C[i]에서 1bit가 오류 → 평문 블록 M[i], M[i+1]에만 영향


-- CFB(Cipher Feed Back) : 암호문이 암호기의 입력으로 사용되

--- C[i] = Ek( C[i-1] ) × M[i]

--- 암호화 과정에서, 평문 블록 M[i]에서 1bit가 오류 → 암호문 블록 C[i]부터 끝까지 영향

---- ECB가 암호문 단독공격에 취약한걸 해결

--- 복호화 과정에서, 암호문 블록 C[i]에서 1bit가 오류 → 평문 블록 M[i], M[i+1]에만 영향


-- OFB(Output Feed Back) : 암호 알고리즘의 출력이 다시 암호 알고리즘의 입력이 됨

--- C[i] = Ek( Z[i-1] ) × M[i]

--- ECB가 암호문 단독공격에 취약한걸 해결

--- CBC와 CFB의 오류전파를 제거함

--- 블록암호상에서 스트림암호를 운영할 수 있음


-- CTR(CounTeR) : IV값을 Counter로 1씩 계속 증가시킨걸, 암호화해 키 스트림을 만들어 내는 스트림 암호화

--- 블록암호상에서 스트림암호를 운영할 수 있음


7) 블록 암호공격

- 차분 공격(Differential Cryptanalysis) : 평문공격법 / 두 개의 평문블록과 이에 대응되는 암호문 블록들의 비트들의 차이를 이용해 키를 찾음

- 선형공격(Linear Cryptanalysis) : 평문공격법 / 알고리즘 내부의 비선형 구조를 선형화해서 키를 찾음

- 전수공격(Exhaustive Key Search) : 암호화할 때의 모든 경우에 대하여 조사하는 방법 / 일반적으론 불가능(경우의 수가적을 때만 가능)

- 통계적 분석(Statistical Analysis) : 많이 사용되는 단어의 빈도의 통계적 수치를 가지고 해독

- 수학적 분석(Mathematical Analysis) : 통계적 방법을 포함해, 수학적 이론을 이용해 해독


8) 인수분해 기반 공개키 암호방식

- 소인수 분해의 어려움을 이용(엄청나고 엄청난 수를, 엄청나게 큰 두 소수로 분해하는게 어려움)

- RSA(Rivest Adleman Shamir)

-- Key 생성

--- 1. 큰 소수인 p, q를 선택

--- 2. N = p x q를 계산 해, N을 구함

--- 3. φ( N ) = ( p-1 ) x ( q-1 )

--- 4. gcd( Ke, φ( N ) ) = 1이 성립하는 Ke를 구함

--- 5. Ke x Kd ≡ 1 ( mod φ( N ) )이 성립하는 Kd를 구함

--- 공개키 쌍은 ( Ke, N ), 개인키 쌍은( Kd, N )

-- 암호화 과정

--- 1. 수신자의 공개키 쌍을 가져옴( Keb, Nb )

--- 2. C ≡ M^( Keb ) ( mod Nb )로 암호문을 만들어냄

-- 복호화 과정

--- 1. 수신받은 암호문 C에 자신의 개인키로 복호화 함

--- 2. C^( Kdb ) ≡ M^( Keb x Kdb ) ≡ M^(1) ≡ M ( mod Nb )

- Rabin

-- RSA 암호방식보다 훨씬 빠름(암호화 과정이 더 단순)

-- RSA와는 다르게 공개키가 N이고, 개인키가 p, q가 됨

-- Key 생성

--- 1. 큰 소수 p, q를 선택

--- 2. N = p x q를 계산해, N을 구함

--- 공개키는 N, 개인키는 p, q

-- 암호화 과정

--- C ≡ M^( 2 ) ( mod N )

-- 복호화 과정

--- M ≡ C^( 1/2 ) (mod N )


9) 이산로그 기반 공개키 암호방식

- El Gamal

-- RSA와는 다르게, 같은 평문에서도 다른 암호문이 생성 / But, 암호문 길이가 두 배로 증가한다는 단점

-- Y = g^ ( X ) ( mod p )에서 g와 y, p를 알아도 x는 구하는건 겁나 어렵다

--- 여기서 Y와 g, p가 공개키고 X가 개인키

-- 키 생성

--- 1. (공통) 임의의 큰 소수 p와, p의 기약잉여계의 임의의 원시근 g를 선택(위수가 φ(p)인게 원시근)

--- 2. 1부터 p-1까지의 정수 하나를 개인키 X로 정함

--- 3. Y = g^( X ) (mod p )를 계산해, Y를 정함

--- 공개키는 Y, p, g, 개인키는 X

-- 암호화

--- 1. 수신자의 공개키를 가져옴(Yb, g, p)

--- 2. p의 완전잉여계에 속하는 임의의 정수 r을 하나 정함

--- 3. K ≡ Y^( r ) ( mod p )를 계산해 K를 계산

--- 4. 다음과 같은 C1과 C2를 보냄

i) C1 ≡ g^( r ) ( mod p)

ii) C2 ≡ K x M ( mod p)

-- 복호화

--- 1. 수신받은 C1과 C2를 개인키 Xb를 이용해 복호화

--- 2. C1에서 K를 구해냄

C1^( Xb ) ≡ ( g^( r ) )^( Xb ) ≡ ( g^( Xb ) )^( r ) ≡ Yb^( r ) ≡ K ( mod p )

--- 3. C2에서 평문 M을 구해냄

C2 / K ≡ M ( mod p )

- Diffie-Hellman

-- 직접 서로의 비밀키를 전달할 수 있는 대표적 방법 중 하나

--  키 교환 및 인증에 사용됨

- ECC(Elliptic Curve Cryptography ; 타원곡선 암호)

-- 아..이건 모르겠다ㅋㅋㅋ



(2) 해쉬함수와 응용

1) 해쉬 함수 일반

- 임의의 입력 비트열에 대해, 일정한 길이의 출력 비트열을 내는 것

- 해쉬 함수의 요구 사항

-- 압축 : 일정한 크기의 이진 문자열로 변환

-- 계산 용이성 : x가 주어지면 H(x)의 계산이 쉬워야 함

-- 일 방향성(One-wayness) : 해시값 y만 주어 졌을 때, y = H(x)에서 x를 찾는게 어려워야 함

-- 약한 충돌회피성 : x가 주어졌을 때, H(x) = H(x')를 만족하는 x'를 찾는게 어려워야 함(거의 불가능이 되어야 지)

-- 강한 충돌회피성 : H(x) = H(x')를 만족하는 x와 x'를 찾는건 어려워야 함


2) 전용 해쉬함수별 특징

- MD5 / SHA

-- MD5와 SHA-0 / SHA-1 / SHA-2만 알면 될듯(일단 다 긁어왔어)

http://en.wikipedia.org/wiki/Secure_Hash_Algorithm


3) 메시지 인증 코드(MAC)

- MAC(Message Authentication Code)

-- 저 위에서 메시지 인증방식으로 언급하긴함

- MAC Algorithm으로 DES나 해쉬함수를 씀

http://en.wikipedia.org/wiki/Message_authentication_code


4) 전자서명

- 전자서명(Digital Signature) : 메시지 인증 + 사용자 인증

-- 위에서 이미 다룸


5) 은닉서명

- 은닉서명(Blind Signature) : 사용자 A가, 서명자 B에게로 부터 자신의 메시지를 보여주지 않고 서명을 얻는 방법

-- 그니까, 서명을 받긴 받았는데 그게 누구 서명인지 알수는 없다는 거지

-- 어떤 특정 난수값을 메시지에 곱해서 보내기에 못 보는거지

- 메시지의 비밀성을 지키면서, 타인의 인증을 받고자 하는 경우에 주로 사용

-- 주로 전자투표?

- 하는 알고리즘은 생략


6) 이중서명

- 이중서명(Dual Signature) : SET에서 도입된 기술로 이전에 언급했음


아래는 고객이 상점으로 보내는 것

상점에서는 이중서명 / OI / PIMD / 고객의 공개키만 사용


아래는 상점이 고개으로 부터 메시지 받고 처리하는 과정

이중서명 / OI / PIMD / 고객의 공개키를 가지고 인증을하고

나머지는 Payment Gateway로 보냄(어차피 못뜯어봐 ; 금융기관의 공개키로 암호화 했기에)

 

 

1. 네트워크 일반(5문제/20문제)

(1) OSI 7 Layer

1) 각 레이어의 기능 및 역할

- OSI(Oepn System Interconnection)는 통신절차를 기능별로 구별해 놓은 국제 표준

- SDU(Service Data Unit) : 쉽게 말해, 해당 레이어에서 프로토콜을 이용하는 사용자의 데이터

- PDU(Protocol Data Unit) : SDU의 앞뒤에 Header나 Footer를 덧 붙이는 데이터 캡슐화(Encapsulation)과정의 결과물

-- PDU = Header + SDU + (Footer)

- 1 Layer(Physical Layer)

-- PDU : Bit Stream(0과 1의 연속 / 전기적신호)

-- Protocol : None.

-- Equipment : Repeater / Hub

- 2 Layer(Datalink Layer)

-- PDU : Frame

-- Protocol : Ethernet / HDLC / PPP / ...

-- Equipment : Bridge / L2 Switch

- 3 Layer(Network Layer)

-- PDU : Packet

-- Protocol : IP / ARP / ICMP

-- Equipment : Router / L3 Switch

- 4 Layer(Transport Layer)

-- PDU : Segment

-- Protocol : TCP / UDP

-- Equipment : L4 Switch

- 5 Layer(Session Layer)

- 6 Layer(Presentation Layer)

- 7 Layer(Application Layer)

-- PDU : Data or Message

-- Protocol : Telnet / HTTP / FTP / ...

-- Equipment : PC / Server / ...


2) 레이어별 네트워크 장비

- Physical Layer

-- Reapeater : 걍 전기신호 증폭

-- Hub : Reapeater 기능 + Hub에 붙은 모든 장비로 신호 전달(이 때문에 Hub에 붙은 모든 장비는 하나의 Collision Domain)

- Data Link Layer

-- Bridge : Frame의 MAC주소과 MAC Table을 참조해, 어떤 포트로 Frame을 재조립해 내보낼지 결정할 수 있는 장비

--- Frame을 S/W로 처리되는 방식이기에 Switch보단 느림

--- 모든 포트가 동일한 속도

--- Store-And-Forward 방식만 사용

-- Switch : 일단 Bridge를 기반으로 하고 있다고 생각하면될듯.

--- Frame 처리 절차를 칩에 구워서 H/W적으로 구현(ASIC ; Application Specific Integrated Circuit) 비교적 Bridge보다 빠름

--- 포트 별로 속도를 다르게 처리 가능(각각의 포트가 하나의 Collision Domain이라 그런가?)

--- Store-And-Forward / Cut-Through 방식 사용

※ 계속 기술이 발전함에 따라, 경계가 모호해지고 있기 때문에 딱히 뭐는 뭐다하기는 힘든것 같음

-- 참조 : http://tmdgus.tistory.com/87

- Network Layer

-- Router : Packet의 목적지 IP를 보고 목적지와 연결된 인터페이스로 전송해줌(경로결정) / 네트워크보안 / QoS

-- L3 Swtich

- Transport Layer

-- L4 Switch : 부하분산(트래픽 분산)



(2) TCP/IP 일반

※ TCP/IP Layer

- 1 Layer(Network Interface Layer)

- 2 Layer(Internet Layer)

- 3 Layer(Transport Layer)

- 4 Layer(Application Layer)

http://blog.naver.com/ssamba/125695893

1) IPv4, IPv6 Addressing

- IPv4

-- 네트워크 주소와 호스트 주소로 이루어진 32bit 주소 체계

--- 네트워크를 A, B, C, D Class로 나눠서 구분

-- IP주소의 고갈로 기형적인 기술인 NAT와 DHCP, Subnet같은 기술이 생김

--- NAT(Network Address Translation) : 사설IP와 외부IP(공인IP) 간의 변환

--- Subnet : 네트워크를 Class로 나누는 체계가 아닌, 임의대로 Classless하게 네트워크를 나누는 기술

--- DHCP : 동적으로 IP를 할당하고, 필요 없는 IP는 회수하는 기술

-- 사설 IP(다음과 같이 권고되고 있음 / 네트워크 장비도 이렇게 세팅되있더라)

--- Class A : 10.0.0.0 to 10.255.255.255

--- Class B : 172.16.0.0 to 172.31.255.255

--- Class C : 192.168.0.0 to 192.168.255.255

-- Classful : Subnet 개념이 없는 것. 대표적인 라우팅 프로토콜로 RIPv1, IGRP

-- Classless : Subnet 개념이 있는 것. 대표적인 라우팅 프로토콜로 RIPv2, EIGRP, OSPF, BGP 등

-- 데이터 전달 방법 : Unicast / Broadcast / Multicast

- IPv6

-- IPv4의 주소 고갈의 대응책으로써 128bit의 주소 체계

-- Header의 간소화로 라우팅이 빨라짐(IPv4와 IPv6의 Header가 다름)

-- 데이터 전달 방법 : Unicast / Anycast / Multicast

http://www.caribnog.org/articles/2013/3/9/addressing-ipv6-in-the-caribbean


2) 서브네팅 설계 및 활용

- Subnet Mask : IP주소에서 네트워크 주소와 호스트 주소를 구분하는 구별자 역할

-- 비트열이 1이면 네트워크 주소 부분, 0이면 호스트 주소 부분

-- CIDR(Classless Inter-network Domain Routing) : Subnet Mask 값을 십진수로 변환해 '/24' 같이 IP주소뒤에 붙여서 표현

-- VLSM(Variable Length Subnet Mask) : 어떤 네트워크에서 다양한 길이의 Subnet Mask를 사용하는 것

- Supernetting : 여러개의 네트워크를 하나의 네트워크의 주소로 묶는 것

- Subnetting : 하나의 네트워크 주소를 여러 개의 하위 네트워크 영역으로 분할하는 것 / 하위 네트워크를  Subnet이라 함


3) CIDR, LSM

- CIDR(Classless Inter-network Domain Routing) : Subnet Mask 값을 십진수로 변환해 '/24' 같이 IP주소뒤에 붙여서 표현

- LSM이 VLSM에서 V를 뺸건가??

-- VLSM(Variable Length Subnet Mask) : 어떤 네트워크에서 다양한 길이의 Subnet Mask를 사용하는 것


4) 데이터의 캡슐화

- 캡슐화(Encapsulation) :SDU에 Header나 Footer를 붙이는 행위


5) 포트주소 의미와 할당 원칙

- 포트 주소는 16bit의 정수 형태(0~65535)

-- Well-known Port(0~1023) : 잘 알려진 서비스에 할당된 포트 주소

--- FTP(TCP 20 / TCP 21)

--- SSH(TCP 22)

--- Telnet(TCP 23)

--- SMTP(TCP 25)

--- DNS(TCP 53 / UDP 53)

--- HTTP(TCP 80)

--- POP3(TCP 110)

--- NetBIOS(TCP 137 / TCP 138 / TCP 139)

--- HTTPS(TCP 443)

-- Registered Port(1024~49151) : 특정 프로그램에서 등록한 포트 주소

-- Dynamic Port(49152~65535) : 임의로 사용하는 포트 주소


6) IP, ARP, IGMP, ICMP, UDP, TCP 등 각 프로토콜의 원리 및 이해

- IP(Internet Protocol)

-- TCP/IP 네트워크에서 출발지, 목적지 IP 주소를 지정되는 프로토콜

-- Packet의 목적지 주소를 보고 최적의 경로를 찾아 패킷을 전송해주는게 주된 역할

-- 신뢰성이 없고 비연결 지향적임(신뢰성보다는 효율성에 중점을 줌)

http://en.wikipedia.org/wiki/IPv4#Flags

-- IHL(HLEN) : (Header의 길이/4)로써 Option이 없으면 20Byte이므로 5라는 값을 가짐

-- Flags(3 Bits) :

--- Reserved(Must be zero)

--- DF(Don't Flagement) : Datagram의 분할을 방지

--- MF(More Flagment) : Datagram이 분할될 때 마지막조각이면 0, 아니면 1

- ARP(Address Resolution Protocol)

-- IP주소를 MAC 주소로 변환하는 표준 프로토콜

--- 해당 IP주소가 동일 네트워크에 있음 : 해당 목적지의 MAC주소

--- 해당 IP주소가 외부 네트워크에 있음 : Router의 MAC주소

-- ARP Request는 Broadcast, ARP Reply는 Unicast

-- ARP는 한 번 찾은 MAC주소를 ARP-Cache에 일정 기간동안 IP주소-MAC주소 형태로 보관함

--- ARP-Cache확인 : arp -a

--- ARP-Cahce생성 : arp -s <IP주소> <MAC주소>

--- ARP-Cache삭제 : arp -d <IP주소>

-- 취약점 : 무조건 응답 수용함(요청하지 않은 응답도 수용해버림)

--- 이런 취약점을 노린 공격을 ARP Cache Posisoning이라 함

- RARP(Reverse ARP)

-- MAC주소를 IP주소로 변환하는 표준 프로토콜

- ICMP(Internet Control Message Protocol)

-- IP의 특징인 비신뢰성과 비연결성의 한계를 보완하기 위해, 노드 간의 에러사항이나 통신 제어를 위한 메시지를 보고 할 목적으로 만들어진 프로토콜

-- 에러를 Report할 뿐, 해결하는 기능은 없음 / 대표적인 프로그램으로 PING이 있음

-- ICMP는 TCP/UDP Header가 필요 없고 IP Header와 IP Data 부분에 ICMP 메시지를 포함해서 보냄

-- ICMP 메시지의 종류(일부만)

--- Type 8 : Echo Request

--- Type 0 : Echo Reply

--- Type 3 : Destination Unreachable(CODE영역에 원인 설명되)

--- Type 4 : Source Quench(Flow Control 할 때, 전송속도 줄이라는 의미)

--- Type 5 : Redirect ; Route를 변경하라는 메시지

--- Type 11 : Time Exceeded

- IGMP(Internet Group Management Protocol)

-- 멀티캐스트 그룹을 관리하기 위한 프로토콜(멀티 캐스트 멤버 가입, 수정, 탈퇴)

-- 멀티캐스트 호스트와 라우터 사이에서 동작하게 됨(같은 네트워크에서만 동작함 / TTL 1)

-TCP(Transmission Control Protocol)

-- Transport Layer의 프로토콜로써, 신뢰성과 연결지향적 특징을 가짐

-- 혼잡 제어와 흐름 제어 기능을 제공(Sliding Window) / 에러 제어도 가능(Checksum)

-- 클라이언트와 서버의 데이터 교환을 위해 TCP 3-Way Handshake를 통해 TCP Session을 확립해야 함

http://en.wikipedia.org/wiki/Transmission_Control_Protocol

-- TCP Header Flag는 잘 나와 시험에

--- URG : Urgent Pointer가 유효함

--- ACK : Ack Number가 유효함

--- PSH : 수신자보고 이거 빨리 응용프로그램으로 전달할 것을 지시

--- RST : 연결을 Reset하도록 지시

--- SYN : 연결 시작

--- FIN : 연결 종료

-UDP

-- Transport Layer의 프로토콜로써, TCP와 달리 비신뢰성과 비연결지향적인 특징을 가짐

-- Sequence Number와 Ack Number가 없어서 순서 제어와 흐름 제어가 불가능

-- 따로 연결하는 과정이 없어서 빠른처리와 실시간성을 요구하는 서비스에 적합


7) Broadcast 및 Multicast 이해

- Broadcast

-- Broadcast Domain(=Subnet) 범위 이내에 모든 시스템에 Frame을 보냄

--- 외부로 나가면 Router 단에서 Drop되

-- Broadcast를 받은 시스템은 CPU가 Packet을 처리하게 끔 함(Broadcast가 많아지면 네트워크트래픽도증가하고, CPU 성능도 낮아짐)

- Multicast

-- 네트워크에 연결되어 있는 시스템 중, 일부분에게만 정보를 전송할 수 있는 것

-- Router가 Multicast를 지원해야만 사용가능함

-- Multicast Group에 가입, 탈퇴시에 IGMP를 사용함

- Unicast

-- 정보 전송을 위해 Frame에 자신의 MAC와 목적지의 MAC를 첨부해 전송하는 방식

-- 가장 많이 사용되는 방식으로, Broadcast와 달리 CPU 성능에 문제를 주지 않음

- Anycast

-- IPv4의 Broadcast가 사라지고 IPv6에선 Anycast로 대체됨



(3) Unix/Windows 네트워크 서비스

1) DNS, DHCP, SNMP, Telnet, FTP, SMTP 등 각종 서비스의 원리 및 이해

- DNS(Domain Name Service)

-- Domain Name과 IP Address를 Mapping시켜주는 거대한 분산시스템

-- Server-Client기반으로 작동함

--- Server : Primary Name Server / Secondary Name Server

--- Client : Resolver

-- DNS Query 종류

--- Recursive Query : 요청받은 DNS Server에서만 Query 처리

--- Iterative Query : 요청받은 DNS Server에 정보가 없으면, 다른 DNS Server에 반복적으로 Query해서 처리

---- 이건 DNS Server들 끼리하는 Query라고 생각

-- DNS 동작 순서

--- Client : DNS Cache 확인 → Hosts 파일 확인 → Server로 Query

--- Server : DNS Cache 확인 → Zone File 확인 → Iteractive Query / 해석 실패

-- 취약점을 이용한 공격

--- DNS Cache Poisoning

--- DNS Spoofing

- DHCP(Dynamic Host Configuration Protocol)

-- 네트워크 상의 IP 주소를 중앙에서 관리하고 할당해도록 해주는 프로토콜

-- DHCP 동작과정(필요하면 나중에 더 정리함)

--- 1) Discover : Client가 DHCP Server을 찾음(Broadcast)

--- 2) Offer : DHCP Server가 Client에게 제공할 수 있는 정보를 줌(Broadcast, 물론 시스템에 따라 Unicast인 경우도 있음)

--- 3) Request : Offer받은 Client가 제공받은 정보를 사용하겠다고 DHCP Server로 알림

--- 4) Ack : DHCP Server가 확인 신호보냄

-- 공격 유형

--- DHCP Starvation : 공격자가 DHCP Server의 모든 IP를 할당 받아서 공격

--- DHCP Spoofing : 공격자가 가짜 DHCP Server를 만들어 잘못된 네트워크 정보를 할당하는 공격

---- DHCP Server를 인증할 수 없기 때문에 가능한 공격

---- 공격에 성공하면, Gateway주소를 속여 Sniffing하거나 Pharming 공격을 할 수 있음

- SNMP(Simple Network Management Protocol)

-- OSI 7 Layer에 속하며, TCP/IP 기반의 네트워크에서 네트워크상의 각 Host에게서 정기적으로 여러 정보를 수집해 네트워크를 관리하기 위한 프로토콜

-- Master와 Agent로 구성됨

--- Master : 관리영역의 네트워크상의 정보가 집중되는 장비(정보의 요청이 시작됨)

--- Agent : 관리영역의 네트워크상에서 관리되는 장비

-- MIB(Management Information Base) : 각 Agent들이 가지고 있으며, Agent의 정보의 집합

-- SMI(Structure of Management Information) : MIB 내의 변수들이 어떤것인지 정의한 것

-- 메시지 전달 방식

--- Poliing(UDP 161) : Manager to Agent

--- Trap(UDP 162) : Agent to Manager

-- 종류

--- SNMPv1

--- SNMPv2 : 현재 많이 사용(SNMPv1에다가 보안기능을 추가(DES/MD5)

--- SNMPv3 : 구현의 복잡성 때문에 잘 사용되지는 X

-- SNMP 통신이 가능하려면 다음과 같은 조건이 만족되어야 함

--- SNMP의 Version이 일치해야 함

--- 서로간의 Community 값이 일치해야 함(기본값 public ; 이걸 바꿔줘야 안전함(외부로 네트워크 정보 새어나갈위험이있음))

--- PDU type이 동일해야 함(값의 범위는 0~4)

- Telnet

-- 원격 접속 프로토콜로써, 데이터가 평문으로 전달되기에 보안성이 떨어짐(TCP 23 Port)

-- 보안성을 위해 SSH(Secure Shell ; TCP 22 Port)을 이용

- FTP(File Transfer Protocol)

-- 원격 파일 전송 프로토콜(TCP 20/21 Port)

-- 연결 방식(나중에 자세히 다루는 Part있는듯)

--- Active 방식 / Passive 방식

- SMTP(Simple Mail Transfer Protocl)

-- 메일 전송 프로토콜(TCP 25 Port)

-- 다른 형식의 데이터를 전달하기 위해 MIME을 이용함(HTTP와 구성이 비슷)


2) Workgroup과 Domain

- Microsoft에서 제공하는 효율적인 디렉토리 관리를 위한 네트워크 모델

- Workgroup

-- 개별적인 관리모델로써, Workgroup 내의 시스템에 접근하려면 해당 시스템에 생성되어 있는 계정으로 인증받아야함(Client-to-Client이라고 보면될듯)

-- 전체적인 관리가 어려우며 비효율적임

- Domain

-- 통합적인 관리모델로써, Workgroup의 크기 가 커지면 각 시스템마다 계정을 생성해야하는 문제점을 고침

-- Domain 내의 한 Server(DC; Domain Controller)로 Domain 내의 모든 시스템의 사용권한 및 보안의 제어가 가능

--- DC에서 계정을 관리하기에, 각 시스템마다 동일한 계정으로 접근이 가능해짐

-- Domain의 각 시스템들은 다른 로컬 네트워크에 있을 수 있음


3) 터미널서비스 등 각종 원격관리 서비스

- SSH(Secure SHell)

-- 안전하지 않은 네트워크를 통해 원격 로그인하거나, 기타 안전한 네트워크를 이용하는데 안전한 쉘 프로토콜

- Windows Terminal Service

-- mstsc(기본값으로 TCP 3389 Port)

--- 보안을 위해 Port를 변경하는게 좋음

--- GUI로 작업이 가능하다는게 특징(화면 동기화는 지원되지는 X)

--- 동시접근가능한 계정의 수가 존재(많이 붙으면 버벅거리긴하던데)


4) 인터넷공유 및 NAT 원리, 활용

- 인터넷 공유(ICS ; Internet Connection Service)

-- 한 시스템에 네트워크 인터페이스가 2개 이상 존재할 때, 인터넷에 연결된 하나의 네트워크 인터페이스를 통해 인터넷에 접속하는 방법

-- ICS를 제공하는 시스템에서, DHCP를 통해 나머지 시스템에게 IP를 할당하고 NAT로 외부와 연결가능하게 끔함

--- 즉, Windows 시스템을 하나의 Router로 이용하는 기술

- NAT(Network Address Translation)

-- 사설 IP를 공인 IP와 Mapping하여 변환하는 프로토콜

--- IP주소의 고갈 / 설계의 효율성 / 보안의 강화 등의 이유로 사용함

-- 종류

--- Static NAT : 사설 IP와 공인 IP를 1:1로 걍 할당

--- Dynamic NAT : 공인 IP의 범위가 정해져있는 Pool에서 자동으로 공인 IP를 선택해서 사설 IP에 Mapping

--- NAT-PAT(NAT-Port Address Translation) : NAT에 Port주소를 Mapping해서 변환시키는 방법(Port Forwarding)




2. 네트워크 활용(6문제/20문제)

(1) IP Routing

1) IP Routing 종류 및 프로토콜

- IP Routing : 주어진 IP Packet을 목적지 주소 까지 전달하는 것으로 전달 경로의 설정이 핵심

- Routing Table : 목적지 네트워크로 데이터를 전달하기 위한 경로 정보 Database

-- Routing Table을 채우는 방법

--- Connected : 직접 Interface에 연결된 장비의 정보를 학습

--- Static Route : 관리자가 수동으로 목적지 네트워크에 대한 경로 정보를 입력해서 학습

--- Dynamic Route : Routing Protocol을 이용해, 장비 간 경로 정보를 주고 받아서 정보를 학습

--- Redistributed : 다른 Router와의 정보 교환(Routing Protocol 간의 정보 교환)

- Static Routing

-- Router(config) # ip route <Destination Network IP> <Subnet Mask> <다음 Router IP>

- Default Routing : Routing Table에 없는 목적지의 경우 보내는 경로

-- Router(config) # ip route 0.0.0.0 0.0.0.0 <Default Router IP>

- Dynamic Routing

-- Routing 경로가 Router와 Routing Protocol에 의해 설정이 되는 형태

-- Unicast Routing Protocol

--- IGP(Interior Gateway Protocol) ; AS 내부

---- Distance Vector 방식(목적지 네트워크까지 갈 수 있는 경로 중, 최적의 경로 선택)

----- RIP

---- Link-State 방식(LSA를 통해 전체 토폴로지 구성 후에, 리크마다 값매겨서 최적의 경로선택)

----- OSPF

--- EGP(Exterior Gateway Protocol) ; AS 간의

---- Advanced Distance Vector 방식

----- BGP

------ iBGP : 외부 AS의 경로를 내부에서 Routing

------ eBGP : AS와 AS사이에서 경로를 Routing

-- Multicast Routing Protocol

--- DVMRP
--- MOSPF

--- PIM

--- Dense&Spares

- Routing Protocol의 우선순위

-- Connected > ICMP redirect > Static > OSPF > RIP



(2)  네트워크 장비 이해

1) 랜카드, 허브, 스위치 및 브리지 기능

- LAN Card(NIC ; Network Interface Card)

-- Point-to-Point 토폴로지 형태

-- 신호 전달 방식 : Full Duplex / Half Duplex

- Hub

-- 1계층 장비

-- 신호 전달 방식 : Half Duplex

--- CD(Collision Domain)의 확장시키지만, CSMA/CD기법을 사용해서 예방과 해결가능

- Switch

-- 2계층 장비(Frame 뜯어보기 가능)

-- 신호 전달 방식 : Half Duplex / Full Duplex(CD가 분리됨)

--- Port마다 다르게 설정가능

-- Bridge와는 달리 H/W방식으로 Switching을 함(ASIC ; 저 위에서 언급함)

-- Switching하는 방식

--- Stored and Forwarding : 전체 Frame 모두 받고 오류 검출 후 전달

--- Cut-Through : Frame에서 목적지 주소만 보고 바로 전달

--- Fragment-Free : Frame의 64Byte까지만 받고 검사 후, 바로 전달

-- Flooding : 목적지 MAC주소가 자신의 MAC Table에 없거나, MAC Table이 가득 차면 Hub처럼 동작

--- Switch jamming : MAC Table 가득 차게만들어서, Hub처럼 동작하게 만들어 Sniffing하는 방법

-- MAC Table

--- Learning : 출발지 MAC 주소 확인 후, MAC Table에 없으면 저장

--- Aging : MAC 주소 기억하는 시간

- Bridge

-- 2계층 장비

-- Switch와는 달리 S/W적으로 구현됨

-- Switching하는 방식

--- Store and Forward(이거만 지원)


2) VLAN 구성 및 관리 

- VLAN(Virtual Local Area Network) : 물리적인 네트워크와 상관없이 논리적으로 네트워크를 분리하는 기술

- 기본적으로, VLAN 소속이 다르면 서로 통신이 불가능함(가능하게하려면 Router나 Routing Module이 필요)

-- Swtich 내부적으로 Frame에 VLAN정보가 있는 Tag를 붙여서 내보내는데, VLAN소속이 다르면 걍 버림

- Swtich의 모든 Port는 기본적으로 VLAN 1로 할당되어 있음

- VLAN이 설정된 Swtich의 각 Port의 구분

-- 그냥 Port(Access라고도 하는데??) : 지정된 VLAN Tag 정보만 허용되는 Port(Host로의 연결에 사용)

-- Trunk Port : VLAN Tag정보를 확인안하는 Port(다른 Switch와의 연결에 사용)

- Trunking Protocol(Tag를 어떻게 달것인가??)

-- 802.1Q : 표준 Protocol(Native VLAN 지원 O)

-- ISL : Cisco Only Protocol(Native VLAN 지원 X)

- Native VLAN

-- Trunk Port로 Frame이 나갈 때 특정 VLAN에 대한 정보를 Tagging하지 않고 전달

--- 예를들어 Native VLAN이 2라면, VLAN 2인 Frame은 걍 Tagging없이 걍 전달

- VTP(VLAN Trunking Protocol)

-- 이것도 Cisco Only Protocol

-- Trunk로 연결된 Switch들 간의 VLAN 설정 정보를 통합적으로 관리하기 위한 것

-- VLAN 정보가 공유되는 네트워크를 도메인이라고 지칭

-- VTP Mode

--- Server Mode : VLAN정보를 생성,변경,제거가 가능하며, 도메인 내에 퍼트리는 존재

--- Client Mode : VLAN정보를 받는 존재

--- Transparent Mode : 도메인 내에 있지만, 자신만의 VLAN정보를 생성하고 제거하는(말그대로 Server가 뿌리든말든 무시하고 내꺼만)


3) 라우터 설정

- User Mode (Router > )

↓ enable(en)

- Privileged Mode (Router # )

↓ configure terminal(conf t)

- Global Configuration Mode (Router(config)# )

-- 여기서 전체적인 설정 가능해

-- 걍 생략 할래 딱보면 알겠지뭐


4) 네트워크 장비를 이용한 네트워크 구성

- 네트워크의 구성은 안전성에 기반을 두어야 함

-- Hierarchical Model을 이용(안전성이 검증된 네트워크 모델이라네??)

--- Access : 말단에 직접 연결되는 계층으로 보통 L2 Swtich

--- Distribution : 네트워크 간의 연결(Router, L3 Switch 등)

--- Core(Backbone)  : 한 네트워크 내부의 모든 트래픽을 연결하고 관리하는 성능 좋은 Router, Switch

- 전용선 연결

-- VPN(Virtual Private Network)

-- Leased Line : 물리적 Cable을 이용하는...

-- 등등



(3) 무선통신

1) 이동/무선통신 보안

- 무선랜 유형

-- WPAN(Wireless Personal Area Network)

--- 단거리 Ad-Hoc방식 / Peer to Peer방식 (노트북과 마우스 등)

-- WLAN(Wireless Local Area Network)

--- 일반적으로 우리가 말하는 Wi-Fi

--- Half Duplex방식으로 신호가 전달되므로 CSMA/CA로 충돌을 회피함(※ Hub의 CSMA/CD와는 다름)

-- WMAN(Wireless Metropolitan Area Network)

--- 도시규모의 지역에서 무선 광대역 접속기능(WiMAX)

- 무선랜 접속 방식

-- Infrastructure Network

--- 유선 네트워크와 무선 네트워크를 연결하는 AP(Access Point) 장비에 의해 외부통신이 지원되는 WLAN

-- Ad-Hoc Network

--- WLAN 장비 사이에서 직접 통신이 일어날 뿐, 외부와의 연결은 X(노트북과 마우스의 연결)

- WLAN 보안 설정

-- WEP(Wireless Equivalent Privacy)

--- RC4 암호화 알고리즘을 사용(RC4자체가 알고리즘 자체에 취약점이 존재)

--- 정적인 암호화 키를 사용하기에 도청 몇 만개 당하면 걍 끝

--- 요새 안써

-- WPA(Wi-fi Protected Access), WPA2

--- WEP의 문제점을 보완

--- WPA : 인증(802.1X/PSK), 암호화(TKIP)

--- WPA2 : 인증(802.1X/PSK), 암호화(CCMP) ; CCMP가 AES를 사용하는거

--- WPA2도 TKIP을 사용가능한데, 그렇게되면 WPA와 다르게 없어짐



(4) 네트워크기반 프로그램 활용

1) Ping, Traceroute 등 네트워크기반 프로그램의 활용

- Ping(Packet Internet Grouper)

- Traceroute(Windows는 tracert)

-- IP의 TTL값 1씩 늘려가며 Time Exceeded 에러 메시지를 통해 목적지 까지의 경로를 추적

-- Unix/Linux : traceroute(UDP 생성)

-- Windows : tracert(ICMP Echo Request 생성)

-- Firewalking : Linux의 traceroute를 이용해 방화벽에 도착하는 port 번호 조작하여 방화벽을 우회하는 기법


2) Netstat, Tcpdump 등 활용

- Netstat

-- 시스템에서 제공되고 있는 서비스 정보(현재 open되어 있는 port정보) 확인

-- netstat -an

- Tcpdump

-- NIC로 입출력되는 트래픽을 사용자에게 출력해주는 분석 도구

-- tcpdump -i eth0 -w tcpdump.txt

-- tcpdump -i eth0 -c 5 ; 패킷 5개 받기

-- tcpdump -i eth0 icmp

-- tcpdump -i any dst host 192.168.100.1

-- tcpdump -i any src host 192.168.100.1

-- tcpdump -i any host 192.168.100.1


3) 네트워크 패킷분석 및 이해

- Tcpdump / Wireshark 등

- Interface가 Promiscuous로 동작해야 함

-- Swtich 환경인 경우에는 Flooding 하게끔 Switch Jamming 등.. 조치가 필요


4) 네트워크 문제의 원인분석과 장애처리




3. 네트워크 기반 공격 이해(5문제/20문제)

(1) 서비스 거부(DoS) 공격

1) 각종 DoS 공격원리와 대처 방법

- DoS(Denial of Service ; 서비스 방해(거부) 공격

-- 시스템이 정상적으로 서비스를 하지 못하게 해서, 일반적으로 서버를 다운시키는 공격

-- TCP/IP Protocol의 구조적 취약점을 이용한 공격이 많음

-- 시스템에 과부하를 주는 공격 / 네트워크 서비스 방해하는 공격


2) SYN Flooding, Smurfing 등 각종 flooding 공격의 원리, 대처

- SYN Flooding

-- 공격자가 임의로 자신의 IP를 속인뒤, 서버로 다량의 SYN 패킷을 보내서 서버를 대기 상태(SYN+ACK Sent)로 만드는 공격

-- 서버는 계속 ACK 패킷을 기다리는데 모든 자원을 쏟아붇게 되고 정상적인 서비스가 불가능해짐

-- 탐지 방법

--- SYN 패킷을 받으면 카운트를 늘리고 ACK를 보내면 카운트를 줄여서, 특정 기간 내에 카운트가 높으면 SYN Flooding

-- 조치 방법

--- Connect Queue Size를 증가 시킴(일시적인 대처법) ; Backlog Queue라고도 표현하네

--- SYN Cookie Size를 늘림

---- L4에서 SYN패킷을 보내면, 세션 테이블 생성없이 SYN/ACK(syn=cookie)를 보내고

---- 이에 대한 ACK(ack=cookie+1) 패킷을 받으면 서버와 세션을 연결해주는 방법

---- 물론, L4가 아닌 서버단에서도 가능

--- Router단에서 서브넷 외의 주소를 가지는 소스IP를 가지는 패킷을 차단

- UDP Flooding

-- 공격자가 UDP로 서버에 가상의 데이터를 연속적으로 보내서, 서버의 부하 및 네트워크 오버로드를 발생시키는 공격

-- 조치 방법 : 불필요한 UDP 서비스를 차단

- Smurfing(=smurf)

-- Broadcast 주소로 ICMP_REQUEST로 보내서 이에대한 ICMP_ECHO_REPLY를 공격지로 보내는 방법

-- 조치 방법

--- Router에서 Direct Broadcast 패킷은 차단(외부 네트워크에 Broadcast를 Direct Broadcast라고 하는 듯)

--- Host에서 Broadcast로 전달된 ICMP에 대하서는 응답안하게 설정

- Teardrop 공격

-- Header가 조작된 일련의 IP 패킷조각들을 전송해서 공격이 이루어짐

-- Offset값을 일부로 이전 값보다 작게 음수로 만들어서 보내므로, 재조립과정에서 에러가 발생→블루스크린

- Ping of Death

-- IP 패킷 최대 사이즈보다 큰 ICMP Request를 보내는 공격

-- 패킷 재조립 과정에서 Buffer Overflow 및 시스템 충돌이 일어남

-- IP 패킷 사이즈를 검증하는 설정을 추가

- Land Attack

-- 목적지, 출발지 IP와 Port가 모두 동일하게 보내는 공격

-- 시스템 자원을 고갈시켜 서비스 장애를 유발 시킴

-- 방화벽 단에서 필터링하도록 설정(요샌 다 되어 있지)


(2) 분산 서비스 거부 공격

1) DDoS 공격 원리 및 대처 방법

- DDoS(Distributed DoS) : 공격 시스템을 분산배치해서 동시에 대량 트래픽을 발생시키는 공격(Zombie PC)

-- 툴 : TRINOO / TFN(TFN2K) / Stacheldraht(슈탁셀드라트)

- DRDoS(Distributed Reflection DoS)


(3) 네트워크 스캐닝

1) Remote Finger Printing

- 외부에서 물리적인 장치면, 운영체제 유형등을 알아내는 기법


2) IP 스캔, Port 스캔

- IP 스캔

-- Host Discovery를 말하는 것 같음. 운영되고 있는 시스템을 찾아내는 기술

-- ICMP ping과 TCP Ping(SYN 등을 보내서 반응보기) 등으로 알아냄

- Port 스캔

-- 스캐닝 기법

--- Opening Scanning : TCP Connect Scanning

---- 걍 세션 성립시키는 방법(로그 남아서 위험)

---- Open Port : SYN/ACK(이거받고 ACK 보내서 세션 성립시켜)

---- Close Port : RST/ACK

--- Half-Open Scanning : SYN Scanning

---- Open Port: SYN/ACK(이거받고 걍 RST보내서 세션 성립막아)

---- Close Port : RST/ACK

--- Stealth Scanning : FIN / X-MAS / NULL Scanning

---- Open Port : 응답 X

---- Close Port : RST/ACK 응답

--- More Advanced Scanning : Spoofed Scanning(??)

-- 포트 스캐닝의 구분

--- TCP 포트 스캐닝 : 특정 Flag값을 설정한 뒤, 패킷을 보내고 그에 대항 응답으로 확인

--- UDP 포트 스캐닝

---- 포트가 열린 상태 : 아무런 응답 X

---- 포트가 닫힌 상태 : ICMP Unreachable(UDP 패킷이 목적지에 도달하지 못했다는 메시지)

---- ※ 패킷이 유실되도 아무런 응답이 없기에 신뢰성이 떨어짐



(4) IP Spoofing, Session Hijacking

1) IP Spoofing과 Session Hijacking의 원리 및 실제

- IP Spoofing

-- Trust Relation을 악용한 것(IP만 일치하는지 확인만 하고 세션 성립시켜버리는)

-- Step 1) 공격자가 세션을 뺏고자하는 호스트에게 DoS공격

-- Step 2) 공격자가 호스트의 IP로 자신을 속여 서버로 SYN 패킷을 보냄

-- Step 3) 서버가 보낸 SYN/ACK패킷을 호스트는 받지못하고, 공격자가 Brute Forcing으로 Sequence Number 맞춰서 ACK패킷보냄

-- Step 4) Session성립

-- 현재는 Sequence Number가 랜덤하게 변경되기에 공격이 불가

-- 대응책

--- 일단 Trust를 사용하지 않는게 좋아(Trust는 TCP Wrapper가 처리한다네??)

--- 불가피하게 구성할 경우에는 MAC주소를 Static으로 고정해(물론 MAC주소도 수정가능하지만 뭐...)

- ARP Spoofing(ARP cache Poisoning와 미묘한 차이)

-- 자신이 게이트웨이인거처럼 속여 네트워크 내의 모든 패킷이 자신을 거쳐 가도록 하는 공격

-- Step 1) 스니핑이 선행되어야 하며 랜카드는 Promiscuous 모드로 동작해야 함

-- Step 2) ARP Request Broadcast로 네트워크 상의 모든 IP와 MAC주소를 알아냄

-- Step 3) 공격자가 자신의 MAC주소를 게이트웨이(HUB/Switch)의 MAC주소로 속여서, 네트워크 상의 호스트들의 ARP Cahce를 업데이트시킴

-- Step 4) 모든 패킷이 자신에게 옴

-- 대응책

--- ARP Table을 정적으로 고정(arp -s <IP> <MAC>)

--- Ingress Filtering : 외부에서 오는 패킷이, 내부인척 하는 걸 필터링

--- Egress Filtering : 내부에서 나가는 패킷이, 내부의 주소가 아니면 필터링

--- ARP Storm 확인 : 다량의 ARP Reply가 지속적으로 발생하는걸 확인해서

- Session Hijacking

-- 서버와 클라이언트 사이의 Session을 가로채는 기술

-- 대응책

--- 데이터 전송시 암호화하여 내용 못보게 함

--- 지속적인 인증 시스템 구축

--- Ack Storm의 탐지



(5) 스니핑 및 암호화 프로토콜

1) 스니핑 공격 원리와 대처 방법

- 스니핑(Sniffing) 원리

-- NIC 모드를 Promiscuous로 바꾸고 네트워크 상의 모든 트래픽을 다 받아들임으로 스니핑 가능

-- Passive Sniffing

--- Hub로 연결된 네트워크에서는 Hub가 Flooding하게 데이터를 뿌리므로 걍 NIC만 Promiscuous로 바꾸면 스니핑 가능

-- Active Sniffing

--- Switch의 경우에는 따로 공격을 통해 Flooding하게끔 공격해야 가능

--- 꼭 Flooding하게만 만드는게 아니라, MITM(Man In The Middle) 형태로 만들어야 함

---- Switch Jamming

---- ARP Spoofing(ARP Cache Poisoning)

---- ICMP Redirect : Router에게 올바른 경로를 알려주는 용도인데 악용해서 자신에게 오게끔 경로를 수정

- 스니핑의 대응

-- 일단 Switching 환경으로 네트워크 설계

-- ARP Cache Table을 정적으로 운영

-- 데이터의 암호화 : SSL / PGP, S/MIME / SSH / VPN / IPsec



(6) 원격접속 및 공격

1) 각종 공격의 인지 및 이해

- 원격 공격

-- 원격 네트워크의 공격자가 피해 시스템에 접근하여 명령을 전달할 수단을 획득하는 공격

-- Backdoor, Null Session Hacking 등의 기법으로 대상 시스템을 제어할 수 있는 권한 등을 획득


2) Trojan, Exploit 등 식별, 대처

- Trojan

-- 트로이목마 악성 프로그램 또는 악성코드를 의미

- Backdoor

-- 시스템에 접근할 수 있는 뒷문

-- Back Orifice를 시작으로 제작되었고 현재 다양한 종류가 있음




4. 네트워크 장비 활용 보안기술(2~3문제/20문제)

(1) 침입 탐지시스템(IDS)의 이해

1) 원리, 종류, 작동방식, 특징, 단점

- IDS(Intrusion Detection System ; 침입 탐지 시스템)

-- 시스템에 대한 인가 되지 않은 행위와 비정상적인 행동을 탐지해서 관리자에게 알림

-- 일반적으로 침입 차단시스템(Firewall)과 결합해서 많이 쓰임

- IDS의 유형 : 데이터 소스 기준 IDS 시스템 분류

-- 호스트 기반 IDS(HIDS)

--- 각 호스트 내에서의 운영체제 감사자료와 시스템 로그 등을 통해 침입탐지를 하는 시스템

--- 감시 대상이 되는 서버에 각각 설치해야 함

--- NIDS에서 탐지 불가능한 침입을 탐지 가능 / 추가적인 하드웨어의 구매가 필요없기에 상대적으로 저렴

--- 호스트의 자원을 점유 / 운영체제 자체가 취약하면 보장하기 힘듬

-- 네트워크 기반 IDS(NIDS)

--- Promiscuous로 동작하는 NIC를 통해 네트워크 패킷을 캡쳐 후, 분석을 통한 침입탐지를 하는 시스템

--- 보통 Switch에서 업링크된 포트에 미러링을 구성하는 방식 사용

- IDS의 유형 : 침입탐지 판정 원리에 따른 분류

-- 오용탐지(Misuse Detection) : 정해진 공격 모델과 일치하는 경우를 침입으로 간주 ; 지식기반 침입 탐지라고도 함

-- 비정상행위(Anomaly Based) : 정해진 모델을 벗어나는 경우를 침입으로 간주 ; 행위기반 침입 탐지라고도 함


2) False Positive / Negative 이해

- False Positive(오탐) : 정상을 악의적인 것으로 판단

- False Negative(미탐) : 악의적인 트래픽을 정상으로 판단



(2) 침입 차단시스템(Firewall)의 이해

1) 원리, 종류, 작동방식, 특징, 단점

- 외부의 불법적인 침입으로부터 내부를 보호하고 외부로 부터 유해정보의 유입을 차단하기 위한 정책과 이를 지원하는 하드웨어/소프트웨어

- 주요 기능 : 접근 통제(패킷 필터링) / 감사 및 로깅 / 프로시 기능 / 보안정책 구현 / 사용자인증

- 침입 차단시스템의 종류

-- 패킷 필터링(Packet Filtering) 방식

--- Network Layer와 Transport Layer에서 동작하는 방식

--- 일반적으로 스크린 라우터를 이용한 방화벽 방식

-- 어플리케이션 게이트웨이(Application Gateway) 방식

--- Application Layer에서 동작하는 방식

--- 침입 차단시스템의 Proxy를 이용해 사용 가능

--- 외부 네트워크와 내부 네트워크가 오직 Proxy를 통해서만 연결

--- Application Layer에서 동작하므로 네트워크에 많은 부하를 줄 수 있고 하드웨어에 의존적임

http://iorora.web-bi.net/tech/ETCnetwork/firewall/type.htm

-- 서킷 게이트웨이(Circuit Gateway) 방식

--- 하나의 일반 게이트웨이로 모든 서비스가 처리 가능한 방식

--- Session Layer, Presentation Layer, Application Layer에서 동작

--- 게이트웨이 사용을 위해 수정된 클라이언트 모듈이 필요함 / 지원불가능한 프로토콜이 있을 수 있음

http://iorora.web-bi.net/tech/ETCnetwork/firewall/type.htm

-- 상태 검사(Stateful Inspection) 방식

--- 기본적으로 패킷 필터링 방식을 사용

--- 서버-클라이언트 모델을 유지시키면서 모든 Layer의 전후 상황에 대한 문맥을 제공

--- 패킷 필터링 방식, 응용 게이트웨이 방식, 서킷 게이트웨이 방식의 단점을 보완

--- 현재 방화벽 업계 표준이 되어간다네??

- 침입 차단시스템의 구축 형태

-- 베스천호스트(Bastion Host)

--- 보호된 네트워크에서 유일하게 외부로 노출되면서 내외부 네트워크의 연결점으로 사용되는 호스트

--- 방화벽 S/W가 설치되어 있으며, 보안의 취약점이 완벽히 제거 되어 있는 시스템

--- 일반 사용자 계정이 없어야 되며, 방화벽 S/W 외의 모든 유틸리티는 삭제 되어야 함

--- 베스천호스트가 손상되면 내부 네트워크로 무조건적인 패킷 전송이 가능(즉, 내부 네트워크 보호 불가능)

--- 2계층 공격 등을 통한 방화벽 우회공격에 취약

http://dlrudwo.tistory.com/entry/Firewall

-- 스크린 라우터(Screen Router)

--- 일반적인 Router 기능 + 패킷 헤더를 보고 패킷 통과 여부를 제어할 수 있는 필터링(스크린) 기능

--- Network Layer와 Transport Layer의 IP주소, Port주소에 대해서만 접근 제어

--- 로깅과  감시가 힘듬 / 패킷 필터링 규칙에 대한 검증이 어려움

http://dlrudwo.tistory.com/entry/Firewall

-- 듀얼 홈 게이트웨이(Dual Home Gateway)

--- 두 개의 랜카드를 가진 베스천호스트구조(하나는 내부 네트워크, 나머지 하나는 외부 네트워크와 연결)

--- 베스천호스트가 손상되면 내부 네트워크는 외부 네트워크와 완전히 차단됨

http://dlrudwo.tistory.com/entry/Firewall

-- 스크린 호스트 게이트웨이(Screen Host Gateway)

--- 스크린 라우터 + 베스천호스트의 구조를 가짐

--- 1차적으로 스크린 라우터가 Network Layer와 Transport Layer에 대해 필터링하고, 2차적으로 베스천호스트가 Application Layer에 대해 점검

---- 외부에서 들어오는 패킷은 스크린라우터가 필터링 한 후 베스천호스트로 몰아줌(이 경로가 잘못되면 끝임)

--- 따라서 매우 안전하며, 가장 많이 사용되는 시스템

--- 구축 비용이 많이들며, 위에 설명했드시 스크린 라우터의 라우팅 테이블이 변경되면 끝임

http://dlrudwo.tistory.com/entry/Firewall

-- 스크린 서브넷 게이트웨이(Screen Subnet Gateway)

--- 스크린 호스트 게이트웨이 + 듀얼 홈 게이트웨이의 구조를 가짐

--- 두 개의 스크린 라우터와, 하나의 베스천 호스트로 구성되며 스키린 서브넷이 DMZ에 놓이게 되는 방식

--- 내부쪽의 라우터가 듀얼 홈 게이트웨이 구조라고보면될듯

--- 가장 강력한 보안이며 융통성이 띄어나지만 구축이 어렵고 비용이 많이들며 서비스 속도가 느림

http://dlrudwo.tistory.com/entry/Firewall



(3) 가상사설망(VPN)의 이해

1) 원리, 작동방식, 특징, 구성, 단점

- VPN(Virtual Private Network ; 가상사설망)

-- 공용망을 마치 전용선처럼 이용하기 위해 사용하는 기술

-- 전송되는 데이터에 암호화와 인증 등 보안기능을 제공

- VPN에 필요한 기술

-- 터널링 기술 : Ent-to-End 전용회선 연결과 같은 효과가 있고, 두 종단간 사이에 가상적 터널을 형성하는 기술로써 프로토콜로 구현

-- 키(Key) 관리기술 : VPN의 보안적 요소들에 사용되는 기술들. 대표적으로 ISAKMP, OAKLEY 등

-- VPN 관리기술 : 효과적이고 안정적으로 VPN 서비스를 지원하는 기술이며 QoS를 보장하는 기술

- 장/단점

-- 폐쇄망이기에 외부에 노출 X / 신규 노드 확장이 빠름 / 전송회선 비용 절감 / 네트워크 확장 용이

-- 공중망을 이용하기에 대역폭 보장X / 모든 장비가 호환되지 X

- 터널링 프로토콜

-- 용어 정리

--- 터널링 : 송수신자 사이의 전송로에 외부로부터의 침입을 막기위해 일종의 파이프를 구성하는 기술

---- 파이프는 터널링을 지원하는 프로토콜을 사용해 구현되며 보안기능을 지원

--- 페이로드(Payload) : 터널링 되는 데이터

-- PPTP(Point-to-Point Tunneling Protocol)

-- L2TP(Layer 2 Tunneling Protocol)

-- Sock v5

-- IPsec

--- Network Layer에서 동작하는 보안 매커니즘(프로토콜)(업계 표준)

--- 인증 / 접근제어/ 무결성/ 기밀성 / 재전송방지 등을 지원

--- 사용하는 프로토콜

---- AH(Authentication Header) : 데이터 무결성 보장과 IP 패킷의 인증에 사용되는 프로토콜

----- Transport Mode : 원래의 IP Header를 그대로 사용해서 전송

----- Tunnel Mode : 데이터 그램 전체를 AH로 캡슐화하고, 다시 새로운 IP Header를 캡슐화해서 전송

------ 새롭게 IP Header를 만드므로 송수신자를 새로 지정이 가능(주로 보안 게이트웨이끼리 지정)

http://www.amaranten.com/support/user%20guide/VPN/IPSec_Basics/Overview.htm

---- ESP(Encapsulating Security Payload) : AH와 동일한 인증 뿐만아니라 데이터의 기밀성 보장이 가능한 프로토콜

----- ESP단독으로 사용하거나 ESP + AH 조합된 형식으로 사용함

----- Transport Mode

----- Tunnel Mode

http://www.amaranten.com/support/user%20guide/VPN/IPSec_Basics/Overview.htm

---- IKE(Internet Key Exchange) : 키 관리 프로토콜로써, ISAKMP과 OAKLEY를 결합한 것(ISAKMP/OAKLEY라고 표현하기도함)

---- AH와 ESP의 비교

---- AH : 패킷 인증 기능 / 단독사용가능

---- ESP : 패킷 암호화 기능 + 패킷 인증 기능 / AH와 병행사용

--- SSL VPN : 근래들어 많이 쓰는 방법으로 저 저렴하고 보안을 강력하게 할 수 있다네??

- 너무 어렵다 나중에 따로 정리해야겠다(게다가 PPTP, L2TP 같은건 생략했어, 시험이라 비중높은 IPsec만 다뤄야겠다 여기서는)



(4) 라우터보안 설정

1) 라우터 자세 보안설정

- User Mode에서 enable로 Privilieged Mode 변경시 패스워드

-- Router(config)# enable {secret | password} 패스워드

-- Telnet 접속 시, 반드시 해야하는 작업

- Console로 접속시 패스워드

-- i) 패스워드로 인증

--- Router(config)#line console 0

--- Router(config-if)#login

--- Router(config-if)#password 패스워드

-- ii) Local User로 인증(ID/PW로 인증)

--- Router(config)#username 사용자ID {password | secret} 비밀번호 (계정생성)

--- Router(config)#line console 0

--- Router(config-if)#login local

- VTY(Telnet) 접근 인증

-- 위에서 한 enable 패스워드 걸어줘야함

-- i) 패스워드로 인증

--- Router(config)#line vty 0 4

--- Router(config-line)#loign

--- Router(config-line)#password 패스워드

-- ii) Local User로 인증(ID/PW로 인증)

--- Router(config)#username 사용자ID {password | secret} 비밀번호 (계정생성)

--- Router(config)#line vty 0 4

--- Router(config-line)#loign local



(5) 각 장비의 로그 및 패킷분석을 통한 공격방식의 이해 및 대처

1) 호스트, IDS, 방화벽, 라우터 등 각종 네트워크 장비 로그 및 패킷 분석

- 뭐 어찌해야될지 모르겠네 로그랑 패킷 분석은 여기저기서 다룰꺼라 걍 여기선 제껴




5. 네트워크 보안 동향(1~2문제/20문제)

(1) 최근 네트워크 침해사고 이해

1) 분산반사 서비스 거부 공격(DRDoS)

- DRDoS(Distributed Reflection DoS)

- DDoS와의 차이점

-- 출발지 주소를 속임(IP Spoof)

-- 공격의 근원지 추적하기가 힘듬

-- Bot을 이용할 필요가없음

-- 정상적인 서비스 응답 패킷으로 공격함

- 대응

-- ISP에서 출발지가 변조된 공격 패킷을 차단(Egress Filtering)

-- 짧은 시간 동안에 일어나는 연결 실패를 필터링해서, 해당 출발지 IP를 블랙리스트 처리(어차피 변조된 IP주소일텐데...?)


2) 봇넷을 이용한 공격

- Bot : RoBot의 약자로, 사용자나 다른 프로그램을 흉내내는 프로그램

- Zombie PC : Bot에 감염되어 공격자로 부터 제어되는 시스템

- Botnet : Zombie PC가 이루는 네트워크

-- 중앙집중형 구조 : Bot 관리자가 중앙에 위치해서, Bot에게 명령 제어하는 구성

-- 분산형 구조 : P2P방식으로 C&C 서버 없이 Zombie PC 끼리 상호 연결되어 동작하는 네트워크 구성

-- 서버 클라이언트 구조 : 서버측에 Bot 관리자가 있고, 클라이언트가 Zomebie PC인 구성

- 공격방식

-- 공격을 위해 Bot을 개발하고 다양한 경로로 Zombie PC를 만들어냄

-- 공격을 위한 C&C 서버를 통해 IRC 채널을 활성화해 Zombie PC의 접속을 기다림

-- Zombie PC가 IRC 채널에 접속하면, Zombie PC는 명령을 전달 받기 위해 대기함


(2) 최근 네트워크 보안 솔루션

1) 역추적시스템(Traceback)

- 공격을 시도하는 공격자의 네트워크 상의 실제 위치를 실시간으로 추적하는 기술

- 사람에 의한 역추적

-- 시스템에 남아 있는 Log를 분석해 역추적 / Log를 찾아내고 분석하는데 많은 시간과 인력이 필요

- TCP 연결 역추적

-- 호스트 기반 연결 역추적

--- 호스트에 역추적을 위한 모듈을 설치해, 호스트에서 발생하는 Log등 다양한 정보를 통해 역추적

--- 네트워크 상의 모든 호스트에 역추적 모듈이 설치되어야 함

--- 종류 : CIS(Caller Identification System), AIAA(Autonomous Intrusion Analysis Agent)

-- 네트워크 기반 연결 역추적

--- 네트워크상에서 전달되는 패킷에서 정보를 추출하여 역추적

--- 네트워크에서 발생하는 모든 연결정보를 지속적으로 보유해야 함

--- 종류 : Thumbprints Based Algorithm, Timing Based Algorithm, SWT(Sleepy Watermark Tracing)

- IP 패킷 역추적


2) 침입방지시스템(IPS)

- IPS(Intrusion Prevention System) : 침입 탐지와 차단을 함께 수행하는 실시간 보안 장비

- Firewall은 Network Layer와 Transport Layer를 검사하지만, IDS/IPS은 Network Layer부터 Application Layer까지 검사

- ※ 침입탐지시스템(IDS) / 침입차단시스템(Firewall ; 방화벽) / 침입방지시스템(IPS)


3) ESM(Enterprise Security Management)

- 전사적 보안관리 솔루션으로, IDS/IPS, Switch, Router등 각종 이기종 보안솔루션을 중앙에서 하나의 콘솔로 관리하는 보안솔루션

- 동일 제품의 경우에는 운영 관리 기능이 좋겠지만, 이기종 제품이나 타사 제품에 대해서는 원격관리나 로그분석 기능 정도 제공하는 수준


4) NAC(Network Access Control)

- 네트워크 접근제어

- 네트워크에 접근하는 모든 기기의 보안상태를 점검하여, 안전이 확인된 기기만 접근시키는 보안 솔루션

- 안전이 취약한 기기를 발생했다고 해서 능동적으로 제거를 하는 솔루션은 아님

- 백신의 설치 유무 / 업데이트 유무 등 강제적인 의무사항을 이행했는지만 확인함(강제성만 띔)

 

+ Recent posts