지식(6)
-
PEM과 CSR
PEM 파일이란?PEM은 인증서, 공개키, 개인키 등을 텍스트 형식으로 저장하는 파일 포맷이다.내부 데이터는 Base64로 인코딩 되어있고, 사람이 읽을 수 있는 형태이다. -----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASC...(중간에 Base64로 인코딩된 암호화 키 데이터)...snip...-----END PRIVATE KEY----------BEGIN PRIVATE KEY----- 와 -----END PRIVATE KEY----- 사이에 바이너리 데이터를 Base64로 인코딩한 문자열이 들어간다. CSR 이란?CSR은 인증서 발급은 요청하는 파일이다. CSR 안에는 공개키와 조직정보(회사명, 도메인명), 그리고 서명이 포함되어 있다. 이 서..
2025.06.05 -
ASCII와 Base64
ASCII란?ASCII 는 컴퓨터가 문자를 숫자로 다룰 수 있게 만든 표준 문자 인코딩 방식이다. 문자 ASCII 코드(10진수) 이진수 (8비트)A6501000001a9701100001!3300100001 Base64란?Base64는 바이너리 데이터를 사람이 읽을 수 있는 ASCII 문자로 인코딩 하는 방식이다. 컴퓨터가 사용하는 0과 1의 바이너리 데이터를 전송이나 저장을 위해 텍스트로 바꾼다이메일, 웹, 인증서 등 많은 시스템이 순수한 바이너리 데이터를 직접 처리하지 못한다.Base64는 이름처럼 총 64개의 안전한 문자가 사용된다.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01..
2025.06.04 -
Nginx의 $remote_addr
nginx.conf 에는 아래와 같은 설정을 할수있습니다.set_real_ip_from 10.10.44.0/24; real_ip_header X-Forwarded-For;real_ip_recursive on; set_real_ip_from 10.10.44.0/24 IP 대역에서 온 요청에 대해서만 X-Forwarded-For 헤더를 신뢰하겠다는 뜻입니다.즉 이 설정이 없으면 Nginx 는 X-Forwarded-For 내용을 무시하고 $remote_addr (실제 접속 IP, 보통은 로드밸런서의 IP)만 사용합니다. real_ip_header X-Forwarded-For 어떤 헤더에서 클라이언트의 실제 IP를 가져올지를 지정합니다. 일반적으로 로드밸런서는 원래 클라이언트의 IP를 X-Forwa..
2025.05.15 -
TCP 연결 설정과 종료 과정
3-Way Handshake3-Way Handshake는 클라이언트와 서버 간의 연결을 설정하기 위한 3단계 과정이다. 1. 클라이언트 → 서버: SYN 패킷 (연결 요청)클라이언트는 연결을 요청하기 위해 SYN 플래그를 설정한 패킷을 서버로 보냄.클라이언트는 이 패킷에 자신의 시퀀스 번호(Seq=x)를 포함시킴.Client → Server: [SYN, Seq=x]Seq=x: 클라이언트가 설정한 시퀀스 넘버SYN=1: 연결을 요청하는 플래그 설정2. 서버 → 클라이언트: SYN-ACK 패킷 (응답)서버는 클라이언트의 SYN 요청을 받으면, SYN-ACK 패킷을 응답으로 보냄.이때 서버는 자신의 시퀀스 번호(Seq=y)와 클라이언트의 Seq 번호 + 1을 포함한 Ack=x+1 값을 설정함.Server →..
2025.03.30 -
HTTP 요청 메세지 분석
GET /index.html HTTP/1.1Host: example.comUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)Accept: text/html,application/xhtml+xml,application/xml;q=0.9Connection: keep-alive HTTP 요청 메세지는 크게 3가지 부분으로 구성된다. 요청 라인 (Request Line) → 요청의 핵심 정보 (예: GET /index.html HTTP/1.1)헤더 (Headers) → 요청 관련 추가 정보 (예: User-Agent, Host, Content-Type 등)본문 (Body, 선택적) → POST 요청 등에서 데이터를 담는 부분 Connection: keep-alive ..
2025.03.29 -
인코딩의 종류
ASCII와 UTF-8 무엇이 다를까?인코딩이란, 문자를 컴퓨터가 이해할 수 있는 숫자로 변환하는 방식이다. ASCII와 UTF-8은 대표적인 문자 인코딩 방식이지만, 표현할 수 있는 문자 범위와 구조에서 큰 차이가 있다. ASCII란?ASCII는 영문알파벳, 숫자, 특수문자를 8비트로 표현하는 인코딩 방식이다. A → 01000001 (65)a → 01100001 (97)1 → 00110001 (49)영어 이외의 문자를 표현할 수 없다는 단점이 있다 UTF-8이란?UTF-8은 전 세계 모든 문자를 표현할 수 있는 인코딩 방식으로, 가변길이(1~4바이트)를 사용한다A → 01000001 (65) (ASCII와 동일)가 → 11101100 10110000 10000000 (234,176,128)😃 → 1..
2025.03.29