ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [IPFS] 분산 탈중앙 시스템에 Access control을 제공하는 Macaroons
    IPFS 2023. 5. 19. 13:34
    728x90
    반응형

    이번에는 Macaroons이라는 용어에 대한 설명을 조금 리뷰하려한다.

    나도 전문가는 아니지만 IPFS에 macaroons라는 쿠키가 들어가서 현재 Storj라는 블록체인이 만들어지게 되었다.

    Macaroons에 관한 설명은 

    https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41892.pdf 

    다음의 논문에서 더욱 자세히 알려주고있다.

     

    그리고 조금 쉽게 찾아보려면

    https://www.storj.io/blog/secure-access-control-in-the-decentralized-cloud

     

    Secure access control in the decentralized cloud

     

    www.storj.io

    여기 한 번 보는것도 추천한다.

     

    macaroons는 기본적으로 secure access control을 위해 사용되어지는데

    그 이유를 살펴보면 분산 파일 시스템의 경우 누구든지 파일을 업로드와 다운로드를 할 수 있다.

    이런 경우라면 누군가 phishing attack을 이용하여 문제를 많이 야기할 수 있다.

    IPFS는 다른 파일시스템과 다르게 public과 private환경으로 나뉠 수 있지만 이 또한 공격의 대상이 될 수 있기에

    access control이 필요하다.

     

    이 때, Macaroons이 등장하게 되었고

    구성은 다음과 같이 사용된다.

    일단 Macaroons는 bearer token을 기반으로 만들어졌는데 무기명 토큰으로 설명의 이해를 돕자면 우리가 인터넷을 이용할 때 사용되는 쿠키들이 그와 같다고 생각하면된다.

    그런 bearer token에 header, caveat, tail이 들어간다고 생각하면된다.

    header는 unique id로 논문에서는 random nonce라고 한다.

     

    그리고 가장 핵심은 caveat인데 caveat의 사전적 의미는 제약, 제한 등이 있다.

    이 caveat은 when, where, what, who 등 다양하게 사용할 수 있다.

    그리고 signature는 HMAC으로 진행되며 다음의 예제에서 같이 알아보겠다.

    다음의 예시를 보면 알기쉬운데

    처음에 random nonce(unique id)를 HMAC한다. initial key에 대한 발급은 제대로 명시되어있지않아 어떠한 로그인 방식으로 제공하거나 다른 방식이 있는듯하다.

     

    그렇게 HMAC을 통해 90..fc의 값이 나오게되었고 이를 이용하여 다음부터의 caveat의 key로 사용하게된다.

    첫번째 caveat은 chunk의 범위이고 두번째 caveat은 operation을 read로 해라 등으로 진행하고

    key는 이전에 HMAC으로 나오게된 hash value가 key로 사용된다.

     

    그리고 사용자는 해당 HMAC을 초기의 키로 HMAC을 진행하면서 무결성을 증명해간다.

    위의 예시로 보면 만약 누군가가 operation을 write로 했다면? 무결성이 없어지는 것이다.

     

    이러한 Macaroons는 ip부터 사용자는 누구로 할 지, 시간은 언제까지 유효한지 등 다양하게 설정할 수 있어 무척 좋다.

     

    그리고 또 하나의 강점은 제 3자에게 위임도 가능하다는 것이다.

    이 그림을 보면 AS라는 사람에게 위임을 진행한다.

    위임을 진행하면서 새로운 caveat을 추가할 수 있는데 이 때, FS와 AS는 Ka라는 키를 안전하게 주고받은 상태이다.

    그리고 각 caveat들이 있기 때문에 제3자에게 받은 Macaroons의 무결성을 증명하기위해 사용자는 AS의 caveat과 FS의 caveat을 다 증명해야한다.

     

    이렇게 제3자에게 권한을 위임하고 사용자의 접근을 제어할 수 있는 Macaroons는 현재 분산 시스템에서 꽤나 좋은 도구로 사용되는듯하다.

     

    참고로 Macaroons이 왜 Macaroons이냐면 (MAC)aroons라고 한다. HMAC을 계속 사용하기 때문에~~

     

    현재 내가 진행하는 연구도 access control을 IPFS에 얹어보는 실험을 진행하고있는데

    이는 추후 논문이 나오게되거나 정리가 잘된다면 꼭 리뷰를 진행해보겠다.

    (꽤나 걸릴듯..!)

     

    여기까지 macaroons의 대한 간단한 설명 끝

    728x90
    반응형

    'IPFS' 카테고리의 다른 글

    [IPFS] Peer selection을 하는 방법  (0) 2023.05.04
    [IPFS] 노드간의 연결 문제(NAT Problem)  (0) 2023.02.28
    [IPFS] IPFS  (0) 2023.02.02
Designed by Tistory.