TLS暗号通信シミュレータ

TLS暗号通信シミュレータ

by Jinenjo_000

👁 368 ❤️ 20 ⭐ 19 🔄 0
Created: Oct 10, 2023 Last modified: Mar 19, 2024 Shared: Nov 19, 2023

Description

使用している暗号方式 楕円曲線暗号 X25519 : RFC 7748 Ed25519 : RFC 8032 共通鍵暗号 AES-GCM : https://csrc.nist.rip/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf ハッシュ関数 SHA2 : FIPS180-2 PBKDF2 : RFC 8018 SHA3 : https://keccak.team/keccak_specs_summary.html

Instructions

⚠ 非常に重い処理が含まれています。 >> https://turbowarp.org/905707628 インターネットなどで暗号通信が行われる様子のシミュレーションを作ってみました。 "https://jinenjo.example.jp" というサイト(実在しません)に自分のIDとパスワードを送るために、安全な接続を確立したいという設定です。 まずサーバーに公開鍵を送ってもらいます。クライアントは、受け取った公開鍵が本物かどうか確認するために、サーバー証明書などの検証を行います。証明書は認証局によって署名されています(EdDSA)。 相手が本物だと確認出来たら、クライアントは自分の公開鍵をサーバーに送り、これによってお互いに秘密の情報を共有します(ECDH)。 最後に共有した秘密の情報と双方の乱数から安全な鍵を生成します。以降の通信内容をこの鍵によって暗号化することで、安全に情報をやり取りすることができます(AES-128)。 攻撃を受けた場合のシミュレーションもあり、時々警告画面が表示されることがあります。 ※ 証明書の検証には非常に時間がかかります。 ※ 実装には省略した部分や不正確な部分があります。 ※ セッションIDがよく分からない ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ⚠SUPER SLOW on Scratch Recommend: >> https://turbowarp.org/905707628 This is a simulator of cryptographic communication on the Internet. It shows what is happening when you access a site "jinenjo.example.jp" (Of course it's just an example) and establish secure connection before you send your userID and password. First, we request server a public key. To ensure the key we received is genuine one, we check a "Server Certificate" signed by trustable third party, "Certificate Authorities". Seond, we generate pair of our secret key and public key, then send a public key to server. By exchanging public key each other, we can generate same secret string from them. Finally, we generate a session key from shared secret and some random number. All contents are encrypted with this key, and safely delivered. It also simulate when you are attacked so it sometimes show warning messages. *It takes very long time verify chain certificate. *There are some inaccuracies or omissions. #math #cryptography #encryption

Project Details

Visibility
Visible
Comments
Enabled