NFC 서비스 Enabler ‘Smart Touch 플랫폼’ 기술 소개

지난 NFC tag 서비스 소개 글에 이어, 이번 포스팅에서는 신규 NFC Open Platform인 ‘Smart Touch 플랫폼’에 대해 살펴 보도록 하겠습니다.

Smart Touch 플랫폼은 NFC 서비스 활성화 및 Ecosystem강화를 위해 탄생한 시스템으로, 신용카드, 교통카드, 쿠폰, 티켓, 멤버십, 도어락 등의 다양한 NFC 서비스를 제공하고자 하는 서비스 사업자들이 Smart Touch플랫폼에서 제공하는 API 및 IDE를 통해 사업자들만의 고유한 NFC USIM기반 서비스를 기획/개발할 수 있도록 하는 NFC Open platform입니다

Smart Touch 플랫폼 탄생 배경

다양한 NFC 단말이 출시되고 NFC서비스에 대한 기대감은 높았으나, NFC서비스 개발의 어려움, 서비스의 다양성 부족으로 활성화되고 있지 못합니다. 이에, 우리가 가진 Asset을 통해 많은 3rd party player 들이 쉽게 NFC 서비스를 개발/제공할 수 있도록 NFC 토탈 솔루션을 제공하고, 사용자가 안심하고 사용 할 수 있는 NFC 서비스 환경을 제공하자는 취지에서 Smart Touch 플랫폼이 탄생되었습니다.

Smart Touch 플랫폼을 이용하여 교통 카드 서비스, 금융/유통 결제 서비스, tag 서비스를 준비 중이며, 이후 출입증, 헬스 케어 서비스 등으로 제휴 영역을 확대할 예정입니다.

Smart Touch 플랫폼 구성

Smart Touch 플랫폼은 NFC서비스를 enabling할 수 있도록, 개발환경에서부터 단말/서버 Open API, 정산 및 통계 기능을 모두 제공하고 있습니다.

  •  SEM

기존에는 USIM에 Applet을 발급하여 NFC 서비스를 하기 위해서는 제휴를 통하여, 단말 라이브러리를 제공 받고 개발 후 SK 플래닛의 Application Signing을 요청해야 했습니다.그러나 Smart Touch 플랫폼에서는 Smart Touch웹사이트에 가입하여 라이브러리를 제공 받고, API 및 Applet 사용에 대한 권한을 획득하게 되면 SK 플래닛의 Signing없이 Application 개발 및 배포가 가능 합니다.

SEM Library에서 제공하는 주요 기능은 크게 3가지 입니다.

  1. Applet 정보 조회 및 발급/삭제  : Applet을 USIM의 Secure Element에 발급
  2. 모바일 터치, 신용카드, 교통 카드 등 특정 서비스 기능 : 모바일 터치 Applet에 멤버십/쿠폰/티켓 발급 및 조회 등
  3. NFC/SKT 사용자 인증 및 Smart card Service 기능: NFC 폰 및 NFC USIM 인증 등

해당 기능들이 단말 API로 제공 되어 개발에 편의성을 제공하고 있습니다.

  • SEMS

SEMS는 Secure Element Management System의 약자로, Secure Element 즉, NFC USIM 카드에 제휴사 서비스 Applet을 설치하고 삭제하는 기능을 제공하는 서버 시스템입니다. NFC 서비스는 NFC USIM에 저장된 정보를 NFC폰을 이용하여 근거리에서 서로 주고 받는 것을 기본으로 하고 있으며, NFC USIM에 정보를 어떻게 쉽게 저장하고 관리하는지가 핵심적인 기능이라고 할 수 있습니다. SEMS는 이러한 기능을 OPEN API 형태로 제휴사에게 제공함으로써, 3rd party player 들이 쉽고 간편하게 NFC 서비스를 개발하고, enabling 할 수 있도록 지원합니다.

SEMS가 제공하는 주요 기능은 NFC USIM 카드에 Applet 설치/삭제/ Applet Life Cycle 변경(Lock/UnLock), USIM 카드 별 Applet 발급 상태 조회 기능 등이며, 이러한 기능은 단말 라이브러리 및 IDE를 통해서 사용할 수 있도록 오픈하고 있습니다. SEMS 시스템은 현재 GP2.1.1 표준을 준수하고 있어 GP 2.1.1 기반의 USIM카드와 호환성이 보장되고 있으며, 2013년에 GP2.2 기반으로 업그레이드하고 TSM to TSM 연동 기능을 확장 제공할 예정입니다.

  • NRMS

Smart Touch 플랫폼은 Open Platform이지만 불순한 의도를 가진 Application의 Applet 접근 및 사용에 대하여 권한을 통제하고 있습니다. 이러한 권한을 체크하고 관리하는 기능을 담당하는 것이 바로 NRMS 입니다.

특정 Application을 위한 Applet을 다른 Application에서 접근하여 정보를 가지게 된다면 서비스를 제공하는 입장에서는 곤란한 상황이 발생할 수도 있을 것입니다. 이러한 상황을 방지하고자, Smart Touch 플랫폼에서는 Application에 대한 권한 관리를 제공하고 있습니다. 서비스 하고자 하는 Application을 등록하고 해당 Application이 사용해야 하는 Component (Applet 발급, 정보 조회, 멤버십 조회 등) 및 사용하고자 하는 Applet에 대한 권한을 요청하면 운영자 판단 후 승인이 이루어 집니다.승인 받지 못한 Application은 해당 Component 및 Applet을 사용 할 수 없기 때문에, 서비스 제공에 안정성을 확보할 수 있습니다.

  • Smart Touch Developer 사이트

제휴 및 단말 라이브러리 제공, signing 및 정산 등 일련의 NFC서비스 개발/제공을 위해 각 담당자와 오프라인 커뮤니케이션을 통해 업무를 진행해 왔었습니다. 그러다보니, 프로세스 및 각 담당자를 아는 과정 또한 만만치 않았습니다. 이러한 불편함을 해소하기 위해, NFC 서비스 개발/제공을 위한 전체 프로세스를 지원하는 웹 서비스인 ‘Smart Touch Developer’ 웹 사이트(http://www.sksmarttouch.com)도 오픈하게 되었습니다.  

 이제 Smart Touch Developer 사이트를 통해, 사업자 및 개발자들은 NFC Application/Applet 개발에 필요한 SDK 및 가이드를 다운로드 받을 수 있고, Applet 접근 제어 및 NFC단말/사용자 조회 등과 같은 유용한 API를 이용할 수 있으며, 각 API에 대한 이용 통계 및 정산 정보를 손쉽게 확인할 수 있습니다.

  • IDE

기존에는 Applet 개발을 위한 개발환경이라는 것이 따로 존재하지 않았습니다. 이에 많은 개발자들이 Applet개발에 대해 생소하고 어렵다고 생각해왔었는데, 이를 해결하기 위해 Smart Touch플랫폼에서는 Application 및 Applet 통합 개발 환경(IDE, integrated development environment)을 제공하고 있습니다.

 Smart Touch IDE는 개발자들에게 익숙한 환경인 Eclipse plugin 을 통한 쉬운 설치 및 업데이트가 가능하고, AppletTC 안드로이드용 테스트 어플리케이션을 제공하여 개발자가 서비스 검증을 진행할 수 있습니다. 또한, 안드로이드 에뮬레이터 환경에서도 스마트카드 리더기를 통해 테스트가 가능하도록 통합 테스트 환경을 제공하고 있습니다.

Smart Touch 플랫폼 Open APIs

Smart Touch Developer사이트를 통해 다운받은 SDK를 이용해서 개발하기 위해서는 우선 개발하고자 하는 Application에 대한 정보를 등록하고, 해당 Application에서 사용하고자 하는 Component 및 Applet에 대하여 권한 요청을 해야 합니다. 해당 권한이 승인된 후부터 Smart Touch Open API를 사용 할 수 있습니다.

그러면, Smart Touch 플랫폼에서 제공하고 있는 Component 및 API들에 대해서 살펴보도록 하겠습니다.

  • APPLET_INFO Component

애플릿의 정보 및 버전, 라이프사이클 등의 조회를 할 수 있는 컴포넌트입니다.

  • APPLET_PERSO Component

애플릿의 발급 / 삭제 및 발급 상태를 조회는 컴포넌트입니다.

  • APPLET_SEIO Component

Smart card Service를 제공하는 Component 입니다. USIM의 Secure Element에 연결하여 Applet과 Application간의 APDU 통신을 할 수 있습니다.

  • TELCO_AUTH Component

NFC 서비스 가능 여부 / SKT 사용자 여부 조회 를 담당하는 컴포넌트입니다.

  • MGR_APPLET Component

애플릿의 Lock / Unlock / Enable 등 애플릿을 관리하는 컴포넌트입니다.

  • STD_CRD Component

발급된 신용카드 리스트, 주결제 신용카드 정보, 주결제 신용카드 셋팅을 담당하는 컴포넌트 입니다.

  • STD_RYT Component

이통3사 통합애플릿에 멤버쉽을 발급 / 삭제 / 조회 를 담당하는 컴포넌트입니다.

  • STD_CPN Component

이통3사 통합애플릿에 쿠폰을 발급/삭제/조회를 담당하는 컴포넌트입니다.

  • STD_TKT Component

이통3사 통합애플릿에 티켓을 발급/삭제/조회 를 담당하는 컴포넌트입니다.

  • STD_TRP Component

교통 카드 잔액 조회 / 교통 서비스 가능 여부 조회를 담당하는 컴포넌트입니다.

지금까지 Smart Touch 플랫폼의 구성요소와 Open APIs에 대해서 살펴보았습니다. 다음 포스트에서는 Smart Touch 어플리케이션 및 Applet IDE에 대해 자세히 다뤄보도록 하겠습니다.

홍선희 Commerce기술개발팀

SK플래닛에서 NFC 플랫폼 개발을 담당하고 있습니다.

공유하기

  • 신우섭

    NFC(Near Field Communication): 근거리 통신)

    도대체. NFC 가 뭐냐구… ㅡ_ㅡ;;