IT이론 정리노트/IT보안(CISSP)

CISSP IT보안이론 요약: PKI와 암호학 응용

G. Hong 2022. 2. 8. 23:27
728x90
반응형

1.  비대칭 암호화

- 공개키/개인키 쌍을 사용해 복잡한 키 배포시스템의 오버헤드 없이 안전한 통신이 가능함.

 

공개키와 개인키

공개키

  • 자신의 공개키를 통신하기 윈하는 이에게 공개.
  • 제 3자가 소유하더라도 암호체계에 영향이 없음.

개인키

  • 생성한 개인만 소유.
  • 절대 공유해서는 안됨.

 

RSA

  • 창시자의 이름을 따서 명명.
  • 큰 소수를 인수분해 하는 과정의 계산 복잡도와 연관.

- 알고리즘

  1. 2개의 큰 소수 p,q 선택
  2. n = p x q
  3. 다음 조건의 숫자 e를 선택
    • e < n
    • e와 (n-1)(q-1)은 서로소
  4. (ed-1) mod (p-1)(q-1) = 0 인 d를 찾는다
  5. e와 n을 공유키로 배포, d는 개인키

C = Pe mod n

P = Cd mod n

 

엘 가멀

  • 디피-헬만 알고리즘의 수학적 배경을 확장한 알고리즘
  • 장점: 공개적(특허 없음)
  • 단점: 메시지의 길이를 2배로 증폭시킴

 

타원곡선

- 방정식: y2 = x3 + ax + b

  • x, y, a는 실수
  • 타원곡선 그룹 내 두점 P, Q => Q = xP 

 

* 키 길이

RSA1088비트
DSA1024비트
타원곡선160비트

 

2. 해시함수

- 메시지의 내용을 기반으로 고유의 값(메시지 다이제스트)을 생성
 

해시함수 목적

  1. 전체 메시지와 함께 전달되어 메시지 무결성 확인
  2. 디지털 서명 알고리즘 구현에 사용

 

해시함수 기본 요구사항(RSA security)

  1. 입력값의 길이는 제한이 없다
  2. 출력값의 길이는 고정
  3. 어떤 입력에든 쉽게 계산 되어야 함
  4. 일방향 함수여야 한다
  5. 충돌로 부터 자유로워야 한다 (collision free, 같은 해시가 거의 없어야 함)

 

SHA (안전한 해시 알고리즘, FIPS180)

SHA1

  • 512비트 블록 단위로 처리
  • 160비트의 메시지 다이제스트 출력

SHA2

  • SHA-256: 512비트 블록크기, 256비트 메시지 다이제스트
  • SHA-224: 512비트 블록크기, 224비트 메시지 다이제스트
    줄여진 버젼의 SHA-256 해시
  • SHA-512: 1024비트 블록크기, 512비트의 메시지 다이제스트
  • SHA-384: 1024비트 블록크기, 384비트의 메시지 다이제스트
    줄여진 버젼의 SHA-512 해시

 

MD2 (Message Digest 2)

  • 메시지 길이를 16바이트 배수로 만든 뒤, 16바이트 체크섬을 덧붙인 후 128비트 메시지 다이제스트 생성
  • 일방향 함수가 아님이 증명이 되어서 더 이상 사용하지 않음.

 

MD4

  • 메시지 길이를 512비트의 배수보다 64비트 짧게 만들어서 128비트 메시지 다이제스트를 생성
  • 메시지 다이제스트의 충돌이 있어서 사용되지 않음

 

MD5

  • MD4와 동일한 메시지 길이를 처리하고, 동일한 128비트 메시지 다이제스트를 생성
  • MD5가 메시지 무결성 보증을 방해하는 충돌을 유발

 

3. 디지털 서명

목적

  • 정말로 지정된 송신자로 부터 전송 됐다는 것을 수신자에게 보장
  • 전송되는 동안 변조되지 않았음을 수신자에게 보장

 

디지털서명 과정

  1. 해시 알고리즘으로 메시지로 부터 메시지 다이제스트를 생성
  2. 송신자의 개인키로 메시지 다이제스트 부분만 암호화 한다. (비대칭키와의 차이, 비대칭키는 수신자의 공개키로 암호화) 
    이 암호화된 메시지 다이제스트가 디지털 서명이다.
  3. 송신자는 평문 메시지에 디지털 서명을 붙여서 전송한다.
  4. 수신자는 송신자의 공개키로 디지털 서명을 복호화 한다. (비대칭키는 수신자의 개인키로 복호화)
  5. 수신자는 평문 메시지를 해시함수로 메시지 다이제스트를 생성
  6. 두개의 메시지 다이제스트를 비교하여 무결성 검증

 

HMAC (Hashed Message Authentication Code)

  • 부분적인 디지털 서명 구현. 무결성 보장, 부인방지는 없음.
  • 공유된 개인키를 사용.
  • 암호화 되지 않은 메시지 다이제스트와 공개키 기반 디지털 서명의 중간 위치.

 

DSS (디지털 서명 표준, Digital Signature Standard)

  • 연방정부가 선언한 모든 디지털 서명 알고리즘은 SHA-1, SHA-2 해시함수를 사용해야 한다.
  • 승인된 알고리즘
    • FIPS 186-3: DSA
    • ANSI X9.31: RSA 알고리즘
    • ANSI X9.62: 타원곡선 DSA(ECDSA)

 

4. 공개키 기반 (PKI, Public Key Infrastructure)

- 공개키 암호화는 PKI 계층에 의해 이전에 알지 못 했던 양자사이에 통신을 가능하게 하였다.
 

인증서(Certificate)

  • 디지털 인증서 - 통신 참가자에게 정확한 사람 인지를 증명
  • 디지털 서명 - 개인의 공개키로 서명된 복사본

- 인증서가 믿을 수 있는 CA로 부터 서명이 되었음을 확인하여 개인키가 합법적임을 확인 할 수 있다.
 

X.509 표준

  • 만족하는 X.509 버젼
  • 인증서 생성자의 시리얼번호
  • 서명 알고리즘 식별자
  • 발급자 이름
  • 유효기간
  • 주체자의 이름
  • 주체자의 공개키

=> 공식적인 표준은 아니지만 MS와 모질라에서 SSL 표준으로 사용 중
 

인증기관 (CA, Certificate Authority)

  • 중립기관으로 인증서에 대한 공증서비스를 제공
  • 목록: VeriSign, Thawte, Geotrust, Comodo Limited, Starfield Technologies, GoDaddy, DigiCert, Network Solutions LCC, Entrust
  • RA (Registration Authority): 디지털인증서 발급 전에 사용자들의 신원을 확인 하는 것을 담당해 CA를 돕는다. 

 

인증서 생성과 소멸

등록

  • 자신의 신원을 CA에 확인시키는 과정
  • 신원 확인 후 자신의 공개키를 CA에 제공
  • CA가 공개키 복사본이 담긴 X.509 인증서를 생성
  • CA는 CA 개인키로 인증서에 디지털 서명을 하고, 서명된 인증서의 복사본을 발급.
  • 배포

검증

  • 디지털인증서를 받았을 때, CA의 공개키로 CA의 서명을 확인하여 검증
  • 해당 인증서가 인증서 폐기목록(CRL)에 있지 않음을 확인

*공개키가 진본임을 확인하는 조건

  • CA의 디지털서명이 진짜다
  • CA를 신뢰한다
  • 인증서는 CRL에 등록되지 않았다
  • 인증서가 신뢰하는 자료를 포함한다(이름,주소,전화번호 등)

폐기-폐기이유

  • 인증서가 손상됨(개인키 유출)
  • 인증서가 실수로 발급됨
  • 인증서의 내용이 변경됨(소유주 이름 등)
  • 신분이 변경됨(소유주의 조직변경 등)

인증서 폐기 목록(CRL)

  • 여러 인증기관에 의해 유지되고, 인증서의 정보와 폐기된 날짜/시간을 담고 있다.
  • 단점: 인증서가 폐기된 시간과 사용자가 아는 시점에 차이가 있다.

온라인 인증서 상태 프로토콜(OCSP)

  • 실시간으로 인증서 검증을 제공하기 때문에 CRL의 단점이 해결됨.

 

5. 비대칭키 관리

보안 유지를 위한 중요한 항목

  • 확실히 검증받은 알고리즘을 사용하는 암호화 시스템을 사용.
  • 보안 요구사항과 성능 간의 균형이 맞는 키 길이를 사용.
  • 키가 실제로 난수 값인지도 확인
  • 개인키의 보안을 유지
  • 키의 사용이 완료되면 폐기
  • 키를 백업

 

6. 암호학의 응용

이동식기기

- 잃어버리거나 도둑 맞을 경우 심각한 문제를 초래 할 수 있는 민감한 정보들이 담겨 있을 수 있다. 따라서 자료를 보호하기 위해 이동식기기에 암호화를 활성화 시킨다.

각 OS 의 암호화

  • 윈도우: BitLocker, EFS
  • 맥OS X: File Vault
  • 리눅스: TrueCrypt(윈도우,맥OS X, 리눅스 디스크 암호화)

 

이메일

- 단순하고 비효율적

규칙

  • 메시지의 비밀을 지켜야 한다면 메시지를 암호화 한다
  • 무결성을 보장해야 한다면 메시지 해시값을 계산 한다
  • 인증,무결성,부인방지가 필요하다면 디지털서명을 사용
  • 비밀성,무결성,인증,부인방지가 필요하다면 메시지를 암호화하고 디지털서명

PGP

  • 상용버젼: 키교환 RSA, 암/복호화 IDEA, 메시지다이제스트 MD5
  • 무료버젼: 키교환 디피-헬만, 암/복호화 CAST 128비트, 메시지다이제스트 SHA-1

S/MIME

  • 보안이메일의 표준. RSA암호화 알고리즘을 응용
  • 적용 제품: 아웃룩, 썬더버드, 맥OS X mail
  • X.509 인증서 사용. RSA 공개키 암호화 프로토콜. AES, 3DES 대칭 암호화 알고리즘

 

웹 애플리케이션

SSL

  • 넷스케이프에서 개발.
  • HTTPS는 포트 443번을 사용.
  • 대칭과 비대칭 암호화의 조합
  • 과정
    1. 웹사이트에 접속, 브라우저가 웹서버에 인증서를 요청하고, 인증서에서 공개키 추출
    2. 브라우저가 랜덤 대칭키를 생성, 서버의 공개키로 암호화 한 뒤 서버로 전송
    3. 서버가 개인키로 대칭키를 복호화 하고, 서버와 브라우저는 대칭키를 사용해 통신

 

스테노가 그래피

  • 비밀 메시지를 다른 메시지에 내장하는 예술
  • 이미지 파일의 비트의 LSB를 변경해 동작
  • 주로 불법적인 행위에 사용되지만 워터마크를 첨가해서 지적재산권을 보호 할 수 있다.

 

네트워킹

회로 암호화

  • 링크 암호화: 양 끝단 사이 터널을 생성해 통신을 보호 (예: VPN)
  • 점대점 암호화: 양자사이의 통신을 보호 (예: TLS)

 

IPSEC

  • IETF에서 제정한 표준
  • 암호화,접근통제,부인방지,메시지인증을 위해 공개키 암호화를 사용
  • VPN에 주로 사용. L2TP/IPSEC으로 불린다.
  • SA(보안 연계)
    • AH(인증헤더) : 무결성,부인방지 보장. 인증과 접근통제 제공. 재현공격 방지
    • ESP(캡슐화 보안 페이로드): 콘텐츠의 기밀과 무결성을 제공. 암호화와 제한된 인증을 제공. 재현공격 방지.

 

전송모드와 터널모드

  • 전송모드: 패킷 페이로드만 암호화(Peer to Peer 통신)
  • 터널모드: 헤더를 포함한 전체 패킷이 암호화(gateway to gateway 통신)

 

ISAKMP (인터넷 보안 연계 및 키 관리 프로토콜)

  • IPSEC을 위한 백그라운드 보안을 제공
  • 기본 요구사항(RFC 2408)
    • 통신 당사자들에 대한 인증
    • SA(보안연계)의 생성과 관리
    • 키 생성 절차의 제공
    • 위협에 대한 보호

 

무선 네트워킹

  • WEP(유선급 프라이버시)
    • RC4 사용. 64비트/128비트 암호화 옵션 제공
  • WPA(WiFi 보안 연결)
    • RC4+TKIP(시간적 키 무결성 프로토콜) 또는 LEAP(Lightweight Extensible Authentication Protocol) 사용
  • WPA2
    • AES-CCMP암호화 적용
    • 인증 옵션으로 PSK(preshared key)/PER(personal) 그리고 IEEE 802.1X/ENT(enterprise)가 정의되었음.
  • WPA3
    • WPA3-ENT는 192bit AES CCMP 사용.
    • WPA3-PER는 128bit AES CCMP 사용. PSK가 SAE(Simultaneous Authentication of Equals)로 대체됨.
    • * SAE는 제로지식증명을 사용(디피-헬만 파생)
  • IEEE 802.1X/EAP
    • WPA, WPA2, WAP3에서는 ENT 인증을 지원(802.1X/EAP)
    • IEEE 802.1X - 기존의 인증서비스와 연동이 가능하게 함(RADIUS, TACACS, 인증서, 스마트카드 등)
    • EAP(Extensible Authentication Protocol) - 인증 프레임워크. 인증 신기술들을 기존의 무선 또는 Point-to-Point 기술과 호환가능하게 함.
    • 유무선 네트워크의 인증과 키 관리를 위한 프레임워크
    • 클라이언트는 supplicant라는 sw를 실행 해야함.

 

7. 암호화 공격

분석공격

  • 알고리즘의 논리를 분석하는 공격

 

구현공격

  • 암호화 시스템 구현상의 취약점. 코드, 에러, 실수, 방법론에 초점

 

통계적공격

  • 부동소수점 에러나 실제 난수를 발생 할 수 없는 점과 같은 암호화 시스템의 통계적 취약점을 공략
  • HW 또는 OS의 취약점

 

무작위 대입

  • 가능한 모든 조합의 키나 암호를 시도
  • 레인보우 테이블 : 해시값을 미리 계산해 제공
  • 무작위 대입에 최적화 된 특수한 HW를 사용해 공격

 

주기분석 공격

  • 각 문자가 암호문에 몇번 씩 나타나는지 세어서 추측하는 방법

 

암호문 단독 공격

  • 암호화된 메시지만 가지고 공격

 

알려진 평문 공격

  • 평문 메시지와 암호문을 가지고 암호문을 푸는 것

 

선택된 암호문 공격

  • 공격자가 암호문의 일부를 복호화 할 수 있고, 이를 이용해서 키를 찾는 것

 

선택된 평문 공격

  • 공격자가 평문의 일부를 암호화 할 수 있고, 암호문을 분석 하는 것

 

Meet in the middle

  1. 알려진 평문 메시지를 이용해서, 평문은 모든 가능한 키(k1)로 암호화
  2. 대응되는 각 암호문은 모든 가능한 키(k2)로 복호화
  3. 평문과 복호화된 평문이 일치하는 키 쌍(k1, k2)은 이중 암호화의 모든 부분을 나타냄.

=> 2DES가 사용되지 않는 이유
 

중간자 공격

  • 통신을 하는 양자 사이에서 통신을 가로채는 것
  • 공격자가 송신자의 초기화 요청에 응답하여 보안 세션을 맺고, 공격자가 송신자인 것 처럼 위장하여 수신자와 보안세션을 맺는다.

 

생일 공격 (충돌공격 또는 역해시 매칭)

  • 디지털 서명에서 사용된 메시지다이제스트와 동일한 메시지다이제스트를 생성하는 메시지를 사용해서 디지털 서명의 유효성을 유지

 

재현 공격

  • 양자 사이의 암호화된 인증요청 메시지를 가로채서 나중에 세션을 열기 위해 메시지를 재현 하는 것.
  • 메시지에 시간을 표시하거나 만료시간을 설정해서 방지 가능
728x90
반응형