모든 종류의 암호화는 key가 필요하는데 이 key에 따라 symmetric인지 asymmetric인지 구분한다. 

 

Symmetric Cryptography(대칭 암호)

- same key for encryption and decryption

 

Asymmetric Cryptography(비대칭 암호) = public key cryptography

- different keys for encryption and decryption

key 1. public 2. private

sender, receiver use a key pair (public & private)

 

 

정보보호 서비스의 특성 CIA Trial

1. Confidentiality(기밀성)

- keep close(= hiding infomation/unpermitted)

- Access control

- encrypt

2. Integrity(무결성)

- keep original data

- real/unreal 구분

3. Availability(가용성)

- use/useless 

- DDoS(Distributed Deniel of Service) attack form multical... (한꺼번에 왕창 server 공격)

CIA외에..

- authentication 인증

- non-repudiation 부인방지(cannot deny)(by evidence)

- permission 소원권

 

naming convention(암호에서 사용하는 이름)

Alice - sender (send message to Bob)

Bob - receiver (receive message from Alice)

Eve - shy/passive attacher, 도청

Mallory - active attacker, try to modify message, try to disconnect communication

Trent - trusted arbitrator (신뢰할 수 잇는 중재자) 

Victor- verified something, deny, proof

 

※ LAN

더보기

- Ethernet Link/Wired Network Card -> promiscuous mode (listen all data(같은 링크))

- Bus topology를 가짐 : (Alice -> Bob)상황에서 

                               other cannot send message or use the link

                               some listen communication

                               => 통신 중에 정보보호 필요성

※ http vs https

더보기

http://

https:// s의 의미는 secure, 전송 메시지 과부하하여 전송

※ phishing

더보기

Mallory의 message 수정 

- ex) phishing ( 일종의 hijacking )

 

ENCRYPTION 

원래 의미를 못 알아보도록 information shape 변경 

plaintext : original text message, not encrypted message

ciphertext : encrypted message

plaintext --(encrypt)--> ciphertext

 

DECRYPTION

ciphertext --(decrypt)--> plaintext

 

Cryptanalysis(암호해독)

- Another user(not the recepient) tries to break the cryptography, to translate ciphertext into plaintext

 

Components in cryptosystem

- plaintext

- ciphertext

- encryption algorithm

- decryption algorithm

- key

 

Symbols presentation in Cryptosystem(암호 시스템의 기호 표현)

C : Ciphertext , K : key , P : plaintext

Ek( ) : Encryption function , Dk( ) : Decryption function

C=Ek(P)=E(K,P) : Encrypt Plaintext with key, result in ciphertext

P=Dk(C)=D(K,P) : Decrypt Ciphertext with key, result in plaintext

 

 

 

 

 

★ Encryption, Decryption -> strong ...How?

 

Error detected while processing /root/.vimrc:

 

E521: Number required after =: ts =E521: Number required after =: ts =
E521: Number required after =: shiftwidth =

 

원인

vim ~/.vimrc 에서 다음을 작성하였는데 13, 15번째 줄에서 에러가 발생했다. 

에러 발생 이유를 해석해 보니, ts와 shiftwidth 다음에 숫자를 넣으라는 것인데 

위의 사진처럼 나는 숫자를 넣었다고 생각했다. 

"띄어쓰기"가 인식되었기 때문에 숫자가 입력이 안되었다고 나오는 것이다. 

 

해결방안

띄어쓰기 없애기 

 

Docker 명령어는 "docker"라는 키워드로 시작한다.

 

Docker의 버전 확인

docker version

 

ubuntu 16.04버전 컨테이너 생성하기

docker run -i -t --name bskwak ubuntu:16.04 /bin/bash

run : 사용할 이미지가 저장되어있는지 확인하고 없을 경우, pull(다운로드) -> create(생성) -> start(시작)

--name : 컨테이너의 이름 지정

※ 컨테이너를 관리할 때, 컨테이너의 id 혹은 이름을 이용해 접근하게 되는데, 따로 지정하지 않으면 랜덤으로 문자열을 지정하여 생성됨

bskwak : 컨테이너의 이름으로 지정하고자 하는 단어 ( 사용자가 원하는 대로 지정) 

ubuntu 16.04 : 사용할 이미지, ubuntu 16.04를 이용해 컨테이너가 생성됨 

/bin/bash : 컨테이너에서 실행하고자 하는 명령어 혹은 프로세스

※ 컨테이너는 프로세스이기 때문에 실행중인 프로세스가 없으면 종료됨 -> 컨테이너에 명령어를 전달하지 않으면 생성 후 바로 종료되기 때문에 명령어가 필요함. 그 명령어가 /bin/bash 로, 컨테이너를 올릴때마다 자동으로 실행됨

-it (-i -t) : 컨테이너에서 실행되는 프로세스에 자유롭게 입력하고 그 결과를 전달받기 위한 옵션

 

위의 명령어를 실행하면 다음과 같이 나옴(컨테이너 내부=리눅스 환경)

root@dbba4a6d3c13:/#

root : 유저의 이름

dbba4a6d3c13 : 데스크탑 명칭

즉, "유저의이름 @ 데스크탑 명칭" 형식

 

컨테이너 종료

exit 입력

root@dbba4a6d3c13:/# exit

 

실행중인 컨테이너 확인 

root@dbba4a6d3c13:/# docker ps -a

※ 실행중이거나 종료된 컨테이너 확인 : -a 옵션 붙이기 

root@dbba4a6d3c13:/# docker ps -a

Exited : 종료된 컨테이너

Up : 실행중인 컨테이너

 

컨테이너 재시작

: 종료된 컨테이너를 다시 실행 

docker restart 

root@dbba4a6d3c13:/# docker restart bskwak

 

실행중인 컨테이너로 진입

docker attach

root@dbba4a6d3c13:/# docker attach bskwak

 

 

bash: vim: command not found

 

원인

vim이 설치되어있지 않음

 

해결방법

우분투를 사용하고 있기 때문에 apt-get을 이용해 vim을 설치해야함

 

1. apt-get를 업데이트한다.

root@dbba4a6d3c13:/# apt-get update

 

2. apt-get를 이용하여 vim을 설치한다. 

root@dbba4a6d3c13:/# apt-get install vim

Docker toolbox 설치

 

1. 아래 사이트에 들어가서 "DockerToolbox-19.03.1.exe"를 다운받는다. 

https://github.com/docker/toolbox/releases

 

Releases · docker/toolbox

The Docker Toolbox. Contribute to docker/toolbox development by creating an account on GitHub.

github.com

2. 설치를 완료한 후에 실행시키면 다음과 같은 화면이 뜬다.

3. 기존에 VirtualBox가 설치되어있다면 VirtualBox만 체크해제하거나, 기존의 VirtualBox를 제거후 진행한다. 

나는 제거 후에 진행하였다.

4. install을 눌러 설치를 완료한다. 

5. 설치가 완료되면 바탕화면에 3개의 아이콘이 생성된다. 

6. "Docker Quickstart Terminal"을 클릭하여 실행시킨다. 

7. 아래와 같이 고래가 나타나면 성공적으로 설치되었다는 의미이다. 

 

 

GUI 모드로 도커 이미지 설치 및 도커 컨테이너 실행

1. 바탕화면에 생성된 "Kitematic(Alpha)" 아이콘을 클릭하여 실행시킨다.

2. "ubuntu"를 입력해 검색한 후에 Other Repositories의 첫번째 ubuntu를 CREATE한다. 

3. 나는 위의 방법이 잘 되지 않아 도커 터미널을 사용하였다. 

bskwak.tistory.com/153 참고 

 

[Linux] Docker 명령어를 통해 컨테이너 생성 및 실행하기

Docker 명령어는 "docker"라는 키워드로 시작한다. Docker의 버전 확인 docker version ubuntu 16.04버전 컨테이너 생성하기 docker run -i -t --name bskwak ubuntu:16.04 /bin/bash run : 사용할 이미지가 저장..

bskwak.tistory.com

 

Docker

Container 기반의 오픈소스 가상화 플랫폼

다양한 프로그램, 실행환경을 container로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해 줌

컨테이너는 이미지를 실행한 상태라고 볼 수 있고, 추가되거나 변하는 값은 컨테이너에 저장됨

같은 이미지에서 여러개의 컨테이너 생성할 수 있고 컨테이너가 삭제되더라도 이미지는 그대로 남아있음

Docker는 완전히 새로운 기술이 아니라 이미 존재하는 기술을 잘 포장했다고 볼 수 있음

 

※ Container

격리된 공간에서 프로세스가 동작하는 기술(가상화 기술)

 

 기존의 가상화 방식

- OS 가상화 (ex. VMware, VirtualBox)

- 비교적 사용법이 간단

- 무겁고 느리다는 단점

 

 개선된 가상화 방식

- 전체 OS를 가상화 하는 것이 아님, 게스트 OS가 필요

- CPU의 가상화 기술(HVM)을 이용한 KVM(Kernel-based Virtual Mahcine)

- 반가상화(Paravirtualization)방식의 Xen

 

 이미지 

컨테이너 실행에 필요한 파일과 설정값, 등을 포함하고 있는 것

ubuntu 이미지 : ubuntu를 실행하기 위한 모든 파일을 가지고 있음

MySQL 이미지 : debian을 기반으로 MySQL을 실행하는 데 필요한 파일과 실행 명령어, 포트 정보, 등을 가지고 있음

Docker 이미지 : Docker hub에 등록하거나 Docker Registry 저장소를 직접 만들어 관리 할 수 있음

 

 

 

 

 

 

 

 

참고 : https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

client란 ?

https://bskwak.tistory.com/147 참고

 

[Database] Internet & Database

Internet Internet이 동작하기 위해서 computer가 최소, 최대 2대 필요함 각각 컴퓨터들이 Internet으로 연결됨 = computer 간의 사회가 만들어짐 = 1대가 가지고 있는 한계 초월 1대의 컴퓨터는 정보를 다른 ��

bskwak.tistory.com

 

MySQL moniter

- MySQL server 설치 시 함께 설치됨

- CLI (명령어 기반의 프로그램)

- 어디서나 사용 가능

- 명령을 통해서 제어해야하기 때문에 명령어를 기억해야 함

 

./mysql -uroot -p -hlocalhost
./mysql -uroot -p -h127.0.0.1
./mysql -uroot -p 

 

-uroot : user root (관리자 계정)으로 접속할 것 

-p : password를 입력할 것

-h : (host)인터넷을 통해서 다른 컴퓨터에 있는 MySQL server에 접속할 때, 접속하려는 server의 주소를 입력

localhost : 컴퓨터가 자기 자신을 가리키는 약속된 특수한 도메인

127.0.0.1 : 컴퓨터가 자기 자신을 가리키는 약속된 특수한 IP

※ -h 옵션 적지 않으면 기본적으로 MySQL Moniter가 설치되어 있는 컴퓨터의 MySQL server에 접속

 

MySQL Workbench

- MySQL에서 공식적으로 제공하는 GUI (그래픽 기반의 프로그램) 기반의 MySQL Client 프로그램

- 사용이 제한적임

- 직관적으로 사용 가능

 

 

'Computer Science > Database' 카테고리의 다른 글

[MySQL] Mac M1에서 설치 및 실행  (0) 2021.11.03
[Database] Internet & Database  (0) 2020.08.15
[SQL] table 완성하기  (1) 2020.08.07
[SQL] create table  (0) 2020.08.07
[MySQL] MySQL Moniter  (0) 2020.08.05

+ Recent posts