IKEv2 VPN 서버를 윈도우나 안드로이드폰에서 사용시는 필히 인증서(X.509)를 설치해야 합니다.
OpenVPN 에서도 역시 인증서를 사용합니다.
이 인증서가 하는 역할은 우리가 인터넷 뱅킹에서 사용하는 인증서와 같습니다.
윈도우나 안드로이드폰에서 연결하려는 vpn 서버가 맞는지를 확인하는 겁니다.
혹시나 해커가 내 트래픽을 가로채서 다른 vpn 서버로 연결하게 하는 것을 방지합니다.
이 인증서는 두 가지 방식이 있는데 공인 인증서(public certificate)와 self-signed 인증서입니다.
공인 인증서란 유명 인증서 업체(윈도우에서는 "신뢰할수 있는 루트 인증 기관" 이라고 부릅니다.)
에서 발행해서 윈도우 및 안드로이드폰에 내장시킨 인증서입니다.(아래 화면 참조)
이 인증서를 해당 업체에서 구입해서 IKEv2 VPN 서버에 설치하면 윈도우 및 안드로이드폰에는
인증서를 설치할 필요 없이 IKEv2 서버를 연결할수 있습니다.
self-signed 인증서란 IKEv2 서버를 운영하는 회사에서 발행한 인증서를 말하며
리눅스에서는 openssl 을 사용해서 만듭니다.
IKEv2 VPN 서버에서 self-signed 인증서를 설치하면 윈도우 및 아이폰에서도
역시 동일 업체서 발행한 인증서를 설치해야 VPN 연결이 됩니다.
공인 인증서를 IKEv2 서버에서 사용하려면 돈이 드므로 보통은 self-signed 인증서를 사용하지만
윈도우에 IKEv2 client 인증서를 설치하는건 상당히 복잡하므로 세계의 유명 IKEv2 VPN 서버 운영업체는
공인 인증서를 사용합니다.
본인도 IKEv2 서버를 설치할 때 self-signed 인증서를 사용할까 검토했다가
컴맹인 상당수 VPN 사용자들을 고려해서 미국에서 공인 인증서를 구입해서 설치했습니다.
그래서 2 년여 이상을 단 한번도 중국의 방화벽에서 차단되지 않고 IKEv2 서버를 운영했었는데
지난 3 월 5 일 밤 9시경에 안드로이드폰에서 갑자기 IKEv2 서버가 연결이 안돼는 현상이 발생했습니다.
밤10 시 경에 중국 심천의 딜러로 부터 웨이신(wechat) 으로 안드로이드폰에서만
IKEv2 서버가 연결이 안된다며 도움을 요청하는 메시지가 온 겁니다.
안드로이드폰에서 IKEv2 서버를 연결하려면 strongSwan 이란 앱을 사용합니다.
*. 어떤 업체는 IKEv2 서버도 아닌데 IKEv2 서버 운영한다고 선전하기도 합니다.
안드로이드폰에서 strongSwan 앱을 사용해서 연결이 안되면 절대 IKEv2 서버가 아닙니다.
딜러가 보내온 안드로이드폰의 에러 로그를 보니 인증서 부분에서 에러가 나고 있었습니다.
그래서 그 딜러에게 내가 발행한 self-signed 인증서를 사용해서 연결해 보라고 하니
연결이 된다고 합니다.
직감으로 중국 만리 방화벽에서 뭔가를 차단했다고 느꼈으나 왜 동일 인증서를 사용하는 윈도우에서는
연결이 되는지가 이해가 안되었습니다.
물론 한국에서 안드로이드폰에서는 연결에 문제가 없었습니다.
인증서 문제라면 서버에서의 해결 방법은 없으므로 딜러 및 홈피 공지에
안드로이드폰에서는 self-signed 인증서를 설치해서
연결하라고 알려주고 다음 날 그 인증서 한국 대리점에 에러 로그를 보내서
미국 인증서 발급 업체에 해결책을 강구해 달라고 했더니 미국에서 바로 연락이 왔는데
중국 GFW 문제라는 것이고 지금 해결책을 찾는 중이라고 답변이 왔다고 합니다.
GFW 는 Great Fire Wall 의 약자로서 우리말로는 만리 방화벽 정도로 번역합니다.
즉 중국 GFW 에서 차단했다는 겁니다.
공인 인증서는 서버와 클라이언트 간에 서로의 인증서를 대조하는 방법이지만
클라이언트(윈도우 및 안드로이드폰)에서 인증서의 유효성 검사를 하는 절차가 하나 더 있습니다.
신용카드 사용자가 신용 카드 결재를 신청하면 결재 전에 그 카드가 위조되었는지 또는
도난되었는지를 확인하는 절차가 있듯이, 안드로이드 폰에 설치됀 strongSwan 앱에서도
IKev2 서버에서 보내온 인증서가 해커에 의해 보안이 뚫려 폐기된 인증서인지를 인증서 발급 업체에 문의합니다.
인증서 유효성 검사라고 합니다.
중국 방화벽에서 인증서 유효성 검사를 하는 사이트로 가는 데이타를 차단해서 중국 사용자만 안드로이드폰에서
VPN 서버가 연결이 안되었던 겁니다.
그럼 왜 동일 인증서를 사용하는 윈도우에서는 차단이 안돼었는지가 의문이었는데
윈도우에서 인증서 유효성을 검사하는 사이트와 안드로이드폰에서 인증서 유효성을
검사하는 사이트가 달랐던 겁니다.
유효성 검사를 하는 사이트를 차단한지 하루만에 미국의 인증서 발급 업체에서 인증서 유효성 검사를
하는 사이트의 IP 주소를 변경해서 안드로이드 폰에서 인증서 설치없이 IKEv2 서버가 연결이 되었습니다.
IKEv2 서버는 절대 중국 방화벽에서 차단 안된다고 말해왔는데 서버의 문제가 아닌 인증서 문제로
하루동안 연결이 안되었습니다.
*. 물론 self-singed 인증서를 설치하면 연결이 되었으므로 엄밀하게는 서비스가
중단된것은 아니었습니다.
*. 아이폰에서 IKEv2 서버를 연결시는 인증서 방식이 아니고 Pre-Share Key(사전 공유키) 방식을 사용합니다.
*. 아래 화면은 윈도우-10 에 내장된 루트인증서 입니다. 여기 말고도 더 있습니다.
CoreaVPN Root CA 는 self-signed 인증서입니다.
잘못된 형식의 이미지 링크입니다.
모든 쿠데타 시도에서 가장 먼저 점령하는 곳이 방송입니다.
5.16 쿠데타에서도 방송국 점령이 제 1 순위였죠.
그리고 방송으로 혁명 공약을 발표했습니다.
아직은 잘 모르는데, 정말 좋은 기술이네요!