多くのAPIがユーザーとパスワードの組み合わせでデータにリモートからアクセスできるように、 私は、それらを直接接続するために、(100%不可能であっても)それらを毎回尋ねることなく。クライアントログイン - クレデンシャルをクライアント側に安全に保存する方法
答えて
私は3つのアプローチのいずれかをお勧めします。
は、認証トークンを使用してのすべてのパスワードを保存することは避けてください。このモデルでは、ユーザーは一度ログインし、サーバーは固有の大きなスパーストークンを生成し、クライアントはログインして「パスワード」として使用できます。サーバーは一度に1つのクライアントからのみこのトークンを受け入れます。したがって、2つのクライアントが同時に使用しようとすると、トークンは無効になります。また、トークンは通常、一定期間(1週間、2週間、1年、適切なもの)の後に無効にされます。トークンが無効化されると、ユーザーは手動で再度ログインし、プロセスが繰り返されます。これは、基本的にGmailやそれに類するウェブサイトのログイン方法です。
パスワードを保存する必要がある場合は、OSに依存して管理することをお勧めします。 WindowsとMacの両方には、安全なストレージシステム(それぞれDPAPIとKeychain)があります。しかし、Linuxには常時利用可能な優れたソリューションがないため、市場によって異なります。 OSを使用する利点は、OSがあなた自身が簡単には提供できない保護機能を提供できることです。ユーザーは、再現されにくいレベルまでOSストレージ(スマートカードなどを使用)全体の保護を一元的に管理できます。 OSセキュアストアは、通常、ユーザにとっては非常に便利です。
いずれもオプションでない場合は、アプリを起動するたびに入力する必要があるマスターパスワードで暗号化されたファイルを保存します。これはFirefoxの仕組みです(少なくとも私が最後に見たのは、しばらくありました)。これは合理的には安全ですが、ユーザーにとってはあまり便利ではありません(そして、利便性が低いことはしばしばユーザーによる採用の低さ、または単純なパスワードによる不適切な使用などを意味します)。私はこれを実装する方法の例として、Firefoxコードを調査します。
最善の方法は、他の人にそれらを保存し、代わりにその当事者を信頼させることです。しかし、コントロールが必要な場合は、安全なシステムで良い本を読んでから、再び考えてみることをお勧めします。考慮すべき多くの変数がありますが、リスクとコストを緩和するだけの時間がほとんどです。
- 1. Androidでクレデンシャルを保存する安全な方法
- 2. レスキュー元のクライアント側に秘密鍵を安全に保存する方法は?
- 3. textField.textを安全にアンラップしてプロパティに安全に保存する方法
- 4. ファイルをアンドロイドでディスクに安全に保存する方法は?
- 5. 安全にanglejsにパスワードを保存する方法
- 6. Oauthを安全にアンドロイドに保存する方法
- 7. iphone ..にSQLiteデータベースを安全に保存する方法は?
- 8. データベースにユーザー入力コードを安全に保存する方法
- 9. Webアプリケーションのメールサーバーにパスワードを安全に保存する方法
- 10. サーバーにファイルを安全に保存する方法
- 11. 安全にAndroid KeyStoreのパスワードを保存する方法
- 12. MySQLデータベースにPHPオブジェクトを保存する安全な方法は?
- 13. ユーザー名/パスワード(ローカル)を安全に保存する方法は?
- 14. ASP.NETメンバーシップでサービスパスワードを安全に保存する方法は?
- 15. 安全な文字列をAndroidに保存する方法は?
- 16. HeidiSQLのパスワードを安全に保存する方法
- 17. PHP:情報をクッキーに保存する安全な方法は?
- 18. アクセストークンを安全に保存する
- 19. 安全にキーストリング値を保存する
- 20. 安全にAPIを保存する
- 21. .pdfファイルをサーバー側からクライアント側に保存する方法は?
- 22. クライアント側にデータを保存する - 操作から保護する方法?
- 23. sympyオブジェクトを安全に保存して読み込む方法
- 24. クライアントのJavascriptにJWTを保存するのは安全ですか?
- 25. データを保存する最良の方法クライアント側
- 26. Flaskにセッションごとに資格情報を安全に保存する方法
- 27. iOSで暗号化キーを保存する安全な方法
- 28. フロントエンドテストで資格情報を保存する安全な方法
- 29. React Nativeを使ってiOSにデータを安全に保存する方法は?
- 30. クライアントのデバイスに保存するのは安全ですか?AWS Temporary Credentials(STS)?
あなたのOSとしてLinuxを使用している場合は、いくつかの解決策がありますか? – artgon
@artgonでは、安全なパスワード記憶域の最初のルールは、パスワードを入力するかトークンを提示することによって、ユーザーが最終的に自分自身を認証する必要があることです。あなたがそれを必要としない解決策を見つけたら、あなたは安全でない解決策を見つけました。つまり、見るべきことは、GNOME Keyring、pwsafe、keystorage.net(モノ)です。それらのうち、私はおそらくGNOME Keyringから始めるでしょう。 –
この偉大な答えをありがとう@RobNapier 1つの質問:どのように2つのクライアントが同時にトークンを使用しようとしているかどうか確認できますか? –