일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch14
- 2024 정보처리기사 수제비 실기
- 타임리프 - 기본기능
- 스프링 db2 - 데이터 접근 기술
- @Aspect
- 스프링 입문(무료)
- 자바의 정석 기초편 ch2
- 자바의 정석 기초편 ch6
- 2024 정보처리기사 시나공 필기
- 게시글 목록 api
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch4
- 스프링 mvc2 - 타임리프
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch8
- jpa 활용2 - api 개발 고급
- 자바의 정석 기초편 ch9
- 스프링 mvc1 - 서블릿
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch7
- 자바의 정석 기초편 ch13
- 스프링 mvc1 - 스프링 mvc
- 스프링 mvc2 - 로그인 처리
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch5
- 자바의 정석 기초편 ch3
- 스프링 db1 - 스프링과 문제 해결
- Today
- Total
나구리의 개발공부기록
CHAPTER 01 - 소프트웨어 개발 보안 설계(2) 본문
CHAPTER 01 - 소프트웨어 개발 보안 설계(2)
소소한나구리 2024. 7. 6. 15:452024년도 수제비 실기책(6판) 내용 정리
4) 서버 인증 및 접근 통제
(1) 서버 인증의 개념
- 다중 사용자 시스템과 망 운영 시스템에서 접속자의 로그인 정보를 확인하는 보안 절차
- 전송된 메시지 무결성 및 송신자를 검증하는 과정이 인증에 해당함
- 서버에서 사용자들에게 접근 권한을 부여하기 위해 접속자의 신분을 검증하는 과정을 로그인이라 하며 인증 과정이 필요함
(2) 인증 기술의 유형(지소생특)
유형 | 설명 |
지식기반 인증 | 사용자가 기억하고 있는 지식, 그가 알고 있는 것(Something You Know) ex) ID/Password |
소지기반 인증 | 소지하고 있는 사용자 물품, 그가 가지고 있는 것(Something You Have) ex) 공인인증서, OTP |
생체기반 인증 | 고유한 사용자의 생체 정보, 그를 대체하는 것(Something You Are) ex) 홍채, 정맥, 얼굴, 지문 |
특징(=형위)기반 인증 | 사용자의 특징을 활용, 그가 하는 것(Something You Do) ex) 서명, 발걸음, 몸짓 |
(3) 서버 접근 통제
[1] 서버 접근 통제의 개념
- 사람 또는 프로세스가 서버 내 파일에 읽기, 쓰기, 실행 등의 접근 여부를 허가하거나 거부하는 기능
- 서버 접근 통제를 통해 비인가자로부터 객체의 기밀성, 무결성, 가용성을 보장함
[2] 서버 접근 통제 용어
구분 | 설명 |
주체(Subject) | 객체나 객체 내의 데이터에 대한 접근을 요청하는 능동적인 개체(행위자) |
객체(Object) | 접근 대상이 수동적인 개체 혹은 행위가 일어나는 아이템(제공자) |
접근(Access) | 읽고, 만들고, 삭제하거나 수정하는 등의 행위를 하는 주체의 활동 |
[3] 서버 접근 통제의 유형
구분 | 설명 |
임의적 접근 통제 (DAC; Discretionary Access Control) |
- 주체나 그룹의 신분(신원)에 근거하여 객체에 대한 접근을 제한하는 방법 - 신분 기반(Identity-Based) 접근통제 정책 - DAC에서 사용하는 자원과 관련된 ACL(Access Control List)이 수정됨으로 써 자원에 대한 권한을 부여 |
강제적 접근 통제 (MAC; Mandatory Access Control) |
- 객체에 포함된 정보의 허용등급과 접근 정보에 대하여 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한하는 방법 - 규칙 기반(Rule-Based) 접근통제 정책 |
역할 기반 접근 통제 (RBAC; Role Based Access Control) |
- 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제한하는 방법 - RBAC에서 자원에 대한 접근은 사용자에게 할당된 역할에 기반 - 관리자는 사용자에게 특정한 권리와 권한이 정의된 역할을 할당 |
[4] 접근 통제 보호 모델(벨기비무)
- 벨-라파듈라 모델(BLP; Bell-Lapadula Policy) : 미 국방부 지원 보안 모델로 보안 요소 중 기밀성을 강조하며 강제적 정책에 의해 접근 통제하는 모델
속성 | 설명 |
No Read Up | - 보안수준이 낮은 주체는 보안 수준이 높은 객체를 읽어서는 안됨 - 주체는 객체와 동일한 등급이거나 객체가 낮은 등급일 때 읽음 |
No Write Down | - 보안수준이 높은 주체는 보안 수준이 낮은 객체에 기록하면 안됨 - 주체의 등급이 객체와 동일하거나 객체보다 낮아야 기록 가능 |
- 비바 모델(Biba Model) : 벨-라파듈라 모델의 단점을 보완한 무결성을 보장하는 최초의 모델
속성 | 설명 |
No Read Down | 높은 등급의 주체는 낮은 등급의 객체를 읽을 수 없음 |
No Write Up | 낮은 등급의 주체는 상위 등급의 객체를 수정 할 수 없음 |
[5] 3A(Authentication, Authorization, Accounting)
- 유무선 이동 및 인터넷 환경에서 가입자에 대한 안전하고, 신쇠성 있는 인증, 권한 부여, 계정 관리를 체계적으로 제공하는 정보 보호 기술
- 접근 통제를 위해서 3A이외에 식별(Identification)개념을 활용함
- 식별은 자신이 누구라고 시스템에 밝히는 행위로 객체에게 주체가 자신의 정보를 제공하는 활동
구성 | 설명 |
인증 (Authentication) |
- 접근을 시도하는 가입자 또는 단말에 대한 식별 및 신분을 검증 - 주체의 신원을 검증하기 위한 활동 - 주체의 신원을 객체가 인정해 주는 행위 |
권한 부여 (Authorization) |
- 검증된 가입자나 단말에게 어떤 수준의 권한과 서비스를 허용 - 인증된 주체에게 접근을 허용하는 활동 - 특정 업무를 수행할 권리를 부여하는 행위 |
계정 관리 (Accounting) |
- 리소스 사용에 대한 정보를 수집하고 관리하는 서비스 - 주체의 접근을 추적하고 행동을 기록하는 활동 - 식별, 인증, 인가, 감사 개념을 기반으로 수립 |
[6] 인증 관련 기술
구분 | 설명 |
SSO (Single Sign On) |
커버로스에서 사용되는 기술로 한 번의 인증 과정으로 여러 컴퓨터상의 자원을 이용할 수 있도록 해주는 인증 기술 |
커버로스(Kerberos) | 1980년대 중반 MIT의 Athena 프로젝트의 일환으로 개발되었으며 클라이언트/서버 모델에서 동작하고 대칭 키 암호키법에 바탕을 둔 티켓 기반의 프로토콜 |
OAuth | 사용자가 비밀번호를 제공하지 않고 다른 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있게 하는 개방형 표준 기술 네이버, 카카오톡, Google과 Facebook 등의 외부 계정을 기반으로 토근을 이용하여 간편하게 회원가입 및 로그인할 수 있게 해주는 기술 |
5) SW 개발 보안을 위한 암호화 알고리즘
(1) 암호 알고리즘(Encryption Algorithm) 개념
- 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법
- Steam(스트림) 암호 : 평문과 같은 길이의 키 스트림을 연속적으로 생성하여 평문과 이진 수열을 비트 잔위로 XOR 연산하여 암호문을 생성하는 대칭키 암호화 기법
- Block(블록) 암호 : 평문을 일정한 블록 단위로 나누어서 각 블록마다 암호화 과정을 수행하여 고정된 크기의 블록 단위의 암호문을 생성하는 대칭키 암호화 기법
용어 | 설명 |
평문(Plain / Plaintext) | 암호화 되기 전의 원본 메세지 |
암호문(Cipher / Ciphertext) | 암호화가 적용된 메세지 |
암호화( =Encrypt / Encryption / Encoding) | 평문을 암호문으로 바꾸는 작업 |
복호화( =Decrypt / Decryption / Decoding) | 암호문을 평문으로 바꾸는 작업 |
키(Key) | 적절한 암호화를 위하여 사용하는 값 |
치환 암호 (대치 암호, Subsitution Cipher) | 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체하는 방법 |
전치 암호 (Transposition Cipher) | 비트, 문자 또는 블록이 원래 의미를 감추도록 자리바꿈 등을 이용하여 재배열하는 방법 |
(2) 암호 알고리즘 방식
- 양방향 인 대칭 키 암호 방식과 비대칭 키 암호 방식이 있고 일방향 해시 함수 방식인 MDC, MAC가 있음
[1-1] 양방향 방식 - 대칭 키 암호 방식
- 암호화 알고리즘의 한 종류로 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘
- 대칭키 암호 방식은 비밀키 전달을 위한 키 교환이 필요하고, 암호화 및 복호화의 속도가 빠름
- 블록 암호화와 스트림 암호화 알고리즘으로 나뉨
방식 | 설명 |
블록 암호 방식 | 긴 평문을 암호화 하기 위해 고정 길이의 블록을 암호화하는 블록 암호 알고리즘을 반복하는 방법 ex) DES, AES, SEED |
스트림 암호 방식 | 매우 긴 주기의 난수열을 발생시켜 평문과 더불어 암호문을 생성하는 방식 ex) RC4 |
**DES(Data Encryption Standard) : 56bit의 키를 이용, 64bit의 평문 블록을 64bit의 암호문 블록으로 만드느 블록 암호 방식의 미국표준(NIST) 암호화 알고리즘
**AES(Advanced Encryption Standard) : 고급 암호화 표준이라고 불리며, DES를 대체한 암호 알고리즘이며 암호화 복호화 과정에서 동일한 키를 사용하는 대칭 키 암호화 알고리즘
**SEED : KISA, ETRI에서 개발하고 TTA에서 인증한 안정성, 신뢰성 우수한(3DES보다) 고속 블록 단위의 128bit 대칭 키 암호화 알고리즘
[1-2] 양방향 방식 - 비대칭 키 암호 방식
- 사전에 개인 키를 나눠 가지지 않은 사용자들이 안전하게 통신하는 방식
- 비대칭 키 암호 방식에서는 공개키(Public Key)와 개인 키(Private Key; 사설키)가 존재하며, 공개키는 누구나 알 수 있지만, 그에 대응하는 개인키는 키의 소유자만이 알 수 있어야 함 (공개키는 보안 타협 없이 공개적으로 배포가 가능)
- 공개키로 암호화된 메세지는 반드시 개인 키로 복호화해야함
- 비대칭 키 암호 방식에는 RSA, ECC, ELGamal, 디피-헬만 등이 있으며, 비대칭 키 암호화 방식은 자신만이 보관하는 비밀키를 이용하여 인증, 전자서명 등에 적용이 가능함
구분 | 대칭 키 암호 방식 | 비대칭 키 암호 방식 |
키 | 대칭 키(비밀키) | 비대칭 키(공개키, 사설키) |
키의 관계 | 암호화 키 = 복호화 키 | 암호화 키 != 복호화 키 |
키의 개수 | n(n-1) / 2 | ex) 10명이 공개키 암호를 사용할 경우 45개의 키가 필요함 | 2n | ex) 10명이 공개키 암호를 사용할 겨우 20개의 키가 필요함 |
암호 알고리즘 | 공개 | 공개 |
장점 | 계산 속도가 빠름 | 암호화 키 사전 공유 불필요 관리해야 할 키 개수가 적음 |
단점 | 키 분배 및 관리의 어려움 기밀성만 보장 |
계산 속도 느림 |
알고리즘 | DES, AES, SEED | 디피-헬만, RSA |
** RSA : 현재 비대칭 키 암호방식 중에서 가장 널리 쓰이고 있는 방식으로서 소인수 분해의 어려움을 이용한 방식
** 디피-헬만(Diffie-Hellman) : 암호 키를 교환하는 방법으로써 두 사람이 암호화되지 않은 통신 망을 통해 공통의 비밀키를 공유할 수 있도록 하는 방식
[2] 일방향 암호 방식(해시 암호 방식)
- 임의 길이의 정보를 입력받아, 고정된 길이의 암호문(해시값)을 출력하는 암호 방식
** 해시 함수(Hash Function)
- 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 단방향 함수
- 해시 함수를 이용한 해시 알고리즘은 일방향 암호 방식으로 임의 길이의 정보를 입력받아, 고정된 길이의 암호문(해시값)을 출력하는 암호 방식
- 해시 함수가 적용된 정보는 복호화가 불가능함
- 해시함수 알고리즘의 종류에는 MD5, SHA-1, SHA-256/384/512, HAS-160, HAVAL 등이 있음
일방향 암호 방식 | 설명 |
MAC (Message Authentication Code) |
- 키를 사용하는 메세지 인증 코드로 메세지의 정당성을 검증하기 위해 메세지와 함께 전송되는 값 - 메세지의 무결성과 송신자의 인증을 보장 |
MDC (Modification Detection Code) |
- 키를 사용하지 않는 변경 감지 코드로 수신자는 받은 데이터로부터 새로운 MDC를 생성하여 송신자에게 받은 MDC와 비교하여 해당 메시지가 변경되지 않았음을 보장하는 값 - 메세지의 무결성 보장 |
(3) 암호 알고리즘 상세
[1] 대칭 키 암호화 알고리즘
종류 | 설명 |
DES (Data Encryption Standard) |
- 1975년 IBM에서 개발하고 미국의 연방 표준국(NIST)에서 발표한 대칭 키 기반의 블록 암호화 알고리즘 - 블록크기는 64bit, 길이는 56bit인 페이스텔(Feistel) 구조, 16라운드 암호화 알고리즘 - DES를 3번 적용하여 보안을 더욱 강화한 3 DES(Triple DES)도 활용됨 |
SEED | - 1999년 국내 한국인터넷진흥원(KISA)이 개발한 블록 암호화 알고리즘 - 128bit 비밀키로부터 생성된 16개의 64bit라운드 키를 사용하여 총 16회의 라운드를 거쳐 128bit의 평문 블록을 128bit 암호문 블록으로 암호화하여 출력하는 방식 - 블록 크기는 128bit이며 키 길이에 따라 128bit, 256bit로 분류 |
AES (Advance Encryption Standard) |
- 2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘 - DES의 개인 키에 대한 전사적 공격이 가능해지고, 3 DES의 성능문제를 극복하기 위해 개발 - 블록 크기는 128bit이며 키 길이에 따라 128bit, 192bit, 256bit로 분류 - AES의 라운드 수는 10, 12, 14 라운드로 분류되며, 한 라운드는 SubBytes, ShiftRows, MixColumns, AddRoundKey의 4가지 계층으로 구성 |
ARIA (Academy, Reserach Institute, Agency) |
- 2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘 - ARIA는 학계(Academy), 연구기관(Reserch Institute), 정부(Agency)의 영문 앞글자로 구성 - 블록 크기는 128bit이며 키 길이에 따라 128bit, 192bit 256bit로 분류 - ARIA는 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발되었으며, ARIA가 사용하는 대부분의 연산은 XOR과 같은 단순한 바이트 단위 연산으로 구성 |
IDEA (International Data Encryption Algorithm) |
- DES를 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘 - 128bit의 키를 사용하여 64bit의 평문을 8라운드에 거쳐 64bit의 암호문을 만듦 |
LFSR (Linear Feedback Shift Register) |
- 시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘 - LFSR에서 사용되는 선형 함수는 주로 배타적 논리합(XOR)이고 LFSR의 초기비트 값은 시드(Seed)라고 함 |
Skipjack | - 미 국가안보국(NSA; National Security Agency) 에서 개발한 Clipper 칩에 내장된 블록 알고리즘 - 소프트웨어로 구현되는 것을 막고자 Fortezza Card에 칩 형태로 구현됨 - 전화기와 같이 음성을 암호화하는 데 주로 사용되고 64bit의 입/출력, 80비트의 키, 32라운드를 가짐 |
[2] 비대칭 키 암호화 알고리즘
종류 | 설명 |
디피-헬만 (Diffie-Hellman) |
- 최초의 공개키 알고리즘으로 W.Diffie와 M.Hellman이 1976년에 고안한 알고리즘으로서 유한 필드 내에서 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있음 - 공개키 암호 방식의 개념을 이용하여 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법을 제시하였으며, 키 분배 방식에 관한 연구의 기본이 됨(최초의 비밀키 교환 프로토콜) |
RSA (Rivest- Shamir- Adleman) |
- 1977년 3명의 MIT 수학 교수(Rivest, Shamir, Adleman)가 고안한 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘을 이용하는 공개키 암호화 알고리즘 - 비밀키의 복호화가 어려운 RSA 안정성은 소인수 분해 문제의 어려움에 근거를 두고 있음 |
ECC (Elliptic Curve Cryptography) |
- 1985년 코블리치와 빌러가 RSA 암호 방식에 대한 대안으로 제안한 공개키 암호와 알고리즘 - 유한체 위에서 정의된 타원곡선 군에서의 이산대수의 문제에 기초한 공개키 암호화 알고리즘 - PKI 기반의 RSA의 문제점인 속도와 안정성을 해결하기 위해 타원 기반 구조체의 안정성과 효율성을 기반으로 생성되었고 RSA보다 키의 비트 수를 적게 하면서 동일한 성능을 제공 |
ElGamal | - T.ElGamal이 1984년에 제안한 공개키 알고리즘 - 이산대수의 계산이 어려운 문제를 기본원리로 하고 있으며 RSA와 유사하게 전자서명와 데이터 암/복호화에 함께 사용 가능 |
[3] 해시(Hash) 암호화 알고리즘
종류 | 설명 |
MD5 (Message-Digest algorithm 5) |
- 1991년 R.rivest가 MD4를 개선한 암호화 알고리즘으로 프로그램이나 파일의 무결성 검사에 사용 - 각각의 512비트짜리 입력 메세지 블록에 대해 차례로 동작하여 128비트의 해시값을 생성하는 해시 알고리즘 |
SHA-1 (Sequre Hash Algorithm) |
- 1993년 NSA에서 미 정부 표준으로 지정되었고, DSA(Digital Signature Algorithm)에서 사용 - 160비트의 해시값을 생성하는 해시 알고리즘 |
SHA-256/384/512 | - SHA 알고리즘의 한 종류로서 256비트의 해시값을 생성하는 해시 함수 - AES(미연방 표준 알고리즘)의 키 길이인 128,192,256비트에 대응하도록 출력 길이를 늘인 해시 알고리즘 |
HAS-160 | - 국내 표준 서명 알고리즘 KCDSA(Korean Certificate-based Digital Signature Algorithm)를 위하여 개발된 해시함수 - MD5와 SHA-1의 장점을 취하여 개발된 해시 알고리즘 |
HAVAL | - 메세지를 1024bits 블록으로 나누고 128, 160, 192, 224, 256 비트인 메세지 다이제스트를 출력하는 해시 알고리즘 |
6) 데이터베이스 암호화 기법(애플티하)
구분 | 구성도 | 설명 |
API 방식 | - 애플리케이션 레벨에서 암호화 모듈(API)을 적용하는 애플리케이션 수정 방식 - 애플리케이션 서버에 암/복호화, 정책관리, 키 관리 등의 부하 발생 |
|
Plug-in 방식 | - 암/복호화 모듈이 DB서버에 설치된 방식 - DB 서버에 암/복호화, 정책 관리, 키 관리 등의 부하 발생 |
|
TDE 방식 | - DB 서버의 DBMS 커널이 자체적으로 암/복호와 기능을 수행하는 방식 - 내장되어있는 암호화기능(TDE; Transparent Data Encryption)을 이용 |
|
Hybrid 방식 | - API방식와 Plug-in 방식을 결합하는 방식 - DB 서버와 애플리케이션 서버로 부하 분산 |
7) 안전한 전송을 위한 데이터 암호화 전송
- 민감한 정보 통신 채널을 통하여 전송 시에는 반드시 암/복호와 과정을 거쳐야 하고 IPSec, SSL/TLS, S-HTTP등 보안 채널을 활용하여 전송해야 함
** VPN(Virtual Private Network) : 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션이자 여러 공중 인터넷망을 하나의 사설망처럼 사용할 수 있는 기술 - SSL과 IPSec 방식이 있음
(1) PPTP(Point to Point Tunnel Protocol)
- 마이크로소프트사가 개발한 프로토콜로 IP, IPX 페이로드를 암호화 하고, IP헤더로 캡슐화 하여 전송하는 프로토콜
- PPP(Point to Point Protocol)에 기초하여 두 대의 컴퓨터가 직렬 인터페이스를 이용하여 통신할 때 사용함
- 하나의 터널에 하나의 연결만을 지원하여 일대일 통신만 가능함
- 데이터 링크 계층(2계층)에서 사용하는 보안 프로토콜
(2) L2F(Layer 2 Forwarding)
- 시스코사(Cisco)에서 개발한 프로토콜로 하나의 터널에 여러 개의 연결을 지원하여 다자간 통신이 가능하도록 하는 프로토콜
- 전송 계층 프로토콜로 TCP가 아닌 UDP를 사용함
- 데이터 링크 계층(2계층) 에서 사용하는 보안 프로토콜
(3) L2TP(Layer 2 Tunneling Protocol)
- L2F와 PPTP를 결합한 방법으로 마이크로소프트사와 시스코에서 지원하고 있으며 호환성이 뛰어난 프로토콜
- UDP포트가 사용되고 터널링에 대한 인증을 수행
- 암호화 및 기밀성과 같은 데이터에 보안을 제공하지 않기 때문에 IPSec(Internet Protocol Security) 기술과 함께 사용됨
- 데이터 링크 계층(2계층)에서 사용하는 보안 프로토콜
(4) IPSec
[1] IPSec(Internet Protocol Security)개념
- IP계층(3계층)에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜
[2] IPSec의 기능
기능 | 설명 |
기밀성 | 대칭 암호화를 통해 전송 데이터에 대한 기밀성 제공 |
비 연결형 무결성 | 메세지가 위/변조되지 않았음을 보장하는 특성 제공 |
인증 | 데이터 원천 인증 및 송신처 인증 |
재전송 공격 방지 | 송신 측에서 IP패킷별로 순서번호를 통해 재전송 공격 방지 |
접근 제어 | Security Policy를 통해 시스템 접근 제어 |
[3] IPSec 동작 모드
동작 모드 | 설명 |
전송 모드 (Transprot Mode) |
- IP 패킷의 페이로를 보호하는 모드(즉, IP 상위 프로토콜 데이터를 보호하는 모드) |
터널 모드 (Tunnel Mode) |
- IP 패킷 전체를 보호하는 모드 - IP 패킷 전체를 IPSec로 캡슐화하여 IP헤더를 식별할 수 없기 때문에 네트워크상 패킷 전송이 불가능 - 따라서 전송구간 주소 정보를 담은 New IP 헤더 추가 |
[4] IPSec 프로토콜
동작 모드 | 설명 |
인증(AH) 프로토콜 (Authentication Header) |
- 메세지 인증 코드(MAC)를 이용하여 인증과 송신처 인증을 제공해주는 프로토콜로 기밀성(암호화)은 제고앟지 않는 프로토콜 - 무결성, 인증 제공 |
암호화(ESP) 프로토콜 (Encapsulation Security Payload) |
- 메세지 인증 코드와 암호화를 이용하여 인증, 송신처 인증, 기밀성을 제공하는 프로토콜 - 기밀성, 무결성, 인증 제공 |
키 관리(IKE) 프로토콜 (Internet Key Exchange) |
- Key를 주고 받는 알고리즘 - 공개된 네트워크를 통하여 Key를 어떻게 할 것인가를 정의, IKE 교환을 위한 메세지를 전달하는 프로토콜 |
(5) SSL/TLS
[1] SSL(Secure Socket Layer)/TSL(Transprot Layer Security) 개념
- 전송계층(4계층)과 응용계층(7계층) 사이에서 클라이언트와 서버간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
[2] SSL/TLS의 특징
특징 | 설명 |
Netscape 사가 개발 | SSL은 Netscape사가 1990년대 초반 웹 보안을 위해 처음 개발 |
다양한 암호 통신 방법 활용 | 대칭 키 암호화, 공개키 암호화, 일방향 해시함수, 메세지 인증코드, 의사난수 생성기, 전자서명을 조합하여 암호화 통신 수행 |
특정암호기술에 의존하지 않음 | 암호 도구 목록(Cipher Suite)을 변경하여 강력한 알고리즘을 사용 SSL/TLS 상에 HTTP를 올려서 'https://'로 변경되어 사용 |
[3] SSL/TLS의 보안 기능
보안 기능 | 설명 |
기밀성 | Triple DES, AES 같은 대칭 키 암호화 알고리즘 제공 |
상호인증 | 연결 설정 과정에서 서버와 클라이언트 간에 신뢰할 수 있도록 인증 사용 RSA(비대칭 키), DSS(전자서명) 알고리즘, X, 509 공개키 인증서 사용 |
메세지 무결성 | 안전한 해시 알고리즘을 사용하여 메세지 인증코드 생성 |
8) SW 개발 보안 적용 사례
구분 | 설명 |
BSIMM (Building Security In Maturity Model) |
- 미국 국토안보국의 지원을 받아 수행된 소프트웨어 보증(Software Assurance, SwA) 프로젝트의 결과물 중 하나 - 보안 활동의 성숙도 수준을 영역별로 측정함으로써 소프트웨어 개발에 필요한 보안 능력 향상을 목표로 하는 개발 프레임워크 |
Open SAMM (Software Assurance Maturity Model) |
- OWASP에서 개발한 개방형 보완 프레임워크 - 개방을 원칙으로, 소규모, 중규모, 대규모로 점진적인 확대가 가능한 융통성 있는 프레임워크 - BSIMM과는 달리 설계 리뷰와 코드 리뷰, 그리고 보안 테스팅을 3개의 중요한 검증 활동으로 정의함으로써 이들 활동 간의 연계성 강조 |
Seven TouchPoints | 실무적으로 검증된 개발 보안 방법론 중 하나로써 SW 보안의 모범 사례를 SDLC(Software Development Life Cycle)에 통합한 소프트웨어 개발 보안 생명주기 방법론 |
MS SDL (Security Development Lifecycle) |
- 마이크로소프트사가 2004년 이후 자사의 소프트웨어 개발에 의무적으로 적용하도록 고안한 보안강화 프레임워크 - SDL은 개발 중인 제품이 보안 위협에 대해 얼마나 강인한가를 측정하기 위해 동일한 제품에 대해 'pre-SDL'과 'post-SDL'의 두 개의 버전으로 테스트 |
OWASP CLASP (=CLASP) |
- 개념 관점, 역할 기반 관점, 활동평가 관점, 활동구현 관점, 취약성 관점 등의 활동중심, 역할 기반의 프로세스로 구성된 보안 프레임워크로 이미 운영중인 시스템에 적용하기 쉬운 보안 개발 방법론 - 프로그램 설계나 코딩 오류를 찾아내어 개선하기 위해 개발팀에 취약점 목록을 제공 |
** OWASP(The Open Web Application SEcurity Project) : 오픈 웹 애플리케이션 보안 프로젝트로 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 기관
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 실기 9강 - 소프트웨어 개발 보안 구축' 카테고리의 다른 글
CHAPTER 02 - 소프트웨어 개발 보안 구현(2) (0) | 2024.07.07 |
---|---|
CHAPTER 02 - 소프트웨어 개발 보안 구현(1) (0) | 2024.07.07 |
CHAPTER 01 - 소프트웨어 개발 보안 설계(예상문제) (0) | 2024.07.06 |
CHAPTER 01 - 소프트웨어 개발 보안 설계(기출문제) (0) | 2024.07.06 |
CHAPTER 01 - 소프트웨어 개발 보안 설계(1) (0) | 2024.07.04 |