Advanced
Android mobile server using a file-sharing system between other models
Android mobile server using a file-sharing system between other models
Journal of the Korea Institute of Information and Communication Engineering. 2014. May, 18(5): 1231-1236
Copyright © 2014, The Korea Institute of Information and Commucation Engineering
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/li-censes/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
  • Received : December 22, 2013
  • Accepted : February 10, 2014
  • Published : May 31, 2014
Download
PDF
e-PUB
PubReader
PPT
Export by style
Share
Article
Author
Metrics
Cited by
TagCloud
About the Authors
태상 허
National Institute of Supercomputing and Networking, KISTI, Daejeon 305-806, Korea
성현 박
Department of Computer Engineering, Paichai University, Daejeon 302-735, Korea
회경 정
Department of Computer Engineering, Paichai University, Daejeon 302-735, Korea
hkjung@pcu.ac.kr

Abstract
최근 모바일 기기의 확산과 보급률이 증가함에 따라, 1인 n개의 모바일 기기 시대가 열리고 있다. 모바일 기기와 운영체제의 종류도 지속적으로 늘어나고 있는 추세이다. 80%이상의 시장점유율을 가진 구글의 안드로이드나 애플의 iOS뿐만 아니라 삼성과 인텔이 개발하고 있는 타이젠, 리눅스의 우분투를 모바일화 시킨 UBUNTU for Phone, UBUNTU touch, 모질라의 Firefox OS, 마이크로소프트사의 윈도우 모바일 등 수많은 운영체제들이 출시를 앞두고 있다. 하지만 서로 다른 운영체제간의 파일을 공유 할 수 있는 시스템이나 기술은 없는 실정이다. 블루투스나 WIFI Direct같은 기술들은 존재하지만 기기간의 호환성이 낮고, 전송 가능한 파일형식에 따른 제약도 존재한다. 이에 본 논문에서는, 무선랜카드가 장착되어 있는 환경에서 안드로이드 모바일 서버를 이용한 이 기종 및 서로 다른 운영체제 간 파일공유 방법에 대해 연구하고, 이에 따른 파일을 공유할 수 있는 시스템에 대해 연구하였다.
Keywords
I. 서 론
모바일 기기의 확산과 네트워크의 발전으로 모바일이 PC를 대신하고 있다는 것은 이미 밝혀진 사실이다. 하루 일상의 대부분을 모바일 기기와 함께 생활하는 현대인들에게 신체의 일부분이 되었다. 이미 모바일 기기는 가정용 PC의 성능을 넘어서, 모바일 기기만의 독창적인 운영체제를 가지고 PC시장을 위협하기 시작했다 [1] .
운영체제의 수 또한 모바일 시장에 판도를 바꾸고 있는 중이다 [2] . 리눅스를 기반으로 한 Ubuntu touch, Ubuntu for Phone, Mozilla의 Firefox OS, 마이크로 소프트사의 윈도우8 등 2014년 상용화 또는 개발자 버전으로 발표되는 운영체제 수만 5가지 이상 존재한다 [3] . 또한, 가지고 있는 파일을 공유하려면 최소 서로 다른 운영체제상에서 같은 어플리케이션을 가지는 방법 [4] 과, 서버에 필요한 자료를 업로드 시켜두고 각 운영체제에 맞는 어플리케이션을 사용하여 파일을 다운로드 할 수 있는 클라우드 시스템(Cloud System)공유 방법 [5] 이 있다.
이에 본 논문에서는 이러한 문제점에 대해 모바일 서버를 사용하여 보다 편리하게 사용 할 수 있는 방안을 연구하였다. 2장에서는 관련 연구에 대해 설명하고, 3장에서는 본 시스템의 동작 원리 및 구현, 4장에서는 결론 및 향후 연구 과제를 기술한다.
II. 관련연구
- 2.1. 리눅스 우분투(Linux ubuntu)
우분투는 배포판에 대한 수정, 편집, 재배포가 합법적인 소프트웨어로, 지금까지 수많은 변형 배포판이나 공식 지원하지 않는 창 관리자를 데스크톱으로 하는 배포판이 출시되었다.
우분투의 기본적인 철학, 즉 전 세계의 사람 누구나 어렵지 않게 리눅스를 사용하자는 표어에서 알 수 있듯이, 기본적으로 세계의 다양한 언어를 지원하고 높은 사양의 컴퓨터가 필요하지 않다. 또, 시스템 관리 작업에서 sudo 도구를 사용한다는 점이 있다.
sudo는 사용자가 자신의 암호를 이용해 시스템 관리 권한을 얻어 작업을 진행할 수 있도록 인증한다. 따라서 관리 작업을 하기 위해 root 사용자의 암호를 따로 만들지 않고, 여러 사용자가 관리를 위해 root 암호를 공유함으로써 생길 수 있는 잠재적인 보안문제를 예방할 수 있다.
우분투에서는 1회 sudo 인증이 완료되면 기본적으로 5분 동안 다시 인증하지 않고도 시스템 관리를 계속할 수 있다. 또한, ‘제한된 장치 관리자’를 사용할 수 있는데, 이것을 통해 사용자는 드라이버를 번거롭게 직접 설치하는 과정을 거칠 필요 없이, 버튼을 몇 번 누르는 것으로 장치를 설정할 수 있다.
- 2.2. 하이브리드 어플리케이션
모바일 환경은 크게 네이티브 어플리케이션, 모바일 웹페이지, 웹 어플리케이션, 하이브리드 어플리케이션으로 나뉜다. 네이티브 어플리케이션은 우리가 알고 있는 어플리케이션이다. 대부분 안드로이드 JAVA 언어로 만든 안드로이드 어플리케이션과 iOS SDK를 이용한 Object-C 언어로 만드는 iPhone 어플리케이션을 말한다.
모바일 어플리케이션은 모바일에서도 PC용 사이트의 글자폰트와 이미지, 플래시 등 PC용 브라우저에서 실행되는 기능을 동일한 모바일에 맞춰 제작된 사이트를 말한다. PC용 사이트를 모바일용으로 크기만 줄인 것이다.
웹 어플리케이션은 모바일 어플리케이션과 네이티브 어플리케이션을 결합한 것으로 모바일 웹의 특징을 가지면서 네이티브 어플리케이션의 장점을 갖고 있다. 모바일에 최적화된 어플리케이션을 말한다. 그러나, 웹 어플리케이션은 모바일 설치형이 아니기 때문에 웹을 실행하기 위해서는 브라우저를 통해 URL을 이용하여 접근해야 하는 불편함이 존재한다. 따라서 이러한 문제점을 해결하기 위해 하이브리드 어플리케이션이 대안으로 떠오르고 있다 [6] .
하이브리드 어플리케이션은 웹 어플리케이션의 단점을 보안한 것으로 웹 어플리케이션을 네이티브 어플리케이션으로 변화하는 목적의 웹 기술로 개발되었지만, 모바일에 최적화된 언어로 만드는 네이티브 어플리케이션처럼 보이게 하는 것이다. 어플리케이션을 직접 다운받아 모바일에 설치하고 직접 컨트롤 할 수 있는 장점을 가지고 있다.
III. 모바일 서버의 설계
본 논문에서는 구글 및 삼성에서 제공하는 순정 커널을 사용하고, 리눅스 우분투를 loop 디바이스형태로 구동하였다. 우분투 자체적으로 지원해주는 커널 이미지를 구동하여 안드로이드 상에서 하나의 운영체제를 추가로 설치하는 방식이다. 하지만, 본 논문에서는 우분투에서 제공하는 순정 이미지파일을 다운로드 받아 구동 하는 방식이 아닌 직접 리눅스 PC상에서 만드는 방식을 택하였다. 우분투에서 제공하는 순정 커널은 리눅스 PC버전의 기본적인 패키지이기 때문에 모바일 서버 구동을 위한 패키지만을 골라 이미지파일을 생성하여야 되기 때문이다. 개발환경은 표 1 과 같다.
모바일 서버 개발환경Table. 1Dvelopment Evironment of obile Server
PPT Slide
Lager Image
모바일 서버 개발환경 Table. 1 Dvelopment Evironment of obile Server
안드로이드상에서 우분투 커널을 구동시키기 위해서는 슈퍼 유저(Super User) 권한이 필요하다. 슈퍼 유저 권한을 부여받기 위해서, Galaxy S3의 경우 루팅(일반유저가 기기의 관리자 권한을 획득하는 행위)가 필수이며, Nexus7의 경우 기기 Unlock을 이용하여 관리자 권한을 부여하기 때문에 각 기기에 맞는 슈퍼 유저의 권한을 부여 한다.
본 논문에서는 루팅 및 기기 Unlock의 과정은 생략한다. 이미지를 구동시키기 위해서는 PC의 ADB Shell, 또는 안드로이드용 단말 어플리케이션을 사용하여 접근 하는데, 본 논문에서는 adb shell과 PUTTY를 이용하여 구현하였다. 이미지파일을 SD카드에 넣고 PUTTY를 사용하여 bootubuntu 명령어를 실행시켜주면, 바로 우분투가 작동 된다. 작동 후, 작업한 내용은 이미지파일에 저장되기 때문에 안드로이드 영역과는 별개로 작업할 수 있다.
apt-get 명령어를 이용하여 그림 1 과 같이 LAMP를 설치해주고 Vi에디터를 사용하여 간단한 아파치 및 PHP 설정을 하게 되면 서버는 동작된다.
PPT Slide
Lager Image
Putty상에서 안드로이드에 LAMP 설치 Fig. 1 Install a LAMP on Android in Putty
그림 2 , 그림 3 과 같이 PHP 및 설치형 블로그인 워드프레스도 설치해 보았으며, 웹 서버 구동이 정상적으로 되는 것을 확인하였다.
PPT Slide
Lager Image
모바일 서버상에서의 PHP구동 확인 Fig. 2 Check of PHP in the Mobile Server
PPT Slide
Lager Image
허용된 클라이언트가 접속한 워드프레스 Fig. 3 Accessed Wordpress of Allowed Client
하지만 이 방법으로 외부에서는 작성한 페이지로 연결이 안 되지만, 모바일 AP(Mobile Access Point)를 사용하여 클라이언트 디바이스가 연결 되면, 모바일 AP가 공유된 클라이언트 간의 PHP페이지를 사용한 공유가 가능한 것을 확인하였다.
모바일 서버가 사용되고 있는 모바일 기기가 만들어 주는 모바일 AP를 사용한 기기들로 하여금 모바일 서버로 접속이 가능하다면, 모바일 서버 관리자는 본 시스템을 이용하여 편리한 시스템 운용할 수 있다. 또한, 페이지 공유를 외부개방형으로 운용하기 위해선, AP(WiFi)를 사용하여 IP주소를 개방한 공유도 가능하다.
IV. 이 기종간 공유시스템의 원리 및 구현
본 시스템은 무선 이더넷 카드가 장착된 모든 운영체제에서 동작되도록 설계하였다.
W3C 표준 규격에 맞는 웹 응용프로그램을 통해, 서로 상이한 운영체제 간 효율적이고 상생 가능한 응용프로그램 작성이 가능하다. 다양한 운영체제 및 이 기종간 어플리케이션의 호환을 위해 현재 많은 모바일 응용프로그램들이 하이브리드 어플리케이션, 즉, 웹을 이용하고 있다.
본 논문에서 제안한 시스템에서는 이 기종간의 호환성 문제를 해결하기 위해 웹을 이용하여 시스템을 구현하였다. 시스템 개발 환경은 표2 와 같다.
파일공유시스템 개발환경Table. 2Development Environment of File Share System
PPT Slide
Lager Image
파일공유시스템 개발환경 Table. 2 Development Environment of File Share System
안드로이드에 우분투 12.04를 사용하여 모바일 서버를 구축한 다음 서버에 아파치 Directory Listing을 사용하여 간단한 PHP 페이지를 작성한다. 모바일 서버가 구축된 안드로이드 운영체제상에서 모바일 AP를 사용하면 서버 기기를 소유하고 있는 관리자가 접속 권한을 부여하고 식별 된 사용자 디바이스를 서버에 작성되어 있는 PHP의 웹 어플리케이션을 사용 할 수 있게 된다.
AP를 이용하여 접속하는 방법은, 모바일 서버가 구동중인 디바이스에, 다른 클라이언트 기기가 접근하기 위한 필수적인 요인이다. 모바일 AP를 사용함으로 인해 외부에서 접근하는 다른 프로토콜은 차단되고, 보안의 위협에서 자유롭기 때문에 보안에서는 효과적인 방법이다. 또한, 접속하는 클라이언트는 다운로드 진행시 데이터를 사용하지 않고, 모바일 서버로 접속하여 클라우드 시스템과 같이 상하의 모바일 네트워크 데이터의 소모가 없기 때문에 이 또한 큰 장점으로 작용한다.
전체적인 시스템 구성도는 그림 4 와 같다. LAMP를 사용하여 PHP웹 서버를 구동시키고, 웹 서버에 PHP를 사용하여 간단하게 페이지를 만든다. 2중의 보안이 필요 시 모바일 서버의 Mysql을 사용하여 쿼리문을 사용하여 로그인이 가능하도록 구현하였다.
PPT Slide
Lager Image
시스템 구성도 Fig. 4 System Configuration
메인 페이지에서는 PHP에서 제공하는 파일업로드, 파일 다운로드, 그리고 웹상에서 미리 지정해둔 공유폴더를 Directory Listing 기능을 사용하여, 폴더에 공유할 수 있는 파일들을 리스트형식으로 출력한다. 공유시스템의 전체흐름은 그림 5 의 시스템 시퀀스 다이어그램과 같다.
일반적인 서버 상에서 Directory Listing 기능은 취약점으로 작용한다. 보통 데스크탑 서버설정에서 발생하는 취약점으로, 간단한 구글 검색으로 해당 취약점을 가지고 있는 사이트의 조회가 가능하고, 브라우징 하는 모든 파일들을 보여주며, 서버에 있는 파일의 저장 및 열람이 가능해 해당 디렉토리 파일이 수행하는 동작을 분석 하여 제 2, 제 3의 공격에도 이용될 수 있다.
PPT Slide
Lager Image
시스템 시퀀스 다이어그램 Fig. 5 System Sequence Diagram
하지만, 본 시스템은 개방형 서버, 일반적인 고정 IP가 아닌 클라이언트 인증형 모바일 서버이기 때문에 Directory Listing은 취약점으로 작용하지 않는다.
외부에서 안드로이드 서버 기기의 IP를 찾아낸다는 것은 각 기기의 등록되어있는 통신사의 서버 및 기지국 통신망을 침투하여 기기의 정보를 알아내는 방법 밖에 없다. Directory Listing 알고리즘을 활용하면 서버의 부하발생이 낮아지기 때문에 경량화 된 모바일 서버에 이용하기 적합하다.
그림 6 은 안드로이드용 크롬 및 iOS 전용 브라우저인 사파리의 접속 화면이다. 별도의 포맷 변환 작업 없이 호환이 되는 것을 확인하였다. 각 회사가 제공하는 기본 웹 브라우저 및 사파리 등 여러 브라우저에 해상도 차이를 제외하고 모두 동일한 공유 결과를 얻어낼 수 있었다.
PPT Slide
Lager Image
안드로이드 및 iOS 접속 테스트 Fig. 6 Android and iOS Connected TEST
그림 7 은 윈도우7 상에서 외장형 이더넷 카드를 사용하여 안드로이드 서버에 모바일 AP로 연결하여 브라우저를 열어본 화면이다. 테스트 결과, 호환성의 문제없이 다운로드 되는 것을 확인하였으며, 매킨토시, 리눅스 등 기종 간 공유는 이더넷 카드가 존재한다는 전제 하, 제약이 없다는 것을 확인하였다.
PPT Slide
Lager Image
윈도우7 크롬 접속 테스트 Fig. 7 Connected TEST for Chrome in Windows7
V. 결론 및 향후연구과제
본 논문은 기존 안드로이드 및 타 운영체제의 P2P 어플리케이션의 한계성을 보안하고자, 안드로이드 운영체제 영역을 이해하고 ADB shell을 이용하여, 사용자들이 편리하게 데이터를 공유할 수 있는 시스템을 제안하였다.
기존의 파일 공유 시스템은 운영체제가 다른 기기의 파일 공유가 어렵거나 운영체제에 맞는 어플리케이션을 설치하여야 공유가 가능하였다.
하지만 본 시스템은 각 운영체제 또는 기기의 설치되어있는 웹 브라우저를 통하여 파일 공유가 가능하기 때문에, 이 기종의 서로 상이한 운영체제 간 파일공유가 경량화 되고 파일공유에 별다른 작업을 하지 않고 공유가 가능하고 편리하다.
또한, 본 시스템 형태의 웹 및 서버의 운용을 통해 보안의 취약점이나 해커로 부터의 공격을 차단 할 수 있으므로 서버구축의 간소화 및 경량화, 보완, 편의성 면에서 효율적이다.
보안 및 저장 공간 문제, 배터리의 한계성 등 해결해야 할 문제점은 존재하나 저 전력 서버, 고정형이 아닌 이동형 서버라는점 등이 모바일 서버의 장점이다. 특별한 권한, 또는 유선 상으로 별도의 작업 외에는 외부에서 간섭을 하지 못하는, 작은 인트라넷을 형성하는 것과 같은 개념 이다.
모바일 기기의 발전은 이전 PC시대와 비교할 수 없을 정도로 빠른 속도로 발전하며, 그에 따른 스펙 또한 변화 하고 있다. 구글 글래스, 스마트워치 등 다양한 웨어러블 컴퓨터가 다음 세대의 주역이 되는 만큼 모바일 서버를 이용하여 운영체제의 제약이 없고 상호 통신이 가능한 하이브리드 어플리케이션이 많은 비중을 차지할 것으로 보인다.
향후 연구과제로는, 모바일 서버의 구축을 adb shell 및 우분투의 loop device 운용 없이 소규모 모바일 웹 서버를 구축하고, 사용자에게 편리한 형태의 모바일 서버어플리케이션의 작성에 대한 연구가 필요하다.
BIO
허태상(Tae-Sang Huh)
2000년 성균관대학교 전기전자컴퓨터공학부(공학사)
2002년 광주과학기술원 정보통신공학(공학석사)
2002년 ~ 현재 한국과학기술정보연구원 선임연구원
2014년 ~ 현재 배재대학교 컴퓨터공학과 박사과정
※관심분야 : 메타데이터 카탈로그, 분산 컴퓨팅, e-Science, 정보검색
박성현(Sung-Hyun Park)
2013년 배재대학교 컴퓨터공학과(공학사)
2013년 ~ 현재 배재대학교 컴퓨터공학과 석사과정
※관심분야 : 모바일 디바이스, 하이브리드 어플리케이션, 안드로이드 어플리케이션, 모바일 서버
정회경(Hoe-Kyung Jung)
1985년 광운대학교 컴퓨터공학과(공학사)
1987년 광운대학교 컴퓨터공학과(공학석사)
1993년 광운대학교 컴퓨터공학과(공학박사)
1994년 ~ 현재 배재대학교 컴퓨터공학과 교수
※관심분야 : 멀티미디어 문서정보처리, XML, SVG, Web Services, Semantic Web, MPEG-21, Ubiquitous Computing, USN
References
Sameer Kumar 2004 "Mobile communications: global trends in the 21st century," International Journal of Mobile Communications http://dx.doi.org/10.1504/IJMC.2004.004488 2 (1) 67 - 87    DOI : 10.1504/IJMC.2004.004488
Um R. W. 2011 Technology trends in smartphone service platform Korean Institute Of Information Technology 9 (2) 91 - 105
George L. 1999 "Vendors battle over mobile-os market," IEEE computerm 32 (2) 13 - 15
O. Zhong-Hong , S. Mei-Na , Z. Xiao-Su , S. Jun-De 2008 "Key techniques for mobile peer-to-peer networks," Journal of Software http://dx.doi.org/10.3724/SP.J.1001.2008.00404 19 (2) 404 - 418    DOI : 10.3724/SP.J.1001.2008.00404
Song M. S. , Ko S. G. , Lee J. H. , Lee D. H. 2012 "Mobile cloud Virtual terminal collaboration technologies and provisioning," Journal of Security Engineering 9 (1) 77 - 86
Phuc H. Ngu , VANTHANH D. 2012 "Evaluation of mobile app paradigms." Proceedings of the 10th International Conference on Advances in Mobile Computing & Multimedia 25 - 30