1.서론

- 소방청 통계에 따르면 지난 10년(2011~2020) 간 소방공무원 순직자는 49명, 공무로 인해 부상을 입은 자는 약 5,700명에 이르는 것으로 집계

- ICT가 발전하면서 재난ㆍ안전 분야에서도 기존 기술과 ICT의 융합을 통해 재난ㆍ안전 분야의 어려움을 해결하고자 시도하는 일이 폭넓게 진행되고 있다

구분 재난ㆍ사고 현장에서의 대원 안전 확보를 위한 기술
재난ㆍ사고 환경 감지 기술 ① 현장대원이 재난ㆍ사고 현장의 온도, 유해가스 등과 같은 위험요소를 감지할 수 있도록 지원하는 재난ㆍ사고 환경 감지 기술
생체신호 감시 기술 ② 재난ㆍ사고 현장에서 활동 중인 대원의 생체신호 등과 같은 개인 위험 상태를 감시하기 위한 기술
가상대응훈련 ③ 현장 대응력을 높이기 위한 목적으로 가상현실 기술을 이용하여 재난ㆍ사고 가상 대응 훈련을 지원하는 기술 현황

 

2.재난.사고 환경 감지 기술

- 재난ㆍ사고 현장에서 위험요소로 작용하는 대표적인 것 중 하나가 가스 유출, 화재 연소 등으로 인한 유해가스의 발생

- 이에 따라 유해가스 위험이 있는 재난ㆍ사고 현장에서 현장대원이 편리하게 이용할 수 있도록 소형, 경량의 휴대용 가스감지기가 다양하게 개발되 고 있다

- 대체로 현장대원뿐만 아니라 유해가스 발생 위험이 있는 다양한 산업에서 현장 작업자가 이용할 수 있는 범용성을 가진다. 

 

가스탐지기 종류

제조사 종류
미국의 Teledyne Gas and Flame Detection(TeledyneGFD)
독일의 Drager사
독일의 GFG사
국내,  SENKO
국내, 한국전 자통신연구원

 

 

 

3.현장대원 안전 감시 기술

-재난ㆍ사고 현장에 투입된 현장대원의 생체신호를 감지하여 신체 위험도를 파악하고, 현 장대원의 활동 상황을 실시간으로 모니터링할 수 있다면, 대원이 처한 위험 상황을 고려하여 적절하게 대응하거나 지령을 내림으로써 안전 확보에 더 힘쓸 수 있다

제조사 시스템 설명
독일 Drager사 “Drager FireGround Accountability System"


- 현장대원의 상태정보를 실시간으로 확인하고 지령을 전달할 수 있는 시스템

- 이 시스템을 이용하면 각 4명의 대원으로 구성된 6개 팀까지 “FireGround Hub”에 접속하여 소방용 공기호흡기에서 획득된 대원들의 생체 정보, 공기호흡기 상태정보(공기 잔량, 압력 등) 등을 실시간으로 모니터링할 수 있다
대만의 UUP SAFETY 사 웨어러블 모니터링 장치


- 소방대원의 심장 상태를 비롯한 생체 위험을 탐지하기 위한 웨어러블 모니터링 장치
- 현장대원이 패치 형태의 장치를 착용하면 심전도, 체온, 움직임 상태등의 생체 신호를 실시간으로 전송하여 모니터링할 수 있으며, BLE 연결 상태, 배터리 상태 등의 기기 상태를 사용자가 확인할 수 있다
스위스의 Wearin사 클라우드 플랫폼 솔루션


- 소방관, 현장대원, 위험 환경 작업자 등이 웨어러 블 안전장치를 통해 획득한 다양한 상황 데이터를 수집, 모니터링, 시뮬레이션하여 그들이 가질 수 있는 위험 상황을 효과적으로 인지하고 대응할 수 있도록 지원

-현장대원의 웨어러블 장치 등을 통해 수집된 위치, 환경, 동작, 생체 상태 등의 실시간 데이터에 대해 과거 데이터로 학습된 AI 기법을 적용하여 위험 상황을 판단하고(예; 극심한 스트레스, 추락, 충돌 가능성 등) 이러한 정보를 현장 대응에 활용할 수 있도록 지원

 

4.VR을 이용한 재난대응 가상훈련 기술

- 미국화재 예방협회(National Fire Protection Association: NFPA)에 따르면 2009년에서 2018년 까지 10년 동안 미국 내에서 훈련 중에 사망한 소방관은 총 91명에 이른다.

- 이러한 소방 훈련의 특성을 고려할 때 VR 기술을 이용하여 다양한 형태의 재난ㆍ사고에 대해 반복적으로 훈련함으로써 훈련 효과를 높일 수 있다고 기대할 수 있다.

제조사 시스템 설명
호주 FLAIM사  
소방관들의 화재대응 훈련을 지원하기 위한 VR 시뮬레이터
한국전자통신연구원 실감소방훈련 시뮬레이터

-2021년부터는 대전시 소방기관 내 VR 훈련기술 기반 리빙랩 운영 등을 통해 기술 실증
-체험형 콘텐츠를 안전하게 사용 할 수 있는 모션 시뮬레이터 기술, 실감 체험을 지원하는 다중 참여 공유 기술, 다수의 사용자 가 동일 가상 재난현장에 참여할 수 있는 실감 소방훈련시스템 기술 등을 적용
독일의 Firefighter VR 소방과 구조 활동을 체험할 수 있는 솔루션
남아프리카공화국의 ThoroughTec Simulation사  소방 및 구조 시뮬레이터(CYBERDRIVE ARFF Simulators)
한국, ‘iPOP’ 가상환경 기반 훈련 시스템

 

5.결론

- 재난안전 분야에서 미국을 기준으로 했을 때 한국의 기술 수준은 EU 92.6%, 일본 87.8%와 비교하여 약 80%(약 2.9년)에 해당하는 것으로 분석

- 현장대원의 근무환경 개선, 현장 대응력 향상을 위한 제도 개선 등 다양한 정책적 지원과 더불어 현장대 원들의 안전 확보를 위한 ICT 활용 기술에도 더 관심 요구된다.

 

재난ㆍ사고 현장에서의 현장대원 안전 확보 지원을 위해 ICT를 접목을 위한 고려사항

1) 현장대원이 사용하는 장치에 대해 사용성, 안전성, 기술 완벽성 등 엄격하게 고려

2) 한정된 예산에 대한 우선순위 고려

 

 

 

1.서론

등장배경 -데이터 중요성이 강조되는 클라우드 서비스, 빅데이터, 인공지능 등의 기술에 대해 전통적인 정보보호 기술로는 정보보호활용이라는 양립되는 문제를 해결하기가 어렵다.

-암호화된 데이터베이스 효율적인 접근에 대한 암호기술로 순서보존암호가 부각되고 있다.
개념


평문의 순서를 암호화 이후에도 순서를 보존하므로 기밀성을 유지하면서 효율적인 검색을 가능하게 하는 암호화 알고리즘
데이터베이스 검색 가능 암호 알고리즘 연구분야 1.순서 보존 암호
2.대칭키 기반 검색 가능한 암호
3.공개키 기반 검색 가능한 암호
4.순서 노출 암호
순서 보존 암호 두각 순서보존암호는 다른 기술과 비교했을 때 적당한 안정성과 높은 효율성을 제공하는 기술로 실용화에 가장 가까운 기술이다.

 

2.순서 보존 암호 기술 연구 동향

모델 발표년도, 발표자 설명
0.순서 보존 암호의 개념 등장 2004년 Agrawa -평문의 크기 순서가 암호화된 이후에도 유지되는 순서 보존 암호의 개념 등장
1.IND-OCPA(indistinguishability under ordered chosen-ciphertext attack) 안전성 모델 2009년 Boldyreva

-(1)구분불가능성(indistinguishability: IND)의 개념 사용
- IND-OCPA는 공격자가 선택한 두 개의 평문 나열 중 하나의 암호문 나열을 보고 어느 쪽의 평문 나열이 암호화된 것인지 구분할 수 없다는 IND-CPA 정의에서 변형
-(정의) 두 평문 나열의 크기 순서가 같을 때 주어진 순서 보존 암호문 나열을 보고 구분할 수 없다


-암호문의 크기가 평문 개수의 지수적으로 커질 수밖에 없음을 증명
-(2)순서보존 유사 난수 함수를 암호화로 하는 방식 제시 , (취약점) 평문의 절반 정보가 노출
2013년 Popa -(3) 불가능성을 우회한 방식은 한번 암호화하면 암호문이 변하지 않는 것이 아닌 필요에 따라 암호문을 변경하는 것이다

-복호화를 위한 데이터 암호문이 변경되는 것은 아니며 순서 정보를 나타내 는 인코딩값이 암호문에 추가되며 필요 시 인코딩값만 변경된다

-IND-OCPA를 만족 하는 가변(mutable) 순서 보존 암호가 제시된 이후로 효율적이면서 안전성이 더 높은 가변 순서 보존 암호

2.IND-FAOCPA(indistinguishability under frequency analyzing ordered chosen-ciphertext attack) 안전성 모델 2015년 Kerschbaum -초기의 순서 보존 암호는 결정적 암호화 방식이거나 동일한 평문의 개수가 노출되는 방식이었다. 동일한 암호문의 빈도수를 이용한 공격에 취약할 수 있다

-(4) 평문의 빈도수를 숨기기 위한 순서 보존 암호 기법 제시

-평문의 중복이 허용된 두 평문 나열이 최소 하나의 동일한 순서를 가지면 주어진 순서 보존 암호문을 보고도 두 평문 나열 중 어떤 평문 나열이 암호화된 것인지 구분할 수 없다

 

3.가변 순서 보존 암호

-현재 발표된 대부분의 가변 순서 보존 암호문 비가변 데이터 암호문과 평문의 크기 순서 를 유지하는 가변 인코딩으로 구성된다.


-주로 OPE 응용 환경 인 데이터베이스 서버 암호문을 삽입하고 범위 질의를 보내는 모델을 고려하여 기법이 설계되는데 스테이트 정보의 저장 위치에 따라 서버-스테이트, 클라이언트-스테이트 기법으 로 구분하기도 한다.


* 가변 순서 보존 암호에서 추가 암호문 삽입 시 필요한 경우 이미 다른 암호문에 부여된 인코딩을 업데이트해야 한다. 인코딩 업데이트를 리코딩 (re-encoding)이라 하며 이때 필요한 정보를 스테이트(state)라 한다.

기법 설명
서버-스테이트 기법
- Popa 등의 기법은 이진 탐색 트리가 인코딩을 위한 스테이트이고 이를 서버에서 관리한다. 서버는 이진 탐색 트리에 저장된 암호문의 순서만 알 뿐 다른 정보를 알 수 없으므로 해당 기법은 IND-OCPA 안전성을 만족할 수 있다. 

-(특징) 클라이언트가 새로운 암호문 삽입 또는 범위 질의를 하기 위해서는 루트노드부터 말단 노드까지 특정 평문의 위치를 찾을 때까지 서버에게 노드의 암호문을 받아 복호화해서 비교하고 그 결과를 서버에게 알려 주는 추가적인 인터렉션이 필요

-(취약점) 평문의 빈도수가 노출되는 기법으로 뒤에서 설명할 추론 공격
클라이언트-스테이트 기법

-2015년에는 평문의 빈도수를 이용한 추론 공격으로부터 안전하도록 평문 빈도수를 숨기 는 기법이 제안

- 데이터 암호문이 아닌 평문을 이진 탐색 트리에 저장하며 스테이 트인 이진 탐색 트리를 클라이언트가 관리하는 클라이언트-스테이트 기법

-빈도수를 노출하지 않기 위해서 데이터 암호문은 확률적(probabilistic) 암호문을 이용하여 암호화하 며, 트리 탐색 과정 중 중복되는 값을 만나게 되면 무작위 코인을 이용하여 경로를 결정

-(인코딩방식) 클라이언트가 새로 암호화할 평문이 저장된 트리의 위치를 탐색하고 저장했 을 때 크기순으로 양옆의 값의 중간 값으로 인코딩한다.
서버-클라이언트-스테이트 기법


- 질의문 처리 단계에서 인터렉션을 통한 정렬을 수행하기 때문에 질의 문 처리가 느린 단점을 보완

- 2021년에는 (1)인터렉션이 없으면서 (2)클라이언트 저장량을 줄이기 위해 스테이트를 서버와 클라이언트가 나눠서 갖도록 설계된 평문 빈도수 감춤 기법이 발표

-(특징) 동일한 평문이 많이 나타나는 데이터를 암호화할 때 매우 효율적으로 클라 이언트 저장량이 줄어들지만 반대의 경우에는 큰 효과가 없는 것이 기법의 특징

-동일한 평문도 확률적 암호 알고리즘으로 암호화되기 때문에 데이터 암호문이 다르며 저장되는 순 서위치도 달라서 다른 인코딩 값을 가지므로 빈도수 숨김을 제공

 

4.순서 보존 암호 공격

- 순서 보존 암호화가 적용된 데이터베이스를 공격하는 방법에는 크게 추론 공격(inference attack)볼륨(volume attack) 공격이 있다. 

 

 

추론 공격(inference attack)

- (정의) 공공기관이 공개하는 통계치와 같이 공개된 데이터를 보조(auxiliary) 데이터 로 사용하여 순서 보존 암호문의 평문을 추론 분석하는 공격

-추론 공격은 보조 데이터와 암호화된 데이터의 분포가 유사할수록 공격의 정확도가 높아지며, 매우 유사한 경우 단순한 정렬 공격조차 높은 정확도를 가질 수 있다.

추론공격 알고리즘 공격 방법 공통점 차이점
결정적인 순서 보존 암호 알고리즘

- 빈도수 이용
축적(cumulative) 공격

1.그래프의 가중치를 정의하는 방법
2.이분 그래프의 순서 교차(crossing) 허용 여부
비교차(Non-crossing) 공격
확률적 암호 알고리즘

- 빈도수를 알지 못할때
이항분포(binomial distribution) 공격 -특정 평문의 보조 데이터로부터 계산되는 이항 확률값 을 통해 해당 평문 암호문이 처음 나타나는 위치와 해당 평문 암호문의 개수 기댓값을 계산하여 순서 보존 암호문들 사이에서 해당 평문의 암호문이 어느 위치에 있는지 추론하는 방법


 

 

5.결론

- 순서보존암호는 검색 가능한 암호화 기술 중에서 효율성과 안전성을 고려할 때 실용화에 가장 가까운 기술이지만

- 몇가지 고려사항 요구 된다.

 

고려사항

1.중복이 발생하지 않는 데이터는 '빈도수 감춤 기능'을 사용하지 않아도 된다.

2.중복이 많이 발생하는 데이터는 '빈도수 감춤 기능'을 제공하는 최적을 알고리즘을 선택한다.

3.데이터의 크기, 순서도 보존해야하는 경우에는 사용하면 안된다.

4.데이터 셋이 공개되어 있는 데이터 셋과 유사한 분포를 가지고 있는 경우, '빈도수 감춤 기능'을 사용하지 않을 경우 추론공격에 매우 위험 할 수 있다.

[TOPCIT목차]

 

1. 정보보호 관리체계

) 정보보호 관리체게 (ISMS) 개요

  1) 정보보호 관리체계의 개념

    - 정보자산의 기밀성, 무결성, 가용성을 유지하기 위해 정보보호 대책의 관리하고, 위험을 기반으로한 정보보호 구축, 구현, 운영, 모니터링 및 검토, 개선등을 지속적으로 관리/운영하는 체계

정보보호 관리체계의 구성

나) 위험관리 (Risk management)

  - 각 자산별 법적, 관리적, 물리적, 기술적 관점의 위험을 식별하고, 보호대책을 마련하는 일련의 과정

위험관리

  1) 위험식별

    - 정보자산별 가치를 산정하고 각 자산이 가지는 위험을 식별

  2) 위험평가

    - 업무, 조직, 위치, 자신 및 기술적 특성에 따라 정보보호관리체계 범위에 근거한 위험분석 범위 선정

    - 기준선접근법, 상세위험 접근법, 복합적 접근법

  3) 위험평가 방법

- 계량화 여부에 따른 위험평가 방법

구분 정량적 기법 정성적 기법
특징 - 손실크기를 화폐단위로 측정
- 과거자료 접근법, 수학공식 접근법, 확률분포 추정법
- 손실크기를 구간 또는 변수로 표현
- 경험기반 방법, 델파이법, 시나리오법, 순위결정법
장점 비용-효과 분석 및 예산 계획 용이 분석의 소요시간이 짧음
단점 - 정확한 수치 구하기 어려움
- 수리계산에 많은 시간 필요
- 주관적 판단
- 비용-효과 분속이 어려움

- 접근방법에 따른 위험평가 방법

구분 내용
기준선 접근법 - 모든 시스템에 대한 정보보호 기본수준 선정 및 보호대책 수립
- 적은 시간과 비용 소요, 모든 조직에서 기본적으로 필요한 보호대책 선택가능
- 조직의 특성을 고려하지 않으므로 부서별 적정 보안수준과 차이 발생
전문가 판단법 - 전문가의 지식과 경험에 따른 위험 분석
- 작은 조직에서 비용 효과적
- 위험의 객관적 평가 어려움
상세위험 접근법 - 자산의 가치 측정, 자산에 대한 위협의 정도와 취약성 분석 후 위험의 정도를 결정
- 조직 내에 적절한 보호대책 수립 가능
- 전문적인 지식, 시간 및 노력 필요
복합적 접근법 - 주요 시스템 또는 위험도가 높은 시스템을 식별하여 "상세위험 접근법" 적용, 이외의 시스템은 "기준선 접근법"등을 적용
- 효율적인 시간과 노력 활용
- 명확한 적용대상 구분이 필요

 

다) 정보보호 및 개인정보보호 관리체계 (ISMS-P)

  1) ISMS-P의 개요

    - ISMS와 IPMS를 단일 제도에서 체계적으로 보호할 수 있도록 인증제도를 통합

ISMS-P의 개요

  2) ISMS-P의 구성

ISMS-P의 구성

2. 개인정보보호

) 개인정보보호 수칙

개인정보 보호 수칙 설명
개인정보 수집 시 동의
획득 방안 반영
- 개인정보 수집 동의는 이용자의 개인정보 입력 전 단계에서 동의 사항을 공지해야 하며 동의 여부를 선택 가능하도록 구현해야 한다.
- 정보수집 동의시에는 a. 개인정보 수집-이용 목적. b. 수집하는 개인정보의 항목. c. 개인정보의 보유-이용기간. d. 동의 거부시 불이익을 모두 이용자에게 알리고 동의를 받아야 한다.
개인정보 파기 방안 반영 - 수집한 개인정보의 보유기간이 경과하거나 이용목적이 달성된 경우에는 지체없이 개인정보를 재생 불가능한 형태로 파기해야 하며, 다른 법령상 근거에 따라 계속 보유하여야 할 경우에도 반드시 현재 이용중인 개인정보와 별도로 분리하여 보관하여야 한다. 
- 분리 보관 방법은 별도의 DB를 생성하여 저장하거나 물리적으로 다른 서버에 저장하는 방법이 있다. 별도로 보관하는 개인정보 DB의 경우 일반 개인정보 DB의 접근권한과 다르게 설정하여 불필요한 접근, 조회, 유출을 방지할 필요가 있다. 
개인정보처리시스템에 
대한 접근통제
개인정보처리자는 개인정보처리시스템에 대한 불법적인 접근 및 침해사고 방지를 위해 접속 권한을 제한하여 인가받지 않은 접근을 제한하고 접속한 IP 주소 등을 분석하여 불법적인 개인 정보 유출 시도를 탐지해야 한다. 접근 통제 방법으로는 ACL(Access Control List),  방화벽, 무료 침입탐지시스템(Snort) 등이 있다. 
개인정보 저장 및 전송 시 암호화 적용
  • 개인정보를 개인정보처리시스템에 저장하거나 네트워크를 통해 전송할 때에는 불법적인 노출 또는 위, 변조 방지를 위해 암호화
  • 비밀번호는 복호화되지 않도록 일방향 암호화하여 저장
  • 비밀번호 분실시 복호화가 불가능하므로 임의의 비밀번호 제공 또는 재설정을 할 수 있는 기능을 포함하여 개발
  • 주민등록번호, 여권번호, 운전면허번호, 외국인등록번호 등 고유식별번호 및 지문, 홍채, 음성, 필적 등 바이오 정보는 안전한 암호알고리즘으로 암호화하여 저장
  • 개인정보를 전송하는 전송구간에서는 SSL/TLS등의 암호화 방식을 적용
접속 기록, 권한변경에
대한 로깅 및 저장관리
- 개인정보처리자는 개인정보시스템의 접속 기록을 최소 6개월 이상 보관 및 관리하여야 한다. 접속기록은 개인정보의 입,출력 및 수정 데이터 접근 내역 등을 기록하는 로그 파일을 생성하여 불법적인 접근을 확인할 수 있는 자료이다. 

 

3. 정보보호 표준 및 관련 체계

가) ISO 27001:2013

  - 기존 품질경영인증(ISO9001), 환경경영인증(ISO 14001) 등을 정보보안 부문의 인증인 ISO/IEC 27001, 27002(ISMS2.0)와 함께 인증 받을 수 있는 정보보호관리체계 및 인증제도 국제 표준 규격

  - 부속서에 체크리스트는 기존 12개 분야 133개 통제 항목에서 14개 분야 114개 항목으로 변경

  - ISO/IEC 27001:2013 2.0

통제분야 통제항목수
정보보안 정책 2
정보보안 조직 7
자산관리 10
인적관리 보안 6
물리적 및 환경적 보안 15
통신 보안 7
접근통제 14
정보시스템 취득, 개발 및 유지보수 13
정보보안 사고 관리 7
업무 연속성 관리 4
준수 8
공급자 관계 5
암호통제 2
운영 보안 14
합계 114

 

나) OWASP TOP 10 (Open Web Application Security Project)

  - 웹어플리케이션의 공격 가능성, 탐지 가능성 및 영향도를 합의추정하여 10가지 취약점에 대해 대응방안을 제공하는 웹 보안 기술 가이드

OWASP TOP 10 2017

다) CWE(Common Weakness Enumeration)

  - CWE는 미국 국토보안부(U.S Depertment of Homeland Security) 내 국가사이버보안국(National Cyber Security Division)의 지원으로 미국방성 산하기관인 MITRE에서 소프트웨어 취약점(weakness) 항목을 뷰, 카테고리, 취약점, 복합요소를 기준으로 분류하여 정리한 분류체계이다.

 

라) CWSS(Common Weakness Scoring System)

  - CWSS는 소프트웨어에서 이키텍쳐, 설계, 코드 또는 구현상에서 존재하는 다양한 취약점들 및 소프트웨어의 보안상 중요 문제가 될 수 있는 취약점들에 대해 상대적인 중요도를 결정하기 위한 점수체계이다.

 

마) CVE(Common Vulnerabilities and Exposures)

  - CWE는 일반적인 취약점의 분류체계라고 한다면 CVE는 시간 경과에 따라 발견된 보안 취약점을 정리한 목록으로 발견된 보안 취약점의 히스토리 기록이라고 볼 수 있으며 'CVE-년도-순번'의 식별체계로 관리된다.

 

바) CVSS(Common Vulnerabilities Scoring System)

  - CVSS는 보안 취약점들을 평가하고 확인할 수 있도록 제공된 오픈 프레임워크로서, 기본 메트릭 그룹, 입시 메트릭 그룹 및 환경 메트릭 그룹 등 3가지 매트릭 그룹으로 구성되어 있다. 3가지 매트릭 그룹에 의해 계산된 결과는 취약점의 종합 점수이며, 취약점의 우선순위가 된다. 

 

사) SANS(SysAdmin, Audit, Networking, and Security) top 25

  - MITRE와 SANS 협회에서 CWE를 기반으로 컴포넌트 사이의 안전하지 않은, 위험한 자원 관리, 적절하지 못한 보안대응의 사용에 관련된 내용 등 3가지 범주에서 소프트웨어 취약점을 야기하는 가장 중요한 프로그래밍 오류들을 목록화한 것이다.

[TOPCIT목차]

 

1. 시큐어 코딩의 정의 및 필요성

) 시큐어 코딩 정의

  • 소프트웨어 개발 단계(SDLC, Software Development Life Cycle)에서 보안 약점을 제거함으로써 소프트웨어의 취약점과 해킹의 위험성을 줄여주는 방어적 프로그래밍 기법

) 시큐어 코딩의 필요성

  • 사이버 공격의 약 75%가 SW 자체의 보안 취약점을 악용하는 공격으로 분석됨
  • 개발단계에서 수정하는 비용이 제품 출시 이후 수정하는 비용보다 수십 배의 비용을 절감할 수 있는 것으로 분석됨
  • 사이버 공격을 예방 및 대응하기 위해서는 제품 출시 이전 단계인 SW 개발단계에서 보안 취약점을 제거하는 것이 효과적인 방법으로 부각

 

2. 시큐어 코딩 주요내용

) SW 보안약점과 보안 취약점

보안약점 (Weakness) - 소프트웨어의 결함, 오류, 버그 등 설계, 구현 단계에서 발생하는 에러로 소프트웨어의 취약점으로 이어실 수 있는 원인
- CVVE(Common Weakness Enumeration)
보안취약점(Vulnerability) - 해커가 시스템이나 네트워크에 접근하여 사용할 수 있는 소프트웨어의 실수로, 접근 가능한 보안약점을 악용하여 Exploit 될 수 있는 것
- CVE(Common Vulnerabilities and Exposures)

 

) 시큐어 개발 생명주기(Secure SDLC)

  • 시큐어 코딩 개발 생명주기

  • 시큐어 코딩 생명주기 설명
단계 설명
요구사항 정의 단계 - 프로젝트 및 SW 특성에 따른 보안 목표를 정의하고, 잠재적 위협에 따른 보안 취약점 및 영향도를 분석하는 단계
- SW 개발을 위한 보안 요구사항을 도출
분석/설계 단계 - 전체 아키텍처 설계과정에서 보안 아키텍처를 설계하고 보안 요구사항을 정의하는 단계
- 안전한 보안 시스템 구축을 위한 개발자 교육 실시 및 보안 테스트 계획을 설계
코딩 단계 - 보안 관점에서 사용 프로그래밍 언어의 약점과 강점을 파악하여 코딩 규칙을 정의하고 개발된 코드에 대한 정적 단위 테스트 실시 및 사전 정의한 시큐어 코딩 규칙의 준수 여부를 검증
- 상용 패키지를 이용하는 경우 해당 패키지에서 발견된 보안 취약점 내용 및 조치 내용을 점검
테스팅 단계 - 개발된 프로그램에 대한 동적 단위 테스트를 실시하고, 보안 적용된 응용 프로그램의 사용성 테스트를 수행
- 인프라 및 응용 프로그램에 대해 시스템의 독립적인 취약성을 점검 수행하여 보안 개선사항율 도출하여 적용
유지보수 단계 - SW 변경관리 절차에 따라 변경 시 보안 영향도 평가를 수행
- 주기적인 취약성 점검 수행 및 보안 개선사항을 도출하여 적용

 

3. 시큐어 코딩 주요기법

) JAVA 시큐어 코딩 주요기법

1) SOL 삽입 공격 대응을 위한 시큐어 코딩 기법

  • SQL 삽입 보안 취약점

  • SQL 삽입 공격 대응
구분 설명
공격개요 - 데이터베이스(DB)와 연동된 웹 응용프로그램에서 입력된 데이터에 대한 유효성 검증을 하지 않을 경우
- 공격자가 입력폼 및 URL 입력란에 SOL 문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 보안약점
코딩기법 - PreparedStatement 객체 등을 이용하여 DB에 컴파일 된 쿼리문(상수)을 전달하는 방법
- PreparedStatement를 사용하는 경우에는 DB 쿼리에 사용되는 외부 입력값에 대하여 특수문자 및 쿼리 예약어를 필터링
- 스트러츠(Struts), 스프링(Spring) 등과 같은 프레임워크를 사용하는 경우에는 외부 입력값 검증모듈 및 보안모듈을 상황에 맞추어 적절하게 시용

 

2) 크로스사이트 스크립팅(XSS) 공격 대응을 위한 시큐어 코딩 기법

  • 크로스사이트 스크립팅(XSS) 보안 취약점

  • 크로스사이트 스크립팅(XSS) 공격 대응
구분 설명
공격개요 - 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도
- 검증되지 않은 외부 입력이 동적 웹페이지 생성에 사용될 경우, 전송된 동적 웹페이지를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되어 정보유출 등의 공격을 유발
코딩기법 - 외부 입력값에 스크립트가 삽입되지 못하도록 문자변환 함수 또는 메소드를 사용하여 〈〉 & “등을 < > & " 로 치환
- HTML 태그를 허용하는 게시판에서는 허용되는 HTML 태그들을 화이트리스트로 만들어 해당 태그만 지원

 

3) 운영체제 명령어 삽입 공격 대응을 위한 시큐어 코딩 기법

  • 운영체제 명령어 삽입 보안 취약점

  • 운영체제 명령어 삽입 공격 대응
구분 설명
공격개요 - 적절한 검증절차를 거치지 않은 사용자 입력값이 운영체제 명령어의 일부 또는 전부로 구성되어 실행되는 경우
- 의도하지 않은 시스템 명령어가 실행되어 부적절하게 권한이 변경되거나 시스템 동작 및 운영에 악영향
코딩기법 - 웹 인터페이스를 통해 서버 내부로 시스템 명령어를 전달시키지 않도록 응용프로그램을 구성
- 외부에서 전달되는 값을 검증 없이 시스템 내부 명령어로 사용하지 않을것
- 외부 입력에 따라 명령어를 생성하거나 선택이 필요한 경우에는 명령어 생성에 필요한 값들을 미리 지정해 놓고 외부 입력에 따러 선택하여 사용

 

4) 위험한 형식의 파일 업로드 공격 대응을 위한 시큐어 코딩 기법

  • 위험한 파일의 파일 업로드 보안 취약점

  • 위험한 형식의 파일 업로드 공격 대응
구분 설명
공격개요 - 서버 측에서 실행될 수 있는 스크립트 파일(asp, jsp, php 파일 등)이 업로드 가능하고 파일을 공격자가 웹을 통해 직접 실행시길 수 있는 경우
- 시스템 내부명령어를 실행하거나 외부와 연결하여 시스템을 제어할 수 있는 보안약점
코딩기법 - 화이트 리스트 방식으로 허용된 확장자만 업로드를 허용
- 파일 실행여부를 설정할 수 있는 경우 실행 속성을 제거

 

) C 시큐어 코딩 주요기법

1) 메모리 버퍼 오버플로우 공격 대응을 위한 시큐어 코딩 기법

구분 설명
공격개요 - 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에 자료를 읽거나 쓰려고 할 때 발생
- 프로그램의 오동작을 유발시키거나, 악의적인 코드를 실행시킴으로써 공격자 프로그램을 통제할 수 있는 권한을 획득
코딩기법 - 프로그램상에서 메모리 버퍼를 사용할 경우 적절한 버퍼의 크기를 설정하고, 설정된 범위의 메모리 내에서 올바르게 읽거나 쓸 수 있게 통제
- 문자열 저장 시 널(NULL) 문자로 종료하지 않으면 의도하지 않은 결과를 가져오게 되므로 널 문자를 버퍼 범위 내에 삽입하여 널 문자로 종료

 

2) 포멧 스트링 삽입 공격 대응을 위한 시큐어 코딩 기법

구분 설명
공격개요 - 외부로부터 입력된 값을 검증하지 않고 입·출력 함수의 포맷 문자열로 그대로 사용하는 경우 발생할 수 있는 보안약점
- 공격자는 포맷 문자열을 이용하여 취약한 프로세스를 공격하거나 메모리 내용을 읽거나 쓸 수 있음
- 공격자는 취약한 프로세스의 권한을 취득하여 임의의 코드를 실행 가능
코딩기법 - printf( ), snprintf( ) 등 포맷 문자열을 사용하는 함수를 사용할 때는 사용자 입력값을 직접적으로 포맷 문자열로 사용하거나 포맷 문자열 생성에 포함시키지 말것
- 포맷문자열을 사용하는 함수에 사용자 입력값을 사용할 때는 사용자가 포맷 스트링을 변경할 수 있는 구조로 쓰지 말 것

 

) Android-JAVA 시큐어 코딩 주요기법

1) 외부에서 접근이 가능한 컴포넌트 공격 대응을 위한 시큐어 코딩 기법

구분 설명
공격개요 - 안드로이드 애플리케이션에서 manitest.xml 파일에 android:exported="true로 설정되어 있는 컴포넌트는 외부에서 해당 컴포넌트에 인텐트를 전달하여 활성화 가능
- 해당 컴포넌트가 원래 의도하지 않았던 상황에서 수행을 시작함으로써 시스템 보안에 침해 유발
코딩기법 - 컴포넌트에 대한 접근권한을 외부에 제공하지 않는 것이 바람직

 

2) 공유 아이디에 의한 접근통제 통과 공격 대응을 위한 시큐어 코딩 기법

구분 설명
공격개요 - Manifest.xml 파일의 manifest 태그에 android:sharedUserld 속성을 설정할 경우 같은 아이디와 서명을 사용함으로써 다른 응용프로그램이 해당 프로그램의 정보에 접근 가능
- 의도적 비의도적으로 해당 프로그램의 무결성과 보안성이 침해 가능
코딩기법 - 공유 아이디 설정을 하지 않는 것이 바람직

 

 

01. 네트워크 보안의 개요

가) 네트워크 보안 개념

 

 ①네트워크 보안 개념

  • 네트워크 보안은 물리적인 또는 SW 방어 도구를 이용해 기반 네트워크 인프라에 승인되지 않은 접근이나 오용, 오동작, 수정, 파괴, 부적절한 노출 등으로 부터 보호하는 플랫폼
  • 네트워크 보안의 구성요소 3가지 : 보호, 탐지, 대응

 ② 보안 공격의 유형

  • 소극적 공격 : 메시내 내용 도청, 분석, 감시

  • 적극적 공격 : 메시지의 트래픽을 가로채 다른 형태의 정보로 변조하거나 획득하는 행위(재전송, 메시지 수정, 서비스 거부)

 ③ 네트워크 보안 모델

  • 인터넷에서 메시지 전송시 통신주체(Principals)의 양쪽은 상호 교환을 위한 협조가 필요
  • 송신자에서 수신자까지 통과하는 인터넷의 경로를 정의
  • 각 통신주체는 통신 프로토콜( TCP/IP ) 을 사용하기로 협의, 논리적 정보 채널을 구성
  • 안전한 전송을 위해 보안관련 변환을 수행하는 알고리즘 설계
  • 변환 알고리즘에 사용될 비밀 정보 생성
  • 비밀 정보를 배분하고 공유하기 위한 방법의 개발
  • 특정 보안 서비스를 위한 보안 알고리즘과 비밀 정보를 사용할 두 통신 주체가 사용할 프로토콜의 지정

 

 ④ 네트워크 접근 보안 모델

  • 공격자의 정보시스템 침입에 대비하여 접근제어, 문지기(Gate Keeper) 기능으로 인가된 사용자 이외의 정보 시스템 접ㅂ근을 거부 하는 모델
  • 접근 이후에 내부 보안통제(Internal Security Control) 기능
  • 상시로 시스템의 활동 상황을 감시하고, 침입자의 존재를 탐지하는 침입탐지 시스템(IDS)

 

나) 통신 프로토콜 계층과 보안

 ① OSI 계층 참조 모형과 TCP/IP 프로토콜 계층 구조

  • 개방형 시스템의 상호접속을 위한 참조모델이며, 이 기종 시스템 간 연결 및 정보교환을 위한 ISO 네트워크 통신 표준화 규격

계층  설명  프로토콜
 Application
  • 사용자, 즉 단말기를 조작하는 사람이나 데이터 통신 서비스를 수행하는 프로그램 등에 여러 서비스를 제공하는 역할 
 HTTP, SMTP, SNMP, FTP, Telent, SSH&SCP, NFS, RTSP, NTP
 Presentation
  • 전송형식에 관한 책임 
 JPEG, MPEG, XDR, SMB, AFP
 Session
  • 두 프로세스 사이에 데이터가 흐를 수 있는 가상경로의 확립이나, 해제를 수행 
 TLS, SSH, RPC, NetBIOS, AppleTalk
 Transport
  • 데이터를 확실히 상대방에게 도착시키는 역할 및 데이터 전송의 신뢰성을 높임 
TCP, UDP, RTP, SCTP, SPX 
 Network
  • 단말 간의 시스템끼리 데이터를 전송하기 위한 최선의 통신경로 선택을 제공 
 IP, ICMP, IGMP, X.25, CLNP, ARP, RARP, BGP, OSPF RIP, IPX, DDP
 Data Link
  • 상대방과 물리적인 통신을 위한 통신로 확립
  • 데이터가 통신로를 통과하는 동안에 오류를 검사 
 PPP, HDLC, Ethernet, TokenRing, ISDN, FDDI
 Physical
  • 통신회선으로 데이터를 나타내는 '0'과 '1'비트의 정보를 회선에 내보내기 위한 전기적 변환이나 기계적 작업 담당 
 RS-232C, 광섬유, 동축케이블
  • 네트워크를 상호 연결시켜 정보를 전송할 수 있도록 하는 기능을 가진 다수의 프로토콜이 모여 있는 프로토콜 집합
  • 인터넷에서 컴퓨터들이 서로 정보를 주고 받는 데 쓰이는 통신규약(프로토콜) 모음
  • 인터넷 프로토콜 스위트 중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP 프로토콜 스위트라고도 불리움

 

 ② 계층별 보안 기능

  • 응용 계층 관련 보안 프로토콜 : 전자우편에 보안 기능을 제공하는 PGP, S/MME, 인증 기능을 제공하는 Kerberos, 안전한 원격 접속을 지원하는 SSH(Secure Shell) 등과 보안 프로토콜
  • 전송 계층 관련 보안 프로토콜 : SSL(Secure Socket Layer)/TLS(Transport Layer Security)는 전송 계층의 상위에서 동작하는 개념의 프로토콜로 응용 계층에게 안전한 전송 계층 서비스 제공, TLS는 SSL에 대한 IETF(Internet Engineering Task Force)  표준이며, 종단 간 보안과 데이터 무결성 제공
  • 인터넷 계층 관련 보안 프로토콜 : IPSec(IP Security)은 인터넷 계층의 상위에서 동작하는 개념의 프로토콜로 인터넷 계층에게 인증과 암호화 등과 같은 보안성 제공, VPN 서비스 구현에 이용되는 프로토콜

 

다) 네트워크 공격의 유형과 대응

 ① DoS(Denial of Service) 공격

  • 공격자가 최초에 다수의 Zombie PC를 확보한 상태에서 IRC 서버 같은 제어서버를 활용하여 일시에 특정 공격 대상서버로 공격명령을 내려서 서비스를 방해하는 형태의 공격
  • 공격 대상 시스템(Target)이 정상적인 서비스를 할 수 없도록 만들어서, 시스템의 가용성(Availability)을 떨어트리는 것을 목적으로 하는 공격
  • 프로세스 처리 능력 및 시스템 자원을 고갈시켜 정상적인 서비스를 불가능하게 만드는 네트워크 기반 공격
유형 설명
TCP SYN Flooding Attack  - TCP 프로토콜 취약점 이용, 3 way 핸드쉐이킹 이용 공격
SMURF Attack  - ICMP 패킷과 네트워크에 존재하는 임의의 시스템들을 이용하여 패킷을 확장시켜 서비스 거부 공격을 수행
Ping of Death  - Ping of Death는 ping을 이용하여 ICMP 패킷을 정상크기(65,535 bytes)보다 아주 크게 만들어 전송하는 공격 행위
Land Attack  - 출발지 IP 주소와 목적지 IP 주소 값을 동일하게 설정하여 Looping 공격 수행
Teardrop Attack  - 오프셋 값을 단편화 간에 중복되도록 고의적으로 수정하거나 더 큰 값을 더해 그 범위를 넘어서는 오버플로우를 일으켜 시스템의 기능을 마비시키는 공격

 

 ② 스니핑(Sniffing) 공격

  • 컴퓨터 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 도청 행위 (소극적 공격)
공격기법 설명 특징
미러링 포트 - NW 장애 발생시 문제를 파악하기 위한 미러링 포트를 공격에 이용.
- 미러링 포트는 스위치에 존재하는 모든 포트에서 이동하는 데이터를 복제하여 보내주는 기능을 수행   
네트워크 관리의 취약점을 이용한 공격
Switch Jamming - 네트워크 스위치 들의 주소 테이블리 가득차게 되면 모든 포트로 트래픽을 브로드 캐스팅하는 취약점을 이용
- 위조된 MAC 주소를 지속적으로 네트워크에 흘려 스위칭 허브의 주소 테이블을 오버플로우 시켜 다른 네트워크 세그먼트의 데이터를 스니핑 함.
스위칭 허브가 더미 허브처럼 동작하므로 통신속도가 느려짐 
ARP Redirect 공격 - ARP(Address Resolution Protocol) 취약점을 이용하여 스니핑. 
- 공격자는 자신이 라우터인 것처럼 위조된 ARP Reply 패킷을 주기적으로 브로드 캐스팅하여 네트워크 상의 모든 호스트들이 공격자를 라우터라고 믿도록 속임 
- 결국, 네트워크의 모든 트래픽은 공격자를 통해 외부와 연결되므로 스니핑이 가능해짐 
공격자는 반드시 IP forwarding을 이용하여 모든 트래픽을 게이트웨이로 포워딩 해 주어야만 함
ARP Spoofing - ARP Redirect 와 마찬가지로 ARP Protocol 의 취약점을 이용한 공격.
- 공격자는 자신의 MAC 주소를 타겟 호스트의 MAC 주소로 위장하는 ARP 패킷을 네트워크에 브로드 캐스팅함 
- 결국 호스트의 트래픽을 공격자가 받게되어 스니핑이 가능해 짐
ARP Redirect 와 마찬가지로 공격자는 타겟 호스트의 패킷을 타켓 호스트로 릴레이 해주어야 함 
ICMP Redirect - ICMP(Internet Control Message Protocol) Redirect 메시지 : 네트워크에
라우터가 복수 개일 때 호스트의 라우팅 경로를 수정하여 패킷을 최적의 경로로 보내도록 알려주는 역할을 수행  
- 공격자는 타켓 호스트에 자신이 라우터이고 최적의 경로라고 수정된 ICMP Redirect 메시지를 보내어 스니핑
패킷 포워딩 필수

 

 ③ 스푸핑(Spoofing) 공격

  • 다른사람의 컴퓨터 시스템에 접근할 목적으로 IP주소를 변조한 후 합법적인 사용자인 것처럼 위장하여 시스템에 접근함으로써 나중에 IP주소에 대한 추적을 피하는 해킹 기법
유형 설명
ARP 스푸핑  - LAN 카드의 고유한 주소인 MAC address를 통일 네트워크에 존재하는 다른 PC의 LAN 카드 주소로 위장, 다른 PC에 전달되어야 하는 정보를 가로채는 MITM 공격 방식
IP 스푸핑  - 공격자가 악용하고자 하는 호스트의 IP 주소로 변경하여 해킹하는 기법
 - 다른 사용자가 이용하는 IP 주소를 탈취하여 로그인 등과 같은 권한을 획득하는 공격
DNS 스푸핑  - DNS 주소를 변환하여 공격자가 의도한 공격자의 IP로 목적지를 변경되도록 하는 공격 기법

 

02. 보안 프로토콜과 보안 솔루션

가) IPSec

 ① 개념

  • 종단 노드 구간 또는 보안/터널 게이트웨이 구간에서 보안이 취약한 IP계층(3계층)의 무결성과 인증을 보장하는 IP 보안 프로토콜
  • 네트워크 계층에서 패킷 단위로 암호화, 인증 등을 수행하는 보안 프로토콜
  • AH, ESP 보안 프로토콜을 통해 기밀성 및 무결성 보장, IKE 기반 Security Association을 통해 키교환 및 연결설정

 

 ② 구성과 동작

  • TCP/IP 프로토콜의 IP계층에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 ESP를 이용한 IP보안 프로토콜

  • 구성
 구분 구성요소 설명
 프로토콜  AH
(Authentication Header)
  • 메시지 checksum(ICV, Integrity Check Value)을 활용한 데이터 인증과 비연결형 무결성을 보장해주는 프로토콜
  • 재생방지(anti-replay) 서비스를 제공, 기밀성은 제공해주지 않음 
ESP
(Encapsulation Security Payload) 
  • 암호화 알고리즘을 활용한 캡슐화 기반 페이로드 기밀성 제공하는 프로토콜, 프라이버시 제공 
키 관리  IKE
(Internet Key Exchange) 
  • inbound와 outbound 보안 연관을 생성하기 위해 설계된 프로토콜
  • IPSec을 위한 SA(Security Association 생성
  • Key를 주고 받는 알고리즘, 공개된 네트워크를 통해 IKE 교환을 위한 메시지를 전달하는 프로토콜 
 정책  SPD
(Security Policy Database)
  • 패킷에 대한 보안정책(Security Policy) 데이터베이스
  • 모든 트래픽 처리 시에 참조 
 SAD
(Security Authentication)
  • SA(Security Association) 관련 파라미터를 저장하는 보안연계 데이터베이스 
  • 동작

(1) 전송모드(Transport Mode)

구분 설명
개념 - 원래의 IP 헤더는 대부분 그대로 이용하고, 나머지 데이터 부분만 보호하는 방법.

- 호스트 to 호스트(종단간)에 주로 사용하고, 상위 계층 프로토콜을 보호하기위해 사용
보호범위  - IP 패킷의 페이로드(Payload)를 보호하는 모드, 즉 IP의 상위 프로토콜 데이터를 보호하는 모드
- IP 패킷의 페이로드만 IPSec으로 캡슐화하고, IP 헤더는 그대로 유지하므로, 네트워크 상에 패킷 전송 문제가 발생하지 않음. 단, 헤더가 노출되므로 출발지/목적지가 노출 가능
보호구간 - 일반적으로 종단 노드(End Point) 구간의 IP패킷 보호를 위해 사용

 

(2) 터널모드

구분 설명
개념 - IP 패킷 전체를 보호하고, 그 위에 새로운 IP헤더를 추가하는 방식.

- 두 라우터 상호간, 호스트와 라우터, 두 게이트웨이 간에 주로 사용함
보호범위 - IP패킷 전체를 보호하는 모드. IP 패킷 전체를 캡슐화하여 IP헤더를 식별할 수 없기 때문 에 네트워크상 패킷전송이 불가. 따라서, 전송구간 주소정보를 담은 New IP 헤더를 추가.

- 원본 IP헤더를 보호하기 때문에 최초 출발지/최종 목적지에 대한 트래픽정보 기밀성 보 장하나 새로운 IP헤더의 정보는 노출되기 때문에 “제한적 트래픽 흐름의 기밀성”을 보장
보호구간 - 일반적으로 터널/보안 게이트웨이 구간 또는 종단노드와 터널/보안 게이트웨이 구간의 IP 패킷 보호를 위해 사용(장비 to 장비, 장비 to 사용자 등 비교적 큰 규모에서 게이트웨이 장비를 통해 사용)
  • 프로토콜 별 동작방식
프로토콜 동작방식 선택 기준
Authentication
Header
전송모드
(Transport)
- 계층 간 캡슐화를 통해 인증 데이터 생성하여 호스트 간 메시지를 보호
터널모드
(Tunnel)
- 모든 패킷 정보에 대해 인증 데이터 생성하여 호스트 간 전송경로를 보호
Encapsulating
Security Payload
전송모드
(Transport)
- 계층 간 캡슐화를 통해 데이터 암호화 수행으로 호스트 간 메시지를 보호
터널모드
(Tunnel)
- 모든 패킷 정보에 대해 암호화 수행으로 호스트 간 전송경로를 보호

 

나) SSL

 ① 개념

  • 클라이언트와 서버 간 통신하는 데이터를 안전하게 보호하기 위해 사용자 인증 및 비밀키 암호화를 사용하는 보안 프로토콜
  • 클라이언트와 서버 양단 간 응용계층 및 TCP 전송계층 사이에서 안전한 보안 채널을 형성하기 위해 RSA 공개키 알고리즘, X.509 인증서 지원, 443 포트를 사용하는 보안용 프로토콜

 

 ② 구조와 동작

  • 프로토콜의 구조는 핸드쉐이크(HandShake), 암호 명세 변경(Change Cipher Spec), 레코드(Record) 및 경고(Alert) 4개의 프로토콜로 구성

  • 프로토콜의 종류
프로토콜 내용
핸드쉐이크 프로토콜
(SSL Hankshake Protocol)
  • 서버와 클라이언트 간 상호 인증 수행
  • 암호화 MAC 알고리즘, SSL 레코드 내부 데이터 보호를 위한 암호키 협상
  • 비밀정보, 세션정보 공유
암호 사양 변경 프로토콜
(SSL Change Cihper Spec)
  • Handshake 프로토콜에 의해 협상된 압축, MAC, 암호화 방식이 이후부터 적용됨을 상대방에게 알릴 때 사용
  • SSL이 주고 받는 메시지 형식(알고리즘과 키)
경고 프로토콜
(Alert Protocol)
  • 대응 개체에 SSL 관련 경고에 사용
  • Handshake시 상대방의 암호화 방식을 지원할 수 없는 경우, 오류 정보를 상대방에게 전송
레코드 프로토콜
(SSL Record Protocol)
  • 상위계층인 Handshake, Change Cipher Spec. Alert 등의 제어 메시지와 응용 계층 메시지를 수납하는 프로토콜
  • 단편화, 암호화, MAC, 압축
  • SSL 프로토콜 동작 절차
No. 처리과정 설명
1 Client Hello - 지원 가능한 암호방식/키 교환방식/서명방식/압축방식을 서버에게 알림
2 Server Hello - 수용 가능한 암호방식/키 교환방식/서명방식/압축방식을
3 Server Certificate(optional) - 서버 측 RSA 암호용 공개 키가 수납된 공인 인증서 전송
4 Server Key Exchange(optional) - 추가적인 키 값을 수납함 (RSA방식에서 사용하지 않음)
5 Certificate Request(optional) - 클라이언트 인증서를 요구할 때 전송됨
6 Server Hello Done - 서버의 hello 절차가 완료되었음을 알림
7 Client Certificate(optional) - 서버로부터 Certificate Request 메시지에 대한 응답
- RSA 키 교환 방식의 경우 자신의 서명용 공인 인증서가 전송됨
8 Client Key Exchange - RSA 키 교환 방식의 경우 premaster secret이 전송됨
9 Certificate Verify(optional) - 자신의 서명용 개인 키로 서명된 서명 값이 전송됨
- 수신한 서버는 Client Certificate 메시지에 명시된 클라이언트의 서명용 공개키로 확인함
10 (Server) Change Cipher Spec - 지금까지의 협상에 의해 결정된 암호방식/키 교환방식/서명방식/압축방식을 다음부터 적용함을 알림
11 (Server) Finished - 협상과정에서 전송된 모든 메시지에 대하여 암호방식/키 교환 방식/서명방식/압축방식을 적용하여 생성된 검증 값을 수납한 메시지
- 상대방도 동일한 방법으로 생성한 값을 이 검증 값과 비교함으로써 지금까지의 협상절차를 확인함
12 (Client) Change Cipher Spec - 서버와 동일한 절차로 전송됨
13 (Client) Finished - 서버와 동일한 절차로 전송됨
14 Message 전송 - 암호화된 응용계측 메시지의 전송과정 수행됨

 

 

03. 무선랜 보안

가) 무선랜의 특징

  • 공중망 사용으로 데이터 전송 구간이 모든 무선랜 사용자들에게 노출됨
  • 보안에 취약

 

나) 보안 위협과 대응

  • 전파를 이용한 통신으로 물리적 접근제어가 불가능하여 전파 수집 및 교란을 통한 보안 위협 야기

  • 기술적 보안위협 : 전파수집, 불법 접속, 중간자 공격(MITM) 등을 이용한 사용자 주요정보 유출과 전파 교란, 대량의 패킷 전송을 이용한 서비스 거부 공격 -> 무선 AP 보안 설정, 기업 WIPS 도입
  • 관리적 보안위협 : 무선랜 장비 및 단말 관리 미흡, 사용자 보안의식 결여로 인한 침입허용, 전파관리 미흡에 따른 외부자의 내부 AP 접속 -> AP 관리방안 수립, 이용자의 보안 교육, 내/외부 불법 접속 점검 수행
  • 물리적 보안 위협 : 외부에 노출된 무선 AP의 도난 및 파손, 전원 차단, 랜선 분리 등 -> AP의 외부노출 제어, 설정 정보 주기적 변경

 

다) 무선랜 보안 표준

 ① IEEE 802.11i의 서비스

  • 무선 네트워크 취약점 해결을 위해 WPA를 통한 데이터 링크 계층 보안 메커니즘 기반 무선랜 표준
  • Wi-Fi 연합에서 WPA2 프로그램으로 802.11i 규격을 준수하는 업체를 인증

 

 ② IEEE 802.11i의 구성요소

  • 무선 서비스를 제공하기 위해 사용되는 보안 프로토콜과 암호 프로토콜 구조

 

 ③ IEEE 802.11i의 동작

     [1단계 탐색]

  • STA와 AP가 연관을 통해 암호 도구와 인증 메커니즘을 선택
  • 탐색 : Beacon, Probe Request/Response 프레임을 이용하여 STA는 AP와 대응되는 보안 기능 탐색
  • 개방 시스템 인증 : STA와 AP는 ID 교환
  • 연관 : STA는 Association Request 프레임을 이용하여 앞으로 AP와 사용할 보안 기능에 대한 합의

    [2단계 인증] - 접근제어

  •  IEEE 802.11i에 접근 제어 기능을 제공하기 위해 포트 기반 네트워크 제어 방식인 IEEE 802.1x 표준을 사용
  • 구체적인 인증 프로토콜은 IEEE 802.1x 표준에 정의된 확장 인증 프로토콜(EXP, Extensible Authentication Protocol)

    [3단계 키 생성 및 분배]

    [4단계 안전한 데이터 전송]

    [5단계 연결해제]

+ Recent posts