36

OS X キーチェーンの内容を、タブ区切りのプレーンテキストなど、他の場所で簡単に処理できるファイルにダンプ (エクスポート) する方法を探しています。

キーチェーン アクセス アプリにはそのような機能はありません。キーのデータを取得するには、キーチェーンのパスワードを毎回入力して、キーと共に保存されているパスワードを確認する必要があります。

少し掘り下げた後、AppleScript と Keychain Scripting アプリを使用してキーチェーンにアクセスすることで、誰かの解決策を見つけました (個々の投稿にリンクすることはできません。ページの最後まで約 3 分の 2 スクロールします)。

http://discussions.apple.com/thread.jspa?threadID=1398759

キーチェーン スクリプトを使用すると、平文パスワードを含むすべてのキーのすべてのデータ フィールドにアクセスできます。–そして、このデータをテキストファイルなどにダンプするのはかなり簡単です.私はそれをテストしましたが、うまくいきました.

ただし、この解決策では、ダイアログで [OK] をクリックして各キーへのアクセスを確認する必要があります。これは、毎回キーチェーンのパスワードを入力する必要があるよりははるかに優れていますが、それでもイライラします。さらに、キーごとに 2 回アクセスを確認する必要があります。スクリプト エディター (またはアプリとして実行されている場合はスクリプト自体) 用に 1 回、キーチェーン スクリプト用に 1 回。そのため、100 個のキーを持つキーチェーンを処理している場合、200 個のダイアログで [OK] を手動でクリックする必要があります。

私は今、これを回避するための解決策を探しています。キーチェーンの目的は機密データを保護し、まさに私がやろうとしているようなことを防ぐことであるため、そのような解決策にはおそらく何らかのハッキングが含まれるでしょう.

私はあなたのアイデアに非常に興味があります!

4

5 に答える 5

37

わかった、私は愚かだ。これを実行するコマンドラインツールがsecurityあります(およびキーチェーンに対する他の多くのアクション)。

使用例:

security dump-keychain -d login.keychain

これにより、login.keychain(ユーザーのデフォルトのキーチェーン)内のすべてのデータが、パスワードを含めてプレーンテキストとしてダンプされます。アクセスを確認する必要がありますが、キーごとに1回だけであり、AppleScriptを使用するよりもはるかに高速です(特定のフィールドにアクセスしようとしたときに奇妙なエラーをスローしません)。そして、それはハックではありません。

このオプションがない-dと、パスワードを除くすべてのフィールドがダンプされます。

キーのダンプされたデータは次のようになります(インターネットキーの場合。プログラムキーと証明書には他のフィールドがありますが、形式は同じです)。

keychain: "/Users/<username>/Library/Keychains/login.keychain"
class: "inet"
attributes:
    0x00000007 <blob>="tech.slashdot.org (<username for this web login>)"
    0x00000008 <blob>=<NULL>
    "acct"<blob>="<username for this web login>"
    "atyp"<blob>="form"
    "cdat"<timedate>=0x32303038303432333038323730355A00  "20080423082705Z\000"
    "crtr"<uint32>=<NULL>
    "cusi"<sint32>=<NULL>
    "desc"<blob>="Kennwort des Web-Formulars"
    "icmt"<blob>="default"
    "invi"<sint32>=<NULL>
    "mdat"<timedate>=0x32303038303432333038323730355A00  "20080423082705Z\000"
    "nega"<sint32>=<NULL>
    "path"<blob>=<NULL>
    "port"<uint32>=0x00000000 
    "prot"<blob>=<NULL>
    "ptcl"<uint32>="http"
    "scrp"<sint32>=<NULL>
    "sdmn"<blob>=<NULL>
    "srvr"<blob>="tech.slashdot.org"
    "type"<uint32>=<NULL>
data:
"<the plaintext password for this key>"
于 2009-04-04T15:27:08.763 に答える
15

これを読んでください: https://gist.github.com/rmondello/b933231b1fcc83a7db0b

無視: - - -

各キーの「常に許可」ダイアログの解決策を見つけました!

前のコマンドを sudo で実行するだけです。

sudo security dump-keychain -d login.keychain

これにより、パスワードを 2 回入力するだけで済みます。ターミナルで 1 つは sudo に、もう 1 つはキーチェーンのロックを解除します! ;)

良い1日を!

于 2012-01-06T13:56:17.650 に答える
0

更新、これをうまく行うツールがあります:

Keychaindump は、root として OS X キーチェーン パスワードを読み取るための概念実証ツールです。セキュリティで保護されたプロセスのメモリ空間にあるロックされていないキーチェーン マスター キーを探し、それらを使用してキーチェーン ファイルを復号化します。

ソース: https://github.com/juuso/keychaindump

于 2015-10-01T21:40:37.170 に答える
-3

「許可」を複数回クリックしないための解決策を見つけました

sudo su
security dump-keychain -d /Users/YourUsername/Library/Keychains/login.keychain
于 2015-02-18T20:00:18.907 に答える