보안

컴퓨터 보안[2]

do_hyuk 2023. 12. 12. 02:34

<7장. 보안 시스템 [1]>

보안시스템 이란?

사이버 공격을 탐지하거나 방지하기 위한 시스템

보안 시스템의 분류 [침입 종류대응 방식에 따른 분류]

  1. 방화벽(Firewall) : 침입 차단 시스템
         - 내부 컴퓨터를 외부로부터 보호하기 위한 정책
            이를 수행하는 하드웨어 및 소프트웨어
         
         - 공격자, 인증되지 않은 사용자, 유해정보
            내부 네트워크에 진입하지 못하도록 하는 보호 정책과 보호 장치
  2. 침입 탐지 시스템
  3. 침입 방지 시스템
  4. 가상사설망(VPN)
  5. 네트워크 접근제어 시스템(NAC)
  6. 통합 보안 위협 관리 기술(UTM)

 


  - 트래픽의 종류와 양을 결정
  - 정상적인 사용자 접근 가능하게 해 주고 불법적이고 인증되지

     않은 자는 접근 차단

 

 

방화벽의 구성방식

  1. 패킷 필터링
         OSI 7계층 중 3 계층(네트워크 계층)과 4 계층(트랜스포트 계층)의 패킷을 필터링하여
         내부 네트워크 보안을 설정하는 것
         4계층 - TCP 포트
         3 계층 - IP 주소패킷
         전부 또는 일부를 필터링할 수 있다.

         - [장점]
            1) 반응 속도 빠름
            2) 사용자에게 투명한 서비스 [기밀성, 무결성, 가용성, 접근제어, 인증, 부인방지]
            3) 기존 프로그램과의 연동 유연성

         - [단점]
            1) TCP/IP 헤더는 조작이 쉬워 보안성이 약함
               -> 가짜 헤더를 붙여 공격한다.
            2) 로그인과 인증 방식이 강력하지 못하다.
            3) 트래픽 접속제어 방식과 접속장애 따라 성능에 큰 영향을 받는다.

  2. 서킷 게이트웨이 [5~7 계층]  잘 사용하지 않는다.
          5계층 - 세션
          6 계층 - 표현
          7 계층 - 애플리케이션
          사람이 볼 수 있는 단계이다


  3. 애플리케이션 게이트웨이
          OSI 계층 중 7 계층인 애플리케이션 계층에 방화벽 기능을 수행하도록 한다.
          로그인 정보가 애플리케이션 게이트웨이에 기록되고 제어된다.
          [각 서비스 별로 Proxy Server가 존재할 수 있으므로 Proxy Gateway라고도 한다]

         - [장점]
            1) 외부와 내부 네트워크가 프록시 서버를 통해서만 연결되므로 패킷 필터링보다는 보안 설정이 우수
            2) 강력한 로그인과 감시 기능을 갖는다.

         - [단점]
            1) 일부 서비스의 투명도가 떨어진다.
               -> 새로운 서비스가 왔을 때 새로운 방화벽이 필요하다.
            2) 애플리케이션 계층에서 처리하므로 속도가 떨어진다.
            3) 프록시 서버 사용으로 새로운 서비스에 대한 유연성이 부족하다.
               -> 프록시 서버 필요


  4. 하이브리드 방식
          두 가지 방확벽 유형의 기능을 복합적으로 구성
          사용자의 편의성과 보안성을 충족시킬 수 있도록 원하는 서비스에 따라 선택적으로 보안 정책을 구축 및 관리

         
    - [장점]

            1) 빠른 반응 속도 : 3,4계층(네트워크 계층)
            2) 보안 설정 수준이 높고 변경이 용이 : 7 계층

         - [단점]
            1) 관리가 복잡하다.

 

방화벽의 구축형태

패킷 필터링 및 애플리케이션 게이트웨이를 어떻게 구축하는가?

 

1. 스크리닝 라우터

 

  • 외부에 나가는 패킷을 허용하거나 거부할 수 있고
    내부에 들어오는 패킷을 통과시키거나 거부할 수 있는 네트워크 장비
  • IP 주소(출발지, 목적지)에 의한 필터링
    TCP 포트번호에 의한 필터링

  • TCP 포트번호 확인

 

2. 배스천 호스트

  • 외부와 내부 네트워크를 연결해 주는 통로가 되는 방화벽 호스트
  • 애플리케이션 게이트웨이를 배스천 호스트 방식으로 구축
  • 방화벽 시스템의 가장 중요한 기능을 제공
  • 접근제어 및 응용 시스템 게이트웨이(=애플리케이션 게이트웨이)로서 Proxy Server의 설치, 인증, 로그 담당

 

3. 듀얼 홈 호스트

  • Host를 라우터로 이용
                   | | 듀얼 
  • Host를 Host로 이용

 

  • 두 인터페이스에 필터링 실시
  • 방화벽의 초기 형태
  • 외부/내부 네트워크가 듀얼-홈 호스트에 의해 물리적으로 분리되는 형태
  • 라우터가 없는 듀얼 네트워크 인터페이스

 

4. 스크린 호스트 게이트웨이

  • 패킷 필터링과 배스천 혹은 듀얼-홈 호스트가 결합한 형태
  • 1차로 패킷 필터링
    2차에서는 프록시 서버를 이용, 인증 및 서비스 인증

     - [장점]
        1) 트래픽 2단계로 방어. 안정성과 보안성 우수
        2) 많이 사용되는 방화벽 시스템으로 융통성 우수

     - [단점]
        1) 구축비용이 많이 듬

        2) 라우팅 테이블이 변경이 되면 방어할 수 없다.

 

 

5. 스크린 서브넷 게이트웨이

  • DMZ : 완충지역 -> 오고 가는 신호의 완충 지역
  • 두 개의 스크리닝 라우터와 배스천 호스트를 이용하여 중립적인 비무장지대
  • 기관에서 외부로 공개할 정보 서버 -> 가져갈 수는 없지만 공개하는 서버[익명 FTP 서버]
  • 웹서버 등 기관에서 외부에 공개할 서버를 DMZ에서 운영한다.

 

방화벽의 취약점

1. 터널링 공격 -> 캡슐화

2. 응용 기반 공격 -> 오버플로

 

 

<8장. 보안 시스템 [2]>

침입 탐지 시스템(IDS) : 탐지를 하면 관리자에게 보고

  • 자원의 기밀성, 무결성, 가용성을 저해하는 행위 실시간 탐지하는 시스템
    감지해서 통보함

  • 방화벽(차단 시스템)이 막을 수 없거나 해킹된 경우 IDS가 공격을 탐지
  • 서브넷의 해킹 탐지 기능
  • 내부망에 IDS 설치하여 탐지 가능

내부망

 

 

 

 

 

 

 

- 서브넷의 해킹 탐지 가능

- 내부망에 IDS 설치하여 탐지가능

 

IDS의 구성

1. 모니터링부
- 데이터 소스, 센서 data -> 다른 곳에서 얻은 모든 data [유비쿼터스]
   패킷, 파일, 로그기록

- 정보 수집 단계, 호스트/네트워크로부터 data 수집
- 로그기록, 로그 감사 기록, 패킷 정보


2. 분석 및 조치부

  • 정보 가공 및 축약 단계
  • 분석 및 침입 탐지 단계 
  • 보고 및 조치 단계 -> 운영자, 관리자

3. 관리부

보안정책 관리하는 부서 -> 보안 정책 제공

모니터링부에 대한 관리

분석 및 조치부에 대한 관리

 

- 대규모 IDS를 구성하는 겨우

  1. 통제 및 관리 : 분산된 IDS
  2. 보안 정책 : 중앙 시스템의 관리부에서 분산된 IDS의 관리부에 전달

 

IDS의 모니터링 방법 모니터링에서 하는 역할

1. 응용 기반
    응용 프로그램 모니터링 7단계 -> DB, 웹서버, 방화벽

2. 호스트 기반
    컴퓨터, 7단계 -> 특정 시스템에서 발생하는 정보 수집, 운영체제 감시, 감사 추적

3. 목표 기반
    프로세스, 파일, 패킷 변형 -> 무결성 체크

4. 네트워크 기반 
    3, 4단계 -> 네트워크로부터 정보 수집(스니핑) ->(무차별 모드) 하드웨어적인 장치 필요

5. 통합 기반
    응용, 호스트, 네트워크 기반의 센서(하드웨어적)들을

    조합(구매처 다 다른 것들을 조합 {장비의 호환성} 지켜야 한다.)한 기능

 

IDS의 수집과 분석 방식

수집에서 분석처리부로 넘기는 방식

(모니터링부 -> 분석처리부로 넘기는 방식)

 

1. 일괄처리 : 모았다가 한꺼번에 보내는 것

  • 일정한 시간 단위로 batch 방식에 의해 정보를 수집 및 분석
  • 이상이 있는지를 주기적으로 분석
  • 일주일에 한 번, 야간에만 모니터링
  • 시스템 부하가 적음 [장점]
  • 디스크 저장 공간 많이 소비 [단점]
  • 보안 위협이 낮은 것에 적합

2. 실시간 처리

  • 연속적인 정보 수집과 분석, 보고 기능 제공 -> SNS
  • 공격 방어에 빠른 응답을 발생시킴 ->호출기
    -> 공격에 대하여 다양한 방법으로 실시간 경고 기능 -> 이메일

 

IDS의 분석 방법

1. 시그니처 분석

  • 알려진 공격, 시스템 오용과 관련된 것을 규정한 패턴과 일치하는지 여부
  • 벤더가 공급하는 알려진 DB 공격 패턴
  • 고객에 의해 명시된 시그니처 추가될 수 있음
  • 벤더는 주기적으로 시그니처 DB의 업데이트 제공

2. 통계적 분석

  • 정상적인 패턴으로부터 그 편차를 찾아내는 것
  • 프로파일은 시스템의 정상적인 사용에 대한 다양한 속성을 판정하여 생성
  • 관찰된 값이 정상적인 범위에 속하지 않을 경우 침입 가능성 신호를 발생시킨다.

3. 무결성 분석 : 해시코드 확인

  • 파일이나 객체(data, 프로세스, 로그기록, 패킷)의 어떤 측면이 변경되었는지
  • 해시 알고리즘 같은 강력한 암호기술 사용

 

IDS의 분류

1. 침입 모델 기반 분류

  • 비정상 탐지 시스템 : 통계적 분석
  • 오용(misuse) 탐지 시스템 : 시그니처 분석(알려져 있는 것과 다른 것)

2. 데이터 소스 기반 분류

  • 호스트 기반 침입 탐지 시스템 (HIDS)
  • 네트워크 기반 침입 탐지 시스템 (NIDS)
  • 하이브리드 기반 침입 탐지 시스템

 

HIDS

- 호스트 상에서 발생하는 이벤트를 통해 침입을 탐지

- 여러 호스트로부터 수집된 감시자료를 이용할 경우 다중 호스트 기반

 

- [장점]

  1. 정확한 탐지 가능
  2. 다양한 대응책 수행
  3. 암호화 및 스위칭 환경에 적합
  4. 추가적 하드웨어 필요 없음

- [단점]

  1. 다양한 OS 지원
  2. 시스템에 추가적인 부하
  3. 구현이 용이하지 않다.

NIDS

- 네트워크 패킷 분석하여 침입 탐지(패킷 분석)

- 시그니처 기반의 운용 탐지가 일반적이나 통계적 분석, 기계학습(반복 학습) -> 딥러닝(병렬처리)
   같은 것들의 기반에서도 비정상 탐지 연구도 하고 있다.

 

- [장점]

  1. 초기 구축 비용 저렴

- NIDS의 설치 위치

  1. 라우터 앞
  2. 라우터 뒤
  3. 방화벽 뒤
  4. 내부 네트워크
  5. DMZ(subnet)

 

IDS의 개발 동향

- 비정상적 탐지 기법 자체가 가질 수 있는 높은 오분류율을 낮추기 위해 노력
  (통계적 분석)

 

- 탐지할 수 있으나 방어할 수 없는 침입 탐지 시스템(IDS)의 한계로 자동화된
   대응이 가능한 침입 방지 시스템에 대한 연구가 활발하다.

 

- 기계학습, 데이터마이닝 등 연구분야에서 지속적으로 연구

 

침입 방지 시스템(IPS)

- 탐지하고 자동으로 대응작업을 수행하여 행위를 중지시키는 보안 솔루션

- 수동적인 침입 탐지 시스템과는 대비되는 능동적 동작

 

IPS의 분류 -> 데이터 기반

  1. 호스트 기반 IPS (HIPS)
  2. 네트워크 기반 IPS (NIPS)

HIPS

- 일반적으로 소프트웨어 제품

- 방화벽 규칙 집합과 정책이나 정상, 비정상 접근에 대한 학습을 통해 응용 프로그램 보호

 

[분류]

커널과 함께 동작하는 방식

커널에 독립적으로 동작하는 방식

 

 

 

 

 

 

NIPS

- 침입 방지 능력과 빠른 대응을 위하여 네트워크 상에 위치한다.

- 세션 기반 탐지를 지원하는 시스템

- 시그니처, 비정상 행위 탐지

   다양한 종류의 방지 방법을 통하여 악의적인 세션을 차단

- 초고속 환경(Gbps) 이상에서도 적용 가능

   성능 개선이 이뤄지고 있다.

 

 

<9장. 이메일 보안>

메일 보안

- 수신자에게 도달할 때까지 여러 호스트를 거친다.

- 엽서와 같이 이메일의 내용이 노출

- 전송 도중에 얼마든지 도청, 변조 가능성이 있다.

- 메일 보안 기술 : PGP(S/MIME)

 

 

PGP

- 인터넷에서 사용되는 전자우편 보안도구

- PGP를 이용한다는 것은 밀폐된 봉투에 넣어서 보낸다는 의미

- 기밀성, 인증, 무결성, 부인방지 등의 보안서비스 지원

- 이메일에 대한 필요한 보안 기능 중 4개 기능 지원

  1. 메시지의 비밀성(기밀성) : RSA, IDEA [공개키 암호 알고리즘]
  2. 메시지의 무결성 보증, 메시지 인증 : RSA
  3. 해시함수에는 MD5 알고리즘
  4. 키 관리 : RSA 알고리즘 이용

 

PGP 보안 서비스

1. 인증

  • 메시지 인증
  • 사용자 인증

                                          해시알고리즘

 

 

 

SHA와 RSA 결합하여

효과적인 인증(전자서명) 기법을 제공

 

 

 

 

[과정]

1) 송신자는 메시지를 생성하고 해시함수인 SHA를 사용해 메시지의 해시코드를 생성한다.

2) 해시코드는 송신자의 개인키를 사용하여 DSA 또는 RSA로 암호화되고, 그 결과는 메시지에 첨부된다.

3) 수신자는 송신자의 공개키와 송신자가 사용한 DSA 또는 RSA를 사용하여 해시코드를 복구한다.

4) 수신자는 메시지에 대한 새로운 해시코드를 생성하고 복호화된 해시코드와 비교한다.

5) 서로 일치하면 인증된 것으로 받아들여진다.

 

 

2. 기밀성

 

 

- 암호화 시간 감소를 위해 대칭키 알고리즘 IDEA 이용

- 안전한 키 분배 RSA 사용(공개키)

- 일회용 비밀키 세션키 사용하여 대칭키 암호의
   안전성을 강화

 

 

[과정]

1) 송신자는 메시지를 암호화하기 위한 세션키로 128비트의 랜덤 수를 생성하고, 메시지는 TDEA, AES 또는 IDEA를 사용해서 암호화된다.

2) 세션키는 수신자의 공개키를 사용하여 EIGamal 또는 RSA로 암호화되고 메시지에 첨부된다.

3) 수신자는 자신의 개인키로 세션키를 복구하고, 복구된 세션키를 사용해 메시지를 복호화한다.

 

 

기밀성과 인증은 일반적으로 두 가지 서비스가 같은 메시지에 이용된다.

 

 

3. 압축(ZIP)

- 파일 저장과 이메일 전송의 두 가지 경우에 공간 절약

- 서명과 암호화 사이에 압축 사용

  1. 서명 후 압축
    -> 압축된 메시지를 서명하게 되면 검증이 요구될 때 메시지를 다시 압축
  2. 암호화 전 압축
    -> 암호학적 보안 강도를 높이기 위함
    -> 압축된 메시지가 원래의 평문보다 더 작은 중복성을 가짐

 

 

4. 전자우편 호환성

- PGP가 사용되면 전송되는 블록의 일부는 암호화되어 8bit(128 문자) 코드 존재

   -> 인증 서비스 사용 : 해시코드가 암호화됨

   -> 기밀성 서비스 사용 : 메시지와 서명문이 암호화됨

- 전자우편 시스템은 아스키 문자 블록만을 사용한다.

                     8bit 코드를 아스키코드로 변환해서 보낸다
- 옥텟 흐름을 인쇄 가능한 아스키문자 흐름으로 변환

    바이트 단위의 통신

    -> 기수 64 변환 (Base 64 변환) 64개의 문자 종류

         : 데이터를 6bit로 나눠서 각 6비트를 하나의 문자로 표현하는 방법

- 입력이 아스키 텍스트로 주어져도 내용에 관계없이 입력 스트림을 기수 64 형식으로 무조건 변환

- 메시지가 서명만 되었을 경우에도 어느 정도의 기밀성 제공

   (암호문의 형식을 갖고 있다.)

 

기능 알고리즘
인증 SHA[메시지 해시코드 생성],
(DSA, RSA)[해시코드 서명에 대한 알고리즘
기밀성 (IDEA, AES, TDEA)[세션키로 메시지 암호화],
(RSA, Elgamal)[세션키를 암호화]
압축 ZIP[압축(메시지 압축)]
전자우편 호환성 Radix-64[ASCII 부호로 변환]

대칭키 -> 속도 빠름, 큰 메시지 유리

공개키 -> 더 안전하게 전송

- PGP는 현대 암호 S/W에 필요한 기능을 거의 갖춤

 

PGP 전송 과정

 

<수신자>

1. Radix-64 -> 고전 형식으로 변환

2. 복호화

3. 압축 풀기

4. 서명확인

5. 메시지 확인

 

 

 

 

PGP 사용되는 키

세션키 TDEA, AES, IDEA 대칭키 송신 메시지 암호화, 수신 메시지 복호화
한번 사용하고 랜덤하게 생성 -> 세션키 특징
공개키 RSA 공개키 메시지와 함께 전송함
세션키 암호화, 수신한 전자서명 확인
개인키 RSA 공개키 전자서명 생성, 암호화된 세션키 복호화
비밀키(암호구문 형태로 사용) TDEA,AES,IDEA 대칭키 키링에 저장할 개인키 암호화
키링 저장, 암호화된 개인키 복호화

키 링 : 여러 개의  공개된 키

 

S/MIME

이메일의 도청이나 변조에 대한 문제 해결
1. PGP: 기밀성, 인증, 압축, 전자우편의 호환성 

2. S/MIME
1) SMTP(SimpleMail TransferProtocol):text형식, radix64 

- 제약조건이 많았다.
- 실행파일, 이진파일 보낼 수 없음
- 8bit 코드(2byte 문자)를 보낼 수 없음
- 특정 크기 전송 불가
    -> 이러한 제약사항 개선 위해 MIME 제정


2) MIME(Multipurpose Internet Mail Extension): 보안을 강화한 것
3) S/MIME(Secure/ Multipurpose Internet Mail Extension): 개선하기 위해서
- 네트워크를 통해 주고받는 메시지에 대해 송수신자에게 전자우편 보안서비스 제공

- MIME 객체를 전송할 수 있는 모든 프로토콜에서 보안 서비스 이용
- S/MIME의 목표: 강력한 암호화, 전자서명, 사용의 용이성, 융통성, 상호운용

 

S/MIME의 보안 서비스

암호화 한 번 할 때마다 발생되는 키 : 세션키

- 암호화 한번 할 때마 다발 생된 키: 세션키
- 메시지 암호화(대칭키) : DES -> AES-128, AES-256

- 전자서명 : RSA, ECDSA
- 세션키 분배: RSA, ECDH
- 해시함수: SHA-256, SHA-512 

 

알고리즘 측면에서 S/MIME의 보안 특성

1. 서명된 영수증
- 영수증에 서명
- 받은 적 없다는 수신 부인방지
- 송수신 부인할 수 없게 제삼자에게 확인시켜 주는 것
- 송신자의 전자서명된 메시지를 수신한 후 수신자의 서명을 추가하여 수신자 측이 메시지를 수신하였다는 사실을 제 3자에게

   증명할 수 있도록 한다. (등기받을 때 서명하는)


2. 보안 레이블
- 캡슐화로 보호되는 내용의 기밀성에 관한 보안정보의 집합
- 사용자에게 원본 메시지의 접근 권한을 부여하기 위하여 사용


3. 보안 메일리스트
-복수의 수신자에게 메시지를 전송할 경우, 각 수신자의 공개키 사용을 포함하여 MLA(Mailing List Agent) 서비스를

  사용함으로써 많은 양의 수신자별 처리가 가능하다

 

S/MIME의 메시지 구성

1. 봉인(암호화)된 data
- 암호화된 콘텐츠 타입과 수신자들을 위한 암호화된 콘텐츠 암호키로 구성

- MIME 메시지를 암호화된 data를 의미->기밀성 유지


2. 서명된 data
- base 64로 복호화


3. 클리어서명 data
-전자서명만 base 64로 부호화


4. 서명 및 봉인 data
- 암호문은 서명될 수 있다.
- 서명된 data나 클리어서명 data는 암호화될 수 있다.

<10장. 웹 보안 및 모바일 보안>

웹 서비스

  • 웹 서버와 웹 클라이언트 사이에서 HTTP를 통해 제공되는 서비스
    ex) 인터넷 검색, 학교 홈페이지에서의 수강신청
  • 구성 요소 : 웹 클라이언트, 네트워크(HTTP), 웹 서버, 웹 애플리케이션, 데이터베이스
  • 웹 애플리케이션 필요
  • 다양한 웹 애플리케이션 탑재 -> 다양한 웹 서비스
  • 웹 애플리케이션 : 데이터베이스 활용하여 다양한 정보 제공, 웹 클라이언트 요청 처리

웹 보안

  • 웹 서비스상에 발생할 수 있는 다양한 공격으로부터 웹 서비스를 지키기 위한 것
  • HTTP를 이용하는 네트워크 부분은 네트워크 보안기법인 SSL/TLS를 적용함으로써 해결 가능함
  • 나머지 구성요소에 대해서는 응용 계층에서의 보안기법이 필요함

위협 요소

1. SQL injection

  • 데이터베이스 쿼리인 SQL문에 추가적인 SQL을 삽입(injection) 함으로써 악의적인 행위를 가능하게 하는 공격
    ex) 로그인 페이지에서 ID와 비밀번호 부분에 SQL문을 넣어 인증 우회
  • [방어방법]
    1) 사용자의 입력값을 미리 검사함
    2) 프로그램을 만들 때 SQL문을 매개변수화된 쿼리 형태로 작성함
    3) 웹 애플리케이션의 데이터베이스에 대한 접근권한을 최소화함

 

2. XSS(cross-Site Scripting)

  • 이메일이나 웹 페이지에 추가적인 악성 스크립트를 포함시켜 웹 클라이언트가 이메일이나 웹 페이지를 열면
    자동으로 악성 스크립트가 실행되게 하는 공격
  • 이를 통해 궁극적으로 사용자의 정보가 공격자 사이트로 넘어감
  • 저장된 XXS : 공격자가 악성 스크립트를 특정 게시판에 등록함 ->  사용자가 해당 게시판에 접속하여 이 게시물을 열면,
    그 안에 포함되어 있던 악성 스크립트가 실행됨
  • 반사된 XSS : 공격자가 악성 스크립트가 포함된 URL 링크를 사용자에게 이메일로 보냄
    (이 URL사이트는 신뢰받는 정상적인 사이트임) -> 이메일을 수신한 사용자가 이 링크를 누르면
    해당 사이트에서 오류로 처리되면서 악성 스크립트가 실행됨
  • XSS 방어방법 : 사용자의 입력값과 사용자로 보낼 출력값을 미리 검사함

 

3. 접근제어 실패

  • 사용자와 자원에 대한 접근제어가 완벽하지 못한 경우, 이를 통한 공격
    ex) 링크를 만들어 두지 않은 관리자 페이지, URL에 사용자 ID를 포함하는 경우
  • 접근제어에 대한 공격 방어 : 올바른 접근제어를 적용함
    ex) 관리자 페이지 자체에 접근권한을 설정하여 오직 관리자만 해당 페이지를 열 수 있도록해야하 함

4. 웹 서버 공격

  • 웹 서버에서 제공하는 테스트 기능, 디렉터리 목록을 보여주는 기능 등이 일반 사용자에게 노출되지 않도록 관리가 필요함
  • 주기적으로 웹 서버의 취약점 점검 및 보안 패치 적용

 

모바일 환경

  • 스마트폰, 스마트패드, 무선 LAN 등의 발달로 일반화됨
  • LAN 환경 : Wi-Fi를 통한 무선 네트워크
  • WAN 환경 : 5G, LTE, 3G, 와이브로 등을 통한 무선 네트워크
  • 모바일 장치와 액세스 포인트가 전파로 데이터를 주고받음
    액세스 포인트 : 통신회사의 기지국, Wi-Fi 핫스폿 등
  • 무선 네트워크를 이용하기 위해서는 최초에 네트워크에 접속하는 과정이 필요함 

 

모바일 보안

  • 모바일 환경은 편의성이 좋으나 보안이 취약함 (전파에 대한 도청)
  • 모바일 환경에서 고려해야 할 보안 문제
    1) 인증 및 접근제어
         : 접속을 요청/허락하는 상대에 대한 인증, 접속이 인가된 단말과 비인가된 단말에 대한 접근 제어 등
    2) 데이터 보호
         : 송수신하는 데이터에 대한 도청 여부, 송수신하는 데이터의 무결성 확인, 암호화된 데이터를 송수신하는 경우 암호화 키 관리 등

모바일 보안 기법

IEEE 802.11에서 무선 LAN을 정의하며, 무선 LAN 보안도 포함됨

이후 802.11i에서 강화된 무선 LAN보안을 별도로 제시함

 

1. WEP(Wired Equivalent Privacy)
- 802.11에서 제시한 무선 LAN 환경에서 기밀성을 제공하기 위한 알고리즘
- 현재는 취약성이 드러나 사용하지 않음
- 스트림 암호 방식 : 내부적으로 RC4 알고리즘 이용
- 키 분배 메커니즘 없음 : 액세스 포인트에 미리 설정해 둔 키를 사용자가 직접 모바일 장치에도 설정하여 사용함
- 동일한 액세스 포인트에 접속하는 모든 모바일 장치는 동일한 암호키를 사용하는 방식


2. RSN(Robust Security Network)


- IEEE 802.11i 표준
- 보안 서비스 : 인증, 키 관리, 키 교환, 기밀성, 무결성 등

  • TKIP(Temporal Key Integrity Protocol)
    - 임시키 무결성 프로토콜
    - WEP로 구현된 하드웨어의 펌웨어 업데이트를 위해 사용됨
    - 256비트의 임시키 이용, 64비트 두 개는 메시지 무결성 코드(MIC) 생성에 이용함, 나머지 128비트는 기밀성을 위해 이용함
    - 임시키는 데이터 프레임마다 변하도록 하여 보안성을 강화함

  • CCMP(CTR mod with CBC-MAC Protocol)
    - 802.11i의 기본 프로토콜
    - 기밀성 : 카운터(CTR) 모드와 AES 알고리즘 이용
    - 무결성 : CBC-MAC 이용
    - 128비트 키 이용 : 기밀성과 무결성 양쪽에 동일한 키를 사용함

  • 802.1X
    - 포트 기반 네트워크 접근제어(NAC) 표준
    - 모바일 장치와 액세스 포인트 외에 인증 서버가 필요함
    - [동작]
       : 모바일 장치가 무선 LAN에 접근을 요청하면, 액세스 포인트는 인증 서버에 인증을 요청함
       -> 이때 802.1X는 모바일 장치와 인증 서버 사이에 인증과 관련된 정보만 오가도록 제한함
       -> 인증을 통과하면 접근제어 수준에 맞는 데이터가 오가도록 함

  • EAP(Extensible Authentication Protocol)
    - 확장형 인증 프레임워크
    - 모바일 장치가 인증을 받을 때 사용되는 프로토콜
    - 인증이 끝나면 모바일 장치와 액세스 포인트는 공통의 마스터 키(PMK)를 공유함

 

3. WPA, WPA2, WPA3

  1. WPA(Wi-Fi Protected Access)
    - 무선 LAN 보안 기능을 제공하는 장비를 인증하기 위해 정의된 규격
    - 2003년도에 소개됨
  2. WPA2
    - 2004년도에 소개된 이후 802.11i가 완료된 2006년도부터 본격적으로 적용됨
    - WPA2-Enterprise : 인증 서버 이용
    - WPA2-Personal : 인증 서버 없이 미리 키를 나누어(PSK) 사용함

  3. WPA3
    - 2018년도에 소개됨
    - 무선 LAN 보안 설정을 단순화하면서도 보안은 강화함

<11장. 디지털 포렌식>

디지털 포렌식

- 컴퓨터를 포함한 모든 디지털 매체의 분석과 복구를 위한 과학수사의 한 분야

- 각종 디지털 자료가 법적 효력을 갖도록 하는 과학적, 논리적, 절차와 접근방법을 이용함

 

디지털 포렌식 수행과정

1. 사전준비

  • 사건 발전 이전
  • 조사자의 기본 훈련 과정
  • 디지털 데이터
    1) 휘발성 데이터 : 최소한의 변경을 가져오는 방식으로 수집
    2) 비휘발성 데이터 : 쓰기 방지 장치 부착, 복제본 작성(이미징)

2. 증거수집

  • 사건현장에서 증거 수집
  • 디지털 기기 파악
  • 네트워크 구성 파악
  • 원본 그대로 수집

3. 포장 및 이송

  • 수집된 증거를 안전하게 분석실로 이송
  • 충격방지 안전조치
  • 인수인계 시 압수물 확인, 분류목록 작성
  • 제조일자, 고유번호, 모델, 식별 표식 부착

4. 조사분석

  • 확보된 증거를 분류하고 조사
  • 데이터 추출, 분류
  • 실행 프로그램 추적 : 레지스트리 분석, 로그 분석

5. 정밀검토

  • 사건을 재구성하여 분석결과를 재검토한다.
  • 도출된 결과 검토
  • 검토는 분석에 참가하지 않은 사람으로부터 재검토

6. 보고서 작성

  • 결과를 정리한다.
  • 법정제출용
  • 객관적으로 서술하고 사실관계만 명시

 

디지털 증거

  • 법정에서 신뢰할 수 있는 것
  • 증거가치가 있는 정보
  • 증거로 판단

1) 기록 방식에 대한 지식 필요

2) 저장원리, 검색원리, 동작원리
3) 증거가 무엇인지, 어떤 프로그램으로 생성되었는지

  1. 속성에 따른 분류
    1) 내용물 : 사건을 직접적으로 증명해 주는 증거
    2) 특성정보 : 메타데이터(증거의 부가적 정보) 정보
  2. 생성 주체에 따른 분류
    1) 컴퓨터 저장 증거 : 사람이 직접 저장한 것
    2) 컴퓨터 생성 증거 : 컴퓨터가 스스로 만든 것, 
                                     자동화 프로세스에 의하여 생성된 것, 일반적인 특성 정보(ex. 사진 찍으면 날짜 찍힌 것)

 

디지털 증거의 특성

  1. 비가시성 : 0과 1의 조합인 디지털 형태이므로 육안으로 식별 불가
  2. 변조 가능성 : 의도적인 변조 쉽고 변조 사실 찾기 어려운 취약성
  3. 복제 용이성 : 쉽게 복제 가능하고 원본과 복제본 구별 쉽지 않음
  4. 대규모성 : 데이터의 양 방대
  5. 휘발성 : 작업하다가 전원 꺼지면 내용이 사라짐
  6. 초국경성 : 인터넷 덕분에 국경을 초월할 수 있음

디지털 증거의 법적 허용성 요건

- 디지털 증거에 대한 문제제기 형태 -> 기록변경, 조작, 손상에 대한 의문

- 효력을 갖기 위한 속성에는 인증성, 무결성, 신뢰성, 원본성이 있어야 함

 

안티포렌식

범죄자가 증거를 차단하려는 활동

1. 데이터 완전 삭제

2. 데이터 변조

3. 데이터 암호화

 

<12장. 대칭키 암호>

대칭키 : 암호화키와 복호화 키 같은 것

       비밀키, 단일키, 관용 암호(관용적으로 사용)

 

블록암호

 

 

평문을 고정된 크기의 블록으로 나누어 각 블록마다 암호화 과정을

수행하여 블록 단위로 암호문을 얻는 대칭키 알고리즘

 

출력 블록의 각 비트는 입력 블록과 키의 모든 비트에 영향을 받는다.

 

 

 

 

 

 

블록 암호 알고리즘의 구조

주로 단순한 함수를 반복적으로 적용함으로써 암호학적으로 강한 함수를 만든다.

  • 라운드 함수 : 반복되는 함수
  • 라운드 키 : 라운드 함수에 작용하는 키
  • 키 스케줄 : 키를 입력하여 라운드를 발생시키는 과정

1. 파이스텔 구조

  • 하나의 입력 블록을 분할하여 좌우 두 개의 블록으로 구분 후 짝수번의 라운드를 진행
  • 각 라운드의 출력 블록이 다음 라운드의 입력 블록이 됨

라운드 과정

 

[파이스텔 구조의 특징]

- 라운드 함수와 관계없이 역변환이 가능

- 역함수를 이용하지 않고 복호화 가능

- 암/복호화 과정이 동일하다

- 두 번의 수행으로 블록 간의 완전한 확산이 이루어짐

- DES, SEED 등 블록 암호에 사용

 

 

[매우 중요!!!!]

2. SPN 구조 -> 치환(S) 전치(P) 네트워크(N) 구조

  • 하나의 입력 블록을 여러 개의 소블록으로 나눈 후 라운드 진행
  • 각 라운드의 출력 블록이 다음 라운드의 입력 블록이 된다.
  • 각 소블록 s-box로 입력하여 치환 후 s-box의 출력을 p-box로 전치한다.



 

[SPN 구조의 특징]

- 라운드 함수가 역변환이 가능(= 역함수가 존재) 해야 한다

- 더 많은 병렬성을 제공
   [s-box로 나누는 것을 병렬적으로 처리해서 속도가 빠름]

- s-box와 p-box는 하드웨어적으로 만들 수 있어 속도가 빠름

- AES, ARIA 등 블록 암호에 사용

 

 

 

 

 

 

 

 

블록 암호의 사용 모드

block을 어떻게 이용하여 어떤 형태로 암호 알고리즘이 만들어지는지

 

- 전자북코드(ECB) 모드

  •  가장 단순한 방식으로 각 블록을 독립적으로 암호화한다.
  • 암/복호화 시병렬처리가 가능하며, 하나의 암호문에 오류가 발생해도 다른 블록에 영향을 미치지 않는다.
  • 동일한 평문 블록은 동일한 암호문을 생성하기 때문에 패턴 분석이 가능하여 안전성에서 바람직하지 않다.
    그렇기에 잘 사용하지 않는다.

 

- 암호 블록 연결(CBC) 모드

  • 생성한 암호문 블록이 다음 평문 블록에 영향을 미치게 암호화함
  • 동일한 평문 블록이어도 서로 다른 암호문을 생성함
  • 암호화는 병렬처리가 불가능하나 복호화는 가능함
  • 하나의 암호문에 오류가 발생해도 그다음 평문 외의 다른 평문에는 영향이 없음
  • 암호화 시 평문 블록에 오류가 발생하면, 그다음의 모든 암호문이 영향을 받음
    -> 메시지 인증에 사용됨

 

- 암호 피드백(CFB) 모드

  • 초깃값 IV를 암호화한 값과 평문 블록을 XOR 하여 암호문 블록을 생성하고,
    그 암호문을 초깃값으로 하여 다시 암호화한 값과 평문 블록을 XOR하여 암호문 블록을 반복하여 생성하는 방식이다.
  • 평문 블록의 내용이 동일하더라도 서로 다른 암호문을 생성하게 된다.
  • 암호화에서는 특정 입력이 이후로 영향을 미치기 때문에 메시지 인증에 사용된다.
    그리고 복호화 함수가 따로 필요하지 않다.

- 출력 피드백(OFB) 모드

  • 초깃값 IV를 암호화하고 그 값을 다시 암호화하는 과정을 반복함으로써 생성된 수열과
    평문 수열을 XOR 하여 암호문을 생성하는 방식이다.
  • 주로 블록 암호 시스템을 스트림 암호 시스템처럼 사용하고자 할 때 이용된다.
  • 평문 블록의 내용이 동일하더라도 서로 다른 암호문을 생성하게 된다.
  • 암호문의 오류는 복호화 과정에서 대응되는 한 블록에만 영향을 미치므로, 영상이나 음성 같은 디지털 신호화된
    아날로그 신호에 많이 사용된다.
  • 복호화 함수가 따로 필요하지 않다.

- 카운터(CTR) 모드

  • i 번째 블록은 초깃값(IV) + (i-1)을 암호화한 값과 평문 블록을 XOR하여 암호화함
  • 암/복호화 시 병렬처리가 가능함
  • 오류의 확산이 일어나지 않음
  • ECB 모드처럼 간단하지만 안전성이 보장됨

 

스트림 암호

 

 

평문과 같은 길이의 키 스트림을 생성하여 평문과 키를 비트 단위로

XOR하여 암호문을 얻는 대칭키 암호 방식

 

 

 

 

 

 

 

 

 

스트림 암호의 키 스트림 생성

- 키 스트림

  1. 임의에 길이의 평문에 대해 항상 생성 가능
  2. 규칙성이 없어 예측이 불가능한 랜덤수열이 가장 안전
  3. 의사 랜덤(pseudorandom = 공식에 의한 랜덤 넘버) 수열 : 자동화된 생성이 가능하면서 예측이 어려운 수열
    (규칙성이 없어서 예측이 어려움)

- LFSR(Linear Feedback Shift Register)

  1. m 비트의 초깃값을이용하여 최대 2^m - 1 비트 길이를 가지는 키 스트림을 생성한다. 
  2. 직전 m개의 값을 선형결합하여 새로운 값을 얻는다.
  3. 직전 m개로 하나의 새로운 비트를 생성

 

m=3 -> 주기성
2^3-1 = 8-1 = 7
7개는 다르게 나오고 8번째 같은 비트 생성
선형결합 m=8 -> 1*0*1*1... 비선형결합

 

 

 

대칭키 암호 알고리즘

- DES(Data Encryption Standard)

   -> TDEA(Triple Data Encryption Algorithm)

   -> AES(Advanced Encryption Standard)

 

1) DES

  • AES가 나오기 전까지 가장 널리 사용된 암호 알고리즘
  • 64비트의 평문을 64비트의 암호문으로 만드는 블록 암호 알고리즘
  • 56비트의 키를 사용함
  • 파이스텔 구조

2) TDEA : DES를 3번 반복한 것

  • DES의 짧은 키로 인한 안전성 문제를 해결
  • DES보다 3배 느리다.
  • 세 개의 키로 DES 3회 반복
  • 실제 동작에서는 두 개의 키 사용
  • 키 K1로 암호화 -> 키 K2로 복호화 -> 키 K1로 암호화

 

3) AES

  • 현재 사용하고 있는 대칭키 알고리즘
  • 치환, 전치를 혼합한 알고리즘
  • SPN 구조 사용
  • 복호화에는 역함수가 존재해야 한다.

 

<13장. 공개키 암호>

대칭키 암호 vs 공개키 암호

1. 대칭키 암호 : 키 1개

  • 송신자와 수신자가 키 1개를 갖고 암호화와 복호화를 한다.
  • 파이스텔 구조 : 지금은 사용하지 않는다. 16번 짝수번 반복한다. 짝수번을 해야 완전히 암호화가 된다.
  • SPN 구조 : 대칭키 암호는 SPN 구조가 더 안전하다
    S-box : 치환, P-box : 전치 / 반복적으로 사용하는 어려운 구조를 갖고 있다.

 

2. 공개키 암호 : 키 2개

  • 암호화 키, 복호화 키 2개 존재
  • 송신자 -> 수신자
    송신자는 수신자의 공개키로 암호화 / 수신자는 자신의 개인키(비밀키)로 복호화
  • 암호화와 복호화에 두 개의 서로 다른 키를 사용하는 암호 방식

 

- 공개키와 개인키는 언제나 한 쌍으로 존재

- 공개키 : 누구나 공개키를 이용할 수 있도록 공개한다.

- 개인키 : 오직 자신만 이용하도록 아무에게도 공개하지 않는다.

 

 

기반 문제

- 공개키 암호 알고리즘은 수학적으로 어려운 문제들에 기반을 둔다.

- 순방향 : 쉽다, 계산시간이 짧다.

- 역방향 : 계산시간이 길어지고 어렵다, 역함수의 존재성을 확인해야 한다.

                [역함수가 존재할 수 도 있고, 계산이 어려울 수 있다.]

- 일방향 함수(one-way function)가 존재한다.

 

[다양한 일방향 함수]

1. 소인수분해 문제

어떤 정수의 곱은 빠른 시간에 구할 수 있지만 임의에 양의 정수의 소인수분해는 매우 어렵다.

[해결방법]

(1) 소수로 나눠본다.

(2) 자신보다 큰 수는 사용 불가

- RSA : 소인수분해 문제를 기반으로 하는 암호 알고리즘, 안전한 암호 사용을 위해 키의 크기는 2,048 bits 사용

 

2. 이산대수 문제

양의 정수 n, a, x에 대하여 a^x(mod n)은 빠르게 구할 수 있지만

양의 정수 n, a, y에 대하여 y=a^x(mod n)인 x를 구하는 것은 매우 어렵다.
시간이 오래 걸리고 어렵다.

- 알고리즘 : EIGamal, DSA [전자서명], KCDSA [한국]

- 안전한 암호를 위하여 키의 크기는 2,048 bits 사용

 

3. 타원곡선(3차 방정식) 이산대수 문제

타원곡선상의 점과 타원곡선에서 정의되는 덧셈연산을 이용하여 정의되는 이산대수 문제라고 정의한다.

정수에서 이산대수 문제는 일방향 함수의 성질을 갖는다.

- 일방향 : 한쪽은 쉽고 역방향은 어렵다.

   -> 역함수가 존재하는데 어렵거나, 존재하지 않는다.

- 알고리즘 : ECDSA, EC-KCDSA

- 안전한 암호를 사용하기 위해 224 bits 사용

타원곡선 이산대수 방법이 복잡하기 때문에 키를 작게 해도 안전하다.

공개키를 공개하기 때문에 복호화를 어렵게 하기 위해 어려운 방법을 사용한다.

 

공개키 암호 알고리즘

1. RSA 암호 알고리즘 - 1978

가장 널리 사용되는 공개키 암호

(cf. 대칭키 : DES, TDEA, AES)

- 소인수분해의 어려움에 기반 두고 있음

   -> 자릿수가 비슷하지만 두 수의 차가 큰 서로 다른 두 소수 p, q

 

2. EIGamal 암호 알고리즘 - 1985

유한체상에서의 이산대수 기반

-> 수신자의 공개키 y를 가지고 개인키 x를 계산하는 것은 이산대수 문제

공개키를 안다 하더라도 x를 알아내기 어렵다. x를 알 수 없거나

[y = a^x(mod n)]

 

3. 타원곡선 암호 알고리즘(ECC) - 1985

- EIGamal보다 더 복잡하게 만들었음

- 유한체상에서 정의된 타원곡선군에서의 이산대수 문제 기반

- RSA, EIGamal과 동일한 수준의 보안성을 제공하면서 키의 길이는 짧음(224 bits)

- 타원곡선과 이산대수를 같이 쓰기 때문에 키의 길이가 짧아도 안전하다.

 

 

<14장. 해시함수 및 전자서명>

해시함수

 

해시코드

  • 임의의 평문 길이에 상관없이 항상 일정
  • 일방향 함수 : 역방향은 어렵기 때문
  • 임의의 데이터에 대한 해시코드는 쉽게 생성한다(순방향 계산)
  • 해시코드에 대응되는 데이터를 거꾸로 찾는 것은 어렵다.

해시함수의 응용 분야

  • 메시지 인증 : HMAC
  • 전자서명 : MAC + 사용자 인증
  • 의사 난수 생성기 : 스트림 암호에서 키 생성 의사 난수 사용 -> land()
  • 의사 난수 수식에 의한 난수, 초깃값이 같으면 같은 난수 발생

해시함수의 요구 조건

  1. 임의의 크기의 입력에 적용 가능
  2. 항상 일정한 크기의 해시코드 출력
  3. 주어진 입력 데이터에 대하여 해시코드 계산이 쉬울 것
  4. 약한 일방향성 : 해시함수 H와 해시코드 h가 주어졌을 때  h = H(D')를 만족하는 입력 데이터 D를 구하는 것이 계산상 실행 불가능
  5. 강한 일방향성 : H와 입력데이터 D가 주어졌을 때 H(D)=H(D')를 만족하는 다른 입력 데이터 D'를 구하는 것이 계산상 실행 불가능
  6. 충돌 저항성 : H가 주어졌을 때 H(D) = H(D')를 만족하는 두 입력 데이터 D와 D'를 구하는 것이 계산상 실행 불가능

 

해시 알고리즘의 종류

  1. 블록 암호 알고리즘에 기초한 해시 알고리즘
    : 블록 암호를 해시 암호화에 사용(속도가 느림)
  2. 모듈러 연산을 이용한 해시 알고리즘
    : 속도가 느려 사용 영역에 제한이 있음 [ D mod P 나머지가 나오는데 P보다 작은 결과물을 해시코드 ]
  3. 전용 해시 알고리즘
    : 대부분의 응용에서 이용됨

- MD4 : 1990, 대부분의 해시 전용 알고리즘의 기본 모델, 128 bits

- MD5 : MD4보다 안전성을 높이고, 속도는 더 느려짐, 널리 이용되었으나

              충돌 저항성과 일방향성 문제가 있음이 알려져 사용하지 말 것을 권고
              H(D) = H(D') -> D와 D'를 찾은 것

- SHA-1 (Secure Hash Algorithm) : 해시코드 160 bits

   -> 해시 알고리즘의 표준

   -> 2^64 bits보다 작은 것들 모두 가능

- SHA-2, SHA-3 : 표준 해시 알고리즘으로 추가

- SHA-224, SHA-256, SHA-384, SHA-512 존재

 

 

전자서명

  • 메시지를 보낸 사람의 신원이 진짜임을 증명
  • 전달된 메시지의 원래 내용이 변조되지 않았음을 보증
  • 수기서명과 동일한 효력
  • 메시지의 암호화 여부와 상관없이 사용됨

 

전자서명의 부가적 이득

  • 쉽게 전송
  • 쉽게 부인할 수 없다.
  • 다른 사람이 흉내 낼 수 없다.
  • 타임스탬프가 자동으로 유지

전자서명 사용 예

  • 인증서, 공인인증서
  • 공인인증서 : 발급기관의 전자서명, 해당 인증서가 진짜임을 누구든지 확인 가능

전자서명의 작동 원리

-> 전자서명 : 해시함수, 공개키 암호 사용

1. 서명 작업

   - 개인키(공개키) 이용 : 오직 자신만 서명

   - 해시함수 이용 : 메시지에 의존하지만 작은 크기의 서명을 생성

 

2. 검증 작업

     - 공개키 이용 : 누구나 서명을 검증할 수 있도록 공개키 이용

 

전자서명 기법의 종류

1. EIGamal 전자서명 기법

  • 이산대수 기반 공개키 암호 방식
  • 이산대수 기반 : 모듈러 연산

2. Schnorr(슈노어) 전자서명 기법

  • 이산대수 기반 공개키 암호 방식

3. 전자서명표준(DSS, Digital Signature Standard)

  1. DSA : ElGamal, Schnorr 기법 기반, 전자서명의 표준
  2. ECDSA : 타원곡선 암호 기반
  3. RSA : 전자서명 알고리즘, 공개키 암호 기반