tkgstrator and Claude Opus 4.6
e82544e0cd
feat(re): MslClient.framework の key 33.6 構築ロジックとCBORシンボルテーブルを解析
...
IosAdhKeyRequestData::getKeydata() の逆アセンブリから、key 33.6 が
CBOR tag(55799) + map{scheme, keydata{mechanism, parametersid, publickey}}
構造であることを確認。CborMslSymbolTable の96エントリ完全マッピングを抽出。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 07:37:03 +00:00
tkgstrator and Claude Sonnet 4.6
b24b84efb2
feat(crypto): key 33.6 scheme_data 構築関数を追加
...
iOS appboot の 352B key 33.6 plaintext を組み立て XOR 暗号化する
NetflixCrypto.build_key336_scheme_data() を実装。165 サンプルで
ラウンドトリップ検証済み。
- constants.py: IOS_KEY336_DEVICE_HEADER (128B 固定デバイスヘッダー) を追加
- crypto.py: build_key336_scheme_data() を追加
- nonce 変形マスク (n2: f41b×2B, n3: f41b+181b×2B, tail: f31c071f×4B)
- XOR 暗号化 (key 33.9 repeating 16B)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-09 07:12:36 +00:00
tkgstrator and Claude Opus 4.6
88f8af71b5
docs(spec): key 33.6 平文の詳細構造を解明 — CBOR ヘッダ固定、7B nonce ランダム
...
352B: ヘッダ全セッション固定(128B) + TFIT+MGK(160B) + 7Bランダムnonce×3(64B)
144B: map(6)軽量版、セッション領域なし、DH認証なしの軽量リクエスト
kAppBootKey/kAppBootEccKeyは署名検証用(確定済み)
全未解明ポイントを解消
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:46:02 +00:00
tkgstrator and Claude Sonnet 4.6
2156252976
feat(tools): add key 33.6 plaintext structure analysis script
...
Analyzes 239 iOS appboot CBOR captures across four sections:
1. Static header: bytes 0-127 confirmed identical across all 165 standard-
prefix 352B samples; CBOR tag 55799 + map(7) + 2.5 key-value pairs.
2. Per-request tail: 64-byte region contains a 7-byte random nonce encoded
3× with constant XOR (f41b...) between copies; not a counter/timestamp.
3. 144B variant: map(6) vs map(7), static header 0-88 only, no session
region, scattered throughout capture (not session-boundary-clustered).
4. Full hex dump and CBOR structure walkthrough for representative samples.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-09 02:45:08 +00:00
tkgstrator and Claude Opus 4.6
78f14cfdf3
docs(spec): kAppBootKey/kAppBootEccKey は署名検証用と確定
...
- Phase 1 図: 点線→実線に変更 (RSA verify + ECDSA verify)
- kAppBootKey も図に追加
- 鍵一覧テーブル: 「用途未確認」→「署名検証」に更新
- 未解明ポイントから削除、解決済みに移動
- kSharkBootKey/kSharkBootKey_Test も新発見
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:40:54 +00:00
tkgstrator and Claude Opus 4.6
34e94e4485
feat(re): kAppBootKey/kAppBootEccKeyの用途を静的解析で確定(署名検証)
...
radare2でNFWebCrypto.frameworkを解析し、両鍵がimportKey(usage=VERIFY)で
インポートされ、RSA_verify/ECDSA_verifyで使用されることを確認。
従来のRSA暗号化仮説を署名検証モデルに修正。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:39:21 +00:00
tkgstrator and Claude Opus 4.6
9cfc1e3141
test: ESN → 全鍵導出チェーンの統合テストを追加
...
Phase 0 (MGK/Unicorn) → Phase 3 (KDF) → 48B Key (SHA384)
→ Phase 2 (DH/HMAC-SHA384) → bootstrap_key を一気通貫で検証。
8/8 テスト通過。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:26:31 +00:00
tkgstrator and Claude Opus 4.6
49933202e7
docs(spec): ライフサイクル図を実行順に再構成、全ステップの操作を明記
...
- 実行順 (0→3→1→2→4→5) でシーケンスを並べ直し
- Phase 3 が Phase 1 の前に実行されることを図上で明確化
- 各 Phase の具体的な暗号操作と入出力を英語で記述
- Phase 1: TFIT エンコード + XOR + サーバー応答の PubKey 抽出を追加
- Phase 2: bootstrap_key = [16:48] を明記
- ラベルを英語に統一
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:11:40 +00:00
tkgstrator and Claude Opus 4.6
d52eda821e
docs(spec): Phase 1 で key 33.6 → Server DH PubKey 抽出を明示
...
key 33.6 (96B) から Server DH PubKey (128B) を取り出すステップを追加。
Phase 2 には PubKey のみが渡されることを図で明確化。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:09:47 +00:00
tkgstrator and Claude Opus 4.6
4d71d902e2
docs(spec): appboot Response を key 33.6 / 33.9 に分解
...
appboot Response key 33 を Server DH PubKey と省略していた問題を修正。
key 33.6 (Server DH Response 96B) と key 33.9 (Server nonce 16B) に分離。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:07:59 +00:00
tkgstrator and Claude Opus 4.6
97f2abe248
docs(spec): Phase 1 の from Phase 0 参照を enc_key_0/sign_key_0 に修正
...
存在しない「MGK Pair」ラベルを削除し、Phase 0 の実際の出力名で参照。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:06:31 +00:00
tkgstrator and Claude Opus 4.6
a600923cb2
docs(spec): to Phase N をノードに統一、全Phase間参照を明示
...
- エッジラベルの to Phase X を削除し [/"to Phase N"/] ノードに統一
- Phase 0: enc_key_0/sign_key_0 → to Phase 1, 3
- Phase 1: DH PrivKey → to Phase 2, DH Resp → to Phase 2
- Phase 2: bootstrap_key → to Phase 5
- Phase 3: session_bind → to Phase 2, enc_key_1 → to Phase 4
- Phase 4: enc_key_2/sign_key_2 → to Phase 5
- Phase 5: 操作の役割をエッジラベルから出力側に移動
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:05:33 +00:00
tkgstrator and Claude Opus 4.6
8ec330b4b6
docs(spec): Phase 1 に DH PrivKey 出力を追加、Phase 2 の参照を統一
...
- Phase 1: DH_generate_key から PrivKey 出力 + to Phase 2 参照を追加
- Phase 2: Client DH PrivKey を from Phase 1 参照ノードに変更
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:03:47 +00:00
tkgstrator and Claude Opus 4.6
17613f5548
docs(spec): Mermaid 図の記法を統一
...
- 四角 [""] → データ, 角丸 ([""]) → 暗号操作, 平行四辺形 [/""/] → Phase 間参照
- エッジラベルはデータの役割 (HMAC key, decrypt key 等)
- Phase 間参照を from/to Phase N ノードで統一 (グレー)
- 凡例にノード形状・色・線種の定義を追加
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 02:01:07 +00:00
tkgstrator and Claude Opus 4.6
b863ed1d40
docs(spec): 実行順序の注釈を追加 (Phase 3 → Phase 1-2 の順序を明示)
...
Phase 番号と実行順が異なることによる循環参照の誤解を防ぐため、
実行順序 (0→3→1→2→4→5) を明記。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 01:58:01 +00:00
tkgstrator and Claude Opus 4.6
5f2e6829b2
docs(spec): Mermaid 図のラベルを全て英語に変更
...
日本語ラベルは図中で読みにくいため、全ノード・エッジラベルを英語化。
見出しとコメントは日本語のまま。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 01:55:44 +00:00
tkgstrator and Claude Opus 4.6
965ae9bae7
docs(spec): Phase 1 図に key 33.9 nonce → XOR の入力矢印を追加
...
key 33.6 の XOR エンコードに使う nonce (key 33.9) が
図に入力として示されていなかった問題を修正。
ハードコード nonce (0x1AC905) との混同を避ける注釈も追加。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 01:54:31 +00:00
tkgstrator and Claude Opus 4.6
99a316d64e
docs(spec): 鍵関係図を全面更新 — key 33.6 構造図追加、全ノード解明済み
...
- Phase 1 図: key 33.6 を解明済み(緑)に変更、TFIT→XOR→送信フロー追加
- Section 3: enc_key_0/sign_key_0 を緑(Phase 0出力)に修正
- Section 4: enc_key_1 を緑に修正
- Section 8: key 33.6 の平文構造図 (352B) を追加
- kAppBootKey を「用途未確認」に修正 (RSA未使用確認済み)
- Tweak フック一覧を最新状態に更新
- 凡例を簡素化 (黄/オレンジ削除)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 01:53:04 +00:00
tkgstrator and Claude Opus 4.6
2db7d0da91
docs(spec): 全鍵導出チェーン解明 — key 33.6 構造も解明済みに
...
- bootstrap_key, key 33.6 構成を解決済みに移動
- key 33.6 平文構造: CBORヘッダ(128B) + TFIT(DH_pub)(128B) + MGK(32B) + 固有(64B)
- 残りの未解明はArgoバイナリ内のCBOR構築ロジックのみ
- Phase 0-5 の全鍵がPython (+ Unicorn) で導出可能
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 01:30:12 +00:00
tkgstrator and Claude Opus 4.6
c86999fd8b
feat(re): key 33.6 builder静的解析スクリプト追加
...
NFWebCrypto.frameworkのDH鍵生成・MGK・TFIT関連関数を
r2pipeで解析し、key 33.6の構成を特定した。
CBOR構造構築とXOR nonce適用はArgoバイナリ側で行われる。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 01:28:18 +00:00
tkgstrator and Claude Opus 4.6
104ce6d167
docs(spec): 鍵関係図をフェーズ別に分割 — 1枚の巨大図から Phase 0〜5 の個別図へ
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 01:25:10 +00:00
tkgstrator and Claude Opus 4.6
ae7add1d7c
docs(spec): bootstrap_key 解明 — Phase 2 sign_key (dh_kdf_out[16:48]) と同一
...
bootstrap_key は新規の鍵ではなく、Phase 2 KDF の HMAC-SHA384 出力の
[16:48] = sign_key そのもの。全オレンジ(由来不明)鍵を解消。
残る未解明は key 33.6 の TFIT エンコードのみ。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 01:23:42 +00:00
tkgstrator and Claude Opus 4.6
3375ebb954
docs(spec): 鍵関係図を全面更新 — Phase 0 (MGK) 追加、全鍵を緑(解明済み)に
...
- Phase 0 (ESN → MGK = enc_key_0/sign_key_0) を図に追加
- TFIT テーブル (199KB) をバイナリ埋め込み定数として追加
- enc_key_0/sign_key_0 を「Unicorn で計算可能」に更新
- 大部分の鍵ノードを緑色(解明済み)に変更
- シーケンス図に Phase 0 と 48B 鍵導出フローを追加
- 鍵一覧にESN, TFITテーブルを追加
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 01:19:09 +00:00
tkgstrator and Claude Opus 4.6
8fbd908eb9
docs(spec): 初回セッション鍵 = MGK (TFIT-WB-AES-128-ECB of ESN) を文書化
...
enc_key_0/sign_key_0 は genModelGroupKeys の出力 (= MGK) であることが
Unicorn エミュレーションで実証された。
ESN + TFIT テーブルから全鍵チェーンを Python のみで導出可能。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 01:07:01 +00:00
tkgstrator and Claude Sonnet 4.6
156c855521
feat(tools): TFIT whitebox AES-128-ECB emulator using Unicorn Engine
...
Unicorn Engine でNFWebCrypto.framework の TFIT_op_iAES11 (0x25CB0) を
エミュレートし、genModelGroupKeys(MGKType, ESN) を Python で再現する
ツールを追加。
- Mach-O の全セグメント (TEXT/DATA_CONST/DATA/LINKEDIT) を仮想アドレス
通りに Unicorn にマッピング
- memset/memcpy スタブを GOT 経由でフックし TFIT_r9_op 内の外部呼び出しを
処理
- __stack_chk_guard を偽ポインタで提供しスタックカナリー検証を回避
- 自己整合テストベクタ (zero KS × 6 + iPhone KS × 2) で動作を確認
- CLI: --test でベクタ検証、引数に ESN を渡して MGK ペアを計算
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-09 01:05:27 +00:00
tkgstrator and Claude Opus 4.6
f3a2ec8ac7
docs(spec): Phase 2 KDF ドキュメントを最新の解析結果で更新
...
- 48B鍵の説明を「TFIT出力」→「SHA384(session_bind[:16])」に修正
- Mermaid図にPSK/nonce→KDF→SHA384→48B鍵のフローを追加
- 未解明事項を更新 (48B鍵は解明済み、残りはTFITエンコードのみ)
- nflxDhDerive 静的解析結果のアドレスを追記
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-09 00:46:51 +00:00
tkgstrator and Claude Opus 4.6
8066fb16b4
docs(plans): TFIT/48B鍵調査プランを追加
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 18:10:07 +00:00
tkgstrator and Claude Opus 4.6
0326fbb9c4
docs(spec): nflxDhDerive静的解析で48B HMAC鍵の導出チェーンを特定
...
SHA384(native_key_bytes) → 48B鍵 → HMAC-SHA384(key, 0x00||DH_shared) → enc/sign/wrap鍵分割
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 18:09:29 +00:00
tkgstrator and Claude Opus 4.6
9c206629d4
docs(spec): 48B鍵の導出パスを図に追加 (KDF → SHA384 → 48B鍵)
...
Phase 3 KDF の session_bind から SHA384 を経て 48B 鍵に至る
データフローを Mermaid 図に明示。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 18:06:16 +00:00
tkgstrator and Claude Opus 4.6
90e2c3d0e6
docs(spec): 48B鍵を「計算可能」に更新、SHA384(session_bind[:16]) 解明
...
- 48B鍵をオレンジ(由来不明)→緑(解明済み)に変更
- 鍵一覧テーブルに導出式を追記
- 未解明ポイントから48B鍵を解決済みに移動
- 凡例に緑(解明済み)を追加
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 18:05:23 +00:00
tkgstrator and Claude Opus 4.6
53ae7c4ba6
docs(spec): NFWebCrypto TFIT WB-AES-128-ECB 静的解析結果を追加
...
genModelGroupKeys → encryptAes128Ecb → TFIT_wbaes_ecb_encrypt_iAES11 の
全コールチェーンを逆アセンブルし、ラウンド構造・テーブル配置・
デバイス別キースケジュール選択ロジックを文書化。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 18:05:00 +00:00
tkgstrator and Claude Opus 4.6
8de78b2260
feat(crypto): 48B HMAC鍵の導出を実装 — SHA384(session_bind[:16])
...
48B HMAC-SHA384 鍵の生成チェーンが完全に解明:
session_check = HMAC-SHA256(PSK, enc_key_0 || sign_key_0)
session_bind = HMAC-SHA256(session_check, nonce)
48B_key = SHA384(session_bind[:16])
これにより保存済みセッション鍵があれば Tweak/Frida なしで
全鍵を Python のみで導出可能になった。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 18:04:17 +00:00
tkgstrator and Claude Sonnet 4.6
858237a667
feat(tweak): add SHA384, TFIT_wbaes hooks and 48B HMAC_Init_ex caller tracing
...
- HOOK 10: SHA384 one-shot in NFWebCrypto — logs input (up to 256B) and 48B digest
- HOOK 11: _TFIT_wbaes_ecb_encrypt_iAES11 — resolved via dlsym, logs 16B in/out per block; gracefully skipped if symbol absent
- HMAC_Init_ex enhanced: when key_len==48, emits caller address via __builtin_return_address(0)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 18:01:11 +00:00
tkgstrator and Claude Opus 4.6
58dfd6d3ce
feat(agents): reverse-engineer エージェント定義を追加
...
Ghidra headless, radare2, lief+capstone を使った
静的バイナリ解析専用エージェント。
NFWebCrypto の TFIT テーブル・xref 解析に使用する。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 17:51:32 +00:00
tkgstrator and Claude Opus 4.6
517b4560ee
feat(tweak): AES_encrypt フックと TFIT チェーン検出を追加
...
- AES_encrypt (ECB 単一ブロック) の入出力をキャプチャ
- KAT マーカー (000102...1f) で TFIT チェーン開始を検出
- AES-128 鍵設定でチェーン終了を検出
- 690 ペアのキャプチャに成功、DH 秘密鍵生成を確認
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 17:39:11 +00:00
tkgstrator and Claude Sonnet 4.6
16cf0fb324
feat(tools): add TFIT AES_encrypt chain analysis script
...
Analyzes appboot_tfit_capture.log to identify:
- TFIT chain structure: CTR entropy + KAT anchors + key-feeding PRNG
- DH private key generation from AES_encrypt output stream (#87-#94)
- 48B HMAC-SHA384 key origin (not captured in AES hooks)
- Session key derivation: HMAC-SHA384(tfit_48B, 0x00||dh_shared) -> AES+MAC keys
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 17:38:31 +00:00
tkgstrator and Claude Sonnet 4.6
48239f1578
feat(tools): add key 33.6 encoding analysis tool
...
Analyzes DH public key ↔ key 33.6 pairs from Netflix iOS appboot CBOR
captures, confirming the trivial block-XOR encoding and mapping plaintext
regions to static header, session-bound, and per-request zones.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 17:21:00 +00:00
tkgstrator and Claude Sonnet 4.6
bb12025224
feat(frida): TFIT ホワイトボックス AES テーブル抽出スクリプトを追加
...
AES_set_encrypt_key (AES-256) と AES_encrypt (単体ブロック ECB) を
フックして TFIT チェーンの鍵・入出力ペアを全件キャプチャする。
KAT マーカーでラウンドを区切り、チェーン完了後に TFIT_KEY 候補を出力する。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 17:10:24 +00:00
tkgstrator and Claude Opus 4.6
b9dac8daa6
docs(spec): key 33.6 構成の解析結果を反映
...
- RSA 暗号化は未使用 (実証済み) を解決済みに追加
- key 33.6 サイズを 464B → 144B/352B に修正
- kAppBootKey の点線接続を削除 (RSA 不使用のため)
- key 33.6 構成方法を未解明ポイントに追加
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 17:07:06 +00:00
tkgstrator and Claude Opus 4.6
2282fef9e0
feat(tweak): DH_generate_key, RSA_public_encrypt, EVP_PKEY_encrypt フックを追加
...
key 33.6 構成の追跡のため:
- DH_generate_key: クライアント DH 公開鍵・秘密鍵をキャプチャ
- RSA_public_encrypt: RSA 暗号化の有無を確認 → 未呼び出しを確認
- EVP_PKEY_encrypt: EVP 暗号化の有無を確認 → 未呼び出しを確認
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 17:05:39 +00:00
tkgstrator and Claude Opus 4.6
edf4cb25e6
docs(spec): 未実証の関係を点線に変更、Phase 1/2 図を修正
...
- kAppBootKey → key 33.6 の暗号化を点線(未実証)に変更
- kAppBootEccKey の署名検証も点線に変更
- key 33.6 リクエスト (464B) をオレンジ(由来不明)に追加
- Phase 2 に DH_compute_key ノードを追加(サーバー公開鍵入力を明示)
- 凡例に点線の説明を追加
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 16:54:36 +00:00
tkgstrator and Claude Opus 4.6
0c2182cbad
docs(spec): 鍵関係図に Phase 2 KDF 解明結果と由来不明の 48B 鍵を反映
...
- Phase 2 を「未解明」→「解明済み」に更新
- 48B 鍵をオレンジ色(由来不明)として追加
- enc_key_0/sign_key_0 を黄色(計算可能)に変更
- シーケンス図に HMAC-SHA384 フローを追記
- 鍵一覧テーブルに 48B 鍵を追加
- 未解明ポイントを更新
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 16:31:45 +00:00
tkgstrator and Claude Opus 4.6
cccc506a20
docs(plans): Phase 2 KDF プランのタスク完了状態を更新
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 16:16:44 +00:00
tkgstrator and Claude Opus 4.6
547d595955
docs(spec): Phase 2 KDF 解析結果を文書化 — HMAC-SHA384(TFIT_KEY, 0x00||DH_SHARED)
...
DH 共有秘密から初期セッション鍵を導出するアルゴリズムを解明:
- HMAC-SHA384 with 48B TFIT key, 0x00 prefix + 128B shared secret
- enc_key = output[0:16], sign_key = output[16:48]
- HKDF は NFWebCrypto に存在しないことを確認
- テストベクタで検証済み
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-08 16:16:14 +00:00
tkgstrator and Claude Sonnet 4.6
e02b18f047
feat(crypto): Phase 2 TFIT KDF による初期セッション鍵導出を実装
...
HMAC-SHA384(tfit_key, 0x00 || dh_shared_secret) で enc_key/sign_key を
導出する derive_initial_session_keys を NetflixCrypto に追加。
tools/verify_phase2_kdf.py で検証済みテストベクタ + Phase 3 チェーンを確認。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 16:14:08 +00:00
tkgstrator and Claude Sonnet 4.6
e65b041170
feat(tools): Phase 2 KDF 仮説検証ツール群を追加・拡張
...
find_phase2_hmac_chain.py に以下のセクションを追加:
- pre_appboot HMAC 中間値 (19def2f9/e60e376f/58c4e3d1) を PSK 代替として使用
- enc_key_0 (0817065e) を起点とした逆算セクション
- Phase 3 整合性確認: enc_key_0→enc_key_1, sign_key_0a→sign_key_1 の
KDF チェーンが正しく一致することを確認 (sign_key_0 = 91f752f7 を特定)
- enc_key_0 の DH 由来ブルートフォース
find_phase2_kdf_variants.py に以下のセクションを追加:
- enc_key_0 (0817065e) を別ターゲットとした全 KDF バリアント試行
- AES Key Wrap (RFC 3394) による key 33.6 アンラップ試行
tools/decrypt_key_response.py を新規作成:
- key 33.6 (96B) を [IV:16][CT:48][HMAC:32] 構造として仮定し復号試行
- 仮説 A/A2/B/C の全パターン (IV なし/あり, wrap_key 66 候補)
- 全 232 件の appboot レスポンスファイルへの一括適用
- HMAC 署名検証: HMAC(sign_key, IV||CT) == key336[64:96] の独立確認
- 平文のオフセット探索 (enc_key が先頭以外にある場合)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 15:50:08 +00:00
tkgstrator and Claude Sonnet 4.6
af7d685a18
feat(tweak): add AppbootKDF tweak for Phase 2 KDF intermediate state capture
...
Hooks NFWebCrypto DH_compute_key (dhDerive), HKDF_extract/expand/one-shot,
AES_set_encrypt_key/decrypt_key (aesCbc), HMAC one-shot and HMAC_Init_ex/Final
with os_log subsystem "com.netflix.kdf" and per-function categories.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 15:46:59 +00:00
tkgstrator and Claude Sonnet 4.6
c3b6835d56
feat(frida): Phase 2 KDF 全暗号操作トレーサースクリプトを追加
...
DH 共有秘密から enc_key_0/sign_key_0 への変換を特定するため、
DH_compute_key 〜 AES_set_*_key 間の全 HMAC/SHA/AES 呼び出しを
同一スレッドのみ記録し、シーケンスサマリとクロスリファレンスを出力する。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 14:09:25 +00:00
tkgstrator and Claude Opus 4.6
9fc124f112
feat(frida): appboot DH共有秘密の手動計算と初期鍵復号試行スクリプト
...
DH_generate_keyフックでDHハンドルを保存し、サーバー公開鍵を手動設定後
NativeFunctionでDH_compute_keyを呼び出して共有秘密を計算する。
SHA-384/SHA-256/HMAC等の複数候補鍵でkey 33.6の復号を試行し、
復号結果にKDFを適用して既知のenc_key_1と照合する。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-08 13:48:48 +00:00
tkgstrator and Claude Opus 4.6
f0b16a257f
fix(docs): ライフサイクル図にMermaidダークテーマを適用
...
theme: dark ディレクティブを追加し、テキストの視認性を改善。
rect の透過度も調整。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-08 13:35:44 +00:00