كان وسم ICODE 3 على مكتبي وهاتفي فوقه مباشرة، والتطبيق يقرأ بلا أي عناء كل ما تبوح به الرقاقة: معرّفها، وذاكرتها، وعدّاد لمساتها، وتوقيع NXP الذي يُثبت أنها أصلية. ثم طلبت منه أن يغيّر شيئًا واحدًا فقط، هو العدّاد، فأخبرني أن الوسم ابتعد عن الهاتف.
لكنه لم يتحرّك من مكانه. حاولت من جديد، فظهرت الرسالة نفسها. جرّبت تعيين كلمة مرور بدلًا من ذلك، فظهرت الرسالة نفسها مرة أخرى.
سأعود إلى حقيقة ما كان يجري، فهو أطرف خلل طاردته هذا العام. لكن دعني أشرح أولًا لماذا كنت أعبث بوسم ICODE من الأساس.
أريد أن يكون NFC.cool أقدر تطبيق NFC يمكن أن تضعه على هاتف. وفي هذا الصيف كان ذلك يعني NTAG 424 DNA، الوسوم التي تستخدمها العلامات التجارية لإثبات أن المنتج أصلي. وبعدها كانت أكبر عائلة من الرقائق لا يزال التطبيق عاجزًا عن التخاطب معها فعلًا هي عائلة ICODE من NXP. ومع NFC.cool Tools 7.1.0 صار قادرًا على ذلك.
ICODE، وسوم مرّت بين يديك دون أن تنتبه
إن كنت قد استعرت كتابًا من مكتبة في آخر ٢٠ عامًا، فالأرجح أنك أمسكت وسم ICODE. إنه ذلك الملصق المسطّح ذو الهوائي الملفوف، المثبّت داخل الغلاف. والرقائق نفسها موجودة في ملصقات مكافحة السرقة في المتاجر، وفي بطاقات الغسيل، وملصقات المنتجات.
من الناحية التقنية هي رقائق ISO 15693، وتُعرف في معايير NFC باسم Type 5. أما ملصقات NFC التي يشتريها معظم الناس، مثل NTAG215، فتتبع معيارًا مختلفًا. أتخيّل الأمر كمحطتين إذاعيتين على المذياع نفسه: يستطيع iPhone أن يلتقط كلتيهما، لكن كل محطة تبثّ بلغة مختلفة.
والسبب الذي يجعل المكتبات والمتاجر تختار ICODE هو المدى. فالهوائي الكبير في بوابة المكتبة أو في جهاز الإعارة الذاتية يستطيع قراءة هذه الرقائق من مسافة أبعد مما يتيحه ملصق NFC عادي. أما مع الهاتف فلا يزال عليك أن تقرّبه منها، لأن هوائي iPhone صغير جدًا، لكن الرقاقة صُمّمت أصلًا من أجل تلك البوابات.
قراءة الرابط أو النص المخزّن على وسم ICODE لم تكن يومًا الجزء الصعب. الأشياء المثيرة تكمن تحت السطح: كلمات المرور، والعدّاد، وعلَم مكافحة السرقة، ووضع الخصوصية. وهذا الجزء من الرقاقة ظلّ بابًا موصدًا في NFC.cool حتى الآن.
ما يفعله NFC.cool مع ICODE 3
ICODE 3 أحدث رقاقة من NXP في هذه العائلة، وخليفة ICODE SLIX2. وكثيرًا ما ستجدها معروضة للبيع على الإنترنت باسم «SLIX 3». لكن NXP لا تصنع رقاقة بهذا الاسم، فإن رأيت إعلانًا يذكر SLIX 3، فهو يقصد ICODE 3.
افتح NFC.cool وقرّب الهاتف من وسم كهذا، فترى الصورة كاملة: أيّ رقاقة هي، وذاكرتها، وعدّادها، وهل هي أصلية، فإن كانت كذلك ظهرت لك NXP الأصلية. فـNXP توقّع معرّف كل رقاقة في المصنع، والتطبيق يتحقق من هذا التوقيع، ولذلك لا تستطيع النسخة التي تعيد استخدام المعرّف نفسه أن تزيّفه.
ومن هناك يمكنك تغيير كل ما تتيحه الرقاقة تقريبًا:
عدّاد اللمسات. تستطيع ICODE 3 أن تحصي كل قراءة بنفسها. فعّل مرآة NFC، فتكتب الرقاقة معرّفها والعدد الحالي داخل الرابط المخزّن، وهكذا تفتح كل لمسة رابطًا مختلفًا قليلًا يستطيع موقع إلكتروني أن يحصيه. وإن كنت قد قرأت عن ميزة NFC Tap Counter، فهي الفكرة نفسها على رقاقة مختلفة.
كلمات المرور. تحمل ICODE 3 ما مجموعه ٦ كلمات مرور، واحدة لكلٍّ من القراءة، والكتابة، والخصوصية، والإتلاف، وإعدادات مكافحة السرقة، والتكوين. وكل الوسوم تخرج من المصنع بالقيم نفسها، فلا معنى لأي حماية إلا بعد أن تعيّن كلمات مرورك الخاصة. ويحفظ NFC.cool كلمات مرورك في iCloud Keychain، لكل وسم على حدة.
حماية الذاكرة. يمكنك تقسيم الذاكرة إلى جزأين وحماية كلٍّ منهما على حدة، فتُبقي مثلًا رابطًا عامًا متاحًا للقراءة وتُخفي البيانات المخزّنة بعده.
إعدادات مكافحة السرقة والمكتبات. علَم EAS هو ما يجعل بوابة المتجر أو المكتبة تُطلق صفيرها. وبايت AFI هو ما تستخدمه المكتبات للإشارة إلى أن الكتاب قد أُعير. ويمكنك تغيير كليهما، وقفلهما أيضًا.
وضع الخصوصية. يُخفي الوسم معرّفه وبياناته إلى أن يقدّم أحدهم كلمة مرور الخصوصية.
كشف العبث في نسخة SL2S3003TT، وفيها سلك يمكنك تمريره فوق غطاء زجاجة أو ختم صندوق. ويُظهر التطبيق ما إذا كان الختم قد كُسر يومًا.
توقيعك الخاص. تستطيع العلامة التجارية أن تستبدل توقيع NXP بتوقيعها هي وتقفله.
الإتلاف. يُطفئ الرقاقة إلى الأبد، حفاظًا على الخصوصية حين ينتهي عمر المنتج.
كثير من هذه الإعدادات دائم، وبعضها قد يجعل الوسم بعيدًا عن متناول iPhone نهائيًّا. لذلك يطلب منك NFC.cool، قبل أي خطوة لا رجعة فيها، أن تكتب آخر ٤ أحرف من معرّف الوسم. كما يرفض تغيير أي وسم غير الذي بدأت العمل عليه. ومع ذلك، لو كنت مكانك لجرّبت أي شيء جديد على وسم احتياطي أولًا.
وأصلحت في الطريق أمرًا صغيرًا: صار بإمكانك الآن أن تهيّئ وسم ICODE فارغًا كوسم NFC من داخل التطبيق، فيصبح جاهزًا لاستقبال رابط أو نص.
بقية العائلة
يتعرّف التطبيق على الرقاقة التي بين يديك، ولا يعرض إلا ما تستطيع تلك الرقاقة فعله حقًّا. فرقاقة SLIX أقدم تعرض لك خيارات أقل مما تعرضه ICODE 3، ببساطة لأن ميزاتها أقل.
SLIX وSLIX-S وSLIX-L وSLIX2 ورقائق SLI الأقدم هي الرقائق التي تعتمد عليها معظم المكتبات في عملها اليومي. في SLIX2 عدّاد وحماية للذاكرة. أما SLIX-S فتحمي ذاكرتها صفحةً صفحة، وتدعم كلمات مرور بطول ٦٤ بت، وفيها يحتاج كل وصول محميّ إلى كلمتَي مرور القراءة والكتابة معًا.
ICODE DNA هي فرد العائلة المتخصص في الأمان. تحمل مفاتيح AES سرية لا تغادر الرقاقة أبدًا. أدخِل المفتاح في NFC.cool، فيطالب التطبيق الرقاقة بأن تُثبت أنها تملكه. والنسخة المقلّدة تفشل في ذلك حتى لو تطابق معرّفها وذاكرتها مع الأصل تمامًا.
NTAG 5 هي أكثر ما يحمّسني بصفتي من هواة العبث بالدوائر الإلكترونية. إنها رقاقة NFC مصمّمة لتُركَّب على لوحة دوائر. فنسخة switch تتحكم في أطراف الرقاقة مباشرة، ونسختا link وboost تتخاطبان مع متحكم دقيق عبر I2C. وتستطيع هذه الرقائق أن تشغّل دائرة صغيرة بالطاقة القادمة من مجال هاتفك وحده، وأن تُرسل إشارة عبر أحد الأطراف حين يقع حدث ما، وأن تتشارك ٢٥٦ بايت من الذاكرة مع اللوحة. يقرأ NFC.cool هذه الإعدادات ويغيّرها، بل يستطيع على NTP5332 وNTA5332 أن يتخاطب مع حسّاسات موصولة بالرقاقة، مباشرة من iPhone.
ستجد كل ذلك في أدوات NFC، تحت NXP ICODE وNTAG 5، بجوار NTAG 424 DNA مباشرة. أو امسح وسم ICODE فحسب، وسيفتح التطبيق تفاصيله من تلقاء نفسه.
الخلل الذي لم يُرِد iOS أن أصلحه
لنعد إلى مكتبي وإلى الوسم الذي «ابتعد».
يمنح معيار ISO 15693 الهاتفَ طريقتين للتخاطب مع الوسم. يستطيع أن يكتب معرّف الوسم على كل رسالة، كما تكتب اسم المرسَل إليه على الظرف، فلا يردّ إلا ذلك الوسم. أو يستطيع أن يختار الوسم أولًا، كما تلتفت نحو شخص بعينه في الغرفة، ثم يتحدث إليه مباشرة.
طريقة الظرف هي الأنظف، لذا يجرّبها NFC.cool أولًا. وللتأكد من أنها تعمل، كان التطبيق يرسل رسالة اختبار سريعة تحمل المعرّف. فإن ردّ الوسم، استنتج التطبيق أن الرسائل المعنونة تعمل، ومضى في عمله.
وهنا ما لم أكن أعرفه. يقسم iOS هذه الأوامر إلى مجموعتين: الأوامر القياسية التي تفهمها كل رقاقة ISO 15693، وأوامر NXP الخاصة، أي تلك المسؤولة عن كلمات المرور والعدّاد والتكوين. وحين تحمل رسالة معنونة أحد أوامر NXP الخاصة، يرفض iOS إرسالها، فلا تغادر الهاتف أصلًا. بل يعيد بصمت خطأ «invalid parameter»، وهذا الخطأ بدا لكودي مطابقًا تمامًا لوسم انزلق بعيدًا عن الهاتف.
كانت رسالة الاختبار أمرًا قياسيًّا، فمرّت دون أي عائق وطمأنتني بأن كل شيء على ما يرام. أما كل تغيير حقيقي فكان يستخدم أمرًا من أوامر NXP، ولذلك فشلت كل التغييرات الحقيقية.
وحين فهمت المشكلة، كان الإصلاح صغيرًا إلى حدٍّ يكاد يُخجلني. صار الاختبار الآن يستخدم أحد أوامر NXP الخاصة، أمرًا لا ضرر منه يطلب من الرقاقة رقمًا عشوائيًّا لا أكثر. فإن رفضه iOS، انتقل التطبيق إلى طريقة اختيار الوسم بدلًا من ذلك. أعدت وسم ICODE 3 إلى مكانه تحت هاتفي، وضغطت ضبط العداد، فتغيّر الرقم على الوسم. قلّما فرحت برؤية عدّاد يتحرك كما فرحت يومها.
أين يعمل كل هذا
على iPhone يعمل كل هذا عبر قارئ NFC المدمج في الهاتف. أما على iPad وMac، اللذين لا يحتويان على شريحة NFC، فيعمل عبر قارئ NFC خارجي بمنفذ USB. ويجب أن يمرّر القارئ أوامر ICODE إلى الوسم كما هي. فإن كان قارئك يفعل ذلك، فسيقرأ التطبيق وسوم ICODE ويديرها تمامًا كما يفعل على iPhone، ولن يكون للخلل الذي رويته في القسم السابق أي وجود هناك. وحتى القارئ الذي لا يمرّر هذه الأوامر يتيح لك قراءة ذاكرة الوسم.
أما تطبيق Android فلا يدعم ICODE بعد.
إن كان عندك درج مليء بوسوم من النوع الذي تستخدمه المكتبات ولم تجد لها يومًا استخدامًا يُذكر، أو لوحة NTAG 5 تنتظر مشروعها، فحدّث التطبيق إلى الإصدار 7.1.0 وامسح واحدًا منها. وNFC.cool Tools متاح على App Store.