t 리눅스 환경에서 인터넷 연결 지원 t 을 위한 nfc 드라이버 구조 ... t t a t e...

16
TTA Technical Report 기술보고서 제정일: 2016 년 12 월 02 일 TTAR-10.0068 리눅스 환경에서 인터넷 연결 지원 을 위한 NFC 드라이버 구조(기술보 고서) NFC Linux driver architecture for Internet Protocol support(Technical Report)

Upload: others

Post on 05-Feb-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

TTA T

echnic

al R

eport

기술보고서 제정일: 2016 년 12 월 02 일

TTAR-10.0068

리눅스 환경에서 인터넷 연결 지원

을 위한 NFC 드라이버 구조(기술보

고서)

NFC Linux driver architecture for Internet

Protocol support(Technical Report)

본 문서에 대한 저작권은 TTA에 있으며, TTA와 사전 협의 없이 이 문서의 전체 또는 일부를 상업적 목적으로 복제 또는

배포해서는 안 됩니다.

본 표준 발간 이전에 접수된 지식재산권 확약서 정보는 본 표준의 ‘부록(지식재산권 확약서 정보)’에 명시하고 있으며, 이후 접수

된 지식재산권 확약서는 TTA 웹사이트에서 확인할 수 있습니다.

본 표준과 관련하여 접수된 확약서 외의 지식재산권이 존재할 수 있습니다.

발행인 : 한국정보통신기술협회 회장

발행처 : 한국정보통신기술협회

13591, 경기도 성남시 분당구 분당로 47

Tel : 031-724-0114, Fax : 031-724-0109

발행일 : 2016.12

기술보고서 초안 검토

위원회 사물인터넷 네트워킹 특별프로젝트그룹(SPG 12)

기술보고서안 심의 위

원회 사물인터넷 특별기술위원회(STC 1)

성명 소 속 직위

위원회 및

직위 표준번호

기술보고서(과제) 제안 최윤철 ETRI 선임연구원 SPG12 위원

기술보고서 초안 작성

자 최윤철 ETRI 선임연구원 SPG12 위원 TTAR-10.0068

사무국 담당 이종화 TTA 전임연구원 -

기술보고서

TTAR-10.0068 i

서 문

1 기술보고서의 목적

이 기술보고서의 목적은 자원 제약적인 단말에서 사용하는 인터넷 연결이 제한적인 통

신 장치인 NFC와 같은 통신 장치에서 인터넷 연결이 가능하도록 리눅스 환경에서 네트

워크 디바이스를 수정하는 방법에 대해서 기술하고자 한다,

2 주요 내용 요약

이 기술보고서는 리눅스 환경에서의 NFC 드라이버를 분석하고, 인터넷 연결이 가능하도

록 네트워크 스택을 추가하는 방법과 활용 예제에 대하여 기술하고자 한다.

3 인용 기술보고서와의 비교

3.1 인용 기술보고서와의 관련성

해당 사항 없음

기술보고서

TTAR-10.0068 ii

Preface

1 Purpose

This technical report describes the methods to update NFC driver architecture of the

constrained devices for supporting network layer functionalities. Internet

communication is supported for the NFC equipped constrained devices by using the

updated NFC driver architecture.

2 Summary

This technical report analyzes the NFC driver architecture of Linux, and the updated

architecture which additionally contains the new network stack is described to enable

Internet communications.

3 Relationship to Reference Standards

None.

기술보고서

TTAR-10.0068 iii

목 차

1 적용 범위 ················································································ 1

2 인용 표준 ················································································ 1

3 용어 정의 ················································································ 1

4 약어 ······················································································· 1

5 리눅스 환경에서의 NFC 드라이버 ················································· 2

5.1 I/O 지원 NFC ········································································· 2

5.2 네트워크 지원 NFC·································································· 3

5.3 네트워크 NFC 활용예제 ···························································· 4

부록 Ⅰ-1 지식재산권 확약서 정보 ·················································· 6

Ⅰ-2 시험인증 관련 사항························································ 7

Ⅰ-3 본 기술보고서의 연계(family) 기술보고서 ····························· 8

Ⅰ-4 참고 문헌 ···································································· 9

Ⅰ-5 영문기술보고서 해설서 ·················································· 10

Ⅰ-6 기술보고서의 이력 ························································ 11

리눅스 환경에서 인터넷 연결 지원을 위한 NFC 드라이버 구조

NFC driver architecture in Linux

1 적용 범위

본 기술보고서는 저전력, 자원 제약적인 단말에서 사용가능한 인터넷을 지원하지 않는

저전력 저대역폭을 사용하는 통신 디바이스를 인터넷이 가능 하도록 수정할 때 본 문서

를 참조하는게 가능하다. 또한 저전력 지원 통신 디바이스에서 인터넷이 가능하도록 네

트워크 스택이 추가된 경우에도 본 문서를 참고하여 기능이나 설계를 확인하는 것도 가

능하다.

2 인용 표준

해당 사항 없음

3 용어 정의

3.1 Logical Link Control Protocol

상위 메시지 교환을 위해 신뢰성 높은 양방향 데이터 전송을 지원하기 위한 프로토콜을

의미한다.

3.2 Raw socket

전송계층을 통해서 전달받음 프레임으로 특정 프로토콜 스펙을 무관한 전체 프레임을

의미한다.

4 약어

I/O Input/Output

IoT Internet of Things

IP Internet Protocol

LLCP Logical Link Control Protocol

NFC Near Field Communication

SDN Software Defined Networking

기술보고서

TTAR-10.0068 2

5 리눅스 환경에서의 NFC 드라이버

본 장에서는 리눅스 상에 구현 되어 있는NFC(Near Field Communication) 드라이버를

분석하고, 이를 기반으로 인터넷 지원을 위한 네트워크 스택을 추가하는 방안에 대해서

기술 하고자 한다.

5.1 I/O 지원 NFC

버퍼 크기, 컴퓨팅 파워, 전원과 같은 자원이 제약적인 노드들이 IoT 환경에서는 많이

사용되게 된다. 이러한 자원 제약적인 노드들은 네트워크 구성에 한계를 가지고 있어서

인터넷에 직접 연결 되는 구조를 가지기 보다는 노드들 간에 연결을 갖는 경우가 대부

분이다. 그러나 사용자의 요구사항이 다양해지면서 이런 자원 제약적인 노드들도 인터넷

에 직접 연결을 원하는 경우가 발생하게 되었다. 블루투스도 이러한 요구사항을 만족시

키기 위해서 블루투스 스펙 4.1 에서는 IPv6를 지원하기 시작했다. 그리고 근거리 통신

환경에서 많이 사용되고 있는 NFC(Near Field Communication)기술도 태그를 접촉하여

인식을 하고 정보를 전달하는 수동 통신모드(Passive Communication Mode)로 대부분

사용이 되고 있지만 추후에 사용자의 요구사항이 다양해지면 능동 통신방식(Active

Communication Mode)에서 인터넷 연결을 요구할 수도 있다.

근거리 통신 환경에서 많이 사용되고 있는 NFC 기술은 리눅스 환경에서 그림 5-1과 같

이 프로토콜 스택이 구성 된다. 그림과 같이 다양한 NFC 하드웨어가 존재하고 있다. 서

로 다른 회사에서 제조한 하드웨어에 대한 호환성을 지원하기 위해서는 상위 계층에서

공통된 중간 계층이 필요하다. 이에 해당하는 부분이 그림의‘NFC core ’에 해당한다.

‘NFC core’ 와 하드웨어와의 연동을 위해서는 각각의 회사에서 제공하는 하드웨어 드라

이버가 필요하고, 이부분은 NFC 하드웨어와 연관이 있는 부분으로 각각의 회사에서 자

신의 하드웨어에 맞게 개발한다. ‘NFC core’ 에서는 서로 다른 회사에서 제작한 드라이

버에서 올라오는 데이터 정보를 처리하여 넷링크로 보내거나 또는 소켓으로 보내어서

응용에 전달해 주고 응용에서는 이를 전달 받아서 처리하게 된다. 넷링크는 NFC 관리

목적 때문에 존재 하는 부분이고, LLCP(Logical Link Control Protocol) 메시지 또는 로우

(Raw) 소켓을 처리하는 부분이 소켓 링크 부분이다. 소켓 링크에서 올라오는 정보는 연

동되는 응용에 바로 전달 될수도 있고, 응용 지원을 위한 ‘neard’ 데몬에서 데이터를 처

리를 하여 응용에 전달하는 것도 가능하다. 그리고 넷링크도 소켓 링크와 동일하다. 소

켓링크는 소켓과 연동 되는 플러그인 모듈을 두어서 다른 라이브러리와 연동을 하거나

내부 핸드오버 모듈과 연동 하는 것도 가능하다. 그림에 나와 있는 ‘D-Bus API’ 부분은

다른 응용에서 전달 받은 데이터를 처리하거나 사용자로부터 데이터를 받아서 처리되어

야 하는 부분 때문에 필요한 모듈이다.

기술보고서

TTAR-10.0068 3

(그림 5-1) 리눅스에서 NFC 프로토콜 계층

5.2 네트워크 지원 NFC

NFC에서 IP 계층을 지원하기 위해서는 여러가지 방법이 있을 수 있지만, 본 기술문서에

서는 두 가지 방법에 대해서 기술 하고자 한다. 우선 그림 5-1에서 살펴 본 것처럼 각

각의 회사에서 제작한 드라이버에서 공통된 데이터가 올라오는 ‘NFC core’ 부분을 수정

하여 네트워크 스택을 추가하는 방법이 있을 수 있고, 아니면‘NFC core’ 은 그대로 두

고 내부 소켓으로 처리하는 부분을 수정하여 인터넷 지원을 위한 네트워크 스택을 추가

할 수 있다.

그림 5-2 왼쪽 그림과 같이 ‘NFC core’ 에서는 LLCP 메시지, 로우소켓, 넷링크 메시지

를 분리하기 때문에 LLCP로 전달 하는 부분을 확장하여 IP와 TCP/UDP와 같은 네트워

크 계층을 추가하는 부분과 네트워크 디바이스를 생성하는 부분을 추가하여서 구성 할

수 있다. 또 다른 방법은 그림 5-2 오른쪽 그림과 같이 소켓 모듈을 수정 확장하여서

IP 바인딩 하는 부분과 네트워크 디바이스 생성 모듈을 구성하는 것이다.

NFC core

Raw socketsLLCP sockets

NFC netlink

NFC core

Raw sockets LLCP sockets NFC netlink

NFC netlinkAF_NFC socketsNFC 0

IP bindings

NFC 0IP bindings

(그림 5-2) NFC 인터넷 지원 모듈 구조

또는 그림 5-3와 같이 ‘NFC core’ 만을 두고 이를 기반으로 인터넷 지원 연결구성이 가

능하다. 이렇게 구성을 하면 인터넷 지원 네트워크 드라이버 구성을 보다 빠르게 할 수

기술보고서

TTAR-10.0068 4

있다는 장점이 있다.

(그림 5-3) IPv6 지원 NFC 리눅스 드라이버

5.3 네트워크 NFC 활용예제

NFC 는 근거리 무선 통신기술로 저전력, 저용량이 특징인 전송기술로 간단하고 빠르게

초기 설정이 가능하고, 근거리 통신 속성을 가지고 있어서 무선 간섭 혹은 무선 도청에

대해서 안전하다는 장점이 있다. 이와 유사한 RFID 기술과는 쓰기 기능을 제공한다는

차이점이 있고, 기존 RFID와 상호호환성을 제공하여서 RFID 인프라를 그대로 사용 가능

하다는 장점도 있다. NFC 기술의 장점과 차별점을 활용하여 NFC 기술을 RFID 리더 모

드 방식과 카드 애물레이터 모드 방식으로 활용하는 모바일 지갑기술 이나 사용자에게

각종 정보를 전달하는 스마트 포스터 기술 등에 사용하는 예제가 주를 이루었고, P2P

모드 방식은 링크 단에서 제한적으로 활용이 되었다. 최근에는 연결(Connection) 정보

를 NFC 릍 통해 서로 주고 받아서 연결 핸드 오버(Connection handover) 하는 예제가

나오고 있다. 예를 들어 블루투스 페어링 정보나 wifi 연결 정보를 NFC로 주고 받아서

블루투스 연결이나 wifi 연결을 가능하게 하는 것이다, 이러한 I/O 만을 지원하는 NFC

기술에 네트워크 기능이 추가가 되면 다양한 분야에 활용이 가능하다. 연결 핸드 오버를

P2P 모드로 수행 할때 연결 정보 인증을 네트워크 기반으로 전송이 가능하면 OAuth를

통한 인증이 가능해 진다. 그리고 연결 핸드 오버 정보를 동일 네트워크망에 포함되어

있는 wifi망으로 전달하거나 통합 서버에 등록을 하면 AP가 변경 될 때마다 새로운 인

증 절차를 거칠 필요가 없게 된다. 그리고 네트워크를 지원하는 P2P 모드를 활용하여

보안 데이터 전송에 활용하는 예제도 가능 하다. 예를 들어 3G/LTE를 활용하여 음성 데

이터를 전송할 때 개인/프라이버시 정보와 음성 데이터를 같이 보내는 것은 보안에 취

약하다. 개인/프라이버시 데이터는 음성 데이터를 전송하는 시간에 비해 매우 짧기 때문

에 전체 세션을 암호화하는 것은 효율이 떨어지며, 사전에 인증 키를 교환하거나 보안

계층을 추가하는 방법은 네트워크와 프로세스 성능에 부담을 줄 수 있다. 그래서 개인/

프라이버시 정보는 NFC 네트워크를 통해 독립적으로 전송하는 방법이 효율적이다. 또한

기술보고서

TTAR-10.0068 5

NFC 네트워크를 통해 인증 키와 세션 암호 키를 전송하여 인증이나 세션 설정 과정에

서 발생 가능한 보안 위험을 사전에 제거할 수도 있다.

5.3.1 NFC 를 이용 video cast 예제

네트워크가 가능한 NFC를 활용하면 암호화된 개인정보를 서버로 바로 전달 하는게 가

능하다. 그리고 NFC에 사전에 입력된 결제 정보를 선택하여 전송하는 것도 가능해진다.

이렇게 인증된 사용자에게 비디오를 볼 수 있게 인가를 해줄 수도 있고, NFC로 결제만

진행하고, 원하는 목적지 주소를 다른 장소로 지정하여서, 전달해 주는 시나리오는 가능

해 진다. 이를 위해서 그림 5-4와 같이 네으워크 환경을 구성하는 것이 가능하다. 여기

서는 주소 변경및 응용 프로그램 추가를 쉽게 하기 위하여 SDN 환경을 고려하여서 구

성을 하였다. 사용자가 SDN 스위치 2번에서 인증을 하고 인증을 한 단말에서 지금 볼

수도 있고, 아니면 예약된 시간에 지정된 다른 단말에서 보는것도 가능하다.

(그림 5-4) 인터넷 지원 NFC 드라이버를 활용 비디오 전송 네트워크 구성

SDN

Controller

SDN

Switch 1

SDN

Switch 3

SDN

Switch 2

Video

Server APP

Video

Client with NFC

Video

Proxy Server

Authentication

Server APP

기술보고서

TTAR-10.0068 6

부 록 Ⅰ-1

(본 부록은 기술보고서를 보충하기 위한 내용으로 기술보고서의 일부는 아님)

지식재산권 확약서 정보

해당 사항 없음.

기술보고서

TTAR-10.0068 7

부 록 Ⅰ-2

(본 부록은 기술보고서를 보충하기 위한 내용으로 기술보고서의 일부는 아님)

시험인증 관련 사항

해당 사항 없음.

기술보고서

TTAR-10.0068 8

부 록 Ⅰ-3

(본 부록은 기술보고서를 보충하기 위한 내용으로 기술보고서의 일부는 아님)

본 기술보고서의 연계(family) 표준

해당 사항 없음.

기술보고서

TTAR-10.0068 9

부 록 Ⅰ-4

(본 부록은 기술보고서를 보충하기 위한 내용으로 기술보고서의 일부는 아님)

참고 문헌

해당 사항 없음.

기술보고서

TTAR-10.0068 10

부 록 Ⅰ-5

(본 부록은 기술보고서를 보충하기 위한 내용으로 기술보고서의 일부는 아님)

영문기술보고서 해설서

해당 사항 없음.

기술보고서

TTAR-10.0068 11

부 록 Ⅰ-6

(본 부록은 기술보고서를 보충하기 위한 내용으로 기술보고서의 일부는 아님)

기술보고서의 이력

판수 채택일 표준번호 내용 담당 위원회

제1판 2016.12.02 제정

TTAR-10.0068 -

사물인터넷

네트워킹 특별

프로젝트그룹

(SPG 12)