[TIL] # 36 JWT, Bcrypt
bcrypt,jwtはapi検証と認可プロセスによって使用される
会員加入後、私の情報はサーバーのDBに保存されます.
これに基づいて認証と認証を行う場合、
これは私の情報を守るために作られたものです.
プレイヤー個人情報の受信
パスワードを暗号化してDBに保存
ここではBcryptを用いて暗号化しDBに格納する
ログイン
暗号化されたパスワードと入力されたパスワードの比較
一致時にtokenを送信
jwtを使用して重要でない情報を持つtokenを発行する
ログインするデータにアクセスする場合はtokenを使用してユーザーを検証します.
機能はログインごとに使用できます
一方向ハッシュ関数.
パスワードの保存
パスワード生成暗号メッセージ
たんほうこうせい
Bcryptは、Blowfishという名前のパスワードに基づいたパスワードハッシュ関数です.
Bcryptはgensaltで暗号化
ここでgensaltはランダムstringを作成してsaltingを行うプロセスです.
このように暗号化されたパスワードには60バイトのコードがあります
Rainbow table Attack.
これは、所望のハッシュ値を計算したテーブルを用いて暗号化メッセージを識別する方法である.
これを比較するために,一方向hash関数は2つの方法を用いる. Salting key Stretching
入力したデータに追加の文字列を追加して暗号化します.
このプロセスはsaltingと呼ばれています
ハッシュ操作は、復号化のプロセスではなく、複数回行われる.
Bcryptはgensaltで暗号化
byteタイプのコードとsalt値を入力して暗号化
上の場合は同じパスワードを何度も保存しています.
バイトコードが異なることがわかります
Json Web Tokenの略
アクセスtokenを発行する多くの方法の一つです
ログインするとトークンが発行され、そのトークンを使用してユーザーを検証します.
後続サービスにログインせずに機能を使用
tokenはヘッダを介してフロントに渡されます
以前は、バイトコードのtokenを使用していました.
stringのtokenを交換します
アルゴリズムとトークンタイプの場所
ヘッダの内容はBASE 64で符号化され、JWTの第1の部分に記録される
情報を含む部分.
公開クレーム(expなど)は、満期時間を表します.
およびクライアントとサーバの間で協議する際に使用される専用クレーム.
これら2つの要素を組み合わせてBASE 64を符号化して2番目の要素に配置する
シンボルは、BASE 64 URLで符号化されたヘッダと、ヘッダとして指定されたロードJWTsecretである
アルゴリズムを使用して暗号化して送信
フロントエンドで送信されたトークンに偽造・改ざんされた部分があるかどうか.
暗号化されたコンテンツではなくコードされたコンテンツが含まれており、誰もがオリジナルを見ることができます.
したがって、重要な情報はトークンとして格納されない
JWTサイトにアクセスすると、エンコードされたコンテンツが何であるかを特定できます.
会員加入後、私の情報はサーバーのDBに保存されます.
これに基づいて認証と認証を行う場合、
これは私の情報を守るために作られたものです.
ログインプロセス
プレイヤー個人情報の受信
パスワードを暗号化してDBに保存
ここではBcryptを用いて暗号化しDBに格納する
ログイン
暗号化されたパスワードと入力されたパスワードの比較
一致時にtokenを送信
jwtを使用して重要でない情報を持つtokenを発行する
ログインするデータにアクセスする場合はtokenを使用してユーザーを検証します.
機能はログインごとに使用できます
Bcrypt
一方向ハッシュ関数.
パスワードの保存
パスワード生成暗号メッセージ
다이제스트( digest )
元のメッセージを知っている場合は簡単に復号できますが、暗号化されたメッセージは元のメッセージを取得できません.たんほうこうせい
Bcryptは、Blowfishという名前のパスワードに基づいたパスワードハッシュ関数です.
Bcryptはgensaltで暗号化
ここでgensaltはランダムstringを作成してsaltingを行うプロセスです.
このように暗号化されたパスワードには60バイトのコードがあります
弱点
Rainbow table Attack.
これは、所望のハッシュ値を計算したテーブルを用いて暗号化メッセージを識別する方法である.
これを比較するために,一方向hash関数は2つの方法を用いる.
Salting
入力したデータに追加の文字列を追加して暗号化します.
このプロセスはsaltingと呼ばれています
Key Stretching
ハッシュ操作は、復号化のプロセスではなく、複数回行われる.
Bcryptでのセキュリティ
Bcryptはgensaltで暗号化
def hashpw(password: bytes, salt: bytes) -> bytes:
bcryptのDefinitionが見えたらhashpwを作成中byteタイプのコードとsalt値を入力して暗号化
上の場合は同じパスワードを何度も保存しています.
バイトコードが異なることがわかります
JWT
Json Web Tokenの略
アクセスtokenを発行する多くの方法の一つです
ログインするとトークンが発行され、そのトークンを使用してユーザーを検証します.
後続サービスにログインせずに機能を使用
tokenはヘッダを介してフロントに渡されます
以前は、バイトコードのtokenを使用していました.
stringのtokenを交換します
構成
見出し
アルゴリズムとトークンタイプの場所
ヘッダの内容はBASE 64で符号化され、JWTの第1の部分に記録される
payload
情報を含む部分.
公開クレーム(expなど)は、満期時間を表します.
およびクライアントとサーバの間で協議する際に使用される専用クレーム.
これら2つの要素を組み合わせてBASE 64を符号化して2番目の要素に配置する
Signature
シンボルは、BASE 64 URLで符号化されたヘッダと、ヘッダとして指定されたロードJWTsecretである
アルゴリズムを使用して暗号化して送信
フロントエンドで送信されたトークンに偽造・改ざんされた部分があるかどうか.
暗号化されたコンテンツではなくコードされたコンテンツが含まれており、誰もがオリジナルを見ることができます.
したがって、重要な情報はトークンとして格納されない
JWTサイトにアクセスすると、エンコードされたコンテンツが何であるかを特定できます.
Reference
この問題について([TIL] # 36 JWT, Bcrypt), 我々は、より多くの情報をここで見つけました https://velog.io/@ddalkigum/TIL-36-JWT-Bcryptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol