지불수단으로서 암호화폐 문제 CredBlock

지불결제 보안 기술

지불 결제 관련 보안 기술을 오랫동안 개발해 왔다. 

간편 결제를 위한 간편인증을 위한 FIDO 기술을 개발해 보기도 했고 [관련기사]

삼성페이의 취약점을 공격 해 보기도 했다. [바로가기

공격한 후에는 방어도 해봤고 [관련 논문] 

암호화폐에서는 일단 안전한 지갑이 이슈가 되고 있다. 


암호화폐가 지갑 내에 저장되고 지갑 간에 이동된다는 착각부터 깨고 싶고

공인인증서의 부인방지 효과를 물고 늘어지게 만든 비밀키 안전성, 

바로 그 이슈인데 뭔가 다른 것처럼 포장하는 사람들도 아쉽기만 하다.



온라인 지불 수단으로서의 암호화폐 문제

많이 거론되는 latency 문제는 온라인 거래에서는 크게 문제가 되지 않는다.

물론, 오후 6시에 결제하면 오후 7시라도 배송해서 다음날 받아보기 원하는

우리나라 전자상거래 현장에서는 조금 이슈가 될 수 있긴 하지만.

결국은 도용과 사기거래, 그리고 차지백이슈이다. 

피싱이나 해킹을 통한 결제 수단의 도용 결제 = 이건 위에 말한 지갑 보안성 문제

차지백 이슈는 구매자가 물건을 받지 못했다고 하면 무조건 환불을 해주는 

미국같은 환경에서의 문제이다. 


결국 남는 건 scam 즉 거래 사기다. 

돈을 보냈는데 물건이 안온다. or 물건을 먼저 보냈는데 돈을 안보낸다. 

이게 문제다. 

송금 자체는 블록체인 내에서 일어나니까 아무 문제 없다.

그런데, 체인 밖에서 일어나는 물건 배송은 얼마든지 사기가 가능하다는게 문제다



블록체인의 신뢰문제


"블록체인은 신뢰의 네트웍이다"

이말을 누가 했는지 모르겠지만, 참 기가막힌다. 

블록체인이 안전하게 관리할 수 있는 정보는 

암호화폐의 소유와 이전에 관한 것 뿐이다. 

그건 암호화폐 자체가 체인 내에서 생성 (제네시스 코인) 되었기 때문에 가능한 것이다.

나는 채굴이란 말도 싫어하는데, 

제네시스 코인으로부터 파생된 수수료는 검증의 댓가이다. 

그러면 노드들이 검증할 수 있는 것은 무엇인가?

노드들이 검증하는 건 누가 코인 얼마를 쓸 자격이 있고 

그걸 2번 쓰지 않았다 (double spending) 것 뿐이다.

그 외에는 아무것도 검증하지 않는다. 

이전 블록의 해시가 올라가니까, 한번 올라간 정보의 위변조가 불가능한 것은

부수적인 효과이다. 

블록체인은 블록체인 바깥 세상의 내용을 검증하지도 않고 검증할 수도 없다.

위에 예로 든 물건 배송관련이 하나의 예이다.

블록체인이 신뢰의 네트워크라고 

거기에 소고기 이력도 올리고 중고차 이력도 올리고

그걸로 새로운 블록체인을 만들었다고 선전해 댄다.

한번 올라간 정보는 위변조는 안되긴 하지.



그렇지만 처음 부터 잘못된 정보를 올리면 어쩔 것인가?

주행거리 5만km 라고 올리면 

아 블록체인은 신뢰 네트워크니까 믿을 수 있구나하면 되는 건가

두번째 갱신된 정보는 또 어떻게 믿을 것인가?

최소한 두번째 주행거리는 첫번째 보다 커야 할 텐데

그것을 확인하는 것 조차 블록체인의 영역이 아니다. 


블록체인의 신뢰문제 해결 방향

신뢰를 해결하는 방법은

딱 두가지이다. 

1. 정보를 올린 사람의 신용도

정보을 올린 사람이 신뢰할 만한 사람이면 믿는 거다

2. 검증

누군가 검증을 통해 이 정보가 믿을만 하다고 확인해 주는 것이다

그러면 그 검증해주는 사람을 또 믿을 수 있어야 하는데 

그건 1번 문제로 돌아간다. 

사실 블록체인에서 하는 검증은 암호화폐 송금 자격 만 이긴 하지만

여기서는 이래저래 꼬아 놓아도 결국 51% 룰이다. 

문제는 지금의 블록체인은 체인 밖에서 일어나는 일을 검증안하고 있다는 점이다.

이 점에 착안해서 크레더블록은 신뢰할 수 있는 블록체인을 만들어 보려한다. 


지불 결제에서의 신뢰문제 해결 방향

이건 전통적인 안전거래 (escrow) 와 다른

스마트컨트랙 기반의 안전거래로 해결할 수 있다. 

분쟁이 없으면 (판매자 구매자가 동의하면 그냥 넘어가고)

분쟁이 있으면 제3자인 arbitrator가 개입하는 방식이다. 


이 제3자를 어떻게 믿느냐?

혹은 탈중앙화된 블록체인 구조에 중앙집중적 서비스가 왠말이냐?

여기서는 arbitrator 도 분산 시킨다. 

위에서 말한 51% 가 중재자가 되어 

시시비비를 가려주는 구조다. 

헌데 이것은 기존의 블록체인 합의 구조에서는 

전혀 고려되어 있지 않은 문제고

Arbitrator를 위한 생태계를 별도로 구성할 것이다. 



CredPay

탈중앙화된 arbitrator 모델을 지향점으로

우선 현존 암호화폐를 간편하고 안전거래할 수있는 

Multi-signature 기반의 안전거래 서비스를 만들었다.

Bitcoin이나 Ethereum을 수용하는 웹웰렛도 포함된다. 

시범서비스로 Bitcoin 기술을 적용한

Vita Coin을 만들었고 이 Vita Coin으로 

안전하고 편리하게 구매해 볼 수 있는 체험 서비스를 제공한다.

체험서비스에 가입하면 1 VTC를 제공하고

이걸로 비타500 기프트콘 구매 사이트에서

구매를 해볼 수 있다. 

구매사이트에서 버튼만 누르면 된다. 





































 








암호화폐 고속 안전 결제 - CredPay CredBlock


암호화폐 지불결제


암호화폐로 지불 결제하려는 사람은 많습니다. 

P2P 코인 거래에서는 암호화폐로 지불하고 현금(fiat)을 사는 거죠

그 외에도 주변에 암호화폐를 가진 사람들이 점점 늘어나고 있습니다.


 



문제점


그런데 잘 알려진 문제들이 있지요

결제확인까지 오래걸려서 커피한잔사는데 1시간 기다려야 한다는 것 (Latency) 부터

수수료가 배보다 배꼽이 크다.

중요한 것은 거래사기 (Scam) 입니다. 

코인자체는 안전하게 전달이 됩니다. 

그런데 반대 급부로 제공될 물건이나 대금은 그렇지가 않죠

먹튀를 어떻게 방지할 것인가?







Multi-signature Escrow


이런 고민에 대한 크레더블록의 답은

Multi-signature Escrow 입니다. 





구매 대금을 열쇠 2개가 있으면 열리는 안전한 봉투에 담아서 보냅니다. 

구매대금을 보냈다는 사실만으로 결제 승인을 즉시 해줄 수 있습니다 .

구매자가 대금을 받으면 그때 열쇠로 봉투를 열어 해줍니다 

판매자야 자기가 돈 받는 거니까 당연히 자기 열쇠를 사용하겠죠

문제가 발생하면 (구매자가 물건을 못받았다든지, 판매자는 물건을 배송했는데 

구매자가 지급을 거부하면) 중재자가 나섭니다. 

중재자는 상황을 검토 후 판매자나 구매자 중 한쪽의 손을 들어주고

봉투에 담긴 돈이 그쪽으로 지급되도록 합니다. 



CredPay



이 기술을 서비스로 구성한 것이

크레더블록의 첫번째 서비스인 CredPay 입니다. 




복잡하다고요? 

그럼 아래 동영상을 보시죠



구매하기 






더 쉬울 수가 있을까요?



판매하기 


이걸 하기 위해 복잡하게 쇼핑몰에 api 구축 작업을 할 필요가 없습니다. 







CredPay에 와서 링크를 만들고 

그 버튼을 판매 페이지에 삽입하세요

바로 암호화폐 결제가 가능합니다. 


체험서비스


지금 저희가 초청장을 보내드린 소수의 분들에 대해 

체험 서비스를 하고 있어요

CredPay 사이트에 가입하시면 

1 VTC (비타 500 1병 가격 코인) 를 제공해 드리는데


이걸로 비타500 한병을 직접 사드실 수 있고, 

사드신 이후엔 1번의 판매기회를 드립니다. 

지인에게 링크를 보내시고 가입하도록 하시면

저희가 비타500을 쏴드립니다. 

그럼 님은 판매자로서 1 VTC를 버실 수 있는 거에요.. 

물건은 저희가 쏘고, 돈은 체험자가 벌고..

위 체험 서비스 참여를 원하시면


체험 서비스 초대링크를 보내드립니다. 

(선착순 100명)



크레더블록


크레더블록은 크레더블 블록을 만들기 위한 회사입니다. 

알려진 것과 달리 블록체인은 믿을 수 없어요

위의 거래 사기도 그 예인데.. 

그래서 믿을 수 있는 블록체인을 만들려는 것이

크레더블록의 비전입니다. 

자세한 이야기는 To be continued





AI 보안이슈



http://www.slideshare.net/ssusera9defb/securityissues-of-ai

- AI Safety 
- Adeversarial AI 
- Related Security Technologies 

삼성페이 보안이슈 2 - Samsung Pay security problem 핀테크

이전 포스트(바로가기) 에서 삼성페이 공격 시나리오 2가지를 제시했다.
In previous post, I provided two Samsung Pay attack scenario using sniffed MST token.

Scenario 1)






Scenario 2




삼성페이 보안 - 다른 연구 Samsung Pay Security - other research 핀테크

삼성페이 보안 이슈를 다룬 논문이 미국 텍사스에서 열린 USENIX WOOT 컨퍼런스에서 발표되었다.
A research paper related to Samsung Pay security issues was published in the USENIX WOOT'16 that was held in Texas, USA.
https://www.usenix.org/conference/woot16/workshop-program/presentation/choi

삼성페이는 2미터 거리에서 도청이 가능하다
A Samsung Pay token can be eavesdropped in two meters away.

아래같은 간단한 도구면 된다.
It just needs a simple set of devices below.

다음 처럼 쉽게 위장할 수도 있다.
And they can be easily disguised.

아래 동영상은 1.8 미터에서 도청하는 영상, 원타임 토큰(카드번호)가 잡히는게 보인다.
Below video shows an one time token ( credit card number ) is being eavesdropped by the above set of devices that is 1.8m away from the original Samsung device. We can check the eavesdropped one-time token.



도청한 토큰은 2가지 방식으로 악용될 수 있다.
The snipped token can be exploited in 2 ways.

1. 다른 곳에서 결제 한다.  The attacker pays with the sniffed token in other places.

아래 그림처럼 다른 곳에서 토큰을 사용한다. 인터넷을 통하므로 멀리 다른 나라로 보낼 수도 있다.
Below picture shows this attack. The sniffed token can be transferred to another country via the Internet.


다음은 그런 형태의 공격 시나리오 비디오이다.
Below video shows an example of executing such a type of the attack.

토큰은 1회용이므로, 원래 사용자가 토큰을 사용해 결제한 후에는 공격자가 훔친 토큰을 써서 결제를 할 수 없다.
As the token is one time, the attacker's payment with the sniffed token will not succeed if the victim makes a payment with the token earlier than the attacker does.

따라서 공격자는 a)원 사용자가 결제하지 못하게 막거나, b)원 사용자 보다 먼저 결제해야 한다.
Therefore, the attacker should  a) block the victim's payment or b) make a payment before the victim does.

위 동영상은 원 사용자 보다 먼저 결제하는 흐름이다. (b)
In the above video, the attacker completes a payment before the victim.  (b)

원사용자의 결제를 하려면, 서명을 하고 계산원이 pos에서 엔터를 눌러야 한다.
https://brunch.co.kr/@thebetterday/389 에 따르면 계산원의 숙련도에 따라  이 시간이 10초까지 걸릴 수 있다고 한다.
공격자 쪽의 계산원이 더 빨리 계산하면, 공격이 성공한다. 

To make a payment, the original payer should sign on the sign pad and the cashier should press enter button in POS.
https://brunch.co.kr/@thebetterday/389 says that it takes about 10 seconds. This time is variable depending on the cashier.
If the attacker's cashier is faster than victim's cashier, the attack will succeed.

원결제자의 결제를 막는 방법(a)은 여러가지가 있지만 MST jamming이 그 중 하나의 방법이 될 수 있다.
There are many ways to block victim's payment (a). MST jamming is one of them.

공격자가 결제할 때 삼성페이 폰 처럼 보이는 것이 어렵다는 지적이 있다. 
There was a concern that the attacker's device can be easily caught because it does not look like the original Samsung Pay device.  
다음 도구를 사용해서 여러번 실험을 했지만 의심받은 적은 없었다. 
We have performed field experiments many times. However, nobody made a suspicion on our attack device, shown below:



2. 공격자의 pos에서 결제하는 방법 Making a payment using attacker's POS


공격자가 pos를 갖고 있다면 도청을 하자마자 자신의 pos에서 바로 결제할 수 있다.
The attacker makes a payment on his own pos immediately after he sniffed the token.

이 방법은 원사용자의 결제보다 거의 언제나 더 빠르게 결제를 할 수 있다.
With his own pos, the attacker can make the payment almost always earlier than victim.

아래 비디오는 이러한 공격 흐름을 보여준다.
This video shows such an attack.




공격자가 자신의 pos에서 결제 하면 쉽게 체포할 수 있다고 ?
Can police easily arrest such an attacker? 

다음 그림은 러시아의 소매치기다. 그는 자신의 모바일 pos를 이용해 nfc 카드를 도용한다.
Let's look the below picture, a Russian pocket picker holds his own mobile pos to theft victim's nfc card.


1 2 3 4 5 6 7 8 9 10 다음