어쩌다 IT
article thumbnail
반응형

리뷰 (Review)

더보기
  • 프로그램 개발 과정을 제조업 기준으로 이해한다면
    1. 문제 정의 → 고객사로부터 개발품 제작 의뢰, 요구 사항 포함
    2. 알고리즘 설계 → 소재 선정부터 도면 설계, 소재 발주, CAM 프로그럼 작성 등
    3. 구현 → 샘플 제품 가공
    4. 테스트 → 샘플 제품 검사 및 시운전
    5. 배포 → 수정 사항 반영 및 양산
  • 1byte 표현 범위
    • 부호가 없는 경우 : 0 ~ 255
    • 부호가 있는 경우 : -128 ~ 127
  • IP Address
    • 통신을 하기 위해서 대상을 식별하는 주소
    • IPv4로 할당 할 수 있는 IP Address가 거의 다 사용되고 있어서 IPv6와 혼합하여 사용
    • 네트워크 ID + 호스트 ID
    • 공인 IP - 인터넷에 연결된 컴퓨터에 부여되는 IP Address
    • 사설 IP - 현재 소속된 망에 연결된 컴퓨터만 식별할 수 있는 IP Address
  • 포트
    • 통신할 대상 프로그램 (프로세스, process) 을 식별하는 번호
    • <IP Address>:[<Port Number>] 포트 번호는 생략 가능
    • 하나의 포트 번호에는 하나의 프로그램만 연결되어 있음
  • 게이트웨이
    • 다른 네트워크의 컴퓨터와 통신하기 위한 역할
  • 패킷
    • 네트워크에서 호스트 간 송수신 되는 데이터의 형식화된 블록
    • 패킷 교환 방식 - 현재 기본 네트워크 전송 방식
  • 라우터
    • 패킷이 네트워크 상에서 원활하게 전송될 수 있도록 최적의 경로 정보 탐색하는 역할
  • 네트워크 프로토콜 스택
    • TCP / IP
      • Application Layer
        • HTTP/HTTPS, SSH, SMTP, POP3, FTP, ...
      • Transport Layer
        • 포트 번호 결정
        • TCP, UDP, ...
      • Internet Layer
        • 송/수신 IP Address 결정
        • IP, ICMP, ...
      • Network Acces Layer
        • 실제 패킷 송/수신
  • CIDR
    • IPv4 가용한 IP는 3,706,452,992개, IPv4로 할당할 수 있는 IP Address는 거의 다 사용
    • 해결방법은 Private Network (사설 네트워크)
      • 하나의 Public IP를 여러 기기가 공유할 수 있는 방법
      • 하나의 망에는 Private IP를 부여받은 기기들과 Gateway로 구성
        • 각 기기는 인터넷과 통신 시 게이트웨이를 통해 통신
      • Private IP는 지정된 대역의 아이피만 사용 가능
    • 여러 개의 사설망을 구축하기 위해 망을 나누는 방법
      • 192.168.0.0/16
        • /16 은 클래스를 의미, 2진수 1이 16자리
        • 11111111 11111111 00000000 00000000 (1은 네트워크 ID, 0은 호스트 ID)
      • 10.88.135.144/28
        • 10.88.135.144 ~ 10.88.135.159 대역
    • 결론은 네트워크를 잘게 쪼갠 것을 서브넷이라고 하고,
       서브넷에 어떤 IP들이 표현될 수 있는가를 표현한 집합을 CIDR 블럭이라고 한다.
    • https://cidr.xyz/
 

CIDR.xyz

CIDR.xyzAn interactive IP address and CIDR range visualizer CIDR is a notation for describing blocks of IP addresses and is used heavily in various networking configurations. IP addresses contain 4 octets, each consisting of 8 bits giving values between 0

cidr.xyz

 

 

HTTP 통신과 Socket 통신의 차이점

목표 Htttp 통신과 Socket 통신의 차이점을 이해한다. HTTP 통신이란?  HTTP란 HyperText Transfer Protocol의 약자로 HTML 파일을 전송하는 프로토콜이라는 의미를 가진다. 웹브라우저에서 통신이 일어나며,

kotlinworld.com


네트워크의 이해

 

네트워크 패킷 분석

  • wireshark 프로그램
    • 오픈 소스 방식의 패킷 분석 프로그램
    • 네트워크를 통해 송수신되는 패킷에 대한 분석을 통하여
      보안 이슈나 트러블 슈팅에 대한 분석 목적으로 많이 사용된다.
    • Windows, Linux, MacOS에서 제약 없이 사용 가능
    • https://www.wireshark.org/
 

Wireshark · Go Deep.

What is SharkFest? SharkFest™, launched in 2008, is a series of annual educational conferences staged in various parts of the globe and focused on sharing knowledge, experience and best practices among the Wireshark® developer and user communities. Shar

www.wireshark.org

 

wireshark 구성 화면

  • 필터 툴바를 이용하여 원하는 패킷을 Filtering 할 수 있다.
    • icmp - icmp 패킷만 필터링
    • tcp.port == 80 - tcp port 중 80포트(HTTP)로 송수신되는 패킷만 필터링
    • tcp - tcp 프로토콜 패킷만 필터링
    • ip.addr == <IP Address> - 특정 IP Address로 송수신되는 패킷만 필터링
    • ip.src == <IP Address> - Source(송신 측) IP Address로부터 수신되는 패킷만 필터링
  • 오픈 소스 (Open Source) 프로그램
    • 공개 프로그램이라고도 한다.
    • 기본적으로 무료 사용이 가능한 프로그램이고, 프로그램 소스 코드를 공개하는 경우가 일반적이다.
    • 장점
      • 무료로 프로그램 사용 가능
      • 프로그램 소스를 제공해주므로 필요에 따라 기능을 수정하여 나만의 프로그램을 작성할 수 있다.
    • 단점
      • 무료이고 명확한 관리 주체가 없는 경우가 많아서 보안 이슈나 기능 업그레이드가 원활하지 않다.
      • 사용 시 문제점이 발생하면 직접 도움을 받기 어렵다.
  • 네트워크 연결 장치 관련 용어
    • 네트워크 어댑터 (adapter) - 네트워크에 연결된 장치에 대한 용어
    • 네트워크 장치 드라이버
      • 네트워크 연결 장치를 실제 제어하는 프로그램
      • O/S 내에 설치되는 프로그램
      • O/S가 사용하며 실제 장치 제어 목적의 프로그램

네트워크 어댑터

 

ICMP Packe

 

인터넷 제어 메시지 프로토콜 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)는 인터넷 프로토콜 스위트에 기록된 주요 프로토콜 가운데 하나이다. 네트워크 컴퓨터 위에서 돌

ko.wikipedia.org

 

TCP Packet

 

전송 제어 프로토콜 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 전송 제어 프로토콜(Transmission Control Protocol, TCP, 문화어: 전송조종규약)은 인터넷 프로토콜 스위트(IP)의 핵심 프로토콜 중 하나로, IP와 함께 TCP/IP라는 명칭으로

ko.wikipedia.org

 

UDP Packet

 

사용자 데이터그램 프로토콜 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. UDP은 여기로 연결됩니다. 다른 뜻에 대해서는 UDP (동음이의) 문서를 참고하십시오. 사용자 데이터그램 프로토콜(User Datagram Protocol, UDP)은 인터넷 프로토콜 스위

ko.wikipedia.org

 

https://jeong-pro.tistory.com/155

 

패킷 분석 툴, 와이어샤크(WireShark) 사용법 (필터링, 검증, 처음 사용해보는 사람을 위한 안내)

와이어샤크(Wireshark) 와이퍼샤크는 오픈 소스 패킷 분석 프로그램으로 "pcap"을 이용하여 패킷을 잡아내는 것이 주요 기능이다. 윈도우뿐만 아니라 리눅스같은 유닉스 계열의 운영체제에서도 사

jeong-pro.tistory.com


암호화 방식 (보안 기능)

 

대칭 키 암호 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 대칭 키 암호(symmetric-key algorithm)[1]는 암호화 알고리즘의 한 종류로, 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘을 의미한다. 대칭 키 암호에서는 암호화

ko.wikipedia.org

 

 

공개 키 암호 방식 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 공개 키 암호 방식(公開 - 暗號 方式, public-key cryptography)은 암호 방식의 한 종류로 비밀 키 암호 방식과 달리 암호화와 복호화에 이용하는 키가 다른 방식을 말

ko.wikipedia.org


보안 프로토콜

  • 인터넷이라는 환경은 누구나 마음대로 사용할 수 있는 환경이고,
    또한 패킷의 내용을 마음대로 열어 볼 수 있으므로 데이터 송수신 시 데이터에 대한 보안을 적용할 필요가 있다.

  • HTTP는 기본적으로 암호화 되지 않은 데이터를 송/수신한다.
  • HTTPS는 HTTP 프로토콜에 암호화를 적용한 프로토콜이고, 기본 포트 번호는 443번을 사용한다.
  • HTTPS가 사용하는 보안 기능 (암호화 방식)
    • SSL (Secure Sockets Layer)
      • 현재 SSL3.0까지 나와있고 추후 업데이트는 없데이트 없는 보안 기능
    • TLS (Transport Layer Security)
      • 현재 TLS1.3까지 나와있고 SSL의 업그레이드 버전이며 SSL과 다른 제작사에 의해서 관리되고 있다.
      • 통상적으로 SSL이라고 하는 보안 기능은 TLS를 의미
      • HTTPS - SSL, HTTPS - TLS, HTTP-SSL/TLS 등 여러 가지 형태로 표기
    • SSL / TLS 인증서
      • 클라이언트와 서버 간 통신을 제3자가 보증 해주는 문서
      • 클라이언트가 서버에 접속하면 서버는 클라이언트에게 인증서를 전송하고
        클라이언트는 전달 받은 인증서를 보고 신뢰 할 수 있는지 확인 후 데이터를 보내는 절차를 수행
    • HTTP는 연결을 계속적으로 유지하지 않는 프로토콜이므로,
      만약 클라이언트에 대한 정보 유지를 하려면 과거에는 쿠키 (Cookie)를 많이 사용하였으나,
      보안 이슈 등에 의해서 요즘은 서버의 세션(Session)에 정보를 관리하는 방법을 많이 사용한다.
    • 쿠키와 세션 차이
  쿠키 (Cookie) 세션 (Session)
저장 위치 클라이언트 (=접속자 PC) 웹 서버
저장 형식 Text Object
만료 시점 쿠키 저장시 설정
(브라우저가 종료되도, 만료시점이
지나지 않으면 자동 삭제되지 않음)
브라우저 종료시 삭제
(기간 지정 가능)
사용하는 자원 (리소스) 클라이언트 리소스 웹 서버 리소스
용량 제한 총 300개
하나의 도메인 당 20개
하나의 쿠키 당 4kb (=4,096byte)
서버가 허용하는 한 용량제한 없음
속도 세션보다 빠름 쿠키보다 느림
보안 세션보다 안좋음 쿠키보다 좋음

 

  • SSL/TLS 통신 과정

    1.  클라이언트에서 서버 접속
      1. 클라이언트는 랜덤한 데이터와 현재 지원 가능한 암호화 방식 전달
    2. 서버가 응답
      1. 인증서의 공개키
      2. 서버에서 생성한 랜덤한 데이터
      3. 가장 안전한 암호화 수단
    3. 클라이언트는 내장 인증서 리스트에서 서버가 보낸 인증서 복호화
      1. 내장 인증서에 없는 인증서인 경우 사용자에게 경고
      2. 내장 인증서에서 포함된 인증서인 경우 서버를 신뢰할 수 있고,
        클라이언트가 전송한 랜덤한 데이터와 서버가 전송해 준 랜덤한 데이터를 이용하여
        Pre Master Secret Key 생성
    4. 서버로부터 전송받은 공개키로 Pre Master Secret Key를 암호화하여 서버로 전송하고,
      서버는 개인키로 Pre Master Secret Key를 복호화하여 클라이언트와 Pre Master Secret Key를 공유한다.
    5. 서버와 클라이언트는 Pre Master Secret Key를 이용하여 Master Secret 값을 만들고,
      Master Secret 값을 이용하여 Session Key를 생성
    6. 서버와 클라이언트는 세션이 생성되고 Session Key를 이용하여 암호화한 데이터를 주고 받으며 통신한다.
       대칭키 암호화

      ※ 대칭키는 공개키에 비해 빠르지만 키 전송에 문제가 발생할 여지가 있다.
          따라서 SSL 핸드쉐이킹 과정에서 Key를 공유하기 위해 공개키 암호화 방식을 이용하고
          이후 Session Key를 사용할 때는 대칭키 암호화 방식을 사용한다.
  • SSL 참고
    https://study-recording.tistory.com/11
 

SSL이란 무엇인가

1. SSL SSL은 Secure Sockets Layer의 약자로 웹 표준 암호화 통신으로서 웹브라우저와 서버 사이에 정보를 암호화해주는 방식이다. SSL과 TLS (Transport Layer Security)는 동일한 용어로 넷스케이프에 의해서..

study-recording.tistory.com


Linux 개요

 

운영체제 (Operating System, O/S)

  • 컴퓨터 시스템을 운영할 수 있도록 환경을 구성하는 System S/W
  • 운영체제 구성
    • Kernel
      • H/W (CPU, Memory, I/O Device) 제어
        • 프로그램 (프로세스) 실행 관리
        • 파일 시스템 관리
        • Device 제어
      • 별도의 사용자 인터페이스는 제공되지 않는다.
    • Shell
      • 사용자와 Kernel 간 상호 작용 수행 프로그램
      • CLI 방식과 GUI 방식으로 사용

Linux

  • 오픈 소스 방식의 O/S
    • Linux Kernel의 Source는 모두 공개 되어 있다. (https://kernel.org/)
    • Linux Shell의 Source도 모두 공개 되어 있다.
    • Linux에서 사용하는 명령 또는 Application도 모두 Source가 공개 되어 있다.
  • 다중 사용자 지원 - 여러 사용자의 동시 접속을 허용
  • 다중 처리 가능 - 동시에 여러 프로그램 실행 가능
  • 주로 Server 목적으로 컴퓨터 운영 시 사용
  • Linux 개발 과정
    • Linux Kernel 개발 (1991년) - 리누스 토르발스
      • Git - 리누스 토르발스가 Source 관리 목적으로 개발 (https://git.kernel.org/)
      • Git 기능
        • Document (프로그램 소스, 파일 등) 이력 관리 (형상 관리)
        • 여러 사용자의 Document 협업이 가능
        • Repository (저장소) 기능
    • Linux Shell 개발 - FSF (자유 소프트웨어 재단)
      • GNU(그누) 정신 - "누구나 소프트웨어를 자유롭게 사용, 복제, 수정, 배포 할 수 있어야 한다."
      • GNU/Linux 개발
        • Linux Kernel
        • GNU Shell 및 Application
  • Linux 구분
    • Linux - Linux Kernel을 의미
    • Linux 배포판
      • Linux Kernel
      • Shell
      • Desktop UI
      • 배포판 특화 Application
      • Utilities 
    • 원칙적으로 Linux라고 이야기하면 Linux Kernel을 의미하지만,
      현재는 Linux 배포판을 Linux라고 보통 부른다.
    • Linux 배포판 종류
      • RedHat 계열 배포판
        • 서버 운영체제로서 많이 사용
        • 특히 네트워크 운영에 강점이 있다.
        • 유료 - RHEL (RedHat Enterprise Linux), 기술 지원 비용이 유료임
        • 대표적 무료 배포판
          • CentOS (RHEL의 Open Source로 별도의 업데이트 및 업그레이드 중단됨)
          • Fedora (공개 커뮤니티에 의해 제공)
      • Debian 계열 배포판
        • FSF의 GNU 프로젝트에 지원을 받은 배포판
        • Desktop 목적의 사용에 강점이 있다.
        • Debian, Ubuntu, ...
      • Slackware 계열 배포판
        • 안정적인 동작
        • 주로 유럽이나 미주에서 많이 사용하고 국내에서는 사용빈도가 높지 않다.
      • 배포판은 기본적으로 같은 Linux Kernel을 사용하더라도
        설치 방법 및 Application 지원 정도에 차이가 존재한다. 아래 링크 참고
        https://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.png

TIF

피곤해서 그런가 사용해보지 않았던 wireshark 라는 놈이 갑자기 튀어나와서 그런가 초반에 집중하지 못했다.

그래서 그런가 어제보다 훨씬 더 어려운 느낌이다.

익숙하던 내용을 배우는 것은 이제 끝났다고 생각하고 새로운 것들을 받아들여야겠다.

바로 이해하려고 하지말고, 흐름정도 이해하고 반복하면 얼마든 가능하다.

벌써 내일이 1주차 끝이다.

마부작침, 옛날에 기술 배울 때 좋아했고 한때 카톡 상태메세지로도 해놨던 말인데... 다시 해놔야 될 판이다...

 

 

2022. 08. 04 에 작성된 글입니다.

 

 

반응형
profile

어쩌다 IT

@jwlish

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!