Study/Engineer Information Processing

[정보처리기사 실기] Ⅸ. 소프트웨어 개발 보안 구축 (3)

줴림 2025. 5. 9. 19:53


 

암호 알고리즘 상세 사항

대칭 키 암호화 알고리즘

종류 설명
DES
(Data Encryption
Standard)
1975년 IBM에서 개발하고 NIST에서 발표한 대칭키 기반의 블록 암호화 알고리즘
페이스텔 구조: 데이터를 여러 라운드에 걸쳐 반복적으로 처리하여 암호화하는 구조
3 DES: DES를 3번 적용하여 보안을 더욱 강화함
SEED 1999년 한국인터넷진흥원이 개발한 블록 암호화 알고리즘
128bit 비밀 키로부터 생성된 16개의 64bit 라운드 키를 사용하여 총 16회의 라운드를 거쳐 암호화
AES
(Advanced
Encryption
Standard)
2001년 NIST에서 발표한 블록 암호화 알고리즘
DES의 개인 키에 대한 전사적 공격과 3 DES 성능 문제 해결
라운드(10, 12, 14라운드로 분류): Sub-Bytes, ShiftRows, MixColumns, AddRoundKey 계층으로 구성
ARIA
(Academy,
Research Institute,
Agency)
2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘
경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발
XOR과 같은 단순한 바이트 단위 연산으로 구성
IDEA
(International
Data Encryption
Algorithm)
DES를 대체하기 위해 개발한 블록 암호화 알고리즘
LFSR
(Linear Feedback
Shift Register)
시프트 레지스터의 일종
레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘
선형 함수로 주로 XOR 사용
Skipjack NSA에서 개발한 Clipper 칩에 내장된 블록 알고리즘
소프트웨어로 구현되는 것을 막고자 Fortezza Card에 칩 형태로 구현됨
전화기와 같이 음성을 암호화하는 데 주로 사용됨

 

비대칭 키 암호화 알고리즘

종류 설명
디피-헬만
(Diffie-Helllman)
최초의 공개키 알고리즘
유한 필드 내에서 이산대수 문제의 어려움을 기본 원리로 함
많은 키 분배 방식에 관한 연구의 기본
RSA
(Rivest-Shamir-
Adleman)
MIT 수학 교수 3명이 고안한 공개키 암호화 알고리즘
큰 인수의 곱을 소인수 분해하는 수학적 알고리즘을 이용
비밀키의 복호화가 어려운 RSA 안전성: 소인수 분해 문제의 어려움에 근거를 두고 있음
ECC
(Elliptic Curve
Cryptography)
RSA 암호 방식에 대한 대안으로 제안된 공개키 암호화 알고리즘
유한체 위에서 정의된 타원곡선 군에서의 이산대수 문제에 기초
RSA의 문제점인 속도와 안전성 해결을 위해 타원 기반 구조체의 안정성과 효율성을 기반으로 생성
ElGamal 이산대수의 계산이 어려운 문제를 기본 원리로 한 공개키 알고리즘
전자서명과 데이터 암호화 및 복호화에 함께 사용 가능

 

해시(Hash) 암호화 알고리즘

종류 설명
MD5
(Message-Digest
algorithm 5)
MD4를 개선한 암호화 알고리즘
프로그램이나 파일의 무결성 검사에 이용
각각의 512비트짜리 입력 메시지 블록에 대해 차례로 동작하여 128비트의 해시값을 생성
SHA-1
(Secure Hash
Algorithm)
NSA에서 미 정부 표준으로 지정되었고, DSA(Digital Signature Algorithm)에서 사용
160비트의 해시값을 생성하는 해시 알고리즘
SHA-256/384/512
(Secure Hash
Algorithm)
SHA 알고리즘의 한 종류
256비트의 해시값을 생성
AES의 키 길이인 128, 192, 256비트에 대응하도록 출력 길이를 늘린 해시 알고리즘
HAS-160 국내 표준 서명 알고리즘 KCDSA를 위해 개발된 해시 함수
MD5와 SHA1의 장점을 취하여 개발됨
HAVAL 메시지를 1024bits 블록으로 나누고 128, 160, 192, 224, 256비트인 메시지 다이제스트를 출력

 

데이터베이스 암호화 기법

구분 설명
API 방식 애플리케이션 레벨에서 암호 모듈(API)을 적용하는 애플리케이션 수정 방식
애플리케이션 서버에 암·복호화, 정책 관리, 키 관리 등의 부하 발생
Plug-in 방식 암·복호화 모듈이 DB에 설치된 방식
DB 서버에 암·복호화, 정책 관리, 키 관리 등의 부하 발생
TDE 방식 DB 서버의 DBMS 커널이 자체적으로 암·복호화 기능을 수행하는 방식
내장되어 있는 암호화 기능(TDE: Transparent Data Encryption) 이용
Hybrid 방식 API 방식과 Plug-In 방식을 결합하는 방식
DB 서버와 애플리케이션 서버로 부하 분산

 

안전한 전송을 위한 데이터 암호화 전송

반드시 암호화 및 복호화 과정을 거쳐야 함
IPSec, SSL/TLS, S-HTTP 등 보안 채널을 활용하여 전송해야 함

 

1. PPTP (Point to Point Tunnel Protocol)

  • 마이크로소프트사가 개발한 프로토콜
  • IP, IPX 페이로드를 암호화 + IP 헤더로 캡슐화하여 전송
  • PPP에 기초하여 두 대의 컴퓨터가 직렬 인터페이스를 이용하여 통신할 때 사용
  • 하나의 터널에 하나의 연결만을 지원하여 일대일 통신만 가능
  • 데이터 링크 계층에서 사용하는 보안 프로토콜

2. L2F (Layer 2 Forwarding)

  • Cisco 사에서 개발한 프로토콜
  • 하나의 터널에 여러 개의 연결을 지원하여 다자간 통신이 가능하도록 하는 프로토콜
  • 전송 계층 프로토콜로 TCP가 아닌 UDP를 사용
  • 데이터 링크 계층에서 사용하는 보안 프로토콜

3. L2TP (Layer 2 Tunneling Protocol)

  • L2F와 PPTP를 결합한 방법 (호환성 good)
  • 마이크로소프트사와 Cisco 사에서 지원하는 중
  • UDP 포트가 사용되고 터널링에 대한 인증을 수행
  • 암호화 및 기밀성과 같은 데이터에 보안을 제공하지 않으므로 IPSec 기술과 함께 사용
  • 데이터 링크 계층에서 사용하는 보안 프로토콜

4. IPSec (Internet Protocol Security)

1) 개념: IP 계층에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜

2) 기능

  • 기밀성: 대칭 암호화를 통해 전송 데이터에 대하 기밀성 제공
  • 비연결성 무결성: 메시지가 위조, 변조되지 않았음을 보장하는 특성 제공
  • 인증: 데이터 원천 인증 및 송신처 인증
  • 재전송 공격 방지: 송신 측에서 IP 패킷별로 순서번호를 통해 재전송 공격 방지
  • 접근 제어: 보안 정책을 통해 시스템 접근 제어

3) 동작 모드

동작 모드 설명
전송 모드
(Transport Mode)
IP 패킷의 페이로드를 보호하는 모드
IP 상위 프로토콜 데이터를 보호하는 모드
터널 모드
(Tunnel Mode)
IP 패킷 전체를 보호하는 모드
IP 패킷 전체를 IPSec으로 캡슐화하여 IP 헤더를 식별할 수 없으므로 네트워크상 패킷 전송 불가능
전송 구간 주소 정보를 담은 New IP 헤더 추가

4) IPSec 프로토콜

프로토콜 설명
인증 프로토콜
(AH; Authentication
Header)
메시지 인증 코드를 이용하여 인증과 송신처 인증을 제공해주는 프로토콜
기밀성 제공하지 않음
무결성, 인증 제공
암호화 프로토콜
(ESP; Encapsulation
Security Payload)
메시지 인증 코드와 암호화를 이용하여 인증과 송신처 인증, 기밀성을 제공하는 프로토콜
기밀성, 무결성, 인증 제공
키 관리 프로토콜
(IKE; Internet Key
Exchange)
Key를 주고받는 알고리즘
공개된 네트워크를 이용하여 Key를 어떻게 할 것인가를 정의, IKE 교환을 위한 메시지를 전달하는 프로토콜

5. SSL/TLS

1) 개념: 전송계층과 응용계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜

2) 특징

  • Netscape 사가 개발: 1990년대 초반 웹 보안을 위해 처음 개발
  • 다양한 암호 통신 방법 활용: 대칭 키 암호화, 공개키 암호화, 일방향 해시 함수, 메시지 인증 코드, 의사 난수 생성기, 전자서명을 조합하여 암호화 통신 수행
  • 특정 암호 기술에 의존 X

3) 보안 기능

  • 기밀성: Triple DES, AES 같은 대칭 키 암호화 알고리즘 제공
  • 상호인증: 연결 설정 과정에서 서버와 클라이언트 간에 신뢰할 수 있도록 인증 사용
  • 메시지 무결성: 안전한 해시 알고리즘 사용하여 메시지 인증 코드 생성

6. S-HTTP (Secure Hypertext Transfer Protocol)

  • 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나
  • 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송하는 기술
  • S-HTTP에서 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능함