**SNI (Server Name Indication)**는 클라이언트가 TLS 핸드셰이크 과정에서 서버에 접속할 때 요청하는 서버의 도메인 이름을 명시하는 TLS 확장 필드입니다.SNI는 주로 **하나의 IP 주소에 여러 도메인 이름(웹사이트)**을 호스팅하는 서버에서 사용됩니다. 이를 통해 클라이언트가 접속하려는 도메인 이름을 서버에 전달할 수 있어, 서버는 해당 요청에 맞는 올바른 SSL/TLS 인증서를 제공할 수 있습니다.SNI의 동작 방식:클라이언트가 서버에 연결을 요청할 때, TLS 핸드셰이크를 시작합니다.클라이언트는 Client Hello 메시지를 전송하며, 이 메시지에 SNI 확장 필드를 포함시켜 접속하고자 하는 도메인 이름(예: www.example.com)을 서버에 알려줍니다.서버는 해..
TLS 1.2 vs TLS 1.3 1. 핸드셰이크 과정 TLS 1.2: 핸드셰이크 과정에서 최대 2라운드 트립(Round Trip Time, RTT)이 필요합니다. TLS 1.3: 핸드셰이크가 1라운드 트립(RTT)으로 단축되어, 세션 설정이 더 빠르게 이루어집니다. 2. 암호화 알고리즘 TLS 1.2: 다양한 암호화 알고리즘을 지원하며, 일부 안전하지 않은 알고리즘도 포함되어 있습니다. TLS 1.3: 약한 암호화 알고리즘을 모두 제거하고, AES-GCM, ChaCha20-Poly1305와 같은 강력한 알고리즘만 지원합니다. 3. 암호 스위트 단순화 TLS 1.2: 복잡한 암호 스위트 구성..
C++ Thread Local Storage (TLS) and GetLastError 1. TLS 설명 C++에서 TLS (Thread Local Storage)는 각 스레드가 고유한 변수를 저장하고 접근할 수 있게 해주는 메커니즘입니다. TLS는 다중 스레드 환경에서 각 스레드가 서로 독립적으로 데이터를 저장할 수 있도록 도와줍니다. thread_local 키워드를 사용하여 각 스레드마다 별도의 변수를 선언할 수 있습니다. 스레드 간 경합을 피할 수 있으므로 동기화 없이 안전한 데이터 처리가 가능합니다. 2. TLS 예제 코드 #include #include thread_local int counter = 0;void..
**CFI (Control Flow Integrity)**는 프로그램의 제어 흐름이 악의적으로 변경되지 않도록 보호하는 보안 기법입니다. 주로 Return-Oriented Programming (ROP), **Jump-Oriented Programming (JOP)**와 같은 공격으로부터 시스템을 방어하는 데 사용됩니다. CFI는 실행 중인 프로그램의 제어 흐름이 예상된 정상적인 흐름을 따르고 있는지 확인하여, 공격자가 제어 흐름을 변경하는 시도를 탐지하고 차단합니다.CFI의 주요 개념:제어 흐름 그래프 (CFG, Control Flow Graph): CFI는 프로그램의 소스 코드에서 미리 제어 흐름 그래프(CFG)를 생성합니다. CFG는 프로그램의 모든 가능한 제어 흐름을 나타낸 그래프입니다. CFI는..
ROV(Return-Oriented Vulnerability)은 **Return-Oriented Programming (ROP)**과 밀접한 관계가 있습니다. **ROP(리턴 지향 프로그래밍)**는 메모리의 기존 코드 조각을 악용하여 임의의 동작을 수행하게 만드는 익스플로잇 기술로, 특히 DEP(Data Execution Prevention) 같은 방어 기법을 우회하는 데 사용됩니다.ROP(Return-Oriented Programming) 개념:기존 코드 조각 재사용: ROP는 공격자가 시스템 메모리에 있는 기존 코드 조각들을 재사용하여 악성 동작을 수행합니다. 이때 코드 조각은 작은 부분, 즉 **가젯(gadget)**이라고 부르는 기계어 명령의 모음입니다. 각 가젯은 RET(return) 명령으로 ..
ASLR(Address Space Layout Randomization)은 시스템 보안을 강화하기 위한 기법 중 하나로, 프로세스가 메모리에 로드되는 주소를 무작위로 배치하여 공격자가 특정 메모리 주소를 예측하기 어렵게 만드는 기술입니다. 주로 메모리 기반 공격, 특히 버퍼 오버플로우 공격으로부터 시스템을 보호하는 데 사용됩니다.ASLR의 주요 개념:메모리 주소 무작위화: ASLR은 실행 중인 프로세스가 사용하는 메모리 공간(예: 실행 파일, 라이브러리, 스택, 힙 등)의 위치를 매번 무작위로 배치합니다. 이를 통해 공격자가 미리 특정 메모리 주소를 파악하고 악성 코드를 주입하는 것을 방지할 수 있습니다.재배치되는 요소:프로그램 코드: 실행 파일의 코드가 메모리 내에서 예측 불가능한 위치에 로드됩니다.동..
- Total
- Today
- Yesterday
- 성산블루버블
- 제주도
- Linux
- 블루버블
- 현포다이브
- 블루버블다이빙팀
- C# 고급 기술
- 네트워크 정보
- DLL
- 블루버블다이브팀
- 서귀포
- CMake
- 서귀포블루버블
- C++
- OpenSource
- 스쿠버 다이빙
- 암호화
- Windows
- 패턴
- 외돌개
- C#.NET
- 티스토리챌린지
- 오블완
- C
- script
- 스쿠버다이빙
- PowerShell
- C#
- 울릉도
- Build
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |