본문 바로가기

2021 정보처리기사/5과목: 정보시스템 구축 관리

[정보처리기사 5과목] 소프트웨어 개발 보안 구축(2)

728x90
반응형
[정보처리기사 5과목 필기 예상 키워드] 목록으로 돌아가기
과목: 5. 정보시스템 구축 관리
챕터: 3장 소프트웨어 개발 보안 구축
키워드: 소프트웨어 개발 방법론
 보안요소 / 시큐어코딩 / 세션 / 레이스컨디션
SQL 사입 / 널포인터 / API / 개인키 암호화 기법
공개키 암호화 기법 / 해시

 

 

코드 오류

개요

✔ 개발자들이 코딩 중 실수하기 쉬운 형(Type) 반환, 자원 반환 등의 오류를 예방하기 위한 보안 점검 항목들

 


✔ 널 포인터 역참조:

널(Null)은 값이 없음을 의미하며, 포인터(Pointer)는 메모리의 위치를 가리키는 요소,

널 포인터(Null Pointer)는 포인터에 널이 저장되어 어떠한 곳도 가리키지 못하는 상태의 요소를 말함

 

-널이 될 수 있는 포인터를 이용하기 전에 널 값을 갖고 있는지 검사함으로써 방지할 수 있음(초기화X)

 

🚩 스택 가드(Stack Guard)

- 널 포인터 역참조와 같이 주소가 발생되는 스택에서 발생하는 보안 약점을 막는 기술 중 하나

- 메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장한 후 그 값이 변경되었을 경우 오버플로우 상태로 판단하여 프로그램 실행을 중단함으로써 잘못된 복귀 주소의 호출을 막는 기술

 


✔ 부적절한 자원 해제:

- 자원을 반환하는 코드를 누락하거나 프로그램 오류로 할당된 자원을 반환하지 못했을 때 발생하는 보안 약점

- 힙 메모리, 소켓 등의 유한한 시스템 자원이 계속 점유하고 있으면 자원 부족으로 인해 새로운 입력을 처리하지 못할 수 있음

- 자원 반환 코드가 누락되었는지 확인, 오류에 의해 함수가 중간에 종료되었을 때 예외처리에 관계없이 자원이 반환되도록 코딩

 


✔ 해제된 자원 사용

- 이미 사용이 종료되어 반환된 메모리를 참조하는 경우에 발생하는 보안 약점

- 반환된 메모리에 접근할 수 없도록 주소를 저장하고 있는 포인터를 초기화함으로써 방지

 


✔ 초기화되지 않은 변수 사용

- 선언 후 값이 부여되지 않은 변수를 사용할 때 발생

- 변수 선언 시 할당된 메모리를 초기화함으로써 방지

 

 

 

 

 

캡슐화

개요

✔ 정보 은닉이 필요한 중요한 데이터와 기능을 충분하게 캡슐화함으로써 보안 취약점을 예방한다

 

 

접근 지정자(접근 제어자)

✔ 프로그래밍 언어에서 특정 개체를 선언할 때 외부로부터 접근을 제한하기 위해 사용되는 예약어

한정자 클래스 내부 패키지 내부 하위 클래스 패키지 외부
Public O O O X
Protected O O O X
Default O O X X
Private O X X X

 

 

 

 

암호 알고리즘

개요

✔ 패스워드, 주민번호, 은행계좌와 같은 중요정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법

✔ 암호 알고리즘은 해시(Hash)를 사용하는 단방향 암호화 방식, 개인키 및 공개키로 분류되는 양방향 암호화 방식이 있음

 

 

개인키 암호화(Private Key Encryption)

✔ 동일한 키로 데이터를 암호화하고 복호화함(키가 대칭됨=대칭 암호 기법=키가 한 가지임=단일 키 암호화 기법)

✔ 평문의 정보 A를 암호화 알고리즘 B와 개인키 C를 이용하여 암호문 D로 바꾸어 저장해 놓으면, 사용자가 그 데이터베이스에 접근하기 위해 복호화 알고리즘 E와 개인키 C를 이용하여 다시 평문의 정보 A로 바꾸어 이용하는 방법이다. 

✔ 한 번에 하나의 데이터 블록을 암호화하는 블록 암호화 방식

✔ 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화 하는 스트림 암호화 방식으로 분류

 

🚩 블록 암호화 방식:

 

알고리즘 종류 개발기관 블록크기 키 길이
AES NIST 128 128, 192, 256
SEED KIST 128 128, 256
ARIA 국정원 128 128, 192, 256
DES NBS 64 56

 

 

 

🚩 스트림 암호화 방식: LFSR, RC4

 

👀 장점: 암호화/복호화 속도가 빠름, 알고리즘 단순, 공개키 암호 기법보다 파일 크기가 작음

👀 단점: 사용자 증가에 따라 관리해야 할 키의 수가 상대적으로 많아짐

 

 

공개키 암호화(Public Key Encryption)

✔ 암호화할 때 사용하는 공개키(Public Key)는 데이터베이스 사용자에게 공개

✔ 복호화할 때의 비밀키(Secret Key)는 관리자가 비밀리에 관리

✔ 암호화 할 때와 복호화 할 때의 키가 서로 다르다(키가 다름=비대칭)

 

🚩 공개키 암호화 방식: RSA(MIT, 소인수분해)

 

👀 장점: 키의 분배가 용이하고, 관리해야 할 키의 개수가 적음

👀 단점: 암호화/복호화 속도가 느리고, 알고리즘 복잡, 개인키 암호화 기법보다 파일 크기가 큼

 

 

해시(Hash)

✔ 임의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것

✔ 해시 알고리즘을 해시 함수라고 부르며, 해시 함수로 변환된 값이나 키를 해시값 또는 해시키라고 부름

✔ 데이터 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용

✔ 해시 함수의 종류: SHA, MD5, N-NASH, SNEFRU 등

 

 

 

 

 

 


 

정보처리기사 5과목 필기(상시업뎃)

2021년 정보처리기사 공부를 위해 각 과목/챕터 별 Best 키워드를 정리해 놓은 글입니다. 시나공 문제집의 기출빈도와 중요도를 기준으로 정리된 키워드들이며, 순서와 관계 없이 

y-oni.tistory.com

참고: 시나공 정보처리기사 필기 (저자: 강윤석, 김용갑, 김우경, 김정준 | 출판사: 길벗), 유튜브 주간컴공TV

728x90