Yakın alan haberleşmesi ile güvenli uygulamalar için donanım/yazılım ortak sistem tasarımı ve gerçeklenmesi
Hardware/software codesign and implementation for secure near field communication applications
Yazar: SUBUTAY GİRAY BAŞKIR
Danışman: DOÇ. DR. SIDDIKA BERNA ÖRS YALÇIN
İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2015
Konu: Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering

Özet:
Yakın alan haberleşmesi (Near Field Communication - NFC) kısa mesafelerde bilgi alışverişini sağlayan bir kablosuz haberleşme teknolojisidir. Bu haberleşme sisteminin en önemli özelliği cep telefonuna entegre bir biçimde kullanıma olanak sağlamasıdır. Günümüzde yaygınlaşmış cep telefonu kullanımı göz önünde bulundurulduğunda NFC birçok kullanım alanında kullanıcılara daha öncesinde üstlerinde taşımak zorunda oldukları kart veya bilet gibi ödeme ya da geçiş için kullanılan cihazları kullanmadan zaten sürekli yanlarında taşıdıkları bir cep telefonu ile bu işleri yerine getirmelerine imkan vermektedir. Bu teknoloji ülkemiz dâhilinde pek sıklıkla olmasa da hali hazırda birçok ülkede ödeme, ulaşım, kontrollü giriş çıkış gibi birçok uygulama alanında kullanılmaktadır. Ancak NFC'nin kullanıldığı bu uygulamalar güvenlik açısından incelediğinde ve çeşitli saldırılara tabi tutulduğunda sahip olduğu güvenlik açıkları ortaya çıkmaktadır. Literatürde işlenen güvenlik açıkları iki NFC özellikli cihazın arasındaki haberleşmenin dinlenmesi, veri bozulması, veri eklenmesi ve veri değiştirilmesidir.
Bu tez çalışmasında söz konusu ataklara karşı NFC özellikli cihazların güvenli bir haberleşme kanalı üzerinden veri aktarmalarına imkan sağlayacak bir sistem tasarımı ve gerçeklemesi yapılmıştır.
Tasarımın NFC standartlarına sadık kalınarak yapılması amacıyla öncelikle bir gerçekleme ortamı altyapısı oluşturulmuştur. Bu alt yapı içerisinde bir NFC özellikli cihazın içinde bulunan NFC teknolojisi ile ilişkili alt birimlere karşılık düşecek iki adet haberleşme kartı tasarlanmış ve gerçeklenmiştir. Bu kartlar ile birlikte NFC kontrol birimi için iki adet FPGA geliştirme kartı üzerinde Microblaze işlemcisi kullanılmış ve NFC kontrol birimi yazılım tasarımı yapılmıştır. Yapılan tasarımların entegre edilmesi ile birimler arasında kablosuz NFC veri transfer hattı kurulmuştur.
Söz konusu haberleşme kanalının güvenli hale getirilmesi amacıyla donanım / yazılım ortak sistem tasarımı yöntemi ile FPGA üzerinde bir doğrulama protokolü gerçeklenmiştir. Bu aşamada cihazlar arasında NFC bağlantısı kurulmasından önce karşılıklı olarak cihazların doğrulanması ve anahtar paylaşımı gerçekleştirilmiştir. Bu amaç doğrultusunda gerçeklenen donanım kısmında kapı seviyesinde çeşitli kriptografik algoritmalar, yazılım kısmında ise donanım olarak gerçeklenen kriptografik algoritmaların kullanılmasıyla söz konusu doğrulama protokolu gerçeklenmiştir. Sonrasında bu doğrulama protokolü NFC veri transfer akışı ile entegre edilmiş, haberleşme akışı dahilinde aktarılan mesaj, doğrulama protokolünün çalıştırılmasıyla üretilen anahtarlar kullanılarak şifreleme ve şifre çözme işlemlerine tabi tutulmuştur. Bu yol ile NFC özellikli birimler arasında güvenli bir haberleşme kanalı üzerinden veri aktarımı gerçekleştirilmiştir.

Abstract:
Near Field Communication (NFC) is a wireless communication technology, which provides short distance data, sharing. The capability of mobile phone integrated usage is the most important feature of this communication system. Considering the usage of mobile phone at the present time; NFC provides a system that people can use their mobile phones in many different application areas instead of carrying a large number of cards which are credit cards, tickets for payments or access control devices. Although in Turkey, this protocol has not a wide usage area, in many countries people perform various activities such as payment and ticketing by using that technology. On the other hand, when the applications, which depend on NFC technology, are investigated by being exposed to cryptographic experiments and attacks; it is seen that this technology has severe vulnerabilities. In the literature, related vulnerabilities are investigated as eavesdropping, data corruption, data insertion and data modification. 
In this thesis, a system design and implementation is carried out for secure data transfer between NFC enabled devices over a secure communication channel in order to prevent the attacts, which are mentioned. 
In order to make the design appropriate to NFC standards, primarily an implementation environment infrastructure is built. For this infrastructure, two communication cards are designed and implemented. 
These cards, which are called NFC subsystem cards, are equvalent to NFC enabled devices' NFC subsystem. Analog front end and NFC antenna are the main parts of these cards. For the analog front end integrated circuit a product of Texas Instruments which is called TRF7970A is preffered by comparing other similar products. For NFC antenna design NFC Forum POLLER-3 type antenna is implemented on printed circuit board. 
Along with communication cards, two different NFC control unit software are designed besides. At the first design, NFC card emulation mode protocol layers are implemented on a microcontroller development kit. After integrating that control unit and NFC subsystem card, this system is tested and verified by a trusted NFC reader module. Then, NFC peer to peer mode protocol layers are implemented on Microblaze soft core processor on a Field Programmable Gate Array (FPGA) development kit. By integrating that control unit and NFC subsystem card, this system is communicated with a NFC enabled smartphone and executed an image transfer. At the final phase of this part, two NFC subsystem cards and two control units designed on FPGA development kits are communicated each other with NFC peer to peer mode and executed an image transfer. 
For the secure communication channel, a mutual authentication protocol is implemented on FPGA by using hardware/software codesign methode and integrated with NFC data transfer flow. 
Hash based Radio Frequency Identification (RFID) mutual authentication protocol, which is proposed by Dehkordi, and Farzaneh is preferred for mentioned authentication process. This protocol is an improved version of Cho et al.'s protocol and has similar properties. It consist of eight phases and operates between three units, which are back-end server, reader and tag. These three units can be called RFID system members also. In order to implement this protocol on the NFC devices, which communicate each other with peer-to-peer mode, protocol is slightly modified. This modification is made by combining the phases, which are performed by back-end server and reader on NFC initiator device. The phases of tag are performed on NFC target device without modification. 
Implementation of the authentication protocol includes cryptographic algorithms. These algorithms consist of hash function generation, encryption and random number generation. These algorithms are implemented on hardware side of the design. 
Hash function generation is implemented by using the algorithm, which is called The Davies-Meyer hash function. This function is a construction for a hash function based on a block cipher, where the length in bits of the hash result is equal to the block length of the block cipher. 
Tiny Encryption Algorithm (TEA) is used for implementing the block cipher. This algorithm is a Fiestel type cipher that uses operations from mixed algebraic groups with 64 rounds. TEA has two inputs, which are 64 bit data and 128 bit key. Implementation of this block cipher includes adder, substracter, logical shift and exclusive or submodules.
The phases of authentication protocol where hash function is used, hash function input length is defined 192 bit. Because of that reason, Davies-Meyer hash function operates two rounds. At each round of hash function, block cipher TEA operates 64 rounds. The output of hash function is 64 bit length. For being compatible with Microblaze, input and output values of hash function are divided to 32 bit length parts.
Tiny Encryption Algorithm is not only used for hash function generation. This algoritihm is used for enrcrpyting the data, which is send at NFC data transfer stage. Moreover, TEA decrypting module is implemented similarly to encryption module for decrypting the message which is formatted by NFC Data Exchange Format (NDEF).
Linear feedback shift registers are used for implementing random number generator. 96 bit random number generator is implemented which is defined at authentication protocol phases. This module generates a new 96-bit random number at each clock cycle by using a seed value and processing shift and exclusive or operations. Also this module's output is divided to 32 bit length parts in order to be compatible with Microblaze. 
By accessing the hardware modules, which are hash function generation, encryption and random number generation modules, authentication protocol phases are implemented on Microblaze soft core processor. 
After the stage of implementing authentication protocol, this protocol is integrated with NFC data transfer flow. Integration is made by operating mutual authentication protocol before NFC data transfer flow. With that design, primarily units mutually authenticate. After the success of this operation NFC data transfer flow processes execute, otherwise communication is terminated. Before the NFC data transfer stage, message is encrypted with TEA by using the secret values, which are generated at authentication stage as key. Similarly, message is decrypted with the same key value by the receiver unit which is uniquely generated for only the current session. 
In this thesis, additionally to the implementations, the topics of NFC technology's technical properties, application areas, possible attack types to communication channel, technical requirements of communication channel implementation are detaily researched. 
Implementation environment infrastructure's application and protocol layers are designed with a modifiable point of view. Thus, this infrastructure can be easily used for different application and protocol implementations.