Android ํ”Œ๋žซํผ์—์„œ PKCS#11 ์•”ํ˜ธํ™” ํ† ํฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์‚ฌ์šฉ

Android ํ”Œ๋žซํผ์—์„œ PKCS#11 ์•”ํ˜ธํ™” ํ† ํฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์‚ฌ์šฉ ์•”ํ˜ธํ™”ํ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๊ฐ€ ์™”๋‹ค PKCS#1 ๋ฉ”์ปค๋‹ˆ์ฆ˜1 ๋ฐ Android ํ”Œ๋žซํผ์—์„œ. ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ Android์šฉ ํ•˜๋“œ์›จ์–ด ํ† ํฐ์ด ์—†๋‹ค๊ณ  ๋งํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งŒ์•ฝ ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Š” ์ผ์‹œ์ ์ธ ํ˜„์ƒ์ผ ๋ฟ์ด๋‹ค. ํ•˜์ง€๋งŒ ์˜ค๋Š˜์€ ์†Œํ”„ํŠธ์›จ์–ด ํ† ํฐ์„ ๋„ฃ๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ํ† ํฐ. ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ดํ›„ cryptoarmpkcs-A Tcl/Tk ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์—์„œ Androwish๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Android ํ”Œ๋žซํผ์šฉ์œผ๋กœ ๊ฐœ๋ฐœ๋œ ๋‹ค์Œ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ† ํฐ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. TclPKCS11 ๋ฒ„์ „ 1.0.1.

์ด ๊ฒฝ์šฐ ํŒจํ‚ค์ง€ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ–‰๋œ ์ž‘์—…์€ ํ•ด๋‹น ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํŒจํ‚ค์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ฟ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค ์ž์‹ , Android ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐฐํฌ ์ž์ฒด์˜ ๊ฒฝ์šฐ. ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์„ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ls11sw2016 ๋ฐ ํด๋ผ์šฐ๋“œ ls11cloud ํ† ํฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ฐฝ์— ์ž‘๋™ ํ† ํฐ์„ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•œ ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.

  • ์†Œํ”„ํŠธ์›จ์–ด ํ† ํฐ ls11sw2016;
  • ํด๋ผ์šฐ๋“œ ํ† ํฐ ls11cloud;
  • ๋˜ ๋‹ค๋ฅธ PKCS11#11 ํ† ํฐ.

Android ํ”Œ๋žซํผ์—์„œ PKCS#11 ์•”ํ˜ธํ™” ํ† ํฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์‚ฌ์šฉ

๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ํ† ํฐ์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์— ์ƒ์„ฑ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ดˆ๊ธฐํ™”ํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ƒ๊ธฐ์‹œ์ผœ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ํ† ํฐ ์ดˆ๊ธฐํ™” ํƒœ๊ทธ ํ• ๋‹น๊ณผ ์‚ฌ์šฉ์ž PIN ์ฝ”๋“œ ์„ค์ •์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Android ํ”Œ๋žซํผ์—์„œ PKCS#11 ์•”ํ˜ธํ™” ํ† ํฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์‚ฌ์šฉ

์†Œํ”„ํŠธ์›จ์–ด ํ† ํฐ์€ PKCS#11 v.2.40 ๋ฐ TK-26์˜ ๊ถŒ์žฅ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ์•”ํ˜ธํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํฌํ•จํ•˜์—ฌ ํ† ํฐ์— ๋Œ€ํ•œ ์ „์ฒด ์ •๋ณด๋ฅผ ์–ป์œผ๋ ค๋ฉด ๊ธฐ๋ณธ ๋ฉ”๋‰ด("๊ธฐ๋Šฅ")์—์„œ "ํ† ํฐ ๋ฐ ํ•ด๋‹น ์•”ํ˜ธํ™” ์ •๋ณด" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์„ธ์š”. ํ˜„์žฌ ๋Ÿฌ์‹œ์•„ ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๋Š” ๋‹จ์ผ ํ•˜๋“œ์›จ์–ด ํ† ํฐ์—๋Š” ๋‹ค์Œ ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

Android ํ”Œ๋žซํผ์—์„œ PKCS#11 ์•”ํ˜ธํ™” ํ† ํฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์‚ฌ์šฉ

์งˆ๋ฌธ์ด ์ƒ๊น๋‹ˆ๋‹ค: - ํ† ํฐ์— ๊ฐœ์ธ ์ธ์ฆ์„œ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•. ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์€ PKCS#12 ์ปจํ…Œ์ด๋„ˆ("PKCS12/PFX ์ž‘์—…" ๋ฒ„ํŠผ)๋ฅผ ํ†ตํ•ด ์ธ์ฆ์„œ ์ž์ฒด์™€ ํ•ด๋‹น ํ‚ค ์Œ์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Android ํ”Œ๋žซํผ์—์„œ PKCS#11 ์•”ํ˜ธํ™” ํ† ํฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์‚ฌ์šฉ

๋‘ ๋ฒˆ์งธ ์˜ต์…˜์€ ์ธ์ฆ์„œ์— ๋Œ€ํ•œ ์š”์ฒญ(PKCS#10)์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜(ํ•จ์ˆ˜ "์ธ์ฆ์„œ์š”์ฒญ")๋Š” ํ† ํฐ์—์„œ ์ง์ ‘ ํ‚ค ์Œ ์ƒ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Android ํ”Œ๋žซํผ์—์„œ PKCS#11 ์•”ํ˜ธํ™” ํ† ํฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์‚ฌ์šฉ

์ด์ œ ์š”์ฒญ์„ ํ”Œ๋ž˜์‹œ ๋“œ๋ผ์ด๋ธŒ์— ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์„ผํ„ฐ ์ธ์ฆ์„œ๋ฅผ ์œ„ํ•ด. ํ…Œ์ŠคํŠธ ๋ชฉ์ ์œผ๋กœ ๋˜๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. CAFL63. ๊ฒฐ๊ณผ ์ธ์ฆ์„œ๋Š” "์š”์ฒญ/์ธ์ฆ์„œ ๋ณด๊ธฐ" ํƒญ์˜ ํ† ํฐ์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

Android ํ”Œ๋žซํผ์—์„œ PKCS#11 ์•”ํ˜ธํ™” ํ† ํฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์‚ฌ์šฉ

์ด์ œ ํƒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ† ํฐ์— ์ €์žฅ๋œ ์ธ์ฆ์„œ๋กœ ๋ฌธ์„œ์— ์„œ๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "๋ฌธ์„œ์— ์„œ๋ช…ํ•˜์„ธ์š”".

๋‹ค์Œ ๊ธ€์—์„œ๋Š” ํด๋ผ์šฐ๋“œ ํ† ํฐ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ธ์ฆ์„œ ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ์œผ๋กœ ์ด์ „ํ•˜๋Š” ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํ•„์š”ํ•œ๊ฐ€?

Android ํ”Œ๋žซํผ์šฉ cryptoarmpkcs-A ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ์—…๋ฐ์ดํŠธ๋œ ๋ฒ„์ „์€ ์—ฌ๊ธฐ์—์„œ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PS ๋กœ๊ทธ ์ €์žฅ ์ค‘

ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•˜๋ ค๋ฉด ๋‹ค์Œ์˜ ๋ผˆ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์•ˆ๋“œ๋กœ์œ„์‹œ SDK. ํŒจํ‚ค์ง€๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œ๋˜๋ฉด "์„ค์น˜ ๋ฐ ์‹คํ–‰" ๋ฒ„ํŠผ์ด ๋‚˜ํƒ€๋‚˜๊ณ , ํด๋ฆญํ•˜๋ฉด adb logcat(Android Debug Bridge ๋กœ๊ฑฐ)์˜ ์ถœ๋ ฅ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋กœ๊ทธ ์ฐฝ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค. ์ด ํ™”๋ฉด์˜ ๋‹จ์ ์€ ํŠนํžˆ "V"(์ƒ์„ธ) ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ /tmp/logBone.txt ํŒŒ์ผ์— ๋กœ๊ทธ๋ฅผ ์ €์žฅํ•˜๋Š” "์ €์žฅ" ๋ฒ„ํŠผ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Linux์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค).

Android ํ”Œ๋žซํผ์—์„œ PKCS#11 ์•”ํ˜ธํ™” ํ† ํฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์‚ฌ์šฉ

์ด ๋ฒ„ํŠผ์˜ ์ถœํ˜„์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋””๋ฒ„๊น… ํ”„๋กœ์„ธ์Šค๊ฐ€ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋ผˆ๋Œ€ ํŒŒ์ผ์˜ 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]

adb_logcat_save 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
}

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€