728x90

1. 암호

암호 기본 개념

평문 Plaintext : 암호화되지 않은 메시지
암호문 Cypertext : 암호화된 메시지

암호화 Encryption : 평문을 암호문으로 만드는 것
복호화 Decryption : 암호문으로부터 평문을 복원하는 것

Key : 평문/암호문을 암호화/복호화시키는 암호 알고리즘에 필요한 핵심 가변정보 값

모듈러 연산 : 어떤 숫자를 다른 숫자로 나눈 나머지를 구하는 연산 ex) a ≡ b (mod n) : a와 b는 n으로 나눈 나머지가 같다
합동 : 어떤 숫자를 다른 숫자로 나눈 나머지가 같은 경우, 이를 합동이라고 함

인코딩 : 데이터를 코드화하고 압축하는 등 다른 형태로 변환하는 것

  • 인코딩은 암호화와 달리 데이터의 기밀성을 고려하지 않고 누구나 디코딩하여 원문을 구할 수 있다. 파일의 크기를 줄이거나 컴퓨터가 알아들을 수 있는 형식으로 변환하기 위해 사용한다.

Base64 : 8비트 이진 데이터(실행 파일, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념.

  • 총 64개로 이루어지며, =은 끝을 알리는 코드로 사용.
  • 24비트 버퍼에 3바이트씩 집어넣고, 6비트식 끊어서 해당하는 문자로 변환

대칭키 암호 (=비밀키 암호)

암호화와 복호화에 같은 암호 키를 쓰는 알고리즘. (ex. DES, AES)

고대 치환 암호 : 평문을 이루는 각각의 문자를 다른 문자로 바꿔 정보를 숨기는 것
카이사르 암호(시저 암호) : 암호화하고자 하는 내용을 알파벳별로 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 암호 방식
비제네르 암호 : 여러 개의 수를 암호키로 사용하여 카이사르 암호보다 한 층 더 복잡한 다중 치환 암호

블록 암호 : 평문을 정해진 블록 단위로 암호화하는 알고리즘 (ex. AES, DES)
스트림 암호 : 이진 수열로 변환된 평문을 비트 단위로 암호화하는 알고리즘으로, 평문을 키와 배타적 논리합(XOR) 연산을 수행하여 암호문 생성.

비대칭키 암호 (=공개키 암호)

암호화와 복호화에 다른 암호 키를 쓰는 알고리즘으로, 전자서명에 사용됨 (ex. RSA, 타원곡선암호)

공개키 : 평문을 암호문으로 만드는 키로, 누구나 암호화 가능
비밀키(개인키) : 암호문을 복호화하는 키로, 키를 알고 있는 사람만 복호화 가능

일방향 함수 : 계산은 쉾지만 역을 구하는 것은 어려운 함수로, 대부분의 비대칭키 암호화 방식은 이것으로부터 구안
RSA 알고리즘 : 두 개의 큰 소수를 곱한 합성수는 소인수분해가 어렵다는 것을 기반으로 만들어진 암호 알고리즘

해시

데이터를 고정된 길이의 데이터로 매핑하는 함수로, N:1 일방향 함수 (ex. CRC, MD5, SHA1)

key : 매핑 전 데이터의 값(평문)
해시 값 Hash Value : 매핑 후 데이터의 값(암호문)
해시 테이블 Hash Table : 키와 데이터를 저장하는 자료구조
해싱 Hashing : 매핑하는 과정

해시 충돌 : 서로 다른 두 개의 입력값에 대해 동일한 해시 값을 출력하는 상황. 해시 충돌이 발생하지 않을수록 좋은 해시 함수.
눈사태 효과 : 입력 값의 일부만 변경되어도 해시 값이 매우 크게 변함

사용 예시 : 무결성 검증, 비밀번호 저장

스테가노그래피

데이터 은폐 기술 중 하나로, 데이터를 다른 데이터에 삽입해 그 데이터의 존재 자체를 숨기는 것. 오늘날 디지털 스테가노그래피는 이미지, 오디오 파일, 동영상 클립, 텍스트 파일 등 무해해 보이는 객체 안에 비밀 메시지를 감춰두는 방식으로 활용됨.

2, 네트워크 해킹

네트워크 해킹 개요

네트워크 해킹 : 네트워크 상에서 발생되는 해킹을 의미
보안의 기본 요소에 따라 기밀성, 무결성, 가용성의 침해를 받음

(기밀성) 스니핑 sniffing : 네트워크 흐름의 중간에서 도청, 감시 등의 공격을 하는 행위
(무결성) 스푸핑 Spoofing : 사용자가 원하는 행위를 속여 비정상적인 행동을 하는 행위
(가용성) Dos 공격 : 서비스 거부 공격을 수행하여 서버나 시스템이 동작하지 못하도록 공격하는 행위

네트워크 용어 정리

시스템

  • 노드 : 인터넷에 연결된 시스템의 가장 기본적인 용어
  • 호스트 ; 컴퓨팅 기능이 있는 시스템. 양 끝단에 있는 송수신기를 뜻 (ex. PC)
  • 클라이언트 : 서비스를 요청하는 시스템 (호스트가 송신을 할 때)
  • 서버 : 서비스를 제공하는 시스템 (호스트가 수신을 할 때)

프로토콜 : 컴퓨터 간에 정보를 주고받을 때의 통신 방법에 대한 규칙이나 표준

게이트웨이 : 한 네트워크에서 다른 네트워크로 이동하기 위하여 거쳐야 하는 지점

  • 1계층 리피터(repeater)
  • 2계층 브리지(bridge)
  • 3계층 라우터(router)

프로토콜

기본 요소

  • 구문 Syntax : 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정
  • 의미 Semantics : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정
  • 시간 Timing : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정

OSI 7계층 (OSI 7 Layer)

국제 표준화기구 ISO에서 1984년에 네트워크 통신의 구조를 7계층으로 구분하여 각 계층 간 상호 작동하는 방식을 정의해놓은 것

송신자 측 : 원본 데이터를 상위 계층 → 하위 계층으로 전달하며 각 계층마다 헤더 추가

수신자 측 : 전달받은 데이터를 하위 계층 → 상위 계층으로 전달하며 원본 데이터 전달 받음

 

1계층 - 물리 계층 : 최하층 계층. 2진법의 바이너리 정보를 전기적, 물리적 신호로 수신자에게 정보 전달 (전송 단위 : Bit)

2계층 - 데이터 링크 계층 : 물리 계층에서 일어날 수 있는 오류들을 찾아내고 수정하여 하위 계층으로 데이터 전달 (전송 단위 : Frame)

3계층 -네트워크 계층 : 양 끝단의 사용자들의 IP를 확인하여 최적의 정보 전달이 가능한 루트를 찾는 라우팅을 진행 (전송 단위 : Packet)

4계층 -전송 계층 : 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고받기 위해 프로토콜 정의, 하위 계층으로 데이터 전달 (전송 단위 : Segment)

5계층 -세션 계층 : 양 끝단의 사용자들의 통신을 관리하기 위한 방법을 정의하고 하위 계층으로 데이터 전달

6계층 -표현 계층 : 원본 데이터를 부호화, 변화, 암호화, 복호화, 압축 등을 진행하여 하위 계층으로 데이터 전달

7계층 -응용 계층 : 응용 소프트웨어에서 데이터를 생성하고 하위 계층으로 데이터 전달

 

패킷

네트워크에서 출발지와 목적지 간에 라우팅 되는 데이터 단위

네트워크 패킷은 사용자 데이터와 제어정보로 이루어지며, 사용자 데이터는 페이로드라고 함 (제어정보 : 페이로드를 전달하기 위한 정보)

 

구성요소

  • 헤더 : 소스 주소, 대상 주소, 프로토콜 및 패킷 번호 포함. 전송 중인 패킷 유형을 식별하는 데 도움이 됨.
  • 페이로드 : 패킷에 의해 전송되는 실제 데이털르 나타낸 것, 데이터라고도 함. 헤더 정보가 목적지에 도달할 때 제거됨.
  • 트레일러 : 패킷 트레일러의 내용은 각 네트워크 유형에 따라 다름. 비트와 CRC 포함.

Wireshark

네트워크 패킷을 캡쳐하고 분석하는 오픈 소스 패킷 분석 프로그램

강력하고 쉬운 사용법 때문에 해킹 뿐만 아니라 보안 취약점 분석, 보안 컨설팅, 개인정보 영향평가 등 여러 분야에서 폭넓게 사용됨 

+ Recent posts