VPN 구성: 공유 비밀 PSK 형식

VPN 구성: 공유 비밀 PSK 형식

고객으로서 저는 OS/X 및 iPhone용 상용 VPN을 사용하고 있습니다. 저도요VPN 구성StrongSwan을 사용하여 iOS/MacO에서 작업하고 집에서 Debian 기반 VPN을 사용하세요.

.mobileconfigVPN 공급자가 제공한 Sierra MacOS 실행 파일에서 생성된 구성 파일을 캡처했습니다 . Linux 소프트웨어를 설치하고 수동으로 구성하지 않도록 여기에서 구성 세부 정보를 가져오고 싶지만 SharedSecret XML 데이터 필드는 암호화되어 있습니다.

직장에서는 Apple 장치용 mobileconfig 프로필을 생성하기 위해 공유 키를 암호화하는 프레임워크를 사용해 왔지만 Apple Configurator 2여전히 이 필드의 형식이 무엇인지 모릅니다.

ipsec.secrets이 "암호화된" 비밀번호는 일반 텍스트 비밀번호 대신 에 배치될 수 있음을 확인했습니다 . 예를 들면 다음과 같습니다.

@vpngroup : PSK 0scGFzc3dvcmQK

다시 말하지만, 이는 고객/최종 사용자에게 전달되는 Apple mobileconfig 구성 파일에서 찾을 수 있습니다.

<key>SharedSecret</key>
<data>cGFzc3dvcmQK</data>

그렇다면 이 형식은 정확히 무엇입니까? 그리고 그것을 암호화하고 암호화하는 방법은 무엇입니까? 나는 이것이 일반 텍스트의 실제 공유 비밀이 아니라고 확신합니다.

답변1

공유 비밀/그룹 비밀번호의 인코딩 형식은 실제로Base64.

~에서강한 백조문서 사이트:

또는 사전 공유 비밀번호를 16진수 또는 Base64로 인코딩된 이진수 값으로 표시할 수 있습니다. 0x로 시작하는 일련의 문자는 일련의 16진수로 해석됩니다. 마찬가지로 0으로 시작하는 문자 시퀀스는 Base64로 인코딩된 이진 데이터로 해석됩니다.

그룹 비밀번호의 Base64 형식은 Linux/FreeBSD IPsec 구성 및 Apple 구성 파일 외에도 Cisco VPN 클라이언트 파일에 사용됩니다.

Base64를 사용하는 이유는 엿보는 눈과 최종 사용자의 공격으로부터 비밀번호를 보호하기 위해서입니다. 왜 이런 기본 인코딩 알고리즘을 사용하는지...

궁극적으로 Linux에서 디코딩하려면 Apple SharedSecret 데이터 필드에서 그대로 가져와야 합니다. 또는 데이터 필드에서 가져올 때 ipsec.secrets문자열에서 선행 "0"을 무시해야 합니다.

$echo cGFzc3dvcmQK | base64 -d
password

FreeBSD/OS/X에서 디코딩하려면:

$echo cGFzc3dvcmQK | base64 -D
password

마찬가지로 다시 인코딩합니다.

$echo password | base64
cGFzc3dvcmQK

관련 정보