정보처리기사 개념 정리 (2)

연·2025년 4월 19일

just공부

목록 보기
18/47

1. 인터페이스 구현

1) 인터페이스 요구사항 검증

  • 요구사항 검토
방법내용
동료 검토요구사항 명세서 작성자가 설명, 동료들이 들으며 결함 발견
워크 스루사전 검토 후, 짧은 검토 회의를 통해 결함 발견
인스펙션다른 검토 전문가들이 확인하며 결함 발견

2) 미들웨어 솔루션

  • DB
    • 클라이언트에서 원격의 데이터베이스와 연결하는 미들웨어
  • RPC
    • 원격 프로시저 호출
  • MOM
    • 메시지 지향 미들웨어
  • TP-Monitor
    • 트랜잭션을 처리 및 감시하는 미들웨어
  • ORB
    • 객체 요청 브로커
  • WAS
    • 웹 애플리케이션 서버
    • 사용자 요구에 맞춰 동적인 콘텐츠 처리

3) 인터페이스 보안

  • IPsec : 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 프로토콜
  • SSL (Secure Sockets Layer) : TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성 보장

4) 인터페이스 구현 검증

인터페이스 구현 검증 도구

도구설명
xUnitJava, C++, .Net 등 언어를 지원하는 단위 테스트 프레임워크
STAF다양한 환경 지원하는 프레임워크
데몬이 프로그램 테스트에 대한 응답을 대신함
FitNesse웹 기반 테스트 케이스 설계, 실행 등을 지원하는 테스트 프레임워크
NTAFFitNesse의 협업기능과 STAF의 재사용 및 확장성 통합한 NHN의 테스트 자동화 프레임워크
Selenium다양한 브라우저 및 개발 언어 지원하는 웹 애플리케이션 테스트 프레임워크
WatirRuby 사용하는 애플리케이션 테스트 프레임워크

2. 화면 설계

1) UI 설계 도구

  • 와이어프레임 (Wireframe)
    • 개략적 레이아웃 등에 대한 뼈대 설계 도구
    • 기획 단계 초기에 제작
  • 목업 (Mockup)
    • 실제 화면과 유사하게 만든 정적 형태 모형
    • 디자인, 사용 방법 등을 위해 제작
  • 스토리보드
    • 와이어프레임에 콘텐츠에 대한 설명, 페이지 간 이동 흐름 등을 추가한 문서
  • 프로토타입 (Prototype)
    • 실제 구현된 것처럼 테스트가 가능한 동적 형태의 모형
    • 인터렉션 (Interaction)
      • UI를 통해 시스템을 사용하는 상호 작용
    • 종류
      • 페이퍼 프로토타입
      • 디지털 프로토타입
  • 유스케이스 (Use Case)
    • 사용자의 요구사항을 기능 단위로 표현한 것
    • 다이어그램 형식

2) 품질 요구사항

  • 소프트웨어 품질 관련 표준

    표준설명
    ISO/IEC 9126소프트웨어의 품질 특성과 평가를 위한 국제 표준
    ISO/IEC 25010ISO/IEC 9126에 호환성과 보안성 강화한 소프트웨어 제품에 대한 국제 표준
    ISO/IEC 12119패키지 소프트웨어의 일반적인 제품 품질 요구사항 및 테스트를 위한 국제 표준
    ISO/IEC 14598소프트웨어 품질의 측정과 평가에 필요 절차를 규정한 표준
  • ISO/IEC 9126의 소프트웨어 품질 특성
    특성내용
    기능성사용자의 요구사항을 정확하게 만족하는 기능을 제공하는지 여부
    신뢰성제한 시간동안 주어진 기능을 오류없이 수행할 수 있는 정도
    사용성사용자가 정확히 이해하고 사용하며, 향후 재사용 희망 여부 정도
    효율성사용자가 요구하는 기능을 얼마나 빠르게 처리 가능한지
    유지 보수성환경변화 또는 새로운 요구사항이 발생했을 때 소프트웨어를 개선하거나 확장할 수 있는 정도
    이식성다른 환경에서 얼마나 쉽게 적용 가능한지

3) HCI / UX

  • HCI (Human Computer Interaction or Interface)
    • 사람이 시스템을 보다 편리하고 안전하게 사용할 수 있도록 연구하고 개발하는 학문
  • UX (User Experience)
    • 사용자가 시스템이나 서비스를 이용하면서 느끼고 생각하게 되는 총체적 경험

3. 애플리케이션 테스트 관리

1) 애플리케이션 테스트

  • 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차

  • 애플리케이션 테스트의 기본 원리

    기본 원리설명
    완벽한 테스트 불가능소프트웨어의 잠재적인 결함은 줄일 수 있지만, 결함이 없다고 증명은 불가
    파레토 법칙애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙
    살충제 패러독스동일한 테스트 케이스로 동일한 테스트를 반복하면 더이상 결함이 발견되지 않는 현상
    테스팅은 정황(Context)의존정황에 따라 테스트 결과가 달라질 수 있으므로, 정황에 따라 테스트를 다르게 수행해야 함
    오류-부재의 궤변소프트웨어 결함을 모두 제거해도 사용자 요구사항을 만족시키지 못하면 품질이 높다고 말할 수 없음
    테스트와 위험은 반비례테스트를 많이 하면 할수록 미래에 발생할 위험을 줄일 수 있음
    테스트의 점진적 확대테스트는 작은 부분에서 시작하여 점점 확대하며 진행해야 함
    테스트의 별도 팀 수행테스트는 개발자와 관계없는 별도의 팀에서 수행해야 함

2) 애플리케이션 테스트의 분류

  • 프로그램 실행 여부에 따른 테스트

    종류설명
    정적 테스트- 프로그램을 실행하지 않고, 명세서나 소스 코드를 대상으로 분석하는 테스트
    - 종류 : 워크스루, 인스펙션, 코드 검사 등
    동적 테스트- 프로그램을 실행하여 오류를 찾는 테스트
    - 종류 : 블랙박스 테스트, 화이트박스 테스트
    • 워크스루(검토 회의)
      • 전문가들이 개발자의 작업 내역 검토
    • 인스펙션
      • 워크스루의 발전된 형태

3) 테스트 기법에 따른 애플리케이션 테스트

  • 화이트박스 테스트

    • 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법
    검사 종류설명
    기초 경로 검사- 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해줌
    제어 구조 검사- 조건 검사 : 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법
    - 루프 검사 : 프로그램의 반복(loop) 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
    - 데이터 흐름 검사 : 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
  • 화이트박스 테스트의 검증 기준(=커버리지)

    기준설명
    문장 검증 기준모든 구문이 한 번 이상 수행
    분기 검증모든 조건문이 한 번 이상
    조건 건증모든 조건문에 대해 조건이 T인 경우와 F인 경우가 한 번 이상 수행
    분기/조건 검증 기준모든 조건문과 각 조건문의 개별 조건식에 결과가 T인 경우, F인 경우가 한 번 이상 수행
    구문(문장) 커버리지모든 명령문을 한 번 이상 수행
    결정(선택, 분기) 커버리지전체 조건식이 적어도 한번은 T와 F의 결과 수행
    조건 커버리지개별 조건식이 적어도 한 번은 T와 F의 결과 수행
    조건/결정 커버리지전체 조건식 뿐 아니라 개별 조건식도 T 한 번, F 한 번의 결과가 나오도록 수행
    변경 조건/결정 커버리지개별 조건식이 전체 조건식에 독립적으로 영향을 주도록 함
    다중 조건 커버리지결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 커버리지
  • 블랙박스 테스트

    • 각 기능이 완전히 작동되는 것을 입증하는 테스트로, 기능 테스트라고도 함
    종류설명
    동치 분할 검사- 입력 자료 개수를 균등하게
    - 동등 분할 기법
    경계값 분석- 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법
    원인-효과 그래프 검사- 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 분석
    오류 예측 검사과거의 경험이나 확인자의 감각으로 테스트
    비교 검사여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트

4) 개발 단계에 따른 애플리케이션 테스트

  • 단위 테스트(Unit Test)
    • 모듈이나 컴포넌트에 초점을 맞춰 테스트
    • 구조 기반 테스트
  • 통합 테스트 (Integration Test)
    • 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트
  • 시스템 테스트
    • 개발된 소프트웨어가 완벽하게 수행되는가를 점검하는 테스트
  • 인수 테스트
    • 사용자의 요구사항을 충족하는지에 중점을 두고 테스트
    • 알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법
    • 베타 테스트 : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법
  • 하향식 통합 테스트 (Top Down Integration Test)
    • 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트
    • Stub : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구
  • 상향식 통합 테스트 (Bottom Up Integration Test)
    • 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법
    • 클러스터로 결합
    • 테스트 드라이버 : 테스트 대상의 하위 모듈을 호출, 파라미터 전달, 모듈 테스트 수행 후의 결과 도출하는 도구

5) 복잡도

  • 시간 복잡도

    • 명령어의 실행 횟수 표기 : 점근 표기법
    • 점근 표기법의 종류
    종류설명
    빅오 표기법 (Big-O Notation)알고리즘의 실행시간이 최악일 때 표기법
    세타 표기법 (Big-Θ Notation)알고리즘의 실행시간이 평균일 때 표기법
    오메가 표기법 (Big-Ω Notation)알고리즘의 실행시간이 최상일 때 표기법
  • 빅오 표기법 - 시간 복잡도

    종류예시
    O(1)스택의 삽입(push), 삭제(pop) 등
    O(logn)이진트리, 이진 검색 등
    O(n)for 문
    O(nlogn)힙 정렬, 합병 정렬 등
    O(n^2)삽입 정렬, 선택 정렬, 버블 정렬, 퀵 정렬 등
    O(2^n)피보나치 수열 등

6) 애플리케이션 성능 개선

  • 소스 코드 품질 분석 도구

    종류설명
    정적 분석 도구실행하지 않고 분석
    - 종류 : pmd, cppcheck, SonarQube, checkstyle 등
    동적 분석 도구실행하여 분석
    - 종류 : Avalanche, Valgrind 등

4. SQL 응용

1) SQL - DDL

DDL(Data Define Language, 데이터 정의어)

  • DB를 구축하거나 수정할 목적으로 사용
명령어기능
CREATESCHEMA, DOMAIN, TABLE, VIEW, INDEX 를 정의
ALTERTABLE에 대한 정의를 변경하는데 사용
DROPSCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제
  • CAD로 외움

CREATE TABLE

  • 테이블
    • 주로 릴레이션이라고 부름
CREATE TABLE 학생
	(이름 VARCHAR(15) NOT NULL,
    학번 CHAR(8),
    전공 CHAR(5),
    성별 SEX,
    생년월일 DATE,
    PRIMARY KEY(학번),
    FOREIGN KEY(전공) REFERENCES 학과(학과코드)
    	ON DELETE SET NULL
        ON UPDATE CASCADE
    CONSTRAINT 생년월일제약
    	CHECK(생년월일) >= '1980-01-01'));
  • PRIMARY KEY : 기본키를 사용할 속성 지정
  • UNIQUE
    • 대체키로 사용할 속성을 지정
    • 중복된 값 X
  • FOREIGN KEY ~ REFERENCES~
    • 외래키로 사용할 속성 지정
    • ON DELETE 옵션 : 참조 테이블의 튜플이 삭제되었을 경우, 기본 테이블이 해야 할 사항 지정
    • ON UPDATE 옵션 : 참조 테이블의 참조 속성 값이 변경되었을 경우, 기본 테이블이 해야할 사항 지정
  • CONSTRAINT : 제약 조건의 이름 지정
  • CHECK : 속성 값에 대한 제약 조건 정의

CREATE VIEW

  • 뷰
    • 가상테이블
    • 물리적 구현 X
CREATE VIEW 고객(성명, 전화번호)
AS SELECT 성명, 전화번호
FROM 고객
WHERE 주소 = '서울시';

ALTER TABLE

  • 테이블에 대한 정의를 변경
// 학생 테이블에 최대 3문자로 구성되는 학년 속성을 추가하시오.
ALTER TABLE 학생 ADD 학년 VARCHAR(3);

// 학생 테이블의 학번 필드의 데이터 타입과 크기를 VARCHAR(10)으로 하고, NULL 값이 입력되지 않도록 변경하시오.
ALTER TABLE 학생 ALTER 학번 VARCHAR(10) NOT NULL;
  • ADD : 새로운 열을 추가
  • ALTER : 특정 속성의 default 값을 변경
  • DROP COLUMN : 특정 속성을 삭제

DROP

  • 스미카, 도메인, 테이블 등을 제거하는 명령문
DROP TABLE 학생 CASCADE;
  • CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거
  • RESTRICT : 다른 개체가 제거할 요소를 참조 중일 때는 제거를 취소

2) SQL - DCL

DCL(Data Control Language, 데이터 제어어)

  • 데이터의 무결성, 보안, 회복, 병행 제어 등을 제어하는데 사용
명령어설명
COMMIT수행 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 완료됨을 관리자에게 알려줌
ROLLBACK비정상적으로 종료되었을 때, 원래대로 복구
GRANT데이터베이스 사용자에게 권한 부여
REVOKE데이터베이스 사용자의 사용 권한 취소
  • CRGR 로 외움
// 사용자 PARK에게 테이블 STUDENT의 데이터를 갱신할 수 있는 시스템 권한을 부여하고자 함
GRANT UPDATE ON STUDENT TO PARK;
// 사용자 PARK에게 테이블을 생성할 수 있는 권한을 부여
GRANT CREATE TABLE TO PARK;
  • 권한 종류
    • ALL, SELECT, INSERT, DELETE, UPDATE, ALTER
    • WITH GRANT OPTION
    • GRANT OPTION FOR
    • CASCADE

COMMIT

  • 트랜잭션이 수행한 내용을 데이터베이스에 반영
DELETE FROM 사원 WHERE 사원번호 = 40;
COMMIT;

ROLLBACK

  • 변경되었으나 아직 COMMIT되지 않은 모든 내용들을 취소하고, 데이터베이스를 이전 상태로 되돌리는 명령어
ROLLBACK TO s2;

SAVEPOINT

  • 트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정하는 명령어
SAVEPOINT S1;
DELETE FROM 사원 WHERE 사원번호 = 20;

3) SQL - DML

DML(Data Manipulation Language, 데이터 조작어)

명령어설명
SELECT테이블에서 튜플 검색
INSERT새로운 튜플 삽입
DELETE튜플 삭제
UPDATE튜플 내용 갱신
  • SIDE로 외움

SELECT

  • 테이블에서 튜플을 검색
// 제품(제품명, 단가, 제조사) 테이블을 대상으로
// H 제조사에서 생산한 제품들의 단가보다 
// 높은 단가를 가진 제품의 정보를 조회하시오.

SELECT 제품명, 단가, 제조사
FROM 제품
WHERE 단가 > ALL 
	(SELECT 단가 
    FROM 제품 
    WHERE 제조사 = 'H');
  • SELECT 절
    • DISTINCT : 중복된 값이 있으면, 첫 번째 한 개만 표시
    • AS : 속성이나 연산의 이름을 다른 이름으로 표시하기 위해 사용
  • FROM : 검색할 테이블 이름
  • WHERE : 검색할 조건을 기술
  • ORDER BY : 데이터를 정렬하여 검색할 때
    • 속성명 : 정렬의 기준이 되는 속성
    • ASC/DESC : 오름차순/내림차순
SELECT 부서
FROM 사원
WHERE 이름 = (SELECT 이름 FROM 취미 WHERE 특기 = '춤');
  • GROUP BY

    • 특정 속성을 기준으로 그룹화하여 검색

    • 그룹 함수

      함수명설명
      COUNT(속성)그룹별 튜플 수
      SUM(속성)그룹별 합계
      AVG(속성)그룹별 평균
      MAX(속성)그룹별 최대값
      MIN(속성)그룹별 최소값
  • HAVING

    • GROUP BY와 함께 사용
    • 그룹에 대한 조건 지정
  • 집합 연산자

    연산자설명
    UNION (합집합)- 두 SELECT 문의 조회 결과 통합
    - 중복행은 한 번만
    UNION ALL (합집합)- 중복된 행 그대로 출력
    INTERSECT (교집합)두 SELECT 문의 조회 결과 중 공통된 행만 출력
    EXCEPT (차집합)첫 번째 SELECT문 결과 - 두 번째 SELECT 문 결과 출력

INSERT

  • 기본 테이블에 새로운 튜플을 삽입
  • 개수와 데이터 유형이 일치해야 함
  • 모든 속성을 사용할 때는 속성명 생략 가능
INSERT INTO 부서 VALUES(10, '영업부');

//사원 테이블에 있는 
//편집부의 모든 튜플을 
//편집부원(이름, 생일, 주소) 테이블에 삽입하시오
INSERT INTO 편집부원(이름, 생일, 주소)
SELECT 이름, 생일, 주소
FROM 사원
WHERE 부서 = '편집';

DELETE

  • 특정 튜플을 삭제할 때 사용
  • 모든 레코드를 삭제할 때는 WHERE 절 생략
    • 모든 레코드를 삭제해도 테이블 구조는 남아 있어, 완전히 제거하는 DROP과 다름
DELETE
FROM 사원
WHERE 이름 = '김이박';

UPDATE ~ SET ~

  • 특정 튜플의 내용을 변경할 때 사용
// 사원 테이블에서 박이김의 부서를 기획으로 변경하고, 기본급을 5만원 인상시켜라.
UPDATE 사원
SET 부서 = '기획', 기본급 = 기본급 + 5
WHERE 이름 = '박이김';

JOIN

  • 연관된 튜플을 결합해, 하나의 새로운 릴레이션을 반환
  • INNER JOIN
// 세 SELECT 문 모두 같은 역할
SELECT 학번, 이름, 학생, 학과명
FROM 학생, 학과
WHERE 학생.학과코드 = 학과.학과코드;

SELECT 학번, 이름, 학생.학과코드, 학과명
FROM 학생 NATURAL JOIN 학과;

SELECT 학번, 이름, 학생, 학과코드, 학과명
FROM 학생 JOIN 학과 USING(학과코드);
  • OUTER JOIN

    • JOIN 조건에 만족하지 않는 튜플도 결과로 출력하기 위한 JOIN 방법
    SELECT 학번, 이름, 학생, 학과코드, 학과명
    FROM 학생 LEFT OUTER JOIN 학과
    ON 학생.학과코드 = 학과.학과코드;
    
    SELECT 학번, 이름, 학생, 학과코드, 학과명
    FROM 학생, 학과
    ON 학생.학과코드 = 학과.학과코드(+);

    4) 커서(Cursor)

    • 쿼리문의 처리 결과가 저장되어 있는 메모리 공간을 가리키는 포인터(Pointer)
    • 열기(Open), 패치(Fetch), 닫기(Close)의 단계

묵시적 커서

  • 내부에서 자동으로 생성되어 사용되는 커서
종류설명
SQL%FOUND패치된 튜플 수가 1개 이상이면 TRUE
SQL%NOFOUND패치된 튜플 수가 0개이면 TRUE
SQL%ROWCOUNT패치된 튜플 수 반환
SQL%ISOPEN커서가 Open 상태이면 TRUE

명시적 커서

  • 사용자가 직접 정의해서 사용하는 커서
  • 열기(Open) 전 단계에서 선언(Declare) 해야 함
CURSOR 커서명(매개변수1, 매겨변수2, ...)
IS
SELECT문;

OPEN 커서명(매개변수1, 매개변수2, ...);

FETCH 커서명 INTO 변수1, 변수2, ...;

CLOSE 커서명

5) DBMS 접속

기술특징
JDBC
(Java Database Connectivity)
Java 언어로 다양한 종류의 데이터베이스에 접속할 때 사용하는 표준 API
MyBatisJDBC 코드를 단순화하여 사용할 수 있는 SQL Mapping 기반 오픈 소스 접속 프레임워크

5. 소프트웨어 보안 구축

1) Secure SDLC

소프트웨어 개발 생명주기 (SDLC: Software Development Life Cycle)

  • 소프트웨어 개발 방법론의 바탕이 되는 것
  • Seven Touchpoints : 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론

소프트웨어 개발 보안 요소

요소설명
기밀성
(Confidentiality)
시스템 내의 정보와 자원은 인가된 사용자에게만 접근 허용
무결성
(Integrity)
인가된 사용자만 수정 가능
가용성
(Availability)
시스템 내 정보와 자원을 언제든지 사용 가능
인증
(Authentication)
합법적인 사용자인지 확인하는 과정
부인 방지
(NonRepudiation)
데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공
  • 기무가(CIA)

2) 입력 데이터 검증 및 표현

보안 약점설명
SQL InjectionSQL을 삽입하여 내부 DB 서버의 데이터 유출 및 변조 등을 수행
XSS악의적인 스크립트를 삽입하여, 정보 탈취 및 비정상적 기능 수행 유발
OS Command Injection시스템 명령어 실행을 유도함으로써 권한 탈취 및 시스템 장애 유발
Memory Buffer Overflow메모리 공간의 범위를 오버하여 기존 프로그램의 의도와 다른 기능을 수행하도록 유발

3) 코드 오류

  • 스택 가드(Stack Guard)
    • 스택 오버플로우 취약점을 막기 위한 기술

4) 캡슐화

  • 접근 제어자

    • 외부로부터의 접근을 제한하기 위해 사용되는 예약어
    접근 제어자클래스패키지하위클래스패키지 외부
    PublicOOOO
    ProtectedOOOX
    DefaultOOXX
    PrivateOXXX

5) 암호 알고리즘

  • 양방향
    • 대칭키
      • Stream 방식
      • Block 방식
    • 비대칭키
      • 공개키(Public Key)
      • 전자 서명

대칭키 암호화(Symmetric Encryption) 기법

  • 동일한 키로 데이터를 암호화하고 복호화
종류설명
스트림 암호화평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화 하는 방식
종류 : LFSR, RC4
블록 암호화한 번에 하나의 데이터 블록을 암호화
종류: DES, SEED, AES, ARIA
  • 대칭 암호화 방식 알고리즘
알고리즘 종류설명
DES (Data Encryption Standard)NIST에 의해 결정
64비트 블록 암호화 알고리즘
56비트 크기의 암호화 키
AES (Advanced Encryption Standard)DES의 한계를 커버
128비트 암호화 블록
다양한 키의 길이
SEED한국인터넷진흥원과 국내 암호전문가들
128비트 블록 암호 알고리즘
ARIA국가보안기술연구소 주도로 개발한 국가 암호화 알고리즘
128비트 블록 암호 알고리즘
IDEA128비트의 키 사용, 64비트 평문을 8라운드를 거쳐 64비트의 암호문 생성
모든 연산이 16비트 단위로 이루어져 16비트 프로세서에서 구현이 용이
RC5RSA 연구소 개발
입출력, 키, 라운드 수가 가변인 블록 암호 알고리즘
DES의 10배 속도
32/64/128비트 키

비대칭키 암호화(Asymmetric Encryption) 기법

  • 각 개인이 공개키(public key)와 개인키(private key)를 소유하는 구조
  • 한 쌍의 개인키와 공개키에 의해 암•복호화가 이뤄짐
  • RSA
    • 두 소수의 곱을 이용해 만든 공개키와 개인키 쌍
    • 두 개의 소수로 표현한 후, 두 소수의 곱을 힌트와 함께 전송해 암호로 사용

6) 해시 알고리즘

  • 하나의 문자열을 짧은 길이의 값으로 변환하는 것
  • 가장 고전적인 해시 알고리즘 : MD5
  • 정보의 무결성 확인을 위함
알고리즘 종류설명
MD 알고리즘MIT, RSA 함께 개발
블록크기 512비트(=64bytes), 해시 결과값 길이 128비트(=16bytes)
SHA 알고리즘NSA에 의해 개발
160비트 값 생성, MD4가 발전한 형태
MD5보다는 느리지만 안전
입력 데이터 512비트 블록

7) 서비스 공격 유형

서비스 거부(DoSL Denial of Service) 공격

  • 대량의 데이터를 한 곳의 서버에 집중적으로 전송하여 정상적인 서비스를 하지 못하게 하는 것
  • 주 유형
    • Ping of Death
    • SMURFING
    • SYN Flooding
    • TearDrop
    • LAND attack
    • DDoS 공격

Ping of Death

  • Ping 명령을 전송할 때 패킷 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여, 네트워크를 마비시키는 서비스 거부 공격 방법

SMURFING

  • IP나 ICMP의 특성을 악용하여 많은 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크 장애를 유발시키는 공격 방법

SYN Flooding

  • 3-Way-Handshake 과정을 의도적으로 중단시킴으로써 공격 대상지인 서버가 대기 상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 공격 방법

TearDrop

  • 데이터 송수신 과정에서 패킷을 나눠 전송하게 되는 때 이 때 패킷의 offset 값을 변경시켜, 수신 측에서 재조립 시에 과부하를 발생시킴으로 다운되도록 하는 방법

LAND Attack(Local Area Network Denial Attack)

  • 패킷을 전송할 때 송수신 IP 모두를 공격 대상의 IP 주소로 하여 공격 대상에게 전송하는 것으로, 자신에 대해 무한히 응답하게 되는 공격

DDoS(Distributed Denial of Service) 공격

  • 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것

8) 네트워크 침해 공격 관련

공격설명
스미싱악성 피싱 링크가 포함된 SMS로 사용자의 개인 정보를 탈취하는 수법
스피어 피싱사회공학 기법으로, 특정 대상에게 의도적인 메일을 지속적으로 발송하여 사용자의 개인 정보 탈취
APT (Advanced Persistent Threats)조직적으로 특정 기업이나 네트워크에 침투해 활동 거점을 마련한 후, 보안을 무력화시키고 정보를 수집하여 외부로 빼돌리는 형태
-> 스턱스넷(Stuxnet)과 같이 악성코드가 담긴 USB 등으로 전파하는 형태
Sniffing네트워크 중간에서 남의 패킷 정보를 도청하는 유형

9) 그 외의 공격과 관련된 용어

공격설명
웜네트워크를 통해 자신을 복제
DoS 공격, 슬래머 등이 웜 공격의 형태
제로 데이취약점의 존재가 알려지기 이전에 발견하여, 해당 취약점을 통해 공격하는 방법
랜섬웨어사용자의 PC에 침투한 후, 암호화하여 금전을 요구
백도어시스템 보안이 취약한 곳을 통해 만들어 놓은 통로
트로이 목마정상적인 기능을 수행하는 프로그램으로 위장해 있다가, 동작할 때 활성화되는 기법, 자가 복제X

10) 보안 솔루션

방화벽

  • 내부 네트워크와 인터넷 간 전송되는 정보를 선별하는 기능을 가진 침입 차단 시스템

침입 탐지 시스템 (IDS: Intrusion Detection System)

  • 컴퓨터 시스템의 비정상적인 사용, 오용 등을 실시간으로 탐지하는 시스템

침입 방지 시스템 (IPS: Intrusion Prevention System)

  • 비정상적인 트래픽을 능동적으로 차단하고 격리하는 보안 솔루션
  • 방화벽 + IDS 버전

데이터 유출 방지 (DLP: Data Leakage/Loss Prevention)

  • 내부 정보의 외부 유출을 방지하는 보안 솔루션

VPN (Virtual Private Network)

  • 가상 사설 통신망
  • 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션

NAC (Network Access Control)

  • 네트워크에 접속하는 내부 PC의 MAC 주소를 IP 관리 시스템에 등록한 후 일관된 보안 관리 기능을 제공하는 보안 솔루션

ESM (Enterprise Security Management)

  • 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션
profile
Whatever I want | Interested in DFIR, Security, Infra, Cloud

0개의 댓글