secd
別名: キーチェーンとパスワード
結論
secdは、ユーザアカウントのキーチェーン項目を管理するmacOSのプロセスです。iCloudキーチェーンやローカル項目に保存されたパスワード、パスキー、鍵、証明書を扱います。パスワードを保存したり自動入力したりするアプリはすべてsecdに問い合わせ、iCloudキーチェーンがオンなら、secdがそれらの項目をほかのデバイスと同期します。
secdは自分のアカウントで動くので、アクティビティモニタの“ユーザ”の列には自分の名前が表示されます。rootで動く古いプロセスのsecuritydと並んで働いています。securitydは、Macが初期のバージョンから使ってきたファイルベースのキーチェーンである“ログイン”と“システム”を担当します。secdは、iCloudキーチェーン、パスキー、Touch IDで保護された項目が使う新しいキーチェーンを担当します。“パスワード”アプリには保存したパスワードとパスキーが表示され、キーチェーンアクセスには両方の種類のキーチェーンが表示されます。
ほとんどの時間、secdはアイドル状態です。忙しくなるのは実際の仕事があるときです。新しいMacやiCloudキーチェーンをオンにしたあとの最初の同期、Appleアカウントのパスワードを変更してデバイスが再接続している間、パスワードの大量の読み込み、そして同じ項目を何度も要求するアプリです。CPUのリストの上位に居続けるのは、たいてい最後の理由です。
secdのCPU使用率が高い理由
よくある理由は同期です。MacがiCloudキーチェーンに参加すると、secdはほかのデバイスにあるすべての項目をダウンロード、復号、統合し、多くの項目が一度に変わるたびに同じ処理を繰り返します。パスワード、鍵、証明書が何千個もあるキーチェーンは時間がかかり、デバイスどうしが追いつく間、処理が波のように何度も戻ってくることがあります。
いつまでも終わらない急上昇は、たいていループです。アプリがsecdに項目を要求し、エラーや拒否を受け取り、また要求する、というのを1秒に何度も繰り返します。よく疑われるのは、サインイン用のトークンを保存するパスワードマネージャ、ブラウザ、VPNクライアント、開発ツールで、多くはアプリがアップデートされた直後です。
対処法
新しいMac、新しいサインイン、パスワードの変更のあとは、Macをスリープさせずにおいて同期を終わらせます。自然に終わります。ループの場合は、パスワードやトークンを保存するアプリから順に1つずつ終了し、アクティビティモニタでsecdを見守ります。あるアプリを終了して下がったら、そのアプリをアップデートするか、サインアウトしてサインインし直します。
アプリが見つからない場合は、システム設定 → [自分の名前] → iCloud → パスワードを開き、“このMacを同期”をオフにして再起動し、もう一度オンにします。パスワードはiCloudとほかのデバイスに残ります。アクティビティモニタでsecdを終了しても一瞬しか効きません。macOSがすぐに起動し直します。
secdが何をしているか確認する方法
順調に進んでいる同期なら、だんだん静かになります。ループしている場合は、数分おきに同じ様子が繰り返されます。どちらなのかは、アクティビティモニタとターミナルで確認できます。
- アクティビティモニタを開いて“CPU”タブをクリックし、“表示” → “すべてのプロセス”を選んで、検索フィールドに
secと入力します。自分の名前でsecdが、rootでsecuritydが表示されます。 - secdの“% CPU”を数分間見守ります。ゼロに向かって下がっていくなら、同期が終わりかけています。高いままのとき、または一定のリズムで上下を繰り返すときはループです。
- “ネットワーク”タブをクリックし、検索フィールドに
clouddと入力します。iCloudの同期の通信はclouddが運んでいます。clouddが送受信しているときにsecdが忙しいなら、おそらくキーチェーンが同期中です。secdが忙しいのにclouddが静かなら、Mac上のアプリを疑いましょう。 - 詳しく知りたいときは、ターミナルを開いて
log stream --predicate 'process == "secd"'を実行します。同じアプリや項目を含む行が繰り返し出てくるなら、それが調べるべきアプリです。止めるにはControl+Cを押します。
secdの普通の状態と気にすべき状態
普通: secdはふだんゼロ近くにいて、アプリがパスワードを保存したり自動入力したりするときに一瞬だけ動きます。新しいMacでは、iCloudキーチェーンをオンにしたあとやAppleアカウントのパスワードを変更したあとに、長めに動きます。
確認する価値あり: 何もしていないのに何時間も忙しいまま、ファンが回る、アプリのパスワードの自動入力が遅い。よくある原因は次のとおりです:
- 新しいMacや復元したMacでの最初のiCloudキーチェーンの同期。キーチェーンが大きいと時間がかかることがあります。
- 大量の読み込み。たとえば、別のパスワードマネージャやブラウザから“パスワード”アプリにパスワードを読み込んだ場合です。
- 同じキーチェーン項目をループで要求し続けるアプリ。多くはアップデート後のパスワードマネージャ、ブラウザ、VPNクライアント、開発ツールです。
- もう使っていないアプリの証明書や鍵など、何年分もの古い項目。検索や同期のたびに時間がかかるようになります。
キーチェーンの保存場所
どちらの種類のキーチェーンも、ユーザのライブラリの~/Library/Keychainsにあります。ログインキーチェーンはlogin.keychain-dbというファイルで、secdが管理するキーチェーンは、そこにある長いIDの名前のフォルダに入っています。
CPUの問題を解決するために、これらのファイルを削除したり移動したりしないでください。同期しないアプリが保存したパスワードなど、このMacにしかない項目が失われてしまいます。古い項目を探して削除するには、キーチェーンアクセス(Spotlightで検索すると開けます)と“パスワード”アプリを使います。
よくある質問
Macのsecdとは?
パスワードやパスキーなど、ユーザアカウントのキーチェーン項目を管理し、iCloudキーチェーンと同期するmacOSのプロセスです。パスワードを保存したり自動入力したりするアプリは、すべてこれを通ります。
secdのCPU使用率が高いのはなぜ?
短時間なら、新しいMac、新しいサインイン、パスワードの変更のあとでiCloudキーチェーンが同期しているからです。何時間も続くなら、アプリが同じ項目を要求し続けているからです。パスワードやトークンを保存するアプリを1つずつ終了していけば、どれが原因かわかります。
secdとsecuritydの違いは?
どちらもmacOSのキーチェーンの一部です。securitydはrootで動き、古いファイルベースのキーチェーンである“ログイン”と“システム”を扱います。secdは自分のアカウントで動き、iCloudキーチェーンとパスキーが使うキーチェーンを扱います。
secdはウイルス?
いいえ。macOSの一部で、Appleのアップデートでしか変更できないディスクの保護された領域の/usr/libexec/secdにあり、launchdによって自分のアカウントで起動されます。すべてのMacで動いています。
Macでキーチェーンのパスワードを何度も求められるのはなぜ?
たいていは、ログインキーチェーンのパスワードがMacのログインパスワードと一致しなくなったからで、ログインパスワードをリセットしたあとによく起こります。このキーチェーンを扱うのはsecdではなくsecuritydです。Appleの解決策であるキーチェーンアクセス → 設定の“デフォルトキーチェーンをリセット”は、ログインキーチェーンに保存されたパスワードを削除してしまうので、AppleはAppleサポートから勧められた場合にだけ使うよう推奨しています。
関連項目
アクティビティモニタより優れたものをお探しなら、Mac向けアクティビティモニタの代替アプリのおすすめをご覧ください。用語集のすべての用語も見られます。