DOI QR코드

DOI QR Code

안드로이드 플랫폼을 위한 자바 보안 프로바이더 설계 및 구현

Design and Implementation of Java Crypto Provider for Android Platform

  • 손미경 (덕성여자대학교 컴퓨터공학부) ;
  • 강남희 (덕성여자대학교 컴퓨터공학부)
  • 투고 : 2012.06.30
  • 심사 : 2012.08.13
  • 발행 : 2012.09.30

초록

안드로이드 기반 스마트기기에서 보안 응용 서비스를 개발하기 위해 SUN JCA/JCE나 BC JCE와 같은 자바 기반 보안 라이브러리를 사용한다. 자바를 사용하여 제작된 응용은 자바 가상 머신(JVM: Java Virtual Machine)에서 기능이 수행되므로 시스템 하드웨어에 의존하는 기능을 사용하기 어렵고 실행 속도가 저하되는 문제가 있다. 보안 프리미티브(primitive)의 경우 계산양이 많고 연산 복잡도가 높아 JVM에서 수행되는 보안 프리미티브를 적용할 수 있는 응용은 제한적이다. 특히, 실시간 특성을 요하는 스트리밍 서비스나 계산양이 많은 공개키 기반 알고리즘을 빈번히 적용하는 보안 응용 서비스의 경우 성능의 문제로 자바 라이브러리 사용이 어렵다. 이를 해결하기 위해 본 논문에서는 JNI와 NDK 도구를 사용하여 C나 C++ 언어로 구현된 네이티브 기능을 사용하여 보안 기능을 수행할 수 있는 프로바이더를 설계하고 구현한다. 제안하는 자바 보안 프로바이더(DSCrypt)는 기존 자바 기반 보안 라이브러리와 동일한 방식으로 사용할 수 있지만 빠르게 보안 기능이 수행되는 장점을 제공한다.

Java crypto library such as SUN JCA/JCE or BC JCE is generally used to implement secure applications for smart devices using Android platform. Programming functions written by Java language are launched and executed inside Java Virtual Machine (JVM), thereby difficult to use system hardware specific functionalities and degrading performance as well. In case of crypto primitive, few secure applications can use crypto primitive executing in JVM because both amount of computing and complexity of such primitives are very high. From the aspect of performance, in particular, time sensitive real time applications such as streaming services or secure application frequently applying public key based crypto algorithm cannot use Java crypto library. To solve the problem, we design and implement crypto library which employ JNI and NDK methods to directly access functions that implemented by native language such as C or C++. The proposed Java Crypto provider supports faster execution. Also developer can use our provider in the same way by writing traditional Java crypto library.

키워드

참고문헌

  1. P. Pocatilu, "Android Applications Security," Informatica Economica, vol. 15, no.3, 2011.
  2. K.Y.Kim, D.H.Kang, "Smart Phone Security Technology in Open Mobile Environment," Korea Institute of Information Security & Cryptology, vol. 19, no. 5, 2009. 김기영, 강동호, "개방형 모바일 환경에서 스 마트폰 보안 기술," 정보보호학회지, 제19권 5 호, 2009.
  3. Sang-Hoon Kim, "Integrated Development Environment for Java Native Methods," The Korea Contents Association, vol. 10, no. 7, pp. 122-132, 2010.
  4. R. Gordon, "Essential JNI: Java Native Interface," prentice Hall, 1998.
  5. JCA/JCE Documentation, Retrieved Aug., 8, 2012, from http://docs.oracle.com/javase/6/docs/technotes /guides/security/crypto/CryptoSpec.html
  6. Bouncy Castle Crypto API, Retrieved Aug., 8, 2012, from http://www. bouncycastle.org/
  7. Garz University, Crpto Toolkit, IAIK JCE, Retrieved Aug., 8, 2012, from http://jce.iaik.tugraz.at/
  8. OpenSSL Project, Retrieved Aug., 8, 2012, from http://www.openssl.org
  9. Won-Ki Jung, Beom-Jun Kim, Soo-Mook Moon, "A Study for Ensuring Compatability on Android of Low-Level Virtual Machine," The Korean Institute of Information Scientists and Engineers, vol. 38, no. 2, 2011.
  10. H. Lee, D. Shin, H. Jung, "Implementations of Block Cipher SEED on Smartphone Operating Systems," Int. Conf. Proceeding of Conference on Emerging Security Information, Systems and Technologies, 2011.
  11. C. Maia, L. M. Nogueira, L. M. Pinho, "Evaluating Android OS for Embedded Real-Time Systems," Technical Report, 2010.
  12. MinKoo Choi, Nakyoon Choi, Younglim Chool, Jong-Wook Kim, "implementation of uDEAS on the Android platform," Korean Institute of Information Technology, vol. 9, no. 6, 2011.