2016년 6월 1일 수요일

정보보안기사 정리 1 - 작성중

정보보호 정의, 목표(기밀성, 가용성, 무결성), 정보보호관리와 대책(기술적, 물리적, 관리적), 



1. 정보보호 (Information Security) 정의
- 사전적: 정보의 수집, 가공, 저장, 검색, 송신, 수신 중 발생하는 정보의 훼손, 변조, 유출 등을 방지하기 위해 관리적, 기술적 수단,
  또는 이런 수단을 통해 이루어진 행위들.
- 기밀성, 무결성(=완전성, 보전성), 가용성, 인증성 및 부인방지를 보장하기 위해 기술적, 물리적, 관리적 보호대책을 강구하는 것.

2. 정보보호의 목표(CIA Triad)
- Confidentiality(기밀성)
  Authorized user만 시스템에 접근하게 하는 것. 이를 통해 Data Confidentiality는 개인정보 등이 부정한 사용자에게 노출 되지 않게 하는 것.
  Privacy는 개인과 관련된 정보들을 통제하는 것을 얻을 수 있다. Confidentiality를 위해 접근 제어, 암호화 등을 함.
- Integrity(무결성)
  송수신되는 정보의 내용이 불법적으로 생성되거나 변경 또는 삭제되지 않도록 보호하는 것. 무결성 보장을 위해 접근제어, 메시지 인증, 침입탐지, 백업 등을 함.
- Availability(가용성)
  시스템이 서비스를 요청한 사용자에게 즉각적으로 동작하고, 정상적으로 접근한 사용자에게 서비스 사용을 거절하지 않음.
  이를 위해 데이터 백업, 중복성 유지, 물리적 위협으로부터의 보호 등을 함.

3. 정보보호 관리와 대책
- 정보는 중요한 자산으로서 목적 달성에 필요하며, 비인가자에게 노출되지 않도록 관리되어야 함. 이를 위해 기술적, 물리적, 관리적 보호대책으로 구분하여 표현함.
  (관리적(법/제도/교육), 물리적, 기술적)
- 기술적 보호대책: 정보 시스템, 망, 데이터 보호를 위한 것. 접근통제, 암호기술, 백업, 보안 SW 사용
- 물리적: 자연재해, 외부 침입으로부터 보호를 위한 것. 출입통제, 잠금(시건) 장치 사용
- 관리적: 법, 제도, 규정 및 보안 계획 수립, 운영, 위험분석 등을 함. 조직을 위한 보호대책 계획, 설계 등. 조직 내부자들 교육.

4. 보안공격(Security Attack)
- 보안공격: Confidentiality(기밀성), Integrity(무결성), Availability(가용성)를 위협하는 것.
- Confidentiality 공격
  Snooping: 데이터의 비인가 접근 또는 탈취(내용을 바꾸는 것이 아님).
  Traffic Analysis: 비록 데이터가 암호화 되어 있어도 트래픽을 분석하여 사용자의 전송 성향 등을 추측하는 것.
- Integrity 공격
  Modification: 메시지를 수정하거나 순서를 바꾸는 것.
  Masquerading(가장): 한 개체가 다른 개체인 것처럼 보이게 하는 것.
  Replaying: 훔친 데이터를 가지고 있다가 시간이 지난 후에 재전송하여 인가되지 않은
                사항에 접근하는 효과를 노리는 것.
  Repudiation(부인): 송신자가 메시지를 보낸 것 또는 수신자가 받은 것을 부인하는 것.
- Availability 공격: DoS 공격

기밀성 공격(Passive): Snooping, Traffic analysis
무결성 공격(Active): Modification, Masquerading, Replaying, Repudiation
가용성 공격(Active): Denial of Service

* Passive는 단순히 정보를 탈취하는 것이고, Active는 데이터를 바꾸거나 시스템을 공격하는 것으로 방어보다 탐지가 잘된다.

5. 보안 서비스
- 보안공격에 대응하기 위해 수립된 보안 정책을 구현하고, 보안 매커니즘을 통해 보안 서비스를 제공하는 것.
  이를 통해 시스템의 보안이나 데이터에 관련된 보안을 보장해줌.
- X.800에서 프로토콜을 만듦. 즉, 보안서비스는 프로토콜 계층에서 제공함.

- 기밀성은 Passive 공격으로부터 데이터를 보호하는 것으로 두 사용자 사이에 전송되는 데이터를 모두 보호하는 광범위 서비스가 있고,
  무결성은 메시지 또는 메시지 안에 있는 필드를 보호하는데 메시지 스트림 전체를 보호하는 서비스가 있음.
  가용성은 시스템 성능에 따라 시스템 자원에 접근 할 수 있도록 통제하는 서비스가 있음.
- Authentication(인증)은 통신의 상대편에 대한 인증을 제공한다.
  connection oriented 통신에서는 송신자 또는 수신자에 대한 인증 (peer entity authentication)을 제공하고,
  connectionless 통신에서는 데이터의 출처를 인증함.
  Peer entity authentication(대등 개체 인증)은 연결 설정 및 데이터 전송 과정에서 통신하는 상대방의 신원을 확인함.
  Data origin authentication(데이터 출처 인증)은 데이터 출처를 확인 하는 것.
- Nonrepudiation(부인 방지, 부인 봉쇄)는 데이터를 주고받는 양측이 송수신 한 것을 서로 부인하지 못하게 하는 것. 디지털 서명 등의 방법을 사용.
- Access Control(접근제어)호스트와 시스템의 어플리케이션 간의 접근을 통제하는 것으로 접근 시도할 때는
  먼저 신원확인, 인증, 권한 부여 및 획득을 하게 함.

- 보안 서비스가 제공해야할 것(RFC2401 표준 정의)
  ① 기밀성: 메시지가 도청되도 그 내용을 알수 없음.
  ② 무결성: 메시지가 위조 또는 변조 되지 않은 것을 보장. (MAC 등 이용)
  ③ 송신처 인증: 메시지가 정당한 송신처에서 온것을 검증. (MAC 등 이용)
  ④ 재전송 공격 방지: 일련 번호(Sequence Number)등을 이용한 재전송 여부 판단.
  ⑤ 접근 제어
  ⑥ 제한된 트래픽 흐름의 기밀성. (IPSec의 터널 모드 등을 통한 송/수신지 정보에 대한 기밀성 보장)

6. 보안 용어
- 위협(손실, 손상에 원인이 될 가능성을 제공하는 것.)
  interception(가로채기)는 기밀성에 공격으로 비인가 된 사용자가 시스템 접근을 한 것.
  interruption(가로막음)은 가용성 공격으로 시스템의 HW 파괴, 파일 삭제, DoS 같은 행위를 한 것.
  modification(변조)은 무결성 공격으로 비인가 된 사용자가 메시지 또는 DB 등의 내용을 변경한 것.
  fabrication(위조)은 무결성 공격으로 비인가 된 당사자가 위조 정보를 생성한 것.
- Risk(위험)
  비정상적인 일이 발생할 수 있는 가능성. 예상되는 위협에 의해 발생할 손실의 기대치.
  [자산 × 위협 × 취약점] 으로 표현됨.
- Exposure(노출)
  손실을 노출시킴. 예: 패스워드가 쉬움
- 직무상의 노력(Due Care, Due Diligence)
  Due는 목적을 위해 필요하거나 요구되는 의무.
  Due Case는 목적을 위해 필요하거나 요구되는 충분한 주의.
  Due Diligence는 목적을 위해 필요하거나 요구되는 충분한 노력.
- Social Engineering(사회공학)
  인간관계를 이용하여 보안 절차를 깨뜨리기 위한 비기술적 침입수단.
  예: Phsing(피싱)은 메일을 발송해 위장된 웹으로 접속하게 한뒤 정보를 빼내는 것.
  Trojan Horse(트로이목마)는 정상적 기능을 하는 프로그램으로 가장하여 실행이 되면
  악성 코드를 실행함. Keylogger(키로거)는 키보드 입력을 빼내는 것.
- principle of weakness link(가장 약한 링크 원칙)
  보안은 가장 약한 링크보다 더 강할 수 없다.

7. 시점별 통제
- 취약점을 감소시키거나 억제하기 위해 사용되는 매커니즘을 통틀어 일컫는 말.
- Preventive Control(예방통제): 사전에 위협과 취약점에 대처.
- Detective Control(탐지통제): 위협을 탐지하는 통제, 빠를수록 대처가 용이.
- Corrective Control(교정통제): 탐지된 위협이나 취약점에 대처 또는 감소시키는 통제.

8. 암호학 용어
- 이브(Eve, eavesdropper)
  소극적인 공격자, 통신을 도청만 하고 수정 안함. 이브는 사람,  통신기기에 장치된 도청용 기계, sw 등을 의미함.
- 맬로리(Mallory, malicious)
  악의적 공격자, 통신상의 메시지를 수정하고 재전송 함.
- 트랜트(Trent, trusted arbitrator)
  중립적 위치의 제3자.
- 빅터(Victor, verifier)
  의도된 통신이 실제로 발생했음을 검증.
- Encrypt(E): 암호화
- Plaintext(M or P): 평문, 메시지
- Ciphertext(C): 암호문, 암호화된 평문
- Decrypt(D): 복호화
- Key(K): 키, 암호화 및 복호화 하는 알고리즘에서 사용하는 값
- Key space: 암호화 알고리즘에서 사용하는 키 값의 크기


* Plaintext를 Cryptography(암호) 기술을 통해 암호화함으로서 message의 confidentiality(기밀성, 비밀성)을 유지함.

9. 암호와 보안 상식
- 독자적 암호화 알고리즘을 만들고 이를 비밀로 하면 안전하다고 생각하는 오산.
- 암호화 알고리즘 자체를 비밀로 해서 기밀성을 유지하려고 하는 행위를 Security by obscurity(숨기는 것에 의한 보안)이라고 함.

10. 암호기법 분류
- 치환암호화 전치암호
  ① 치환암호(대치암호, Substitution Cipher): 비트, 문자를 다른 비트 또는 블록으로 대체 (평문의 문자를 다른 문자로 교환하는 방법),
  ② 전치암호(Transposition Cipher): 원문에서 비트 또는 문자들의 순서를 바꿔서 재배열하여 원래의 의미를 감추는 것. 즉, 자리를 바꾸는 방법

- 블록암호와 스트림 암호
  ① 블록암호(Block cipher): 특정 비트 수의 집합을 한 번에 처리. 즉, 평문을 블록 단위로 쪼개고 각 블록마다 암호화 알고리즘을 적용함.
      블록의 크기는 8비트(아스키), 16비트(유니코드)에 비례하며, Round 방식으로 암호화 과정을 반복적으로 하여 암호화 강도를 높일 수 있음.
      주로 데이터 전송에 사용됨.
  ② 스트림암호(Stream cipher): 순차적으로 평문과 키 스트림을 XOR하여 암호화 함.
      블록 암호화 방식보다 빠르지만 강도가 약함. 주로 음성, 영상 전송 같은 실시간 SW에서 사용됨.
      블록 암호 방식은 블록 단위로 처리되므로 암호화 진행에 대한 내부 상태 정보가 필요없지만 스트림암호 방식은 데이터 흐름을 순차적으로 처리하기 때문에
      내부 상태를 가지고 있어야 함.
  * 블록 암호: DES, IDEA, AES <- 단점: 느린 암호화, 에러 전달, 장점: 기밀성, 해시함수
  * 스트림 암호: LFSR(linear feedback shift register), MUX generator <- 단점: 변형에 대해민감, 장점: 빠른 암호화, 에러전파 없음.

- 링크 암호화와 종단간 암호화
  ① 링크암호화(Link Encryption): 물리 계층과 데이터링크 계층에서 물리적 장치를 이용하여 암호화를 함.
      하지만 스위치가 매번 프레임의 경로 지정을 위해 헤더를 까봐야 해서 매번 복호화를 해야 함.
  * ISP 업자가 암호화(유저는 통제 못함)하며 헤더를 포함하여 모든 데이터를 암호화 함.
      트래픽 분석을 어렵게 만들지만, 중간노드에서 데이터가 평문으로 노출되고, 다양한 보안 서비스를 제공하지 못함.
      또한 모든 노드가 비싼 암호화 장비를 갖추어야 함.
  ② 종단간 암호화(End-to-End Encryption): 통신상의 양 끝의 호스트가 암호화를 하고 서로 데이터를 주고 받음.
      어플리케이션 계층에서 암호화가 이루어지며, 목적지는 출발지와 같은 키를 공유하므로 복호화가 가능함.
  * 사용자의 통제 하에 암호화를 하며, 헤더(라우팅 정보)는 암호화 안함. 사용자 인증과 같은 하이-레벨의 보안 서비스를 제공 가능하고
    중간 노드에서도 데이터는 암호문으로 존재한다. 하지만 트래픽 분석에 취약함.

11. 암호기술들
- 대칭키 암호와 비대칭키 암호
  대칭키 방식은 암호화와 복호화에 사용되는 키가 서로 같은 것.
  비대칭키 방식은 암호화와 복호화에 사용되는 키가 서로 다른 것.
- 일방향 해시함수(one-way hash function): 무결성 제공.
- 메시지 인증코드(Message Authentication Code): 무결성, 인증 제공.
  메시지가 생각했던 송신자로부터 온 것을 확인하기 위한 방법으로, 메시지 전송 중 변경되지 않았다는 것과 예상된 송신자로부터 왔다는 것을 확인 함.
- 전자서명: 무결성, 인증, 부인방지 제공. 도장, 서명을 온라인상에서 하는 것.
  Spoofing, 변경, 부인을 방지하기 위한 것.
- 스테가노그래피
  전달하려는 메시지를 mp3나 이미지에 교묘하게 섞어 넣어 은폐하여 전달하는 방법.
- 워터마크
  변조유무확인, 소유권 주장, 사용제한, 불법복제 방지를 위한 것.
  배포자나 판매자 정보를 표시
- Fingerprinting
  디지털 콘텐츠 구매시 구매자 정보를 삽입하여 불법 배포 시 최초 배포자를 추적할 수
  있게 하는 기술.
- DRM(Digital Rights Management): 디지털 미디어의 불법, 비인가 사용을 막기 위한 것.

12. Kerchhoff 원리
- 키를 제외한 시스템의 다른 모든 내용이 알려지더라도 암호체계는 안전해야 한다는 것.
- 클로드 섀넌은 Kerchhoff 원리를 "적은 시스템을 알고 있다 (The enemy knows the system)"라는 말로 표현했는데,
  암호체계는 그 시스템이 적에게 파악되는 것을 가정하고 설계해야한다는 말.

13. 암호분석 방법
- COA(암호문 단독 공격, Ciphertext Only Attack)
  Eve가 암호문을 분석하여 대응되는 평문과 키는 찾는 것. 통계적 성질, 문장의 특성을 추정하여 해독하는 것.
- KPA(기지 평문 공격, Known Plaintext Attack)
  이미 알고 있는 암호문에 대응하는 평문의 정보를 기반으로 다음 메시지를 알아내는 것.     즉, 평문 P에 대응하는 암호문 C를 알고 있는 상태에서 키 K나 다른 평문 P를 추정하여 해독하는 것.
- CPA(선택 평문 공격, Chosen Plaintext Attack)
  평문 P에 대응되는 암호문 C를 알고 있는 상황에서 키 K나 다른 평문 P를 추정하여 해독하는 것.
  KPA와 다른 점은 알고 있는 P와 C의 정보가 CPA에서는 공격자가 선택한 것이고, KPA에서는 우연히 아니면 공개된 것을 이용하는 것이다.
- CCA(선택 암호문 공격, Chosen Ciphertext Attack)
  암호문 C를 선택하면 평문 P를 얻을 수 있는 상황에서 공격하는 것. 즉, 암호문 C를 선택하면 C에 대한 P를 얻어내 암호를 해독 하는 것.

14. 암호 알고리즘의 안전성 평가
- 암호의 안정성의 관점
  ① 공격을 위한 계산 시간이 너무 오래 걸려 현실적으로 공격이 어려운 경우
  ② 계산 능력이 좋은 공격자라도 깨기 어려운 경우. 즉, 암호 해동 비용이 암호화된 정보의 가치를 초과하는 것과, 암호해독 시간이 정보의 유효 기간을 초과하는 것.
- 암호 평가체계
  보통 각 나라마다 독자적으로 암호 평가를 하는데, CC(Common Criteria) 기반 평가기준을   주로 사용함.
  암호모듈 안정성 평가로 많이 사용되는 것이 미국의 NIST가 만든 CMVP(Cryptographic Module Validation Program) 이다.
- 암호 평가 종류
  ① 암호 알고리즘 평가: 알고리즘의 이론적 안정성 평가
  ② 암호모듈평가: 알고리즘을 이용하여 제공되는 암호서비스의 기밀성 기능 모듈, 무결성 기능 모듈의 안정성을 평가. 서비스의 기능을 평가하는 것.
  ③ 정보보호 제품 평가: 암호모듈을 탑재한 제품. CC 이용.
      예: 침입차단시스템, 침입탐지시스템
  ④ 응용시스템 평가: 제품을 상호 연동하여 테스트.
      예: 국가기관망 네트워크 보안성 평가, 등.
- 평가 과정
  ① 응용시스템 평가가 가장 좋지만 평가 기준, 방법, 체계 등을 만드는 것이 어렵기에 암호 알고리즘 평가를 먼저한다.
  ② 알고리즘 이론적 평가 -> 암호모듈을 탐재한 제품을 평가 -> 제품으로 구성된 응용 시스템 평가 수행.

15. CMVP (Cryptographic Module Validation Program, 암호모듈안전성 평가)
- 1995년 미국 NIST와 캐나다 CSE가 개발한 암호 모듈 안전성 검증 프로그램
- ① 암호기술 구현 적합성 평가, ② 암호키 운용 및 관리 평가, ③ 물리적 보안 평가.
- 각 항목에 대한 등급을 설정하여 평가함.


16. 대칭키 암호 사용시 키 분배 문제 해결 방법
- 대칭키 암호 사용시 키 분배 문제가 발생. 키를 안보내면 복호화를 못하고, 키를 보내면 Eve(도청자)가 복호화할 수 있음.
- 해결방법: 키 사전 공유, 키배포 센터(KDC), Diffie-Hellman 키 교환, 공개키 암호 사용

- 키 사전 공유
  안전한 방법으로 키를 미리 건네 주는 것, 하지만 인원이 많아 지면 키의 수도 많아지므로 n명의 사람이 자신 외의 사람과 통신할 경우,
  통신에 사용되는 키의 수가 (n*(n-1))/2이 된다.

- KDC
  ① 키 배포 센터(KDC, key distribution center)라는 신뢰받는 제 3자를 통해 키를 공유하는 것. n명의 사람이 있으면 n개의 키가 KDC 안에 있음.
  ② 과정 (세션키는 오직 한 번만 사용된다.)
     -1. 앨리스가 KDC에 밥과 통신하고 싶다고 요청
     -2. 의사난수 생성기로 세션키(K) 생성(앨리스와 밥 통신을 위한 임시키)
     -3. KDC는 DB에서 KA(앨리스의 키)와 KB(밥의 키)를 가져와 세션키를 각각 암호화
         (), () 해서 앨리스와 밥에게 보냄
     -4. 앨리스와 밥은 각각 자신의 키 KA와 KB로 세션키를 복호화를 함.
         ( )
     -5. 앨리스는 세션키로 메시지를 암호화() 하고 보냄.
     -6. 밥은 세션키를 이용하여 앨리스로부터 온 메시지를 복호화.()
     -7. 앨리스와 밥은 세션키를 삭제함.

- Diffie-Hellman 키 교환 방법
  ① 1976년 디피와 핼먼이 고안.
  ② 최초의 비밀키 교환 프로토콜. 공개키 암호방식의 개념을 사용하여 암호화키를 공유.
  ③ 실제 키를 교환하는 것이 아니라 공유할 키를 만들어내는 것. → Diffie-Hellman key     agreement(키 합의)라고 불리기도 함.
  ④ 유한체상의 이산대수 문제()를 풀기 어렵다는 것을 기반으로 만든 알고리즘
  ⑤ 과정 (p,g는 랜덤 값. 알려져도 관계없음. p는 큰 소수)
     -1. 앨리스가 0<x<p-1 범위의 임의의 x값을 선택하고  를 계산
     -2. 밥이 0<y<p-1 범위의 임의의 y값을 선택하고  를 계산
     -3. 앨리스가 을 밥에게 보냄. (x 값은 안 보내는 것.)
     -4. 밥이 을 밥에게 보냄. (y 값은 안 보내는 것.)
     -5. 앨리스는  계산
     -6. 밥은  계산
     -7. , 여기서 K가 사용될 대칭키가 됨.
  ⑥ g, x, y 세 개로 사용될 키가 만들어지며, g는 모든 사람이 알게되며, x와 y는 앨리스와 밥이 각자 채운다
  ⑦ 문제점1: 이산대수문제가 어려워도 풀리기만 하면 공격가능
  ⑧ 문제점2: 중간자(man-in-the-middle attack) 공격이 가능.
      이유: 인증단계가 없어서. 따라서 디지털서명이나 공개키 인증서 등이 사용되어야 함.

  *  완전 순방향 비밀성(Perfect forward secrecy): 비밀키가 노출되도 그 후 키 분배 과정에서 얻는 세션키의 안전성에 영향을 미칠수 없어야 한다는 성질.
     Diffie-Hellman 방법이 응용하였으며, 새로운 키 정보가 수학적으로 예전 키 정보와 관련이 없어 예전 세션키를 얻어도 새로운 세션키를 예측할 수 없다.

  * 국-대-국 프로토콜(station-to-station protocol)은 Diffie-Hellman 방법을 기반으로 앨리스와 밥 사이의 세션키를 만들 때
    공개키 인증서를 이용한 디지털 서명을 사용하여 중간자 공격을 막음.

- 공개키 암호 방법에 의한 해결
  ① 대칭키 암호는 암호화키와 복호화키가 같지만 공개키 방법은 암호화키와 복호화키가  다른 것.
  ② 수신자는 암호화키를 송신자에게 알려주면, 송신자가 메시지를 암호화키로 암호화해서 수신자에게 보냄.
  ③ 복호화는 복호화키를 가진 수신자만 할 수 있음.


댓글 없음:

댓글 쓰기