iPhone、iPad、Mac、Apple Watch用のfwknop SPAクライアント
fwknopは、推測可能なシーケンスを、暗号化され認証された1つのパケットに置き換えます。Secret Knockは、お使いのキーを使ってデバイス上でそのパケットを作成し、UDPまたはHTTP経由でfwknopdに送信します。
fwknopdとの互換性
Secret Knockは、fwknopのRijndael(AES)暗号化とHMAC(デフォルトはSHA-256、ほかのダイジェストも選択可能)を、ポート62201または設定した別のポートへUDP経由で、あるいは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 アプリにドアを追加する
- 1新しいドア › 種類:単一パケット (fwknop)、または テンプレートから開始 › fwknop。
- 2「fwknop --key-genのキーをペースト」でfwknop --key-genの出力をペーストします。あるいは、iPhoneとiPadではキーのQRコードをスキャンします。
- 3または、+ › ファイルから読み込むで.fwknoprcを選択します。
- 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ガイドをご覧ください。