관리 메뉴

나구리의 개발공부기록

CHAPTER 01 - 소프트웨어 개발 보안 설계(2) 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/실기 9강 - 소프트웨어 개발 보안 구축

CHAPTER 01 - 소프트웨어 개발 보안 설계(2)

소소한나구리 2024. 7. 6. 15:45

2024년도 수제비 실기책(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 보안 프로토콜

IPSec 구성도

[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) : 오픈 웹 애플리케이션 보안 프로젝트로 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 기관