オープンソースのjavascriptアプリケーションで作業しています。サードパーティのAPI(特にgithub)とのインターフェイスを試行しています。私はアプリケーション全体をクライアント側だけに保つようにしているので、隠されたファイルを元に戻すか保存するサーバーは本当にありません。 OAuthプロセスの一環として、私のapiキー用に提供された秘密鍵を提供する必要があります。私はこの鍵を公表したり、共有したりするつもりはない。公開リポジトリの秘密鍵を非表示にする
私は、次の解決策が出ている:トリプルDESとパスフレーズを使用して秘密鍵を暗号化
- 。
- 暗号化されたバージョンを私のリポジトリのどこかに置きます。
- Oauthで認証する必要がある場合は、パスフレーズの入力を求め、秘密鍵を回復してください。
- 知られている場合、今後のプロンプトを避けるために、ローカルストレージに秘密を保管してください。
私は基本的に、秘密鍵の変換バージョンを保存しています。私はこのすべてを買っていると思うのは、フルキーの代わりにユーザーからパスフレーズを取得しなければならないということです。ランダムバイトよりも少し覚えやすいはずです。
これで十分ですか?それは超重大なアプリではありませんが、私が共有しないことを守るために最善を尽くしたいと思います。可逆な方法でキーを暗号化する3DESよりも良い方法はありますか?
クライアントサイドのOAuthは本当にgithubでサポートされていません。彼らは秘密鍵が表示されることを望まない。しかし、あまり好きではないapisを扱う場合は、まだ役に立つかもしれません。 – captncraig
私はこのシナリオを本当に理解していません。キーを使用するクライアントを実行しているにもかかわらず、ユーザーからgithubへのキーを隠そうとしていますか?もしそうなら、あなたは安全にそれをすることはできません。決定されたユーザーはいつもこのキーを回復することができ、倫理的な観点からは、マシンに保存されている情報をその所有者から隠そうとするべきではありません。各ユーザーが独自のgithubキーを取得し、それを覚えておくより便利な方法を探しているだけであれば、あなたのソリューションは良好です。 – erickson