소프트웨어 개발 보안 구축 - 2

Date:     Updated:

카테고리:

태그:

img

소프트웨어 개발 보안 구축 2


Secure SDLC


8. 캡슐화

  • 캡슐화는 정보 은닉이 필요한 중요한 데이터와 기능을 불완전하게 캡슐화하거나
    잘못 사용함으로써 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목들이다.
  • 캡슐화의 보안 약점
보안 약점 설명
잘못된 세션에 의한 정보 노출 - 다중 스레드(Multi-Thread) 환경에서 멤버 변수에 정보를 저장할 때 발생하는 보안 약점
- 멤버 변수보다 지역 변수를 활용하여 변수의 범위를 제한함으로써 방지할 수 있음
제거되지 않고 남은 디버그 코드 - 개발 중에 버그 수정이나 결과값 확인을 위해 남겨둔 코드들로 인해 발생하는 보안 약점
- 소프트웨어 배포 전에 코드 검사를 수행하여 남아있는 디버그 코드를 삭제함으로써 방지할 수 있음
시스템 데이터 정보 노출 - 시스템의 내부 정보를 시스템 메시지 등을 통해 외부로 출력하도록 코딩했을 때 발생하는 보안 약점
Public 메소드로부터 반환된
Private 배열
- 선언된 클래스 내에서만 접근이 가능한 Private 배열을 모든 클래스에서 접근이 가능한 Public 메소드에서
반환할 때 발생하는 보안 약점
- Private 배열을 별도의 메소드를 통해 조작하거나, 동일한 형태의 복제본으로 반환받은 후 값을 전달하는 방식으로 방지할 수 있음
Private 배열에 Public 데이터 할당 - Private 배열에 Public으로 선언된 데이터 또는 메소드의 파라미터를 저장할 때 발생하는 보안 약점
- Public으로 선언된 데이터를 Private 배열에 저장할 때, 레퍼런스가 아닌 값을 직접 저장함으로써 방지할 수 있음


9. 접근제어자

  • 접근제어자는 프로그래밍 언어에서 특정 개체를 선언할 때 외부로부터의 접근을 제한하기 위해 사용되는 예약어이다.
  • 접근 제어자의 종류 ( 접근가능 : O, 접근 불가능 : X )
접근 제어자 클래스 내부 패키지 내부 하위 클래스 패키지 외부
Public O O O O
Protected O O O X
Default O O X X
Private O X X X


문제 1

다음 <보기> 중 Java에서 사용하는 접근 제어자에 해당하는 예약어를 모두 고르시오

internal, private, default, restrict, public, cascadem protected, abstract, interface

⭐ 정답 : private, default, public, protected


문제 2

제거되지 않고 남은 디버그 코드나 시스템 메시지, 잘못된 접근 제어자의 활용으로 인해 시스템의 내부 정보가 노출되는 등의 보안 약점을 예방하기 위해 점검해야 하는 보안 점검 항목을 쓰시오.

⭐ 정답 : 캡슐화


10. 암호 알고리즘

  • 암호 알고림즘은 패스워드, 주민번호, 은행계좌와 같은 중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법을 의미한다.
  • 암호 방식 분류

Untitled


11. 개인키 암호화(Private Key Encryption) 기법

  • 개인키 암호화 기법은 동일한 키로 데이터를 암호화하고 복호화하는 암호화 기법이다.
  • 대칭 암호 기법 또는 단일키 암호화 기법이라고도 한다.
  • 암호화/복호화 속도가 빠르지만, 관리해야 할 키의 수가 많다.
  • 개인키 암호화 기법의 종류
방식 설명
스트림 암호화 방식 - 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화 하는 방식
- 종류 : LFSR, RC4, TKIP
블록 암호화 방식 - 한 번에 하나의 데이터 블록을 암호화 하는 방식
- 종류 : DES, SEED, AES, ARIA, IDEA, Skipjack


12. 공개키 암호화 (Public Key Encryption) 기법

  • 공개키 암호화 기법은 데이터를 암호화할 때 사용하는 공개키(Public Key)는 사용자에게 공개하고,
    복호화할 때의 비밀키(Secret Key)는 관리자가 비밀리에 관리하는 암호화 기법이다.
  • 비대칭 암호화 기법이라고도 한다.
  • 관리해야 할 키의 수가 적지만, 암호화/복호화 속도가 느리다.
  • 대표적으로는 RSA(Rivest Shamir Adleman) 기법이 있다.\
  • 양방향 알고리즘의 종류
알고리즘 특징
SEED - 1999년 한국인터넷진흥원(KISA)에서 개발한 블록 암호화 알고리즘
- 블록 크기는 128비트이며, 키 길이에 따라 128, 256으로 분류됨
ARIA (Academy, Research Institude, Agency)
- 2004년 국가정보원과 산학연협회가 개발한 블록 암호화 알고리즘
DES (Data Encryption Standard) - 1975년 미국 NBS에서 발표한 개인키 암호화 알고리즘
- 블록 크기는 64비트, 키 길이는 56비트이며 16회의 라운드를 수행함
- DES를 3번 적용하여 보안을 더욱 강화한 3DES도 있다.
AES (Advanced Encrypion Standard) - 2001년 미국 표준 기술 연구소 (NIST)에서 발표한 개인키 암호화 알고리즘
- DES의 한계를 느낀 NIST에서 공모한 후 발표
- 블록 크기는 128비트이며, 키 길이에 따라 AES-128, AES-192, AES-256 으로 분류됨
RSA (Rivest Shamir Adleman) - 스위스의 라이(Lai)와 메시(Messy)가 1990년에 개발한 PES를 개선한 알고리즘
- 블록 크기는 64비트이고, 키 길이는 128비트임
Skipjack - 국가 안전 보장국 (NSA)에서 개발한 암호화 알고리즘
- 클리퍼 칩(Clipper Chip)이라는 IC칩에 내장되어 있음
- 블록 크기는 64비트이고, 키 길이는 80비트임
- 주로 음성 통신 장비에 삽입되어 음성 데이터를 암호화함
TKIP (Temporal Key Integrity Protocol) - 무선랜 보안에 사용된 WEP을 보완한 데이터 보안 프로토콜로, 임시 키 무결성 프로토콜이라고도 함
- WEP의 취약성을 보완하기 위해 암호 알고리즘의 입력 키 길이를 128비트로 늘리고 패킷당 키 할당, 키 값 재설정 등 키 관리 방식을 개선하였음.


13. 해시 (Hash)

  • 해시는 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미한다.
  • 해시 알고리즘을 해시 함수라고 부르며, 해시 함수로 변환된 값이나 키를 해시값 또는 해시키라고 부른다.
  • 데이터의 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용된다.
  • 해시함수의 종류
해시함수 특징
SHA 시리즈 - 1993년 미국 국가안보국(NSA)이 설계, 미국 국립표준기술연구소(NIST)에 의해 발표됨
- 초기 개발된 SHA-0 이후 SHA-1이 발표되었고,
다시 SHA-2라고 불리는 SHA-224, SHA-256, SHA-384, SHA-512가 발표됨.
MD5 (Message Digest Algorithm 5) - 1991년 R.Rivest가 MD4를 대체하기 위해 고안한 암호화 해시 함수
- 블록 크기가 512 비트이며, 키 길이는 128비트임
N-NASH - 1989년 일본의 전신전화주식회사(NTT)에서 발표한 암호화 해시함수
- 블록 크기와 키 길이가 모두 128비트임
SNEFRU - 1990년 R.C.Merkle가 발표한 해시 함수
- 32비트 프로세서에서 구현을 용이하게 할 목적으로 개발됨


문제 1

1991년 R.rivest가 MD4를 개선한 암호화 알고리즘으로, 각각의 512 비트짜리 입력 메시지 블록에 대해 차례로 동작한다. 각 512 비트 입력 메시지 블록을 처리하고 나면 128비트 스테이트(state)의 값이 변하는 암호화 알고리즘을 쓰시오.

⭐ 정답 : MD5

→ MD5 : 파일의 무결성 검사에 사용


문제 2

1974년 IBM이 개발하고 1975년 NBS에 의해 미국의 국가 표준으로 발표된 암호화 알고리즘으로, 블록 크기는 64비트, 키 길이는 56비트이며, 16회의 라운드를 수행한다. 컴퓨터 기술이 발달함에 따라 해독이 쉬워지면서 미국의 국가 표준이 2001년 AES로 대체되었다.

⭐ 정답 : DES (Data Encryption Standard)

info-process 카테고리 내 다른 글 보러가기

댓글 남기기