2009-04-04 3 views
33

OS Xのキーチェーンの内容をタブ区切りの平文などの別の場所で簡単に処理できるファイルにダンプ(エクスポート)する方法を探しています。MacOS Xのキーチェーンの内容をすばやく簡単にダンプする方法はありますか?

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

は掘りのビットの後、私は(個々のポストにリンクすることはできません。ページの最後の約三分の二をスクロールダウン)キーチェーンにアクセスするためのAppleScriptとキーホルダースクリプティングアプリを使って、誰かの解決策を見つけた:

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

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

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

私は今これを回避するための解決策を探しています。機密データを保護し、私がやろうとしていることを正確に防止することがキーチェーンの目的であるため、そのような解決策には多分何らかのハックが含まれることに気付きました。

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

答えて

30

いいえ、私はばかです。 securityと呼ばれるコマンドラインツールがあります(キーチェーンに関する他の多くのアクション)。

使用例:

security dump-keychain -d login.keychain 

これは、パスワードを含むプレーンテキストとしてlogin.keychain(ユーザーのデフォルトのキーチェーン)内のすべてのデータをダンプします。 まだは、アクセスを確認する必要がありますが、各キーについて一度だけです。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>" 
+13

は、各エントリのために一度「常に許可する」をクリックしないようにする任意の魔法の方法はありますか? – Cliff

+0

@Cliffボタンを押すAppleScriptは、http://apple.stackexchange.com/a/137336でご覧いただけます。 –

+0

(10.9.5) 'security'ツールには表示されないiCloudキーチェーンについては、iCloudキーチェーンからすべてのものを新しいキーチェーンにコピーして、このテクニックを使用することができます。 (http://selfsuperinit.com/2014/01/20/exporting-icloud-keychain-passwords-as-a-plain-text-file/) –

15

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

;(プログラムキーと証明書は、他のフィールドを持っていますが、形式は同じであるインターネットキー用)

ザ・このような重要なルックスのためのデータをダンプ

無視:-----

各キーの[常に許可する]ダイアログが表示されました。

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

sudo security dump-keychain -d login.keychain 

あなただけのパスワードを2回入力する必要がありますこの方法です。 1つはターミナルでsudoに、もう1つはキーチェーンのロックを解除する! ;)

楽しい一日を!

+2

動作していないようですが、それでも私に "許可/拒否" 各項目。たぶん、コマンドを初めて実行したときにすべてを「常に許可」していたのでしょうか? 2度目は(sudoに関係なく)ちょうど魔法のように働いたように見えるでしょう。 –

+3

私は250回allowを押しました。 – cedivad

+1

私はこのヒントが最近のOSXの最近のバージョンでは動作しなくなったと思います... – TCB13

-2

私は複数回

sudo su 
security dump-keychain -d /Users/YourUsername/Library/Keychains/login.keychain 
+0

私のために働いていませんでした。 – ma11hew28

0

アップデートを「許可」をクリックしないための解決策が、うまくこれを行うツールが用意されましたが見つかりました:

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

出典:https://github.com/juuso/keychaindump

+0

このgitプロジェクトは、6年前の最後のコミットである放棄です。 自己責任で使用してください。 – Penumbra

関連する問題