본문 바로가기

Papers/Security

논문 리뷰) (Mobisys 2022) Detecting Counterfeit Liquid Food Products in a Sealed Bottle Using a Smartphone Camera (1)

저번 학기 세미나에서 발표했었던 논문. Mobisys 2022년에 나온 논문이고 실생활과 관련된 논문으로 best-poster도 같이 받은 연구다.

Introduction

우리가 평소에 소비하는 술, 꿀, 기름 등 액체로 된 상품들 중 비싼 고급 상품들이 있다. 이러한 고급 상품에 값싼 액체를 섞어서 파는 경우가 있다고 한다. 나아가 단순히 값싼 액체를 섞는 것이 아니라 유독성 물질을 섞는 경우에는 소비자의 삶과 직결된 문제가 된다. 요컨데 결국 physical world에서의 attack이 가능하다는 것.

 

이 논문에서는 그러한 액체류들을 counterfeit liquid food product라고 이야기 하는데, 이러한 상품들은 보통 밀봉된 병 (sealed bottle)에 들어있기 때문에 해당 성분을 분석하기 위해 병을 까는 것은 제품을 구매하기 전에는 어려우며 설령 제품을 개봉해서 분석하기 위한 장비들이 매우 비싸고, 일반적인 소비자가 daily life에서 활용하기 사실상 불가능한 것이 현실이다. 이러한 counterfeit liquid들을 스마트폰 카메라로 detect 해내겠다는 것이 이 논문의 골자이다.

 

아래는 연구와 관련된 뉴스 영상이다.

https://www.youtube.com/watch?v=OA_uB3PtJ1o 

Main Idea

해당 논문에서는 기본적으로 스마트폰 카메라를 사용하니 눈으로 확인할 수 있는 액체의 고유한 성질을 활용해야 하겠다. 액체는 고유한 점도와 밀도, 그리고 표면장력을 가진다. 이러한 고유한 성질, 특성은 액체에서 발생하는 bubble의 크기, 비율, 그리고 속도에 영향을 준다. 만약 값싼 액체를 섞는 경우 이러한 특성들이 달라지게 되어 bubble의 크기, 비율, 속도가 변화하게 되고 이를 적절히 추출만 할 수 있다면 해당 제품이 couterfeit인지 아닌지 확인할 수 있을 것 같다는 것이 해당 논문의 핵심 아이디어다.

 

Challenges and Contributions

말은 쉽지만 해당 시스템을 구성하기 위해서 몇가지 challenge를 해결해야 한다. 기본적으로 스마트폰 카메라를 사용하기 때문에 카메라와 병의 각도, 거리 등에 영향을 크게 받는다. 그리고 액체에서 발생하는 bubble을 detect하고 해당 bubble의 특성을 분석하기 위해 fine-grained segmentation 결과가 필요하며 동시에 이를 기반으로 tracking 또한 해주어야 하는데 bubble이 하나만 생기리란 법은 없고 이러한 bubble이 겹치거나 중간에 사라지거나 하는 그런 문제들 또한 마주한다. 그리고 애초에 bubble의 특징을 통해 제품의 authenticity를 알아낸다는 것부터가 쉬운 일은 아니다.

 

위에서 언급한 문제들을 해결하며 크게 다음과 같은 contribution을 가진다. 

1) counterfeit liquid food를 개봉하지 않으며 시중의 smartphone camera를 통해 판별하는 시스템을 제시한다.

2) 스마트폰 카메라를 통해 제품에서 발생하는 bubble의 특징을 잘 추출해냈다는 것.

3) 다양한 변인에 대해서 comprehensive evaluation을 통해 시스템을 검증하고 real-world setting에서 좋은 성능을 보였다는 것.

 

 

Considerations and Assumptions in System Design

해당 논문에서 시스템을 구성함에 있어 고려한 부분 3가지와 가지고 가는 가정 3가지가 있다.

 

Considerations

1) 성능 (Accuracy): 정확하게 가짜와 진짜 제품을 구분할 수 있어야 함

2) 사용성 (Usability): 병을 따지 않고 가짜와 진짜 제품을 구분할 수 있어야 함

3) 배포성 (Deployability): 시중에 있는 스마트폰과 액체 식품 상품들에 대해서 동작해야 함

 

Assumption

1) 공격자는 꽤나 많은 비율을 값싼 대체품(cheap alternatives)으로 대체한다. -> 공격자의 의도를 생각하면 위스키에 소주 한 방울 넣는건 의미가 없다. 적어도 2~30%는 소주로 바꿔버려야 돈이 남는다. 엄청 트집 잡을만한 가정은 아니다.

 

2) 진짜 제품과 대체품은 그들의 특성에 의해 분류할 수 있다. -> 여기서 말하는 특성은 앞서말한 bubble에 영향을 주는 성분들로 위스키와 소주의 특성 정도로 구분이 된다는 의미인듯. 사실 이 가정이 조금 큰 가정이긴 하지만, 저자들이 보여주는 실험에서 대부분의 대체품과 진짜 제품의 특성은 구분된다. 이 시스템을 뚫으려면 진짜 제품과 액체로서의 특성은 거의 똑같지만 값은 싼 다른 액체를 찾아야 봐야 한다. 

 

3) 액체가 담긴 병은 반투명 혹은 완전 투명한 재질이어서 bubble을 눈으로 관찰할 수 있다. -> 투명한 병들에 대해서만 동작함. 와인 같이 검은 병에 담긴 액체에는 동작하지 않는 시스템. 하지만 투명한 병에 담긴 액체 제품도 충분히 많고 뭐 이런 novel한 시스템을 제시한다는 것에 점수를 많이 쳐주니까 이정도는 리뷰어들도 그러려니 하고 넘어갈 것 같다

 

Physics Model of Rising Air Bubbles

저자들은 기본적인 air bubble (이하 기포)의 특성을 물리적으로 modeling한다. 사용되는 물리 공식은 Strokes' Law와 Young-Laplace Law 두 가지이다. Strokes' Law는 액체속 기포의 종단속도를 액체의 밀도와 점도를 통해 설명하는 공식이다. 이 공식의 경우 기포가 완전히 spherical bubble인 경우를 가정한다.  수식은 다음과 같다.

해당 수식을 잘 생각해보면 중력가속도 g와 액체의 밀도와 점도는 동일한 제품의 진품가품 여부를 알기위해 고정되어 있어야 하는 성질이고, 공기의 밀도도 그냥 알려져 있는 값이니 모두 constant다. 기포의 크기 R와 종단속도 V는 관찰해야하는 값이다. 다시 말하면 속도와 크기 두 가지만 제대로 측정하면 점도와 밀도에 대한 정보를 어느정도 알 수 있다는 것!

 

다음은 Young-Laplace Law인데 기포의 액체 사이의 압력 차이를 기포의 크기와 표면장력을 기반으로 표현하는 공식이다. 이 공식 또한 기포가 완전히 spherical bubble인 경우를 가정한다.  결국 동일하게 압력의 차이는 constant로 박고 갈 수 있을테니 기포의 반지름만 잘 측정해내면 표면장력에 대한 정보를 얻을 수 있다. 

 

아래의 영상은 본인이 직접 집에 굴러다니던 위스키 한 병을 논문에서 이야기하는 것과 똑같이 뒤집어 보며 촬영한 영상이다.

앞서 두 공식은 기포가 완벽한 구체를 가진다고 가정했지만, 실제로는 그렇지 않으며 속도가 꽤나 빨라 쉽게 detect하기도 어려워 보인다. 따라서 필연적으로 오차가 발생하게 되고 충분히 큰 challenge이기도 하다... 이제 이런 문제를 어떻게 해결했는지 천천히 알아보자.

 

Utilizing Smartphone Camera

제안하는 시스템에서는 기본적으로 최신 스마트폰에 탑재된 초고속카메라를 (120~240FPS 정도) 사용한다. 이렇게 초고속 카메라를 사용하게 되면 빠르게 올라가는 기포를 어느정도 detect하는데 도움이 될 수 있다. 그런데 앞서 이야기 했듯 카메라를 사용하여 카메라와 병의 위치와 각도 거리 등이 실제 기포의 크기와 속도를 측정하는데 연관되며 빛이 병과 액체를 통과하며 왜곡되는 문제도 있어서 카메라에 찍힌 값이 실제와 동일하다는 보장이 없다.

 

Feasibility Study

그럼 이게 가능은 한 시스템인가? 그 가능성을 확인하기 위해서 저자들은 feasibility study를 하나 한다. 고급 올리브 오일이랑 값싼 기름이랑 비율을 달리하며 액체에 tube와 syringe를 꽂아 거품을 인위적으로 생성하여 반지름, 비율, 종단 속도를 측정했는데, 진품과 가품들 사이에 유의미한 차이가 보인다. (물론 radius 결과에서 Fake1 sample에 대해 noise가 많이 끼여있긴 하지만 그래도 충분히 구분 가능해 보인다. + 아마 syringe를 밀어 넣는걸 사람이 손으로 직접 했다면 충분히 크기는 달라졌을 수 있을 것 같다...)

 

Scenario

이제 해당 scheme이 feasible하다는 것을 보았으니 실제 시스템이 어떻게 쓰일지 저자들은 시나리오를 소개한다.

액체로 된 식품을 사러가서 슬로우모션 카메라를 키고 액체를 뒤집는다. 그럼 해당 영상이 cloud로 올라가서 진품의 성질과 해당 제품의 성질을 비교하여 진품인지 가품인지 분류해주는 것! 꽤나 심플하고 실제로 있다면 써볼만한 시스템이긴 하다. 해당 시스템 이름은 LiquidHash로 보안 관련 주제에서 나오는 그 Hash를 가져다 사용한 것 같다.

 

본격적인 시스템 설명과 각 module들에 대한 설명과 evaluation은 다음 글에서 다루겠다!