ノートPCに残る秘密情報を守るツール「jit」がHacker Newsで議論に
ノートPC上のdotenvファイルなどに平文で残りがちなAPIキーを保護するツール「jit」がHacker Newsに投稿された。
コメント欄では、curlでバイナリを取得してインストールする手順の安全性を巡る指摘や、1Password・Fnox・systemd-credentialsといった既存の代替手段との比較が交わされ、「本番用の秘密情報をなぜローカルの.envに置くのか」という根本的な疑問も上がった。
Show HN: ノートPCこそ、あなたの秘密情報が平文のまま残っている最後の場所だ
出典: github.com / 元記事はこちら
セキュリティ製品のはずなのに、インストール手順がこれだ。
curl -sL https://dl.jitpass.com/jitpass/jit/releases/latest/download/jitpass_darwin_arm64.tar.gz | tar -xz jit
sudo mv jit /usr/local/bin/
これで一体何が悪いことになるって言うんだ(皮肉)
curl -sL https://dl.jitpass.com/jitpass/jit/releases/latest/download/jitpass_darwin_arm64.tar.gz | tar -xz jit
sudo mv jit /usr/local/bin/
これで一体何が悪いことになるって言うんだ(皮肉)
>>6
その行はtarアーカイブをtarに渡して展開してるだけで、実行スクリプトをシェルに流し込んでるわけじゃない。とはいえ、推奨インストール方法は brew install jitpass/tap/jitpass だよ。
その行はtarアーカイブをtarに渡して展開してるだけで、実行スクリプトをシェルに流し込んでるわけじゃない。とはいえ、推奨インストール方法は brew install jitpass/tap/jitpass だよ。
>>6
何がまずいの?
何がまずいの?
>>6
`curl | tar && mv` が `curl | sh` より安全とは言えないと思う。
`curl | tar && mv` が `curl | sh` より安全とは言えないと思う。
自分は秘密情報を1Password Environments (https://www.1password.dev/environments) に移した。普段使いには本当によく機能してる。1password cliと組み合わせればエージェントやスクリプトからもアクセスできるし、1passwordアプリで管理する快適なUIもある。
>>7
でもIPCはプロセス単位であって、vault単位じゃない。しかも毎回のアクセスにタッチ承認が必要で、「このプロセスをX分間信頼する」みたいな仕組みが無い。あと1passwordのUXは元々いいけど、Electronへの作り直しとサブスク化の前の方がもっと良かった。
でもIPCはプロセス単位であって、vault単位じゃない。しかも毎回のアクセスにタッチ承認が必要で、「このプロセスをX分間信頼する」みたいな仕組みが無い。あと1passwordのUXは元々いいけど、Electronへの作り直しとサブスク化の前の方がもっと良かった。
>>7
自分も同じことしてる
自分も同じことしてる
ちなみに1Passwordでもこの一部は実現できるよ。でもこれは良さそうだね!
>>8
ありがとう!
ありがとう!
FnoxとNonoは認証情報をプロキシする方式を知っている。ホストのファイルシステムをスキャンして秘密情報を探すより、そのアプローチの方がだいぶマシだと思う。
>>9
最近fnoxを試してたんだけど、keepassdbのマスターパスワードを入力させてくれなくて、FNOX_KEEPASS_PASSWORDを環境変数で設定するしかなかった。秘密情報がヒストリーに残るのはちょっと気持ち悪い。だからこういうツールを探してたんだ。
最近fnoxを試してたんだけど、keepassdbのマスターパスワードを入力させてくれなくて、FNOX_KEEPASS_PASSWORDを環境変数で設定するしかなかった。秘密情報がヒストリーに残るのはちょっと気持ち悪い。だからこういうツールを探してたんだ。
>>9
ClaudeやCodexがいつこれをファーストパーティ機能として取り込み始めるのか気になる
ClaudeやCodexがいつこれをファーストパーティ機能として取り込み始めるのか気になる
そもそもなぜローカルの.envファイルに本番環境の秘密情報を入れるのか理解できない。開発用トークンだけにすべきでは。
>>10
完全に同意
完全に同意
Linux版があれば興味があったんだけどな
>>12
そのうち対応するよ、本当に。
そのうち対応するよ、本当に。
これがどれくらい安全なのかは分からないけど、UXはただただ気に入った。スキャン機能とプロセス許可の仕組みはUX的に素晴らしい。
>>14
『その薬は実際には不治の病を治さなかったが、味は最高で、気分は良くなった』ってやつだね(皮肉)
『その薬は実際には不治の病を治さなかったが、味は最高で、気分は良くなった』ってやつだね(皮肉)
面白いアイデアだね!どうやって実現してるの?呼び出し元のプロセスを認識するファイルシステムドライバか何か?
>>15
リポジトリにそれを説明したMarkdownファイルがあればなあ。例えばこんなURLで、https://github.com/jitpass/jit/blob/main/docs%2Fgetting-star… とか(皮肉、実際にある)
リポジトリにそれを説明したMarkdownファイルがあればなあ。例えばこんなURLで、https://github.com/jitpass/jit/blob/main/docs%2Fgetting-star… とか(皮肉、実際にある)
念のため言っておくと、これはPolyform Perimeterライセンスだよ。
>>17
その通り。でも個人利用や社内利用なら完全に無料だよ。
その通り。でも個人利用や社内利用なら完全に無料だよ。
Linuxならsystemd-credentialsを使えばいい。もう同じことができる。
>>19
2021年のsystemd v250から使えたのか、今初めて知った。遅くても知らないよりはマシだよね。それと、ありがとう!
2021年のsystemd v250から使えたのか、今初めて知った。遅くても知らないよりはマシだよね。それと、ありがとう!
>>19
そのうちLinuxにも対応するよ
そのうちLinuxにも対応するよ
>>19
そう、TPMで保護することもできる。
echo -n "sk-proj-12345…" | systemd-creds encrypt –with-key=tpm2 –name=openai_key – openai.cred
そして実行時には export OPENAI_API_KEY=$(sudo systemd-creds decrypt openai.cred) とすればいい
そう、TPMで保護することもできる。
echo -n "sk-proj-12345…" | systemd-creds encrypt –with-key=tpm2 –name=openai_key – openai.cred
そして実行時には export OPENAI_API_KEY=$(sudo systemd-creds decrypt openai.cred) とすればいい
>>46
シェルにパイプしてるわけじゃなくて、特定のパラメータ付きでtarプログラムにパイプしてtarを直接展開させてるだけだよ。もちろんGitHubから直接プログラムをインストールしていることに変わりはなく、第三者がレビューしているであろうパッケージリポジトリのような場所からではないけど、それでも`curl | sh`パターンよりはずっとマシだと思う。
シェルにパイプしてるわけじゃなくて、特定のパラメータ付きでtarプログラムにパイプしてtarを直接展開させてるだけだよ。もちろんGitHubから直接プログラムをインストールしていることに変わりはなく、第三者がレビューしているであろうパッケージリポジトリのような場所からではないけど、それでも`curl | sh`パターンよりはずっとマシだと思う。
>>52
GitHubからダウンロードしてるんじゃなくて、dl.jitpass.comからだよ。それに実行ファイルはシェルスクリプトとまったく同じことができる。要は、実行するものがシェルスクリプトだろうがバイナリだろうが、検証されていないという点が問題なんだ。
GitHubからダウンロードしてるんじゃなくて、dl.jitpass.comからだよ。それに実行ファイルはシェルスクリプトとまったく同じことができる。要は、実行するものがシェルスクリプトだろうがバイナリだろうが、検証されていないという点が問題なんだ。
>>58
『実行するものが検証されていないのが問題』とのことだけど、GPが言ってたのは『これは/Applicationsにドロップする普通のアプリバンドルであるべきだ』ということ。/Applicationsにドロップするアプリバンドルをダウンロードするのと、バイナリをcurlして/usr/local/bin/に置くのとで、違いなんて無いよ。
『実行するものが検証されていないのが問題』とのことだけど、GPが言ってたのは『これは/Applicationsにドロップする普通のアプリバンドルであるべきだ』ということ。/Applicationsにドロップするアプリバンドルをダウンロードするのと、バイナリをcurlして/usr/local/bin/に置くのとで、違いなんて無いよ。
>>58
違いは、実行する前に実行ファイルを検査(少なくともざっとウイルススキャン)できる点だね。完璧とは程遠いけど、何が完璧だって言うんだ?
違いは、実行する前に実行ファイルを検査(少なくともざっとウイルススキャン)できる点だね。完璧とは程遠いけど、何が完璧だって言うんだ?
※本記事は5ch(Hacker News)スレッド「Show HN: Laptop is the last place your secrets are still in plaintext」より抜粋・要約して構成しています。






まだコメントはありません。