文書を改ざんから保護し、電子デジタル署名を「発明」することを決めた方法

それは何ですか



文書を改ざんから保護するために私自身の小さなインターネットプロジェクトを作成するというアイデアは、彼らが発行した品質管理の結論の完全な改ざんに専念する欠陥調査者のフォーラムでの議論によって促されました。



私のプロジェクトの実施中に、私は電子デジタル署名、つまり自転車の概念に到達したことを理解しました。もちろん、私は発明しませんでしたが、私の道についての話は有益です。



偽物に対する保護のタスクの関連性



事実、私たちの世紀のペーパーレス情報は、単一の資本建設ではなく、ガスパイプラインやショッピングセンターであっても、非破壊検査(視覚、X線、超音波)の結論である一連の完成した文書を準備することなく実行できます。







この結論は、特定の形式で作成された文書であり、溶接などの適合性または不適合性に関する結論が記載されています。 非破壊検査サービスには費用がかかり、多くの場合かなり高い。 悪徳な顧客/仲介者は、認定された研究所を雇い、そこからいくつかの意見を受け取り、作業を停止または中断する場合があります。



探傷作業者や研究所の長が驚いたことを想像してください。仕事を終えた後でも、彼らに代わって結論が出され、偽の封印と偽造された署名が付けられることを知ります。 実験室の評判は苦しんでおり、実際、法律に違反しています。 多くの場合、誰もそれについて知らないでしょう。



ディスカッションの一環として-ドキュメントを保護する方法として、QRコードをドキュメントに配置するというアイデアが表明されました。QRコードには、コントロールオブジェクトの有効性または不適切性に関する結論番号、日付、および結論が記録されます。 この方法が適しているのはなぜですか?QRコードは、スキャン、ドキュメントのコピー時に明確に区別されたままです。



ただし、詐欺師は必要なコンテンツを含むQRコードを簡単に生成することもできます。



アイデアの誕生



そして、考えが思いつきました-信頼できるアルゴリズムでそのようなQRコードの内容を暗号化してみませんか。 その場合は、たとえばスマートフォンのカメラを使用してスキャンするときに、暗号化を解除する方法を考え出す必要があります。 ここで、Webサービス側で復号化を行うというアイデアが生まれました。このサービスは、復号化のためのキーを保存します。



2000年にメモ帳でサイトを最後に作成したとき、私は近代的なサイト構築テクノロジーにあまり詳しくないので、サービスの助けを借りてデータベースを操作するための美しい画像と最小限の可能性が得られ、Wixコードを使用してエンコードすることを考えてWixを選択しました何が必要ですか。



私はすぐに言ったに違いありません。アマチュアとして、多少の既成ブロックから必要なソリューションを完全に組み立てることができました。



暗号化



完成したAES 128ビット暗号化アルゴリズムをGithubのJava Script実装で使用し、サイトのバックエンドセクションに配置しました。



これはおそらく、仕事の最も簡単な部分でした。 暗号化自体がどのように機能するかは、私にとってまったく面白くないというわけではありません。 私は計画の壮大さが心配でした。



主なことは、エンコードされたテキストをバイトに変換することを忘れないことであり、暗号化の結果はHEXになります。



// Convert text to bytes var textBytes = aesjs.utils.utf8.toBytes(text); // The counter is optional, and if omitted will begin at 1 var aesCtr = new aesjs.ModeOfOperation.ctr(key, new aesjs.Counter(5)); var encryptedBytes = aesCtr.encrypt(textBytes); // To print or store the binary data, you may convert it to hex var encryptedHex = aesjs.utils.hex.fromBytes(encryptedBytes);
      
      





QRコード生成



既製のAPIを使用しました。



動作するには、単にhtml1オブジェクトを作成します-任意のhtmlコードを表示し、API関数を呼び出します



 let val = “ " $w("#html1").src = "https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=" + val.toString(); $w("#html1").show();
      
      





ユーザーと連携する



Wixは、基本的なユーザー登録とプロファイル編集機能をサポートしています。 このツールはややバグがありますが、実行可能です。



登録ユーザーが表す組織の名前を記述するフィールドを追加する必要がありましたが、このフィールドは読み取り専用であり、登録ユーザーが実際に指定された組織を表すという確認を受け取ったときにサービス管理者によって入力されます。



また、機能への有料/無料アクセスに関連する最も単純なロジック(1か月あたり最大20ドキュメントを無料で保護できます)およびサービスの支払い条件を固定する必要がありました。

動作原理



一意の暗号化秘密鍵がユーザーのアカウントにバインドされています。



ログインしたユーザーは、結論に関する情報(数値、日付、結果)をフォームに入力します。







次に、アルゴリズムは、次の例のように、暗号化されたテキストTEXTを含み、公開キーUSER_IDとして機能するURLを返します。



https:// * * /checkqr?user=3b01b0aa-68a0-4521-ab12-f17b86d3eabc&v=1.0&text=8a026594c26be959f4280e28fe8402c1acef233e369a31613d654d3b0a5bbaca206f3058d27d2fde66b65cb64a5a6caecb69b07ad39c0015e923dad89eb723







URLはQRコードに変わり、ユーザーはすでにクリップボードにコピーすることでドキュメントに貼り付けます(ソースファイルに含めるか、完成した印刷ドキュメントにステッカーとして貼り付けることができます)。







ここで重要なこと-そのため、情報はサイトデータベースに入らず、このリンクとこのリンクを含むQRコードの形式でのみ残ります。 したがって、保護されたドキュメントのコンテンツに関する情報はサーバーに保存されません。



コードはリンクを解析するときにサイトによってチェックされます



サイトがリンクを認識したときの解析には、Wixコードのヘルプを使用しました

www.wix.com/code/reference/wix-http-functions.html



復号化中に問題が発生した場合、元のQRコードに何らかの変更が加えられた可能性があります

「ドキュメントコードはエラーで解読されました。 偽物の可能性。 明確化のために文書を準備した組織に連絡してください。
復号化が正常に完了すると、ラボの名前、文書番号、発行日、および結果を含む復号化されたテキストが発行され、ユーザーは復号化の結果と実際の文書に表示される内容を比較するように求められます。



おわりに



このアイデアの誕生から、私はいくつかの既成のレンガを使用した実用的な実装に着きました。



私が思いついたアイデア、私のサービスをテスト/ハッキングする試みについての議論にあなたを招待します。



まだ完了していないもの





可能性のある批判に対する予備的な対応:



研究所がそのウェブサイトに結論の記録を保持することは簡単ではありませんか?同様のQRタグがこの記録につながりますか、レポートのコピーを表示しますか?
これを行うことはできますが、かなりの手動作業または私が開発したような独自のITソリューションの導入が必要になりますが、既成のソリューションを使用するより明らかにコストがかかります。



情報が公開されていないため、このような登録を完全に公開することはできませんが、請負業者、顧客、およびRostekhnadzorのみが検討することができます。



All Articles