무선 랜과 4G/5g 셀룰러 네트워크 보안

802.11(와이파이) 무선 랜의 인증키와 키 합의

802.11 네트워크에서 다루어야 할 핵심적인 보안 관심사

  • 상호인증
    • 이동 장치가 AP에 접속하여 데이터그램을 외부에 전송하기 전에, 네트워크는 접속하는 이동 장치의 신원을 확인하고, 그 장치의 접속 권한을 점검하기 위해 장치를 인증하기를 원한다.
    • 이동장치의 경우도 접속하는 네트워크가 진짜 접속을 원하는 네트워크가 맞는지 인증하기를 원한다.
    • 이런 양방향 인증을 상호 인증이라고 한다.
  • 암호화
    • 802.11 프레임은 무선 채널을 통해 교환되기 때문에, 이동 장치와 AP 간에 교환되는 사용자 레벨 데이터를 지니고 있는 링크 레벨 프레임의 암호화가 중요하다.
    • 높은 속도를 요해 대칭키 암호화가 사용된다.

상호 인증과 암호화 키 생성 및 사용 절차

a1.png

  1. 발견
    • AP는 자신의 존재와 함께 이동 장치에게 제공될 수 있는 인증과 암호화 형식을 알린다.
    • 이동 장치는 원하는 인증과 암호화 형식을 요청한다.
  2. 상호 인증과 공유 대칭키 생성
    • 인증 서버와 이동 장치 간에 이미 공유된 공통의 비밀을 갖고 있다고 가정한다.
    • 이동 장치와 인증 서버는 서로 간의 인증에 넌스와 암호화 해싱 등과 함께 공유 비밀을 이용하게 된다.
    • 이동 장치와 AP 간의 무선 링크를 통해 전송될 프레임의 암호화에 사용될 공유 세션키를 생성한다.
  3. 공유 대칭 세션키 분배
    • 대칭 비밀키는 이동 장치와 인증 서버에서 생성되기에, 인증 서버가 AP에게 공유 대칭 세션키를 알려주기 위한 프로토콜이 필요하다.
  4. AP를 통한 이동 장치와 원격 호스트 간의 암호 통신
    • 2단계와 3단계에서 생성되고 분배된 세션키를 사용하여 암호화된 링크 계층 프레임을 가지고 통신이 이루어 진다.
    • 프레임 데이터를 암호화 복호화하기 위해 AES 대칭키 알고리즘을 사용한다.

상호 인증과 공유 대칭키 생성

초기 802.11 보안 규정 WEP은 심각한 보안 오류가 있었고, 이를 극복하기위해 WPA1이 개발되었다.

WPA1은 메시지 동질성 검사와 사용자가 일정 기간 암호화된 메시지 스트림을 관찰하여 암호화 키를 추측하게 하는 공격을 피하는 것을 도입하였다.

WPA2는 AES 대칭키 암호화를 의무화하여 WPA1을 개선했다.


a2.png

위 그림은 간략한 네 방향 핸드셰이크 프로토콜을 보여준다.

공유 비밀키(ex 비밀번호)를 서로 알고 시작한다.

  1. 인증 서버는 넌스를 생성하여 이동 장치로 전송한다.
  2. 이동 장치는 넌스를 AS로부터 전송받고 자신의 넌스를 생성한다. 이동 장치는 자신의 넌스, 받은 넌스, 최초 공유 비밀 키, 이동 장치의 MAC 주소, AS의 MAC 주소를 사용하여 대칭형 공유 세션키를 생성해낸다. 그런 후 자신의 넌스그리고 받은 넌스와 원래의 공유 비밀을 암호화한 HMAC-signed 값을 전송한다.
  3. 인증 서버는 최근에 전송한 넌스의 HMAC-signed 버전을 보아 이동 장치가 공유 비밀키로 암호화를 할 수 있었고, 인증 서버 또한 이동 장치가 주장하는 본인이라는 것을 알게되어 이동 장치를 인증하게 된다. 자신의 넌스, 받은 넌스, 최초 공유 비밀 키, 이동 장치의 MAC 주소, AS의 MAC 주소를 사용하여 대칭형 공유 세션키를 사용해 똑같은 대칭형 공유 세션키를 만들 수 있다.

만든 대칭형 공유 세션키를 AP에 공유하여 이동 장치와 AP는 서로 데이터를 주고 받을 수 있다.


802.11 보안 메시징 프로토콜

a3.png

위 그림은 802.11 보안 프레임워크를 구현하기 위해 사용된 확장 인증 프로토콜(Extensible Authentication Protocol, EAP)를 보여준다.

이 프로토콜은 종단 간의 메시지 포멧을 정의한다.

EAP 메시지들은 EAPoL을 사용하여 캡슐화되어 무선 링크로 전송된다.

이러한 EAP 메시지들은 AP에서 역캡슐화되며, RADIUS 프로토콜을 사용하여 재캡슐화되어 UDP/IP를 통해 인증 서버로 전송된다.


4G/5G 셀룰러 네트워크에서의 인증과 키 동의

4G/5G 환경에서의 상호 인증과 키 생성의 목적들은 802.11 환경에서와 동일하다.

a4.png

4G 인증과 키 동의 프로토콜

  1. HSS에 인증 요청
    • 이동 장치가 기지국을 경유하여 네트워크에 처음으로 접속 요청을 할 때, 이동성 관리 개체로 전달되는 기기의 국제 이동 가입자 식별자(IMSI)를 포함하는 접속 메시지를 보낸다.
    • MME는 IMSI와 방문지 네트워크 관련 정보를 HSS로 보낸다.
  2. HSS로부터의 인증 응답
    • HSS는 사전 공유 비밀키를 사용하여 인증토큰인 auth_token과 예상되는 인증 응답인 xres를 유도하기 위해 암호화 동작을 수행한다.
    • auth_token은 이동 장치로 하여금 auth_token을 계산한 누구든지 비밀키를 알고 있다는 사실을 인지하게 하는 사전 공유 비밀키를 사용하여 HSS가 암호화한 정보를 포함한다.
    • 즉, auth_token은 사전공유키 K(IMSI)이고, 같은 사전 공유키를 가지고 있으면 IMSI를 알 수 있어 HSS가 비밀키를 알고 있음을 인지하고, 이동장치는 인증된다.
    • xres는 이동 장치가 계산에 필요해지는 값을 포함하고 있으며 MME에게 이동 장치가 비밀키를 알고 있음을 증빙하여 MME에게 이동 장치가 인증된다.
    • MME만이 인증 응답 메시지를 받고, 향수 사용을 위해 xres를 저장하고, 인증 토큰을 추출하여 이동 장치에 전송하는 중간자 역할을 한다.
  3. 이동 장치로부터의 인증 응답
    • 이동 장치는 auth_token을 사전 공유키로 복호화하여 IMSI를 얻어 HSS를 인증한다.
    • 이동 장치는 res값을 계산하여(자신의 비밀키를 활용하여) 그 값을 MME에게 보낸다.
  4. 이동장치 인증
    • MME는 이동 장치가 계산한 res와 HSS가 계산한 xres를 비교하여 일치하면 모두 공통 비밀키를 갖고 있음을 증빙한 것이므로 이동 장치가 인증된다.
    • MME는 기지국과 이동 장치에게 상호 인증이 완료되었음을 알리고, e단계에서 사용할 기지국 키를 보낸다.
  5. 데이터 평면과 제어 평면 키 도출
    • 이동 장치와 기지국은 무선 채널을 통해 프레임 전송에 사용될 암/복호화 키들을 각자 결정한다.