정보시스템

1.정보보안 기본목표
(1)기밀성 Confidentiality
-비인가된 접근/지능적 차단으로부터 중요 정보 보호
-기밀성 보장을 위해 접근통제, 암호화를 사용
-정보 보관 뿐만아니라 정보전송에도 적용됨

(2)무결성 Integrity
-정보, 정보처리 방법의 완전성, 정확성을 보호
-수정시 인가된 사람이, 인가된 절차에 따라 수정
-무결성 확보를 위해 물리적통제, 접근통제 사용

(3)가용성 Availability
-사용 인가받은 사람이 원하는 때에 언제든지 사용할수있도록 보장
-시간성, 신뢰성있는 접근
-가용성 확보를 위해 데이터 백업, 중복성유지, 물리적 위협 요소로부터의 보호 사용

(4) 인증성 Authentication
-활동이 정상적,합법적으로 이루어진것을 보장
-정보교환에 의해 실체 식별을 확실하게 하거나, 임의 정보에 접근하는 객체 자격, 객체 내용 검증시 사용
-사용자가 정당하게 허가받은 사람인지 확인/ 전송된 메시지가 변조,위조되지 않은 송신자가 보낸 그대로인지 확인
-인증성을 위해 인증코드, 전자서명 사용

(5)책임 추적성 Accountability
-누가 언제 어떤목적, 어떤방법으로 정보를 사용했는지 추적할수 있어야 함
-끝까지 추적은 못하므로 보안침해에 대한 책임이 있는 곳까지 추적가능해야함
-포렌식 분석, 활동상황을 기록하여 보안 침해 추적, 전송관련 분쟁 해결해야함

(6)신뢰성 reliability
-일관되게 오류발생 없이 계획된 활동 수행하여 결과 얻는 환경을 유지하는 것


2.정보보안 침해 유형
(1)기밀성 위협하는 공격 ->소극적 공격
-메시지내용 공개:비인가 접근 또는 도청
-스니핑
-트래픽 분석

(2)무결성 위협하는 공격 ->적극적 공격
-변경 
-신분위장 /스푸핑공격
-반복
-복제

(3)가용성 위협하는 공격 ->적극적 공격
-서비스 거부: 서비스 느리게 또는 완전차단

(4)소극적/적극적 공격
*소극적 공격: 데이터 암호화,트래픽 패딩으로 막을 수 있음
*적극적 공격: 탐지하는것이 더쉬움. 탐지 후 복구에 더 우선을 둠

(5)네트워크 보안 침해유형
-데이터전송 방해 interruption
-데이터 가로채기 interception
-데이터 변조 modification: 송신자가 보내는 데이터를 제3자가 가로채서 일부/전체를 변경하여 수신자에게 전송
-데이터 위조 fabrication: 송신자가 안보낸 경우에 제3자가 데이터 생성하여 수신자에게 전송

*인터넷 보안 요구사항 
-시스템 보안
-클라이언트 인증: 정보에 접근하는 사용자 통제를 위해 클라이언트 식별 기법 필요. 인증서비스를 통해 식별함
-서버 인증(서비스 제공자<->사용자)
-데이터 인증/기밀성,무결성 보장
-접근제어: 접근권한을 다르게 부여


3.서비스 메커니즘
(1)보안서비스 
ITU-T(X.800)
-데이터 기밀성
-데이터 무결성
-인증 
-부인봉쇄 Nonrepudiation: 데이터 송수신자가 부인하지못하도록
-접근 제어 Access Control: 비인가된 접근으로부터 데이터 보호

(2)보안 메커니즘
-암호화: 기밀성 제공
-데이터 무결성
-디지털 서명: 송수신자가 데이터에 서명
-인증 교환: 신원 증명을 위해
-트래픽 패딩: 도청방지를 위해 데이터 트래픽에 가짜데이터 삽입
-라우팅 제어: 도청방지를 위햏 다른 가용경로를 선택, 지속적으로 변환
-공증 notarization: 신뢰성을 위해 제3자를 선택. 부인봉쇄에 사용
-접근 제어


데이터 기밀성 - 암호화/라우팅제어/트래픽 패딩
데이터 무결성 - 암호화/전자서명/데이터 무결성
인증 - 암호화/전자서명/인증교환
공증 - 전자서명/데이터 무결성/공증
접근제어 - 접근제어 메커니즘


4.보호요소
(1)자산
(2)취약성 Vulnerability: 자산의 잠재적인 속성, 위협의 이용대상이 됨
(3)위협 Threats:자산 손실을 초래할 수 있는 원하지않는 사건의 잠재적인 원인/행위자
(4)위험 Risk: 알려진 위협이 취약점을 이용해 자산에 위해 입히는것/원하지 않는 사건이 발생, 손실/부정적영향을 미칠 가능성
(5)보호대책 Safeguards: 위협방지, 취약점 감소, 원하지않는 사고로부터 영향을 제한, 원하지 않는 사고 탐지, 관련설비 복구하는 절차
-기술적/물리적/관리적 보호대책으로 나뉨

*OECD 프라이버시보호 8대 원칙
1. 수집제한의 원칙
2. 정보 정확성의 원칙
3. 목적 명확성의 원칙
4. 이용제한의 원친
5. 안정성 보호의 원칙 
6. 공개의 원칙
7. 개인 참여의 원칙
8. 책임의 원칙

화일 조직방법
1. 순차 접근방법
정의: 레코드의 물리적 순서 = 레코드의 논리적 순서 같게 순차적으로 저장하는 방법
구성file: heap, pile
종류: 엔트리 순차화일, 키 순차 화일
대게 순차 화일이라고 하면 키 순차 화일을 의미하긴 한다.
레코드 접근방법: 레코드 접근은 레코드가 저장되어있는 물리적 순차를 따른다. 

1)엔트리 순차 화일
정의: 레코드가 시스템에 삽입되는 순서대로 만들어지는 구조
2)키 순차 file
정의: 레코드 키 값의 크기 순서대로 만들어지는 구조


2.인덱스 접근방법
정의: 레코드 접근을 위해 해당 인덱스를 찾아, 그 인덱스가 가리키는 주소를 따라가서 레코드에 접근할수 있도록 데이터를 저장하는 방법
구성(indexed file): 인덱스 file, 데이터 file
-인덱스화일 구성: 키값, 주소
종류: 인덱스된 순차 화일, 다중키 화일

1)인덱스된 순차 화일 - 1개의 인덱스 사용
정의: 키 값에 따라 정렬된 레코드를 순차적으로 접근 + 주어진 키 값에 따라 직접 접근하는 두가지 방법이 모두 필요한 경우에 사용
종류: 순차 접근방법, 직접 접근 방법
구성: 순차 데이터화일, 인덱스
-순차 데이터화일: 레코드 집합 전체에 대한 순차 접근 요구 지원
-인덱스: 개별 레코드에 대한 임의접근 요구 지원

2)다중키 file -여러개 인덱스를 동시 사용
정의: 하나의 데이터화일에 여러개의 다른 접근방법을 지원하는 구조. 데이터 중복시키지 않으면서 여러 방법으로 데이터를 접근하는 다중 접근경로를 제공
종류: 역 화일(inverted file), 다중리스트 화일
-역화일: 각 응용에 적절한 인덱스를 만들어서 구현. 
-다중리스트 화일: 하나의 인덱스 값마다 하나의 데이터 레코드 리스트를 구축
인덱스 종류: 기본인덱스(기본 키 포함), 보조 인덱스(기본 인덱스 이외, 보조키 포함)

*집중 인덱스(clusted index): 데이터 레코드 물리적 순서가 그 화일에의 인덱스 엔트리 순서와 동일하게 유지하도록 구성된 인덱스
하나의 화일은 최대 한개의 탐색 키만 집중할 수 있다. (한개 데이터화일은 한개 집중인덱스 생성가능)
<->비집중인덱스(unclusted index): 한개의 데이터화일에 여러개 인덱스 생성.

*밀집 인덱스(dense index): 데이터 레코드 1개에 1개의 인덱스 엔트리가 만들어지는 인덱스
*희소 인덱스(sparse index): 데이터화일의 레코드 그룹 or 데이터 블록에 1개의 엔트리가 만들어지느 ㄴ인덱스
*역 인덱스(inverted index): 밀집 인덱스 형태로 만들어짐

<인덱스 접근방법>
1. B-트리
2.B+트리


3. 해싱 접근방법

'밥벌이 > IT 상식, 시사' 카테고리의 다른 글

ubuntu 버전정보 확인 방법, 리눅스 32비트/64비트 확인방법  (0) 2020.09.01
정보시스템  (0) 2020.09.01
트리  (0) 2020.08.26
데크 Deque  (0) 2020.08.25
QUEUE 큐  (0) 2020.08.24

트리
-어떤 노드의 레벨이 i이면, 자식노드 레벨은 i+1임
-트리구조에서 간선수 e와 노드수 n 관계: e = n-1


이진트리
-2개이하의 자식노드를 갖는 트리. 즉 0~2개의 자식노드
-n개 노드의 이진트리: n+1개의 nil링크 
-깊이가 k인 2진트리 노드수: k~ 2의k승 -1개
-일반트리와 다르게 왼쪽 오른쪽 서브트리를 구분함

이진트리 종류
1) Full 포화 2진트리
-노드 수: 항상 2의 k승 -1개(k=높이)
-레벨 i(1<=i<=k)에서 가질수 있는 노드 수: 항상 2의 i-1승인 이진트리
-트리높이: 항상 log2(n+1)->루트노드 레벨이 1일때임
-모든 단말노드 높이는 같다
-단말노드 개수: 항상 2의 k-1개. 단말노드가 아닌 노드개수: 2의 k-1승 -1개
-단말노드를 제외한 모든 내부노드는 2개의 자식노드를 갖는다. k-1레벨까지의 모든 노드차수는 2임

2) Complete 완전 2진트리
-포화 이진트리의 단말노드들을 올느쪽으로부터 제거하여 얻어지는 트리.
-포화 full이진트리는 완전complete이진트리에 포함

-노드 개수: 2의 k-1승 <=n<=2의 k승 -10
-레벨 i(1<=i<=k)에서 가질수 있는 노드 수: 최대 2의 i-1승
-트리높이: 항상 log2(n+1) -루트노드 레벨이 1일때임
-모든 단말노드 레벨: k또는 k-1
-단말노드개수: 비단말노드 개수 or 비단말노드개수+1
-모든 노드의 차수: 높이가 k인 완전이진트리에서 루트노드 레벨이 1부터 시작시, k-2레벨까지의 모든 노드차수는 2임

3) Knuth 이진트리
-임의의 모든 노드 차수가 2이하인 트리(노드 차수가 0~2)

4) 엄밀한 이진트리
-모든 노드 차수: 0또는 2
-단말노드개수: 비단말노드개수 +1

5) Skewed 사향 이진트리
-한쪽 방향으로만 뻗은 트리


용어 정리
-노드: 트리를 구성하는 요소. 다른노드로 뻗어진 가지를 포함함
-차수: 파생된 직계 노드의 개수 
-트리의 차수: 각 노드 차수중 가장 큰 값
-레벨= 깊이. 루트의 레벨은 1이고, 아래로 내려갈수록 1씩 증가. 단, 루트레벨이 반드시 1은 아님. 0으로 지정 가능함
-높이: 근노드(트리의 시작정점)에서 가장 큰 레벨

'밥벌이 > IT 상식, 시사' 카테고리의 다른 글

정보시스템  (0) 2020.09.01
데이터베이스 화일 조직방법(순차, 인덱스, 해싱 접근방법)  (0) 2020.08.26
데크 Deque  (0) 2020.08.25
QUEUE 큐  (0) 2020.08.24
SQL  (0) 2020.08.23

데크 Deque데크 Deque
-스택+큐 운영방식
-리스트 양쪽 끝에서 노드의 삽입/삭제가 모두 가능한 선형 리스트. 즉 큐의 양쪽 끝에서 입출력이 가능하다
-left, right 두개의 포인터를 갖는다.

데크 표현방법
1)두개의 스택을 연결
2)단순 연결리스트, 이중연결리스트
3)1차원 배열

데크 종류
1)입력제한데크: SCROLL, 한쪽으로만 입력가능. 출력은 양쪽 다 가능
2)출력제한데크: SHELF, 한쪽으로만 출력가능. 입력은 양쪽 다 가능
-스택+큐 운영방식
-리스트 양쪽 끝에서 노드의 삽입/삭제가 모두 가능한 선형 리스트. 즉 큐의 양쪽 끝에서 입출력이 가능하다
-left, right 두개의 포인터를 갖는다.

데크 표현방법
1)두개의 스택을 연결
2)단순 연결리스트, 이중연결리스트
3)1차원 배열

데크 종류
1)입력제한데크: SCROLL, 한쪽으로만 입력가능. 출력은 양쪽 다 가능
2)출력제한데크: SHELF, 한쪽으로만 출력가능. 입력은 양쪽 다 가능

'밥벌이 > IT 상식, 시사' 카테고리의 다른 글

데이터베이스 화일 조직방법(순차, 인덱스, 해싱 접근방법)  (0) 2020.08.26
트리  (0) 2020.08.26
QUEUE 큐  (0) 2020.08.24
SQL  (0) 2020.08.23
네트워크 보안공격  (0) 2020.08.22

QUEUE 큐

-FRONT: 가장 먼저 출력될 노트 포인터. 실제 큐 위치보다 1이 작은 위치다.
초기조건: front = rear = 0
공백조건: front = rear
오버플로우조건: rear = n

이동 큐
-이동큐에서는 빈공간이 있어도 오버플로우가 발생할 수 있다. 
-이경우 데이터를 빈공간으로 이동시켜서 오버플로우가 나지 않도록 해야한다.
-이때 이동이 많이되므로 원형큐를 사용하는게 좋다


원형큐 
- queue가 full이 되는 경우, 데이터 이동이 많이 일어날 때의 이동큐의 과부하 문제를 해결한다. 
-오버플로우 발생시, 데이터를 이동하지 않고, 비어있는 맨 처음 노드에 데이터를 입력한다. 
->하나의 빈공간은 아무위치나 상관이 없다. 즉 0번지에도 데이터를 입력할 수 있다. 
-front = rear: 큐가 비어있는 경우 = 가득 찬 경우. 즉 오버플로우, 언더플로우 구분이 불가능함. 
->구분방법: 큐의 최대원소스를 maxsize -1 로 설정하면 된다. 그러면 초기값은 front=rear=0이다. 

-원형큐 삽입 순서
1)rear위치 증가 시킨 후 :rear = rear+1 %MAX_QUEUE_SIZE
2)큐가 만원인지 체크: front ==rear //인 경우는 queue가 full인상태
3)front != rear 이면 값을 삽입: queue[rear] = item

-원형큐 삭제 순서
1)큐가 공백인지 체크: front == rear  //인 경우는 queue가 empty상태
2)front != rear 이면 front값 증가 : front = (front +1)%MAX_QUEUE_SIZE
3)원소 삭제: queue[front]


연결 큐
-큐를 연결리스트로 구현하면 메모리방식이 동적이므로 이동큐,원형큐 방식이 필요 없다. 

'밥벌이 > IT 상식, 시사' 카테고리의 다른 글

트리  (0) 2020.08.26
데크 Deque  (0) 2020.08.25
SQL  (0) 2020.08.23
네트워크 보안공격  (0) 2020.08.22
데이터베이스 시스템 구성요소(관계대수,관계 해석,QBE)  (0) 2020.08.21

SQL
1.SQL데이터 정의문
-종류: CREATE, ALTER, DROP


(1)스키마, 카탈로그
(2) 도메인 정의문
(3)기본 테이블 생성
*SQL은 대소문자를 구별하지 않는다. 단 따옴표에서는 대소문자 구분한다.
(4) 기본테이블 제거, 변경

열을 삭제할 때에는 ALTER TABLE 테이블이름 DROP 열이름 [CASCADE/RESTRICT]; 
->ALTER을 쓴 후 DROP을 쓴다


2.SQL 데이터 조작문(DML)
-종류: SELECT, INSERT, DELETE. UPDATE
-처리대상: 기본 테이블, 뷰

(1)데이터 검색
-검색 수행시 또다른 테이블이 만들어짐 (=폐쇄 시스템)
-기본구조: SELECT 열 FROM 테이블 WHERE 조건
-SQL은 한 테이블에 똑같은 행이 중복될 수 있다. 
-SQL에는 기본키가 없어도 된다. 집합이 아니기 때문이다. 
-그래서 SQL SELECT문에서 중복을 없애려면(집합과 같은 결과를 만들려면) DISTINCT를 명세해야한다.

-SQL 검색문 형식
SELECT [ALL/DISTINCT] 열
FROM 테이블
[WHERE 조건]
[GROUP BY 열
[HAVING 조건]]
[ORDER BY 열 [ASC/DESC]];

*주의사항: NULL을 검색 조건 속에 명세할 때에는  열 IS [NOT] NULL 로 검색해야한다. 
열 = NULL은 허용하지 않는다. 

*UNION 사용시에는 중복되는 튜플은 제거된다.

(2)데이터 갱신
-기본구조: UPDATE 테이블 SET{열 =산술식/NULL} [WHERE=조건];

(3)데이터 삽입
-기본구조: 
->행을 직접 삽입하는 경우 : 
INSERT INTO 테이블[(열 이름)] VALUES(열 값);
->SELECT를 실행하여, 그 결과를 테이블에 삽입하는 경우: 
INSERT INTO 테이블[(열 이름)] SELECT문;

(4)데이터 삭제
-기본구조: DELETE FROM 테이블 [WHERE 조건];

만일 삭제하는 조건이 다른테이블의 외래키에 속한 조건이라고 한다면 CASCADE로 수행된다.
즉 참조한 그 테이블의 내용도 삭제 연산이 수행된다.참조 무결성 때문임

DELETE를 한다고 해서 테이블 자체가 없어지는 것은 아님. 빈 테이블로 남아있다.
데이터베이스에 남아있지 않게 하려면 DROP을 사용해야한다.


3.SQL 뷰
(1)뷰 생성
-기본구조: CREATE VIEW 뷰이름[(열 이름)] AS SELECT문(SELECT-FROM-WHERE) [WITH CHECK OPTION];
WITH CHECK OPTION의미는 뷰에 대한 갱신, 삽입 연산 실행시, 뷰 정의조건을 위반하면 실행이 거부됨을 의미한다.

(2)뷰 제거
뷰 제거에는 ALTER안쓴다. DROP쓴다.
기본구조: DROP VIEW 뷰이름 {RESTRICT/CASCADE};

(3)뷰 조작 연산
뷰는 SELECT문 말고도 INSERT, DELETE, UPDATE문을 쓸수 있다. 단 제한이 많다.
예를 들면 INSERT 사용시에는, 기본키가 정의되어 있지 않은 뷰는 INSERT를 실행할 수 없다.
왜냐하면 뷰에 정의되지 않은 열의 값은 NULL이 되는데, 기본키가 뷰에 정의되어 있지 않다면 기본키 자리에 NULL이 들어가야하기 때문이다.

-뷰 변경 허용안되는 조건
1) 뷰의 열이 상수, 산술 연산자, 함수가 사용된 산술식으로 만들어진 경우 변경 허용 안됨
2)COUNT, SUM,AVG, MAX,MIN이 정의된 뷰는 변경 안됨
3)DISTINCT,GROUP BY, HAVING이 사용된 뷰는 변경 안됨
4)2개 이상 테이블이 관련된 뷰는 변경 안됨


4.삽입SQL

네트워크 보안공격


1. 스니핑(Sniffing)
-허브환경에서 스니핑
-스위치 환경에서 스니핑

2. 스푸핑(Spoofing)
-ARP스푸핑
-IP스푸핑
-ICMP스푸핑
-DNS스푸핑

3. DoS(서비스 거부 공격 Denial of Service)
-TCP SYN Flooding 공격
-ICMP플러딩 ->Smurfing 공격
-LAND 공격
-Teardrop 공격
-Ping of Death
-HTTP Get Flooding

4. DDoS(분산 서비스 거부 공격 Distributed Denial of Service)
5. 세션 하이재킹 공격(Session Hijacking)
6. APT 공격(Advanced Persistent Threat)

'밥벌이 > IT 상식, 시사' 카테고리의 다른 글

데크 Deque  (0) 2020.08.25
QUEUE 큐  (0) 2020.08.24
SQL  (0) 2020.08.23
데이터베이스 시스템 구성요소(관계대수,관계 해석,QBE)  (0) 2020.08.21
보안모델 3가지(벨 라파듈라, 비바, 클락 윌슨)  (0) 2020.08.20

데이터베이스 시스템 구성요소
-데이터베이스
-데이터베이스 관리 시스템
-시스템과의 인터페이스 제공하는 도구로서의 데이터 언어
-데이터 언어를 사용해 데이터베이스를 접근하려는 사용자
-데이터베이스관리와 운영을 책임지는 데이터베이스 관리자
-데이터베이스 관한 연산을 전담해 효율적으로 실행시키는 데이터베이스 컴퓨터


[관계대수]
1.일반 집합연산
->카티션 프로덕트 빼고는 서로 합병이 가능함. 
->차집합 뺴고는 서로 결합적, 교환적이다.

-합집합
-교집합
-차집합
->R-S: R에는 있지만 S에는 없는 튜플로만 구성됨
-카티션 프로덕트

2.순수 관계연산
-셀렉트: 주어진 조건을 만족하는 튜플들을 선택하는 연산
-프로젝트: 릴레이션 애트리뷰트 연산을 대상으로 함
->프로젝트 연산 후 똑같은 튜플이 나오면, 하나만 제외하고 나머지는 모두 제거한다. 
-조인
->동일 조인을 해서 중복되어 나온 애트리뷰트를 제거하기 위해 자연조인을 한다. 
-디비젼


[관계 해석]
1.튜플관계 해석
1)튜플변수
2)한정 애트리뷰트
3)원자식
4)정형식


2.도메인 관계 해석
1)도메인 변수
2)원자식
3)정형식


[QBE- Quary By Example]

'밥벌이 > IT 상식, 시사' 카테고리의 다른 글

데크 Deque  (0) 2020.08.25
QUEUE 큐  (0) 2020.08.24
SQL  (0) 2020.08.23
네트워크 보안공격  (0) 2020.08.22
보안모델 3가지(벨 라파듈라, 비바, 클락 윌슨)  (0) 2020.08.20

+ Recent posts