inblog logo
|
Uni
    JSON

    CIA 보안 3요소, 비잔틴 장군 문제(Byzantine Generals Problem)

    CIA 보안,Byzantine Generals Problem
    홍윤's avatar
    홍윤
    Sep 19, 2024
    CIA 보안 3요소, 비잔틴 장군 문제(Byzantine Generals Problem)
    Contents
    1. 대칭키를 사용하는 노드들 간의 키 교환, 비잔틴 장군 문제(Byzantine Generals Problem)2. 비잔틴 장군 문제(Byzantine Generals Problem)
     

    1. 대칭키를 사용하는 노드들 간의 키 교환, 비잔틴 장군 문제(Byzantine Generals Problem)

    💡
    notion image

    이미지 분석 및 설명:

    1. A, B, C 노드: A, B, C는 각각 통신을 시도하는 주체입니다. 이들은 서로 메시지를 주고받기 위해 공유된 대칭키를 사용합니다. 예를 들어, A는 B에게 데이터를 보내고 있으며, B는 다시 C에게 데이터를 전달하고 있는 것 같습니다.
    1. 대칭키 E(P): 이미지 왼쪽에 "대칭키 E(P)"라고 적혀 있는데, 이는 각 노드가 대칭키를 사용하여 데이터를 암호화하는 것을 의미합니다. 대칭키는 송신자와 수신자 모두가 동일한 키로 데이터를 암호화하고 복호화할 수 있게 해줍니다. 예를 들어:
        • A가 대칭키 E를 사용해 "1234"라는 데이터를 암호화합니다.
        • B는 A로부터 받은 암호화된 데이터를 다시 복호화할 때, 동일한 대칭키 E를 사용합니다.
    1. 1234와 5678: 이 숫자들은 키 교환이나 암호화된 데이터를 나타내는 것처럼 보입니다. 예를 들어:
        • A가 1234라는 데이터를 대칭키 E를 사용해 암호화하여 B에게 전송합니다. 이때, 암호화된 메시지가 QWER로 나타나 있을 수 있습니다.
        • B는 A로부터 받은 데이터를 다시 E라는 동일한 대칭키로 복호화하여 원래 데이터를 얻습니다. 그 후, B는 5678이라는 데이터를 C에게 전송하는데, 이 과정에서도 동일한 대칭키를 사용해 데이터를 암호화합니다.
    1. QWER: 이는 암호화된 데이터를 표현하는 텍스트일 수 있습니다. 즉, A가 B에게 데이터를 보낼 때, 대칭키를 사용해 암호화한 후 이 암호화된 데이터가 QWER처럼 나타나게 됩니다. B는 이 암호화된 메시지를 받아 대칭키로 복호화한 후 다시 다음 노드(C)로 전달합니다.
    1. CIA(기밀성, 무결성, 가용성): 이미지 우측 상단에 보안의 3요소가 나타나 있습니다.
        • 기밀성(Confidentiality): 데이터를 암호화하여 외부에서 데이터를 볼 수 없도록 보장하는 역할을 합니다. 여기서 각 노드 간의 통신은 대칭키를 통해 암호화되기 때문에 기밀성이 유지됩니다.
        • 무결성(Integrity): 데이터가 전송 중에 변경되거나 변조되지 않았음을 보장합니다. 대칭키 암호화는 전송된 데이터가 원래 의도한 데이터인지 확인할 수 있는 방법으로 무결성을 지원합니다.
        • 가용성(Availability): 필요한 때에 데이터에 접근할 수 있도록 보장하는 역할을 합니다. 여기서도 각 노드는 자신이 필요한 데이터를 암호화하고 복호화하여 안전하게 사용할 수 있습니다.

    대칭키 키 교환의 중요성:

    대칭키 암호화에서 가장 큰 도전은 키 교환입니다. 양쪽 노드가 동일한 대칭키를 공유해야 하며, 이 키가 안전하게 전달되지 않으면 보안에 큰 위험이 발생할 수 있습니다. 실제로는 대칭키를 안전하게 교환하기 위해 비대칭키 암호화(RSA 등)를 사용해 대칭키를 교환하는 하이브리드 암호화 방식을 사용합니다. 하지만 이 이미지는 대칭키가 이미 공유된 상태에서의 통신을 설명하는 것 같습니다.

    정리:

    • A, B, C 노드는 동일한 대칭키를 사용해 서로 통신하고 있으며, 대칭키를 사용해 데이터를 암호화하고 복호화합니다.
    • 기밀성, 무결성, 가용성이 보장된 안전한 통신을 할 수 있습니다.
    • QWER와 같은 암호화된 메시지가 전달되고, 이를 각 노드는 대칭키를 통해 복호화하여 원본 데이터를 획득합니다.
     

     

    2. 비잔틴 장군 문제(Byzantine Generals Problem)

     
    💡
    notion image
    비잔틴 장군 문제(Byzantine Generals Problem)는 분산 시스템에서 신뢰할 수 없는 요소가 존재할 때, 어떻게 시스템이 일관된 결정을 내릴 수 있는지를 설명하는 고전적인 문제입니다. 이 문제는 분산 컴퓨팅과 블록체인 등에서의 신뢰성 문제를 이해하는 데 중요한 역할을 합니다.

    문제 개요

    비잔틴 제국의 여러 장군이 서로 다른 성을 포위하고 있다고 가정합니다. 이 장군들은 협력하여 한 가지 행동을 선택해야 합니다. 즉, 공격할지, 철수할지를 결정해야 하는데, 이 결정은 모든 장군이 동일하게 해야 성공적입니다. 문제는 몇몇 장군들이 배신자일 수 있다는 점입니다. 배신자 장군은 혼란을 일으키기 위해 잘못된 메시지를 보내거나 고의적으로 다른 장군들에게 다른 명령을 전달할 수 있습니다.

    목표

    1. 일관성: 모든 충성스러운 장군은 같은 결정을 내려야 합니다. (공격 또는 철수)
    1. 신뢰성: 충성스러운 장군들의 결정은 올바른 장군의 제안에 기반해야 합니다.

    문제의 어려움

    배신자가 존재할 경우, 각 장군이 받은 메시지가 다를 수 있습니다. 어떤 장군은 공격을 제안받고, 다른 장군은 철수를 제안받는 상황이 발생할 수 있습니다. 이러한 경우, 분산된 여러 개체가 상호 신뢰할 수 없는 환경에서도 어떻게 협력하고 일관된 결정을 내릴 수 있을까요?

    해결 방법

    이 문제의 해결책은 비잔틴 장애 허용(Byzantine Fault Tolerance, BFT) 알고리즘을 통해 제안되었습니다. 비잔틴 장애 허용이란, 네트워크 내에서 일부 참여자가 악의적이거나 오류를 일으키더라도 나머지 정직한 참여자들이 합의에 도달할 수 있는 시스템을 말합니다.
    일반적으로, 비잔틴 장군 문제를 해결하기 위해서는 전체 참여자 중 3분의 1 이상이 악의적이지 않아야 합니다. 예를 들어, 3명이 참여한다면 1명까지는 악의적일 수 있으며, 4명이 참여한다면 1명까지 악의적일 수 있지만, 그 이상이 되면 합의를 이루기가 어렵습니다.

    관련 알고리즘

    1. PBFT(Practical Byzantine Fault Tolerance): 실용적인 비잔틴 장애 허용 알고리즘으로, 분산 시스템에서 사용되며, 블록체인 기술에서 널리 활용됩니다.
    1. PoW(Proof of Work): 비잔틴 장애 허용을 구현하는 블록체인의 대표적인 합의 알고리즘입니다. 비잔틴 장군 문제와 유사한 상황에서 분산 네트워크 참여자들이 신뢰할 수 있는 합의에 도달할 수 있도록 보장합니다.

    적용 분야

    • 블록체인: 비잔틴 장애 허용 문제는 블록체인 시스템의 합의 메커니즘에서 매우 중요합니다. 비잔틴 장군 문제를 해결하는 알고리즘을 통해, 악의적인 노드가 일부 존재하더라도 전체 네트워크가 신뢰할 수 있는 거래 기록을 유지할 수 있습니다.
    • 분산 시스템: 서버들이 서로 신뢰할 수 없거나, 일부가 공격받았을 때도 신뢰할 수 있는 결과를 도출하는 시스템 구축에 활용됩니다.
    비잔틴 장군 문제는 이처럼 신뢰할 수 없는 환경에서 분산 시스템이 신뢰성을 보장하는 방법을 이해하는 데 중요한 개념입니다.
    Share article

    Uni

    RSS·Powered by Inblog