KR20240079414A - Nft 인증을 이용한 무선네트워크 접속 제어 시스템 및 그 방법 - Google Patents
Nft 인증을 이용한 무선네트워크 접속 제어 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR20240079414A KR20240079414A KR1020220162288A KR20220162288A KR20240079414A KR 20240079414 A KR20240079414 A KR 20240079414A KR 1020220162288 A KR1020220162288 A KR 1020220162288A KR 20220162288 A KR20220162288 A KR 20220162288A KR 20240079414 A KR20240079414 A KR 20240079414A
- Authority
- KR
- South Korea
- Prior art keywords
- nft
- authentication
- station
- contract
- whitelist
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000006870 function Effects 0.000 claims abstract description 57
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 claims abstract description 49
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 7
- 238000012790 confirmation Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 239000000428 dust Substances 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 2
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Z01L10/00—
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 발명은 NFT 인증을 이용한 네트워크 접속 제어 시스템에 관한 것이다. 상기 네트워크 접속 시스템은, 스테이션에 대한 NFT 인증을 수행하는 NFT 인증부, 및 라우터의 기능을 제공하는 라우터부를 구비하며, SSID가 비공개로 설정된 액세스 포인트(AP); 전자 지갑 주소 정보를 상기 AP의 NFT 인증부로 제공하고 NFT 인증을 요청하는 스테이션; 인증에 사용할 NFT 컨트랙트 주소들을 어레이 변수에 등록한 NFT 컨트랙트 화이트리스트를 구비하며, 상기 AP로부터 스테이션의 지갑 주소와 함께 NFT 인증이 요청되면, 스마트 컨트랙트를 이용하여, 상기 스테이션에 대한 NFT 인증을 수행하는 블록체인 네트워크;를 구비하고, 블록체인 네트워크로부터 스테이션의 NFT 인증이 완료되면, 스테이션과 AP는 4-방향 핸드셰이크의 키 교환이 없는 실용적인 WPA2 방식으로 접속할 수 있게 된다.
Description
본 발명은 네트워크 접속 제어 시스템 및 방법에 관한 것으로서, 더욱 구체적으로는 무선 네트워크에 접속하고자 하는 스테이션에 대하여 NFT 인증을 함으로써, 4-방향 핸드셰이크의 키 교환이 없는 실용적인 무선데이터보호 II (Wi-Fi Protected Access II, WPA2) 방식을 구현한 것을 특징으로 하는 네트워크 접속 제어 시스템 및 그 방법에 관한 것이다.
무선 LAN(Local Area Network, 근거리 통신망) 기술이란 일정 범위 내의 사용자로 하여금 어느 곳에서든 물리적인 연결 없이 네트워크에 접속이 가능하도록 하는 기술이다. 흔히 Wireless Lan이라고 하며 유선 LAN과 연결되어 있는 서버와 접속하기 위해 무선 AP(Access Point, 공유기)라는 장치를 사용한다. 가장 초기에 채택된 라우터 암호화 방식은 WEP이다. 1999년 Wi-Fi 보안 표준으로 채택되었고 이후 미국이 암호화 비트수 제한조치를 풀어서 192비트 WEP까지 등장하였다.
그러나, 키 용량을 늘렸음에도 보안상 허점이 다수 존재했으며 2005년 미 연방 수사국(FBI)이 무료 소프트웨어를 통해 WEP 암호를 몇 분 안에 해독하는 과정을 시연하였다. 오늘날 WEP는 비영리 Wi-Fi 기술 인증기관인 Wi-Fi 연합(Wi-Fi Alliance)에서 2004년 공식적으로 WEP를 퇴출시켰다.
Wi-Fi 연합은 WEP를 대체하기 위해 무선데이터 보호(Wi-Fi Protected Access, WPA)방식을 출시했으며 WPA는 2003년 공식 채택되었다. WPA는 256비트로써 기존 WEP의 64비트 및 128비트 보다 더욱 강력해졌으나, WPA의 핵심 구성요소인 TKIP이 WEP의 방식을 그대로 재활용함으로써, 이는 결국 취약점으로 이어질 수밖에 없었다.
2006년 WPA는 무선데이터보호 II (Wi-Fi Protected Access II, WPA2) 방식으로 대체되었다. WPA2는 WPA와 달리 AES 알고리즘이 기본 적용되어 있으며CCMP(Counter Cipher Mode with Block Chaining Message Authentication Code Protocol) 방식이 TKIP을 대체한다. WPA2의 문제점과 취약점은 후술한다.
한편, WPA2의 문제점에 대응하기 위해 Wi-Fi 협회는 2018년 WPA3 보안 프로토콜을 발표했다. WPA2의 근본적인 단점은 불완전한 4-way handshake이며, PSK(사전 공유키) 사용 시 Wi-Fi 연결을 위험에 노출시킨다. WPA3는 암호 키 추측을 통해 연결 과정에 침입하는 것을 어렵도록 추가적인 보안을 구현하였다. 대표적으로, WPA3는 WPA2의 PSK(사전 공유키)를 장치 간 동시 인증(Simultaneous Authentication of Equals)으로 대체함으로써, WPA2의 가장 취약한 크랙 툴인 KRACK으로부터 공격을 보호한다. 하지만, 접속하는 기기인 STA(스테이션)과 AP(Access Point, 공유기)가 SAE를 지원해야 한다. 최신의 스마트폰들은 WPA3를 지원하지만 아직까지 사용하고 있는 대다수의 공유기에서 WPA3를 지원하지 않는다. 이는 소프트웨어적으로 가능한 것이 아닌 하드웨어적으로 업그레이드되어야 한다. 라우터 회사들은 AP의 SAE 기능을 2019년부터 출시되는 모델에 순차적으로 적용하여 출시하고 있다.
Wigle.net 조사에 의하면 2022년에도 전세계에서 가장 많이 사용하는 프로토콜은 WPA2이다. WPA2는 2006년에 당시에는 엄연히 좋은 성능의 프로토콜이었으나, 현 시점에 와서는 3만원도 안되는 모니터링 무선 장비를 구입해서 누구나 빠른 시간 내에 크랙시도가 가능하다. WPA2에 대한 공격 방법으로는, WPS를 이용한 Pixie Dust 크랙, Key Reinstallation Attack(KRACK), 예상 사전 키 공유 파일을 통한 키 유도 공격, WPA2 Handshakes Capturing 패킷 분석 등이 널리 쓰이고 있다. WPA2의 사용이 위험한 예시는 공공장소에서 나타나는데, 해커들이 카페나 공항 같은 공공장소는 차를 타고 돌아다니면서 원거리에서 무선 AP를 해킹하여 개인정보를 수집해가는 Rogue WarDriving이 활개치고 있다.
한편, 블록체인은 P2P네트워크를 통해서 관리되는 분산 데이터베이스의 한 형태로 거래 정보를 담은 장부를 중앙 서버 한곳에 저장하는 것이 아닌 블록체인에 연결된 모든 컴퓨터에 저장 보관하는 기술이다. 2008년에 S.Nakamoto의 논문 "Bitcoin: A Peer-to-Peer Electronic Cash System"으로 블록체인의 기술이 세상에 많이 알려지게 되었고, 그는 비트코인을 개발하면서 발생하는 문제점들을 블록체인을 개발 및 적용함으로써 해결했다. 블록에는 이전 사용자들이 거래했던 트랜잭션이 모두 기록되어 있고, 이것은 P2P 방식으로 모든 사용자에게 똑같이 전파되어 거래 내역을 한 특정 개인이 임의로 수정하거나 삭제할 수 없다.
각 블록은 발견된 날짜와 이전 블록의 해시값에 대해 연결고리를 가지고 있으므로, 이러한 블록의 집합을 블록체인이라 한다. 쉽게 표현하면 거래장부를 블록, 그것들을 연결한 것을 체인 합쳐서 블록체인이라고 보면 된다. 비트코인과 같은 퍼블릭 블록체인에서 블록의 트랜잭션이 위조되지 않았다는 것을 검증하기 위해 작업 증명(Proof-of-Work)을 도입했다. PoW(작업 증명)란, 다음 블록에 올 해시값을 계산하기 위해 비트코인 네트워크 시스템이 정한 난이도 이하의 값이 될 때까지 블록의 헤더 Nonce를 바꿔서 맞춰가는 과정이다. 10분에 한번씩 블록이 생성되며 이렇게 6번을 맞춘 것을 비트코인에서는 6 Confirm Finalizing이라고 한다. 이것이 이루어지면 현시점의 컴퓨팅 파워로는 이전 블록들의 값을 변조시킬 수 없다.
이더리움은 2009년의 비트코인 논문에 영감을 얻어 2015년 비탈릭 부테린이 창안한 또 다른 퍼블릭 블록체인 플랫폼이자 플랫폼 자체 통화 이름이다. 비트코인과의 가장 큰 차이점은 스마트 컨트랙트의 도입으로 인한 다양한 응용성이다. 즉, 비트코인이 결제나 거래 관련 시스템, 화폐로서의 기능에만 집중하는 반면, 이더리움은 스마트 컨트랙트를 통해 거래나 결제뿐만 아니라 계약서, 전자투표, DAO 등 다양한 탈 중앙화 분산 애플리케이션(DApp)을 누구나 만들고 사용할 수 있도록 하는 플랫폼이다. 이러한 점 때문에 비트코인부터 이더리움 이전까지는 1세대 블록체인이라 불리고, 이더리움부터는 2세대라고 불린다.
Ethereum Request for Comment(ERC)란 Internet Engineering Task Force(IETF)에서 제정하는 인터넷 표준 절차인 RFC의 형식을 따온 이더리움 플랫폼만의 절차(프로토콜)이다. 이더리움에서 거래 토큰으로 사용되는 ERC-20은 Smart Contract로 구현할 수 있는 API용 토큰 표준으로 Fabian Vogelsteller에 의해 제안되었으며 토큰으로써의 역할과 기능을 정의한다. ERC-20은 대체 가능이라는 의미로 사용되는 Fungible Token인데 ‘대체 가능’의 의미는 화폐를 떠올리면 된다. 저자가 가진 100원과 A라는 사람이 가진 100원은 둘 다 동일한 가치를 지닌다. 이것을 누군가에게 주어도 마찬가지이다.
한편, ERC-721은 이더리움 플랫폼에서 대체할 수 없거나 고유한 토큰(Non-Fungible Token)을 작성하는 방법을 설명하는 표준 규약(프로토콜)이다. ERC-721 토큰은 ERC-20 토큰과는 반대로 ‘대체 불가능’한 특징을 지닌다. 다시 말해 ERC-721로 발행되는 토큰은 모두 각각의 고유한 가치(Value)를 갖고 있다. 이더리움의 스마트 컨트랙트를 활용한 NFT(ERC-721)는 도 1에 도시된 바와 같은 표준을 가지고 있다. 도 1은 NFT에 대한 ERC-721 표준을 도시한 도표이다.
이하, 디지털 서명에 대해 살펴 본다. 현재 대부분의 구글이나 네이버 같은 잘 알려진 웹사이트에 접속하는 경우, 클라이언트의 브라우저와 서버 측에서는 암호화 통신을 위해 SSL인증을 사용하며, 이때 사용하는 것이 전자서명이다. 블록체인과 같은 Web3 환경에서는 디지털 서명과 코드 서명을 사용한다. 코드 서명은 응용프로그램에 전자 서명을 하고 제대로 된 인증절차를 거쳐 배포할 수 있게 하는 기술이다. 디지털 서명은 서명과 검증으로 표현할 수 있다.
도 2는 서명과 검증을 설명하기 위하여 도시한 모식도이다. 도 2를 참조하면, 블록체인에서 지갑을 이용한 서명을 할 때(즉, 데이터를 보낼 때) 데이터와 데이터를 해시함수 돌린 것에 지갑의 개인키로 암호화한 것 2개를 검증자에게 같이 보낸다. 데이터를 받은 검증자는 받은 데이터를 해시함수를 돌리고 암호화된 채로 받은 데이터를 알려진 공개키로 복호화 해서 그 두개가 일치하는지 검증한다. 전자를 서명(Signing)이라 하고 후자를 검증(Verification)이라고 한다. 이러한 서명과 검증을 통해 Smart Contract에서 자격이 있는 자가 값(변수)을 호출할 수도 있고 변경(Update)할 수도 있다.
WPA2에 내포된 대다수의 보안 취약점들은 보안 회사의 고가의 라우터 장비를 사용하면 많은 부분을 해결할 수 있다. 하지만, 가정이나 중소기업에서는 사실상 고가의 라우터 장비가 필요하지도, 구입할 여력도 되지 않는다. 즉, 보안회사의 고가의 라우터 장비는 SOHO Network에서 실용적, 합리적이지도 못하다.
SBC(Single Board Computer)는 컴퓨터 기능에 필수적인 마이크로프로세서, 메모리, 입출력 등의 기능이 있는 단일 회로 기판으로 구성된 완전한 컴퓨터이며 초소형 크기와 저전력이라는 특징을 가진다. 가장 범용적이고 교육용으로도 많이 사용되는 SBC는 라즈베리파이(Raspberry Pi) 4B 모델이다.
공유기나 라우터 장비에는 그 기기에 맞는 Firmware 나 Embedded OS가 설치되어 있다. 각각의 제품 회사들 마다 고유의 Firmware가 기본적으로 설치되어 있고 해당 Firmware의 관리자 모드에 들어가서 Wi-Fi의 비밀번호를 바꾸거나 인터넷 이용시간 제한 등의 기능 설정을 할 수 있다. 본 발명에 따른 시스템은 NFT의 소유 인증을 통과한 후 WPA2를 이용하게 하는 것인데, 이렇게 특별한 순서가 정해진 Process를 진행하기 위해선 라우터 회사들의 기본 Firmware로는 구현할 수 없다. 또, 블록체인 네트워크에서 NFT 인증을 하려면 최소한 외부와 통신 가능하며 JavaScript 정도는 돌아가는 소형 서버가 필요하다. 이러한 Process Flow와 장비추가의 문제를 한번에 해결해 주는 것이 바로 리눅스 기반의 오픈소스 프로젝트인 OpenWRT(Open Wireless RouTer)이다. 리눅스 기반의 Firmware라서 개발자가 설정을 다루기에도 용이하다. 용도가 공유기로만 제한되지는 않으며, 라즈베리파이, 포고플러그 등 각종 임베디드 장비 혹은 x86 머신에도 설치가 가능하다. 즉, 이것을 이용하면 유무선 공유기가 되면서 동시에 소형 리눅스 임베디드 장치가 될 수 있다. 정리하면, 본 발명은 보안 회사의 고가의 라우터 장비를 사용하는 것 대신, 상대적으로 저렴한 교육용 Single Board Computer인 라즈베리파이에 OpenWRT를 설치하여 이것을 유무선 공유기이자 NFT 인증 서버로 구현할 수 있다.
이하, WPA2 해킹 이론에 대하여 간략하게 살펴 본다.
1) EAP 4-way handshake
WPA2는 EAPOL stands for Extensible Authentication Protocol(EAP) over LAN 이라는 간단한 4-way handshake를 사용한다. 도 3은 WPA2의 연결과정을 설명하기 위하여 EAP 4-Way Handshake 를 간략하게 도시한 순서도이다. 도 3을 참조하면, 최종적으로 WPA2의 암호화된 통신을 하기 위해선 접속하는 기기 STA(스테이션)과 AP(공유기)에 PTK(Pairwise Transient Key)가 설치되어야 한다. 이 PTK를 유도하기 위해선 그 과정에서 많은 Key가 사용되지만 핵심적으로 수학식 1에 표현된5개의 인자가 필요하다.
도 3을 참조하면, 접속하려는 기기 STA은 AP로부터 AP의 Nonce인 ANonce를 받는다. PMK(PSK)는 사전에 공유된 키이므로 STA, AP 둘 다 알고 있다. ANonce를 받은 STA 입장에서는 수학식 1에 의거해 PTK를 유도할 5가지 인자가 다 갖추어졌다. 다음, STA에서 AP에게 SNonce와 MIC를 보낸다. MIC는 Message Integration Code의 약자로써 STA이 자신이 보냈다는 것을 증명하는 메시지 코드이다. SNonce를 받은 AP 입장에서도 PTK를 유도할 인자가 다 갖추어졌다. AP도 STA에게 자신이 보냈다는 것을 증명하는 MIC와 자신의 그룹 일원이 되라는 GTK(Group Temporary Key)를 보낸다. STA은 AP의 MIC를 확인하고 올바른 값이므로 PTK와 GTK를 인스톨한다. 인스톨 이후 올바르게 수행되었다는 ACK를 AP에게 보냄으로써 AP도 PTK를 인스톨하여 서로 간에 암호화 통신을 할 준비가 되었다.
전술한 통신 방법에는 대표적으로 3가지 크랙 Tool이 존재하고, Brutal Force까지 이용하면 크게 4가지의 취약점이 존재한다.
2) PMK(PreShareKey) Attack
첫 번째로 Airmon-ng라는 Tool을 이용해 PMK(PSK, 사전 공유 키)의 취약점을 이용하는 것이다. PreShared Key는 말그대로 사전 공유 키 인데, 만드는 방법은 3~4 가지가 존재하며 구형 공유기일수록 펌웨어 패치가 안 되어 있다면 더더욱 쉽게 크랙이 가능하다.
도 4는 사전 암호 예상 파일이다. 도 4와 같이, 이미 잘 만들어진 사전 암호 예상 파일이 있고, 그 파일에서 8~36bit를 추출해서 PBKDF2라는 SSID 기반 키 유도 함수를 돌리면 PSK를 생성할 수 있다. 이것을 토대로 다시 PMK를 만들기 위해 5가지 인자를 모두 넣어서 PTK를 생성하고 MIC 기반으로 AP에게 검증을 한다. 과정이 실패해도 다시 Loop를 돌려서 될 때까지 하면 된다. 2022년 현재 하드웨어의 성능은 굉장하기 때문에 사전 암호 파일만 잘 갖추어 진다면 크랙하는데 20분 이내로 가능하다.
3) Pixie Dust(WPS) Attack
두 번째로는 WPS를 악용한 Pixie Dust Attack이 있다. WPS(Wi-Fi Protected Service) 버튼의 원래 목적은 공유기에 설정된 별도의 Wi-Fi 비밀번호를 입력하지 않고 간단하게 버튼을 누름으로써 손쉽게 연결할 수 있는 편리함을 제공하는 기능이다. 하지만 공유기 제조사 마다 제품에 내장된 칩셋의 PIN Number가 유출되었고 이것을 악용하여 더 쉽게 크랙을 시도할 수 있다.
도 5는 WPS 메시지 교환 과정을 도시한 순서도이다. 도 5에 도시된 바와 같은 총 13번의 EAP-POL 메시지 전송 과정에서, AP가 답변하는 M3와 M5가 문제이다. M2에서 잘못된 메시지를 보내면 M3에서 그것이 틀렸다는 NACK를 보내준다. 이를 통해서 크랙해야 할 경우의 수가 급격하게 줄어든다. 또, M4에서도 틀려도 M5에서 NACK를 보내주기 때문에 크랙해야할 경우의 수가 두번이나 급격하게 줄어들기 때문에 PIN Number에 대한 정보까지 있다면 공격이 매우 쉽다. 유출된 정보가 없더라도 WPS의 PIN 번호는 8자리 숫자이다. WPS attack은 기본적으로 지능형 Brutal Force 공격인데, AP가 응답하는 시간을 고려하면 1초당 1~2개의 응답을 받을 수 있다. Brutal Force로 진행하면 8자리와 자리당 10개의 숫자(0-9)는 108 초라는 계산을 가져온다. 그냥 시도하면 약 3년 이상의 시간이 걸리지만, PIN Number에는 8번째 자리가 Checksum이라는 규칙이 있다. 또한 이 8자리는 사실 앞4자리와 마지막 4자리를 독립적으로 확인할 수 있도록 나누어져 있다. 즉 기본적으로 전반부 4자리는 104 초의 시간이 필요하고 후반부는 103 초가 소요된다. 이 두 개의 추측 횟수 합, 즉 WPS 예상 추측 시간은 수학식 2로 나타낼 수 있다. 즉 11,000의 추측이 필요하고 이것은 약 3시간으로 이내로 압축할 수 있다. 대표적으로 reaver라는 Tool을 이용해 크랙한다.
4) Pixie Dust(WPS) Attack
마지막으로는 WPA2에서 가장 악명높은 공격인 KRACK(Key Reinstallation Attack)이다. 이 취약점은 WPA2 프로토콜 4-way handshake의 논리적 결함으로 인해 발생하는 것으로서, Wi-Fi를 지원하는 거의 모든 디바이스들(Android, Linux, Apple, Windows, Mediatek, Linksys, OpenBSD)이 영향을 받는다. 이 취약점은 주로 802.11i 중의 4-way handshake 과정 중 언제 협상 키를 설정해야 하는지 정의되어 있지 않아, 공격자가 동일한 키를 여러 번 재설치하여 암호화 프로토콜이 사용되는 난수(Nonce) 및 재생계수를 재설정하는 공격이다. 이 취약점에 대하여 공개적으로 알려진 컴퓨터 보안 결함 목록을 다루는 CVE(Common Vulnerabilities and Exposures) 공식 사이트에 2017년에만 10개의 CVE 항목이 업데이트 되었다. 이러한 취약성들로 인해서 2018년에 Wi-Fi 연합은 KRACK을 막는 WPA3를 발표하였다.
도 5의 EAP-POL 4-way handshake 메시지 교환 과정에서 AP가 답변하는 3 번째 답변인 M3가 주로 문제이다. 클라이언트(STA)는 M3를 수신 후 비밀 Key를 설치하여 정상 데이터 프레임을 암호화하는데 사용한다. 그런데 Message가 중간에 소실될 가능성이 있기 때문에 일정 시간내에 M4(Ack)가 오지 않는다면 AP는 M3를 다시 전달하게 된다. 이렇게 되면 클라이언트는 여러 번의 M3를 받을 가능성이 있고 클라이언트는 매번 M3를 받을 때 마다 암호 Key를 재설정할 기회가 생긴다. 또한, M3를 다시 받을 때마다 데이터 패킷의 Nonce와 수신한 재생 Counter도 다시 재설정할 기회가 생긴다. 때문에 KRACK이 성공한다면 최악의 경우 30초 이내로 크랙이 가능하고 Wi-Fi 사용 중에 신용카드 이메일 계정정보 같은 다양한 정보들을 탈취당할 수 있다.
5) 4-way handshake Capturing
추가적으로 Wireshark같은 패킷 탐지 툴을 이용해서 WPA2 Handshake의 전송과정을 Capture하고 그 Capture한 파일(패킷)을 그래픽카드 같은 장비를 이용해 Brutal Force로 크랙하는 방법이 있다.
결론적으로 WPA2는 통신에 필요한 많은 Key와 그 정보들이 공기 중에 Signal로써 전파되기 때문에, 크랙 등과 같은 많은 문제가 발생한다. 하지만, 전술한 바와 같이, 디지털 서명에서는 데이터를 암호화하고 복호화하는 개인 키(Private Key)가 전송되지 않는 점이 WPA2 통신과의 차이점이고 핵심이다.
따라서, 본 발명은 기존의 WPA2를 그대로 사용하고 장비적인 업그레이드를 하지 않으면서, NFT 인증을 통해 현재까지 널리 사용되고 있는 크랙 툴들을 방어하며, 기존 WPA2와 비교하더라도 실제로 SOHO 에서 사용하는데 무리가 없는 방안을 제안하고자 한다.
전술한 문제점들을 해결하기 위하여, 본 발명은 NFT 인증을 이용하여 4-방향 핸드셰이크의 키 교환이 없는 실용적인 WPA2 방식을 구현한 네트워크 접속 제어 시스템 및 방법을 제공하는 것을 목적으로 한다.
전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 네트워크 접속 제어 시스템은, 스테이션에 대한 NFT 인증을 수행하는 NFT 인증부, 및 라우터의 기능을 제공하는 라우터부로 구성되며, SSID가 비공개로 설정된 액세스 포인트(AP); 전자 지갑 주소 정보를 상기 AP의 NFT 인증부로 제공하고 NFT 인증을 요청하는 스테이션; 인증에 사용할 NFT 컨트랙트 주소들을 어레이 변수에 등록한 NFT 컨트랙트 화이트리스트를 구비하며, 상기 AP로부터 스테이션의 지갑 주소와 함께 NFT 인증이 요청되면, 스마트 컨트랙트를 이용하여, 상기 스테이션에 대한 NFT 인증을 수행하는 블록체인 네트워크; 를 구비하고, 상기 AP는 블록체인 네트워크로부터 스테이션의 NFT 인증이 완료되면 스테이션이 AP의 라우터부에 접속하도록 허여하는 것을 특징으로 한다.
전술한 제1 특징에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, 상기 블록체인 네트워크의 스마트 컨트랙트는, 인증에 사용될 NFT 컨트랙트 주소들을 어레이 변수에 등록한 NFT 컨트랙트 화이트리스트; NFT 컨트랙트 주소가 입력되면 해당 NFT가 NFT 컨트랙트 화이트리스트에 등록되어 있는지 탐색하고, 탐색 결과를 출력하는 NFT 컨트랙트 화이트리스트 함수; 스테이션의 지갑 주소에 있는 NFT의 개수를 카운팅하여 출력하는 NFT 개수 확인 함수; 및 AP에 대한 Hashed SSID와 Hashed Password; 를 구비하고, 상기 AP로부터 요청된 스테이션의 지갑에 있는 NFT가 상기 NFT 컨트랙트 화이트리스트에 1개 이상 등록되어 있고 해당 NFT의 개수가 1 이상이면, 스테이션에 대한 NFT 인증을 수행하고, 스테이션에 대한 NFT 인증이 완료되면 AP에 대한 Hashed SSID와 Hashed Password 정보들을 AP에게 전송하는 것이 바람직하다.
전술한 제1 특징에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, 상기 블록체인 네트워크의 스마트 컨트랙트는, NFT 컨트랙트를 발행하는 NFT 발행 함수; NFT 컨트랙트 화이트리스트에 인증에 사용할 NFT 컨트랙트 주소를 추가하거나 NFT 컨트랙트 화이트리스트로부터 NFT 컨트랙트 주소를 제거하는 NFT 추가/제거 함수; 및 AP의 SSID 및 패스워드를 변경하고, 변경된 SSID 및 패스워드를 해싱 알고리즘을 이용하여 암호화시키고, 해싱된 SSID 및 해싱된 패스워드를 저장하는 SSID 변경 함수; 를 구비하는 것이 바람직하다.
전술한 제1 특징에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, 상기 AP의 NFT 인증부는, 스테이션으로부터 지갑 주소 정보와 함께 NFT 인증을 요청받고, 스테이션으로부터의 NFT 인증 요청에 따라, 스테이션의 지갑 정보를 상기 블록체인 네트워크로 전송하고 해당 스테이션에 대한 NFT 인증을 요청하고, 스테이션에 대한 NFT 인증 요청에 따라, 블록체인 네트워크로부터 인증 완료 후 AP에 대한 Hashed SSID와 Hashed Password 정보들을 수신하여 복호화하고, 복호화된 SSID와 Password를 이용하여 AP 와이파이 프로파일을 생성하고, 스테이션의 MAC 주소를 획득하여 등록하고, 스테이션에게 AP 와이파이 프로파일 정보를 전송하는 것이 바람직하다.
전술한 제1 특징에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, 상기 스테이션은 상기 AP로부터 수신된 AP 와이파이 프로파일 정보를 이용하여 키를 인스톨하고 AP의 라우터부에 접속한다.
전술한 구성을 갖는 본 발명에 따른 네트워크 접속 제어 시스템은 NFT 인증을 통해 키 교환 없는 실용적인 WPA2를 구현할 수 있게 된다. 이하, 이렇게 구현된 시스템의 성능을 평가한 결과를 설명한다.
먼저, KRACK에 대한 보안성 평가를 살펴보면, 본 발명에 따른 NFT 인증을 통해 키 교환 없는 실용적인 WPA2 방식에서는 KRACK이 불가능하다. 이유는 크게 2가지이다. SSID가 검색되지 않고, 접속 시도가 되어야 키 교환을 진행하는데 MAC Address 기반 Filtering 처리를 하였기 때문에 허용되지 않은 MAC Address를 가진 Network 기기들은 접속을 시도조차 할 수 없다. 즉, 키 교환을 시작조차 할 수 없다.
다음, Pixie Dust 공격에 대한 보안성 평가를 살펴보면, OpenWRT에서 WPS 기능을 On한 상태로 진행하더라도, 크랙은 이루어지지 않는다. OpenWRT에서는 WPS 번호를 사용자가 임의로 변경할 수 있고 MAC Address 기반 Filtering을 하였기 때문이다.
다음, 사전암호파일 공격에 대한 보안성 평가를 살펴보면, PTK를 derive하기 위해선 5가지 인자가 필요하며, 그 중에서 AP측면에서 바꿀 수 있는 것은 PMK, SSID와 ANonce이다. OpenWRT에서 STA의 연결 요청마다 SSID와 ANonce를 랜덤 재설정되도록 하였고 마찬가지로 MAC Address Filtering 처리가 되어 있어서 크랙되지 않는다.
따라서, 본 발명에 따른 방식은 WPA2의 대표적인 3가지 크랙으로부터 완전히 방어할 수 있음을 보였다.
도 1은 NFT에 대한 ERC-721 표준을 도시한 도표이다.
도 2는 서명과 검증을 설명하기 위하여 도시한 모식도이다.
도 3은 WPA2의 연결과정을 설명하기 위하여 EAP 4-Way Handshake 를 간략하게 도시한 순서도이다.
도 4는 사전 암호 예상 파일을 통한 공격 방법이다.
도 5는 WPS 메시지 교환 과정을 도시한 순서도이다.
도 6은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템을 전체적으로 도시한 구성도이다.
도 7은 도 6의 네트워크 접속 제어 시스템에서의 인증 과정을 개략적으로 설명한 흐름도이다.
도 8은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템을 실제로 구현한 일 실시 형태에서, 스테이션이 NFT 인증후 와이파이에 접속하는 과정을 순차적으로 표시한 모식도이다.
도 9는 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 실행 화면을 예시적으로 도시한 것이다.
도 10은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, 스테이션(즉, 클라이언트)의 프로세스에 대한 알고리즘을 구현한 수도 코드이다.
도 11은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 Python 프로세스에 대한 알고리즘을 구현한 수도 코드이다.
도 12는 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 JS 프로세스에 대한 알고리즘을 구현한 수도 코드이다.
도 13은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 JS 모니터링 프로세스에 대한 알고리즘을 구현한 수도 코드이다.
도 14는 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, 블록체인 네트워크의 스마트 컨트랙트에 대한 알고리즘을 구현한 수도 코드이다.
도 2는 서명과 검증을 설명하기 위하여 도시한 모식도이다.
도 3은 WPA2의 연결과정을 설명하기 위하여 EAP 4-Way Handshake 를 간략하게 도시한 순서도이다.
도 4는 사전 암호 예상 파일을 통한 공격 방법이다.
도 5는 WPS 메시지 교환 과정을 도시한 순서도이다.
도 6은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템을 전체적으로 도시한 구성도이다.
도 7은 도 6의 네트워크 접속 제어 시스템에서의 인증 과정을 개략적으로 설명한 흐름도이다.
도 8은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템을 실제로 구현한 일 실시 형태에서, 스테이션이 NFT 인증후 와이파이에 접속하는 과정을 순차적으로 표시한 모식도이다.
도 9는 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 실행 화면을 예시적으로 도시한 것이다.
도 10은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, 스테이션(즉, 클라이언트)의 프로세스에 대한 알고리즘을 구현한 수도 코드이다.
도 11은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 Python 프로세스에 대한 알고리즘을 구현한 수도 코드이다.
도 12는 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 JS 프로세스에 대한 알고리즘을 구현한 수도 코드이다.
도 13은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 JS 모니터링 프로세스에 대한 알고리즘을 구현한 수도 코드이다.
도 14는 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, 블록체인 네트워크의 스마트 컨트랙트에 대한 알고리즘을 구현한 수도 코드이다.
본 발명은 NFT가 갖는 고유한 특성인 원본성, 소유권 및 신분증으로써의 역할을 인증 수단으로 이용한다. 특히, 본 발명은 NFT를 인증 수단으로 사용하기 위해 크게 2가지 개념을 사용하였다. 첫 번째로 Smart Contract에서 주로 사용하는 Solidity 언어에서 mapping 타입을 array로 선언하여 그것을 Whitelist 개념으로 사용한다. 이더리움에는 수많은 NFT가 있고 각각의 NFT는 Smart Contract이므로 Contract Address가 있다. 따라서, 사용자는 인증에 사용될 NFT Contract Address를 지정하기 위해선 Whitelist 형식으로 NFT Contract Address를 추가하거나 제거할 수 있게 된다. 두 번째로 사용한 개념은 Blockchain Event Monitoring이다. 이것은 모니터링 하려는 블록체인의 특정 블록으로부터 5~6개씩 최신 블록을 수신하여 그 안의 블록에서 해당 컨트랙트의 변화가 있으면 그 변화를 출력한다. 예를 들면, Whitelist에 등록된 NFT를 1개 가진 A가 인증을 한 후, B에게 NFT를 전송하여 NFT가 0개가 되었다면 A의 자격을 회수해야 한다. 이때 블록체인 이벤트 모니터링을 하고 있다면 A가 B에게 NFT를 전송한 것을 알 수 있고, 그러한 전송이 이루어져서 A의 NFT가 0개가 되었다는 이벤트가 확인되면 A의 권한을 회수한다.
도 6은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템을 전체적으로 도시한 구성도이다. 도 6을 참조하면, 본 발명에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템(1)은, 네트워크에 접속하고자 하는 스테이션(10), 액세스 포인트(Access Point;'AP'라 한다.)(20), 및 NFT 인증을 수행하는 블록체인 네트워크(30)를 구비한다.
도 7은 도 6의 네트워크 접속 제어 시스템에서의 인증 과정을 개략적으로 설명한 흐름도이다. 도 6과 도 7을 참조하여 개략적으로 설명하면, 네트워크에 접속하고자 하는 스테이션(10)은 AP(20)에게 NFT 인증을 요청하고, AP(20)는 스마트 컨트랙트를 이용하여 블록체인 네트워크(30)로 스테이션(10)에 대한 NFT 인증을 요청한다. 블록체인 네트워크의 스마트 컨트랙트를 통해 스테이션에 대한 NFT 인증이 수행되면, 스테이션은 키교환없이 AP에 접속할 수 있게 된다.
도 7에 있어서, 가운데 회색 선으로 반을 나눠서 위에 부분은 인증 Part이고 아래 부분은 기존 WPA2 Part이다. 즉, 본 발명에 따른 네트워크 접속 제어 방법은 기존 WPA2에 NFT 인증을 올린 형태로 구현될 수 있다. 앞서 설명한 바와 같이, 대부분의 WPA2 크랙은 올바르고 안전한 인증을 거치게 되면 많은 부분이 해결될 수 있다. 다만, WPA3에서 사용하는 장치간 동시인증(SAE) 같은 경우는 라우터 장비 자체가 그 기능을 지원해야 하므로 기존 라우터 장비에서 사용하기 어려운 경우가 많다. 따라서, 본 발명에 따른 네트워크 접속 제어 시스템 및 방법은 기존 라우터 장비와 WPA2는 그대로 사용하면서 인증 수단으로 NFT를 사용하며, Wi-Fi를 Hidden SSID로 설정하기 때문에 Wi-Fi 검색 창에서 뜨는 List에서 골라서 접속할 수 없으며, 별도의 실행 프로그램(exe)로 접속하는 것이므로 Wi-Fi Search List에 검색되지 않는다.
이하, 도 6의 네트워크 접속 제어 시스템의 각 구성의 구조 및 동작에 대하여 구체적으로 설명한다.
AP를 통해 네트워크에 접속하고자 하는 스테이션(10)은 AP(20)의 NFT 인증부(22)에 접속하여 스테이션의 지갑 주소를 제공하고 NFT 인증을 요청한다. 한편, 상기 스테이션(10)은 NFT 인증이 완료된 후, AP의 NFT 인증부로부터 AP 와이파이 프로파일 정보를 수신하면, AP 와이파이 프로파일 정보를 이용하여 AP의 라우터부(24)에 접속한다.
상기 액세스 포인트(20)는 스테이션에 대한 NFT 인증을 수행하는 NFT 인증부(22), 및 라우터의 기능을 제공하는 라우터부(24)를 구비한다. AP는 장비의 SSID를 비공개로 설정함으로써, 주변의 스테이션들에 의해 검색되지 않고, NFT 인증된 스테이션들만이 접속할 수 있도록 한다. 도 9는 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 실행 화면을 예시적으로 도시한 것이다.
상기 NFT 인증부(22)는 스테이션으로부터 NFT 인증을 요청받으면, 블록체인 네트워크로 스테이션의 NFT 인증을 요청한다. 또한, 스테이션의 NFT 인증이 완료되면, NFT 인증부(22)는 블록체인 네트워크로부터 암호화된 AP 와이파이 프로파일 정보를 수신하고, 수신된 암호화된 SSID와 패스워드 정보를 복호화시킨 후, 스테이션의 MAC 주소를 획득하여 등록하고, 상기 복호화된 AP SSID와 패스워드 정보를 토대로 하여 AP 와이파이 프로파일을 생성하여 스테이션으로 제공한다. 여기서, AP 와이파이 프로파일 정보는 AP의 SSID 및 패스워드를 포함한다.
상기 라우터부(24)는 AP 와이파이 프로파일 정보를 이용하여 접속한 스테이션에게 무선 네트워크에 접속되도록 한다.
상기 블록체인 네트워크(30)에는 스마트 컨트랙트가 배포되며, 배포된 스마트 컨트랙트 안에는 어레이 형태로 NFT 컨트랙트 화이트리스트가 포함된다. 상기 블록체인 네트워크는 상기 AP로부터 스테이션의 지갑 주소와 함께 NFT 인증이 요청되면, 인증에 사용할 NFT 컨트랙트 주소들이 등록된 NFT 컨트랙트 화이트리스트와 NFT 개수 확인 함수를 이용하여, 상기 스테이션에 대한 NFT 인증을 수행한다.
상기 블록체인 네트워크의 스마트 컨트랙트는 NFT 컨트랙트 화이트리스트, NFT 컨트랙트 화이트리스트 함수, NFT 발행 함수, NFT 추가/제거 함수, NFT 개수 확인 함수, SSID 수정 함수, 그리고 AP의 해시된 SSID 와 해시된 패스워드를 포함한다. 상기 스마트 컨트랙트 안에 있는 NFT 컨트랙트 화이트리스트는, 인증에 사용될 NFT 컨트랙트 주소들이 어레이 변수에 등록되어 관리된다. NFT 컨트랙트 화이트리스트 함수는, NFT 컨트랙트 주소가 입력되면 해당 NFT가 화이트리스트에 동록되어 있는지 탐색하고, 탐색 결과를 출력한다. 상기 NFT 개수 확인 함수는, NFT의 개수를 카운팅하여 출력한다. 상기 NFT 발행 함수는 NFT를 발행한다. 상기 NFT 추가/제거 함수는 인증에 사용할 NFT 컨트랙트 주소를 NFT 컨트랙트 화이트리스트에 추가하거나, NFT 컨트랙트 화이트리스트에 있는 NFT 컨트랙트를 제거한다. 상기 SSID 수정 함수는, AP의 SSID 및 패스워드를 변경하고, 변경된 SSID 및 패스워드를 해싱 알고리즘을 이용하여 해시하여 암호화시키고, 해싱된 SSID 및 해싱된 패스워드를 저장한다. 해싱된 SSID 및 해싱된 패스워드는 암호화된 AP 와이파이 프로파일 정보로서, 블록체인에 저장되고 관리된다.
전술한 바와 같은 함수들과 변수들을 포함하는 스마트 컨트랙트가 배포된 블록체인 네트워크는, AP로부터 스테이션의 NFT 인증이 요청되면, NFT 컨트랙트 화이트리스트로부터 스테이션의 지갑 주소에 있는 NFT의 개수를 확인하고, 화이트리스트에 1개 이상의 NFT가 있으면 NFT 인증을 수행하고, 스테이션에 대한 NFT 인증이 완료되면 AP의 해시된 SSID 와 해시된 패스워드를 AP에게 전송한다.
도 8은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템을 실제로 구현한 일 실시 형태에서, 스테이션이 NFT 인증후 와이파이에 접속하는 과정을 순차적으로 표시한 모식도이다. 본 발명의 구현은 Python과 JS의 동작이 편리한 Window 환경을 기반으로 하였다.
도 8을 참조하면, 먼저 (1) Wi-Fi에 접속하려는 STA 기기는 AP에 접속하기 위해 Wi-Fi Search List에서 SSID를 찾는 것이 아닌, 실행가능한파일(exe)을 실행한다. 프로그램의 전체적인 Frame을 만들기 위하여, Python의 모듈 중 Pywebview를 사용하였다. (2) 접속하는 AP에는 라즈베리파이 OpenWRT가 동작하고 있다. NFT 인증을 위해서는 블록체인과 통신해야 하는데 JS를 사용하는 것이 지원하는 API가 많기 때문에 가장 편리하다. JS에서 제공하는 DOM(Document Object Module)인 window 객체를 이용해서 사용하는 블록체인이 이더리움이라면 window.ethereum과 web3.eth 객체를 사용하고 클레이튼이라면 window.klayth과 caver 객체를 사용한다. 플랫폼마다 사용해야할 객체와 라이브러리는 다르며 해당 플랫폼의 개발자 Document 페이지에서 무엇이 사용되는지 알 수 있다. 본 발명의 구현예에서는 이더리움을 사용하였다.
먼저 이 시스템에 사용할 Smart Contract를 작성한다. 이 작성한 Smart Contract를 EtherScan 같은 웹페이지가 아닌 프로그램상에서 Code로써 호출하고 작동하려면 Smart Contract의 abi 값을 추출해서 JSON형태로 저장해 두어야 컨트랙트를 호출하기 편하다. 미래사회에는 누구나 1개 이상의 NFT를 가지고 있을 것을 전제로 본 발명을 구현하였지만, 이 시스템에 NFT 주소를 등록하기 싫은 경우, 혹은 NFT가 1개도 없는 경우를 생각해서 NFT 컨트랙트 발행 함수를 작성한다. 인증을 하기 위해 인증하려는 NFT가 NFT 컨트랙트 화이트리스트에 등록이 되었는지 확인하고 mapping array를 관리하는 NFT Contract Whitelist 함수, NFT 컨트랙트 화이트리스트에 등록과 해제를 하는 NFT Contract 추가/제거 함수, NFT의 개수를 세는 NFT Count Check 함수를 작성한다.
마지막으로 Wi-Fi의 정보인 SHA256과 salt로 해시화된 SSID와 PW의 정보를 담는 Private Variable(Solidity에서 Private Variable은 컨트랙트에서 허가된 Wallet만 호출할 수 있다)를 만들고 그것을 변경하는 SSID 변경 함수를 작성한다. 이렇게 작성된 Contract에서 JS쪽에서 불러오는 Contract는 2개이다. NFT 컨트랙트 화이트리스트 함수와 NFT Count Check함수들을 통해 화이트리스트에 등록된 NFT가 1개 이상인 것이 확인되면, Contract로부터 해시화된 SSID와 PW를 받아온다. 그 값들은 JS와 Python의 프로세스간 통신(IPC)를 통해 (3)JS에서 Python으로 전달된다. Python Code 측에서 해시화된 값들을 복호화하고 그것을 토대로 Wi-Fi Profile.XML파일을 생성한다. (4,5) XML 파일을 생성한 후에 접속 기기 STA의 MAC Address를 가져와서 OpenWRT의 무선 정보에 등록한다. (6)MAC Address까지 OpenWRT에 등록이 되었으면 생성한 XML파일을 Client에게 전달해주고 STA에도 적용한다. XML파일을 전달받은 STA은 그 Profile을 통해 Wi-Fi 접속을 할 수 있다. 마지막으로, Server Side에선 JS로 Blockchain Event Monitoring이 동작하고 있어야 한다. 모니터링 구현에서 가장 중요한 것은 eth.getBlockNumber()와 eth.Contract.getPastEvent() 함수이다. getBlockNumber로 현재시점의 최신 블록의 위치를 수신하고, 일정 시간 후에(본 발명에서는 5초) 다시 getBlockNumber를 하여 그 차이만큼의 블록들을 getPastEvent로 컨트랙트에서 발생한 이벤트들을 검사한다. 이때, 이벤트를 수신할 NFT가 Transfer함수의 event를 call할 수 있도록 처음부터 해당 NFT Smart Contract에 구현이 되어있어야 한다. 본 발명에서 사용되는 스마트 컨트랙트는 OpenZeppelin의 가이드라인을 준수하였고 컨트랙트 안의 각 함수별 Event를 Call할 수 있도록 구현되어 있다. 다시 정리하면, Server Side에는 Client(STA)와 통신하는 Python 코드, 블록체인으로부터 인증을 하고 Wi-Fi 관련 값을 받아오기 위한 JS코드, NFT의 움직임을 감지하기 위한 Blockchain Event Monitoring JS코드까지 총 3개가 작동해야 한다.
도 10은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, 스테이션(즉, 클라이언트)의 프로세스에 대한 알고리즘을 구현한 수도 코드이다. 도 11은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 Python 프로세스에 대한 알고리즘을 구현한 수도 코드이다. 도 12는 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 JS 프로세스에 대한 알고리즘을 구현한 수도 코드이다.
도 13은 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, AP의 NFT 인증부의 JS 모니터링 프로세스에 대한 알고리즘을 구현한 수도 코드이다.
도 14는 본 발명의 바람직한 실시예에 따른 NFT 인증을 이용한 네트워크 접속 제어 시스템에 있어서, 블록체인 네트워크의 스마트 컨트랙트에 대한 알고리즘을 구현한 수도 코드이다.
이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
1 : 무선 네트워크 접속 제어 시스템
10 : 스테이션
20 : 액세스 포인트
22 : 인증 요청부
24 : 라우터부
30 : 블록체인 네트워크
10 : 스테이션
20 : 액세스 포인트
22 : 인증 요청부
24 : 라우터부
30 : 블록체인 네트워크
Claims (11)
- 스테이션이 AP를 통해 네트워크에 접속하는 것을 제어하도록 구성된 무선 네트워크 접속 제어 시스템에 있어서,
스테이션에 대한 NFT 인증을 수행하는 NFT 인증부, 및 라우터의 기능을 제공하는 라우터부를 구비하며, SSID가 비공개로 설정된 액세스 포인트(AP)
전자 지갑 주소 정보를 상기 AP의 NFT 인증부로 제공하고 NFT 인증을 요청하는 스테이션;
인증에 사용할 NFT 컨트랙트 주소들을 어레이 변수에 등록한 NFT 컨트랙트 화이트리스트를 포함한 스마트 컨트랙트가 배포되며, 상기 AP로부터 스테이션의 지갑 주소와 함께 NFT 인증이 요청되면, 스마트 컨트랙트를 이용하여, 상기 스테이션에 대한 NFT 인증을 수행하는 블록체인 네트워크;
를 구비하고, 상기 AP는 블록체인 네트워크로부터 스테이션의 NFT 인증이 완료되면 스테이션이 AP의 라우터부에 접속하도록 허용하는 것을 특징으로 하는 NFT 인증을 이용한 네트워크 접속 제어 시스템. - 제1항에 있어서, 상기 블록체인 네트워크의 스마트 컨트랙트는,
인증에 사용할 NFT 컨트랙트 주소들을 어레이 변수에 등록한 NFT 컨트랙트 화이트리스트;
NFT 컨트랙트 주소가 입력되면 해당 NFT가 상기 NFT 컨트랙트 화이트리스트에 등록되어 있는지 탐색하고, 탐색 결과를 출력하는 NFT 컨트랙트 화이트리스트 함수;
입력된 스테이션의 지갑 주소에 있는 NFT의 개수를 카운팅하여 출력하는 NFT 개수 확인 함수; 및
AP에 대한 Hashed SSID와 Hashed Password;
를 구비하고, 상기 AP로부터 요청된 스테이션의 지갑이 NFT 컨트랙트 화이트리스트에 등록된 NFT를 1 개 이상 보유한 것이 확인되면, 스테이션에 대한 NFT 인증을 수행하고, 스테이션에 대한 NFT 인증이 완료되면 AP에 대한 Hashed SSID와 Hashed Password 정보들을 AP에게 전송하는 것을 특징으로 하는 NFT 인증을 이용한 네트워크 접속 제어 시스템. - 제1항에 있어서, 상기 블록체인 네트워크의 스마트 컨트랙트는,
NFT 컨트랙트를 발행하는 NFT 발행 함수;
NFT 컨트랙트 화이트리스트에 인증에 사용할 NFT 컨트랙트 주소를 추가하거나 NFT 컨트랙트 화이트리스트로부터 NFT 컨트랙트 주소를 제거하는 NFT 추가/제거 함수; 및
AP의 SSID 및 패스워드를 변경하고, 변경된 SSID 및 패스워드를 해싱 알고리즘을 이용하여 암호화시키고, 해싱된 SSID 및 해싱된 패스워드를 저장하는 SSID 변경 함수;
를 구비하는 것을 특징으로 하는 NFT 인증을 이용한 네트워크 접속 제어 시스템. - 제1항에 있어서, 상기 AP의 NFT 인증부는,
스테이션으로부터 지갑 주소 정보와 함께 NFT 인증을 요청받고,
스테이션으로부터의 NFT 인증 요청에 따라, 스테이션의 지갑 정보를 상기 블록체인 네트워크로 전송하고 해당 스테이션에 대한 NFT 인증을 요청하고,
스테이션에 대한 NFT 인증 요청에 따라, 블록체인 네트워크로부터 인증 완료 후 AP에 대한 Hashed SSID와 Hashed Password 정보들을 수신하여 복호화하고, 복호화된 SSID와 Password를 이용하여 AP 와이파이 프로파일을 생성하고,
스테이션의 MAC 주소를 획득하여 등록하고,
스테이션에게 AP 와이파이 프로파일 정보를 전송하는 것을 특징으로 하는 NFT 인증을 이용한 네트워크 접속 제어 시스템. - 제4항에 있어서, 상기 스테이션은 상기 AP로부터 수신된 AP 와이파이 프로파일 정보를 이용하여 AP의 라우터부에 접속하는 것을 특징으로 하는 NFT 인증을 이용한 네트워크 접속 제어 시스템.
- 블록체인 네트워크에 있어서, 스마트 컨트랙트는,
인증에 사용될 NFT 컨트랙트 주소들을 어레이 변수에 등록한 NFT 컨트랙트 화이트리스트;
NFT 컨트랙트 주소가 입력되면 해당 NFT가 NFT 컨트랙트 화이트리스트에 등록되어 있는지 탐색하고, 탐색 결과를 출력하는 NFT 컨트랙트 화이트리스트 함수; 및
스테이션의 지갑 주소에 있는 NFT의 개수를 카운팅하여 출력하는 NFT 개수 확인 함수;
를 구비하고, 스테이션의 지갑에 있는 NFT가 NFT 컨트랙트 화이트리스트에 등록되어 있고, 해당 NFT의 개수가 1 이상이면, 상기 스테이션에 대한 NFT 인증을 수행하는 것을 특징으로 하는 블록체인 네트워크. - 제6항에 있어서, 상기 스마트 컨트랙트는,
NFT 컨트랙트를 발행하는 NFT 발행 함수; 및
NFT 컨트랙트 화이트리스트에 인증에 사용할 NFT 컨트랙트 주소를 추가하거나 제거하는 NFT 추가/제거 함수;
를 더 구비하여, NFT 컨트랙트 화이트리스트를 관리하는 것을 특징으로 하는 블록체인 네트워크. - 블록체인 네트워크를 이용하여 스테이션이 AP를 통해 네트워크에 접속하는 것을 제어하도록 구성된 네트워크 접속 제어 방법에 있어서,
(a) 스테이션이 전자 지갑 주소 정보를 AP의 NFT 인증부로 제공하고 NFT 인증을 요청하는 단계;
(b) 스테이션으로부터의 NFT 인증 요청에 따라, AP가 전자 지갑 주소를 블록체인 네트워크로 전송하고 NFT 인증을 요청하는 단계;
(c) 상기 AP로부터 스테이션의 지갑 주소와 함께 NFT 인증이 요청되면, 블록체인 네트워크가 스마트 컨트랙트를 이용하여, 상기 스테이션에 대한 NFT 인증을 수행하는 단계;
를 구비하고, 상기 AP는 블록체인 네트워크로부터 스테이션의 NFT 인증이 완료되면 스테이션이 라우터부에 접속하도록 허용하는 것을 특징으로 하는 NFT 인증을 이용한 네트워크 접속 제어 방법. - 제8항에 있어서, 상기 블록체인 네트워크의 스마트 컨트랙트는,
인증에 사용될 NFT 컨트랙트 주소들을 어레이 변수에 등록한 NFT 컨트랙트 화이트리스트;
NFT 컨트랙트 주소가 입력되면 해당 NFT가 NFT 컨트랙트 화이트리스트에 등록되어 있는지 탐색하고, 탐색 결과를 출력하는 NFT 컨트랙트 화이트리스트 함수; 및
스테이션의 지갑 주소에 있는 NFT의 개수를 카운팅하여 출력하는 NFT 개수 확인 함수; 및
AP에 대한 Hashed SSID와 Hashed Password;
를 구비하고, 상기 AP로부터 요청된 스테이션의 지갑에 있는 NFT가 상기 NFT 컨트랙트 화이트리스트에 등록되어 있고 NFT의 개수가 1 이상이면, 스테이션에 대한 NFT 인증을 수행하고, 스테이션에 대한 NFT 인증이 완료되면 AP에 대한 Hashed SSID와 Hashed Password 정보들을 AP에게 전송하는 것을 특징으로 하는 NFT 인증을 이용한 네트워크 접속 제어 방법. - 제9항에 있어서, 상기 블록체인 네트워크의 스마트 컨트랙트는,
NFT 컨트랙트를 발행하는 NFT 발행 함수;
NFT 컨트랙트 화이트리스트에 NFT 컨트랙트 주소를 추가하거나 제거하는 NFT 추가/제거 함수; 및
AP의 SSID 및 패스워드를 변경하고, 변경된 SSID 및 패스워드를 해싱 알고리즘을 이용하여 암호화시키고, 해싱된 SSID 및 해싱된 패스워드를 저장하는 SSID 변경 함수;
를 더 구비하는 것을 특징으로 하는 NFT 인증을 이용한 네트워크 접속 제어 방법. - 제8항에 있어서, 상기 네트워크 접속 제어 방법은,
(d) 스테이션에 대한 NFT 인증 요청에 따라 블록체인 네트워크가 NFT 인증을 완료하면, 블록체인 네트워크는 AP에게 해당 AP에 대한 Hashed SSID와 Hashed Password 정보들을 전송하는 단계;
(e) 상기 AP는 AP에 대한 Hashed SSID와 Hashed Password 정보들을 수신하여 복호화하고, 복호화된 SSID와 Password를 토대로 하여 AP의 와이파이 프로파일을 생성하고, 스테이션의 MAC 주소를 등록하고, 스테이션에게 AP의 와이파이 프로파일 정보를 전송하는 단계; 및
(f) 상기 스테이션은 AP의 와이파이 프로파일 정보를 이용하여 AP의 라우터부에 접속하는 단계;
를 더 구비하는 것을 특징으로 하는 NFT 인증을 이용한 네트워크 접속 제어 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220162288A KR20240079414A (ko) | 2022-11-29 | 2022-11-29 | Nft 인증을 이용한 무선네트워크 접속 제어 시스템 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220162288A KR20240079414A (ko) | 2022-11-29 | 2022-11-29 | Nft 인증을 이용한 무선네트워크 접속 제어 시스템 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240079414A true KR20240079414A (ko) | 2024-06-05 |
Family
ID=91470783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220162288A KR20240079414A (ko) | 2022-11-29 | 2022-11-29 | Nft 인증을 이용한 무선네트워크 접속 제어 시스템 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240079414A (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060108291A (ko) | 2005-04-12 | 2006-10-17 | 삼성전자주식회사 | 네트워크 접속 제어 장치 및 방법 |
KR20160055176A (ko) | 2013-09-10 | 2016-05-17 | 퀄컴 인코포레이티드 | Psk 및 sae 보안 모드들에 대한 고속 초기 링크 설정 보안 최적화들을 위한 시스템들 및 방법들 |
KR101729661B1 (ko) | 2010-10-29 | 2017-04-24 | 에스케이텔레콤 주식회사 | 네트워크 접속 시스템 및 네트워크 접속 방법 |
KR102431145B1 (ko) | 2022-01-17 | 2022-08-10 | 주식회사 와이콘즈 | 듀얼 채널 기반의 nft를 이용한 객체의 인증 관리를 위한 서비스 제공 방법 및 장치 |
-
2022
- 2022-11-29 KR KR1020220162288A patent/KR20240079414A/ko unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060108291A (ko) | 2005-04-12 | 2006-10-17 | 삼성전자주식회사 | 네트워크 접속 제어 장치 및 방법 |
KR101729661B1 (ko) | 2010-10-29 | 2017-04-24 | 에스케이텔레콤 주식회사 | 네트워크 접속 시스템 및 네트워크 접속 방법 |
KR20160055176A (ko) | 2013-09-10 | 2016-05-17 | 퀄컴 인코포레이티드 | Psk 및 sae 보안 모드들에 대한 고속 초기 링크 설정 보안 최적화들을 위한 시스템들 및 방법들 |
KR102431145B1 (ko) | 2022-01-17 | 2022-08-10 | 주식회사 와이콘즈 | 듀얼 채널 기반의 nft를 이용한 객체의 인증 관리를 위한 서비스 제공 방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5981610B2 (ja) | 電子取引用のネットワーク認証方法 | |
KR101198120B1 (ko) | 홍채정보를 이용한 양방향 상호 인증 전자금융거래시스템과 이에 따른 운영방법 | |
KR100851976B1 (ko) | 신뢰할 수 있는 장치를 사용하여 개인정보를 전송하는 방법및 장치 | |
US8689290B2 (en) | System and method for securing a credential via user and server verification | |
CN107547494B (zh) | 用于安全在线认证的系统和方法 | |
US9117324B2 (en) | System and method for binding a smartcard and a smartcard reader | |
US9197420B2 (en) | Using information in a digital certificate to authenticate a network of a wireless access point | |
Mannan et al. | Leveraging personal devices for stronger password authentication from untrusted computers | |
US11245526B2 (en) | Full-duplex password-less authentication | |
JP2004508619A (ja) | トラステッド・デバイス | |
JP2017529729A (ja) | データ処理方法およびデータ処理装置 | |
US20220116385A1 (en) | Full-Duplex Password-less Authentication | |
JP2017175226A (ja) | 公開鍵証明書を発行するためのプログラム、方法およびシステム | |
BRPI0919158B1 (pt) | Dispositivo de autorização, aparelho para controle de operações de um servidor, servidor para realização de operações e sistema de comunicação de dados | |
JP6627043B2 (ja) | Ssl通信システム、クライアント、サーバ、ssl通信方法、コンピュータプログラム | |
CN104767740A (zh) | 用于来自用户平台的可信认证和接入的方法 | |
CN111464532A (zh) | 信息加密方法及系统 | |
Jang et al. | Biometric Enabled Portable Trusted Computing Platform | |
KR20090131114A (ko) | 온라인 상호 인증 방법 및 그 시스템 | |
JP5186648B2 (ja) | 安全なオンライン取引を容易にするシステム及び方法 | |
US11184339B2 (en) | Method and system for secure communication | |
KR20160063250A (ko) | 카드 디바이스를 사용한 네트워크 인증 방법 | |
KR102288445B1 (ko) | 단체용 인증모듈의 온보딩 방법, 장치 및 프로그램 | |
KR20240079414A (ko) | Nft 인증을 이용한 무선네트워크 접속 제어 시스템 및 그 방법 | |
Balisane et al. | Trusted execution environment-based authentication gauge (TEEBAG) |