7cf3c028e2f206a26d81f6ec428475644c1a

7ff3c028e2f206a26d81f6e74e8172640aab

79f3c028e2f206a26d81f6e24585726a4d47

78f3c028e2f206a26d81f6e44681756e054f1b

7bf3c028e2f206a26d81f6e44685706dbf0c1a

7af3c028e2f206a26d81f6e242867369f865


오해의 소지가 충분히 있어서 개념증명(실험) 파트를 좀 줄였음




위와 같은 사건을 일으키기 위해선 중간자어택 + 3단계의 보안정책 무력화가 필요함(위 이미지는 그 중 애플페이와 삼성페이만의 차이점인 2단계만 설명함)


중간자어택이야 그냥 NFC 리더기만 대충 훑고다니면 되니까 너무 쉽고




1단계는 대중교통단말기와 일반단말기의 차이점(대중교통단말기는 속도 문제로 지문/얼굴 인식할 이유가 없으니 바로 패스되기 때문임)이 비트 1개로 결정되는데 이건 속도문제로 인해 페이시스템 전반적으로 암호화 할 수 없고 해결도 불가능한 문제라 삼성페이와 애플페이 모두 가지고 있는 문제임


3단계는 비자가 결제할때 암호하키 서명 대충 확인하는 이슈(비자가 대중교통단말기와 거래할때 신뢰할만한 거래인지 서명을 확인 안하고 결제함;;)인데 이건 관련없으니 패스 보고싶다면 아래 영상 보거나 유튭에서 How Secure Is Tap To Pay? 검색하면 원리를 충분히 설명하니 보셈




그리고 2단계에서 삼성페이가 아니라 애플페이를 쓴 MKBHD가 해킹당한 이유가 생기게 되는데


원래부터 대중교통 단말기에서 결제할 금액을 보내주고 그와 함께 이 결제금액이 비싼건지 싼건지 비트 1개로 정해둠(이는 전세계마다 대중교통비가 다르니까 속도측면에서 세팅해둔거 같음)




여기에서 결제금액 자체를 정하는 비트, 그리고 결제금액이 싼건지 비싼건지 정하는 비트가 있는데 여기서 문제되는건 후자의 비트임 (전자는 수정할게 기니까 어렵거든)


후자의 비트는 단순히 단 1개의 비트가 0과 1로써 비싼지 싼지 결정이 되는데




애플페이는 후자의 1개 비트가 위조되어서 앞에서 보내온 결제금액과 다르더라도 곧이곧대로 믿음


그에비해 삼성페이는 앞에서 보내온 결제금액만을 확인하고 뒤에 싼지 비싼지 알려주는 비트는 씹어버림


사실 위 이미지에서 보다싶이 삼성페이는 결제를 0원처리하고 0원처리한 횟수를 센 뒤에 후불로 결제하는 방식이라서 0원을 넘어서 보낼 이유가 없으니까 씹는거긴함.


암튼 덕분에 속도측면에서 손해가 거의 없음






따라서 애플페이를 마침 이용하던(아마 MKBHD 정도면 삼성페이와 구글페이도 다 쓰겠지만 암튼) MKBHD 는 비자사 문제 + 애플페이 허점으로 인해 1만달러를 빼앗겼음


하지만 삼성페이(그리고 구글페이까지도)를 이용한다면 비자카드사가 허점을 가지고 있고 단말기와의 거래가 속도때문에 보안을 개나줘버렸더라도


삼성페이 자체의 대중교통 이용에 대한 결제시스템에 대한 안정적인 시스템(0원 넘는 거래가 불가능) 그리고 위조되기 쉬운 비싸거나 싸다는 비트를 전혀 고려하지 않는 보안성으로


NFC 리더기 근처에서도 해킹 당하지 않고 안전하게 지갑을 지킬 수 있음





혹여나 갤럭시를 서브폰으로, 아이폰을 메인폰으로 사용하는 갤붕이가 있다면 벌벌 안 떨어도 되는게


(속도는 느려지겠지만)익스프레스 모드를 끄거나 비자카드 외에 마스터카드등 다른 해외결제가능/국내전용카드를 사용하면 허점이 해결되어서 위와 같은 문제를 해결 할 수 있음


물론 갤럭시가 메인폰이라 삼페 쓰는 오너는 만질게 없으니 삼성페이를 대중교통으로 쓸 때 이런 원리가 있구나 하고 가면 됨





더 자세하게 알고 싶으면 아래 영상이 원 영상이니 참고 https://www.youtube.com/watch?v=PPJ6NJkmDAo