디지털 시대에서 개인과 기업은 데이터 유출 위험에 점점 더 직면하고 있습니다. 정보 이론의 맥락에서 정보 흐름은 한 변수 x
에서 다른 변수 y
로 데이터를 전송하는 과정을 의미합니다. 어떤 시스템도 개인의 사생활뿐만 아니라 회사에도 상당한 손실을 초래할 수 있는 기밀 정보가 유출되는 것을 원하지 않습니다.
정보 공개를 제한하는 데는 액세스 제어 목록, 방화벽, 암호화 기술 등 여러 가지 방법이 있습니다. 하지만 이러한 방법이 정보 공개를 어느 정도 제한하더라도 정보가 유출되지 않을 것이라는 보장은 할 수 없습니다.
기술이 발전함에 따라 데이터 보안을 보장하는 방법도 크게 바뀌었습니다. 예를 들어, 액세스 제어 목록은 파일에 대한 무단 액세스를 방지할 수 있지만, 데이터가 사용 중인 후에 어떤 일이 일어나는지 제어할 수는 없습니다. 마찬가지로, 암호화 기술을 사용하면 안전하지 않은 채널을 통해 정보를 비공개로 전송할 수 있지만, 암호가 해독되면 데이터의 기밀성이 위협받게 됩니다. 그러므로 정보 흐름의 제어를 이해하는 것이 특히 중요해집니다.
정보 흐름은 크게 명시적 흐름과 우회 흐름의 두 가지 범주로 나눌 수 있습니다. 명시적 흐름은 비밀이 공개적으로 관찰 가능한 변수에 명시적으로 유출되는 경우입니다. 예:
var l, h; l := h;
반면, 사이드 스트림은 실행 시간이나 전력 소비와 같은 특정한 특성을 악용하여 정보를 유출합니다. 예를 들어, 어떤 조건에서 h
가 참이면 시간이 많이 소요되는 작업이 수행되어 공격자가 프로그램에 소요된 시간을 기준으로 h
를 유추할 수 있습니다. . 의 값.
암묵적인 정보 흐름도 우회 흐름의 일부입니다. 프로그램의 제어 흐름은 비공개 데이터를 기반으로 하는 반면, 공개 변수는 일부 비밀 정보를 의미할 수 있습니다.
불간섭은 공격자가 비밀 입력만 다를 경우 출력 기반으로 두 계산을 구별할 수 없어야 한다는 정책입니다. 그럼에도 불구하고, 이 정책은 실제 절차에 적용하기에는 너무 제한적이다.
예를 들어, 비밀번호 확인 프로그램은 필요할 경우 일부 비밀 정보를 공개해야 할 수도 있습니다. 즉, 입력한 비밀번호가 올바른지 여부입니다. 이를 통해 공격자는 프로그램이 비밀번호를 거부하는 경우에도(예: 입력하려는 비밀번호가 유효하지 않음) 유용한 정보를 얻을 수 있습니다.
정보 흐름 제어 메커니즘은 정보 흐름 정책을 시행하기 위해 설계되었습니다. 이 목표를 달성하기 위해 정보 흐름 전략을 구현하기 위한 여러 가지 방법이 제안되었습니다. 런타임 메커니즘은 운영 체제 및 프로그래밍 언어 수준에서 데이터에 레이블을 지정할 수 있으며, 정적 프로그램 분석은 프로그램 내의 정보 흐름이 해당 정책을 따르는지 확인합니다.
그러나 동적 분석 기술은 모든 실행 경로를 관찰할 수 없으므로 견고성과 정확성을 모두 보장할 수 없습니다. 이러한 기술은 정책 시행을 방해하지 않도록 하기 위해 잠재적으로 민감한 정보가 유출될 수 있는 실행을 종료하거나 정보가 유출될 수 있는 업데이트를 무시해야 하는 경우가 많습니다.
안전한 유형 시스템은 프로그래밍 언어에 중요한 요소를 추가하여 모든 표현식이 유형(부울이나 정수 등)을 갖는 것 외에도 안전 레이블을 가질 수 있게 해줍니다. 이렇게 하는 이점은, 유형 검사를 통해 프로그램이 검사를 통과하면 흐름 정책이 준수되는지 확인할 수 있고, 따라서 부적절한 정보 흐름을 방지할 수 있다는 것입니다.
예를 들어, 변수가 높은 보안 유형으로 표시된 경우 해당 변수는 낮은 보안 유형의 변수를 변경해서는 안 되며, 이를 통해 기밀 정보가 유출되는 것을 방지할 수 있습니다.
실제 적용에서는 불간섭 정책의 엄격성 때문에 비실용적입니다. 따라서 통제된 공개라는 목표를 달성하기 위해 정보 공개를 허용하는 많은 제도가 제안되었습니다. 이러한 계획은 정보 기밀 해제라고도 불립니다. 강력한 기밀 해제는 능동적인 공격자가 수동적인 공격자가 알고 있는 것 이상의 비밀에 접근하기 위해 시스템을 조작할 수 없도록 보장해야 합니다.
요약정보 흐름 제어는 현대 프로그래밍과 데이터 보호에 있어 점점 더 중요해지고 있습니다. 그러나 실제 응용 프로그램에서 데이터 보안을 효과적으로 보장하는 방법은 여전히 해결해야 할 과제로 남아 있습니다. 이러한 잠재적 위협에 대처할 준비가 되어 있나요?