강의 내용 정리
암호 기본 개념
-
암호화(Encryption): 평문을 암호문으로 만드는 것
-
복호화(Decryption): 암호문으로부터 평문을 복원하는 것
-
평문(Plaintext): 암호화 되지 않은 메시지
-
암호문(Cypertext): 암호화된 메시지
-
키(Key, 암호키: Encryption Key): 평문/암호문을 암호화/복호화시키는 암호 알고리즘에 대한 필요한 핵심 가변 정보 값
-
모듈러 연산: 어떤 숫자를 다른 숫자로 나눈 나머지를 구하는 연산
-
합동: 어떤 숫자를 다른 숫자로 나눈 나머지가 같은 경우, 이를 합동이라 함
-
인코딩: 데이터를 코드화하고 압축하는 등 다른 형태로 변환하는 것
- 인코딩은 암호화보다 파일의 크기를 줄이거나 컴퓨터가 알아들을 수 있는 형식으로 변환하기 위해 사용함

-
Base64: 8비트 이진 데이터(실행 파일, ZIP파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념
- 알파벳 대소문자, 숫자, +, / 로 총 64개로 이루어지며, =은 끝을 알리는 코드로 사용
- 24bit 버퍼에 3byte씩 집어넣고, 6bit씩 끊어서 그에 맞는 문자로 변환
대칭키 암호
- 비밀키 암호(=대칭키 암호): 암호화와 복호화에 같은 키를 쓰는 알고리즘(ex. DES, AES)
- 고대 치환 암호: 평문을 이루는 각각의 문자를 다른 문자로 바꿔 정보를 숨기는 것
- 카이사르 암호(=시저 암호, Ceasar cipher): 암호화하고자 하는 내용을 알파벳별로 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 암호 방식
- 비게네르 암호: 16세기 프랑스의 외교관 비게네르가 고안하였으며, 여러개의 수를 암호 키로 사용해 카이사르 암호보다 한 층 더 복잡한 다중 치환 암호
- 블록 암호: 평문을 정해진 블록 단위로 암호화하는 알고리즘(ex. AES, DES)
- 스트림 암호: 이진 수열로 변환된 평문을 비트 단위로 암호화 하는 알고리즘
- 평문은 암호문과 배타적 논리합(XOR)연산을 수행해 암호문 생성
비대칭키 암호
- 공개키 암호(=비대칭키 암호): 암호화와 복호화에 다른 암호 키를 쓰는 알고리즘으로, 전자서명에 사용됨(ex. RSA, 타원곡선암호)
- 일방향 함수: 계산은 쉽지만 역을 구하는 것은 어려운 함수로, 대부분의 비대칭키 암호화 방식은 이것으로부터 고안
- RSA 알고리즘: 두 개의 큰 소수를 곱한 합성수는 소인수분해가 어렵다는 것을 기반으로 만들어진 암호 알고리즘
해시
-
해시 함수: 데이터를 고정된 길이의 데이터로 매핑하는 함수로, N:1 일방향 함수 (eX. CRC, MD5, SHA1 등)
키(Key): 매핑 전 데이터의 값(평문)
해시 값(Hash Value): 매핑 후 데이터의 값(암호문)
해시 테이블(Hash Table): 키와 데이터를 저장하는 자료구조 해싱(Hashing): 매핑하는 과정
-
해시 함수의 특성
- 해시 값을 알고 있어도 평문을 알아낼 수 없음
- 어떤 길이의 데이터를 입력해도 항상 고정된 길이의 데이터를 출력함
- 입력 값의 일부만 변경되어도 해시 값이 매우 크게 변함(눈사태 효과)
- 같은 입력인 경우 같은 해시 값을 출력함
- 그리 복잡하지 않은 알고리즘을 사용해 CPU 자원을 적게 소모
-
해시 충돌: 서로 다른 두 개의 입력값에 대해 동일한 해시 값을 출력하는 상황
-
눈사태 효과
md5(1.Sly)')=FBDE1FF2926EA21E74B4E9DCE88629CE
md5('I.sly)*)=718D7DA83F2D85F5BE66D51CC80D1F06
-
해시 함수 사용 예
- 데이터 무결성 검증: 동일한 데이터에 대해 동일한 해시 값을 출력하기 때문
- 비밀번호 저장: 관리자는 해시 값만 보관하여 원래의 비밀번호를 알 수 없음
-
좋은 해시 함수
- 해시 충돌이 없는 함수: 이론적으로 불가능하지만, 확률적으로 0에 가까울수록 좋은 해시 함수
- 역함수 계산이 불가능한 함수: CRC의 경우, 현재 역수 계산이 가능해짐
- 계산 과정이 복잡하지 않은 함수 등
스테카노그래피
- 스테가노그래피: 데이터 은폐 기술 중 하나로, 데이터를 다른 데이터에 삽입해 그 데이터의 존재 자체를 숨기는 것. 오늘날 디지털 스테가노그래 피는 이미지, 오디오 파일, 동영상 클립, 텍스트 파일 등 무해해 보이는 객체 안에 비밀 메시지를 감춰두는 방식으로 활용됨
네트워크 해킹
-
네트워크 해킹: 네트워크 상에서 발생되는 해킹을 의미 보안의 기본 요소에 따라 기밀성, 무결성, 가용성의 침해를 받음
- 내부의 자산을 파악하기 위해 훔쳐보는 네트워크 스캐닝 같은 행위 (기밀성)
- 정상적인 통신을 강제로 끊고 공격자가 세션을 갈취하는 세션 하이재킹 등의 행위 (기밀성, 무결성)
- 외부에서 네트워크 통신을 이용해 서비스가 정상 작동을 하지 못하도록 하는 Dos 등의 행위 (가용성)
-
기밀성
스니핑(Sniffing) : 네트워크 흐름의 중간에서 도청, 감시 등의 공격을 하는 행위
-
무결성
스푸핑(Spoofing) : 사용자가 원하는 행위를 속여 비정상적인 행동을 하는 행위
-
가용성
Dos 공격 : Denial of Service. 서비스 거부 공격을 수행하여 서버나 시스템이 동작하지 못하도록 공격하는 행위
네트워크 용어 정리
- 시스템
- 노드 : 인터넷에 연결된 시스템의 가장 기본적인 용어
- 호스트 : 컴퓨팅 기능이 있는 시스템. 양 끝단에 있는 송수신기를 뜻 (ex. PC)
- 클라이언트 : 서비스를 요청하는 시스템 (호스트가 송신을 할 때)
- 서버 : 서비스를 제공하는 시스템 (호스트가 수신을 할 때)
- 프로토콜
: 컴퓨터 간에 정보를 주고받을 때의 통신 방법에 대한 규칙이나 표준
- 게이트웨이
: 한 네트워크에서 다른 네트워크로 이동하기 위하여 거쳐야 하는 지점
- 1계층 리피터(repeater)
- 2계층 브리지(bridge)
- 3계층 라우터(router)
프로토콜
-
기본 요소
- 구문(Syntax)
: 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정
- 의미(Semantics)
: 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정
- 시간(Timing)
: 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정
-
1계층 - 물리 계층
최하위 계층. 2진법의 바이너리 정보를 전기적, 물리적 신호로 수신자에게 정보 전달 (전송 단위 : Bit)
-
2계층- 데이터 링크 계층
물리 계층에서 일어날 수 있는 오류들을 찾아내고 수정하여 하위 계층으로 데이터 전달 (전송 단위 : Frame)
-
3계층- 네트워크 계층
양 끝단의 사용자들의 IP를 확인하여 최적의 정보 전달이 가능한 루트를 찾는 라우팅을 진행 (전송 단위 : Packet)
-
4계층 - 전송 계층
: 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고받기 위해 프로토콜 정의, 하위 계층으로 데이터 전달 (전송 단위: Segment)
-
5계층 - 세션 계층
: 양 끝단의 사용자들의 통신을 관리하기 위한 방법을 정의하고 하위 계층으로 데이터 전달
-
6계층 - 표현 계층
: 원본 데이터를 부호화, 변화, 암호화, 복호화, 압축 등을 진행하여 하위 계층으로 데이터 전달
-
7계층 - 응용 계층
: 응용 소프트웨어에서 데이터를 생성하고 하위 계층으로 데이터 전달
OSI 7계층 (OSI 7 Layer)
국제 표준화기구 ISO에서 1984년에 네트워크 통신의 구조를 7계층으로 구분하여 각 계층 간 상호 작동하는 방식을 정의해놓은 것
패킷
네트워크에서 출발지와 목적지 간의 라우팅 되는 데이터 단위 네트워크 패킷은 사용자 데이터와 제어정보로 이루어지며, 사용자 데이터는 페이로드라고 함
*제어정보: 페이로드를 전달하기 위한 정보
- 구성요소
- 헤더
- 소스 주소, 대상 주소, 프로토콜 및 패킷 번호 포함
- 전송 중인 패킷 유형을 식별하는 데 도움이 됨
- 페이로드
- 패킷에 의해 전송되는 실제 데이터를 나타낸 것, 데이터라고도 함
- 헤더 정보가 목적지에 도달할 떄 제거됨
- 트레일러
- 패킷 트레일러의 내용은 각 네트워크 유형에 따라 다름
- 비트와 CRC 포함
dreamhack lolololologfile
FTK Imager을 사용하여 파일 복구
위에 4개의 파일을 보면 용량이 눈에 띄게 작은것을 볼 수 있다.

Export File을 눌러 파일 추출
HxD 를 설치 후 추출한 파일을 넣어 분석
→ %pdf 확인

파일을 합쳐 pdf파일로 만듦
도구>연결
⇒플래그 획득 가능

→ flag: DH{1_lov3_For3NSiCS_Not_FOur_AND_six}
dreamhack snowing!
wireshark 를 이용한 Snow.jpeg 파일 분석

복사본이라는것이 확인 가능한 문구만 있고 flag 관련 별다른게 발견이 안됨
(아래 과정은 구글검색을 활용하여 방법을 공부 후 작성하였습니다)
snow steganography tool 설치
sudo apt-get install stegsnow
파일 실행
stegsnow -C flag.txt

⇒ flag: DH{w0w_1t_Sn0w5}