728x90
반응형

Static Pages와 Dynamic Pages

 

정적 페이지와 동적 페이지

1. Static Pages 

    - Web Server는 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환한다.

    - 항상 동일한 페이지를 반환한다.

    - Ex) image,html,css,javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들 

2. Dynamic Pages 

    - 인자의 내용에 맞게 동적인 contents를 반환한다.

    - 즉, 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물 

     * Servlet : WAS 위에서 돌아가는 Java Program

    - 개발자는 Servlet에 doGet()을 구현한다.

 

Web Server와 WAS의 차이 

 

Web Server 

 

Web Server의 개념 

  - 소프트웨어와 하드웨어로 구분된다.

  - 하드웨어 

     - Web 서버가 설치되어 있는 컴퓨터

  - 소프트웨어 

     - 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html.jpeg.css 등)

Web Server의 기능 

  - HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스  

    하는 기능을 담당한다.

  - 요청에 따라 아래의 두 가지 기능 중 적절하게 선택하여 수행한다.

기능 1) 

   - 정적인 컨텐츠 제공 

   - WAS를 거치지 않고 바로 자원 제공 

기능 2) 

   - 동적인 컨텐츠 제공을 위한 요청 전달 

   - 클라이언트의 요청(Request)을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달

     (응답,Response)한다.

   - 클라이언트는 일반적으로 웹 브라우저를 의미한다.

Web Server의 예

  Ex) Apache Server,Nginx,IIS(Windows 전용 Web 서버)

 

WAS(Web Application Server)

 

- WAS의 개념

    - DB조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진

      Application Server

    - HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)이다. 

    - "웹 컨테이너(Web Container)" 혹은 "서블리 컨테이너(Servlet Container)"라고도 불린다.

    - Container란 JSP,Servlet을 실행시킬 수 있는 소프트웨어를 말한다.

    - 즉 WAS는 JSP,Servlet 구동 환경을 제공한다.

- WAS의 역할 

  - WAS = Wev Server + Web Container 

  - Web Server 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 제시되었다.

    - 분산 트랜잭션,보안,메시징,쓰레드 처리 등의 기능을 처리하는 분산 환경에서 사용된다.

    - 주로 DB서버와 같이 수행된다. 

  - 현재는 WAS가 가지고 있는 Web Server도 정적인 컨텐츠를 처리하는데 있어서 성능상 큰 차이가 없다.

- WAS의 주요 기능 

   i. 프로그램 실행 환경과 DB 접속 기능 제공

   ii. 여러 개의 트랜잭션(논리적인 작업 단위) 관리 기능

   iii. 업무를 처리하는 비즈니스 로직 수행

- WAS의 예

   EX) Tomca,JBoss.Jeus,Web Sphere 등

 

Web Server와 WAS를 구분하는 이유 

 

 

- Web Server가 필요한 이유 ? 

  - 클라이언트에 이미지 파일을 보내는 과정을 생각해보자 

    - 이미지 파일과 같은 정적인 파일들은 웹 문서(HTML 문서)가 클라이언트로 보내질때 함께

      가는 것이 아니다 

    - 클라이언트는 HTML문서를 먼저 받고 그에 맞게 필요한 이미지 파일들을 다시 서버로 

      요청하면 그때서야 이미지 파일을 받아온다.

    - Web Server를 통해 정적인 파일들을 Application Server까지 가지 않고 앞단에서 빠르게 보내줄 수 있다.

- 따라서 Web Server에서는 정적 컨텐츠만 처리하도록 기능을 분배하여 서버의 부담을 줄일 수 있다.

 

WAS가 필요한 이유?

  - 웹 페이지는 정적 컨텐츠와 동적 컨텐츠가 모두 존재한다.

    - 사용자의 요청에 맞게 적절한 동적 컨텐츠를 만들어서 제공해야 한다.

    - 이때, Web Server만을 이용한다면 사용자가 원하는 요청에 대한 결과값을 모두 미리 만들어 놓고 

      서비스를 해야 한다.

    - 하지만 이렇게 수행하기에는 자원이 절대적으로 부족하다.

  - 따라서 WAS를 통해 요청에 맞는 데이터를 DB에서 가져와서 비즈니스 로직에 맞게 그때 그때 결과를 

    만들어서 제공함으로써 자원을 효율적으로 사용할 수 있다.

 

그렇다면 WAS가 Web Server의 기능도 모두 수행하면 되지 않을까 ?

 1. 기능을 분리하여 서버 부하 방지 

     - WAS는 DB조회나 다양한 로직을 처리하느라 바쁘기 때문에 단순한 정적 컨텐츠는 Web 

        Server에서 빠르게 클라이언트에 제공하는 것이 좋다.

     - WAS는 기본적으로 동적 컨텐츠를 제공하기 위해 존재하는 서버이다.

     - 만약 정적 컨텐츠 요청까지 WAS가 처리한다면 정적 데이터 처리로 인해 부하가 커지게 되고 

       동적 컨텐츠의 처리가 지연됨에 따라 수행 속도가 느려진다.

     - 즉, 이로 인해 페이지 노출 시간이 늘어나게 될 것이다.

2. 물리적으로 분리하여 보안 강화

    - SSL에 대한 암복호화 처리에 Web Server를 사용 

3. 여러 대의 WAS를 연결 가능 

      - Load Balancing을 위해 Web Server를 사용 

      - fail over(장애 극복), fail back 처리에 유리 

      - 특히 대용량 웹 어플리케이션의 경우(여러 개의 서버 사용) Web Server와 WAS를 분리

        하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.

      - 예를 들어, 앞 단의 Web Server에서 오류가 발생한 WAS를 이용하지 못하도록 한 후

        WAS를 재시작함으로써 사용자는 오류를 느끼지 못하고 이용할 수 있다.

4. 여러 웹 어플리케이션 서비스 가능 

      - 예를 들어, 하나의 서버에서 PHP Application과 Java Application을 함꼐 사용하는 경우

5. 기타 

      - 접근 허용 IP관리,2대 이상의 서버에서의 세션 관리 등도 Web Server에서 처리하면 효율적이다.

- 즉, 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 Web Server와 WAS를 분리한다.

Web Server를 WAS앞에 두고 필요한 WAS들을 Web Server에 플러그인 형태로 설정하면 더욱 

효율적인 분산 처리가 가능하다.

 

Web Service Architecture 

 

- 다양한 구조를 가질 수 있다.

   1. Client -> Web Server -> DB 

   2. Client -> WAS -> DB

   3. Client -> Web Server -> WAS -> DB

 

3번 구조의 동작과정 

 

1. Web Server는 웹 브라우저 클라이언트로부터 HTTP요청을 받는다.

2. Web Server는 클라이언트의 요청을 WAS에 보낸다. 

3. WAS는 관련된 Servlet을 메모리에 올린다.

4. WAS는 web.xml을 참조하여 해당 Servlet에 대한 Thread를 생성한다. (Thread Pool 이용)

5. HttpServletRequest와 HttpServletResponse객체를 생성하여 Servlet에 전달한다.

    5-1 Thread는 Servlet의 service 메서드를 호출 

    5-2 service 메서드는 요청에 맞게 doGet() 또는 doPost() 메서드를 호출한다.

6.doGet() 또는 doPost() 메서드는 인자에 맞게 생성된 적절한 동적 페이지를 Response 객체에 담아 WAS에 전달한다.

7.WAS는 Response객체를 HttpResponse형태로 바꾸어 Web Server에 전달한다.

8.생성된 Thread를 종료하고 HttpServletRequest와 HttpServletResponse 객체를 제거

 

DBMS와 MiddleWare의 개념

 

DBMS 

 - 다수의 사용자들이 DB내의 데이터를 접근할 수 있도록 해주는 소프트웨어

 - DBMS는 보통 Server형태로 서비스를 제공

 - Ex) MySQL,MariaDB,Oracle,PostgreSQL 

 - Q) DBMS Server에 직접 접속해서 동작하는 Client Program의 문제점 ?

       - Clinet에 로직이 많아지고 이에 따라 Client Program의 크기가 커진다.

       - 로직이 변경될 때마다 매번 배포가 되어야 한다

       - Client에 대부분의 로직이 포함되어 배포가 되기 때문에 보안에 취약하다.

- A) => 이를 해결하기 위해 아래와 같은 MiddlWare가 등장했다.

 

MiddleWare 

  - Client - MiddleWare Server - DB server(DBMS)

  - 동작 과정 

      - Client는 단순히 요청만 중앙에 있는 MiddleWare Server에게 보낸다.

      - MiddleWare Server에서 대부분의 로직이 수행

      - 이때, 데이터를 조작할 일이 있으면 DBMS에 부탁한다.

      - 로직의 결과를 Client에게 전송한다.

      - Client는 그 결과를 화면에 보여준다.

- 즉, 비즈니스 로직을 Client와 DBMS사이의 MiddleWare Server에서 동작하도록 함으로써

   Client는 입력과 출력만 담당하게 된다.

 

출처 : https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

반응형

'IT' 카테고리의 다른 글

RPA 란 ??  (0) 2021.08.18
스푸핑,스니핑,스누핑  (0) 2021.08.17
리눅스 보안 이슈를 해결하는 4가지 방법  (0) 2021.08.11
핫 스패어(Hot Spare)란 ??  (0) 2021.08.10
핫 스왑이란 ?  (0) 2021.08.10
728x90
반응형

정보보호목표 

 

기밀성 : 인가된 사용자만이 정보에 접근할 수 있음 

비인가 사용자에게 정보가 노출되지 않음 

무결성 : 인가된 사용자만이 권한에 따라 정보를 변경할 수 있음 

비인가 사용자의 정보 변경을 금지함.(해시함수)

가용성 : 인가된 사용자가 시스템 자원을 필요로할때 접근 가능함

 

정보보호 공격유형 

 

변조 : 원해의 데이터를 조작,소스프로그램 변경 후 악성코드 실행,특정 URL 접속 

가로채기 : 네트워크상에서 전송되는 데이터를 복사,열람하는 공격으로 수동적공격 

차단: 정상적인 서비스를 방해하는 행위 

위조: 송신되는 메시지를 변조하여 사용자를 속임 

 

정보보호 대책

구체성분류

1.일반통제 : 소프트웨어 생명주기에 대한 통제 (직무분리,시스템 개발,논리/물리적보안.하드웨어통제.비상계획 수립)

2.응용통제 : 트랜잭션.데이터 무결성 확보를 위한 통제(입력,처리,출력 통제

 

통제시점분류 

 

1.예방통제 : 능동적인 통제로 문제점을 사전에 식별하여 통제 수행

물리적 접근통제 - 승인받지 못한 사용자의 정보시스템 접근을 금지

논리적 접근통제 - 인증받지 못한 사용자의 정보시스템 접근 금지 (담장,자물쇠,보안 경비원,직무분리)

2.탐지통제: 발생한 사건을 식별하는 통제 (CCTV,보안 감사,감사로그,침입탐지,경보)

3.교정통제 : 발생한 사건을 교정 탐지된 위협과 취약점에 대응 (백신 소프트웨어)

 

사용자인증 방식 및 원리

 

1.지식기반인증 

 

패스워드 공격 기법 : 무차별공격.사전공격,트로이목마,사회공학.스니핑

소유기반인증 : 스마트카드,OTP 

존재(생체)기반인증 (손바닥,손,홍채,망막,지문)

존재기반 : 생채특성,지문,얼굴,홍채

생채인증 특성 : 보편성,유일성,지속성,성능,수용성(거부감이 없어야함), 저항성(위조 불가능)

생채인증 평가항목 : FRR : 잘못된 거부율

FAR : 잘못된 승인률

행동기반 인증 (개인의 고유한 행동적  특성을 사용해 인증하는 기술 : 서명,키스트로크,마우스 움직임,걸음걸이,모바일 패턴)

 

커버로스 인증

 

- 중앙집중형 사용자 인증 프로토콜 (RFC1510)

- 대칭키 암호화 기법을 기반으로하는 티켓기반 인증 프로토콜 

- 윈도우서버 운영체제의 기본 인증프로토콜 

 

커버로스 구성요소 

KDC : TGS+AS / 사용자와 서비스 암호화키 유지, 인증서비스 제공, 세션키 생성 및 분배

AS : 실질적 인증 수행 

Principals : 커버로스 프로토콜을 사용하는 모든 실제 

TGS : 티켓을 만들고 세션키.티켓 분배 

Ticket : 인증토큰 

 

접근통제 : 주체에 대한 객체의 접근을 통제 

비인가된 접근을 감시

객체의 기밀성,무결성,가용성을 보장

 

인증방식에 따른 분류 

인증 내용 기반 종류
Type 1  Something you know 지식 Password, Pin
Type 2  Something you have 소유 Smart Card, OTP
Type 3  Something you are 존재 홍채,지문,정맥
Type 4 Something you do 행동 음성,서명,패턴

 

2-Factor 인증 

 

인증방식 2가지를 동시에 사용하는 인증 방법

 

접근통제기술

 

1.MAC 

 

오직 관리자에 의해서 권한과 자원이 할당 됨

관리자로 부터 권한을 부여 받은 목록을 Security Lable에 작성

 

2.DAC 

 

자원에 대한 접근을 객체의 소유자가 권한을 부여 한다.

 

3.RBAC 

 

관리자는 사용자에게 권리와 권하이 정의된 역할을 만들어 사용자에게 역할기반으로 

권한을 할당하고 관리한다.

 

항목 MAC DAC RBAC
권한 부여자  System Data Owner Center Authority
접근 여부 결정 기준 Security Label(보안 등급) 신분(identity) 역할(Role)
장점 중앙 집중관리
안정적 시스템
유연
구현 용이
관리 용이
단점 구현 및 운영의 어려움
고비용
트로이목마,
ID도용문제
제어정책이 제대로 반영되기 어려움
예시 방화벽

UNIX / Linux
ACL HIPAA(보건보험)

접근통제 방법

1.Capablity list : 주체별로 객체를 linked리스트로 연결하고 권한 할당

탐색시간이 오래걸림

2.Access Control List : 주제와 객체간의 접근 권한을 테이블로 구성

사용자가 분포도가 안정적일때 적합 

 

접근통제 모델

1.Bell-Lapadula

높은 등급의 정보가 낮은 레벨로 유출되는 것을 통제하는 모델(기밀성 모델)

최초의 수학적 모델

TCSEC 근간

2.Biba

주체에 의한 객체 접근의 항목 (무결성보장 모델)

No Read Down,No Write Up

3.Clark and Wilson (클락 윌슨 모델)

무결성 줌심의 상업용 설계,Application 보안 요구사항을 다룸

4.만리장성 모델 

서로 상충 관계에 있는 객체간의 정보 접근을 통제하는 모델

기밀성 중심의 상업용 설계

 

키분배 프로토콜 

 

1.대칭키 암호화 (=비밀키):

암호화키와 복호화키가 동일한 암호화 기법 키교환 알고리즘 중요한 높음 

-기밀성 제공 무결성 인증 부인방지 X

-암호화,복호화 속도 빠름

-대용량 Data 암호화 적합 

 

스트림 암호/블록암호

구분 스트림암호 블록 암호
개념 Bit,바이트 단위 암호화 Bit x n 블록단위로 암호화
방법  평문을 XOR 1Bit 단위 암호화  블록단위 치환 대칭 반복(Fesitel,SPN)
장점  실시간암호/복호화,속도 대용량의 평문 암호화
종류 RC4,SEAL,OTP DES,3DES,AES,IDEA,SEED

 

2.공개키 암호화(=비대칭키,개인키) : 공개키로 암호화 개인키로 복호화하는 암호화 방법

인증,서명 암호화 수행

키 배분,공유,키 저장문제 해결

인증,부인방지 0

 

공개키암호화 종류 

 

구분 특징 수학적이론 장점 단점
Diffie
Hellman
최초의 공개키 알고리즘
키 분배 전용 알고리즘
이산대수 키 분배에 최적화 인증불가
위조에 취약
RSA 대표적 공개키 알고리즘 소인수분해 Library 다양화 키 길이 증가
DSA 전자서명 알고리즘 표준 이산대수 간단한 구조 전자서명 전용
암호화, 키 교환 불가
ECC PDA,스마트폰 핸드폰 타원곡석 오버헤드 적음 키 테이블 필요

 

전자서명 서명과 인증

 

전자서명: 서명자가 해당 전자문서에 서명하였음을 나타내기 위해 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보

- 개인의 고유성 인증,무결성/추적성 확보

 

전자서명 특징

 

1. 위조불가 : 합법적 서명자만이 전자서명 생성 가능

2. 변경불가 : 서명한 내용을 변경 할 수 없음

3. 재사용불가 : 서명을 다른 전자문서의 서명으로 사용불가

4. 부인방지 : 서명 후 서명자는 서명한 사실을 부인할 수 없음 

5. 서명자인증 : 전자서명 서명인을 검증 가능 (서명자의 공개키)

 

메세지,전자서명,키교환

---------------송신자---------------

메시지 1

1.Message Digest 생성 - 해쉬함수

2.전자서명 - 송신자의 개인키 (RSA)

3.전자서명 암호화 - 송신자의 비밀키 (DES)

 

메시지 2

4.Message - 송신자의 비밀키 (DES)

5.암호문 생성 

-------------전자서명 완료---------------

 

6.송신자의 비밀키 암호화 전달 - 수신자의 공개키(RSA)

 

-----------------수신자-------------------

7.송신자의 비밀키 획득 - 수신자의 개인키

 

메세지 1

8.전자서명 획득 - 송신자의 비밀키(대칭키) (DES)

9.Message Digest 획득 - 송신자의 공개키 (RSA)

사용자인증

 

메세지 2

 

10.Message 획득 - 송신자의 비밀키(대칭키)(DES)

11.Message Digest 획득 - 해쉬함수 

메시지인증 

 

12.전자서명확인- 9,11Message Digest 비교 

 

------------인증완료----------------

 

송신자: 개인키 - 전자서명 

공개키 - 전자서명 확인

수신자: 개인키 - 복호화 

공개키 - 암호화 

 

전자서명 기법의 종류 

RSA 소인수분해
암호화/복호화
송신자의 개인키와 공개키 사용
EIGamal 이산대수
Schnorr EIGamal기반 크기 축소
IC 카드 활용
DSS EIGamal기반 계산량 감소
미국 전자서명 표준
전자서명만 지원
KCDSA 이산대수
국내 전자서명 표준
ECC 타원곡선
짧은 키 사용
짧은 시간 내 전자서명 생성
ECDSA

 

PKI

공개키 암호 방식을 바탕으로 디지털인증서를 활용하는 SW,HW,USER 정책 및 제도 총칭

은행,증권,카드 보험에서 사용하는 공인인증 구조로 공인인증서(X.509,ITU-T표준)을 통해 인증받는 구조 

 

PKI 기능 

인증 사용자에 대한 신원 확인(공개키 인증) 인증서 X.509
기밀성 송/수신정보 암호화 암호/복호화
AES,SEED,3DES
무결성 송/수신정보 위조불가 보장 해시함수
SHA,MD5
부인봉쇄 송/수신자 송수신 사실
부인 불가
전자서명
접근 제어 허가된 수신자만 정보 접근 DAC,MAC,RBAC
키 관리 공개키 생성,등록,분배,폐지,관리 CA

 

PKI 구성 

인증관련기관

 

1.인증기관 : 인증정책 수립,인증서 관리

2.등록기관 : 신원확인,CA인증서 발급요청

 

인증서 암호/키 관리

 

3.CRL : 인증서 폐기 목록

4.Directory: 인증서,암호키 저장 및 관리(X.500,LDAP)

 

인증도구 

5. X.509 : CA 발행하는 인증서 기반 공개키 인증서 표준 포맷 (사용자신원 + 키정보)

6. 암호키 : 개인키,공개키

 

X.509 인증서 내용

 

인증서버전,인증서 고유번호,발급자의 서명,발급자 정보 

인증서 유효기간,주체 정보,공개키,주체키

 

암호학 

암호화기법 

1. 치환 : 혼돈,문자열을 다른 문자열로 이동하면서 교체 

A-C B-D C-E

2 전치,순열 : 확산,문자의 순서를 바꿈

A-C B-E D-A

3. 대칭키 암호화 : 송/수신자의 키가 동일 

4. 공개키 암호화 : 개인키(사설키),공개키 

5. 양자암호 : 양자역학의 원리를 이용한 암호화 방식 

 

정보이론 

혼돈 : 암호문과 평문과의 상관관계를 숨김(대치)

확산 : 통계적 성질을 암호문 전반에 퍼뜨려 숨김 (전치,순열)

 

대칭키 암호화 

1.스트림암호화 기법(RC4,SEAL,OTP):

비트/바이트 단위로 암호화 수행

고속암호화,하드웨어 구현용이

wifi,OTP 

 

블록암호화 기법(DES,3DES,AED):

고정된 길이의 입력 블록 - 고정된길이 출력블록 변환하는 알고리즘

Feistel(역추적가능), SPN(역추적 불가능)구조 

1.ECB : 가장 단순한 모드 블록을 순차적으로 암호화 (독립적)

2.CBC : 블록 / IV XOR 연산 (독립적)

3.CFB : 암호화 IV / 블록 XOR 연산 (연쇄적)

4.CFB : IV 암호화 - (블록2전송) XOR 블록 1연산 (연쇄적) 영상데이터,음성데이터

5.CTR(CounTer): 블록/키스트림 XOR 암호화시 1증가하는 카운터 암호화

 

블록암호화 알고리즘

 

1.DES:Feistel

대칭키 암호화 알고리즘으로 미국/국제표준 알고리즘

입력 : 64Bit 출력:64Bit 치환암호+전치암호(혼합암호)

* 현재는 128Bit이상 사용

 

2.IDEA : SPN

스위스에서 개발한 대칭키 암호화 알고리즘

입력:128Bit 출력:64Bit

전자우편 PGP방식에 사용

HW/SW 구현 용이 

DES 2배 빠른속도 

 

3.RC5(Ron&s Code 5):

DES 10배 빠른 속도

32/64/128Bit

 

4.AES:SPN

 

NIST(미국국립표준연구소) 표준 알고리즘

크기제한 없음

128/192/256Bit

 

5.SEED : Feistel

KISA/ETRI 대칭키 블록 암/복호화 알고리즘

128Bit

 

암호분석 방법의 종류 

 

1.암호문 단독 공격 

암호문만으로 공격,통계적 성질/문장특성 추정

 

2.알려진 평문 공격

암호문에 대응하는 일부 평문가용

 

3.선택 평문 공격

평문 선택시 대응되는 암호문을 얻을 수 있는 상태에서의 공격

 

4.선택 암호문 공격

암호문 선택시 대응되는 평문을 얻을 수 있는 상태에서의 공격

 

비대칭키암호화

1.디피헬먼

최초의 공개키 암호화 알고리즘

IPSEC IKE 키교환 알고리즘

중간자 공격에 취약

 

2.RSA 

공개키 암호화방식의 산업 표준

소인수분해

전자서명

 

해시함수 (MD5,SHA-256,LSH)

복호화가 불가능한 일방향 암호기술

무결성만 지원

 

해시함수 조건 

 

1.압축 : x길이 평문을 고정된 길이의 출력값으로 변환

2.일방향 : 역방향 계산 불가능

3.효율성 : 해시값 계산에 시간이 많이 소요되지 않아야함.

4.충돌회피 : h(m1)=h(m2) m1,m2 계산불가능

5.2차 선이미지 회피성:h(m1) = h(m2) m1!=m2 계산불가능

반응형
728x90
반응형

인터넷 응용보안

 

1. FTP : 파일 전송 프로토콜(TCP 20, 21,1024 ~ 65535)

(1) Active Mode : 접속 - 21번 Port / 데이터 전송 - 20번 Port 

(2) Passive Mode : 접속 - 21번 Port / 데이터 전송 -1024 ~ Port

 

FTP 종류 

(1) FTP : ID/PW 인증,TCP 

(2) tFTP : 인증 x, UDP 

(3) sFTP : 전송구간에 암호화 기법사용 (기밀성)

 

FTP log 기록 (FTP 접속시 -I)

xferlog 파일 기록 

Sat Oct 29 21:35:39 2020 1 111.11.111.11 70 /home/aa.txt a _i r test ftp 0*c

2020년 10월 29일 토요일 21시 35분 39초 111.11.111.11 IP에서 aa.txt 파일 업로드 성공

C (complete) : 성공

 

FTP 보안 취약점 

 

Bounce Attack : 익명 FTP 서버 경유 호스트 스캔

Brute Force : 무작위 대입

tFTP Attack : 인증없이 접근 

Anoymous FTP Attack

FTP Server week point 

sniffing 

* FTP 사용자는 반드시 계정을 /etc/password nologin으로 관리할 것 

 

E-Mail 보안

Email 전송 방법

 

(1) SMTP// TCP 25/DNS MX/응용계층

전자우편 송신 통신 규약 

(2) POP3 TCP 110/응용계층

원격서버로 TCP/IP 통신으로 E-Mail 수신시 사용 수신 후 서버에서 메일 삭제

(3) IMAP 

메일 서버에 저장,소프트웨어 상관X,복잡성/보안문제 해결

 

Email 보안 기법 

 

(1) PGP 

MIME 객체 + 암호화,전자서명 프로토콜 

송수신자 보안서비스 제공/평문 메시지 암호화

메세지 암호화(3DES,IDEA), 서명(DSS/SHA),압축,분할

전자우편 호환성,세션키생성(RSA,DiffieHelmen),이메일 호환(ASC Code)

 

(2) PEM 

인터넷 이메일 보안 시스템 중 하나 

중앙 집중화된 키 인증 방식 -> 구현 어려움 

군사,은행 사용 

메시지암호화(DES-CBC), 디지털서명(RSA,MD2,MD5),인증(DES,MD2,MD5)

세션키 생성(DES,RSA,MD2),전자우편 호환성

 

(3) S/MIME 

표준보안 메일규약 

메일 전체 암호화 (RSA,DES,SHA-1)

CA로부터 공개키 인증필요 

첨부파일 보안 

RSA사에서 개발

 

/etc/mail/access 작성규칙

 

RELAY : 특정 도메인 relay 허용

DISCARD : 메일 수신 후 폐기 

501 : 전체,부분 특정 도메인 일치시 메일 거부

550 : 특정 도메인 메일 거부 

 

Spam 메일 차단 방법 

 

RBL : 참조서버로부터 유해 메일 전송IP 차단

SPF : 발신자 SPF레코드를 DNS 저장 후 정보 확인

 

Span Assasin (perl)

점수를 이용하여 스팸차단(90%이상)

RBL 서버 참고 

웹 서버 보안(Web Server Security)

HTTPD(80)

Fork함수를 통해 자식프로세스를 생성

설정파일 :/etc/httpd/conf/httpd.conf

 

아파치 웹서버 보안

주요 디렉터리 및 파링 접근 권한 

Directory Listing 

Server Tokens : 웹서버 정보 노출 (Prod : 최소한)

Server Signiture : 아파치 버전 및 서버 이름 노출

 

윈도우 웹서버 (IIS) : FTP,SMTP,NNTP

서비스 : FTP.WWW.SMTP(메일),NNTP(뉴스)

계정 및 그룹 : IUSR_MACHINE(인터넷 접근 익명 계정)

IWAN_MACHINE(out-of-process 웹 어플리케이션 계정)

폴더: %windir%/system32/inetsrv/iisadmin(IIS 관리 프로그램) 

%windir%/system32/inetsrv(IIS 도움말)

%systemdrive%/inepub(웹,FTP,SMTP 루트폴더)

웹사이트 : 기본80: %systemdrive/inetpub/wwwroot

              관리 3693 :%systemdrive%/system32/inetsrv/iisadmin

웹 로그 분석

 

서버에서 발생하는 log :/var/log/httpd/access_log

서버에서 발생하는 에러 log : SeverRoot/logs/error_log

 

ErrorLog Level 

Crit : 중대한 에러 발생

Emerge : 에러 

Warn : 경고 

Error : 중대하지 않는 에러 

 

HTTP 상태코드

 

200 OK 

403 Forbidden

404 Not Found 

502 Bad Gateway

504 Gateway Time-out

 

DNS보안

DNS확인 : ipconfig/displaydns DNS Cache 테이블 확인

DNS Query (UDP 53) : Recursive Query(순환) - Locasl DNS에 질의

       lterative Query(반복) - Local DNS - 외부 DNS Server 질의

DNSSEC : DNS 응답 정보에 전자서명 값 첨부 

 

DB보안 

DB위협요소

집합 : 낮은 보안 등급의 정보들을 이용하여 높은 등급의 정보를 알아 내는 것 

추론 : 보안등급이 없는 정보를 접근하여 기밀정보 유추

 

DB 보안 기법 

Plugin : 데이터베이스 서버에 별도 암호화 솔루션 설치

API : 암호화 API 호출을 통해 암호화 수행

 

백업 방식 

전체 백업 

차등 백업 : 가장 최근에 수행된 전체 백업 이후 변경된 모든 DB 백업

증분 백업 : 가장 최근 백업 이후 변경된 것만 백업 

 

전자상거래 보안 

 

전자화폐 : 전자기기에 전자기호 형태로 화폐적 가치를 저장,전자적 지급수단으로 활용

전자화폐 요구조건

1 불추적성(익명성) : 사생활 보호 

2 가치이전성: 즉시 양도 가능 

3 분할설 : 똑같은 가치 분할 가능 

4 독립성(완전 정보화) : 디지털 데이터 자체로서 완벽한 화폐가치를 가져야함

5 익명성 취소 : 불법적으로 사용될 경우 사용자 노출 허용 

EX) 몬덱스,비자캐시,PC Pay Ecash,NetCash,비트코인

 

SET(Secure Electronic Transaction)

 

- 신용카드 촉진을 위해 VISA와 MASTER CARD 공동 개발한 프로토콜

- 전자 상거래 인증 상호 작용 보장 

- SSL 보다 속도 느림

- 지급결제 처리 복잡

- 기밀성,무결성,인증,부인봉쇄지원

- 이중서명,이중해시 

- 대칭키,공개키,전자서명,해시함수,전자봉투,공개키 인증(x.509),이중서명

- 알고리즘 : DES,RSA,SHA

- 사용자가 전자지갑 소프트웨어가 필요함

 

SSL 443

- Netscape 개발

- 안전한 통신 지원 

- 전송,응용계층

- http,ftp,telnet,mail

- 기밀성,무결성,인증

- Random : 재생공격방지를 위한 난수

 

SSL구성요소

1 Change Cipher Spec Protocol : SSL중 가장 단순한 프로토콜

협의된 알고리즘,키교환 알고리즘,MAC암호화,HASH 알고리즘 -> 클라이언트,웹서버 공지

2 비정상적인 동작이 발생될 때 사용되는 프로토콜 Level, Description 필드 있음 

3 Record Protocol : 

송신 - 협의된 알고리즘을 사용해 데이터를 암호화하고 산출된 데이터를 SSL에서 처리가 가능한 크기의 블록으로 나눔 후 압축 MAC를 붙여 전송

수신 - 데이터 복호화,MAC유효성 검사,압축 해제,재결합 -> 상위계층 전달 

 

SSL HandShaking

 

1 Client Hello : 클라이언트 브라우저 (암호알고리즘,키교환 알고리즘,MAC암호화,HASH 알고리즘) > 서버 

2 ServerHello : 서버 > 클라이언트 

2.5 Server Hello Done : 서버 > 클라이언트 

3 Certificate : 클라이언트 > 서버 > 인증서 

4 Exchange Key (Premaster key 전송) : 클라이언트 > 서버 

5 인증서 확인 : 서버 > 복호화 

6 Master key 생성 : 서버,클라이언트 (PremasterKey 사용) > Session key 생성 

7 Client Finished : 클라이언트 (완료 공지) > 서버 

8 Server Finished : 서버 (동의,알고리즘공지) > 서버 

 

* Open SSL 취약점 (Heart Bleed) 

오픈 암호화 라이브러리 하트비트라는 확장모듈에서 웹브라우저 요청시 데이터 길이 검증 없이 메모리 데이터 

 

IPSEC(IP Security) : 안전한 인터넷 통신 규약,가상 전용 회선 구축 

전송방법 

1 터널모드 : IPsec탑재한 중계 장비가 패킷 전체를 암호화 + 새로운 IP header 

                New IP + ESP AH + IP...

2 전송모드 : 출발지에서 암호화 목적지에서 복호화 End to End,Payload(데이터)만 암호화

                IP + ESP AH + Payload ...

AH : 데이터 무결성,IP 패킷 인증/ESP : 암호화 전송,Replay Attack 방지

 

OTP : 한번만 생성된 난수를 패스워드로 사용

1 동기식 (시간,이벤트): 고정된 시간 간격 주기로 난수 값 생성(시간), 인증횟수 기준값(이벤트)

2 비동기식 (질의응답): 사용자(로그인) > 서버(질의값) > 사용자 (OTP질의입력) > OTP 생성

 

SQL lnjection 

 

입력값을 우회해 SQL쿼리를 전송하여 DB값을 얻어내거나 권한 탈취 ('or1=1 #)

공격 도구 : Havij,Panglin,HDSL 

인증우회,Blind SQL Injection, Mass SQL lnjection,Union SQL Injection

 

XSS 

 

실행가능한 스크립트를 재전송하는 공격 기법

세션갈취

공격대상 : 클라이언트

 

CSRF 

 

사용자의 권한을 탈취하여 웹사이트를 요청

서버와 클라이언트의 신뢰관계를 이용 

공격대상 : 서버 

 

DRM : 디지털콘텐츠 저작권 저작자의 권리,이익을 보호 및 관리하는 시스템 

WaterMarking : 디지털 콘텐츠 소유권 추적 기술

Fingerprint : 디지털 콘텐츠 구매자 정보 삽입

 

디지털 포렌식 : 디지털 기기를 대상으로 한 특정 행위의 사실관계 증명을 위한 방법 및 절차

(준비-획득/이송- 분석-분석서 작성 - 보관)

 

디지털 포렌식 원칙

 

1 정당성 원칙(적법 절차) :수집된 자료의 적법절차

2 재현 원칙 : 재현가능성

3 신속성 

4 절차 연속성 : 담당자 및 책임자 명확

5 무결성 : 증거 위변조 금지 

 

휘발성데이터 수집 우선순위 

 

Register/Cache > RoutingTable,ARPCache,ProseccTable,Kernal Statics > Memory > 임시파일 > Disk > 

Remote logging, Monitoring Date > Physical Configuration, Network Topology > Archival media

 

비휘발성 데이터 수집 우선순위 

Registry,시간,Cache,Cookie,History,Email

암호화된 파일,윈도우 로그

반응형
728x90
반응형

정보보안기사 필기 요약 

 

네트워크 보안 

 

OSI 7계층

 

1. Physical(물리) :전기적,기계적 연결 정의(케이블,광섬유) // 케이블,리피터

2. Data Link (데이터링크) 물리주소 결정, 에러제어, 흐름제어 (PP2P,L2TP) // 브릿지,스위치

3. Network (네트워크) : 라우팅, 논리적 주소 연결(IP), 데이터 흐름 제어 (IP,ICMP,ARP,RIP,OSPF,BGP) // 라우터

4. Transport (전송) : 에러제어,데이터흐름제어,논리적 주소 연결,신뢰도/품질 보증(TCP.UDP)

5. Session(세션) : 가상연결,통신 방식(반이중,전이중,완전이중) 결정 (SSL)

6. Presentation (표현) : 포맷,압축,암호화,텍스트/그래픽 16진수 변화 (GIF,ASCII,EBCDIC)

7. Application (응용) : 사용자에게 서비스 제공 (FTP,SNMP,HTTP,Mail ...) // 게이트웨이

 

응용계층 

 

HTTP (TCP:80 State-less)

전송방식 

Get : 쿼리스트링(url) 데이터 전달

Post : Http body 데이터 전달,크기 제한 없음

OPtions : 응답 메시지 없이 전송

Put : 메시지 + 데이터요청 URL 포함 

Delelte : URL 지정된 자원 삭제 

Trace : 경로 기록 

 

* HTTP Header - body 구분 /r/n/r/n

 

정보유지 방법

 

Cookie : 클라이언트에 정보 저장, Text, 최대 4kb 

Session : 서버에 정보 저장,Object

 

SMTP(Simple Mail Transfer Protocol,25) : 전자우편 표준 프로토콜 

Store-and-Forward 방식

MTA(Mail Transfer Agent), MDA(Mail Delivery Agent), MUA(Mail User Agent)

MDA// POP3(TCP 110): 수신 후 메일 삭제, IMAP(143) : 수신 후 메일 저장 

 

FTP(File Transfer Protocol) : 파일전송 프로토콜 

등록된 사용자만 파일전송 가능, 그 외는 익명으로 사용 

ftpusers : FTP차단 유저 

전송모드

Active Mode (TCP:21.20)

21번포트 : 접속 

20번포트 : 데이터 전송 

Passive Mode (TCP: 21, 1024~)

21번포트 : 접속 

1024번 ~ 65535번 :데이터 전송 

 

SNMP : 네트워크 장애,통계,상태 정보를 실시간으로 수집 및 분석하는 네트워크 관리 시스템

 

전송계층 : 송/수신자 논리적 연결,연결지향 서비스 제공

 

TCP 

클라이언트-서버 연결지향

신뢰성 있는 데이터전송,에러제어(FEC,BEC),흐름제어(슬라이딩 윈도우),순서제어,혼잡제어(TCP Slow Start,Go-Back-N)

완전이중

netstat : TCP 상태정보 확인 

 

UDP exVoIP

데이터 송수신 속도 빠름

비신뢰성

비접속형

 

인터넷 계층 : 송신자-수신자 IP주소 경로 결정,전송/패킷 전달에 대한 책임

 

* 패킷 + IP Header : Datagram

라우팅 : IP헤더에서 IP주소를 읽어 경로 결정

 

IP/TCP/IP 

IPv4(128),IPv6(128)

주소화,데이터그램포맷,패킷 핸들링

MTU : 한번에 통과할 수 있는 패킷의 최대 크기 (ifconfig,ipconfig 확인가능)

IP : 네트워크주소 + 호스트주소 

 

ICMP Ping 

 

오류제어 프로토콜 

질의 메시지 기능

 

ICMP메세지 

 

3 Destination Unreachable (목적지 찾을 수 없음)

4 Source quench(패킷이 너무 빨라 네트워크 제어)

5 Redirection(패킷 라우팅 경로 수정,Smurf)

8|0 Echo request / reply (Host 존재 확인)

11 Time exceeded (시간경과,패킷 삭제) 

12 Parameter problem (IP Header 잘못된 정보 있음)

13 | 14 Timestamp request | reply (비슷한 시간에 정보 추가)

 

ARP / RARP

 

ARP(Address Resolution Protocol)

IP주소를 MAC주소로 변경

ARPCache Table : MAC,IP 주소를 보유하고 있는 테이블 

RARP (MAC 주소를 IP주소로 변경)

 

네트워크 접근 계층(데이터링크,물리) : IP주소 -> MAC 주소 변환,에러제어,흐름제어 

CSMA/CD(Carrier Sense Multiple Access/ Collision Detection) : 유선 랜 메세지 송수신 방법 

충돌을 감시하여 비어있는 채널을 재사용하게 만듬

 

CSMA/CA : 무선 랜 메세지 송수신 방법

수신자에게 간단한 전송을 유발하여 프레임을 전송하는 방법

 

네트워크 시반 공격 기술의 이해 및 대응 

 

서비스 거부 공격 : 특정 서비스를 계속적으로 호출하여 컴퓨터 자원 고갈(CPU,Memory,Network)

로직 공격(IP Header 변조),플러딩 공격(무작위 패킷 공격)

 

DDoS(Distributed Denial of Service): 다수의 분산되어 있는 공격자 서버로 특정 시스템을 공격하는 방법

 

DDos (분산 서비스 공격)

 

1) TCP SYN Flooding : TCP SYN패킷을 이용하여 수많은 연결요청을 통해 일반 사용자의 가용성을 저해 시킴

2) ICMP Flodding (Smurf Attack): ICMP 패킷 이용 서비스 및 포트가 필요없음

3) Tear Drop : fragment 재조합 취약점 이용, offset 값을 조작하여 중첩 유발

4) Ping of Death : Ping을 이용하여 ICMP MTU이상의 패킷 크기 조정

5) Land Attack : 송신자 IP주소 - 수신자 IPㅈ소를 같게 설정 트래픽 유발

6) HTTP Get Flooding : 정상적 연결 이후 HTTP Get지속적으로 요청 -> 다량의 Request 호출

7) Cache Control Attack : Cache-Control Header 옵션을 사용하여 항상 새로우 페이지를 요청 

8) Slow HTTP Get/Post Attack : Get(TCP/UDP) - 정상 IP 기반 공격, 소량의 트래픽/세선 연결 

   Post - Post지시자 사용, 대량데이터를 장시간에 걸쳐 분할 연결

9) Hash Dos : 해시테이블의 인덱스 정보가 중복되도록 유도 조회시 CPU자원 소모

(*HTTP Get, Post Request시 변수를 해쉬테이블 구조로 관리)

10) Hulk Dos : 공격대상 URL을 지속적으로 변경하여 DDos 차단정책 우회 Get Flooding 수행

 

포트스캐닝 : NMAP 

 

1) TCP Open Scan : 3-Way-Handshaking을 이용하여 포트 확인,연결수립

   (Open : SYN+ACK, Close:RST + ACK)

2) TCP Half Open Scan : SYN 패킷 전송 응답 정보로 포트 확인, 연결 X

   (Open : SYN+ACK, Close:RST+ACK)

3) FIN Scan : FIN 패킷 전송 (Open : 응답 X, Close: RST)

4) UDP Scan : UDP패킷 전송(Open : 응답 X, Close: ICMP Unreachable), 신뢰성 낮음

5) X-MAS Scan : FIN,PSH,URG 패킷 전송 (Open: 응답 x, Close: RST)

6) NULL Scan : NULL패킷 전송(Open : 응답x ,Close : RST)

스니핑 공격(Sniffing Attack) 수동적 공격, Promiscuous 모드 사용, tcpdump 이용 

 

Session Hijacking : 스니핑 공격을 이용하여 이미 인증을 받은 세션을 탈취하여 인증 우회

(Hunt,Arpsppof,IPWatcher,Ferret,Hemster,WireShark)

 

스푸핑 공격(Spoofing Attack)

TCP/IP구조 취약점을 이용하여 IP 변조 후 SynFlooding 인증우회 

 

 ARP Spoofing : 클라이언트 MAC주소를 탈취하여 서버 인증우회,연결이 끊어지지 않도록 Release 해야함

 

네트워크 대응 기술 및 응용

 

침입차단 시스템(Firewall) : 네트워크 경유 후 트래픽 모니터링,접근통제

- 인바운드 : 외부에서 내부로 들어오는 규칙 

- 아웃바운드 : 내부에서 외부로 나가는 규칙 

1) 패킷필터링(네트워크,전송계층) : IP주소,Port 번호등을 이용해 접속제어,유연성 높음

2) 애플리케이션 게이트웨이(응용계층) : Proxy Gateway,보안성우수,유연성 결여

3) 회선 게이트웨이 (응용-세션 계층) : Client측에 Proxy를 인식할 수 있는 수정된 프로그램,관리수월

4) 상태 시반 패킷 검사(전 계층): 세션 추적 가능,방화벽 표준 내부 대응 어려움 

5) 심층 패킷 분석(DPI : Deep Packet Inspection) : 콘텐츠까지 모두 검사 상태기반 패킷 검사에서 발전

 

 

침입차단 시스템 구축 유형 

스크리닝 라우터 : 내부 네트워크와 외부 네트워크 사이의 패킷 트래픽을 permit/drop

배스천 호스트 : 내부 네트워크 전면에서 내부 네트워크 전체를 보호,외부 인터넷과 내브 네트워크를 연결 

듀얼 홈드 호스트 : 2개의 NIC로 외부 네트워크와 내부 네트워크를 연결, Proxy 기능 

스크린드 호스트 : 패킷,패킷 인증 구성

스크린드 서브넷 : 외부네트워크와 내부네트워크 사이에 하나 이상의 경계 네트워크 생성

 

침입탐지 시스템

 

DB에 저장된 패턴정보를 바탕으로 시스템의 침입을 실시간으로 모니터링하는 보안 시스템 

- 오용탐지 : 침입패턴 - 활동로그 비교, 오타율 낮음, 새로운 패턴 탐지 불가능 

(패턴 비교, 전문가 시스템,유전 알고리즘)

- 이상탐지 : 정상패턴 - 활동로그 비교, 오탐율 높음,새로운 패턴 탐지 가능 

(신경망,통계,특징 추출,머신러닝)

 

NIDS : 네트워크 패킷 검사 부가장비 필요 

HIDS : 시스템상에 설치,시스템로그 검사(바이러스 윔)

 

Snort : 패킷탐지 침입탐지 시스템 

Alert tcp any any -> any any |(msg: "massage"; sid : 10000000; content:"content"flag:SYN)

룰 헤더  //  룰옵션

 

<룰 헤더>

 

Action (alert,log,pass,dynamic)

Protocol(TCP,UDP,IP)

송신지,수신지(any,127.0.0.1)

Derection -> <>

 

<룰옵션>

 

Msg: log 내용 

Sid : 고유 ID 

Content : 검사할 콘텐츠 내용 

Flag(SYN,FIN,PSH):패킷 검사

Nocase : 대소문자 구분 x

 

침입대응 시스템(lntrusuon Prevention System : IPS)

공격 시그니처를 찾아 비정상 패턴을 감시하고 차단(능동적)

 

허니팟 :의도적으로 취약한 사이트를 해킹에 노출시켜 해킹 기법,행동 분석

 

가상 사설망: 공중망을 이용하여 사설망을 가상으로 구축하는 방법(USB사용 인증)

 

1)SSL VPN: 웹브라우저(SSL)을 이용한 VPN 소프트웨어 설치 필요 없음(인증,무결성,기밀성,부인 봉쇄)

2)IPSEC VPN : 터널모드(전체암호화,새로운헤더 생성), 전송모드(End to End 보안)을 이용한 VPN

3)PPTP VPN: IP네트워크에 전송하기 위한 터널링 기법 (네트워크 계층)

4)L2TP VPN: PPTP 호환성 터널링 프로토콜(네트워크 계층)

 

NAC: 등록되지 않은 단말기 식별,차단,네트워크 무결성

 

1) 정책관리 서버: 정책설정,접근 로그관리

2) 차단 서버 : 단말기 통제, 단말기 정보 수집 분류, 트래픽 감지

3) 에이전트 : 사용자 단말기 설치, 무선인증 지원 

4) 콘솔 : 웹기반 네트워크 보안정책 성정,감사,모니터링,대시보드 제공

 

ESM 

기업의 정보보안 정책을 반영,보안시스템 통합한 보안관제 시스템

- 기업자산 및 자원관리

- 보안감사,상관성 분석 

 

 

무선랜 보안기법

1)SDR : AP는 동일한 SSID를 가진 클라이언트만 접속 허용

2)WEP : IEEE 802.11b RC4 스트림암호화 알고리즘,40bit 키사용

3)WPA(Wi-Fi Protected Access): IEEE 802.1x/EAP.128bit 동적 암호화

4)WPA2 : IEEE802.11i, WPA+AES

 

 

 

 

 

반응형
728x90
반응형

CPU - 중앙처리장치

 

CPU 정의 : 입력장치로부터 자료를 받아 연산처리, 결과를 출력장치로 전달하는 제어/관리하는 핵심장치 (두뇌역할)

 

- CPU 구성요소

 

1) ALU(연산장치) : 산술연산,논리연산

2) 레지스터 : 소규모 데이터,중간 결과를 기억해두는 고속 영역

3) Control Unit(제어장치) : CPU가 처리해야할 명령어 해석. 제어 신호 발생 

4) 내부 CPU 버스 : ALU 레지스터간의 데이터 이동

 

- 레지스터 종류 

 

PC : 다음에 수행할 주기억장치 주소 기억

MAR : 주기억장치에 접근하기 위한 주기억장치 주소 기억

MBR : 주기억장치 입/출력 자료 기억

IR : 주기억장치 -> 인출한 명령코드 기억

 

4) CPU 버스 인터페이스 : ALU(연산장치)와 레지스터 간 데이터 송수신 경로 

 

2 BUS 개념 : 주기억장치와 중앙처리장치간의 데이터,제어 정보,주소를 전달하는 전송 경로 

 

버스 종류(입출력 영향을 끼침)

 

1) 데이터 버스 : 데이터 전송 용도  

2) 주소 버스 : 기억장소 위치, 식별

3) 제어 버스 : CPU, 기억장치, I/O 장치사이의 제어신호 전송 

 

CPU 명령 실행주기 : 명령어 실행 끝난 후 다음 명령어 수행이 시작되어 끝날때까지 인출이 반복되는 주기

1 인출 : 메모리 데이터를 로드하여 레지스터에 적재

2 간접 : 간접주소 방식 채택 경우 - CPU가 메모리 참조시 메모리 주소 참조 

3 실행 : 명령,데이터 -> 산술,논리연산 수행

4 인터럽트 : 예기치않은 문제 발생시에도 업무처리가능 하게 하는 기능 

 

기억장치 계층구조 

 

레지스터 기억장치용량 장치비용 속도

캐시 작음,큼,빠름

주기억장치

보조기억장치 큼 작음 느림 

 

캐시메모리 : CPU와 주기억장치 속도차이 극복을 위한 버퍼 메모리(기억장치)

 

캐시메모리 사상방식 

 

1. 직접사상 : Main memory를 여러구역으로 분할하여 캐시슬롯과 직접 매핑

2. 집합 연관사상 : 직접 + 연관 방법 메모리를 세트로 분할하여 매핑 

3. 연관사상 블록들이 캐시 슬롯에 어느 곳이든 적재 가능 

 

캐시메모리 관리 방식 (CPU 원하는 데이터가 캐시메모리에 적재하도록 관리)

 

(호출기법)

1. Demand : 필요시 캐시 인출

2. Pre-Fetch : 예상되는 데이터를 미리 패치 

 

(교체기법)

캐시 메모리 교체 알고리즘

 

1. FIFO(First In First Out): 가장 오래 있었던 Page 교체/ 자주 사용되는 페이지가 교체될 수 있음 

2. LFU(Least Frequently Used)가장 사용횟수가 적은 Page 교체/가장 새로 들어온 페이지 교체될 수 있음 

3. LRU(Least Frequently Used)가장 오랫동안 사용되지 않은 Page 교체/오버헤드 우려

4. NUR(Not used Recently) 미사용 Page 교체 (참조/수정비트 사용)

5. SCR(Second chance Replacement) :최초 참조 비트 1,1-> 0 두번 기회 

 

페이지교체시 문제점 

 

Page Fault(페이지부재), DemadPaging, Thrashing(부재가 너무빈번하여 프로세스 수행보다 페이지 교체 시간소요가 더 소모됨)

 

가상메모리(Virtual Memory) : Virtual Address Space 사용,물리적 메모리보다 더 큰용량 제공 

 

가상메모리 관리 단위 (페이지 vs 세그먼트) : 비연속 할당 

페이지 : 동일한크기의 최소 논리 분할 단위 / 내부단편화

세그먼트 : 용도별로 논리적 단위로 나눔 / 외부단편화

 

연속할당 : 고정분할, 가변분할

 

I/O 인터페이스 (주기억장치 - 보조기억장치 입출력)

 

1. CPU 경유 : 프로그램에 의한 I/O,인터럽트에 의한 I/O 

- 프로그램에 의한 I/O : CPU가 주변장치를 연속 감시하는 Polling 방식

- 인터럽트에 의한 I/O : 인터럽트 요청 감지시 수행작업 중지 

2. CPU 비경유 : DMA,Channel I/O 

- DMA : 메모리와 주변장치를 직접 관리, 속도 빠름 

- 채널 I/O(I/O Processor): I/O장치의 복잡함으로 DMA한계를 보완하여 별도 전용 처리기능 프로세서 탑재 

 

1. Multiplexer Channel : 저속장치, 시분할 방식

2. Selector : 고속장치.단일 입출력 

 

운영체제 

: 컴퓨터 시스템의 자원들을 효율적으로 관리, 사용자의 컴퓨터 사용 편의성 환경 제공

 

운영체제의 목적

 

1. 처리능력 향상

2. 신뢰성 향상 

3. 응답시간의 단축

4. 자원 활용률 향상

5. 가용성 향상 

 

운영체제 주요 자원 관리 기능 

 

1. 프로세스 관리

2. 기억장치 관리 

3. 주변장치 관리

4. 파일 관리 

 

프로세스 관리

 

프로세스 : 레지스터,스택,포인터,실행중인 프로그래,데이터 등의 집합체 

- 실행중인 프로그램,PCB 보유. Library Call, 자원할당의 기본 단위 

 

스레드 : - 제어의 흐름, 프로세스에서 실행의 개념, CPU 작업의 기본단위, System Call

 

CPU 스케줄링 기법(프로세스 상태 전이)

 

컴퓨터의 자원을 효율적으로 사용하기 위한 정책,자원을 요청하는 프로세스 순서를 정함 점유방식

 

1. 선점(Preemptive): 프로세스 CPU 점유시 다른프로세스 점유 가능(Round-robin,SRT)

2. 비선점 (Non-preemtive): 프로세스 CPU 점유시 독점(FCFS,SJF,HRN)

 

(비선점 방식) 

 

1. FCFS(First Come First Service): 대기큐에 도착한 순서에 따라 CPU 할당

2. SJF(Short Job First): 수행시간이 짧은 작업부터 CPU 할당

3. HRN(Highest Ratio Next): SJF개선하여 프로세스 우선순위로 할당 

 

(선점)

 

1. Round-robin : 각 프로세스는 같은 시간을 CPU에서 할당 받음 

2. SRT(Shortest Remainging Time) : 수행시간이 짧은 작업부터 CPU할당하지만 수행중 다른 프로세스가 더 짧은시간 일때 점유 가능 

 

Multi Level Queue : 여러 종류의 그룹으로 나누어 각자 독자적인 스케줄링 기법 사용 

Multi Level Feedback Queue : 그룹들을 라운드로빈 + 비선점방식 (Hybrid 스케줄링)

 

병행성 제어 

 

상호 배제 : 다수의 프로세스 동일 자원 접근 시 무결성 보장,임계영역 사용 

 

1.임계영역 : 공유자원의 독점을 보장하는 코드 영역,병렬컴퓨팅 일부로도 쓰임,세마포어 개념이용

  세마포어: 공유자원의 개수를 나타내는 변수

2. 모니터 상호배체 기법: 하나의 프로세스만이 모니터내부의 존재,모니터 내부의 지역변수로 정의

 

교착상태: 하나이상의 프로세스가 더 이상 계속할 수 없는 특정 사건을 기다리고 있는 상태 

 

교착상태 발생조건 

 

1.상호배체: 다수의 프로세스 동일 자원 접근 시 무결성 보장, 임계영역 사용 

 

1.임계영역: 공유자원의 독점을 보장하는 코드 영역,병렬컴퓨팅 일부로도 쓰임,세마포어 개념이용

세마포어 : 공유자원의 개수를 나타내는 변수

2. 모니터 상호배제 기법 : 하나의 프로세스만이 모니터내부의 존재,모니터 내부의 지역변수로 정의

 

교착상태 : 하나이상의 프로세스가 더 이상 계속할 수 없는 특정 사건을 기다리고 있는 상태

 

교착상태 발생조건 

 

1. 상호배제 : 하나이상의 프로세스가 자원을 배타 점유

2. 점유와 대기 : 부분할당으로 다른 종류의 자원을 요구하면서 자원 점유

3. 비선점: 자원이 해제되지 않으 

4. 환형대기 : 프로세스와 자원들이 원형을 이루며 서로 상대방의 자원 요철 

 

교착상태 대응 방법 

 

1. 예방: 필요 조건을 부정,교착상태 예방

- 점유와 대기 부정 : 필요한 자원을 일시에 요청

- 비선점 조건의 부정 : 자원점유 후 자원 요청시 자원해제 선 요청 

- 환형대기 조건 부정 : 프로세스들의 자원별로 우선순위 결정

- 상호배제 조건 부정 : 자원 비공유 전제 

 

2. 회피: 가능성을 인정, 회피

- 은행원 알고리즘: 프로세스가 요구한 최대 요구량 만큼 자원을 할당 안전순서서열 존재, 교착상태는 불안전상태에서만 일어남.

 

3. 발견: 교착상태 발생 허용, 원인을 규명하고 해결 

 

- 교착상태 발견 알고리즘 : 교착상태 발생 검사 알고리즘, 교착상태 빈도수 파악

- 자원할당 그래프: 방향그래프를 이용, 그래프 소거법을 이용하여 교착상태 감지

 

4 회복 

- 프로세스 중지

- 선점

 

장치관리기법

 

디스크 

디스크 접근 시간

 

1. 탐색시간 : 현위치에서 특정실린더로 디스크 헤드가 이동하는데 소요되는 시간

2. 회전 지연시간 : 섹터가 디스크 헤드까지 도달하는 시간 

3. 전송시간 : 데이터 전송 시간

 

디스크 스케줄링 기법 

 

1. FCFS : 먼저 들어온 요청 우선 처리

2. SSTF : 탐색거리가 가장 짧은 트랙 요청 우선 처리

3. SCAN : Head가 이동하는 모든 요청을 서비스 끝까지 처리 후 역방향 처리 

4. C-SCAN : SCAN에서 바깥쪽에서 안쪽으로 이동 

5. C-LOOK : 진행방향에서 요청 없을시 헤드를 처음위치로 이동

 

파일 시스템 

 

FAT  

1. FAT16 : 대부분 MS 호환가능,2GB,암호화 및 압축 불가능,파일명 최대 영문8자, 클러스터 1632KB 

2. FAT32 : 2TB,암호화 및 압축 불가능,파일명 최대 영문 256자,클러스터 4KB

3. NTFS : 암호화 및 압축 지원, 가변클러스터

 

EXT 

 

1. EXT : MINIX File System 보안, 최대 2GB, 파일명 255bytes,단편화문제

2. EXT2 : 2GB,볼륨32TB,오류 수정 지원

3. EXT3 : 저널링기능,온라인 파일 시스템 증대, 디스크조각화 최소화 

4. EXT4 : 16GB, 볼륨 16Exabyte,온라인 조각모음, 저널 체크섬, 하위호환 가능

 

UFS : 유닉스 파일 시스템 (부트블록,슈퍼블록,실린더그룹,i-node 테이블)

1. 슈퍼블록 : 파일 시스템 크기,i-node 테이블의 크기

2. I-node 테이블 : 파일정보 - 파일크기,위치,유형 허가권,날짜

 

RAID : 디스크 고장 시 복구를 위해 2개이상에 디스크에 데이터를 저장하는 기술, 저 가용성 디스크를 배열 구조로 중복 구성 

 

RAID 0 : 최소 2개 디스크,데이터를 나누어 저장,장애발생 시 복구 불가

RAID 1 : 디스크 완전 이중화, 많음 비용 발생,ReadWrite 병렬가능

RAID 2 : Hamming Code를 이용하여 오류 복구

RAID 3 : Parity 정보를 별도 디스크에 저장 

RAID 4 : Parity 정보를 별도 디스크에 블록별 저장 Write 성능 저하

RAID 5 : 분산 Parity 구현, 안정성 향상 

RAID 6 : Parity 다중화, 장애발생 상황에서도 다른 정상 동작

 

리눅스 서버 보안

리눅스 핵심 구성요소 

 

1. 쉘 : 명령어 해석기, 명령의 입출력 수행(Bash,Bourne,C,korn) 프로그램 실행

2. 커널 : 주기억장치에 상주, 사용자 프로그램 관리

3. 파일 시스템 : 정보를 저장하는 기본적 구조,계층구조

 

리눅스 파일 종류 

 

1. 루트 파일 시스템 : 시스템 프로그램,디렉터리

2. 일반 파일 : 프로그램,원시 프로그램파일, 텍스트 등등 

3. 디렉터리 파일 : 디렉터리에 관한 정보를 저장하는 논리적인 단위 

4. 특수 파일 : 주변장치에 연결된 파일

 

리눅스 부팅 

 

Run Level 

0. PROM 감시 

1. 사용자 로그인 불가능한 상태, 암호변경할 때 사용 

2. 공유된 자원이 없는 다중 사용자 단계

3. 공유 자원을 가진 다중 사용자 단계

4. 사용 되지 않는 단계

5. 3단계 기동후 x-windows 실행

6. 재부팅 단계 > 3단계로 재부팅 

 

리눅스 인증과 권한 /etc/passwd 

passwd 파일 구조 

Root : x : 0 : 0 : root : /root : /bin bash

사용자계정 : 패스워드(/etc/shabow) : UserID : GroupID : Home Directory : Shell

 

리눅스 권한 관리 

Umask ( r = 4, w = 2 x=0, User : Group : Other ) : Default 권한, 파일 666, 디렉토리 77

chmod : 권한 부여 명령 (chmod 777 파일명, chmod u+g,g-w,o+r 파일명

chown : 파일에 대한 사용자,그룹 변경 (chown 소유자 : 그룹)

 

특수권한 관리(setuid,setgid,stickbit)

 

1. setuid : 파일을 소유자권한으로 실행가능(4000, u+s)

2. setgid : 파일을 그룹 권한으로 실행가능 (2000, g+s)

3. stickybit : 공용 디렉토리 

 

로그파일 /var/log 

현재 사용자 확인 : w,who - 로그인 사용자 ID, 사용 터미널, 로그인 시간

로그인한 사용자 정보 : /var/utmp

로그인,로그아웃 정보 : /var/wtmp (last 명령어 사용)

로그인 실패 정보 : /var/btmp 

 

Syslog(syslogd/etc/syslogd.conf로그 수준): 로그 수준을 읽고, 로그를 기록

유형 emerg > alert > crit > err > warn > notice > info > debug 

 

작업스케줄러 관리 

 

Cron : 반복적인 프로세스 작업을 수행할때 사용하는 batch 프로그램 (/etc/crontab)

30**** root /home/test.txt : 30분 마다 test 실행

분 시 일 월 요일 사용자 실행명령

 

At : 한번만 실행 

 

파일 무결성 검사 

: 초기 상태 파일 정보에 대해 해시값 저장, 이후 비교 

Tripwire (--init : 초기화, --check : 무결성 검사)

 

윈도우 클라이언트 및 서버 보안 

파일 시스템(FAT,NTFS)

 

윈도우 클라이언트 및 서버 보안 

파일 시스템 (FAT,NTFS)

 

윈도우 실행 프로세스 

 

1. Wininit.exe : 윈도우 시작 프로그램 

2. Services.exe : 윈도우 서비스 관리

3. Lsm.exe : 시스템관리작업,주요 함수 실행 

4. Svchost.exe : 서비스를 관리하기위한 프로세스

5. Conost.exe : 키보드,마우스 입력 허용, 문자 출력 셸의 기본 기능 수행 

 

공유폴더 (Net BIOS : 445)

공유폴더 확인 : net share 

공유폴더 삭제 : net share /delete 

 

레지스트리 : MS 운영체제에서 OS및 응용 프로그램 등에 필요한 정보를 저장하고 관리하기 위한 계층형 데이터 베이스

               Key,Value,Data Type, Data로 이루어져 있음 

루트키 (레지스트리 최상위 키)

1.  HKEY_CLASSES_ROOT : 확장자,프로그램간의 연결 정보 

2.  HKEY_LOCAL_MACHINE : HW,SW 설치 정보 

3.  HKEP_USERS : 사용자 정보 

4.  HKEP_CURRENT_CONFIG : 디스플레이,프린터 정보 

 

주요 레지스트리 키 

 

버전 정보 : HKLM/SOFRWARE/Microsoft/Windows NT/Current Version

컴퓨터 이름 : HKLM/SYSTEM/ControlSet00X/Control/ComputerName/ActiveComputerName

시작프로그램 : HKEY_LOCAL_MACHINE/SOFTWATE/Microsoft/Current Version/Run

최근에 실행한 명령어 : HKU/{USER}/SOFRWARE/Microsoft/Windows/CurrendtVersion/Exlplorer/RunMRU

 

이벤트 로그 및 웹 아티팩트 분석 

윈도우 이벤트 로그 : 이벤트 뷰어를 통해 확인가능. 

웹 아티팩트 분석 : 사용자가 웹 사이트를 이용한 흔적을 분석 하는 것 ( 웹 브라우저 캐시, 히스토리,쿠키)

 

바이러스 (자가복제 가능) VS 악성코드 (자가복제 불가능) 

 

세대 별 바이러스 

1세대 (원시형 바이러스) : 고정된 크기 주기억장치에 상주하여 감염(돌 바이러스, 예루살렘 바이러스)

2세대 (암호화 바이러스) : 프로그램을 암호화 시킴, 암호화방식이 일정하여 복호화 방식 쉬움 (폭포 바이러스,느림보 바이러스)

3세대 (은폐형 바이러스) : 다른 실행파일에 기생 감염시 백신을 속여 감영 여부 확인이 어려움 (맥가이버 바이러스,브레인 바이러스)

4세대 (갑옷형 바이러스) : 10만개 이상의 암호화기법을 사용하여 은폐 (다형성 바이러스,자체변형 바이러스)

5세대 (매크로 바이러스) : 매크로 명령을 사용하는 프로그램을 감염, 누구나 쉽게 생성/배포 가능(Melisa 바이러스 Nimda 바이러스)

 

악성코드 

 

Shellcode : 작은 크기의 코드로 소프트웨어 취약점을 이용하는 기계어 코드 

HeapSpray : 셸코드를 힘영역에 뿌리는 것 전역변수를 이용한다.

예방 방법 (ASLR설정 - 메모리 동적 주소 할당) 

Sysctl - w kernel.radomize_va_space=1

버퍼 오버플로우 : 프로세스가 사용가능한 메모리 공간을 초과해 발생되는 공격

스택 오버플로우 : 스택에 저장되어있는 복귀주소가 지역변수에 의해 침범

                   비권고 함수 : strcpy,strcat,getwd,gets,scanf,sprint

                   권고 함수 : strncat,strncpy,fgets,fscanf,vfscanf,snprintf

힙 버퍼 오버플로우: 동적으로 할당되는 공간이 힙에 저장되어 경계값을 검사하지 않고 사용시 메모리가 경계를 초과 

 

APT : 특정 공격들을 SNS를 사용하여 지속적으로 수행하는 공격

 

 

 

 

 

 

반응형
728x90
반응형

오픈소스 운영체제 리눅스는 운영 비용이 낮고 기술 적용의 자유도가 높아 생산,제조,금융 각 분야에서 도입을 늘리고 있는 추세 입니다. 리눅스는 특히 최신 기술 트렌드인 사물인터넷,인공지능,빅데이터,클라우드의 플랫폼으로 주목을 받고 있어 장차 도입이 더욱 확대될 전망이다.

 

리눅스 채택이 늘어남에 따라 리눅스를 향한 보안 위협이 증가하여 이에 대한 대처가 중요한 화두로 떠오르고 있습니다.

 

리눅스용 랜섬웨어가 발견되었으며 감염될 경우 DDos공격을 수행하거나 리눅스 서버 소프트웨어에 존재하는 취약점을 스캔하는 것으로 나타났습니다. 리눅스 감염 악성코드 중 가장 최근 등장한 루아봇은 트로이목마형 악성 프로그램으로 IOT기기에 탑재된 ARM 프로세서를 타깃으로 한다. 

 

서버는 기업의 데이터가 저장된 공간이자 주요 서비스를 처리하는 공간인 만큼 서버가 손상될 경우 

내부 정보나 기밀문서들이 유출/조작될 수 있으며 정상적으로 서비스 제공하는 일이 불가능해질 수 있는 위험이 있다.

점점 더 리눅스 보안도 필수적인 것으로 되어가고 있다.

 

1.백신 소프트웨어 사용하기

 

리눅스 보안 방법 가운데 가장 간단한 것은 백신 소프트웨어를 사용하는 것입니다.

시중에 출시되어 있는 보안 솔루션 가운데 윈도우나 MAC 기반 외에도 리눅스를 시스템을 대상으로 한 

백신 소프트웨어가 있습니다. 이러한 백신 소프트웨어를 사용할 경우 가장 큰 장점은 관리가 쉽고, 

낮은 비용으로 서버 보안이 가능하다.

 

2. 보안성이 높은 비밀번호 설정하기

 

관리자가 리눅스 서버를 제어할 수 있게 하는 시큐어셀 로그인 비밀번호를 잘 설정하는 것도 중요합니다.

비밀번호가 허술하게 관리된 경우 무작위로 숫자,문자 등을 입력해 비밀번호를 알아내는 공격에 의해 서버를 해킹 당할 수 있습니다. 가장 권장하는 방법은 영어 대소문자,숫자.특수기호를 모두 조합한 8자리 이상의 비밀번호를 사용하는 것입니다. 암호화 키를 추가로 사용한다면 침입자로부터 SSH 접근 장벽을 높일 수 있습니다. 이전에 사용한 비밀번호를 다시 사용하지 않도록 하는 것도 좋은 방법

 

3. 접근 제어를 통해 보안 강화하기

 

특정 IP, 네트워크 대역만이 서버에 접근할 수 있도록 제어하는 것을 접근 제어라고 합니다. 접근 제어는 허가된 IP나 네트워크만이 SSH에 접속할 수 있게 하기 때문에 보안 레벨이 상당히 높은 방식 입니다. 접근 제어는 Appliance FW 같은 보안장비를 사용하는 방법 외에도 직접 iptable이나 hosts.allow 및 hosts.deny를 설정하는 방법이 있습니다. lptable은 사용하는 서비스 port만 등록하여 방화벽으로써 역할을 수행하며 hosts.allow와 hosts.deny는 각각 접속 허용과 차단 여부를 설정할 수 있게 해준다.

 

4.최신 버전 유지하기

 

리눅스는 오픈소스 운영체제인 만큼 버그 등 신규 취약점이 발견될 경우 이에 대한 대책이 빠르게 등장하는 편입니다

때문에 리눅스 커널과 소프트웨어를 지속적으로 최신 버전으로 유지하는 것만으로도 보안 위협 방어에 상당한 도움이 됩니다. 리눅스는 시스템을 최신 상태로 유지하는 툴을 사용하면 쉽게 업그레이드를 진행할 수 있습니다.

 

 

반응형

'IT' 카테고리의 다른 글

스푸핑,스니핑,스누핑  (0) 2021.08.17
웹 서버와 WAS의 차이와 웹서비스 구조  (0) 2021.08.13
핫 스패어(Hot Spare)란 ??  (0) 2021.08.10
핫 스왑이란 ?  (0) 2021.08.10
RAID 란 ?  (0) 2021.08.10
728x90
반응형

 

서버를 만들때 주는 '이 파일'이 뭐지 ?

NBP나 AWS같은 클라우드 서비스에서 서버를 생성하면 '인증키'나 '키 페어'라는 것을 생성하는 과정을 반드시 거치게 됩니다. 생성하면 pem이라는 낯선 형식의 파일을 다운로드받게 되는데,

서버 접속에 반드시 필요한 파일인줄은 알겠지만, 내 컴퓨터에 가만 놔 두기엔 그 정체를 모릅니다.

 

사실 이 파일은 우리가 생성한 서버에 원격으로 접속할 때 외부의 보안 위협으로부터 보호해주는

'SSH'라는 보안 방식이 적용된 서버에서 반드시 필요한 파일 입니다.

 

그만큼 SSH는 서버 보안에 있어서 가장 대표적이고 유용한 수단이기 때문에 많은 클라우드 서비스에서 제공하고 있습니다. 그렇다면 SSH란 정확히 무엇일까요? 이 파일의 정체에 대해 설명하기 위해 먼저 SSH에 대해 알아야 합니다.

 

SSH란 ? 

SSH는 Secure Shell의 줄임말로, 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜 입니다.

 

Shell: 명령어와 프로그램을 사용할 때 쓰는 인터페이스를 말합니다. 좀 더 자세하게 표현하자면 커널과 

사용자 간의 다리 역할을 하는 것으로, 사용자로부터 명령을 받아 그것을 해석하고 실행하는 역할을 합니다.

흔히 검은 바탕에 흰 글자가 나오는 명령어 입력 환경을 떠올리면 됩니다.

 

기존 원격 접속은 텔넷이라는 방식을 사용했는데 암호화를 제공하지 않기 때문에 보안상 취약하다는 단점이 있습니다.

실제로 WireShark 같은 패킷 분석 프로그램을 이용하면 누구나 쉽게 원격 접속 과정에서 옮겨지는 비밀번호나 파일 내용 등의 데이터를 탈취할 수 있습니다. 때문에 이를 암호화하는 SSH 기술이 등장했고 현재 원격 접속 보안을 위한 필수적인 요소로 자리잡고 있습니다. 그리고 클라우드 서비스를 제공하는곳에서 서버 생성시 필수적으로 SSH 보안 과정을 거치는 것입니다.

SSH의 작동원리 

이제 SSH의 명칭과 필요성에 대해서 어느 정도 이해가 되었습니다. 그렇다면 이 SSH는 도대체 어떤 원리로 동작하길래 

이런 파일을 사용자에게 주는 걸까요 ? SSH의 보안 방식에는 다양한 종류가 있지만 여기서는 가장 대중적으로 쓰이는 방식에 대해서 핵심적인 내용만 언급하도록 하겠습니다.

 

SSH를 구성하는 가장 핵심적인 키워드는 KEY입니다. 사용자와 서버는 각각의 키를 보유하고 있으며 이 키를 이용해 연결 상대를 인증하고 안전하게 데이터를 주고 받게 됩니다. 여기서 키를 생성하는 방식이 두 가지 있는데 

이것이 SSH를 검색했을때 가장 쉽게 볼 수 있는 '대칭키'와 '비대칭키' 방식입니다.

 

- 비대칭키 방식 

 

작동하는 순서를 하나하나 짚어보면 가장 먼저 사용자와 서버가 서로의 정체를 증명해야 합니다.

이 시점에서 사용되는 것이 비대칭키 방식입니다. 비대칭키 방식에서 서버 또는 사용자가 키 페어를 생성합니다.

키 페어는 공개 키와 개인 키의 두 가지로 이루어진 한 쌍을 뜻하며 보통 공개 키의 경우 PUB

개인 키의 경우 PEM의 파일 형식을 띄고 있습니다.

 

사용자가 키 페어를 생성했을 경우 공개 키를 서버에 전송합니다.

공개 키는 말 그대로 '공개'된 키기에 누구나 가질 수 있습니다. 전송과정에서 유출되어도 크게 문제가 되지 않습니다.

서버는 공개 키를 받아서, 공개 키로 만들어진 랜덤한 값을 생성합니다.

이 값은 사용자가 올바른 키 페어를 가지고 있는지 시험하는 일종의 시험지와 같습니다.

 

시험지를 받은 사용자는 가지고 있는 개인 키를 이용해 이 시험지를 풉니다. 앞서 말씀드린 것처럼 

공개 키와 개인 키는 하나의 커플 관계와도 같기 때문에 다른 공개 키나 개인 키를 이용해서 풀어낼 수 없습니다. 오직 키 페어 생성 시 함께 생성된 개인 키와 공개 키만 서로 해석이 가능하다. 다시 말하면 개인 키를 제외한 어떤 방법으로도 이 시험지를 풀어낼 수 없습니다. 

 

또한 개인 키는 공개 키와 달리 다른 어디에도 보여주지 않는 소중한 파일입니다. 결과적으로 개인 키가 서버와 사용자 간의 사이를 증명하는 수단이 되는 것입니다. 공개 키에서 나온 문제는 개인 키로 풀 수 있고 개인 키는 사용자만 가지고 있기에 우리가 그동안 CSP를 이용하면서 서버 생성시 제공받았던 pem파일이 바로 이 파일이다. 다시 과정으로 돌아와 시험지를 풀어서 나온 값을 사용자는 다시 서버에 전송합니다.

 

서버는 사용자로부터 전송받은 값을 자신이 처음에 낸 값과 비교합니다. 두 값이 같게 되면 서버는 

"이 사용자는 내 공개 키에 대응하는 올바른 개인 키를 보유하고 있으니,내가 아는 사용자가 맞다!"

라고 판단하고 접속 허용한다. 이렇게 최초 접속시 사용자와 서버 간의 인증 절차가 비대칭키 방식을 통해 완료한다.

 

- 대칭키 방식

 

서로가 누군지를 알았으니 이제 정보를 주고받을 때입니다. 주고받을 차례입니다. 주고받는 과정에서 정보가 새어나가지 않기 위해 정보를 암호화해서 주고받는데 여기서 사용되는 과정이 대칭키 방식 입니다. 대칭키 방식에서는 비대칭키 방식과 달리 한 개의 키만을 사용하는데 이를 대칭 키라고 한다. 

 

예를 들면 사용자 또는 서버는 하나의 대칭 키를 만들어 서로 공유합니다.

공유된 대칭 키를 이용해 정보를 암호화하면 받은 쪽에서 동일한 대칭 키로 암호를 풀어 정보를 습득하게 됩니다.

정보 교환이 완료되면 교환 당시 썼던 대칭 키는 폐기되고 나중에 다시 접속할 때마다 새로운 대칭 키를 생성하여

사용 합니다.

 

이렇게 하여 일련의 원격 접속 과정이 SSH를 통해 안전하게 이루어지는 것을 알 수 있습니다. SSH에 대한 이해가 모두 이루어졌습니다.

 

 

 

반응형

'IT > 네트워크' 카테고리의 다른 글

IT 주소, 기본 게이트웨이  (0) 2021.08.23
텔넷 이란 ???  (0) 2021.08.17
DNS란 무엇인가 ?  (0) 2021.08.06
IIS란 ?  (0) 2021.08.06
DLP란 ??  (0) 2021.08.03
728x90
반응형

1. SELECT 

 

가장 기본이 되는 데이터를 불러오는 쿼리문 입니다.

 

1) SELECT 컬럼명 FROM 테이블명;

 

- 해당 테이블의 해당컬럼의 데이터를 불러옵니다. 컬럼 전체를 불러오고 싶을때는 컬럼명 부분에 '*'를 넣으시면 됩니다.

 

 

2) SELECT 컬럼명 FROM 테이블명 WHETE 컬럼명=값;

 

WHERE 구문을 추가하여 해당 조건이 참인 데이터만 불러옵니다.

 

WHERE 뒤에오는 컬럼명의 값이 지정한 값인 데이터 행의 컬럼명만 가져옵니다.

 

 

3) SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명=값 ORDER BY 컬럼명 ASC or DESC;

 

ORDER BY 뒤에 오는 컬럼명에 대하여 불러오는 데이터를 정렬합니다. ASC는 오름차순, DESC는 내림차순 입니다.

공백을 입력하면 ASC가 기본값으로 오름차순으로 정렬됩니다.

 

4) SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명=값 ORDER BY 컬럼명 ASC or DESC LIMIT 개수;

 

LIMIT 구문을 추가하여 데이터 행이 많을때 개수만큼 데이터를 불러옵니다.

 

2. INSERT 

 

데이터를 삽입할때 사용하는 쿼리문입니다.

 

1) INSERT INTO 테이블명 (컬럼명1,컬럼명2,컬럼명3) VALUES(값1,값2,값3);

 

테이블명에 있는 컬럼명에 맞게 값을 입력합니다. 컬럼명과 값의 개수는 동일해야합니다.

만약에 문자열을 입력하는 경우 작은따옴표로 문자열을 감싸줘야합니다.

 

ex.INSERT INTO table_Student(Name,Class,Age) VALUES('Jane','A',16);

 

2) INSERT INTO 테이블명 VALUES (값1,값2,값3);

 

1) INSERT문에서 테이블명 다음에 컬럼명을 입력하지 않아도 됩니다 하지만 테이블에 있는 모든 컬럼의 수에 맞게 값을 입력을 해야합니다.

 

ex. 컬럼이 Name,Class,Age 이렇게 3개인 테이블에서 

 

INSERT INTO table_Student value ('Jane,'A',16); -> 성공

 

INSERT INRO table_Student value ('Jane','A'); -> 실패

 

3. UPDATE

1) UPDATE 테이블명 SET 컬럼명 = 변경할 값;

 

테이블에 있는 모든 데이터의 컬럼의 값을 변경합니다. 특정한 데이터만 수정하고 싶다면 WHERE절을 

사용해야합니다.

 

2) UPDATE 테이블명 SET 컬럼명 = 변경할 값;

 

WHERE절에 맞는 데이터만 변경합니다.

 

3) UPDATE 테이블명 SET 컬럼명1 = 변경할 값1,컬럼명2 = 변경할 값2 WHERE 컬럼명=값;

 

변경해야할 컬럼이 여러개일때 콤마(,)를 사용하여 여러개의 값을 변경할 수 있습니다.

 

4. DELETE

 

테이블에 있는 데이터를 삭제할때 사용합니다.

 

1) DELETE from 테이블명;

 

테이블에 있는 모든 데이터를 삭제합니다.

 

2) DELETE from 테이블명 WHERE 컬럼명=값; 

 

WHERE절에 맞는 데이터만 삭제합니다.

 

* WHERE절 조건 여러개 추가하기 

 

WHERE절을 통해서 쿼리문에 조건을 추가할 수 있다. 위에 있는 내용은 한가지 조건일때만 나타내었는데

만약에 여러가지의 조건을 사용하고 싶을때는 and를 사용하시면 됩니다.

 

ex WHERE 컬럼명1=값1 and 컬럼명2=값2 

 

UPDATE 쿼리문의 콤마(,)와 다르니 주의하시기 바랍니다~

 

반응형

'IT > DB' 카테고리의 다른 글

SQL 개념 정리  (0) 2021.10.20
왜 데이터베이스 튜닝을 해야할까 ?? -  (0) 2021.10.14
쿼리란 ?  (0) 2021.10.14
DBMS와 SQL이란  (0) 2021.08.19
[DB]데이터 언어 - DDL,DML,DCL,TCL의 정의  (0) 2021.08.11

+ Recent posts