콘텐츠로 건너뛰기
Secret Knock

iPhone, iPad, Mac 및 Apple Watch용 fwknop SPA 클라이언트

fwknop는 추측 가능한 시퀀스를 암호화되고 인증된 단일 패킷으로 대체합니다. Secret Knock는 사용자의 키를 사용해 기기에서 이 패킷을 생성하고 UDP 또는 HTTP를 통해 fwknopd로 전송합니다.

fwknopd와 호환

Secret Knock는 fwknop의 Rijndael (AES) 암호화와 HMAC(기본값은 SHA-256이며 다른 다이제스트도 선택 가능)을 UDP를 통해 포트 62201 또는 설정한 다른 포트로 전송하거나 HTTP 요청으로 전송합니다. 패킷이 전송된 주소에 대한 접근을 요청하거나 다른 주소를 지정할 수 있으며, 서버에서 허용하는 경우 fwknop 명령 모드 메시지를 전송할 수 있습니다.

서버 설정

fwknop --key-gen으로 키 쌍을 생성하고 두 키를 서버의 access.conf에 넣으세요.

SOURCE              ANY
OPEN_PORTS          tcp/22
KEY_BASE64          <output of fwknop --key-gen>
HMAC_KEY_BASE64     <output of fwknop --key-gen>
FW_ACCESS_TIMEOUT   30
/etc/fwknop/access.conf

앱에서 문 추가

  1. 1새 문 › 종류: 단일 패킷 (fwknop), 또는 템플릿으로 시작 › fwknop.
  2. 2키 붙여넣기로 fwknop --key-gen의 출력을 붙여넣으세요. 또는 iPhone 및 iPad에서는 키의 QR 코드를 스캔하세요.
  3. 3또는 + › 파일에서 가져오기를 선택하고 .fwknoprc을 선택하세요.
  4. 4키는 키체인에 보관되며, 동기화를 켜면 iCloud 키체인을 통해 종단 간 암호화되어 사용자의 기기로 전송됩니다.

GitHub의 모든 예제 → 이 페이지의 모든 설정을 복사하여 바로 사용할 수 있습니다: github.com/mobilcomm/secretknock-examples (퍼블릭 도메인).

질문

knockd 대신 fwknop를 사용하는 이유는 무엇인가요?

knockd 시퀀스는 평문으로 전송되므로 이를 본 누구나 다시 보내 재사용할 수 있습니다. SPA 패킷은 암호화되고 인증되며 재사용할 수 없습니다.

Apple Watch가 자체적으로 SPA를 전송할 수 있나요?

예. HTTP를 통해 가능합니다. Apple Watch 앱은 원시 UDP를 전송할 수 없으므로 iPhone에서 떨어져 있을 때 Watch는 SPA 패킷을 HTTP 요청으로 전송합니다. 서버 측 설정은 Apple Watch 가이드를 참조하세요.

사용 중인 설정을 위한 가이드