04. 네트워크 보안 기술
01. SSL
1) SSL(Secure Socket Layer)
- 웹 서버와 웹 브라우저에서 전달되는 데이터를 안전하게 송수신할 수 있도록 미국의 넷스케이프사가 개발한 프로토콜
- SSL은 서버와 클라이언트 간의 키 교환 방법을 제공함
- 현재의 웹 서비스에서 SSL을 위해 제공되는 인증 구조는 대부분 인증 기관과 사용자들 간에 스타(Star) 형태
- 넷스케이프, 인터넷 탐색기 등의 웹 브라우저는 SSL 접속을 위해 다수의 인증 기관들에 대한 인증서 정보를 갖고 있음
- SSL의 암호화 표준 방식은 미국의 보안 업체인 RSA사의 방식을 채택하고 있음
- RSA사의 암호화 체계는 40비트와 128비트 키를 사용함
- 우리나라 금융 사이트의 대부분은 40비트 암호화 방법을 사용하기 때문에 보안 기능이 떨어짐
- SSL은 전송 계층인 TCP의 지원 아래에 세션 계층에서 동작함
- SSL은 기밀성, 무결성, 인증은 지원하지만 부인방지는 제공하지 않으며 전자서명 방식으로 제공할 수도 있음
2) SSL의 계층

- SSL Handshake Protocol : 암호 알고리즘의 결정, 키 분배 방법, 서버와 클라이언트의 인증을 수행하기 위한 프로토콜(보안 속성 협상을 담당함)
- Alert Protocol : 수행 중에 발생하는 오류 메시지를 처리하는 프로토콜
- Change Cipher Spec Protocol : 암호화 알고리즘과 보안 정책을 조절하는 프로토콜
- SSL Record Protocol : 하위 계층에 실질적인 서비스를 제공하는 프로토콜로 전달 메시지를 압축하여 TCP 패킷으로 변환하고 암호화 및 무결성을 보장하기 위한 인증을 수행하는 프로토콜(메시지 압축 및 암호화를 담당함)
3) SSL의 동작 순서
- 클라이언트는 SSL로 암호화된 페이지를 요청함
- 서버는 공개키를 인증서와 함께 클라이언트에게 전송함
- 클라이언트는 인증서가 CA로부터 서명된 유효한 것인지 확인함
- 클라이언트는 공개키를 사용해서 랜덤 대칭 암호화 키를 비롯한 URL, HTTP 데이터들을 복호화함
- 서버는 요청 받은 URL에 대한 응답을 클라이언트로부터 받은 랜덤 대칭 암호화 키를 이용하여 암호화한 후 클라이언트에게 전송함
02. IPSec(IP Security)
1) IPSec
- IP 패킷의 보안 프로토콜로 패킷을 제거하거나 삽입을 불가능하게 하는 보안 기술
- 인터넷에서 이용되고 있는 IP 프로토콜은 패킷 교환망에서 단순히 데이터의 신뢰성 있는 전송만을 염두에 두고 개발한 것이기 때문에 IP Spoofing이나 IP Sniffing과 같은 보안 허점이 생겨났는데, 이를 해결하기 위한 방안으로 등장함
- IPSec은 인터넷 프로토콜의 설계 시 문제점인 IP Spoofing(스푸핑), IP Sniffing(스니핑) 등에 대한 취약점 때문에 개발되었다고 볼 수 있음
- IPSec은 IP에 보안 기능을 제공하기 위하여 IETF에 의해 표준화되었고, 인증, 암호화, 무결성, 키 교환 등의 기능을 제공함
- IPSec은 네트워크 계층에서 동작함
- IPSec은 인터넷 패킷을 대상으로 작업하는 보안 기술으므로 양방향 모두에게 적용됨
2) IPSec의 보안 프로토콜 구조
- 인증 헤더(AH : Authentication Header)
- 패킷의 무결성을 위해 송신자의 인증을 허용함
- 단말과 라우터 간의 IP 패킷에 대한 송신 인증 및 무결성 서비스를 제공함
- 보안 페이로드 캡슐화(ESP : Encapsulating Security Payload)
- IP 패킷의 비밀성을 위해 송신자의 인증 및 데이터 암호화를 지원함
- ESP는 데이터의 비밀성을 제공하는데, 암호화되어 있지만 인증되지 않은 데이터 스트림에 대한 공격을 막기 위해 AH의 모든 기능이 포함되어 있음
- IP 데이터그램에서 제공하는 선택적 인증과 무결성, 기밀성 그리고 재전송 공격 방지 기능을 함
- 터널 종단 간에 협상된 키와 암호화 알고리즘으로 데이터그램을 암호화함
- 보안 집합(SA : Security Association)
- IPSec의 보안 종합키를 관리하는 프로토콜
3) IPSec의 전송 모드와 터널 모드
- 전송 모드(Transport mode)
- 단말과 단말 간에 설정되며 IP 패킷의 페이로드 부분을 보호함
- 패킷 데이터 부분만 암호화하므로 기존 패킷 정보 앞에 IPSec 헤더 정보가 추가됨
- 터널 모드(Tunnel mode)
- 라우터와 라우터 간에 설정되며 inbound IP 패킷 전체에 대해서 IPSec AH 또는 ESP 프로토콜을 적용함
- 패킷 전체를 데이터로 취급하고 암호화하여 새로운 IP 헤더를 추가함
4) IKE(Internet Key Exchange) 프로토콜
- AH, ESP와 함께 암호화 키를 관리, SA를 협의하기 위해 애플리케이션 계층에서 사용하는 프로토콜
- 두 컴퓨터 간의 보안 연결 설정을 위해 사용함
- 인터넷 암호키 교환의 표준 프로토콜로 RFC 2409에 규정되어 있으며 주로 IPSec을 암호화하는 데 사용함
5) ISAKMP(Intetnet Security Association & Key Management Protocol)
- IPSec의 일부로서 통신 당사자가 서로 인증해서 암호키를 교환하기 위한 통신 규약
- 어떤 인증 알고리즘, 암호화 알고리즘, 암호키 교환 방식을 사용할 것인지 등의 보안 수단을 서로에게 알리기 위한 메시지 형식
03. S-HTTP
1) S-HTTP(Secure-HyperText Transfer Protocol)
- 1994년 Rescorla와 Schiffman에 의해 개발된 HTTP 프로토콜의 확장 개념
- HTTP에 보안 기능을 부가 하기 위한 통신 규약으로 WWW를 이용할 때 웹 페이지의 데이터를 안전하게 주고 받을 수 있게 만든 프로토콜
- 기존의 HTTP에 인증, 기밀성, 무결성, 부인방지 기능 등을 확장하였음
- S-HTTP 메시지 내에는 내용의 유형을 나타내는 라인과 일반적인 암호 구현을 나타내는 라인이 존재함
- 옵션형 헤더들의 용도는 포장된 데이터의 데이터 재현 방식을 나타냄
- MAC 헤더에 따라 디지털 서명 전용, 암호화 전용, 서명과 암호화가 모두 이용 가능함
- 응용 프로그램의 설치로 보안이 되므로 반드시 서명과 암호화가 이용되어야 함
- SSL과 유사하지만 S-HTTP에서는 HTTP를 사용한 애플리케이션에 대해서만 보호가 가능함
- SSL에서는 HTTP뿐만 아니라 FTP이나 Telnet 등 TCP를 이용하는 응용 프로토콜도 사용 가능함
- S-HTTP에서는 서버와 클라이언트 양뱡향의 인증을 위해 각각의 인증서가 필요하지만 SSL에서는 클라이언트의 인증서는 선택적
2) SSL과 S-HTTP의 비교
| 비교 항목 | SSL | S-HTTP |
|---|---|---|
| 프로토콜 | HTTPS | S-HTTP |
| 사용 방식 | https:// | Actice-X 배포 설지, shttp:// |
| 사용 예 | 포털, 쇼핑몰 | 은행, 증권 |
| 지원 여부 | 대부분 웹 브라우저 지원 | 대부분 웹 브라우저 지원 안 함 |
| OSI 계층 | 세션 계층에서 동작 | 응용 계층에서 동작 |
| 세션키 여부 | 세션키 사용 | 세션키 사용하지 않음 |
| 부인방지 | 지원 안 함 | 지원함 |
04. S/MIME
1) S/MIME(Secure/Multipurpose Internet Mail Extension)
- 기존 전자우편 보안 시스템의 문제점인 PEM 구현의 복잡성, PGP의 낮은 보안성과 기존 시스템과의 통합이 용이하지 않다는 점을 보완하기 위해 IETF의 작업 그룹에서 RSADSI(RSA Data Security Incorporation)의 기술을 기반으로 개발된 E-메일 보안 기술
- S/MIME은 SMTP를 한 단계 끌어올려 보안을 저해하지 않고도 광범위한 E-메일이 가능하게 하므로 SMTP만큼 중요한 표준이 됨
- 또 하나의 유력한 방식인 PEM이 전자인증국(CA)에 의한 운용을 전제로 하고 있는 반면, S/MIME는 CA 없이도 실현할 수 있음
- S/MIME의 목표는 강력한 암호화, 디지털 서명, 사용 용이성, 융통성, 상호 운용성, 수출 가능성 등
- S/MIME의 보안 서비스에는 기밀성, 무결성, 사용자 인증, 송신 사실 부인방지가 포함됨
- S/MIME에 익명성은 포함되지 않음
- S/MIME는 E-메일에 대한 암호화는 물론 E-메일에 첨부되는 파일 등에 전자서명을 포함함
- S/MIME는 스니핑, 변조, 위조 등의 위험을 방지할 수 있음
| 보안 서비스 | 보안 메커니즘 | 알고리즘 |
|---|---|---|
| 기밀성 | 암호화 | 3중 DES |
| 무결성 | 해시 함수 | SHA-1 |
| 사용자 인증 | 인증서 | X.509 인증서 |
| 부인방지 | 전자서명 | DSA |
2) S/MIME 알고리즘의 보안 특성
- Signed receipts
- 송신 측에서 서명된 메시지를 수신자의 서명을 추가하여 수신 측이 메시지 수신을 정상적으로 수신했음을 제 3자가 증명할 수 있도록 함
- Security labels
- 캡슐화된 메시지 내용의 기밀성에 관한 정보를 사용자에게 접근 권한을 부여하기 위해 사용함
- Secure mailing lists
- 여러 수신 측에 메시지를 전송할 경우 각 수신자는 공개키를 포함하여 MAL(Mailing List Agent) 서비스를 사용함으로써 여러 수신 측 별로 처리가 가능하게 함
3) S/MIME에서 사용하는 암호, 서명 시 사용하는 알고리즘
| 기능 | 알고리즘 |
|---|---|
| 메시지 다이제스트 생성 | SHA-1, MD5 |
| 메시지 다이제스트 암호화 | DSS, RSA |
| 세션키 암호화 | Diffie-Hellman, RSA 공개키 |
| 일회용 세션키 암호화 | 3DES |
| 인증서 | X.509 v3 |
4) S/MIME의 동작 순서
- 송신자는 수신자에게 보낼 메시지를 MIME 형태로 작성함
- 전자서명/암호화 중 하나를 선택함
- S/MIME은 MIME 형태의 메시지를 S/MIME 메시지로 변환한 후 전송함
- 수신자는 메일을 복호화, 전자서명 확인 등을 통하여 E-메일을 확인함
