[정의] 힙 데이터 영역에서 발생하는 버퍼 오버플로의 한 종류로, 동적 메모리 할당 연결(malloc 메타 데이터 같은)을 겹쳐쓰고 프로그램 함수 포인터를 겹쳐쓰기 위해 결과로 나온 포인터를 교환하는 기법.

 

[개념] 프로그램이 실행되면, 실행에 필요한 정보들이 메모리 영역에 올라가는데 크게는 코드 영역, 데이터 영역, 스택 영역, 힙 영역 으로 구분.
- 코드영역 : 프로그램의 코드가 올라가는 영역, 여기서코드란, 컴파일된 기계어코드
- 데이터영역: 전역변수와 정적변수등이 할당되는영역. 초기화된 데이터는 data 영역에 저장. 초기화 되지 않은 데이터는 bss 영역에 저장
- 스택영역 : 지역변수와 매개변수가 저장되는 영역
- 힙영역 : 빈공간, 필요에 의해 메모리를 할당 및 해제(컴파일러가 예측 할 수 없는, 프로그래머가 관리하는 영역)


[스택 대신 힙영역 사용이유]
- 동적할당, 컴파일시기에 크기를 알수없는 데이터, 컴파일할때는크기를 알지 못하다가, 프로그램이 실행되었을때 크기가 결정되는 경우에 사용


[원리] Heap 영역의 낮은 주소에 있는 버퍼가 넘쳐서 다른 버퍼를 침범하여 발생

 

 

 


[예시] 


1) 두 개의 heap 메모리인 input과 secret을 할당한 뒤, secret 파일을 읽어서 두 번째로 할당했던 secret 영역에 저장
2) 그 후 input 영역에 입력 값을 받고 출력시켜주는 간단한 코드
3) 취약점은 read 함수, input으로 할당한 메모리 크기는 40 바이트이지만
read 함수를 통해 최대 100 바이트까지 입력할 수 있어 Heap Overflow 가 발생
4) Heap Overflow를 이용해서 secret 에 할당된 메모리 영역의 직전까지 데이터를 채워주면,
문자열이 연결되어 printf 함수가 secret 메모리의 값까지 출력 됨.
5) 40 바이트 만큼 할당 한다면 input 에 할당된 메모리와 secret 에 할당된 메모리의 거리차이는 40 바이트
6) 40 바이트를 할당한다고 해서 딱 40 바이트만 할당되는 것은 아니고
메모리의 할당과 해제를 관리하기 위한 정보들이 함께 들어가기 때문에 실제 할당되는 사이즈는 조금 늘어나게 됨.
그래서 문자열의 길이를 조금 늘려주면 Heap Overflow 를 이용한 Leak 이 가능
7) 만약 뒤쪽에 함수 포인터가 존재한다면 그 부분을 조작하여 프로그램의 실행 흐름을 변조도 가능

 

 

 

'ITPE > 보안' 카테고리의 다른 글

Buffer Overflow 공격  (0) 2021.04.01
IP Spoofing  (0) 2021.04.01
Slack Space 분석  (0) 2021.03.30
DNSSEC  (0) 2021.03.28
IPSec(IP Security)  (0) 2021.03.28

 

 

 

[정의] 루트권한 SUID 프로그램 실행 시 버퍼 초과 데이터를 입력, 비정상 작동에 의한 복귀주소를 조작, 공격 Shell을 실행시키는 공격 기법.


[개념] 사용자가  프로그램에서 저장을 위해 할당한 것보다 더 많은 데이터를 입력하려는 시도.


[유형] 
-Local Buffer Overflow : 루트권한 프로그램 취약점 이용
-Remote Buffer Overflow : RPC, FTPD 서비스 취약 이용


[버퍼 오버플로우의 불안전한 코드 사례]

불안전한 코드 안전한 코드
void manipulate_string(char* string) {
   char buf[24];
strcpy(buf, string);
}}
 void manipulate_string(char* string) {
char buf[24];
/* 복사하려는 buf와 길이를 비교. */
if (strlen(string < sizeof(buf))
strncpy(buf, string, sizeof(buf)-1);
/* 문자열은 반드시 null로 종료 */
buf[sizeof(buf)-1] = '₩0';
……
 }
매개변수로 받은 문자열 크기가 지역버퍼에 복사가 되는지 확인하지 않고 strcpy() 함수를 이용 데이터를 복사 매개변수로 받은 변수와 복사하려는 buf의 크기를 비교하여 buf의 크기를 제한하고 마지막 문자에‘₩0’을 삽입


[사례] 

#include <stdio.h>

void sample_function ( char* string )

{

         char buffer[16];

         strcpy (buffer, string);

         return;

}

void main()

{

         char big_buffer[256];

         int i;

         for (i=0; i<256; i++)

                 big_buffer[i] = 'A';

                 sample_function (big_buffer);        // 큰 버퍼를 함수에 보냄

}

}


- 버퍼 오버플로우를 일으키고 운영체제의 스택이 크래시되게 하여 특정 코드가 실행되게 함.

 

 

 


[공격 종류] 
-서비스 거부 공격: 메모리 스택에 많은 데이터를 대입하여 발생. 운영체제 데이터와 같은 중요한 정보를 덮어 써서 시스템 운영체제가 기능을 수행하지 못하게 함.
-접근 권한 획득: 스택에 적당한 크기의 정보를 입력하여 복귀 포인터를 덮어씀. 원래 실행되어야할 코드 대신 자신의 코드를 가리켜 실행시킴. 패스워드 해쉬 값을 출력하거나, 새로운 계정을 생산하는 것등을 할 수 있음.


[대응방안] 스택 영역 실행/쓰기제한 및 무결성 검사. 프로그램/서버의 신속한 패치, 보안 OS 도입, 시큐어코딩.

 

 

기본 예제 (위키피디아)

아래의 예제에서, 프로그램은 메모리에서 인접해 있는 두 아이템을 정의하였다: 8 바이트 길이 스트링 버퍼, A. 그리고 2 바이트 정수형, B. 우선, A 는 8바이트 모두 숫자 0값만 포함하고 B는 숫자 3을 포함한다. 문자들은 1바이트 크기이다.

A B
0 0 0 0 0 0 0 0 0 3

이제, 프로그램은 문자열 "excessive"를 A 버퍼에 저장한다. 한 바이트짜리 0값이 스트링의 끝임을 알리기 위해 따라온다. 스트링의 길이를 확인하지 않음으로 B의 값을 덮어쓴다.

A B
'e' 'x' 'c' 'e' 's' 's' 'i' 'v' 'e' 0

비록 프로그래머가 B가 바뀌는 것을 전혀 의도하지 않았다 하더라도, B의 값은 문자열의 한 부분을 구성하는 숫자로 바뀌었다. 이 예제에서 ASCII를 사용하는 빅 엔디언 시스템에서 "e" "0"는 숫자 25856가 될 수 있다. B가 프로그램이 정의한 유일한 다른 변수였다면, B의 끝을 지나가는 긴 스트링을 쓰는 것은 세그멘테이션 오류, 프로세스 종료와 같은 오류를 발생시켰을 것이다.

 

 

 

'ITPE > 보안' 카테고리의 다른 글

Heap Overflow  (0) 2021.04.01
IP Spoofing  (0) 2021.04.01
Slack Space 분석  (0) 2021.03.30
DNSSEC  (0) 2021.03.28
IPSec(IP Security)  (0) 2021.03.28

 

 

 

[정의] 공격자가 자신의 IP address를, 공격하고자 하는 네트워크의 호스트 IP Address로 바꾸어 IP 기반의 인증을 무력화 시키는 공격.

 

 

[절차]

 

Target System과 Client는 신뢰관계 형성 (ID, PW없이 접근).
IP Protocol 취약점을 습득하기 위해서는 Sniffing 공격이 선행(Seq Number 획득)

 

 

 

 

 

1.공격자는 클라이언트에 TCP SYN Flooding 공격 (rsh,rlogin)

2.공격자는 클라이언트의 IP로 속여 서버에 연결.
3.서버는 SYN/ACK 패킷을 보내고 클라이언트는 TCP SYN Flooding
공격때문에 연결이 이뤄지지 않고 서버 패킷은 사라지게 된다.(미확인)
4.공격자는 서버에 ACK 패킷을 보낸것처럼 속이면서,
IP Spoofing 명령어가 들어있는 패킷을 보내 신뢰 관계에 있는
클라이언트라고 속이면 연결이 이루어지게 된다.


[대응방안]
- 외부에서 들어오는 패킷중에서 출발지 IP 주소(Source IP Address)에
내부망 IP 주소를 가지고 있는 패킷을 라우터 등에서 패킷 필터링을 사용하여 방어.
- 내부사용에 의한 공격은 막을 수 없으므로 각 시스템에서 TCP Wrapper, ssh 설치 운영하고
rsh rlogin 등과 같은 인증과정이 없는 서비스는 미사용.
- IP Spoofing TCP/IP 설계와 구현의 문제이므로 새 프로토콜을 사용하지 않는 이상
완벽한 보호대책은 존재할 수 없으므로 지속적인 관리와 점검필요.

 

 

 

'ITPE > 보안' 카테고리의 다른 글

Heap Overflow  (0) 2021.04.01
Buffer Overflow 공격  (0) 2021.04.01
Slack Space 분석  (0) 2021.03.30
DNSSEC  (0) 2021.03.28
IPSec(IP Security)  (0) 2021.03.28

 

 

[정의] 저장매체에 물리적으로 할당 됐으나 논리적으로 사용할수 없는 공간.

 

[구분] 램슬랙, 드라이브 슬랙, 파일시스템 슬랙(램슬랙+드라이브 슬랙), 볼륨슬랙으로 구분


[구분별 내용]

-램슬랙: 램에 저장된 데이터가 저장장치에 저장될때 나타나는 특성에 따라 붙여진 이름

 

-드라이브슬랙: 클러스터의 사용으로 인해 낭비되는 공간

 

-파일시스템 슬랙: 물리적인 공간을 사용하기 위해 파일 시스템을 생성하는데 마지막 부분에 사용할수 없는 영역(악성코드 은닉에 많이 사용). 1002KB 의 Volume 이 있는데 클러스터가 4KB 이면 마지막 2KB 는 사용할 수 없는 영역이 된다

 

-볼륨슬랙: 전체 볼륨 크기와 할당된 파티셔닝크기의 차이로 발생하는 슬랙 스페이스.
파티션의 크기는 임의로 변경 가능하기 때문에 볼륨슬랙은 변경이 가능

 

 

 

 

 

 

 

'ITPE > 보안' 카테고리의 다른 글

Buffer Overflow 공격  (0) 2021.04.01
IP Spoofing  (0) 2021.04.01
DNSSEC  (0) 2021.03.28
IPSec(IP Security)  (0) 2021.03.28
Tunneling  (0) 2021.03.28

 

 

 

I. DNS 보안 강화를 위한 DNSSEC의 개념

- DNS 캐시 포이즈닝 공격에 대응하기 위해, 공개키 암호화 방식의 전자서명 기술을 DNS 체계에 도입한 보안 기술

 

II. DNSSEC의 작동방식 및 상세설명

가.     DNSSEC의 작동방식

- 단계별 DNSKEY를 통한 서명을 사용한 Trust Chain 구현 통한 DNS 공격 방어

 

 

 

 

나.     DNSSEC의 상세설명

구 분 세부항목 설 명
구성요소 DNSKEY - 도메인 존(Zone)의 공개키 데이터를 저장하여 제공 하기 위한 리소스 레코드(RR)
- Zone은 개인키와 공개키 쌍을 가지고 있으며 개인키는 안전한 장소에 따로 보관
- 개인키와 쌍을 이루는 공개키는 DNSKEY RR의 형태로 명시되어 질의응답을 통해 배포
- ZSK : Domain zone의 모든 리소스 레코드 각각 서명 위한 용도
- KSK : DNSKEY 리소스 레코드 자체를 서명 하기 위한 용도
RRSIG - Resource Record Signature
- DNS의 각 리소스 레코드 데이터의 전자 서명 데이터 저장 용도
- DNS 응답 메시지에 응답 대상 리소스 + RRSIG 형태로 응답
DS
(Delegation Signer)
- DNS 보안 측면 인증 위임 체계 구성 위한 데이터 저장 RR
- 자식 Domain zone KSK 확증 수단 제공 통한 Trust Chain 형성
NSEC / NSEC3
(Next Secure)
- DNSSEC 보안 기능 중 DNS 데이터 부재 인증용 리소스 레코드
- DNS zone에 존재 하지 않는 리소스 레코드 위장 공격 차단
작동방식 1) RRset 생성 - 동일한 유형의 레코드를 자원 레코드 세트(RRset)로 그룹화
2) 서명 - RRSet 생성이후 ZSK를 이용해 각각의 RRset에 서명
- DNSKEY KSK를 이용하여 서명하고 RRSIG로 저장
3) 검증 - 원하는 RRset을 요청하면 해당 RRSIG 레코드도 함께 반환
- 공개 ZSK와 공개 KSK가 들어 있는 DNSKEY 레코드를 요청하면 DNSKEY RRset RRSIG도 함께 반환
- 공개 ZSK, 요청한 RRset RRSIG를 확인
- 공개 KSK, DNSKEY RRset RRSIG를 확인

- 공개키와, 레코드셋을 전자서명을 통해 안전한 DNS시스템을 구축

 

III. DNSSEC 실무 적용시 고려 사항

구 분 이슈 사항 대응 방안
유지 보수 주기적 키 생성, 교체 및
zone 정보 관리 필요
- 키 생성 관리 툴 적용, 필요 정보 마스터화 편의성 확보
- DNS 관리자 사전 교육을 통한 DNSSEC 관리 여건 확보
N/W 부하 DNSSEC 적용 시 처리량
증가에 따른 부하 발생
- 적용 전 부하 테스트 통한 충분한 성능 검증 진행
- 부하 증가에 대비한 네트워크 장비, 예산 추가 확보
DNS 업무 영향 도메인 신청, DB 저장,
정보 전송 등 기존 업무 영향
- 기존 적용 사례 분석 통한 영향도 최소화
- DNSSEC 관련 국내외 표준 가이드 확인

 

 

 

'ITPE > 보안' 카테고리의 다른 글

IP Spoofing  (0) 2021.04.01
Slack Space 분석  (0) 2021.03.30
IPSec(IP Security)  (0) 2021.03.28
Tunneling  (0) 2021.03.28
접근제어 (MAC, DAC, RBAC, ABAC)  (0) 2021.03.28

 

 

 

[정의] TCP/IP 프로토콜의 IP계층에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 ESP를 이용한 IP보안 프로토콜

 

[동작모드]

- 트랜스포트 모드: Transport Layer에서 Network Layer 로 오는 정보만 보호. IP 헤더를 보호하지 않음. Peer-to-peer

- 터널모드 : 전체 IP 패킷을 보호. 헤더를 포함한 IP 패킷을 취해서, 전체 패킷에 IPSec 보안을 적용한 다음 새로운 IP 헤더 추가, 새로운 IP 헤더는 라우터의 IP. site-to-site

 

[프로토콜]

- AH(Authentication Header. 데이터 무결성과 IP 패킷의 인증을 지원, 재생방지(anti-reply) 서비스를 제공, 기밀성을 제공해주지는 않음)

- ESP(Encapsulation Security Payload. 암호화 기법을사용하여 데이터의 무결성, 비밀성의 기능을 제공하는 프로토콜, 프라이버시 제공)

 

 

 

 


[정책 및 키관리]
-SPD(Security Policy Database): 패킷에 대한 보안 정책을 적용하며, 모든 트래픽 처리 시에 참조. SAD를
이용하기 전에, 호스트 패킷에 대해 규정된 정책을 결정.(종류: Drop(폐기), 통과(Bypass), 적용(Apply) 등)
-SAD(Security Authentication Database): 양단간의 비밀 데이터 교환을 위해 미리 설정되어야 할 보안
요소들에 대한 데이터 관리.
-IKE(Internet Key Exchange): inbound 와 outbound 보안 연관을 생성하기 위하여 설계된 프로토콜로
IPSec을 위한 SA(Security Association) 생성. Key 를 주고 받는 알고리즘, 공개된 네트워크를 통하여
Key 를 어떻게 할 것 인가를 정의, IKE 교환을 위한 메시지를 전달하는 프로토콜. ISAKMP(키교환, 인증을
위한 프레임워크, 메시지포멧), SKEME(인증을 위한 공개키 암호화 기법), Oakley(Mode-based 메커니즘)의
3가지 방식 중 Oakley, SKEME 를 다포함하는 ISAKMP 를 주로 사용.

 

[IKE SA(Security Association)과정]
-IKE Phase 1 (IKE SA설정) : 1) IKE 보안 파라미터 협상과정, 2) IKE SA용 마스터키가 설정, 3) 상호 인증과정
-IKE Phase 1.5(Option) : - 추가인증(Xauth), 클라이언트에게 파라미터 값 전달(Mode config)
-IKE Phase 2 (IP Sec SA 설정) : 4) IPSec SA 보안 파라미터 협상 과정, 5) 세션키 생성, 6) 상호인증

 

 

 

'ITPE > 보안' 카테고리의 다른 글

Slack Space 분석  (0) 2021.03.30
DNSSEC  (0) 2021.03.28
Tunneling  (0) 2021.03.28
접근제어 (MAC, DAC, RBAC, ABAC)  (0) 2021.03.28
암호 공격기법  (0) 2021.03.28

 

 

 

[정의] 인터넷 NW 상에서 두 지점간에 외부의 영향을 받지 않고, capsulation과 de-capsulation 과정을 거쳐 가상의 터널을 형성하여 정보를 안전하게 주고 받는 기술

 

[방식]
-Remote Access 방식 : PPTP, L2TP, IPSec, SSL 등
-Site-to-Site 방식 : IPSec, MPLS 등.


[동작 레이어별 VPN 터널링 프로토콜]

 

 


1) 2계층
- L2F(Layer 2 Forwarding) : 원격지 사용자의 인증은 Home site 의 Gateway 에서 이뤄짐.
- PPTP(Point-to-Point Tunneling Protocol, PPP(다이얼업 방식) 서버접속후 인증후 VPN 터널 생성,
GRE(Generic Routing Encapsulation) IP 를 이용 Network Layer 패킷.
Encapsulation 처리 및 Point-to-point link 구성),
- L2TP(Layer2 Tunneling Protocol, L2F 와 PPTP 를 혼합한 방식이며, IP, UTP, X25,
프레임릴레이, ATM 등 다양한 프로토콜 지원, 암호화에 두단계로 구성되며 ipSec 를 사용)
2) 3계층
- IPSec : IPv6 기본적으로 지원, 무결성과 인증을 보장하는 AH 와 기밀성까지 보장하는 ESP 제공.
- ATMP(Ascend Tunnel Management Protocol, 원격 사용자의 Home 네트워크로 동적 연결 지원),
- VTP(Virtual Tunneling Protocol, frame relay 이용한 회선 속도 보장가능)
3) 4계층 : SSL(Secure Socket Layer)

 

 

 

'ITPE > 보안' 카테고리의 다른 글

DNSSEC  (0) 2021.03.28
IPSec(IP Security)  (0) 2021.03.28
접근제어 (MAC, DAC, RBAC, ABAC)  (0) 2021.03.28
암호 공격기법  (0) 2021.03.28
Diffie-Hellman  (0) 2021.03.28

 

 

 

 

강제적 접근제어(MAC, Mandatory Access Control)

[정의] 비밀성을 갖는 객체에 대하여 주체가 갖는 권한에 근거하여 객체에 대한 접근을 제어하는 방법

[특징]
1) 강제 접근 통제에서는 주체와 객체의 수에 관계없이 접근 규칙의 수가 최대로 정해지기
때문에 다른 접근 통제 모델에 비하여 접근 규칙의 수가 적고, 통제가 용이한 방법
2) 강력한 접근 통제 방식으로 군대와 같이 기밀성이 매우 중요한 조직에서 사용


[종류]
- MLP(Multi Level Policy) : 자동화된 강제적 시행 정책을 따르는 방식으로서
일반적으로 허가되지 않은 노출로부터 정보를 보호하기 위해 사용
- CBP(Component Based Policy) : 일련의 타겟집합이 다른 타겟들과 분리된
이름의범주(category)를 갖고 연결

 

 

 

임의적 접근제어(DAC, Discretionary Access Control)

[정의] 주체나 주체가 속한 그룹의 신원에 근거하여 객체에 대한 접근을 제한하는 방법(객체의 소유주가 접근 여부를 결정)

[특징]
- 모든 사용자가 정보에 대해 단일화 되어 있지 않으며 하나의 사용자 정보 단위로 이루어짐
- 주체 지향 보안 구현 방식


[종류]
- IBP(Individual Based Policy) : 어떤 사용자가 어떤 행동 할 수 있는지 각 타겟별로 목록 표현
- GBP(Group Based Policy) : 다수의 사용자가 하나의 타겟에 대하여 동일한 허가를
부여받는 방식으로 조직 레벨 권한관리 용이

 

 

 

 

역할기반 접근제어(RABC, Role Based Access Control)

[정의] 중앙 관리자가 주체와 객체의 상호관계를 통제하며 조직내에서 맡은 역할에 기초하여 자원에 대한 접근허용 여부를 결정하는 방법

[특징]
- 권한을 부여하는 단위가 주체 대신 주체가 수행하는 기능(역할)에 권한이 부여
- 사용자는 보호대상정보나 자원에 대한 접근권한을 얻기 위해서는
해당 접근권한이 배정된 역할의 구성원이 되어야 함


[RBAC 모델의 원리]
1) 최소권한원칙(least privilege principle) : 역할 계층성을 이용하여
작업에 꼭 필요한 최소한의 허가 사항만을 역할에 배정하는 정책.
2) 직무 분리(Separation of Duty) : 정보의 무결성을 침해하는 사기행위와
부정 수단을 유발 할 수 있는 작업은 상호 감시적인 역할로 자정하여 직무를 분리하여 수행. Ex) DBA, Sys
3) 데이터 추상화(Data Abstration) : 데이터를 처리하는 read, write, execute 등의 연산 대신에 상업적인 처리 명령어
create, Transfer 등의 명령어로 추상화

 

 

 

속성기반 접근제어ABAC(Attribute Based Access Control)

[정의] 접근 권한 주체와 접근 권한 대상이 어떠한 환경에 처해 있는가를 동적으로 분석하여 접근 권한을 부여하는 기법

 

[등장배경] 과거 DAC, MAC, RBAC 처럼 고정된 자원에 대한 접근 제어로는 SOA, 클라우드 기반하의 변화하는 자원과 환경 조건에서 접근제어를 구현의 어려움


[기술유형]
- IBAC(Identity Based Access Control) : ACL에 의해서 접근권한이 직접 통제됨. 접근권한 대상 많을수록 복잡하여 통제 불가
- RBAC : Role 기반 접근제어. 동적 환경 적응 문제
- LBAC(Lattice Based Access) : MAC 구현을 위하여 미 국방부에 의해 만들어진 접근권한 기법


[속성유형] Subject(권한 관리 대상이 되는 유형(이름, 직업, 역할)) / Resource(자원에 관계된 대상(시스템기능, 웹서비스 등) / Environmental(정보의 권한 관리가 일어나는 운영적, 기술적, 장소적 환경(현재시각, 현재 위험수준, 네트워크 위험수준 등)

 

 

 

'ITPE > 보안' 카테고리의 다른 글

IPSec(IP Security)  (0) 2021.03.28
Tunneling  (0) 2021.03.28
암호 공격기법  (0) 2021.03.28
Diffie-Hellman  (0) 2021.03.28
블럭암호화 운영모드  (0) 2021.03.28

 

 

 

[정의] 암호 방식의 정당한 참여자가 아닌 제3자가 암호문 (cipher text) 으로부터 평문(plaintext)을 찾으려는 시도를 암호 해독(cryptanalysis) 또는 공격(attack)이라고 함

 

[암호 해독자가 사용 또는 알고 있는 내용에 따른 공격 기법 유형(지식기반)]

- 암호문 단독 공격(Ciphertext only attack) : 암호 해독자는 단지 암호문 C 만을 갖고 이로부터 평문 P 이나 키 K 를 찾아 내는 방법.
-기지 평문 공격(Known plaintext attack) : 암호 해독자는 일정량의 평문 P 에 대응하는 암호문 C 를 알고 있는 상태에서 해독.
-선택 평문 공격(Chosen plaintext attack) :  암호 해독자가 사용된 암호기에 접근할 수 있어 평문 P 을 선택하여 그 평문 P 에 해당하는 암호문 C 를 얻어 키 K 나 평문 P 을 추정하여 해독.
-선택 암호문 공격(Chosen ciphertext attack) : 암호 해독자가 암호 복호기에 접근할 수 있어 암호문 C 에 대한 평문 P 을 얻어 암호를 해독.

 

 

 


[스트림 암호 알고리즘의 공격 기법]  
-구별 공격 : 스트림 암호 알고리즘에서 생성되는 키 스트림과 난수열을 구별하는 공격으로 통계적인 분석 방법 및 대부분의 분석 방법들이 이에 속함.
-예측 공격 : 이전의 적당한 길이의 키 스트림을 획득하였다는 가정하에 다음 발생할 수열을 예측하는 형태의 공격.
-키 복구 공격 : 키 스트림을 이용하여 마스터 키 또는 내부 상태 값을 복구하는 공격.(가장 강력한 공격)
-대수적 공격 : 알려진 입출력 쌍과 내부의 알고자 하는 값을 변수로 하여 암호 알고리즘의 과정을 통해 만들어진 과포화된(overdefined) 다변수 연립 방정식을 이용하여 변수의 값을 얻고 이를 통하여 키를 복구하는 방법.

 

[블록 암호 알고리즘의 공격 기법] 
1) 차분 공격법 : 블록 암호의 비선형 함수에 대한 입력 차분(input difference)와 출력 차분(output difference) 값들의 확률 분포가 비균일함을 이용하는 선택 평문 공격 방법.
2) 선형 공격법 : 여러 개의 선형 근사식을 이용하며 비선형 근사식을 덧붙이는 방법.
3) 연관키 공격 : 서로 다른 2 개의 키 사이의 연관 관계를 알고 있지만 키 자체를 모를 때 각 키로부터 발생된 평문/암호문 쌍을 가지고 키를 알아내는 방법.

 

 

 

'ITPE > 보안' 카테고리의 다른 글

Tunneling  (0) 2021.03.28
접근제어 (MAC, DAC, RBAC, ABAC)  (0) 2021.03.28
Diffie-Hellman  (0) 2021.03.28
블럭암호화 운영모드  (0) 2021.03.28
SPN(Substitution-Permutation Network)  (0) 2021.03.28

 

 

 

 

 

 

[정의] 두 사용자가 사전에 어떠한 비밀 교환 없이도 공중 통신망 환경에서 공통키를 교환하게 해주는 이산대수 기반의 알고리즘. 

 

[특징] 중간자 공격에 취약. 중간에서 바꾼 값을 양쪽에 전달하여 공격 가능.


[쉬운 예시(색깔)]

A와 B가 키 교환을 진행

공개색깔 : 노랑

A의 비밀색 : 빨강
B의 비밀색 : 파랑

 

1) A는 노랑과 빨강을 섞어서 B에게 보냄
2) B는 노랑과 파랑을 섞어서 A에게 보냄


서로 받은 색깔은

A는 노랑+파랑

B는 노랑+빨강

 

3) 각자의 비밀색을 합침

A는 (노랑+파랑)+빨강

B는 (노랑+빨강)+파랑

 

두개가 구질구질한 동일한 색을 가지게 됨.

이것을 키로 사용.

 

 

 

 


[숫자 예시]

- 원시값(공개값) : 3 mod 17
- A의 임의의수 = 15 / B의 임의의수 = 13
- A에서 B로 전송값 = 3^15 mod 17 = 6 // B에서 A로 전송값 = 3^13 mod 17 = 12
- A에서 키값생성 : 전달받은 값에 본인의 임의의수를 지수승으로 계산. 12^15 mod 17 = 10.
- B에서 키값생성 : 전달받은 값에 본인의 임의의수를 지수승으로 계산. 6^13 mod 17 = 10.
※ 키값이 동일하게 되는 원리
- A 가 받은 12는 3^13mod 17 값으로, 3^13^15 mod 17 의미.
- B 가 받은 6은 3^15mod 17 값으로, 3^15^13 mod 17의미.
- 따라서 지수의 위치 변경 가능하므로, 3^13^15 = 3^15^13. 끝.


[man-in-the-middle 공격 해결법] 교환하는 값(ga mod p, gb mod p)을 대칭키로 암호화, 교환하는 값을 공개키로 암호화, 교환하는 값을 개인키로 서명. key를 2048bit로 변경.

 

 

 

'ITPE > 보안' 카테고리의 다른 글

접근제어 (MAC, DAC, RBAC, ABAC)  (0) 2021.03.28
암호 공격기법  (0) 2021.03.28
블럭암호화 운영모드  (0) 2021.03.28
SPN(Substitution-Permutation Network)  (0) 2021.03.28
Feistel  (0) 2021.03.28

+ Recent posts