正直に言おう。僕が1Passwordに乗り換えたのはパスワードのためではない。もちろん、パスワードも管理する。でもそれは最低限の話だ。決め手になったのは、同僚がTouch IDをワンタップするだけでGitHubにコードをプッシュするのを見たことだ。SSHキーファイルが複数のマシンに散らばることも、どのラップトップにどの認証情報があるか覚えることも、再起動するたびにssh-addをいじることもない。
「ちょっと待って、何?」と僕は言った。「もう一回見せてくれ。」
20分後、僕は1Passwordにサインアップしていた。2週間前のことだ。それ以来振り返ったことはない。
本当の問題(パスワードだけじゃない)
パスワードの問題はもう知っているだろう。100以上のアカウントがある。それぞれにユニークなパスワードを使うべきだ。脳が確実に覚えられるのはせいぜい7つ。だからパスワードを使い回すか、実は賢くない「賢い」バリエーションを使い、どこかでハッカーがあなたのLinkedInのパスワードをアメリカ中の銀行で試している。
数字は残酷だ
- **81%**の侵害が盗まれたまたは弱いパスワードを使用
- **65%**の人がサイト間でパスワードを使い回し
- 2024年に240億の認証情報ペアが流出
- 「Fluffy2024」を解読する時間:約3秒
どのパスワードマネージャーでもこれは解決する。LastPass、Bitwarden、Dashlane。すべてユニークなパスワードを生成して保存する。僕は何年もLastPassを使っていた。問題なかった。役目を果たしていた。
でもここがポイントだ。パスワードは始まりにすぎない。SSHキーは? APIトークンは? シークレットだらけの環境変数は? あの時うっかりパブリックリポジトリにコミットしてしまった.envファイルは?(みんなやったことがある。嘘をつくな。)
そこで1Passwordがすべてを変えた。
なぜ1Passwordに移行したか
乗り換え前の僕のセットアップを話そう。3台の異なるマシンの~/.sshにSSHキーがあった。同じキーではなかった。APIトークンは付箋、テキストファイル、自分宛てのSlack DMにあった。.envファイルは、誰にも見られないことを祈るコピペされたシークレットの災害だった。
動いていた。かろうじて。でも新しいマシンをセットアップしたり、別のリポジトリにプッシュする必要があるたびに、20分の考古学作業だった。
1Passwordがそのすべてを解決した。そう、パスワードも管理している。
開発者機能が決め手だった
SSHエージェント統合だけで乗り換えの価値があった。SSHキーは今1Passwordの金庫に保存され、暗号化されてすべてのデバイスに同期されている。git pushすると、小さなTouch IDプロンプトが表示される。指をタップ。コードがデプロイされる。ディスク上にキーファイルはない。ssh-addのダンスもない。はい、僕がこのコードをプッシュしていますという生体認証の確認だけ。
でもそれだけじゃない。すべてのAPIキーを1Passwordに保存している。OpenAI、Stripe、AWS、すべて。そしてファイルにシークレットを置くことなくコードで参照する:
op run --env-file=.env.1password -- npm startこのコマンドはシークレットを実行時に注入する。ファイルシステムに触れることはない。gitに紛れ込むこともない。キーをローテーションするとき、1Passwordで一度更新すれば、すべてのプロジェクトが自動的に変更を取得する。
複数のプロジェクトと数十のAPI統合を管理する者にとって、これは変革的だった。
セキュリティアーキテクチャが理にかなっている
ちょっとオタクな話をさせてほしい。1Passwordはデュアルキーシステムを使っている。マスターパスワードが1つ目のキー。サインアップ時にもらう34文字のシークレットキーが2つ目。金庫を復号するには両方が必要だ。
なぜこれが重要か? 1Passwordのサーバーが完全にハッキングされても、攻撃者が手に入れるのは暗号化されたブロブだけだ。復号するにはシークレットキーが必要だが、1Passwordはそれを持っていない。それはあなたのデバイスと、印刷した緊急キットにしか存在しない。
これはLastPassのアーキテクチャとは根本的に異なる。LastPassが2022年に侵害されたとき、暗号化された金庫が盗まれた。そしてその金庫は今日もブルートフォース攻撃されている。LastPassのマスターパスワードが弱かった場合、あなたのデータはすでに侵害されているかもしれない。
ハードウェアキーとの相性が良い
YubiKeyガイドを読んだなら、すでにハードウェアセキュリティキーで重要なアカウントを保護しているだろう。1Passwordは美しく統合される。僕の1Passwordアカウント自体が、新しいデバイスでのログインにYubiKeyを必要とする。パスキーをサポートするサイトのパスキーも保存・管理できる。
結果:最も機密性の高いものが、持っているもの(ハードウェアキー)+ 知っているもの(マスターパスワード)で保護される。フィッシングやSIMスワッピングではこれを破れない。
はじめよう:思っているより簡単だ
「移行は悪夢だ」と思っているだろう。僕もそう思っていた。でも正直? 約30分で使い始め、1週間のカジュアルな作業で完全に移行した。気を失わずにやる方法を紹介しよう。
まず最初に:アカウントを作成
1password.comにアクセスして14日間の無料トライアルを始めよう(クレジットカード不要)。最も重要な決定はマスターパスワードだ。記号や数字を使った「複雑な」パスワードの常識は忘れてほしい。代わりにパスフレーズを使おう。4つか5つのランダムな単語を並べたものだ。
「purple-elephant-dancing-Tuesday」のようなものは、「P@ssw0rd!23」よりも覚えやすく、かつ解読しにくい。長さは複雑さに常に勝つ。
マスターパスワードの基本ルール
- OK: 覚えられるメンタルイメージを作るランダムな単語
- NG: 歌詞、映画の台詞、Googleで検索できるもの
- NG: あなたに関すること:誕生日、ペットの名前、住所
- 覚えておこう: 「rainbow-fish-mountain-coffee」は「R@inb0w!」を圧倒する
サインインしたら、1Passwordがエマージェンシーキット(シークレットキー入りのPDF)をくれる。これを印刷しよう。 耐火性のある場所に保管しよう。マスターパスワードを忘れたり、すべてのデバイスを同時に失くした場合の復旧用ライフラインだ。スキップしないこと。
次に:重要なものを保護
一度にすべてをインポートしたい衝動を抑えよう。信じてほしい。まず5つのアカウントから始めよう。侵害されたら最もダメージが大きいもの:
- メインのメールアドレス - 他のすべてへのマスターキーだ(パスワードリセット、覚えている?)
- 銀行 - 理由は明らか
- 仕事のアカウント - 特にシングルサインオンのもの
- SNS - なりすましの宝庫
- ショッピングサイト - 支払い情報を保存しているところ
それぞれに通常通りログインし、1Passwordに認証情報を保存させよう。そして重要なのは、すぐにそのパスワードをランダム生成されたものに変更すること。1Passwordが「xK7#mP2@qL9」のような、人間には絶対に推測できないものを提案してくれる。それを使おう。覚える必要はないのだから。
最後に:生体認証を有効にして、タイピングを忘れよう
これを実際に使いやすくする魔法がこれだ。スマホでFace IDかTouch ID、MacでTouch ID、PCでWindows Helloを設定しよう。これでマスターパスワードをほとんどタイプしなくてよくなる。素早い生体認証スキャンでログイン。タップで自動入力。タップでSSHプッシュの承認。1日で筋肉記憶になる。
移行:思ったほど痛くない
LastPassから来るなら、良いニュースと悪いニュースがある。悪いニュース:2022年の侵害後、暗号化された金庫がいまだにハッカーによってブルートフォースされている。マスターパスワードが完璧でなかったら、データはすでに流出しているかもしれない。良いニュース:移行は約10分で完了する。
LastPassからの移行
LastPassのウェブ金庫にログインし、Account Options → Advanced → Exportに行き、パスワードをCSVでダウンロード。1PasswordでFile → Importをクリックし、LastPassを選び、ファイルをアップロード...基本的にそれだけだ。パスワードが1Passwordに入った。
重要: インポート後、そのCSVファイルをすぐに削除しよう。すべてのパスワードが平文で入っている。ダウンロードフォルダに放置したくない。
ブラウザのパスワードマネージャーからの移行
Chrome、Safari、Firefoxはすべてパスワードのエクスポートが可能だ(設定 → パスワードのあたりを探してみよう)。エクスポートし、1Passwordにインポートし、完了。その後、ブラウザの内蔵パスワードマネージャーを無効にしよう。真実のソースは1つにしたい。3つのシステムが争うのは避けよう。
誰かに教えてもらいたかったコツがある。すべてをインポートした後、1PasswordのWatchtower機能を実行しよう。パスワードをスキャンして、弱いもの、使い回しのもの、既知の侵害に登場したものをフラグする。僕は即座に対応が必要な23個のパスワードを見つけた。まずそれらを修正しよう。
ファミリープラン:みんなを巻き込む
予想していなかったことがある。1Passwordのファミリープラン(最大5人で月額4.99ドル)が、実際に家庭の運営をスムーズにした。「Netflixのパスワードは?」というメッセージがなくなった。誰かが忘れたからWiFiパスワードをリセットすることもなくなった。
仕組みは賢い。全員が個人用のプライベート金庫を持つ。そして全員が必要なものを入れる共有金庫を作る。
我が家の金庫構成
- 個人金庫: 各自のアカウント、完全にプライベート
- 共有金庫: ストリーミングサービス、WiFi、ホームアラーム、共有サブスクリプション
- 緊急金庫: 保険書類、重要な連絡先、「緊急時に」のもの
- 子ども金庫: 学校のログイン、承認済みのゲーム(親はすべて閲覧可能)
各自が自分のマスターパスワードを持つ。子どもは小さいうちはシンプルなものでいい。成長に合わせてより強いものを作る手助けができる。そして最強の機能がこれだ:誰かがパスワードを忘れた場合、ファミリーオーガナイザーが回復を手伝える。おばあちゃんが番組を見られないからといって家族ドラマが起きることはもうない。
パスワードだけじゃない、デジタルライフ全体
1Passwordをパスワード用に使い始めると、他のすべても保存できることに気づく。僕のはデジタルアイデンティティ全体の安全な金庫になった。
クレジットカード(これは実際に便利)
クレジットカードを追加すると、ブラウザ拡張が会計時に自動入力してくれる。些細に聞こえるが考えてみてほしい。キーロガーが潜んでいるかもしれないランダムなウェブサイトでカード番号をタイプしなくていい。カフェで肩越しに覗いている人にCVVを晒さなくていい。財布が別の部屋にあっても、今必要なものを買える。
保存が必要なランダムなもの
ソフトウェアライセンスキー。訪れるすべての場所のWiFiパスワード。セキュリティの質問の答え(プロのコツ:本当の答えではなくランダムな文字列にしよう。「母親の旧姓は?」→「purple-carburetor-7」)。二要素認証のバックアップコード。責任感がなければ付箋に書くようなもの。
身分証明書
パスポート、運転免許証、保険証をスキャンして保存してある。フォームを記入していてパスポート番号が必要? 3秒。病院で保険の詳細を聞かれた? スマホにある。海外旅行中にビザ情報が必要? すべてそこに。
すべてを変えた開発者ワークフロー
さて、これが本当に書きたかった部分だ。コードを書くなら、たまにでも、このセクションは仕事のやり方を変えるだろう。
僕を1Passwordに引き込んだ同僚を覚えているだろう? 彼がワクワクしていたのはパスワードではなかった。SSHキー、APIトークン、シークレットがすべて1つの安全な場所に保存され、どのマシンからでも生体認証ワンタップでアクセスできる統一ワークフローにワクワクしていたのだ。
CLIのセットアップ(5分)
まず、コマンドラインツールを入手しよう。Macならbrew install 1password-cliだけだ。op account addを実行してサインインすれば準備完了。
# インストール(プラットフォームを選択)
brew install 1password-cli # macOS
winget install AgileBits.1Password.CLI # Windows
# 一度サインイン
op account add最良の部分:1Passwordデスクトップアプリで生体認証アンロックを有効にすると、CLIもそれを使う。シークレットが必要になるたびにマスターパスワードをタイプする必要がなくなる。
SSHキーを混乱なく管理
これが決め手だった機能だ。1Password Settings → Developer → SSHに行き、「Use the SSH agent」をオンにし、シェル設定に1行追加する:
# ~/.zshrc or ~/.bashrc に追加
export SSH_AUTH_SOCK=~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sockこれでSSHキーは1Passwordに保存される。~/.sshに誰でもコピーできるプレーンファイルとしてではなく。3台の異なるラップトップに散らばるのでもなく。暗号化され、どこでも同期され、使用のたびに生体認証の確認が必要だ。
git pushすると、小さなTouch IDプロンプトが表示される。タップ。コードがデプロイされる。キーのことを考えることも、ssh-addも、「あのキーはどのマシンに?」もない。タップして完了。
漏れないAPIキー
これが僕のお気に入りのトリック。必ずgitに入ってしまう.envファイルにシークレットを入れる代わりに(みんなやったことがある)、シークレットへの参照だけを含む.env.1passwordファイルを作る:
# .env.1password - コミットしても安全!
OPENAI_API_KEY=op://Development/OpenAI API Key/api_key
DATABASE_URL=op://Development/Production DB/connection_string
STRIPE_SECRET=op://Development/Stripe/secret_keyこれらはただのポインタだ。実際のシークレットはファイルシステムに触れない。何かを実行する必要があるとき:
op run --env-file=.env.1password -- npm start1Passwordが実行時に実際の値を注入する。うっかりこのファイルをコミットしても? 問題ない。参照だけだ。シークレットは金庫に留まる。
APIキーをローテーションするとき、1Passwordで一度更新する。すべてのプロジェクト、すべてのマシンが自動的に変更を取得する。ハードコードされたトークンを探してコードベースをgrepする必要はもうない。
GitHub:完全なセットアップ
GitHub専用には、1Password内でSSHキーを直接生成できる(Settings → Developer → SSH → Create SSH Key)。公開鍵をコピーし、GitHub Settings → SSH Keysに貼り付け、完了。
ssh -T [email protected]でテストしよう。生体認証プロンプトが表示され、指をタップすると「Hi username! You've successfully authenticated.」と表示される。
それだけだ。GitHub SSHセットアップの全体がそれだ。ssh-keygenも、ファイルのコピーも、間違ったキーが読み込まれたせいの「permission denied (publickey)」エラーもない。
クイックリファレンス:日常の使い方
キーボードショートカット (macOS)
⌘ + \— ブラウザで自動入力⌘ + Shift + X— 1Passwordミニを開く⌘ + Shift + L— 1Passwordをロック⌘ + N— 新規ログイン(アプリ内)⌘ + Shift + C— パスワードをコピー
CLIクイックリファレンス
# すべてのアイテムを一覧
op item list
特定のパスワードを取得
op item get "Amazon" --fields password
新しい安全なパスワードを作成
op item create --generate-password
シークレットを読み取る(スクリプト用)
op read "op://Vault/Item/field"
注入されたシークレットでコマンドを実行
op run --env-file=.env.1password -- command
フルスタック:すべてがどうつながるか
YubiKeyガイドを読んでいるなら、僕の現在のセットアップですべてがどう組み合わさるかはこうだ:
- 1Password自体: 新しいデバイスでマスターパスワード + YubiKeyが必要
- メール: 1Password内のユニークなパスワード + YubiKey 2FA
- 銀行: ユニークなパスワード + 1Passwordに保存されたパスキー
- GitHub: 1Passwordのエージェントが管理するSSHキー(プッシュにTouch ID)
- すべてのAPIキー: 1Passwordに保存、実行時に注入、ファイルには決して書かない
- その他すべて: ランダム生成パスワード、即座に自動入力
やりすぎ? かもしれない。でも乗り換えてから午前2時の「パスワード忘れた」パニックは一度もない。APIキーの漏洩を心配したこともない。どのラップトップに正しいSSHキーがあるか悩んだこともない。そして認証情報をいじる代わりに指をタップしてコードをプッシュするたびに、なぜ乗り換えたかを思い出す。
2週間後:価値はあったか?
間違いなく。セキュリティだけのためではない。それも重要だが。日常のQOL向上は本物だ。サイトへのログインは一瞬。オンラインのチェックアウトはワンタップ。新しいラップトップのセットアップは以前は何時間もかかった。今は認証情報全体が数分で同期される。
でも正直? 一番よく考えるのは開発者ワークフローだ。Touch IDでのgit push。絶対に漏れようがないAPIキー。シークレットが十数台のマシンの十数個のテキストファイルに散らばっていないという確信。
無料トライアルを始めよう。30分かけてセットアップしよう。1週間使ってみよう。分かるはずだ。
アクションプラン
- 今日: 1Passwordトライアルを開始、マスターパスフレーズを作成、エマージェンシーキットを保存
- 今週: ブラウザ/LastPassからパスワードをインポート、トップ5アカウントを保護
- 今月: 家族メンバーを追加、Watchtowerを有効化、弱いパスワードを修正
- コードを書くなら: CLIをセットアップ、SSHエージェントを有効化、APIキーを移行