安全なデータ転送のために反対またはポータブルチャネルを実行します

はじめに



1年前、まだ10年生のときに暗号化を始めました。 もっと正確に言えば、私はどのように関与したのか:学校は研究作業を行う必要があったので、RSA暗号を研究することにしました。 抵抗性に関する研究の知識が不足しているため、キーの生成およびアルゴリズムの独自の実装に基づくキーのサイズに応じたテキストの暗号化の時間について、かなり有用な研究が行われました(有用性の観点から)。 いくつかの科学的および実践的な会議で場所を取ったので、私はこのエリア全体をほとんど離れました。 私はほとんどコードを失いました。 しかし、RSAを書いている間、私はデータが「排水管」に流れ込むことについてあらゆる種類のことを読みました。 そして、3か月間私の頭に横たわっていたこの悲しい考えは、新しいプロジェクトのアイデアにそれ自身を見出しました。 通信の少なくとも一部を秘密にしておくことができるデバイスを作成することが決定されました(まあ、または少なくともこれに希望を与える)



計画と実装



私が言ったように、デバイスを作ることが決定されました。 なんで? おそらく、Habréに「住んでいる」ほとんどの人にとって、そのような記事は黄色いプレスのように見えますが、それでも 。 うわさはどこからでも来ません。 したがって、そのようなスキームが開発されました:







これが「逆のこと」を行う場所です。 ほとんどの場合(この「より頻繁に」アクセスできる限り)、情報を暗号化するデバイスはコンピューターからの入力/出力にあり、情報の流れ全体を暗号化します。 出力をコンピューターの出力にします。



残念ながら、ボードの配線の経験は「-1」であり、専門家を助ける人もいなかったので、私は既存の悪の最小のものを選択しようとしました。 Raspberry Piが最良の選択肢のようでした。 そこには、一般的に、便利なものすべて、Linuxと外部画面、UART、USBを接続できます。 彼には、双方向スクリーンとジョイスティックを備えたDVK511拡張ボードを手に入れて、I / OをPCから完全に分離しました。



どういうわけかこのようになった:







主なアイデアの1つは、そのようなデバイスのモビリティです。 高価で、PCからPCに簡単に移植でき、最大数のオペレーティングシステムで動作するものであってはなりません。 さらに重要なことは、独自のチャネルがないことです。 既存のシステムに統合します。 それからそうすることが決定されました:







非対称暗号として、すでに4096ビットのキー長で実装したRSAを使用することを決定し、最も一般的なものの1つとして対称のAES 256ビットを選択しました(時間を節約するためにOpen SSL実装を使用しました))。



私はすべてをQTに実装することにしました-クロスプラットフォームを買収しました。



GUIと暗号化に関しては、おそらく最小の問題が発生しました。 GUIについてはまったく説明しません。QTでは、単純なGUIの実装は15分のタスクです。 暗号化の主な目的は、RAWコードを数字に、またはその逆に慎重に変換することです。これにより、暗号を損失なくプレーンテキストで送信できます。



その後、悪化しました。 ボードの長所には、Cのライブラリがまだ存在し、例さえあるという事実が含まれています...おそらく私にとっては、ここで終了しました。 ジョイスティックが画面と同じポートでハングし、同時に使用できないことが判明しました。 正確には、ジョイスティックを押すたびに、ジョイスティックへのアクセスを閉じ、ディスプレイへのアクセスを開いてから、情報を表示し、ディスプレイへのアクセスを閉じ、ジョイスティックをアクティブにする必要があります。 したがって、各操作には時間がかかります。 一般に、このようなデバイスを自分で作成する場合は、別のボードを用意して、事前にピン配置を確認してください。



そして、最も悲しいことはPCに転送することです。 上記のすべての準備が整ったので、会議が1週間も経たないうちに、RaspberryのBluetoothモジュールを追いかけて満足しています。 買った。 来ます わかりません...そこからファイルが転送されます-いいえ。 どうして? うまくいきませんでした。 そして、すべての人にアクセスを設定し、Bluetooth設定を変更しました。 その結果、最終決定が下されました。 まあ、解決策ではなく、松葉杖です。 すべてが機能するために、PCドライブの一部をマウントし、そこからファイルを取得および取得することが決定されました。



仕事の全サイクルを広げることは意味がありません。 ただし、暗号化のためのテキスト入力は次のようになります。







おわりに



そのようなデバイスがあなたの情報を完全に保護することを保証することは可能ですか? 私は解体しません:私の-いいえ。 ただし、情報の入力を完全に隔離されたデバイスに転送するという概念は機能するはずですが、世界の陰謀を計画したり、FSBで働いている妻からの愛人との通信を暗号化する場合は、ハードウェア乱数ジェネレーターを追加し、いくつかのアルゴリズムの上に他のレイヤーを重ねることをお勧めします、楕円曲線(GOST R 34.10-2012など)で、すべてのバックドアが見つからない可能性が高くなります。 ボード自体をエッチングすることも理想的です。



もう一つ。 OBEXテクノロジーを使用して私よりも成功する場合は、テキストエディターを備えた他のデバイスと完全に連携するようにデバイスを教えることができます。 テキストファイルを使用して、コマンドと暗号化されたメッセージを簡単に転送できます。



類似物はありますか? 良い質問...私が参加した最後の会議に到着した「区別された」ゲストからも同じことが聞かれました。 情報セキュリティデバイスは、Kirkhoffsのすべての原則にもかかわらず、ほとんどの部分が分類されたままであることを理解していますが、パブリックドメインでそのようなデバイスを見つけることができませんでした。 それに応えて、彼らは私に、これに関する情報をパブリックドメインに保存する価値はないだろうと言った? しかし、彼らは仕事に興味があるようで、電話やメールを取りました。 今だけ、どういうわけかそれはずっと前であり、誰も連絡を取りませんでした。



しかし、私は一般的に、個人情報の不可侵の権利は言論の自由の権利と同じくらい重要であると主張します。 記事を書くとき、私の前に疑問が生じました:ソースへのリンクを公開する価値はありますか? プロのプログラマーなら誰でもそのようなデバイスを冬の長い10晩以内に実装できるように思えます。そして、ほとんどの場合「動作する」ために私のコードが必要なのはなぜでしょう。 ただし、誰かがそれを必要とする場合、私はリポジトリを共有できます:LANへの書き込み。



現時点では、資金不足と不十分な理論的トレーニングのために、作業は遠く離れたリポジトリに延期されています。



All Articles