ما هو عليه
تم طرح فكرة إنشاء مشروعي الصغير على الإنترنت لحماية المستندات من التزوير من خلال نقاش في منتدى متخصصين في تشخيص الخلل مكرس للتزوير الكلي لاستنتاجات مراقبة الجودة التي أصدروها.
أثناء تنفيذ مشروعي ، أدركت أنني توصلت إلى مفهوم التوقيع الرقمي الإلكتروني ، أي دراجة ، بالطبع ، لم أخترع ، لكن قصة طريقي قد تكون مفيدة.
أهمية مهمة الحماية ضد المنتجات المقلدة
والحقيقة هي أنه في قرننا من المعلومات غير الورقية ، وليس بناء عاصمة واحدة ، سواء كان ذلك خط أنابيب للغاز أو مركزًا للتسوق ، يمكن القيام به دون إعداد مجموعة كاملة من الوثائق المصنّعة ، والتي جزء منها عبارة عن استنتاجات حول الاختبارات غير المدمرة (بصرية ، إشعاعية ، فوق صوتية).

هذا الاستنتاج عبارة عن مستند تم إعداده على شكل معين مع استنتاج حول مدى ملاءمة أو عدم ملاءمة ، على سبيل المثال ، لحام. تكلف خدمات الاختبار غير المدمرة الأموال ، وغالبًا ما تكون كبيرة جدًا. يجوز للعميل / الوسيط عديمي الضمير استئجار مختبر معتمد ، وتلقي عدة آراء منه ، ووقف أو تعليق العمل.
ما المفاجأة التي قد تكون لدى مشغل كاشف الخلل أو رئيس المختبر عندما يعلمون أنه حتى بعد انتهاء العمل ، يتم إصدار الاستنتاجات بالنيابة عنهم ، ويتم وضعهم على أختام وهمية وتوقيعات مزورة. سمعة المختبر تعاني ، وفي الواقع ينتهك القانون. إنه فقط في عدد من الحالات لن يعرفها أحد.
كجزء من المناقشة - كيفية حماية مستنداتك ، تم التعبير عن الفكرة لوضع رمز الاستجابة السريعة على المستند الذي سيتم فيه تسجيل رقم الاستنتاج وتاريخه واستنتاجه حول مدى ملاءمة أو عدم ملاءمة عنصر التحكم. لماذا تعتبر هذه الطريقة جيدة - سيظل رمز QR قابلاً للتمييز بوضوح عند المسح الضوئي ونسخ المستند.
ومع ذلك ، سيكون بإمكان المحتالين أيضًا إنشاء رمز الاستجابة السريعة مع المحتوى اللازم.
ولادة فكرة
وبعد ذلك تلاشت فكرة - لماذا لا تشفير محتويات مثل رمز الاستجابة السريعة مع خوارزمية موثوقة. إذا كان الأمر كذلك ، فأنت بحاجة إلى التوصل إلى طريقة لفك تشفيرها عند المسح الضوئي ، على سبيل المثال ، من خلال كاميرا الهاتف الذكي. هنا ولدت الفكرة للقيام بفك التشفير على جانب خدمة الويب ، والتي ستخزن مفتاح فك التشفير.
آخر مرة قمت فيها بإنشاء موقع في عام 2000 في برنامج "المفكرة" ولست على دراية كبيرة بتقنيات إنشاء مواقع الويب الحديثة ، لذلك اخترت Wix ، معتقدًا أنه بمساعدة الخدمة ، سأحصل على صورة جميلة وأقل إمكانيات للعمل مع قاعدة بيانات ، ورمز Wix سوف أشفر ذلك ماذا احتاج؟
يجب أن أقول على الفور أنني فعلت ذلك دون صعوبة كبيرة وفي أمسيات قليلة ، تمكنت ، بصفتي هاوية ، من تجميع الحل الذي أحتاجه من أكثر أو أقل من الكتل الجاهزة.
التشفير
أخذت
خوارزمية تشفير 128 بت AES النهائية مع تنفيذ Java Script على Github ووضعها في القسم الخلفي للموقع.
ربما كان هذا هو الجزء الأسهل من العمل. كيف يعمل التشفير نفسه لم يكن مثيرا للاهتمام بالنسبة لي. كنت قلقة بشأن عظمة الخطة.
الشيء الرئيسي هو عدم نسيان ترجمة النص المشفر إلى بايت ، وينتج عن التشفير 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);
توليد رمز الاستجابة السريعة
لقد استخدمت
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 ميزات تسجيل المستخدم الأساسية وتحرير الملف الشخصي. الأداة هي عربات التي تجرها الدواب إلى حد ما ، ولكن عملي.
أحتاج فقط لإضافة حقل يصف اسم المؤسسة التي يمثلها المستخدم المسجل ، ولكن هذا الحقل للقراءة فقط ويتم ملؤه بواسطة مسؤول الخدمة عندما يتلقى تأكيدًا بأن المستخدم المسجل يمثل المؤسسة المحددة بالفعل.
كان من الضروري أيضًا ربط أبسط المنطق المرتبط بوصول مدفوع / مجاني إلى الوظائف (يمكن حماية ما يصل إلى 20 مستندًا شهريًا مجانًا) ومدة الدفع مقابل الخدمات.
مبدأ العمل
يرتبط مفتاح التشفير الخاص الفريد بحساب المستخدم.
يقوم المستخدم الذي قام بتسجيل الدخول بملء نموذج بمعلومات حول الاستنتاج (الرقم والتاريخ والنتيجة):

ثم تقوم الخوارزمية بإرجاع عنوان URL يحتوي على نص مشفر TEXT ويعمل كمفتاح عام USER_ID ، كما في المثال أدناه:
https:// * * /checkqr?user=3b01b0aa-68a0-4521-ab12-f17b86d3eabc&v=1.0&text=8a026594c26be959f4280e28fe8402c1acef233e369a31613d654d3b0a5bbaca206f3058d27d2fde66b65cb64a5a6caecb69b07ad39c0015e923dad89eb723
يتحول عنوان URL إلى رمز الاستجابة السريعة ، والذي يضعه المستخدم بالفعل على وثيقته عن طريق نسخه إلى الحافظة (يمكنك تضمينه في الملف المصدر أو لصقه كملصق على مستند مطبوع نهائي).

ما هو مهم هنا - على هذا النحو ، لا يتم إدخال المعلومات في قاعدة بيانات الموقع ، ولكن يبقى فقط في شكل هذا الرابط ورمز الاستجابة السريعة الذي يحتوي على هذا الرابط. وبالتالي ، لا يتم تخزين أي معلومات حول محتويات المستند المحمي على الخادم.
يتم فحص الكود بواسطة الموقع عند تحليل الرابط
للتحليل عندما يتعرف أحد المواقع على رابط ، استخدمت التعليمات على كود Wix
www.wix.com/code/reference/wix-http-functions.htmlإذا حدث خطأ ما أثناء فك التشفير ، فقد يحدث ذلك إذا تم إجراء بعض التغييرات على رمز الاستجابة السريعة الأصلي
"تم فك تشفير رمز المستند مع وجود خطأ. ممكن وهمية. اتصل بالمنظمة التي أعدت المستند للتوضيح. "
إذا تم الانتهاء من فك التشفير بنجاح ، فسيصدر النص الذي تم فك تشفيره والذي يحتوي على اسم المختبر ورقم المستند وتاريخ الإصدار والنتيجة ، ويطلب من المستخدم مقارنة نتيجة فك التشفير مع ما يراه في المستند الحقيقي.
الخاتمة
من ولادة الفكرة ، توصلت إلى تنفيذ عملي مع عدد من الطوب المصنوع مسبقًا.
أدعوك إلى مناقشة الفكرة التي توصلت إليها ، وهي محاولة لاختبار / اختراق خدماتي.
ما زال يتعين الانتهاء منها
اكتب نتائج التنفيذ على habr- فهم كيفية إعادة تعيين الاستعلام إذا كان هناك بالفعل رابط الاختيار مرة واحدة
- لمعرفة كيفية تقليص النص المشفر ، لأنه عندما يتم تشفير عنوان URL طويل ، يكون حجم رمز الاستجابة السريعة كبيرًا جدًا
- أضف القدرة على نسخ الشفرة إلى الحافظة أو إرسالها عبر البريد الإلكتروني بنقرة زر واحدة (حتى أحسب كيفية القيام بذلك في javascript)
- تحسين العمل مع النسخة المحمولة
الرد الأولي على النقد المحتمل:
ألا يسهل على المختبر الاحتفاظ بسجل للاستنتاجات على موقعه على الويب ، وهل تؤدي علامة QR مماثلة إلى هذا السجل أو حتى تعرض نسخة من التقرير؟
يمكن القيام بذلك ، ولكن ستكون هناك حاجة إلى عمل يدوي كبير أو إدخال حلول تكنولوجيا المعلومات الخاصة بك كتلك التي طورتها ، لكن من الواضح أن التكلفة ستكون أكثر من تكلفة استخدام حل جاهز.
من المستحيل جعل مثل هذا السجل متاحًا للجميع بشكل عام ، لأن المعلومات ليست علنية ، ولكن يمكن فقط أخذها بعين الاعتبار من قِبل المقاول والعميل و Rostekhnadzor.