استفاده از مکانیسم رمزگذاری PKCS#11 در پلتفرم اندروید

استفاده از مکانیسم رمزگذاری PKCS#11 در پلتفرم اندروید زمان استفاده از رمزنگاری فرا رسیده است مکانیسم های PKCS#11 و در پلتفرم اندروید. ممکن است برخی بگویند که هیچ توکن سخت افزاری برای اندروید وجود ندارد. اما، اگر چنین است، پس این فقط یک پدیده موقتی است. اما امروز می توانید یک رمز نرم افزار قرار دهید یا استفاده کنید رمز ابری. از آنجایی که ابزار cryptoarmpkcs-A برای پلتفرم اندروید با استفاده از Androwish در زبان برنامه نویسی Tcl/Tk توسعه یافته است، سپس بسته برای اتصال توکن ها استفاده می شود. TclPKCS11 نسخه 1.0.1.

در این مورد، هیچ پردازشی از بسته مورد نیاز نبود. تمام کاری که انجام شد اضافه کردن یک اسکریپت به پروژه برای ساخت کتابخانه بسته نوشته شده به زبان بود سی، برای اندروید و خود توزیع کتابخانه. تصمیم گرفته شد که کتابخانه هایی از نرم افزارهای ls11sw2016 و توکن های ابری ls11cloud برای پلتفرم های مختلف به همان پروژه اضافه شوند.

همه چیز ساده است. دکمه هایی را برای انتخاب یک نشانه کار به پنجره دوم اضافه می کنیم و دریافت می کنیم:

  • توکن نرم افزار ls11sw2016;
  • رمز ابری ls11cloud;
  • توکن دیگر PKCS11#11.

استفاده از مکانیسم رمزگذاری PKCS#11 در پلتفرم اندروید

به طور پیش فرض، یک رمز نرم افزار متصل است. اگر قبلا ایجاد نشده باشد، از شما خواسته می شود که آن را مقداردهی اولیه کنید. این را به شما یادآوری کنیم مقداردهی اولیه نشانه شامل تخصیص یک برچسب و تنظیم یک کد پین کاربر است:

استفاده از مکانیسم رمزگذاری PKCS#11 در پلتفرم اندروید

توجه داشته باشید که توکن نرم افزار مطابق با توصیه های PKCS#11 v.2.40 و TK-26 توسعه یافته است. برای به دست آوردن اطلاعات کامل در مورد رمز، از جمله مکانیسم های رمزنگاری پشتیبانی شده، کافی است روی دکمه «درباره رمز و رمزنگاری آن» در منوی اصلی («عملکردی») کلیک کنید. امروزه، هیچ توکن سخت افزاری که از رمزنگاری روسی پشتیبانی می کند، این قابلیت را ندارد:

استفاده از مکانیسم رمزگذاری PKCS#11 در پلتفرم اندروید

این سوال مطرح می شود: - چگونه می توان گواهی شخصی را روی یک توکن نصب کرد. دو گزینه وجود دارد. اولین گزینه این است که خود گواهی و جفت کلید آن را از طریق ظرف PKCS#12 وارد کنید (دکمه "Work with PKCS12/PFX"):

استفاده از مکانیسم رمزگذاری PKCS#11 در پلتفرم اندروید

گزینه دوم شامل ایجاد یک درخواست (PKCS#10) برای یک گواهی است.این گزینه (عملکرد "درخواست گواهی") تولید یک جفت کلید را مستقیماً روی توکن فراهم می کند:

استفاده از مکانیسم رمزگذاری PKCS#11 در پلتفرم اندروید

اکنون می توانید درخواست را در درایوهای فلش ذخیره کرده و به آن بروید مرکز صدور گواهینامه برای یک گواهی اگر از گواهی برای مقاصد آزمایشی یا داخلی استفاده می کنید، می توانید از ابزار برای صدور گواهی نیز استفاده کنید CAFL63. گواهی به دست آمده در برگه "مشاهده درخواست/گواهی" روی نشانه وارد می شود:

استفاده از مکانیسم رمزگذاری PKCS#11 در پلتفرم اندروید

اکنون می توانید با استفاده از برگه، اسناد را با گواهی های ذخیره شده در نشانه امضا کنید "یک سند را امضا کنید".

در مقاله بعدی نحوه اتصال به توکن ابری را به شما خواهیم گفت. و مسئله انتقال توابع تولید گواهی به پلت فرم تلفن همراه همچنان باز است. آیا این لازم است؟

نسخه به روز شده ابزار cryptoarmpkcs-A برای پلتفرم اندروید را می توانید از اینجا دانلود کنید:

P.S. ذخیره کردن گزارش

برای ساخت بسته، از ابزار استخوان استفاده کنید AndroWish SDK. هنگامی که بسته با موفقیت ساخته شد، دکمه "نصب و اجرا" ظاهر می شود و با کلیک بر روی آن، یک پنجره ورود به سیستم باز می شود که خروجی adb logcat (Android Debug Bridge Logger) را نشان می دهد. نقطه ضعف این صفحه این است که یافتن پیغام خطا دشوار است، به خصوص با فعال بودن پرچم "V" (کلامی). بنابراین، یک دکمه "ذخیره" اضافه شد که گزارش را در فایل /tmp/logBone.txt ذخیره می کند (ما در مورد لینوکس صحبت می کنیم):

استفاده از مکانیسم رمزگذاری PKCS#11 در پلتفرم اندروید

با آمدن این دکمه، فرآیند اشکال زدایی اپلیکیشن بسیار ساده شده است.

برای افزودن دکمه کافیست کد زیر را بعد از خط 2591 به فایل bones اضافه کنید:

	    ttk::button $l.frame.clear -text "Clear" -width 6 
		-command [list adb_logcat_clear $l.text]
#Добавленный код
	    ttk::button $l.frame.save -text "Save" -width 6 
		-command [list adb_logcat_save $l.text]

	    ttk::button $l.frame.run -text "Run" -width 6 
		-command [list adb_logcat_run $l]

دستور ذخیره adb_logcat_save به شکل زیر است:

proc adb_logcat_save {text} {
    set tt [$text get 1.0 end]
    set file "/tmp/logBone.txt"
    file delete -force $file
  #Собственно запись в файл
    set fd [open $file w]
    chan configure $fd -translation binary
    puts -nonewline $fd $tt
    close $fd
}

منبع: www.habr.com

اضافه کردن نظر