728x90

Virtualbox는 Linux, Windows, OS/2, Solaris, MacOS 등과 같은 다양한 운영 체제에서 가상 머신을 생성 및 실행하는 데 사용되는 오픈 소스 유형 2 하이퍼바이저 소프트웨어입니다. VirtualBox는 2007년에 처음 출시되었습니다. 상업적 사용을 제한하는 PUEL에 따라 릴리스된 드라이버가 포함된 확장 팩이 있는 GPL v2.

Virtualbox 6.1은 2019년 12월에 출시되었습니다. 다음과 같은 놀라운 기능이 많이 있습니다.

  1. OCI에서 VM 가져오기 및 내보내기 기능
  2. 업데이트된 확장 가능한 펌웨어 인터페이스 및 사용
  3. Intel CPU에서 중첩 가상화 지원
  4. 가져온 VM 그룹 및 스토리지 설정이 있습니다.
  5. 여러 VM 인스턴스를 생성하는 기능 제공

시작하기

이 기사에서는 Rocky Linux 8에 VirtualBox 6.1을 설치할 것입니다. 시스템에서 Virtualbox를 실행하려면 프로세서에서 가상화가 활성화되어 있는지 확인하십시오. BIOS/EFI에서 가상화가 활성화되어 있는지 확인하십시오.

egrep -c '(vmx|svm)' /proc/cpuinfo

샘플 출력: (0이 아니 어야 함) 0이면 가상화가 활성화 되지 않습니다.

$ egrep -c '(vmx|svm)' /proc/cpuinfo
4

또한 다음을 실행하여 호스트 운영 체제가 64비트인지 확인하십시오.

$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              1
On-line CPU(s) list: 0
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               69

Rocky Linux 8에 Virtualbox 6.1 설치

Rocky Linux 8에서 Virtualbox를 다운로드하고 설치하는 것은 쉽습니다. 다음 단계를 사용합니다.

1단계. VirtualBox 저장소를 추가합니다.

Rocky 시스템에 EPEL 저장소를 설치합니다.

sudo dnf install epel-release

설치된 버전 확인

 rpm -q epel-release

그런 다음 계속 진행하여 커널 헤더를 설치합니다.

sudo dnf install gcc make perl kernel-devel kernel-headers bzip2 dkms

커널 업데이트

sudo dnf update kernel-*

Virtualbox를 설치할 수 있도록 Rocky Linux 8 시스템에 Virtualbox 저장소를 추가하십시오.

sudo dnf config-manager --add-repo=https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo

리포지토리를 추가한 후 변경 사항을 적용하려면 시스템 업데이트를 실행하세요.

sudo dnf update

2단계. Rocky Linux 8에 Virtualbox 6.1 설치

추가된 저장소에는 여러 버전의 Virtualbox가 있습니다. 먼저 사용 가능한 버전을 검색합니다.

dnf search virtualbox

샘플 출력

Last metadata expiration check: 0:00:10 ago on Sat 17 Jul 2021 12:28:27 AM EAT.
====================== Name & Summary Matched: virtualbox ======================
VirtualBox-5.2.x86_64 : Oracle VM VirtualBox
VirtualBox-6.0.x86_64 : Oracle VM VirtualBox
VirtualBox-6.1.x86_64 : Oracle VM VirtualBox

이 기사를 작성할 당시 Virtualbox에는 3가지 버전이 있었습니다. 다음 명령을 사용하여 Virtualbox 6.1을 설치합니다.

sudo dnf install VirtualBox-6.1

종속성 트리:

Dependencies resolved.
================================================================================
 Package                Arch      Version                   Repository     Size
================================================================================
Installing:
 VirtualBox-6.1         x86_64    6.1.22_144080_el8-1       virtualbox     90 M
Installing dependencies:
 SDL                    x86_64    1.2.15-39.el8             appstream     217 k
 qt5-qtbase             x86_64    5.12.5-8.el8.2            appstream     3.4 M
 qt5-qtbase-common      noarch    5.12.5-8.el8.2            appstream      39 k
 qt5-qtbase-gui         x86_64    5.12.5-8.el8.2            appstream     5.8 M
 qt5-qtx11extras        x86_64    5.12.5-1.el8              appstream      39 k
 xcb-util-image         x86_64    0.4.0-9.el8               appstream      20 k
 xcb-util-keysyms       x86_64    0.4.0-7.el8               appstream      15 k
 xcb-util-renderutil    x86_64    0.3.9-10.el8              appstream      18 k
 xcb-util-wm            x86_64    0.4.1-12.el8              appstream      31 k

Transaction Summary
================================================================================
Install  10 Packages

Total download size: 99 M
Installed size: 227 M
Is this ok [y/N]: y

아래와 같이 키 가져오기를 수락합니다.

Importing GPG key 0x98AB5139:
 Userid     : "Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>"
 Fingerprint: 7B0F AB3A 13B9 0743 5925 D9C9 5442 2A4B 98AB 5139
 From       : https://www.virtualbox.org/download/oracle_vbox.asc
Is this ok [y/N]: y

Rocky Linux 8에 Virtualbox 확장 팩 설치

이제 USB 2.0, USB 3.0 장치 사용, virtualbox RDP, 디스크 암호화, 인텔 카드용 NVMe 및 PXE 부팅과 같은 다양한 기능을 지원하는 확장을 다운로드해야 합니다. 이 확장팩은 공식 웹사이트 에서 다운로드됩니다.

사이트에서 아래와 같이 VirtualBox Extension pack 지원되는 모든 플랫폼 으로 이동 합니다.

다운로드한 후 다운로드 디렉토리로 이동하여 다운로드한 파일을 찾습니다.

$ cd Downloads

사용 가능한 파일을 보려면 이 파일이 표시되어야 합니다.

$ ls
Oracle_VM_VirtualBox_Extension_Pack-*.vbox-extpack

그런 다음 설치

sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-*.vbox-extpack

라이선스 조건에 동의하고 설치를 진행합니다.

그런 다음 커널 모듈을 빌드합니다.

$ sudo /sbin/vboxconfig
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.

버추얼박스 6.1 사용

virtualbox가 설치되었으므로 이제 사용하려고 합니다. ISO 파일에서 Ubuntu 서버 20.04 LTS를 설치하려고 합니다.

아래와 같이 활동 / 앱 메뉴 에서 Virtualbox를 시작 합니다.

VirtualBox에서 가상 머신 만들기

virtualbox가 시작되면 새로 만들기를 클릭 하여 새 가상 머신을 만듭니다. 여기에서 다음 단계에 따라 가상 머신(Ubuntu 20.04LTS)을 만들 수 있습니다.

1단계. 머신 이름 및 유형 설정

이름, 파일을 저장할 경로 및 운영 체제 유형 설정

2단계. 메모리 및 스토리지 설정

그런 다음 가상 머신의 메모리를 설정합니다.

가상 머신을 위한 하드 디스크를 생성하고 스토리지 유형과 크기를 설정합니다.

4단계. 설치 미디어 추가

위의 설정을 완료했으면 이제 설치 미디어를 추가하려고 합니다. 이 경우 ISO 파일을 사용합니다. 설치 미디어를 추가하려면 설정 -> 저장소로 이동하여 컨트롤러 IDE 에서 ISO를 추가 하고 아래와 같이 광 드라이브 추가를 클릭 합니다.

위 페이지에서 생성하려는 가상 머신의 ISO 파일을 찾습니다. +추가  클릭 하여 파일로 이동합니다. ISO를 성공적으로 추가한 후 확인  클릭 하여 변경 사항을 적용합니다.

4단계. 설치를 시작합니다.

이제 " 시작 "을 클릭 하여 컴퓨터를 시작하십시오. 기계가 시작되면 아래와 같이 설치가 시작됩니다.

Ubuntu 또는 설치하려는 운영 체제의 일반 설치 프로세스를 진행합니다.

설치가 완료되면 시스템을 종료하고 설정 탭으로 이동한 다음 ISO 파일을 마우스 오른쪽 버튼으로 클릭하여 마운트 해제하고 "첨부 파일 제거"를 선택 합니다.

이제 "시작" 을 클릭하여 설치된 가상 머신을 실행할 수 있습니다.

Virtualbox에는 다른 많은 기능이 있습니다. 하나는 시스템에 대한 OVA/OVF 파일과 같은 파일을 가져와서 가상 시스템을 실행할 수 있습니다. 또한 기기에 대한 네트워크, 디스플레이, 오디오 및 기타 여러 설정을 지정할 수 있습니다. 또한 스냅샷을 저장하고 가상 머신 OVA 및 OVF 파일을 내보낼 수 있습니다. 이 파일 (템플릿)을 사용하면 유사한 가상 머신을 쉽게 배포할 수 있습니다.

결론

이 기사에서는 Rocky Linux 8에 VirtualBox 6.1을 설치하는 방법에 대한 단계별 데모를 살펴보았습니다. 또한 Virtualbox로 간단한 가상 머신을 설정하는 방법도 보여주었습니다. 이 기사가 도움이 되었기를 바랍니다.

웹사이트에서 더 많은 기사를 찾아보세요.

Linux Mint에 VirtualBox 6.x를 설치하는 방법

VirtualBox에서 KVM으로 가상 머신 가져오기

Manjaro Linux에 VirtualBox 게스트 추가 설치

728x90

( 1 ) Null Session

Windows가 설치된 네트워크의 다른 원격 컴퓨터에 user명과 패스워드를 NULL로 해서 접속할 수 있게 해주는 것을 의미함.

 

( 2 ) Null Command(공격방법)

net use \\[공격서버IP]\ipc$ "" /user:""
net use \\[공격서버IP]\ipc$ "[Password]" /user:"[USER ID]"

(net use 명령어로 확인해보자!)

 

( 3 ) Null Session의 위험성

    ① 공격자는 시스템의 유저명, 공유 정보 등을 열람할 수 있게 됨.

    ② 심지어 레지스트리 HKEY_LOCAL_MACHINE의 일부에도 접근 가능함.

    ③ DoS 공격을 수행할 때도 사용됨.

 

( 4 ) $과 관리적 공유

    ① $ - 네트워크 환경에서는 보이지 않는 숨김(Hidden) 공유를 사용함을 붙이는 접미사

    ② Windows 에서는 운영체제가 설치될 때의 각 드라이브 파티션에 대한 관리적 공유를 자동으로 생성됨. 이들 공유는 <드라이브 문자>$로 되어 있음. 기본적으로 이러한 관리적 공유는 시스템 및 도메인 관리자만이 열 수 있음.

 

( 5 ) 자동 공유되는 기능 제거 (admin$, c$, d$ 등등)

    ① 시작 -> 실행 창

    ② regedit 입력

    ③ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters 로 이동

    ④ 오른쪽 마우스 클릭 -> 새로 만들기 -> DWORD 값 클릭

    ⑤ 2000 Server, 2003 Server, XP Pro 버전일 때

      - AutoShareServer 입력

      - 값 데이터에 0 입력 (두번 클릭, 또는 오른쪽 마우스 클릭 -> 수정 클릭

     

    ⑥ 2000 Pro, XP Home Edition 버전일 때

      - AutoShareWks 입력

      - 값 데이터에 0 입력 (두번 클릭, 또는 오른쪽 마우스 클릭 -> 수정 클릭)

    ⑦ 시작 -> 실행

    ⑧ cmd 입력

    ⑨ net share admin$ /delete, net share c$ /delete, net share d$ /delete등등 입력

    ⑩ net share를 입력하여 공유되어 있는지 확인

     

    ⑪ 재부팅

 

( 6 ) 익명 계정으로부터 접근 제어

    ① 시작 -> 실행 창

    ② regedit 입력

    ③ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa로 이동

    ④ 오른쪽 마우스 클릭 -> 새로 만들기 -> DWORD 값 클릭

    ⑤ Restrictanonymous의 값 데이터를 2로 수정

        (두번 클릭, 또는 오른쪽 마우스 클릭 -> 수정 클릭)

     

 

728x90

- 참고로 해당 내용은 CentOS 7 을 기준으로 작성하였습니다.

특정 사용자(wheel 그룹)만 su 명령어 사용

아래 빨간색으로 강조된 부분 "auth required pam_wheel.so use_uid" 의 주석을 제거 하시면 됩니다.

[root@localhost ~]# vim /etc/pam.d/su

#%PAM-1.0
auth        sufficient  pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient  pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth        required    pam_wheel.so use_uid
auth        substack    system-auth
auth        include     postlogin
account     sufficient  pam_succeed_if.so uid = 0 use_uid quiet
account     include     system-auth
password    include     system-auth
session     include     system-auth
session     include     postlogin
session     optional    pam_xauth.so

 

wheel 그룹에 사용자 추가

위에서 su 명령어 사용을 wheel 그룹에 포함된 사용자로 제한하였습니다.
그러면 이제 su 명령어를 사용할 계정을 wheel 그룹에 추가하겠습니다.

[root@localhost ~]# vim /etc/group

root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:root,hong,kim

...

위와 같이 "wheel:x:10:사용자계정" 이런식으로 계정을 추가해주세요(그룹에 추가하는 명령어도 있지만 그냥 직접 추가해도 됩니다).

 

su 파일의 권한 수정

일반 사용자는 사용하지 못하게 하고 wheel 그룹에 속한 사용자만 su 명령어를 사용할 수 있도록 권한을 수정합니다.

[root@localhost ~]# which su
/bin/su
[root@localhost ~]# ll /bin/su
-rwsr-xr-x. 1 root root 32096 Apr 13 05:43 /bin/su

먼저 su 위치를 which 명령어를 이용하여 확인하고 ll 명령어로 조회 합니다. 그러면 위처럼 "-rwsr-xr-x. 1 root root" 이런 권한을 가지고 있을 겁니다.

 

[root@localhost ~]# chgrp wheel /bin/su
[root@localhost ~]# ll /bin/su
-rwxr-xr-x. 1 root wheel 32096 Apr 13 05:43 /bin/su

su 사용 그룹 권한을 wheel로 변경 합니다. wheel 그룹으로 변경하면 위와 같이 su 파일의 Permission 이 rws 에서 rwx 로 변경 된 것을 알수 있습니다.

 

[root@localhost ~]# chmod 4750 /bin/su
[root@localhost ~]# ll /bin/su
-rwsr-x---. 1 root wheel 32096 Apr 13 05:43 /bin/su

Permission 정보를 4750 으로 변경하면 끝.

728x90

ARQ : Automatic Repeat Request의 약자로, 자동 반복 요청을 의미. 에러가 발생한 경우 재전송을 요구하는 방식 

Go-back-N ARQ와 Selective Repeat ARQ는 모두 전송층(Transport Layer)의 프로토콜이며 이 두가지를 혼합 및 개선하여 만든 프로토콜이 TCP(Transmission Control Protocol)이다.

이 글에서 사용된 '프레임'이라는 용어는 전송층에서 쓰이는 '패킷'과 같은 개념이며 데이터링크층에서 사용되는 전송단위인 프레임과는 다르다.

  • 무잡음 채널에서의 프로토콜
  • 잡음이 있는 채널에서의 프로토콜
용어 정리
  • 파이프라인 
  • ACK  
  • 프레임의 종류 
  • redundent bit 
  • NAK(Negative Acknowledge) 
  • Slicing Window 


Stop-and-Wait ARQ

수신측으로부터 ACK을 받을 때까지 대기하다가 전송하는 방법
반이중 방식으로 다른 ARQ 방식보다 전송 효율이 낮다.
송신측은 프레임을 보냄과 동시에 타이머를 작동시킨다. 수신측에서 보낸 ACK를 받으면 타이머가 멈춘다.
송신측은 전송한 프레임의 사본을 보관하고 있다가 타이머가 만료되면 해당 프레임을 다시 보낸다. -> ACK이 오지 않은 경우 프레임이 손실, 중복, 순서 바뀜이 일어난 것으로 판단
수신자쪽에서의 과정 단순하다.


Go-back-N ARQ

오류가 난 지점부터 전송한 지점까지 모두 재전송 하는 기법
Timer가 만료되면 ACK가 오지 않은 프레임(sliding window의 첫 프레임)부터 재전송한다.
ex) 6번 프레임을 보냈는데 3번 프레임의 타이머가 만료된 경우, 송신자는 뒤로 돌아가서 3,4,5,6번 프레임을 다시 보낸다.
 

Selective Repeat ARQ

오류가 난 부분만 재 전송하는 기법
NAK를 사용하여 개선할 수 있다.
NAK를 쓰게 되면 Timer가 만료되기전에 해당 프레임을 재전송 해야한다는 것을 알 수 있으므로 빠른 재전송이 가능하다.
수신자 쪽에서의 과정이 복잡하다.


Adaptive ARQ

전송 효율을 최대한 높이기 위해 데이터 프레임의 길이를 동적으로 변경하여 전송한다.
수신측이 송신측에게 수신한 데이터 프레임을 감지하고 오류 발생률을 판단하여 송신측에 오류 발생률을 통보하면 송신측은 통신회선의 오류 발생률이 낮으면 긴 프레임을, 높으면 짧은 프레임을 전송한다.
728x90

도커(Docker) 이미지 추천1 : 자산 관리 앱 Snipe-IT 리뷰 및 설치 방법 ( https://blog.naver.com/destinyrev/222546662984 )

 

도커 이미지 추천2 : 온라인 사진 관리 및 갤러리 앱 Piwigo 리뷰 및 설치 방법 ( https://blog.naver.com/destinyrev/222547687020 )

 

도커 이미지 추천3 : 온라인 음악 스트리밍 서버 앱 Airsonic Airsonic advanced 리뷰 및 설치 방법 ( https://blog.naver.com/destinyrev/222548858906 )

 

도커 이미지 추천4 : 온라인 사진 갤러리 앱 Lychee 리뷰 및 설치 방법 ( https://blog.naver.com/destinyrev/222549989607 )

 

도커 이미지 추천5 : 음악 스트리밍 서버 앱, mStream Music 리뷰 및 설치 방법 ( https://blog.naver.com/destinyrev/222556044628 )

 

도커 이미지 추천6 : 비밀번호 관리 앱 Bitwarden, 내부망에서만 사용하기 ( https://blog.naver.com/destinyrev/222556077093 )

 

도커 이미지 추천7 : GUI 도커 관리 앱 Portainer 소개 및 설치 방법 ( https://blog.naver.com/destinyrev/222561756969 )

 

도커 이미지 추천8 : 멀티미디어 앱플렉스(Plex) 설치 방법https://blog.naver.com/destinyrev/222568397649 )

 

도커 이미지 추천9 : 홈페이지 앱워드프레스(wordpress) 설치 방법 ( https://blog.naver.com/destinyrev/222568400893 )

 

도커 이미지 추천10 : 클라우드 앱넥스트 클라우드(nextcloud) 설치 방법 ( https://blog.naver.com/destinyrev/222568406427 )

 

도커 이미지 추천11 : 백업 앱, duplicati 설치 방법 ( https://blog.naver.com/destinyrev/222570614912 )

 

도커 이미지 추천12 : 이북 앱, calibre-web 설치 방법 ( https://blog.naver.com/destinyrev/222570615798 )

 

도커 이미지 추천13 : 토렌트 앱, transmission 설치 방법 ( https://blog.naver.com/destinyrev/222570617029 )

 

도커 이미지 추천14 : 시스템 모니터링 앱, netdata 설치 방법 ( https://blog.naver.com/destinyrev/222572600613 )

 

도커 이미지 추천15 : 이미지 저장 및 뷰어, Pinry 설치 방법 ( https://blog.naver.com/destinyrev/222572602747 )

 

도커 이미지 추천16 : Nginx Proxy Manager 설치 방법 ( https://blog.naver.com/destinyrev/222572603774 )

 

도커 이미지 추천17 : 자동 도커 업데이트 앱, watchtower 설치 방법 ( https://blog.naver.com/destinyrev/222572604439 )

 

도커 이미지 추천18 : 파일 저장소 앱, filebrowser 설치 방법 ( https://blog.naver.com/destinyrev/222572605288 )

728x90

As we all know that Docker Container is the highly demanded technology in IT world.  With help of Docker containers, developers and infra admins can package their application and its dependencies and can run it in one computing setup to another.

In this guide, we will cover how to install Docker and Docker Compose on Rocky Linux 8 step by step.

Minimum requirements for Docker

  • 2 GB RAM or higher
  • 2 vCPU / CPU (64-bit Processor)
  • Minimal Rocky Linux 8
  • Sudo User with privileges
  • 20 GB Free Space on /var
  • 1 Nic Card
  • Stable Internet Connection

Let’s dive on Docker Installation steps,

Step 1) Install updates and reboot

Login to Rocky Linux and install all the available updates and then reboot the system once.

$ sudo dnf update -y
$ reboot

Step 2) Configure Docker Package Repository & Install Docker

To install latest and stable version of docker, configure its official package repository using the following command,

$ sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Now run following dnf command to install docker,

$ sudo dnf install -y docker-ce

Output of commands would like below:

Note: In case you are getting container.io error while installing docker-ce package then run following command,

$ sudo dnf install docker-ce --allowerassing -y

 

혹 실행시 에러가 발생한다면 selinux를 꺼주시거나 별도로 셋팅해주셔야합니다.

$ sudo setenforce 0

Step 3) Start and enable docker Service

Once docker is installed then start and enable its service using following systemctl commands,

$ sudo systemctl start docker
$ sudo systemctl enable docker

To verify the status of docker run,

$ sudo systemctl status docker

Perfect, above output confirms that docker service is up and running.

If you wish local user to mange and run docker commands, then add the user to docker group using beneath command.

$ sudo usermod -aG docker $USER

After executing the above command, log out and log in once so that docker group is associated to user and user can run docker commands without sudo.

[sysadm@rocky-linux ~]$ docker --version
Docker version 20.10.7, build f0df350
[sysadm@rocky-linux ~]$

Let’s verify the docker installation in the next step.

Step 4) Test docker Installation

To test docker installation, run hello-world container using following docker command,

$ docker run hello-world

Output,

Above output confirms that container ‘hello-world’ has been launched successfully and it also confirms that docker is installed successfully.

Step 5) Install Docker-Compose

Docker Compose command allows to spin up multiple containers in one go. So, to install it run the following commands one after the another.

$ sudo dnf install -y curl
$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
docker-compose version 2.7.0
$

Above output shows that docker-compose of version 1.29.2 is installed successfully. That’s all from guide. I hope you have found it informative. Please do share your feedback and queries in below comments section.

'IT > 리눅스(Linux)' 카테고리의 다른 글

Rocky Linux 8에 VirtualBox 6.1을 설치하는 방법  (0) 2021.12.06
root 계정 su 제한하는 방법  (1) 2021.11.30
Shadow 파일 내용  (0) 2021.10.20
Kali Linux 설치 후 접속정보 및 초기설정  (0) 2021.10.20
lsof  (0) 2021.09.29
728x90

하트블리드(HeartBleed)

 

참고URL : https://namu.wiki/w/%ED%95%98%ED%8A%B8%EB%B8%94%EB%A6%AC%EB%93%9C

728x90

IPSecVPN (IP Security Protocol VPN) 이란?

IPSec은 이전 포스팅에서도 간단히 살펴본대로, 네트워크 계층의 보안을 위한 프로토콜로 VPN에 널리 쓰이고 있다. 그리고 이 IPSec 프로토콜을 사용한 VPN을 IPSecVPN이라고 한다.사실 IPSec은 VPN을 구현하기 위해 만들어진 VPN 프로토콜이기 때문에 그냥 IPSec과 IPSecVPN을 동의어로 봐도 될 것이다.

 

IPSec은 진짜 간단히 정리하자면 그냥 'IP 프로토콜에 보안성(암호+인증)을 입혀 사설망과 같은 보안 효과를 갖지만 가상 사설망이기 때문에 비용은 저렴한 방식'이라고 설명할 수 있겠다. 또한 IPSec은 IP 프로토콜이 3계층이기 때문에 당연하게도 3계층 터널링 프로토콜이다. 따라서 암호화 인증은 네트워크계층 상에서 IP 패킷 단위로 이루어진다.

 

3계층에서 보안성이 이루어진다면 어플리케이션 종속적이지 않게된다. 이게 무슨 뜻이냐면, 예를 들어 특정 어플리케이션을 위한 보안 솔루션이 만들어졌다고 해보자. 그러면 해당 보안 솔루션은 어플리케이션을 설치하는 시스템마다 전부 설치되어야하고, 어플리케이션이 업그레이드 혹은 패치라도되면 그에 맞게 보안 솔루션도 변경해야 하게 되는 것이다.

 

또한, 한가지 알아두어야 할 것이 IPv6에서는 IPSec이 디폴트라는 것이다. 그럼 이제, 아래에서 IPSec의 두가지 모드에 대해 알아보자.

 

 

IPSec의 두가지 모드

IPSec은 '전송 모드(transport mode)'와 '터널 모드(tunnel mode)' 두 가지 모드를 지원한다. 전송 모드는 IP 패킷 전체가 아닌 페이로드만을 보호하고 터널 모드는 IP 패킷 전체를 보호한다. 아래 설명과 그림을 함께 보며 좀 더 자세히 이해해보자.

 

전송 모드 (Transport Mode)

전송 모드는 IP 헤더를 제외한 IP 패킷 페이로드만을 보호하는 방식이다. 즉, IP 계층의 상위 프로토콜인 전송 계층의 데이터(좀 더 자세히는 TCP/UDP 헤더 + 데이터)만을 보호하는 것이다. 전송 모드의 패킷 모양과 본래 IP 패킷 모양을 비교해보면 IPSec 헤더가 추가되어 있는 것을 볼 수 있다.

 

그리고 당연히도 IP 페이로드를 구성하는 요소에 IPSec 헤더도 들어가게 된다. 사실 이 헤더가 추가됐다는 것만으로 IP 페이로드를 보호한다는 것은 당연히 아니다. 어떠한 보안 프로토콜을 통해 보안성이 입혀지고난 후 (아래에서 자세히 살펴볼 예정) 관련 정보를 표시해야하기 때문에 이 정보를 헤더에 담는 것이다.

 

어쨌든 IPSec 헤더가 감싸는 구성에 IP 헤더는 포함되지 않으므로 전송 모드는 IP 헤더를 제외한 IP 페이로드만을 보호하는 방식이라고 하는 것이다.

 

IP 패킷과 IPSec 전송 모드 IP 패킷 비교

 

터널 모드 (Tunnel Mode)

전송 모드와는 달리 터널 모드는 IP 패킷 전체를 보호한다. 아래 그림을 보면, 위에서 살펴본 전송 모드와 패킷 구성이 어떻게 다른지 한눈에 알 수 있다. 터널 모드에서는 IPSec 헤더가 IP 패킷 전체인 IP 헤더 + IP 페이로드 앞에 위치해 있다. 게다가 새로운 IP 헤더가 IPSec 헤더 앞에 추가되어 있다.

 

새로운 IP 헤더가 추가된건 본래의 IP 헤더가 IPSec 헤더 뒤에 위치하게 됐으니 이대로 패킷을 구성하게 되면, 라우팅 정보가 없게 되므로 패킷이 원하는 목적지에 도달할 수가 없다. 따라서 라우팅 정보 추가를 위해 본래의 IP 패킷은 보호하면서도 새로운 IP 헤더를 추가하는 것이다. 이렇게 되면, 전송 모드와는 다르게 트래픽 정보 노출을 방지할 수 있게 된다.

 

IPSec 터널 모드 IP 패킷

 

터널 모드(Tunnel Mode) : 터널 게이트웨이 사이에서 터널이 생성되며 사설 IP 주소를 사용할 수 있고 IP 헤더를 포함한 전체 패킷에 대해서 암호화되어 전송되는 모드이다.


전송 모드(Transport Mode) : 최종 단말 사이에서 터널이 생성되며, 출발지와 도착지 주소를 기반으로 QoS를 제공할 수 있고, IP 헤더를 제외한 Payload를 암호화하여 전송하는 모드이다.

728x90

정량적 위험 분석

위험 분석 프로세스의 모든 요소에 대하여 금전적 가치와 숫자값을 부여하는데 사용(객관적으로 분석)

분석 내의 각 요소(자산가치, 위협 빈도, 취약의 심각성, 피해 영향, 안전장치 비용, 안전장치 비용, 안전장치 실효성,

불확실성, 개연성 항목)는 정량화되어 공식에 입력되어 전체 및 잔여 위험을 판단.

 

장점

1. 객관적인 평가기준이 적용

2. 정보의 가치가 논리적으로 평가되고 화폐로 표현되어 납득이 더 잘간다.

3. 위험관리 성능평가가 용이

4. 위험 평가 결과가 금전적 가치, 백분율, 확률 등으로 표현되어 이해가 쉽다.

 

단점.

1. 계산이 복잡하여 분석하는데 시간, 노력, 비용이 많이 든다.

2. 수작업의 어려움으로 자동화 도구를 사용할 시 신뢰도가 벤더에 의존하게 됨.

 

정량적 분석 방법의 종류.

1. 과거자료 분석법: 미래 사건의 발생 가능성을 예측하는 방법으로 과거의 자료를 통해 위험발생 가능성을 예측한다.

2. 수학공식 접근법: 위협의 발생 빈도를 계산하는 식을 이용하여 위험을 계량하는 방법이다.

3. 확률 분포법: 미지의 사건을 추정하는데 사용하는 방법 확률적 편차를 이용하여 최저, 보통, 최고의 위험 분석을 예측

4. 점수법: 위험 발생 요인에 가중치를 두어 위험을 추정하는 방법이다. 

 

정성적 위험 분석

구성요소와 손실에 대해 숫자와 화폐적 가치를 부여하는 대신에 다양한 위험 가능성의 시나리오에 정성적 방법을 투영시켜 위협의 심각성과 자산 중요성의 순위를 정한다. 

정성적 위험분석 기술은 판단, 직관, 경험을 포함한다. 

 

장점

1. 계산에 대한 노력이 적게 든다.

2. 정보자산에 대한 가치를 평가할 필요가 없다. 

3. 비용/이익을 평가할 필요가 없다. 

 

단점.

1. 위험평가 과정과 측정기준이 지극히 주관적임.

2. 위험완화 대책의 비용/이익 분석에 대한 근거가 제공되지 않고 문제에 대한 주관적인 지적만 있다. 

3.위험관리 성능을 추적할 수 없다. 

 

정성적 분석 방법의 종류

1. 델파이법: 전문적인 지식을 가진 전문가 집단이  위험을 분석 및 평가하여 다양한 위협과 취약점을 토론을 통해 분석하는 방법.

2. 시나리오법: 어떤 사건도 기대대로 발생하지 않는다는 사실에 근거하여 일정조건하의 위협에 대해 발생가능한 결과를 추정하는 방법.

3. 순위결정법: 비교 우위 순위 결정표에 위험 항목들의 서술적 순위를 결정하는 방법. 

4. 퍼지 행렬법: 자산, 위험, 보안체계등 위험분석 요소들을 정성적인 언어로 표현된 값을 사용하여 기대손실을 평가하는 방법.

728x90

웹 애플리케이션 보안 취약점 찾는 방식


① 블랙 박스 테스팅(Black Box Testing) : 웹 애플리케이션의 소스코드를 보지 않고 외부 인터페이스나 구조를 분석하여 취약점을 찾는 방식


② 화이트 박스 테스팅(White Box Testing) : 웹 애플리케이션의 개발된 소스코드를 보고 취약점을 찾는 방식


③ 그레이 박스 테스팅(Gray Box Testing) : 블랙 박스 테스팅과 화이트 박스 테스팅의 장점을 혼합한 방식으로, 외부에서 보이는 취약점을 웹 애플리케이션 보안진단을 통해 확인하고, 소스코드에서 접근통제, 입력값 검증, 세션 처리 문제 등을 같이 살펴보면서 취약점을 조사하는 방식이다.

728x90

멤캐시드(Memcached) 란?

메모리를 사용해 캐시서비스를 제공해 주는 데몬으로 기업에서 대역폭을 효과적으로 사용하기 위해 구축한다.

 

멤캐시드 반사공격

공용 네트워크상에 공개되어 있는 대량의 멤캐시드 서버(분산식 캐시 시스템)에 존재하는 인증과 설계의 취약점을 이용하는 공격이다.

공격자는 멤캐시드 서버 IP주소의 기본 포트인 11211번 포트로 희생자 IP주소로 위장된 특정 명령의 UDP 패킷(stats, set/get 명령 등)을 전송하면 멤캐시드 서버가 희생자 IP로 원해 패킷보다 수배의 패킷(이론상으로는 5만배까지 가능)을 반사하며 DRDos 공격을 수행한다.

 

대응방안

멤캐시드 서버 혹은 멤캐시드가 있는 네트워크 상단에 방화벽을 설치하고 업무관련 IP만 접속 허용하도록 한다.

멤캐시드 서버의 리스닝 포트를 기본 포트인 11211이 아닌 다른 포트로 바꿔 악의적으로 이용되지 않도록 한다.

멤캐시드 최신 버전으로 업데이트 하고 SASL을 사용해 비밀번호 설정 및 권한을 제어한다.

728x90

False Positive(오탐) : 실제로 오류가 존재하지 않지만, 오류라고 보고하는 경우
True Negative : 실제 오류가 존재하지 않고, 보고도 하지 않는 경우
False Negative(미탐) : 실제로 오류가 존재하지만, 오류가 없다고 보고하는 경우
True Positive : 실제 오류가 존재하고, 오류가 있다고 보고하는 경우

'IT > 정보보안' 카테고리의 다른 글

웹 애플리케이션 보안 취약점 찾는 방식  (0) 2021.10.20
Memcached(멤캐시드) 반사공격  (0) 2021.10.20
Apache 웹 서버 보안 설정  (0) 2021.10.20
TCP ACK Scan  (0) 2021.10.20
MAC방식 사용 모델  (0) 2021.10.20
728x90

Apache 웹 서버 보안 설정을 하고자 한다. 환경설정 파일인 httpd.conf 파일에 각각 해당하는 보안 설정을 기술하시오.

 

① 서버가 클라이언트로부터 응답을 기다리는 최대시간을 300초로 설정한다.

timeout 300

 

② KeepAlive 상태에서 연결당 처리할 최대 요청 처리 건수를 1000으로 설정한다.

MaxKeepAliveRequest 1000

 

③ 디렉터리만을 지정했을 경우 그 디렉터리에서 자동으로 보여줄 웹 문서를 index.htm으로 설정하되 index.htm이 없으면 index.php를 보이게 한다.

DirectoryIndex index.htm index.php

 

④ 서버접속 오류메시지를 /user/local/apache/logs/error_msg에 기록한다.

ErrorLog /user/local/apache/logs/error_msg

'IT > 정보보안' 카테고리의 다른 글

Memcached(멤캐시드) 반사공격  (0) 2021.10.20
오탐과 미탐(False Positive, False Negative)  (0) 2021.10.20
TCP ACK Scan  (0) 2021.10.20
MAC방식 사용 모델  (0) 2021.10.20
사이버 위기 경보 단계  (0) 2021.10.20
728x90
스캐너 A
(Client)
ACK 목적지 포트번호 2012→
ACK 목적지 포트번호 2013→
ACK 목적지 포트번호 2014→
ACK 목적지 포트번호 2015→
ACK 목적지 포트번호 2015→
ACK 목적지 포트번호 2016→
ACK 목적지 포트번호 2017→
←ACK 출발지 포트번호 2017
ACK 목적지 포트번호 2018→
스캐닝 시스템 B

위 그림은 스캐너 A와 스캔 대상 시스템 B 사이에서 이루어지는 스캐닝을 표현하고 있다.

 

① 스캐닝 유형의 명칭은 무엇인가?

TCP Ack Scan

 

② 해당 스캐닝 유형의 사용 목적은 무엇인가?

사용 목적 : 포트의 개방 여부가 아닌 방화벽의 Rule Set(필터링 정책)을 테스트 하기 위한 스캔으로 방화벽 Rule Set은 대상 방화벽이 상태 기반(Stateful) 여부(TCP 연결 상태 추적), 대상 포트가 방화벽에 의해 필터링이 되고 있는지를 확인하기 위해서 사용한다.

 

③ 그림상의 응답을 통해 파악할 수 있는 정보를 무엇인가?

방화벽에서 필터링 여부

필터링 시 : 응답없음 또는 ICMP 메시지 받음

필터링 되지 않으면 : RST+ACK 전송

 

※ ACK 패킷을 이용한 스캔

ACK 패킷을 포토 하나가 아니라 모든 포트에 보내고, ACK 패킷을 받은 시스템은 이에 대한 RST 패킷을 보낸다. RST패킷의 TTL 값과 윈도우 크기 분석 가능하다.

포트가 열린 경우 TTL 값이 64이하인 RST 패킷이 돌아오고, 윈도우가 0이 아닌 임의의 값을 가진 RST 패킷이 돌아온다.

포트가 닫힌 경우 TTL 값이 운영체제에 따라 일정하게 큰 값으며, 윈도우 크기가 0인 RST 패킷이 돌아온다.

'IT > 정보보안' 카테고리의 다른 글

오탐과 미탐(False Positive, False Negative)  (0) 2021.10.20
Apache 웹 서버 보안 설정  (0) 2021.10.20
MAC방식 사용 모델  (0) 2021.10.20
사이버 위기 경보 단계  (0) 2021.10.20
버퍼 오버플로 공격  (0) 2021.10.06
728x90

보안 운영체제의 MAC방식 중 MLS(Multi Level Security)에서는 객체에 포함된 정보의 보안등급과 주체가 갖는 등급에 근거하여 객체에 대한 주체들의 접근을 제한하는 다양한 모델들이 적용된다.

① 흐름 제어를 위해 No-Read-Up와 No-Write-Down 두 가지 규칙을 사용하여 정보의 기밀성을 보호하는 보안모델의 이름은 무엇인가? (Bell-Lapadula 모델)


② No-Read-up 규칙(Simple Security Property)을 설명하시오.
No-Read-up(Simple Security Property) : 특정 수준에 있는 주체는 더 상위 수준을 가지는 데이터를 읽을 수 없다. 즉, 주체의 취급 인가가 객체의 기밀등급보다 같거나 높아야 객체를 읽을 수 있다.


③ No-Write-Down 규칙(Property)을 설명하고, 이러한 규칙이 보안성 관점에서 어떤 의미가 있는가?
No-Write-Down 규칙(Property)과 보안성 관점
No-Write-Down 규칙(Property) : 특정 수준에 있는 주체는 더 하위 수준으로 데이터에 쓰기 권한이 없다. 이는 주체의 취급 인가가 객체의 기밀등급보다 낮거나 같아야 객체에 기록할 수 있다.
보안성 관점 : 기밀성 관점에서 높은 등급의 사용자가 정보를 읽어서 낮은 등급으로 유출할 가능성을 방지하기 위한 것이다.


④ 비인가 사용자의 데이터 변경이나 인가된 사용자의 인가되지 않은 데이터 변경 작업을 방지하는 등 정보의 무결성을 보호하기 위해 BiBa 모델이 사용된다. BiBa 모델의 Write 규측(Property)을 설명하시오.
BiBa 모델의 No-Write-Up : 사용자 무결성 등급보다 높은 등급을 가진 데이터를 수정할 수 없다.

'IT > 정보보안' 카테고리의 다른 글

Apache 웹 서버 보안 설정  (0) 2021.10.20
TCP ACK Scan  (0) 2021.10.20
사이버 위기 경보 단계  (0) 2021.10.20
버퍼 오버플로 공격  (0) 2021.10.06
OECD 정보보호 가이드라인 9개 원칙  (0) 2021.10.06
728x90

Shadow 파일 내용

 

(예)
Kisa : $6$oLSEKmBI$Ptj.RvqrzLwTcZTZp603.WqaizUxacg.D.IKc6jqlZUNnltw.rLiq502qIPT6jgybuuashjw7Lkoewrn11gguVx0:117653:0:9999:7:::

 

위의 (예)에서
첫번째 $필드값 - 암호화기법
두번째 $필드값 - Solt값
세번째 $필드값 - 암호화된 Password 해시값

서로 다른 계정이 같은 비밀번호를 사용하더라도 Salt값이 다르면 전혀 다른 해시값이 생성된다. 또 같은 해시값이라도 솔트값이 전혀 다르기 때문에 평문을 유추하기 힘들어 레인보우 테이블에 의한 암호 크랙 공격에 대응이 가능하다.
[참고] 솔트(Salt)는 비밀번호와 같이 해시값에 추가적으로 포함된 가입시간이나 난수를 말한다.

pwunconv 명령어는 Shadow 비밀번호 정책의 비밀번호 시스템에서 일반정책으로 변환하는 명령어, 즉 Shadow 파일 비활성화 명령어이다.

'IT > 리눅스(Linux)' 카테고리의 다른 글

root 계정 su 제한하는 방법  (1) 2021.11.30
Rocky Linux 9에 Docker 및 Docker-Compose를 설치하는 방법  (0) 2021.11.20
Kali Linux 설치 후 접속정보 및 초기설정  (0) 2021.10.20
lsof  (0) 2021.09.29
Syslog  (0) 2021.09.15
728x90

사이버 위기 경보 단계

① 정상 단계
국내 민간 분야 인터넷 정상 소통
인터넷 소통 및 사용에 지장이 없는
 - 웜/바이러스 등 악성코드 출현 탐지
 - 신규 보안 취약점 또는 해킹 기법 등 발표
위험도가 낮은 국지성 이상 트래픽 발생 가능성 존재

② 관심 단계
위험도가 높은 웜/바이러스, 취약점 및 해킹 기법 출현으로 인해 피해 발생 가능성 증가
해외 사이버공격 피해가 확산되어 국내 유입 우려
침해사고가 일부 기관에서 발생
국내외 정치 군사적 위기상황 조성 등 사이버안보 위해 가능성 증가

③ 주의 단계
일부 정보통신만 및 정보시스템 장애
침해사고가 다수기관으로 확산될 가능성 증가
국내외 정치 군사적 위기발생 등 사이버안보 위해 가능성 고조

④ 경계 단계
복수 정보통신서비스제공자(ISP)망 기간통신망에 장애 또는 마비
침해사고가 다수기관에서 발생했거나 대규모 피해로 확대될 가능성 증가

⑤ 심각 단계
국가 차원의 주요 정보통신망 및 정보시스템 장애 또는 마비
침해사고가 전국에서 발생했거나 피해 범위가 대규모인 사고 발생

'IT > 정보보안' 카테고리의 다른 글

TCP ACK Scan  (0) 2021.10.20
MAC방식 사용 모델  (0) 2021.10.20
버퍼 오버플로 공격  (0) 2021.10.06
OECD 정보보호 가이드라인 9개 원칙  (0) 2021.10.06
위험관리 방법론(기준선법, 상세위험분석)  (1) 2021.10.06
728x90

Kali Linux 설치 후 초기 접속정보
 root / toor 또는 kali / kali

한글 표기 및 입력 설정
apt-get update
apt-get install fcitx-hangul
apt-get install fcitx-lib*
apt-get install fonts-nanum*

재부팅

메뉴바 좌측 버튼을 눌러 Input method를 누른다.
팝업창이 뜨게 되는데 YES를 누른다.
중간에 configuration을 선택하는 창이 나오는데 fctitx를 누른 후 OK를 누른다.
설정이 완료된 후 Fcitx Configuration을 누른다.
여기서 한글을 추가할 수 있는데, Method configuration 창에서 하단의 +버튼을 누르고 Only Show Current Language 체크박스를 해제한 후 Hangul을 입력한 뒤 OK를 누른다.
마지막으로 한/영 변환을 위해 Global Config창으로 들어가 Trigger Input Method에서 Ctrl+Space를 누른 후 한/영 버튼을 눌러 설정을 완료한다. 만일 한/영 버튼을 눌러도 Hotkey 설정이 안된다면 한/영 키 옆의 Alt 버튼을 사용하거나 그 외 편한 버튼을 사용하도록 한다.

'IT > 리눅스(Linux)' 카테고리의 다른 글

Rocky Linux 9에 Docker 및 Docker-Compose를 설치하는 방법  (0) 2021.11.20
Shadow 파일 내용  (0) 2021.10.20
lsof  (0) 2021.09.29
Syslog  (0) 2021.09.15
유닉스 환경의 Log 종류  (0) 2021.09.14
728x90

버퍼 오버플로 공격

Stack 오버플로 공격 : 할당된 버퍼 크기를 초과하는 데이터를 기록하고 저장된 복귀주소를 변경하여 임의의 코드를 실행
Heap 오버플로 공격 : 할당된 버퍼 크기를 초과하는 데이터를 기록하고 저장된 데이터 및 함수의 주소를 변경해서 임의의 코드를 실행

728x90

OECD 정보보호 가이드라인 9개 원칙

OECD 정보보호 가이드라인 목표
가이드라인은 정보시스템과 네트워크를 보호하기 위한 수단으로 모든 참여자(Participants)들 사이에서 보안문화를 촉진하여 모든 참여자들이 관련 보안위쳡과 방지책에 대해 자신의 역할에 맞게 인식하고 보안에 대한 책임을 수용하며 보안을 향상시킬 수 있는 올바른 수단들을 취하게 한다. 정보시스템과 네트워크 및 이들이 이용되는 방식에 대한 보다 큰 신뢰를 형성하는 것을 목적으로 하고 있다.

① 인식(Awareness) - 참여자들은 정보 시스템과 네트워크 보안의 필요 및 보안을 향상시키기 위해 무엇을 할 수 있는지 인지하고 있어야 한다.
② 책임(Responsibility) - 모든 참여자들은 정보시스템과 네트워크 보안에 책임이 있다.
③ 대응(Response) - 참여자들은 보안 사고를 방지, 탐지, 대응하는데 시기적절하게 협력적으로 행동해야 한다.
④ 윤리(Ethics) - 참여자들은 타인들의 적법한 이익을 존중해야만 한다.
⑤ 민주주의(Democracy) - 정보시스템과 네트워크의 보안은 민주사회에서의 근본적인 가치들과 조화되어야 한다.
⑥ 위험평가(Risk Assessment) - 참여자들은 위험평가를 시행해야 한다.
⑦ 보안설계와 이행(Security Design and Implementation) - 참여자들은 보안을 정보시스템과 네트워크의 핵심 요소로 포함시켜야 한다.
⑧ 보안 관리(Security Management) - 참여자들은 보안 관리에 있어 포괄적인 접근 방식을 도입해야 한다.
⑨ 재평가(Reassessment) - 참여자들은 정보시스템과 네트워크의 보안을 재검토 및 재평가하여야 하며 보안 정책, 관행, 도구, 절차 등에 적절한 수정을 가해야 한다.

'IT > 정보보안' 카테고리의 다른 글

사이버 위기 경보 단계  (0) 2021.10.20
버퍼 오버플로 공격  (0) 2021.10.06
위험관리 방법론(기준선법, 상세위험분석)  (1) 2021.10.06
전자우편 필터링 도구  (0) 2021.09.29
전자서명의 종류  (0) 2021.09.29
728x90

네트워크관리사 2급 실기(라우터 시험) 정리

 

2021.10.06. by 영진직업전문학교 류원석 교수

 

문제1) ROUTER의 호스트 이름을 'ICQA'로 설정하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)# hostname ICQA

ICQA(config)#exit

ICQA#copy r s

Destination filename [start-config]?

 

문제2) 인터페이스 정보를 확인하고 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#show interface

Router#copy r s

Destination filename [start-config]?

 

문제3) 접속한 사용자를 확인하고 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#show user

Router#copy r s

Destination filename [start-config]?

 

문제4) 라우팅 테이블을 확인하고 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#show ip route

Router#copy r s

Destination filename [start-config]?

 

문제5) 플래시를 확인하고 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#show flash

Router#copy r s

Destination filename [start-config]?

 

문제6) Serial 2/0의 대역폭을 2048k로 설정하고, NVRAM에 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#int s2/0

Router(config-if)#ban 2048

Router(config-if)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제7) Serial 2/0clock rate72k로 설정하고, NVRAM에 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#int s2/0

Router(config-if)#clock rate 72000

Router(config-if)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제8) FastEthernet 0/0description을 설정하고 NVRAM에 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#int fa0/0

Router(config-if)#des ICQA

Router(config-if)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제9) FastEthernet 0/0IP Address192.168.2.1/30192.168.3.1/30 Secondary로 설정하고 저장하시오.

(완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#int fa0/0

Router(config-if)#ip add 192.168.2.1 255.255.255.252

Router(config-if)#ip add 192.168.3.1 255.255.255.252 secondary

Router(config-if)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제10) Default-Gateway를 설정하고 저장하시오. (IP: 192.168.0.10) (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#ip default-gateway 192.168.0.10

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제11) Router1 Telnet에 접근하는 Password‘TELPass’로 설정하고, 상태를 저장하시오.

(완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#li v 0 4

Router(config-line)#password TELPass

Router(config-line)#login

Router(config-line)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제12) Telnet550초 동안 신호가 없는 경우 해당 세션을 자동으로 종료하도록 라우터를 설정하시오.

(완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#li v 0 4

Router(config-line)#exec-t 05 50

Router(config-line)#login

Router(config-line)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제13) Router1 console의 패스워드를 ICQACon으로 설정하고, 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#li c 0

Router(config-line)#login

Router(config-line)#password ICQACon

Router(config-line)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제14) Router2Interface Serial 2/0을 활성화시키고 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#int s2/0

Router(config-if)#no shutdown

Router(config-if)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제15) Hostnamenetwork2로 변경하고, Console 0Passwordroute5로 변경하고 login하시오.

(완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#hostname network2

network2(config)#li c 0

network2(config-line)#password route5

network2(config-line)#login

network2(config-line)#exit

network2(config)#exit

network2#copy r s

Destination filename [start-config]?

 

문제16) domain-name‘DOMAIN’으로 설정하고 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#ip domain-name DOMAIN

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제17) Router1에서 Console 0Password를 설정하고 저장하시오. (Password : asin)

(완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#li c 0

Router(config-line)#login

Router(config-line)#password asin

Router(config-line)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제18) Router1에서 Virtual Terminal Password를 설정하고 저장하시오. (Password : asin)

(완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#li vty 0 4

Router(config-line)#login

Router(config-line)#password asin

Router(config-line)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제19) Router1에서 아래의 결과값과 동일하게 설정하고 저장하시오. (hostname : asin21, password : asinpass)

(완료된 설정은 startup-config에 저장하시오.)

hostname asin21
!
enable password asinpass
!
Interface Ethernet 0
no ip address
no ip direct-broadcast
shut down
!

정답)

Router>en

Router#conf t

Router(config)#hostname asin21

asin21(config)#enable password asinpass

asin21(config)#exit

asin21#copy r s

Destination filename [start-config]?

 

문제20) Router1에서 FastEthernet 1/0IP 및 서브넷을 설정하고 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#int fa1/0

Router(config-if)#ip add 210.108.245.1 255.255.255.192

Router(config-if)#no shutdown

Router(config-if)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

 

문제21) Router1에서 login할 때 나타나는 배너(Banner)를 설정하시오. (banner : Welcome to Asin Router)

(완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#banner motd #

Welcome to Asin Router

#

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제22) Router1AUX Port로 접속할 때 암호를 묻는 AUX 패스워드를 설정하고 NVRAM에 저장하시오.

(, AUX 패스워드는 ‘AUXICQA’) (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#conf t

Router(config)#li aux 0

Router(config-line)#password AUXICQA

Router(config-line)#login

Router(config-line)#exit

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

문제23) Router1에 현재 실행 중인 CPU 상태를 NVRAM에 저장하시오. (완료된 설정은 startup-config에 저장하시오.)

정답)

Router>en

Router#show process

Router#copy r s

Destination filename [start-config]?

 

문제24) 아래와 같이 Router1의 접근 계정(icqa)을 설정하고, 현재 상태를 NVRAM에 저장하시오.

(, 계정(icqa)의 패스워드는 network이고 대소문자를 구분한다.) (완료된 설정은 startup-config에 저장하시오.)

hostname Router
!
username icqa password 0 network
interface Ethernet 0
!

정답)

Router>en

Router>conf t

Router(config)#username icqa password network

Router(config)#exit

Router#copy r s

Destination filename [start-config]?

 

728x90

위험관리 방법론(기준선법, 상세위험분석)

기준선법
국내외 표준, 외국 컨설팅 업체의 기본 통제 등을 참조하는 위험 관리 방법론으로서 위험분석을 위한 자원이 필요하지 않고, 보호대책 선택에 들어가는 시간과 노력이 줄어드는 장점이 있다. 만약 기업이 선정한 기본 통제표준과 같은 환경에서 운영되는 조직의 시스템이 많고 사업 필요성이 비교 가능하다면 비용 효과적인 선택이 될 것이다. 고려사항으로 기본적인 보호대책이 너무 높게 설정되었다면 어떤 시스템에 대해서는 비용이 너무 많이 들고 너무 제한적이 되어 버리며, 기본적인 보호대책이 너무 낮게 설정되었다면 어떤 시스템에 대해서는 보안 결핍을 가져올 수 있다.

상세위험분석
① 위험분석 방법론으로 화폐가치로 표현이 가능하며 예산 수립에 유용한 값을 산출해 낼 수 있는 정량적 분석과 자산에 대한 화폐 가치 식별이 어려운 경우에 사용되는 정성적 분석법이 있다. 정량적 분석의 종류로는 ALE, 과거자료분석법, 수학공식법, 확률 분포법 등이 있으며, 정성적 분석의 종류로는 델파이법, 시나리오법, 순위결정법 등이 있다.


② 정량적 분석의 장점은 정보의 가치가 논리적으로 평가되고 수치로 표현되어 비교적 납득이 더 잘 되고 객관적인 평가기준이 적용되며 위험 관리 성능평가가 용이하다. 단점으로는 계산이 복잡하여 분석하는데 시간, 노력, 비용이 많이 든다는 것이다. 수작업의 어려움으로 자동화 도구를 사용 시 신뢰도가 벤더에 의존된다는 점을 고려해야 한다.


③ 정성적 분석의 장점으로는 정보자산에 대한 가치, 비용, 이익을 평가할 필요가 없고 계산에 대한 노력이 적게 든다는 점이다. 단점은 측정기준이 지극히 주관적이어서 사람에 따라 달라질 수 있고 위험완화 대책의 비용 및 이익 분석에 대한 근거가 제공되지 않고 위험 관리 성능을 추적할 수 없다는 점이다.

'IT > 정보보안' 카테고리의 다른 글

버퍼 오버플로 공격  (0) 2021.10.06
OECD 정보보호 가이드라인 9개 원칙  (0) 2021.10.06
전자우편 필터링 도구  (0) 2021.09.29
전자서명의 종류  (0) 2021.09.29
루트킷(Rootkit)  (0) 2021.09.29
728x90

전자우편 필터링 도구

메일 보안기술 세부 내용
Spamassassin ① Rule을 기반으로 하여 메일 헤더 및 내용을 분석
② RBL을 참조하여 Rule이 매칭되고 총점수가 임계치를 넘으면 Spam 메일로 결정
Inflex ① 내부 혹은 외부로 발송되는 메일을 검사하고 첨부파일을 필터링 할 수 있음
② 내용 스캔, 메일 In 혹은 Out 정책, 첨부파일 필터링
Sanitizer 확장자를 사용한 필터링, MS Office 매크로 검사, 악성메일 Score, 감염된 메시지 보관 장소 설정
RBL
(Real time Black List)
SPAM 메일 방지를 위해서 IP Black List 관리
SPF
(Send Policy Framework)
① 허용된 도메인 혹은 IP 등에서 발송 여부를 확인
② DNS를 설정하여 SPAM 메알을 방지함
Procmail 메일 크기, 내용, 보낸 사람 등으로 필터링 지원
728x90

Ingress 필터링

라우터 외부에서 라우터 내부로 유입되는 패킷을 필터링하는 것이다.

패킷의 소스 IP 나 목적지 포트 등을 체크하여 허용하거나 거부하도록 필터링 하는 것을 뜻한다. 

공통적으로 필터링 하여야할 소스 IP는 인터넷 상에서 사용되지 않는 IP 대역

(대부분의 공격이 실제 존재하지 않는 위조된 IP 주소를 소스로 함)

 

Egress filtering 

라우터 내부에서 라우터 외부로 나가는 패킷의 소스ip를 체크하여 필터링

라우터를 통과하여 나가는 패킷의 소스 IP는 반드시 라우터와 같은 대역이여야 한다.

(라우터를 통해 나가는 패킷의 소스 ip 중 사용중인 ip 대역을 소스로 한 패킷은 허용하고 나머지는 거부 하도록 설정)

 

Blackhole filtering(Null routing 을 활용한 필터링)

특정한 ip 대역에 대해서 Null 이라는 가상의 쓰레기 인터페이스로 보내도록 함으로써 패킷의 통신이 되지 않도록 함

 

Unicast RPF

인터페이스를 통해 들어오는 패킷의 소스 ip 에 대해 라우팅 테이블을 확인하여 들어온 인터페이스로 다시 나가는지 확인

728x90

전자서명의 종류

은닉서명
① D.Chaum에 의해서 제안된 서명 방식이다.
② 서명자가 서명문 내용을 알지 못하는 상태에서 서명하는 것을 수식으로 표현한다.
③ 서명문의 내용을 서명자로부터 숨기는 서명방식으로 서명을 받는 사람의 신원과 서명문을 연결시킬 수 없기 때문에 익명성을 유지한다.
④ 전자화폐에 사용한다.

대리(위임)서명
① 본인이 부재 시 자신을 대신하여 다른 사람이 서명을 수행한다.
② 제3자가 서명할 수 있어야 하고 검증자는 서명자의 위임 사실을 확인할 수 있어야 한다.
③ 완전위임, 부분위임, 보증위임

그룹서명
① D.Chaum과 Evan Heyst에 의해서 제안된 방법이다.
② 특성상 소속원의 익명성을 보장하는데 응용된다.
③ 그룹의 소속원만이 서명할 수 있다.
④ 검증자는 그룹의 서명문을 확인할 수 있으나 서명자의 신원을 알 수 없다.

다중서명
① 전자결제시스템 혹은 전자계약시스템에 응용 가능한 방식이다.
② 동시 다중서명 : 전자서명시스템의 경우 동시 다중서명을 사용해서 서로 간에 안전한 계약을 수행한다.
③ 순차 다중서명 : 전자결제의 경우 순차다중성 방식을 이용해 서명한다.

수신자 지정 서명
① 특정 수신자만 검증 가능, 서명자도 검증 불가능하다.
② 특정 수신자는 필요 시 제3자에게 서명의 정당성을 확인 가능하다.
③ 지정된 수신자만 서명을 확인할 수 있어야 하며 서명자조차도 서명을 확인할 수 없어야 한다.

이중서명
① 사용자의 지불정보는 상점에 숨기고 주문정보는 은행에 숨김으로써 사용자의 프라이버시가 보호되도록 한다. (SET)

728x90

루트킷(Rootkit)?

 

어원은 root(유닉스/리눅스 권한) + kit(도구).유닉스 계열 시스템에서 해커가 시스템 툴을 rootkit으로 바꾸는 데서 유래

 

악성코드의 존재를 감추기 위해 설치하는 소프트웨어

 

루트킷 (rootkit)은 컴퓨터 소프트웨어 중에서 악의적인 것들의 모음으로써, 자신의 또는 다른 소프트웨어의 존재를 가림과 동시에 허가되지 않은 컴퓨터나 소프트웨어의 영역에 접근할 수 있게 하는 용도로 설계되었다.[1] 루트킷이라는 용어는 "루트"(유닉스 계열 시스템에서 권한을 가진 계정의 전통적인 이름)와 "kit"(툴을 구현하는 소프트웨어 구성 요소를 가리킨다.)의 합성어이다. "루트킷"이라는 용어는 악성 소프트웨어와의 연관으로 인해 부정적인 의미를 함축하고 있다.[1]

 

루트킷의 설치는 자동으로 이루어지거나 공격자가 루트 권한이나 관리자 접근을 획득하였을 때 설치될 수 있다. 이 접근을 획득하는 것은 알려진 취약점(권한 확대 같은)을 공격하는것이나 암호(크래킹 또는 사회공학을 통해 획득한)를 통한 직접적인 권한의 결과이다. 한 번 설치되면, 권한을 가진 접근을 유지할 뿐만 아니라 침입을 숨길 수도 있다. 중요한 점은 루트 또는 관리자 접근이다. 시스템에 대한 완전한 제어는 존재하는 소프트웨어가 수정되었을 수 있다는 것을 의미한다.

 

루트킷 탐지는 이것이 자신을 찾으려 하는 소프트웨어를 뒤집어 엎을 수 있기 때문에 어려운 일이다. 탐지 방법은 대체적이고 신뢰성 있는 운영 체제나 행동 기반 방식, 특징(signature) 스캐닝 그리고 메모리 덤프 분석 등이 있다. 제거는 복잡하거나 심지어 실질적으로 불가능할 수 있는데 특히 루트킷이 커널에 거주할 때 더 그렇다; 운영 체제의 재설치가 문제 해결의 유일한 해결법이 될 수 있다.[2] 펌웨어 루트킷의 경우, 제거하기 위해서 하드웨어 교체나 특별한 장비가 필요할 수 있다.

 

위키 참고 : https://ko.wikipedia.org/wiki/%EB%A3%A8%ED%8A%B8%ED%82%B7

 

728x90

Unix 시스템의 대표적인 보안 분석 도구

① SAINT : 유닉스 시스템에서 작동하는 네트워크 취약점 분석도구로 HTML 형식의 보고서 기능, 원격 취약점 점검 기능이 있음

② SARA : SATAN을 기반으로 개발된 취약점 분석도구로 유닉스 시스템에서 작동. 네트워크 기반의 컴퓨터, 서버, 라우터, IDS에 대한 취약점 분석이 가능하며 HTML 형식의 보고서 기능이 있음

③ COPS : 유닉스 시스템에서 동작하는 시스템 취약점 점검 도구로 시스템 내부의 취약점 검사(취약한 패스워드 체크 등) 기능이 있음

④ Nessus : 유닉스 시스템에서 동작(Nessus 클라이언트는 윈도우에 설치 가능)하는 네트워크 취약점 점검 도구이며 클라이언트/서버 구조로 클라이언트의 취약점을 점검. 약 600여개 이상의 보안 취약점 점검이 가능

⑤ NMAP : 대표적인 포트 스캐닝 도구. TCP Connection으로 스캔뿐만 아니라 다양한 스텔스 모드로 스캔이 가능하며 하나의 호스트뿐만 아니라 거대 네트워크의 고속 스캔도 가능

728x90

스카다(Supervisory Control And Data Acquisition, SCADA)는 일반적으로 작업공정, 시설, 설비 등을 모니터링하고 제어하는 산업 제어 시스템의 한 종류입니다. 실제로 발전소, 철도, 상수도, 도로 신호 체계, 전기, 통신 시스템, 공항 등 현대사회의 기반시설입니다. 이러한 사회 기반시설을 노리는 공격을 스카다 공격이라고 합니다.

핵티비스트는 악성코드를 이용해 정치적 메시지를 전달하고 관심을 호소하는 수준에 머물기도 하지만 특정 국가의 사회기반시설에 대한 사이버 공격으로 나타나는 경우도 있습니다. 특히 적대 국가나 테러 단체에 의한 사회기반시설 공격은 사회적 혼란을 야기하거나 시민들의 생명과 국가 안보에 심각한 위협이 될 수 있다.

물리적으로도 보호된 상태고 폐쇄된 네트워크 망에서 사용되기 때문에 안전하다는 생각이 있지만, 스카다 시스템에도 보안 취약점이 분명 존재합니다. 제어 소프트웨어의 접근 권한과, 스카다 네트워크 패킷에 대한 접근 권한의 보안 등이 주요 취약점으로 손꼽힙니다.

- 공격 방식

1) 이메일

공격 대상자를 정해 악의적인 이메일을 보내는 것이 가장 일반적인 공격 방식이다. 보통 개인 메일이나 업무 메일로 가 장하여 메일 본문에 악성코드를 다운로드하는 웹 페이지의 주소(URL)를 포함하거나 악성코드가 포함된 파일을 첨부한 다. 공격 대상자가 악성코드에 감염되면 이를 통해 네트워크로 연결된 내부 시스템을 하나씩 장악해 갈 수 있다.

2) 워터링홀(Watering hole) 기법

워터링 홀(Watering hole) 기법은 사람들이 관심을 가질만한 웹사이트를 해킹한 후 해당 사이트를 방문한 사용자의 시 스템을 감염시키는 방법이다. 사용자의 시스템이 인터넷에 연결되어 있을 경우에 가능한 방식으로, 망분리가 되어 있을 경우 한계가 있을 수 있다.

3) 업데이트 서버 변조

공격 대상이 주로 사용하는 소프트웨어의 업데이트 서버를 해킹해 해당 프로그램이 업데이트될 때 악성코드를 감염시 키는 방식이다. 공격 대상 시스템의 IP에서 접속할 때만 악성코드가 다운로드되도록 하는 경우가 많아 외부에서는 감염 사실을 파악하기 어렵다. 그러나 대부분의 사회기반시설은 폐쇄망으로 구축되어 있고 인터넷에 연결된 일부 시스템에 서만 업데이트 서버에 접속할 수 있기 때문에 이러한 공격은 거의 나타나지 않는다.

4) 이동식 저장매체

폐쇄망을 사용하는 곳에서도 자료 전달 등을 위해 USB와 같은 이동식 저장매체 사용이 필요한 경우가 있다. 대부분 보 안 심사를 거친 USB를 이용하지만 이 경우에도 USB 내부의 파일이 안전하다고 보장할 수는 없다. 예를 들어, 시스템 유지 보수를 위해 USB를 반입할 때 이 USB에 존재하는 악성 파일이 시설 내부로 유입될 수 있다. 실제로 지난 2010년 발견된 스턱스넷 악성코드도 USB를 통해 감염되었으며, 2016년 4월 독일 원전에서 발견된 다수의 악성코드도 USB를 통해 전파되는 악성코드였다.

5) 설치 프로그램 변조

공격 대상 조직이 내부적으로 사용하는 프로그램의 제작 업체를 해킹해 배포 파일에 악성코드를 포함해 공격 대상 내 부로 침입할 수 있다. 정식 업체에서 제공되는 파일이기 때문에 별 다른 의심없이 내부로 반입되기 쉽다. 하벡스(Havex) 악성코드가 이런 방식으로 침입했다.

6) 협력 업체 또는 유지 보수 업체 해킹

일반 기업은 물론 사회기반시설에서도 유지 보수 업체를 통해 시스템을 관리한다. 대부분 협력 업체에서 반입하는 소프 트웨어에 대해서는 별다른 검사를 하지 않고 있다. 공격 대상의 유지 보수 업체나 협력 업체를 해킹해 공격 대상 내부 로 반입되는 프로그램에 악성코드를 포함시켜 내부에 침입하는 방법을 사용할 수 있다. 또는 협력 업체가 공격 대상 시 설의 내부에서 사용할 프로그램을 제작하는 업체를 해킹해 침입 경로로 이용할 수 있다.

특히 지하철, 교통 제어 시스템 등 의외로 인터넷과 연결되어 있는 스카다 망이 많아 언제든 해커의 표적이 될 수 있으므로 주의해야 합니다.

'IT > 정보보안' 카테고리의 다른 글

루트킷(Rootkit)  (0) 2021.09.29
Unix 시스템의 대표적인 보안 분석 도구  (0) 2021.09.29
메모리 구조  (1) 2021.09.29
e-mail 의 메시지 인증 및 기밀성을 확보하는 방법  (0) 2021.09.29
접근 통제  (0) 2021.09.29
728x90

HTTP & HTTPS

HTTPS는 HTTP를 안전하게 만드는 방식이다

  • HTTP
    • 인터넷 상에서 정보를 주고 받기위한 프로토콜(양식과 규칙의 체계)
    • 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜
    • 암호화되지 않은 방법으로 데이터를 전송한다. (악의적인 감청, 데이터 변조의 가능성)
  • HTTPS
    • 보안이 강화된 HTTP
    • Hypertext Transfer Protocol Over Secure Socket Layer의 약자
    • 모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화된다.
    • HTTPS는 HTTP의 하부에 SSL과 같은 보안계층을 제공함으로써 동작한다.

HTTPS는 TCP위에 놓인 보안계층(SSL)위의 HTTP이다

SSL 디지털 인증서

  • 클라이언트와 서버간의 통신을 공인된 제3자(CA) 업체가 보증해주는 전자화된 문서

SSL 인증서의 장점 및 역할

  • 통신 내용이 노출, 변경되는 것을 방지
  • 클라이언트가 접속하려는 서버가 신뢰 할 수 있는 서버인지 확인가능
  • SSL 통신에 사용할 공개키를 클라이언트에게 제공한다.

SSL에서 사용하는 암호화의 종류

  • 암호 : 텍스트를 아무나 읽지 못하도록 인코딩하는 알고리즘
  • 키 : 암호의 동작을 변경하는 매개변수, 키에 따라서 암호화 결과가 달라지기 떄문에 키를 모르면 복호화가 불가능하다.

대칭키 암호화 방식

  • 인코딩과 디코딩에 같은 키를 사용하는 알고리즘
  • 단점 : 단점은 발송자와 수신자가 서로 대화하려면 둘 다 공유키를 가져야 한다는 것이다.
  • 대칭키를 전달하는 과정에서 키가 유출이 되면 암호의 내용을 복호화할 수 있기 때문에 위험하다
  • 이를 보완하기 위해서 나온 방법이 공개키 암호화 방식이다.

공개키 암호화 방식

  • 인코딩과 디코딩에 다른 키를 사용하는 알고리즘
  • A키로 암호화를 하면 B키로 복호화를 할 수 있고, B키로 암호화 하면 A키로 복호화 할 수 있는 방식
  • 인코딩 키 (public key)는 공개되어 있으며 (그래서 공개키 암호방식이라는 이름이 붙었다.) 보통 디지털 인증서안에 포함되어 있다.
  • 디코딩 키는 (secret key)는 호스트만이 개인 디코딩 키를 알고있다.
  • 공개키와 비공개키의 분리는 메시지의 인코딩은 누구나 할 수 있도록 해주는 동시에, 메시지의 디코딩은 비밀키 소유자에게만 부여한다.
  • 이는 클라이언트가 서버로 안전하게 메시지를 발송하는 것을 쉽게 해준다.
  • 단점 : 공개키 암호화 방식의 알고리즘은 계산이 느린 경향이 있다.

디지털 서명

디지털 서명의 동작방식



  • 전자 서명을 통해서 누가 메시지를 썼는지 알려주고, 메시지가 위조되지 않았음을 증명할 수 있다. 전자서명은 SSL 인증서 에서 서비스를 보증하는 방법으로 활용된다.
  • 공개키와 비공개키는 안전한 데이터 전달 이외에도, 데이터 제공자의 신원을 보장 하는데 사용할 수 있다.
  • 비공개키의 소유자가 비공개 키를 이용해서 정보를 암호화 => 공개키와 함께 암호화된 정보를 전송 => 수신자는 공개키로 암호화된 정보를 복호화
  • 암호화된 데이터를 공개키를 가지고 복호화 할 수 있다는 것은 그 데이터가 공개키와 쌍을 이루는 비공개키에 의해서 암호화 되었다는 것을 의미한다.
  • 즉 공개키가 데이터를 제공한 사람의 신원을 보장해주게 되는 것이다. 이러한 것을 전자 서명이라고 부른다.

CA (Certificate Authority)

  • 디지털 인증서를 제공하는 공인된 기업 (Certificate Authority 혹은 Root Certificate)
  • 대표적인 CA 서비스 제공 기업과 시장점유율
    • Symantec (VeriSign, Thawte, Geotrust) with 42.9% market share
    • Comodo with 26%
    • GoDaddy with 14%
    • GlobalSign with 7.7%

SSL 인증서의 서비스 보증방법 및 동작방법

인증서 내용

  • 인증서의 내용은 CA의 비공개 키를 이용해서 암호화 되어 웹브라우저에게 제공된다.
    • 서비스 정보 (인증서 발급자, CA의 디지털 서명,서비스 도메인)
    • 서버측 공개키

SSL 인증서의 서비스 보증방법

  • 웹브라우저가 서버에 접속하면 서버는 제일 먼저 인증서를 제공한다.
  • 브라우저는 인증서를 발급한 CA가 자신이 갖고있는 CA 리스트에 있는지 확인한다.
  • 리스트에 있다면 해당 CA의 공개키를 이용해서 인증서를 복호화 한다.
  • 인증서를 복호화 할 수 있다는 것은 이 인증서가 CA의 비공개키에 의해서 암호화 된 것을 의미한다. 즉 데이터를 제공한 사람의 신원을 보장해주게 되는 것이다.

SSL 동작방법

  • 공개키 암호 방식은 알고리즘 계산방식이 느린 경향이 있다.
  • 따라서 SSL은 암호화된 데이터를 전송하기 위해서 공개키와 대칭키 암호화 방식을 혼합하여 사용한다.
  • 안전한 의사소통 채널을 수립할 때는 공개키 암호를 사용하고, 이렇게 만들어진 안전한 채널을 통해서 임시의 무작위 대칭키를 생성 및 교환한다. 해당 대칭키는 나머지 데이터 암호화에 활용한다.
    • 실제 데이터 암호화 방식 : 대칭키
    • 상기 대칭키를 서로 공유하기 위한 암호화 방식 : 공개키

SSL 통신과정

  • 컴퓨터와 컴퓨터가 네트워크를 통해서 통신을 할때 핸드쉐이크 -> 세션 -> 세션종료 의 과정을 거친다.
  • 암호화된 HTTP 메시지를 교환하기 전에 클라이언트와 서버는 SSL 핸드쉐이크를 진행한다.
  • 핸드쉐이크의 목적은 아래와 같다.
    • 프로토콜 버전번호 교환
    • 양쪽이 알고 있는 pre master secret 키 생성 및 교환
    • 양쪽의 신원 인증
    • 채널을 암호화 하기 위한 임시 세션 키 생성
  • SSL 통신과정을 간단하게 도식화 하면 아래와 같다.
  • 생활코딩 SSL의 동작방법에 아주 쉽게 설명되어 있어서 함께 참고하면 좋다.



728x90

메모리 구조

Stack
① 프로그램 내에 함수에 의해서 선언된 변수에 할당되는 영역으로 시스템이 특정 함수를 실행하는 경우 함수 내에 선언된 변수와 값을 저장하기 위해서 할당되고 함수의 실행이 종료되면서 해제되는 영역
② LIFO로 나중에 입력된 것이 먼저 나옴
③ Stack에 저장될 내용은 컴파일 단계에서 결정
④ 지역변수, 복귀 주소를 저장

Heap
① 인위적으로 할당하고 해제할 수 있음
② JAVA에서 new 키워드로 메모리를 생성(C언어는 malloc으로 할당)
③ 실행 중에 메모리 영역이 할당됨

Code(Text)
① 프로그램이 실직적으로 실행될 명령어가 저장되는 공간
② 기계어 프로그램의 실행 코드가 저장됨

+ Recent posts