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를 사용한 애플리케이션에 대해서만 가능함