웹 서버와 웹 브라우저에서 전달되는 데이터를 안전하게 송수신할 수 있도록 미국의 넷스케이프사가 개발한 프로토콜
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) 서비스를 사용함으로써 여러 수신 측 별로 처리가 가능하게 함