セキュアテキストメッセージングサービス

ソファに横になってお茶を飲みながら、テキスト情報を安全に交換するサービスを作成する必要があることに気づきました。 この問題の完全な意義を認識し、徹底的にそれに取り組みました。 このアクションの重要性を認識したソファは、これを手伝うことにしました。 一緒に、夢に焦点を合わせて克服し、素晴らしいオープンソースサイトを作りました。 ソースはこちら 、ショーケースはこちら (すべてGithubにあります)。



私が達成した主な機能:





ブラウザーのデータ暗号化は、標準ブラウザーライブラリによって提供されます。 データはPepeカエルの形のアルゴリズムで暗号化されます。 ソースコードはgithubで入手できます。 サーバー側は記述されていません。



暗号化アルゴリズムについて少し。 怠け者でサーバーを購入する意思がないため、サーバーに何も送信しません。クライアントを情報のキーパーとして使用し、リンク内のすべてを暗号化します。 URLのデータを読み取ることができるように、パスワードを覚えておく必要もあります。



これらのサービスの多くは暗号化にAESアルゴリズムを使用しており、キヤノンから離れないことにしましたが、元の文字列を次の順序で数回暗号化することで再保険をかけました。



画像



上から下、左から右に移動して、画像内の各文字を特定の関数として解釈し、毎回新しい関数で文字列を暗号化して確認しました:





カエルのペペの画像は、これらの目的に最も適しているように見えました。



結果はこのサイトです:



画像



少し待ってから、メッセージのリンクとパスワードを受け取りました。



画像



ご覧のとおり、スクリーンショットが可能であることを想定しましたが、この場合、攻撃者はリンクまたはパスワード全体を見ることができず、メッセージを解読できなくなります。 また、パスワードはソーシャルエンジニアリングから保護され(ユーザーのパスワードが既存のパスワードと一致しないことが判明しないため)、パスワードはギャングの暗号解読(一般的には直腸)から保護されます。 。



ユーザーのリンクをクリックしてパスワードを入力した後、メッセージを読んだ直後に閉じる必要があります。



画像



繰り返しますが、サーバーにデータを送信しないため、サーバーがハッキングされた場合にデータを盗むことはできません。 これについて考えた後、私たちは人々のためにコードをできる限り明確にすることを決定し、これらの目的のためにVanillaJSフレームワークを使用しました (Webサイトでその主な機能に慣れることができます)。 わかりやすくコンパクトにするために、すべてのコードをindex.html内に配置します。



図書館についてのコメントとレビューを歓迎します。 また、改善のためのアイデアがある場合は、それらを表明してください。



All Articles