Sử dụng cơ chế mã thông báo mã hóa PKCS#11 trên nền tảng Android

Sử dụng cơ chế mã thông báo mã hóa PKCS#11 trên nền tảng Android Đã đến lúc sử dụng mật mã Cơ chế PKCS#11 và trên nền tảng Android. Một số người có thể nói rằng không có mã thông báo phần cứng nào cho Android. Tuy nhiên, nếu đúng như vậy thì đây chỉ là hiện tượng tạm thời. Nhưng ngày nay bạn có thể đặt mã thông báo phần mềm hoặc sử dụng mã thông báo đám mây. Vì tiện ích cryptoarmpkcs-A được phát triển cho nền tảng Android sử dụng Androwish bằng ngôn ngữ kịch bản Tcl/Tk, sau đó gói được sử dụng để kết nối mã thông báo TclPKCS11 phiên bản 1.0.1.

Trong trường hợp này, không cần xử lý gói. Tất cả những gì đã làm là thêm một tập lệnh vào dự án để xây dựng thư viện gói được viết bằng ngôn ngữ Si, dành cho Android và bản phân phối thư viện. Người ta đã quyết định thêm thư viện phần mềm ls11sw2016 và mã thông báo đám mây ls11cloud cho các nền tảng khác nhau vào cùng một dự án.

Mọi thứ khác đều đơn giản. Chúng tôi thêm các nút để chọn mã thông báo hoạt động vào cửa sổ thứ hai và nhận được:

  • mã thông báo phần mềm ls11sw2016;
  • mã thông báo đám mây ls11cloud;
  • một mã thông báo PKCS11#11 khác.

Sử dụng cơ chế mã thông báo mã hóa PKCS#11 trên nền tảng Android

Theo mặc định, mã thông báo phần mềm được kết nối. Nếu nó chưa được tạo trước đó, bạn sẽ được nhắc khởi tạo nó. Hãy để chúng tôi nhắc nhở bạn rằng khởi tạo mã thông báo bao gồm việc gán thẻ và đặt mã PIN cho người dùng:

Sử dụng cơ chế mã thông báo mã hóa PKCS#11 trên nền tảng Android

Lưu ý rằng mã thông báo phần mềm được phát triển theo khuyến nghị của PKCS#11 v.2.40 và TK-26. Để có được thông tin đầy đủ về mã thông báo, bao gồm các cơ chế mã hóa được hỗ trợ, chỉ cần nhấp vào nút “Giới thiệu về mã thông báo và mật mã của nó” trong menu chính (“Chức năng”). Ngày nay, không một token phần cứng nào hỗ trợ mật mã Nga có chức năng này:

Sử dụng cơ chế mã thông báo mã hóa PKCS#11 trên nền tảng Android

Câu hỏi đặt ra: - cách cài đặt chứng chỉ cá nhân trên mã thông báo. Có hai lựa chọn. Tùy chọn đầu tiên là nhập chính chứng chỉ và cặp khóa của nó thông qua bộ chứa PKCS#12 (nút “Làm việc với PKCS12/PFX”):

Sử dụng cơ chế mã thông báo mã hóa PKCS#11 trên nền tảng Android

Tùy chọn thứ hai liên quan đến việc tạo yêu cầu (PKCS#10) cho chứng chỉ. Tùy chọn này (chức năng "Yêu cầu chứng chỉ") cung cấp khả năng tạo cặp khóa trực tiếp trên mã thông báo:

Sử dụng cơ chế mã thông báo mã hóa PKCS#11 trên nền tảng Android

Bây giờ bạn có thể lưu yêu cầu vào ổ đĩa flash và đi tới trung tâm chứng nhận cho một chứng chỉ. Nếu bạn sử dụng chứng chỉ cho mục đích thử nghiệm hoặc nội bộ, bạn cũng có thể sử dụng tiện ích này để cấp chứng chỉ CAFL63. Chứng chỉ kết quả được nhập vào mã thông báo trong tab “Xem yêu cầu/chứng chỉ”:

Sử dụng cơ chế mã thông báo mã hóa PKCS#11 trên nền tảng Android

Bây giờ bạn có thể ký các tài liệu có chứng chỉ được lưu trữ trên mã thông báo bằng tab "Ký một văn bản".

Trong bài viết tiếp theo, chúng tôi sẽ hướng dẫn bạn cách kết nối với mã thông báo trên đám mây. Và câu hỏi về việc chuyển các chức năng tạo chứng chỉ sang nền tảng di động vẫn còn bỏ ngỏ. Điều này có cần thiết không?

Bạn có thể tải xuống phiên bản cập nhật của tiện ích cryptoarmpkcs-A dành cho nền tảng Android tại đây:

PS Lưu nhật ký

Để xây dựng gói, hãy sử dụng tiện ích xương từ SDK AndroWish. Sau khi gói được xây dựng thành công, nút “Cài đặt và chạy” sẽ xuất hiện và khi được nhấp vào, một cửa sổ nhật ký sẽ mở ra hiển thị đầu ra của adb logcat (trình ghi nhật ký Cầu gỡ lỗi Android). Nhược điểm của màn hình này là khó tìm ra thông báo lỗi, đặc biệt khi bật cờ "V" (dài dòng). Do đó, nút “Save” đã được thêm vào để lưu nhật ký vào tệp /tmp/logBone.txt (chúng ta đang nói về Linux):

Sử dụng cơ chế mã thông báo mã hóa PKCS#11 trên nền tảng Android

Với sự ra đời của nút này, quá trình gỡ lỗi ứng dụng đã được đơn giản hóa rất nhiều.

Để thêm nút, chỉ cần thêm đoạn mã sau vào tệp xương sau dòng 2591:

	    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]

Lệnh lưu adb_logcat_save trông như thế này:

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
}

Nguồn: www.habr.com

Thêm một lời nhận xét