* IPsec
- 단말기에서 보내는 데이터 그램을 암호화한다면 그 상위의 계층은 모두 암호화가 될 것이다.
- 네트워크 계층에서 보안을 제공하므로써 상위 계층은 모두 한꺼번에 보호된다.(Blanket coverage)
- 응용
ⓐ VPN(Virtual Private Network)
- 각 집단들은 보안을 위해 사설망을 구축한다.
- 개개의 집단이 사설망을 개설하기엔 많은 비용이 든다.
- 이 비용을 절감하기 위해서 공중망을 사설망으로 사용한다.
> 투자비 절감의 횩과를 얻을 수 있다.
> 공중망이 마치 자신들만이 쓰는 것처럼 사용할 수 있어야 한다.
> 집단은 망 사용자의 입장으로 관리할 필요가 사라진다.
> 단, 공중망이 사설망을 쓸때와 같은 속도를 보장해줘야 한다.
* IPsec 생성 위치
- IPsec Transport Mode(IPsec 전달 모드)
> IPsec의 암호화, 복호화 과정이 종단 시스템에서 이뤄진다.
> 집단에서 IPsec에 대해서 신경을 써서 관리해야한다.
- IPsec tunneling mode(IPsec 터널 모드)
> 공용 네트워크의 종단 라우터에서 IPsec을 암호화, 복호화 한다.
> 망 사업자가 VPN을 제공해준다고 광고하여 집단을 모집한다.
> 망 사업자가 IPsec에 대한 것을 대행해준다.
> 망 사업자는 VPN을 위해서 차별화된 서비스와 보안을 제공해줘야 한다.
(차별화된 서비스는 망 중립성 문제와 대립되고 있다.)
> 집단과 특정 단말사이에서도 IPsec이 제공되야 하기 때문에 다음과 같은 모양의 터널 모드도 존재한다.
* IPsec 사용 프로토콜
- AH(Authentication Header protocol) : 출발지 인증과 데이터 무결성을 보장해주는 프로토콜
- ESP(Encapsulation Security Protocol) : 출발지 인증, 데이터 무결성 및 기밀성을 보장해주는 프로토콜
> 기밀성 보장때문에 ESP가 더 많이 사용된다.
※ IPsec은 IPsec 생성 위치와 사용 프로토콜에 의해서 4가지가 존재하게 된다.
* Security associations(SAs)
- IPsec으로 통신하기 전에 단말간 가상의 연결이 필요하다.
> IPsec을 사용하는 노드간 필요한 값을 주고 받기 위해 연결된 논리적 선로
- SA는 단방향이기 때문에 노드가 양방향 통신을 한다면, 두개의 SA가 연결되야 한다.
- VPN은 수많은 SA가 필요하게 된다.
- SA구성 : 데이터 전송이 되기전에 결정되야 한다.
ⓐ SA 식별자 : SA를 구별해주는 식별 번호, SPI(Security Parameter Index)
ⓑ SA를 구성하는 양 단말의 IP주소
ⓒ 사용할 암호 알고리즘 및 해쉬 함수 정보
ⓓ 각종 키(인증키, 암호화키)
- SA구성은 Database로 관리를 한다 : SAD(Security Association Database)
> 터널모드의 2번째와 같은 통신이라면, n명의 사원이 있으면 2 + 2n개의 SA가 존재하게 된다.
* IPsec Datagram(in tunnel mode with ESP)
- ESP trailer
> 블럭의 암호화 길이를 맞추기 위한 것
- ESP header
> SPI : 수신 개체가 무엇인지 알 수 있어야 한다. (암호화 안되는 이유 : 보낸 상대의 SPI를 알아야 복호화가 가능하기 때문)
> Sequence number : 재사용 공격, 스니핑을 방지하기 위해서 사용
~ 새로운 SA마다 0부터 새로 실시(SA마다 각각의 sequence number를 사용)
~ window sliding 기법으로 모두 검사하지 않고, 몇개씩 넘어가면서 검사한다
- ESP auth : 데이터 무결성을 위해서 HMAC을 계산한 것
- new IP header : original IP header가 암호화 되있기 때문에 볼수 없다. 이에 따라 새로운 IP header를 붙인다.
* IPsec이 보장해주는 것
- 보안 : 암호화 되있기 때문에 훔쳐 보는 것이 불가능하다
- 데이터 변경 : 데이터 bit을 변경하는 것은 가능하지만 HMAC을 이용하여 확인이 가능하다
- 중간자 공격 : HMAC을 이용하기 때문에 불가능하다.(Secret number를 사용)
- 재사용 공격 : Sequence number를 붙이기 때문에 불가능하다.
* IPsec에 필요한 값을 설정하는 방법
- 수동설정
- 자동설정 : Internet Key Exchange(IKE)
> PSK와 PKI가 존재한다.
* SSL과의 비교
- IPsec
> 네트워크 계층에 존재(OS의 영향을 받는다)
> 암호화, 무결성, 상대방 인증이 가능하다.
> 복잡하다.
- SSL
> TCP위에서 존재
> 암호화, 무결성, 상대방 인증이 가능하다.
> IPsec에 비해 간단하다.
- IPsec을 사용하기 위해서는 OS를 수정해야하고, SSL을 사용하기 위해서는 응용프로그램을 수정하면된다.
- SSL을 사용함에 따라 응용프로그램 업데이트가 있을 수 있다.
- IPsec은 복잡성이 강해 거부감이 존재한다.
- IPsec은 해결하지 못한 보안적 결함이 존재한다.