vkapiを使用したハッシュステガノグラフィ

こんにちは、Habr。 しばらく前に、ステガノグラフィとは何か、その意味は何か、それは何かを理解することにしました。 そして、いくつかのリンクの後、ハッシュステガノグラフィに関する興味深い記事に出会いました。 疑問が生じた-なぜそのような移転方法を実践しようとしないのか? はじめに-概念実証の形式で。

画像







ハッシュステガノグラフィ?



読者が記事を読みたくない場合(強くお勧めします)、簡単に意味を伝えます。

ステガノグラフィという言葉を聞いたとき、私たちは何を想像しますか? 情報を挿入する特定のコンテナがあります。 コンテナの最初の(できれば2番目)ビューが変わらないように挿入します。 しかし、コンテナに触れることなく情報を転送する方法はありますか?







ここでハッシュステガノグラフィが助けになります。 意味は簡単です-コンテナ(最適なオプションは猫と一緒の写真)を取得し、そこからハッシュを取得します。 ハッシュ1(2,5,10)からシンボル1を切り取ります-文字zを得たとしましょう。 さらに25枚の写真を撮り、運が良ければ、「手紙」-「写真」という形式の26のエントリを含む辞書を得ました。 運が悪い場合は、さらに写真を見る必要があります。 したがって、メッセージの送信に使用できるアルファベットがあります。 サーバーに10個の特定のシールをロードし、受信者はそれらをサーバーからダウンロードし、ハッシュを受け取り、それぞれ1文字を切り取り、「HelloWorld」を受け取ります。 そして、あなたもそれを暗号化すると...







画像







それの由来とvkapiはどこから来たのですか?



したがって、タスクは明確です-入力でメッセージを受信し、圧縮し、暗号化し、シールに変換し、サーバーに送信するプログラムが必要です。 反対側では、写真を取得し、それらを文字に変換し、デコードし、「解除」する必要があります。







現在、サーバーとの間で写真を自由に(ある程度)アップロードできる便利なインターネットサービスが必要です。 私はvk.comを選びました。 必要なものはすべて揃っています-アップロードされた写真の順序を保持する便利なアルバム、素敵なAPI。







そして最後-どこかでたくさんの写真を保存する必要があります。 MongoDBが選択されました。 「画像へのパス-画像のハッシュ-最終使用日」などの記録が保存されています。 目的のハッシュを見つけ、長い間使用されている画像を選択し、提供されたパスを使用してそれをロードします。







そしてそれは機能しますか?



はい、それは本当に機能します。 ダウンロードしてインストールした後、プログラムを実行します。







python vkhs.py -e -l [login] -aid [album id] -m HelloHabr Password: message = HelloHabr len = 10 chip = b'....' len = 18 upload message? Total uploaded: 18
      
      





何が起こったかを確認するために実行します。













18枚の写真で構成されるメッセージを受け取りました。 これは疑わしいことではありません-特に写真が同じトピックにある場合。







次に、メッセージを取得する必要があります。







 python vkhs.py -l [login] -aurl [albumxxxxxxxx_xxxxxxxxx] Password: Login success 1 2 3 4 ... message: HelloHabr    ?
      
      





出来上がり、隠しチャットは機能しています。







問題



それらのいくつかを次に示します。







  1. 圧縮アルゴリズム-提供されているスクリーンショットでわかるように、11文字の長さのメッセージは18文字の長さのメッセージに変わります。 メッセージの長さが長い場合、このアルゴリズムはうまく機能し、ソーステキストを2倍以上減らします。 小さな-ひどく。
  2. DB 定期的に更新する必要があります。 ただし、vkは非常に興味深い方法で写真を保存します。 そこに写真をアップロードすると、サーバーは自動的にそれを圧縮します-そのため、ハッシュも変更されます。 ただし、ハッシュが変更されない写真があります。 理由がわかりませんでした。 データベースは次のアルゴリズムに従って入力されます-インターネットから写真をダウンロードします(理想的には、公園の美しい風景を自分で撮影します)。 次に、それらをVKサーバーにアップロードし、ロードし直します。 ここでもう一度入力して、ハッシュをデータベースに保存し、再度ロードします。 変更されたものを確認し、削除して手順を繰り返します。 ふるいにかけた後、それらの写真はサーバーが好きなままです。 それらをデータベースにロードします。

    ご覧のとおり、操作は非常に快適ではありません。より良い方法を考える必要があります。 ただし、いわゆる同等のハッシュがあります。 たとえば、habrにはクールな記事がありました。 通常のハッシュの代わりに、この「ランダム攻撃」を回避するために、同等のハッシュを取ることができます。


おわりに



行われた作業の結果、使用の概念が証明されました シール ハッシュステガノグラフィには生命権があります。 既存のバージョンで問題と欠点を修正する場合、絶対に安全なチャットを作成できます(理論上)。







このプロジェクトに関連するすべての資料は、私のリポジトリに掲載されています







ユーザーPavelMSTUに、プログラムの概念とこの記事の開発にご協力いただきありがとうございます。








All Articles