암호학

암호학 및 컴퓨터보안#1

june__Park 2022. 5. 16. 20:24

왜 컴퓨터 보안이 배우는가?

• 정보는 전략적 자원
• IT 확산에는 자동화된/기술적, 물리적, 관리적 수단이 필요
• 둘 다 관련됨
   – 컴퓨터에 저장되고 처리되는 정보
   – 컴퓨터 간에 전송된 정보
• 보안에 대한 요구사항을 정의하고 요구사항을 충족하는 방법을 식별해야 함

 

컴퓨터 보안
• 보안(Security)은 정보 및 서비스의 도난, 변조 및 중단 가능성이 낮거나 

   허용 가능한 상태로 유지되는 정보 및 인프라의 웰빙 상태를 말한다.
• 컴퓨터 보안은 컴퓨터 시스템의 자산이라고 불리는 중요한 항목의 보호이다.

   주요 자산 유형은 다음과 같다:
   – 하드웨어 

   – 소프트웨어 

   – 데이터

 

보안 서비스(기능)
기밀성(confidentially) - 정보 컨텐츠/액세스 보호
인증(authentication) - 정보 출처 보호(알림)
무결성(integrity) - 정보 정확도 보호
부인하지 않음(nonrepudiation) - 부인으로부터 보호, 통신의 당사자 중 한 명에 의한 부인으로부터 보호
권한 부여(authorization) - 사용자 ID 확인
가용성(availability) - 정보 전달 보장
액세스 제어(access control) - 정보/정보에 대한 액세스 제어

 

보안 서비스
• 기밀성은 정보나 자원의 은폐이다.
   – 예를 들어, 발신자, 의도된 수신자만 메시지 내용을 "이해"해야 한다.
인증은 정보의 출처를 확인하고 보장하는 것이다.
무결성은 부적절하고 허가되지 않은 변경을 방지하는 측면에서 데이터 또는 리소스의 신뢰도를 의미한다.
가용성은 원하는 정보 또는 리소스를 사용할 수 있는 능력을 의미한다.

 

보안 정책
• 보안 정책: 무엇이 허용되거나 허용되지 않는지에 대한 설명입니다.
   – 보호되고 있는 것은 무엇인가? 예방/보호해야 할 활동 또는 이벤트는 무엇인가? 
• 보안 정책은 일반적으로 다음과 같이 명시됩니다.
   – 원칙(참가자, 참가자 또는 최상의 용어는 역할)
   – 허용되는(또는 허용되지 않는) 조치 정의
   – 물건의 종류에 따라.
   – 예)
      • "등록된 각 유권자는 최대 한 번 투표할 수 있습니다." 
      • "관리자만 이 파일을 수정할 수 있습니다."

 

보안 메커니즘
• 보안 메커니즘: 정책을 시행하는 절차, 도구 또는 방법.
• 보안 메커니즘은 보안 공격을 방지, 탐지 및 대응하고 복구하는 데 도움이 되는 기능을 구현한다.
• 보안 서비스는 일반적으로 API 또는 통합 인터페이스를 통해 사용자에게 제공된다.
• 암호화는 많은 보안 메커니즘의 기초가 된다.

 

보안 메커니즘
• 인사
– 접근토큰, 생체 측정
• 물리적
– 통합 액세스 제어
• 관리직
– 보안 교육
• 데이터 네트워킹
– 암호화, 구성 제어
• SW&OS
– 테스트, 평가, 인증
• HW
– TCB(신뢰할 수 있는 컴퓨팅 기반),변조 방지, 암호화

 

보안 메커니즘(X.800)
• 특정 보안 메커니즘:
– 암호화
– 디지털 서명
– 접근 제어
– 데이터 무결성
– 인증 교환 – 트래픽 패딩
– 라우팅 제어
– 공증
• 퍼베이시브 보안 메커니즘:
– 신뢰할 수 있는 기능
– 보안 레이블
– 이벤트 감지
– 보안 감사 추적
– 보안 복구
• ITU-T X.800 보안
OSI를 위한 아키텍처
• 보안 요구사항을 정의하고 제공하는 체계적인 방법을 정의.

 

커뮤니케이션 프로세스 참가자
• 앨리스와 밥은 좋은 사람들이다 (론 리버스트, 1978년)
• 트루디는, 이브, 오스카, 맬러리 등은 침입자이다.

 

앨리스 온라인 은행
• 앨리스가 앨리스의 온라인 은행 (AOB)
• 앨리스의 보안 문제는 무엇인가?
• 만약 밥이 AOB의 고객이라면, 그의 보안 문제는 무엇인가?
• 앨리스와 밥의 고민은 어떻게 비슷할까? 그들은 어떻게 다른가?
• 트루디는 이 상황을 어떻게 생각하나?

 

CIA
• CIA == 기밀성(confidentially), 무결성(integrity) 및 가용성(availability)
• AOB는 트루디가 밥의 계좌 잔고를 배우는 것을 막아야 한다.
• 기밀성: 정보의 무단 판독 방지
   – 기밀 유지를 위해 사용되는 암호화

 

• Trudy가 Bob의 계좌 잔고를 변경할 수 없어야 한다.
• Bob은 자신의 계좌 잔고를 부적절하게 변경할 수 없어야 한다.
• 무결성: 무단 정보 쓰기 탐지
   – 무결성에 사용되는 암호화

 

• 필요할 때마다 AOB의 정보를 사용할 수 있어야 한다.
• Alice는 거래를 할 수 있어야 한다. 그렇지 않으면 다른 곳으로 사업을 옮길 것이다.
• 가용성: 필요할 때 데이터를 적시에 사용 가능
• 가용성은 "새로운" 보안 문제 – 서비스 거부(DoS) 공격

 

비욘드 CIA: 크립토
• 밥의 컴퓨터는 어떻게 "밥"이 트루디가 아닌 진짜 밥이라는 것을 알 수 있을까?
• Bob의 암호를 확인해야 한다.
– 이것은 약간의 영리한 암호화가 필요하다.

 

Beyond CIA: 프로토콜
• 밥이 AAB에 로그인했을 때, 어떻게 AAB가 "밥"이 진짜 밥이라는 것을 알 수 있을까?
• 이전과 같이 Bob의 비밀번호가 확인됨.
• 이전 사례와 달리 네트워크 보안 문제가 발생.
• 네트워크 트랜잭션을 안전하게 보호하는 방법은 무엇인가?
  – 프로토콜은 매우 중요하다.
  – 암호화는 프로토콜에서 중요한 역할을 한다.

 

Beyond CIA: 접근통제
• 일단 밥이 AOB에 의해 인증되면, AOB는 밥의 행동을 제한해야 한다.
   – 밥은 찰리의 계정 정보를 볼 수 없습니다. 밥은 새 소프트웨어 등을 설치할 수 없다.
• 다음 제한 적용: 권한 부여
• 액세스 제어에는 인증 및 인증이 모두 포함된다.

 

Beyond CIA: 소프트웨어
• 암호화, 프로토콜 및 액세스 제어는 소프트웨어에서 구현된다.
   – 소프트웨어는 보안이 유지되는 기반이다.
• 소프트웨어의 보안 문제는 무엇인가? 
   – 실제 소프트웨어는 복잡하고 버그가 많다.
   – 소프트웨어 결함으로 인해 보안 결함이 발생함
   – 트루디는 소프트웨어를 어떻게 공격하나?
   – 소프트웨어 개발의 결함을 줄이는 방법은 무엇인가?

   – 악성코드는 어떨까?

 

AAA
• AAA - 인증, 허가 및 계정.
• 예: RADIUS 프로토콜, RFC 2865
   – 인증, 권한 부여 및 회계는 분산 시스템의 보안 아키텍처를 의미하며,

      이를 통해 어떤 사용자가 어떤 서비스에 액세스할 수 있는지, 그리고 사용자가 얼마나 많은 리소스를 사용했는지 제어할 수 있다.

 

사람 문제
• 사람들은 종종 보안을 깨뜨린다.
   – 의도적이든 의도적이든 – 여기서는 의도적이지 않은 것을 고려한다.
• 예를 들어, 당신이 온라인에서 무언가를 사고 싶다고 가정하자.
   – 구체적으로 설명하자면, amazon.com에서 정보 보안: 원칙과 관행 2판을 구입하고 싶다고 가정해 보라.
• amazon.com에서 구입하려면...
   – 웹 브라우저에서 SSL 프로토콜을 사용한다.
   – SSL은 암호화 방식에 의존한다.
   – 액세스 제어 문제 발생
   – 모든 보안 메커니즘이 소프트웨어에 있음
• 이 모든 보안 장치가 완벽하게 작동한다고 가정하자.
   – 그럼 안전할까?
• 뭐가 잘못될까?
• Trudy는 man-in-the-middle 공격(나중에)을 시도한다

   – SSL은 안전하므로 공격이 "작동"되지 않음
   – 그러나 웹 브라우저는 경고를 발생시킨다.
   – 사용자인 당신은 무엇을 할까?
• 사용자가 경고를 무시하면 공격이 성공한다!

   – 어떤 보안 메커니즘도 실패하지 않았다.

   – 그러나 사용자가 의도치 않게 보안을 깼다.

 

공격
• 컴퓨터 기반 시스템에는 하드웨어, 소프트웨어 및 데이터라는 세 가지 개별적이지만 중요한 구성 요소가 있다.
• 공격은 보안을 위반하는 모든 작업이다. 

   – 능동적 적수
• 공격에는 "의도"라는 암묵적인 개념이 있다.
   – 라우터의 잘못된 구성이나 서버 충돌로 인해 가용성이 손실될 수도 있지만 공격은 아니다.
• 수동 공격은 시스템에서 정보를 학습하거나 사용하려고 시도하지만 시스템 리소스에 영향을 주지 않는다. 

   활성 공격은 시스템 리소스를 변경하거나 작동에 영향을 미치려고 시도한다.

 

방어 방법
• 위협으로부터 어떻게 방어할 수 있을까요?
   – 차단: 공격 방지
   – 차단: 공격을 더 어렵게 또는 더 비싸게 만든다.
   – 공격자에게 매력적이지 않게 행동하라.
   – 탐지: 공격이 발생했거나 발생했음을 알린다.
   – 복구: 공격의 영향을 완화

• 종종 동일한 위협으로부터 "깊이 방어"하기 위해 많은 작업을 수행하려고 한다.