"أستطيع أن أقول شيئًا واحدًا فقط عن مملكة الظلال: هناك حقيقة وهناك ظلالها ؛ هذا هو جوهر كل شيء. في العالم الحقيقي ، لا يوجد سوى Amber ، المدينة الحقيقية على الأرض الحقيقية ، والتي يتم فيها جمع كل شيء. ومملكة الظلال ليست سوى اللانهاية للواقع. هنا يمكنك أيضًا العثور على كل شيء - لكنه سيكون ظلالًا ، انعكاسًا مشوهًا للواقع. يحيط مملكة الظلال العنبر من جميع الجهات. وخارجها ، تسود الفوضى. كل شيء ممكن في الطريق من العنبر إلى مملكة الفوضى ".روجر Zhelyazny. تسعة أمراء عنبر
بدأ كل ذلك بالحاجة إلى العمل باستخدام نفس المفتاح على etoken من محطات عمل مختلفة عن بُعد (ستكون USB عبر IP باهظة الثمن لبعض الرموز) ورغبتي الكبيرة في فتح هذا العالم المغلق.
صادفت العمل
habr.com/post/276057 الذي
يحظى مؤلفه باحترام كبير ، في مشروعي تم استخدام جزء كبير من الوظائف التي عكسها (الكود مفتوح). صحيح ، كما اتضح ، كل شيء يعمل مع etsdk.dll يعمل فقط مع السمك الأزرق. لذلك ، بالنسبة لـ JaCarta ، كان لا بد من إعادة كتابة وظائف جديدة ، وكان يتعين تحرير بعضها.
كنتيجة للبحث الطويل ، ظهر محرر JaCarta - برنامج يعرض ويسمح لك بتحرير الكيانات (هذه هي الطريقة التي تسمى بها كائنات نظام الملفات الرمزية في الوثائق الرسمية ، والتي تشير فيما يبدو إلى الزوال وعدم الواقعية) على الرموز المميزة من علاء الدين ، بما في ذلك الأحدث منها.
يتوفر تطبيق مماثل لـ Rutoken بشكل عام كجزء من Rutoken SDK (محرر Rutoken) ، لكن بالنسبة إلى علاء الدين ، فهو ليس موجودًا على الأقل في المجال العام ، على الرغم من أنه قبل حوالي 15 عامًا ، واستناداً إلى الوثائق التي تم العثور عليها على الإنترنت ، كان (ETEditor).
البرنامج مكتوب في Autoit ، تم اختباره باستخدام EToken PRO Java 72 K ، و JaCarta LT ، و JaCarta Pro ، و JaCarta GOST-2.
لن يعمل البرنامج إذا تم تثبيت برامج تشغيل Rutoken على الكمبيوتر (من الضروري أن يكون لدى EToken أو Ja Carta رقم القارئ 0).
للسبب نفسه ، يجب توصيل رمز مميز واحد فقط للتشغيل الصحيح.
يستخدم البرنامج النصي مكالمات نظام Window $ ، وتم اختباره فقط مع عائلة نظام التشغيل هذه.
للعمل ، تحتاج إلى تثبيت "JaCarta Single Client" (تنزيل مجاني من موقع الشركة المصنعة) ، وعندما تقوم بتثبيته ، فإن الإصدار الأحدث بشكل ملحوظ من etsdk.dll و jcFS.dll الذي يحتوي على وظائف JaCarta File System (يشبه إلى حد بعيد تلك الموجودة في etsdk.dll ، ولكن في jcFS هناك وظائف أكثر بكثير والتي بدونها سيكون من المستحيل العمل مع بعض jakarts الحديثة ، مثل GOST-2). مع تثبيت العميل الموحد ، من الطبيعي ألا يكون من الضروري البحث ووضع هذا dll في المجلد مع البرنامج ، وإلا ، مع تثبيت برنامج التشغيل لنوع معين من الرمز المميز ، يجب أن يكون هذا dll في مجلد البرنامج.
يتم وصف جميع وظائف jcFS بالتفصيل على موقع الشركة المصنعة ، ولكن مع ذلك ، يجب تحديد بعض معلمات هذه الوظائف بشكل تجريبي.
للوصول إلى الدليل الجذر للرمز المميز ، يجب عليك استدعاء وظيفة ETRootDirOpen أو JCRootDirOpen (وهو نفسه ، حيث أن الأولى في dll تستدعي الثانية ، وهذا صحيح بالنسبة لجميع الوظائف تقريبًا ، ولكن هناك بعض الاستثناءات القليلة) مع معرف بائع 0 (سيسمح الثوابت مثل 0xF007 شاهد الأدلة الفردية فقط من eToken القديمة التي تخزن مفاتيح البنوك التي تم إنشاؤها باستخدام الأدوات المساعدة مثل PKIAdmin و MessagePRO).
الميزة المهمة التالية في jakarta الحديثة هي الحاجة إلى معرفة معرف التطبيق الصغير المثبت على الرمز المميز ، وظيفة JCSelectApplet هي المسؤولة عن هذا.
عادةً ما تحتوي الرموز القديمة على برنامج صغير افتراضي ، ولا يُطلب استدعاء هذه الوظيفة تحديدًا ، ولكن بالنسبة إلى jakarts الجديدة والجديدة نسبيًا دون معرفة معرف التطبيق الصغير ، يصبح العمل الإضافي مستحيلًا. استدعاء جميع الوظائف التي تتلقى معلومات من الرمز المميز في هذه الحالة بإرجاع خطأ. في مشروعي ، في هذه الحالة ، يتم تنفيذ القوة الغاشمة ذات المرحلتين (الرمز المميز يستجيب دائمًا لمعرفين ، ولكن يعمل واحد منهم فقط) معرف والمزيد من العمل مع القيمة المطلوبة.
يتم عرض جميع المعلومات في نافذة الإخراج الموجودة تحت شجرة الدليل.
تم إدخال رمز PIN ، كما يتم عرض معلومات حول المحاولات المتبقية لإدخاله.
يتم عرض محتويات الدلائل والمعلومات الموجزة حول الملفات: الاسم ، سواء كان الملف هو معلومات خاصة ، هو رمز PIN خاص - الحرف p: (الملف عام بعده ، الوحدة خاصة) وحجم الملف بالبايت بعد "s:". يتم فتح الملف بالنقر المزدوج.
يمكنك عرض محتويات الملفات الرمزية ونسخها إذا لزم الأمر إلى المخزن المؤقت بتنسيق سداسي عشري أو حفظها في شكل ثنائي إلى جهاز كمبيوتر.
يمكنك أيضًا تغيير محتويات الملف وتحديد "حفظ التغييرات" في القائمة (يجب إدخال رمز PIN أولاً ، إذا لم يتم إدخاله ، سيتم عرض رسالة مناسبة ، وفي هذه الحالة يمكن اختيار البيانات التي تم تحريرها ونسخها إلى الحافظة).
لحذف ملف ، حدده وانقر فوق "حذف" ، وبعد ذلك ستظهر نافذة تأكيد.
يحتوي نظام ملفات JaCarta على ميزة مثيرة للاهتمام ، وهي موجودة على جميع الرموز التي اختبرتها. إذا قمت بإنشاء دليل أو عدة أدلة بدون ملفات على الرمز المميز ، أثناء الجلسة التالية للعمل مع الرمز المميز ، فإنها ستختفي ، على ما يبدو بهذه الطريقة ، يتولى نظام الملفات حفظ ذاكرة الرمز المميز وتنظيف جميع البيانات المهملة.
لذلك ، عند النقر فوق الزر "إنشاء" في البرنامج ، يتم إنشاء سلسلة على الفور من دليل أو دليلين وملف. عمق تداخل الدلائل في البرنامج اثنين ، وليس حساب الجذر. في الدليل الجذر ، يمكنك فقط إنشاء أدلة ، ولكن ليس ملفات.
قبل إنشاء أو تحرير أو حذف كيانات ، يجب إدخال رمز PIN.
ملاحظة مهمة جدا حول أسماء الدليل!
على الرموز المميزة حيث يتم إنشاء المحتوى من قبل الشركة المصنعة ، فلن تشاهد الدلائل بنفس الاسم ، أينما كانت. هذا بسبب ميزات نظام الملفات.
افترض أن لدينا الكيان التالي على الرمز المميز: //
0001 / A001 / 0008 (أي ، المجلد 0001 موجود في الدليل الجذر ، والمجلد A001 فيه ، والملف 0008 موجود فيه) ، ونحن ننشئ كيانًا جديدًا على الرمز المميز: // CC00 /
0001/1010 . عند الوصول إلى الملف 1010 ، سيبدأ البحث عن الدليل 0001 ، والذي يقع في الجذر وسيتم العثور عليه أولاً ، ولكن لا يوجد مثل هذا الملف فيه. نتيجة لذلك ، تقوم الدالة بإرجاع False وفقدان الكيان ؛ لا يمكنك الوصول إليها وحذفها أيضًا. التهيئة الرمز المميز فقط سوف يساعد.
من الجدير بالذكر أن EToken PRO و JA Carta Pro ، اللذان يختلفان فقط في المظهر ، لديهم ملفات النظام في الدليل الجذر (يتم عرضها على الشاشة) ، حيث يتم تخزين تجزئة الرمز السري الخاص به ، وتغيير خيوط الملفات هذه إلى حقيقة أن التفويض يصبح مستحيلاً (رمز التعريف الشخصي يصبح غير صحيح) وبعد ذلك فقط التهيئة ستساعد.
فيما يتعلق بالمفاتيح الخاصة ، كان من الممكن إنشاء ما يلي: إذا تم تخزين حاوية تم إنشاؤها بواسطة موفر تشفير تابع لجهة خارجية ، مثل CryptoPro ، على الرمز المميز ، فسيتم توفير جميع محتوياته ، بما في ذلك المفاتيح الخاصة ، إنه مجرد محرك أقراص محمول برمز PIN (كما هو موضح في الصورة). إذا تم إنشاء زوج المفاتيح على متن الرمز المميز باستخدام PKCS11 ، فلن تتوفر سوى الشهادة والمفتاح العمومي.
نظرًا لأن هذا برنامج تجريبي ، لا أوصي باستخدامه مع رموز تحتوي على مفاتيح EDS صالحة ، حيث يتم تنفيذ جميع العمليات وفقًا لخوف المجرب ومخاطره. وينطبق هذا بشكل خاص على إنشاء كيانات جديدة ، وفي بعض الحالات يصعب التنبؤ بالنتيجة.
تم الحصول على جميع المعلومات لإنشاء البرنامج من المصادر المفتوحة ، والغرض من إنشائه هو البحث البحت.
السيناريو نفسه
JACartaEditor.au3#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <EditConstants.au3> #include <TreeViewConstants.au3> #include <GuiTreeView.au3> #include <GuiMenu.au3> #include <MsgBoxConstants.au3> #include <StaticConstants.au3> #include <GuiButton.au3> #NoTrayIcon ; jcFS.dll Dim $ETSdkDll=DllOpen(
مصادر المعلوماتإصدار دليل مطوري eToken 3.50 (ديسمبر 2003)