OpenSC.tokend
برنامج تشغيل البطاقات الذكية مفتوح المصدر لنظام OS X
يجعل tokend المفاتيح والشهادات الموجودة على بطاقتك الذكية تظهر في Keychain Access.app وتكون متاحة للتطبيقات مثل Safari أو Chrome. OpenSC.tokend هو تنفيذ tokend مفتوح المصدر من OpenSC، مع دعم للعديد من بطاقات PKI الذكية الحقيقية الموجودة في الواقع.
تاريخ دعم tokend في OS X
- في عام 2005، مع إصدار OS X 10.4 "Tiger"، قدمت Apple البرنامج الوسيط tokend لجعل البطاقات الذكية التابعة لجهات خارجية متاحة للتطبيقات الأصلية الأخرى في OS X [1]. لم تكن تعليمات البناء لـ tokend متاحة للعموم.
- يمكن اعتبار OS X 10.5 "Leopard" إصدار استقرار، حيث احتوت الإصدارات المبكرة على العديد من الأخطاء التي جعلت استخدام البطاقات الذكية (بما في ذلك tokend) أمراً مزعجاً حقاً [2]. مع 10.5.6، تحولت Apple من برنامج تشغيل قارئ بطاقات ذكية مبني داخلياً إلى برنامج تشغيل CCID مفتوح المصدر الأكثر اكتمالاً من حيث الميزات، والمعيار الفعلي الذي تتم صيانته بواسطة Ludovic Rousseau [3]، مما خفف على الأقل بعض الأخطاء الأساسية.
- كان OS X 10.6 "Snow Leopard" آخر إصدار يتيح مكونات المصدر المطلوبة لبناء tokend (مجمّعة في مجلد البناء للراحة).
- في OS X 10.7 "Lion"، توقفت Apple عن توزيع tokend-s مع نظام التشغيل [3] كما أعلنت تقادم CDSA (التي يُبنى عليها tokend) وكذلك OpenSSL [4] (الذي يستخدمه OpenSC لعمليات التشفير البرمجية).
- في OS X 10.8 "Mountain Lion" وOS X 10.9 "Mavericks"، أجرت Apple تغييرات أصغر على الأنظمة الفرعية الأساسية PC/SC وCCID لكن مكونات tokend المُهجورة ظلت تعمل [5]، [6].
- في OS X 10.10 "Yosemite"، لا تزال قاعدة أكواد tokend (معظمها من 2005..2008!) المطلوبة لبناء OpenSC.tokend تعمل، على الرغم من حقيقة أن المكونات المعتمدة لم يتم تحديثها منذ سنوات وحتى مترجم C++ للنظام قد تغير. التجربة الشاملة على 10.10 غير مستقرة إلى حد ما بسبب إعادة كتابة البنية التحتية الأساسية للبطاقات الذكية، المرتبطة باستبدال pcscd ببرنامج خفي CryptoTokenKit [7]. لا توجد معلومات عامة متاحة حول كيفية إنشاء برنامج تشغيل بطاقات ذكية متوافق مع CryptoTokenKit (هل يمكن أن يكون بسبب الكود المشترك وقفل المورد لمدة عام واحد من ApplePay على iOS [8] ؟).
- في OS X 10.15 "Catalina"، تم تعطيل tokend-s ويجب تمكينها صراحةً:
sudo defaults write /Library/Preferences/com.apple.security.smartcard Legacy -bool true
التثبيت
يتم توزيع OpenSC.tokend مع مثبّت OpenSC لنظام OS X وهو غير متاح بشكل منفصل.
البناء
يتطلب بناء OpenSC.tokend وجود الكود المصدري لـ OpenSC. كما تقوم نصوص بناء OpenSC لنظام OS X ببناء tokend. تتوفر تعليمات مختصرة في كود مصدر نص البناء.
الترخيص
الكود من OpenSC مرخّص بموجب LGPL 2.1+، والمكونات من Apple مرخّصة بموجب APSL 2.0.
المستقبل
نظام tokend بأكمله هو من بقايا الماضي ومقدر له الانقراض في المستقبل القريب، ومع ذلك لا يزال مفيداً مع أحدث إصدارات OS X، ومن غير المعروف متى ستوقف Apple دعمه. من المحتمل أن يكون هناك حاجة لشيء جديد على غرار إضافة CryptoTokenKit في المستقبل، لكن لا توجد تفاصيل أو خارطة طريق أو وثائق أخرى متاحة للعموم (نأمل أن يتغير هذا في مرحلة ما). في هذه الأثناء، لتطوير تطبيقات موجهة للتشفير، يعد PKCS#11 خياراً قابلاً للاستخدام (لكنه بعيد عن الأفضل) للوصول إلى البطاقات الذكية بطريقة قياسية.
مع التحيات،
@martinpaljak