이론적 컴퓨터 과학은 보안과 어떤 관련이 있습니까?


11

안전하지 않은 소프트웨어를 생각할 때 소프트웨어가 너무 유용하여 공격자에게 악용 될 수 있다고 생각합니다. 따라서 소프트웨어 보안은 소프트웨어를 덜 유용하게 만드는 프로세스입니다. 이론적 컴퓨터 과학에서는 실제 세계와 협력하고 있지 않습니다. 순수한 이론으로 작업 할 때 보안 문제가 있습니까? 또는 동전의 다른 쪽, 이론적 컴퓨터 과학은 해킹당하는 사람들의 실제 세계에 영향을 줍니까? 그렇다면 어떤 보안 주제가 이론적 인 것으로 간주됩니까?


9
제시된 CS 이론의 관점은 주관적이고 매우 논쟁의 여지가 있으며 질문을 제기 할 필요도 없습니다. 이 문제는 특히 해킹에 중점을 둔 것으로 보인다. 이는 해킹에 관한 주제이며 (사회 공학 기술에 이르기까지 광범위하게 적용됨) "안전한"수반되는 것에 근접하지는 않는다. 이러한 이유로 나는 하향 투표했다. 그러나 질문이 좋은 곳에서 왔고 흥미로운 점이 있다고 생각하여 아래에 대답했습니다.
로스 스나이더

답변:


20

"안전하지 않은"은 "너무 유용하다"는 소프트웨어에 의한 것이라는 직관은 어떤 의미에서는 맞습니다. 당신의 직감을 공식화하는 "차등 개인 정보 보호"에 관한 크고 성장하는 이론 문헌이 있습니다. 예를 들어 다음을 참조하십시오. research.microsoft.com/en-us/projects/databaseprivacy/dwork.pdf

ϵeϵ

0


14

여러 가지 방법으로 :


솔직히 당신이 취약점을 발견하거나, 단일 코드를 패치하거나, ​​실제 취약점의 내부 동작을 본 적이 있다고 생각하지 않습니다.
루크

8
OllyDbg를 사용하여 화요일에 패치하기 전에 gdi dll을 패치하여 (두 번째) 커서 취약성을 수정했습니다 (확실히 소스 코드 없음). 다시 OllyDbg를 사용하여 폐쇄 소스 에뮬레이터를 패치하여 포켓몬 경쟁을 당혹스럽게 만들었습니다. 나는 웹캠 프로젝트에서 0 일을 발견했으며 많은 전쟁 게임 (ASLR과 PaX가 활성화 된 Blacksun 포함)에서 합리적으로 높은 점수를 얻었습니다. 나는 내가 한 더 사악한 것들에 대해서는 언급하지 않을 것이다. 내가 가지고 있거나없는 경우 왜 중요한가? 화염하지 마십시오.
로스 스나이더

13
@ The Rook : Ross의 목록이 소프트웨어 보안의 실제 사례와 거의 관련이 없다고 생각되면 그렇게 말하십시오. 어쩌면 TCS 보안 연구가 실제 보안 관행에서 얼마나 멀리 떨어져 있는지 자세히 설명하거나 도움이 될 수도 있습니다. 그러나 로스를 무시할 필요는 없습니다.
Joshua Grochow 1


10

네트워크 침입 탐지에서 나오는 스트리밍 알고리즘 연구에 대한 많은 실제 동기가 있습니다. 아래의 논문은 경험적 엔트로피에 대한 스트리밍 알고리즘을 사용하여 네트워크 트래픽의 이상을 탐지합니다.

유구, 앤드류 맥 칼럼, 돈 토 슬리 최대 엔트로피 추정을 사용하여 네트워크 트래픽의 이상을 탐지합니다. IMC '05 : 인터넷 측정에 관한 5 차 ACM SIGCOMM 회의 절차, 1-6 페이지, 2005


8

다른 답변과 달리, 이것은 TCS가 보안에 사용 된 장소가 아니라 "무언가 안전한 것으로 말할 때 걱정해야 할 사항"의 선을 따라 있습니다. 따라서 이론과 작업 할 때 보안 문제의 첫 번째 문제를 다룹니다.

해커가 말했듯이 이론적 인 결과는 실제 보안에 접하는 경우가 많습니다. 이러한 주장은 Alfred Menezes와 Neal Koblitz의 ' 또 다른 모습 '논문 시리즈에서보다 이론적이고 과학적이며 정확 해졌습니다 . 매우 중요합니다). 그들은 심지어 일반 논문에서도 암호화의 표준 가정에서 약점을 지적합니다.

몇 가지 예 (사이트에서 몇 가지 요점 인용 / 낙화) :

  1. 보안 정리는 조건부입니다. 수학 문제의 다루기 힘든 것으로 가정합니다.

  2. 난해성 가정은 종종 복잡하고 고안된 문제에 대해 만들어집니다. 어떤 경우에는 문제가 보안이 "증명 된"프로토콜에 대한 암호화 분석 문제와 거의 동일합니다.

  3. 경우에 따라 증거의 조임 간격이 크지 만 매개 변수 크기는 마치 증거가 단단한 것처럼 권장됩니다. 이러한 경우 증명은 일반적으로 성공적인 공격 실행 시간에 쓸모없는 하한을 제공합니다. 또한, 점근 적 결과가 실제로 사용되는 범위 내의 파라미터에 대한 보안을 반드시 보장 할 필요는 없다.

  4. 보안 정리는 특정 보안 모델을 사용합니다. 특정 공격, 특히 사이드 채널 공격은 모델링하기가 매우 어렵고 제안 된 모델은 부적절합니다.


6

정리 증명자는 소프트웨어, 하드웨어 및 프로토콜의 정확성을 입증하기 위해 어느 정도 사용되었습니다. 예를 들어 here 또는 here 을 참조 하십시오 .

프로그램을 통해 원하지 않는 방식으로 데이터가 흐르고 (따라서 잠재적 인 누출을 야기하는) 문제는 (비) 간섭 개념을 사용하여 이론적으로 모델링되었습니다. 여기에 포인터를 얻으 십시오 .


3

결정 성은 프로그래밍 언어 연구에서 핵심 관심사입니다. 즉, 특정 속성을 만족시키는 코드만을 받아들이는 프로그래밍 언어를 구성하는 데 많은 노력이 투자되고있다. 일반적인 정적 언어는 특정 방법이 존재하지 않는 경우 프로그램 거부와 같은 약한 보증 만 제공하지만, 예를 들어, 뮤텍스를 부적절하게 사용하거나 메모리 영역 끝을 넘어서 읽는 프로그램을 버릴 수 있다고 상상해보십시오. 결정 성 문제가 신속하게 발생한다는 것이 분명합니다 (가장 간단한 시나리오 : 컴파일러가 종료 프로그램 만 허용하도록 지정). 효율성 문제가 있습니다 (ML 유형 검사기는 두 배의 지수 적 사례가 있음).

어쨌든 PL 리서치 커뮤니티는 보안에 관심이 있으며 (임의의 외부 코드를 실행하도록 브라우저를 신뢰합니까?!) 그들의 질문은 많은 고전적인 CS 이론 질문으로 이어집니다.


적절한 고급 언어 (읽기 : C [++] 이외)는 프로그래머가 메모리 액세스를 제어하지 못하므로이 문제가 해결 된 것으로 간주합니다.
Raphael

@Raphael : 많은 양의 소프트웨어가 여전히 C와 C ++로 작성 되었기 때문에이 문제는 단순히 해결 된 것으로 간주 될 수 없습니다. 또한 Javascript에 대한 코드 삽입 공격을 해결하는 기술은 아직 초기 단계입니다. 해야 할 일이 많습니다.
Dave Clarke

1
특정 환경이 기존 솔루션을 무시한다는 사실 (때로는 좋은 이유로)으로 인해 문제 (여기서는 금지 된 메모리 주소에 액세스)가 해결되지 않습니다. 확인하기 어려운 일부는 적절한 불변에 의해 쉽게 우회 될 수 있습니다. 예를 들어, 프로그래머에게 공식적인 해지 증명을 요구할 수 있습니다 (참조 : Isabelle / HOL).
Raphael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.