問題タブ [password-encryption]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1064 参照

security - メッセージ認証コード(MAC)は、使用されるキーの信頼性を保証しますか?

私は、パスワードを使用してレコードのファイルの機密性、整合性、および信頼性を保護する必要があります。レコードの数は潜在的に32^2を超える可能性があり、各レコードに個別にアクセスできます。

それを実装する1つの方法は

  1. 256ビットのランダムソルトを生成し、ファイルヘッダーに保存します。
  2. PKCS#5のHMAC-SHA256でPBKDF2を使用して、パスワードとソルトから派生キーを生成します。
  3. レコードごとに、96ビットのランダム初期化ベクトルを生成します。
  4. 派生キー、初期化ベクトル、および(追加の認証済みデータとして)ファイル内のレコードの位置を使用して、GCMモードでAES-256を使用して各レコードのコンテンツを暗号化します。
  5. その結果、各レコードには、初期化ベクトル、暗号化されたコンテンツ、およびMACが格納されます。

ただし、GCMとGMACを定義するNIST Special Publication SP800-38Dでは、初期化ベクトルを一意にするために、レコード数を32^2未満にする必要があります。

そこで、別の解決策を考案しました。派生キーをキーとして使用し、ファイル内のレコードの位置を認証(ソルト)するメッセージとして使用して、HMAC-SHA256で各レコードのキーを作成します。

したがって、問題は、キーを生成するときにすでに処理しているので、ファイル内のレコードの位置を追加の認証済みデータとして認証済み暗号化アルゴリズムに提供する必要があるかどうかです。

さらに、HMAC-SHA256(PBKDF2(HMAC-SHA256、password、salt、iterationCount、256)、blockAddress)によって生成されたと思われる異なるキーを使用してすべてのレコードが暗号化および認証されるため、本当に初期化ベクトルを使用する必要がありますか?

ファイルのサイズがわからないので、非常に大きくなる可能性があると思います。

0 投票する
3 に答える
193 参照

security - ハッシュが適用されない場合のデータベースへのパスワードの保存

スタック オーバーフローには、ユーザー パスワードの保存方法に関する多くの質問があります。もちろん、一般的なアドバイスは、パスワードをハッシュしてハッシュを比較することです。

ただし、ユーザーが独自の環境に展開するシュリンクラップ イントラネット アプリケーション (SharePoint など) を構築しているとします。また、HTTP 経由で外部サービスにアクセスするには、ユーザー名とパスワードの組み合わせが必要だとします (API キーまたはフェデレーション セキュリティに依存するソリューションはサポートされていません)。

この場合、呼び出す Web サービスに元のパスワードを渡す必要があるため、パスワードをハッシュすることはできません。暗号化は 2 番目に優れたソリューションですが、暗号化キーには何を使用しますか? 攻撃者がデータベースを侵害した場合、そもそもデータの暗号化に使用されたキーにアクセスできるのでしょうか?

保存されたパスワードの平文バージョンを取得することが本当に必要である場合、最も安全な方法で問題にどのように取り組みますか?

0 投票する
3 に答える
5088 参照

java - JASYPT などの暗号化復号化ライブラリ

パスワードの暗号化/復号化に役立つ JASYPT のような代替ライブラリがあるかどうかを知りたいです。

0 投票する
1 に答える
368 参照

c - パスワードで暗号化されたデータを有効期限とともに保存する方法はありますか?

パスワードで暗号化されたファイルにデータを保存したいと考えています。1) データの有効期限 2) データ自体 有効期限は必ずしも暗号化する必要はありませんが、改ざんから保護する必要があります (たとえば、ファイル全体に署名することができます)。

OpenSSL を使用して明確に定義された暗号形式を使用してそれを行う方法はありますか? 私は C でプログラム的にそれを行うことにのみ興味があり (できれば EVP_* などの OpenSSL API を使用して)、プロセス、スクリプト、Java、.NET、Python などを実行することは問題外です。

PS私はOpenSSL APIに非常に精通していますが、どういうわけか、この問題に対する適切な(少なくとも比較的「クリーンな」)解決策を見つけることができませんでした。

0 投票する
4 に答える
2635 参照

php - PHPMySQLユーザーパスワードの暗号化

私はAES暗号化であるユーザーのパスワードを暗号化するために次の方法を使用しています。これが良い習慣なのか、それとも他の方法で従うべきなのかを知りたいだけです。誰かが「「SALT」を使用してみませんか。SALTAES暗号化を使用できますか?」と混乱させたため、Bellowは私が使用しているサンプルクエリです。

0 投票する
4 に答える
19149 参照

c - OpenSSLコマンドと互換性のあるキー機能へのパスワード?

たとえば、次のコマンドを実行します。

次のようなものを出力します。

そのキーはどのように生成されますか?(答えとしてのCコードはあまりにも素晴らしくて尋ねることができません:))また、ivはどのように生成されますか?

私にはある種のヘックスのように見えます。

0 投票する
2 に答える
142 参照

salt - ソルティングは、パスワード ハッシュにアクセスする攻撃者からどのように保護しますか?

パスワードのソルティングに関するかなりの数の質問を読みましたが、ほとんどの場合、(私が思うに) 私が既に理解していることをカバーしています。あれは; パスワード ハッシュにランダムなソルトを含めるポイントは、まず、パスワードが同じ場合でも 2 つのハッシュが同じになるのを防ぐことです。次に、プリコンパイル済みリストに対してハッシュを照合するレインボー テーブル攻撃を阻止します (プリコンパイル済みハッシュのいずれも、使用したソルトを使用していないため、ソルト/ハッシュごとに新しいレインボー テーブルを生成する必要があります)。誤解している場合は、お気軽に修正してください。

私の質問: 攻撃者があなたのハッシュにアクセスできる場合 (私たちが保護しているシナリオ)、それは彼らがあなたのデータベースにアクセスしていることを意味します. その場合、ハッシュが何であるかは問題ではなく、必要なものに置き換えることができますか?

0 投票する
1 に答える
1817 参照

c# - C# でパスワードを暗号化し、php で復号化する

C#で以下の暗号化方式を使いたいです。しかし、それが利用可能かどうか、そしてそれを正確に使用する方法はわかりません。私はウェブに精通しているため:'(。タスクは、デスクトップアプリで暗号化されたユーザーパスワードを復号化し(C#で記述)、jsonオブジェクトとして送信する必要があります。phpスクリプトを使用して、jsonをデコードする必要がありますオブジェクトとパスワードの復号化. Plz help. これが達成できない場合は、plz は私に使用する解決策を提案します.

このコードを C# で使用したい

ここから暗号化と復号化の方法を取得しました

0 投票する
4 に答える
450 参照

c# - PHPでユーザーパスワードを転送する安全な方法

こんにちは私は最近、インターネットを介してユーザー情報(パスワードを含む)を送信するためのより良い方法を見つけるためにグーグルで検索しています。私たちのサーバーにはSSLがインストールされていません。したがって、ユーザー情報を送信するには、非常にシンプルで安全な方法が必要です。将来、上司はそれを拡張して、.net(C#)で記述されたデスクトップアプリケーションに接続したいと考えています。したがって、メソッドは.netとも互換性がある必要があります。より良いソリューションを開発するためのアドバイスなど、良いアイデアが必要です。

0 投票する
2 に答える
962 参照

jquery - Hash sha-512を使用して、データベース内の暗号化されたパスワードを使用してフォームのパスワードを検証します

ハッシュSHA-512を使用して、データベース内の暗号化されたパスワードを使用してフォーム内のパスワードを検証します。私がやろうとしているのは、特にパスワード変更フォーム用です。

フォームとデータベースのパスワードが暗号化されていないかどうかを検証できます...しかし、入力されたパスワードはまだ通常の形式であり、データベース内のパスワードは暗号化されているため、入力されたパスワードがデータベースのパスワードと等しいことを検証できません。

jQuery検証機能を使いたかったのですが…入力したパスワードをデータベースで暗号化して送信する方法にこだわっていました。