보안

이정민·2022년 6월 13일
0

운영체제

목록 보기
11/12

보안

보호(protection)

  • 컴퓨터 시스템의 자원에 대해서 프로그램, 프로세스, 사용자 등의 접근을 제어하는 것
  • 내부 정보 유출 방지(내부적 위협)
  • 접근 제어 기법 적용

보안(Security)

  • 시스템의 자원인 정보, 데이터 등을 불법적인 노출, 변조, 파괴 등으로부터 보호하고, 정보의 처리 과정, 전송 단계에서 보호하는 것
  • 외부의 공격 방어(외부적 위협)

보안의 범주

  • 외부 보안

    • 천재지변이나 외부 침입자로부터 보안
    • 시설 보안
      • 외부인의 출입 통제
    • 운용 보안(operations security)
      • 관리자의 여러 정책과 통제 절차에 따른 보안
      • 자원 및 사용자 별 부류 지정 및 접근 인가(authorization)
      • 운용보안 요소
        • 위협: 보안 통제 위반으로 손해를 발생시킬 수 있는 사건
        • 취약성: 보안 통제를 위반할 가능성이 있는 시스템의 약점
        • 자산: 보호대상인 정보시스템 설비, 인력, 프로세스
      • 보안 통제
        • 위험 감소를 위해 만들어진 정책, 절차, 업무, 조직 구조
  • 내부 보안

    • 컴퓨터 시스템의 신뢰성을 높이고 보안 문제를 해결하는 것
    • 불법 사용자로 부터 자원 접근 제어
    • 조직에 속한 사람 중심으로 위협을 정확하게 설정하고 내부 프로세스와 정책 설정
  • 사용자 인터페이스 보안

    • 신원 확인 후 인증된 사용자의 자원 접근 허용

보안 위협의 유형

  • 흐름 차단
    • 시스템의 일부 파괴 또는 사용불가 상태 => 가용성 위협
  • 가로채기
    • 비인가 사용자의 자원 접근
  • 변조
    • 비인가 사용자의 내용 수정
  • 위조
    • 비인가 사용자의 위조물 삽입

정보 보안

  • 정보를 다양한 위협으로부터 보호하는 것
  • 인가되지 않은 접근, 사용, 폭로, 붕괴, 수정, 파괴로부터 정보와 정보 시스템을 보호해 기밀성, 무결성, 가용성을 제공하는 것
  • 인가된 사용자만이(기밀성) 정확하고 완전한 정보로(무결성) 필요할 때 접근할 수 있도록(가용성) 하는 일련의 작업

정보 보안의 주요 목표

  • 기밀성

    • 허락되지 않은 사용자 또는 객체가 정보의 내용을 알 수 없도록 하는 것
    • 원치않는 정보의 공개를 막는 것 => 프라이버시 보호와 관련
  • 무결성

    • 허락되지 않은 사용자 또는 객체가 정보를 함부로 수정할 수 없도록 하는 것
  • 가용성

    • 허락된 사용자 또는 객체가 정보에 접근하려 하고자 할 때 이것이 방해받지 않도록 하는 것
    • 가용성 방해 공격의 예
      • 서비스 거부 공격(DDoS 공격, Distributed Denial of Service Attack)

네트워크 보안

  • 각종 프로토콜과 네트워크를 통해 연결된 수많은 호스트들 사이에서 정보의 유출과 불법적인 서비스 이용을 방지하는 것
  • 네트워크 환경에서 전달되는 정보의 위조, 변조, 조작, 유출, 무단침입 등의 불법 행위로부터 정보를 보호하는 것

네트워크 보안 위협

  • 인증 위협
    • 제3자가 정보와 데이터의 전송을 가로막아(흐름차단), 시스ㅔㅁ 일부 파괴 또는 사용 불가
  • 기밀성 위협
    • 허가받지 않은 제3자가 전송 중간에 정보와 데이터의 가로채기
  • 변조에 따른 무결성 위협
    • 제3자가 시스템의 자원에 불법으로 접근한 데이터의 변조
  • 위조에 의한 신뢰성 위협
    • 제3자가 시스템에 불법적으로 접근하여 거짓 정보 등을 삽입한 위조

네트워크 보안 서비스

  • 네트워크 보안을 강화하기 위한 제반 서비스

  • 인증

    • 수신된 데이터의 실체가 원하는 실체라는 것을 확인
    • 대등 실체 인증
      • 통신 당사자 간의 신분 확인과 자격 유무 점검
    • 데이터 발신처 인증
      • 데이터 발신처의 확인 후 자격 유무 판단
  • 접근제어

    • 비인가된 사용자의 위협으로부터 정보 자원 보호
  • 기밀성

    • 네트워크를 통해서 전달되는 정보의 비인가 사용자나 주체에 대한 노출 방지
  • 데이터 무결성

    • 데이터 내용의 비인가 방식에 따른 변경 또는 삭제 방지
  • 부인방지

    • 데이터의 발신자 및 수신자의 발신 또는 수신 사실 부인 방지

암호화

암호화

  • 제3자는 읽을 수 없도록 평문을 부호화하여 암호문으로 만드는 것
    복호화
  • 암호문을 평문으로 역부호화하는 것

대칭키 암호화

  • 암호화 키와 복호화 키가 동일
  • 동일한 키를 사용하여 암호화하고 복호화하는 방식
  • 키의 안전한 전송 어려움
  • 대칭키 암호화의 예
    • 덧셈 암호

DES(Data Encryption Standard) 알고리즘

  • 64비트 평문을 64비트 암호문으로 암호화
  • 56비트 길이의 키 사용

AES(Advanced Encryption Standard) 알고리즘

  • DES를 대체하기 위해 도입된 대칭키 알고리즘
  • 128비트 평문을 128비트로 암호화
  • 10/12/14 라운드별로 128/192/256비트 키 길이 사용
    • AES-128/AES-192/AES-256

비대칭 암호화

  • 암호화에 사용된 키와 복호화에 사용되는 키가 다른 방식
  • 공개키를 사용한 암호화 => 공개키 외부에 공개
  • 비밀키를 사용한 복호화

RSA(Rivet, Shamir, Adelman) 암호화 알고리즘

  • 대표적인 비대칭 암호화 알고리즘
  • 비대칭 암호화
  • 공개키는 n,e라는 두 정수로 구성, 비밀키는 n,d라는 두 정수로 구성
  • 임의의 두 소수 p와 q를 정하고 n=p*q
  • Φ(n) = (p-1)*(q-1)
  • (e*d) mod Φ(n) =1

무결성

무결성 검증 방식

  • 데이터 전송 오류 감지
    • 체크섬
      • 메시지의 헤더와 데이터를 2바이트
    • CRC(순환중복검사)
      • 송신측에서는 CRC값을 데이터에 붙인 코드워드를 전송하며, 수신측에서는 수신된 코드워드에서 CRC값을 이용하여 에러 발견
  • 임의 변경 감지
    • 해쉬함수
    • 임의의 데이터로부터 고정된 길이의 짧은 해쉬 코드 생성
    • MD5 알고리즘
      • 입력 데이터를 128비트 메시지로 축약하는 해쉬 함수
      • CRC와 유사한 개념 사용
      • SHA-1 보다 안전성이 약간 떨어짐
    • SHA(Secure Hash Algorithm)
      • MD5를 대체하고 있는 해쉬 함수
      • SHA-1, SHA-2, SHA-3
    • 해쉬 함수를 이용한 파일 무결성 검사
      • 전송 파일 데이터에 해쉬 함수를 적용하여 메시지 다이제스 생성하여 함께 전달

인증

인증

  • 정보를 접근하는 주체가 식별된 본인이 맞다는 것을 시스템에 증명해 보이는 과정
  • 시스템이 본인임을 주장하는 사용자를 인정해주는 과정

인가

  • 사용자에 대한 권한을 허락하는 것

인증 기술의 종류

  • 지식기반 인증기술
    • 사용자가 알고 있는 정보에 기반한 인증
    • PIN, 비밀번호, 계좌번호 등을 인증수단으로 사용
  • 소유기반 인증기술
    • 사용자가 소유하고 있는 도구에 기반한 인증
    • OTP, 스마트 카드키 등
  • 존재기반 인증기술
    • 사용자의 신체나 신체의 특징에 기반한 인증
    • 홍체인식, 지문인식, 음성인식, 얼굴인식 등

블록체인

  • 증빙과 가치 전달에 관련 작업
  • 신뢰하는 제3자 기관 배제
  • 다수의 자발적 참여자에 의한 공개된 분산 원장 시스템
  • 모든 거래에 대한 공개적 분산 원장 관리

해결 문제

  • 어떻게 분산해서 처리하고 저장하도록 할 것인가
  • 누가 보내는지 어떻게 확인할 것인가
  • 누가 봉인처리하는 권한을 가질 것인가
  • 어떻게 자발적으로 분산원장 관리에 참여하도록 할 것인가
  • 어떻게 이중지불 등의 부정행위를 방지할 것인가

블록체인 구현 기술

P2P 네트워크

  • 어떻게 분산해서 처리하고 저장하도록 할 것인가
  • 인접한 노드(블록체인 참여 컴퓨터)에 정보 전달
  • 개별 트랜잭션은 블록체인 네트워크에 특정 노드에 전달

비대칭 암호화 기술

  • 누가 보내는지 어떻게 확인할 것인가
  • 비밀키와 공개키
    • ex) 공인인증서
  • 개인은 비밀키와 공개키 생성
    • 공개키를 개인 계좌 번호로 사용
    • 익명/가명

거래 데이터 생성 및 확인

  • 거래 데이터 생성 후 해싱한 요약정보를 비밀키로 서명
  • 공개키와 함께 거래 데이터 전송
  • 요약정보 재생성 결과와 공개키로 해독한 요약정보 비교 검증

블록생성 합의 방법

  • 누가 봉인처리하는 권한을 가질 것인가
  • 작업증명
    • 해싱 사용
      • 주어진 데이터를 일정 길이의 무작위적인 이진수 데이터로 변환
      • 역방향 예측불가
      • ex) SHA2, SHA3
  • 공개 원장에 기록할 권리 획득
    • 일정 개수의 0이 나올 때 유효한 작업 증명
    • 전체 블록체인 네트워크에 전송
    • 승인이 되면 블록체인에 추가
    • 승인시 보상(가상화폐 지급)
  • 블록체인의 블록 확장 충돌 해결
    • 동시에 여로 노드가 블록 생성 성공
      • 드물지만 가능
      • Bitcoin은 10분에 한번 정도 성공하도록 난이도 조정
    • 새로운 노드가 추가되면 긴 체인 승리
    • Bitcoin: 승자 독식
    • Ethereum: 일부 분배

채굴

  • 어떻게 자발적으로 분산원장 관리에 참여하도록 할 것인가
  • 모든 블록과 거래 정보 저장 및 블록 생성 참여
  • 블록생성 성공 사례 + 수수료
    • Bitcoin
      • 4년마다 1/2감소, 10분 간격
      • 2040년 발행종료 예정
    • Ethereum
      • 3ETH, 15초 간격

보안 및 안정성

  • 어떻게 이중지불 등의 부정행위를 방지할 것인가
  • 블록 등록에 전체 반이상 자동 합의
  • 부정을 위해 전체 computing power의 51% 필요
    • Sybil 공격 대응
  • timestamp 정보 포함
  • transaction의 블록 등록 후 지연 수용
    • 비트코인 6번 confirmation 필요 - 최소 한시간 거래 확인 처리 시간 필요

채굴

  • 풀 노드: 전체 블록 저장, 채굴 참여
  • 채굴 알고리즘
    • 작업 증명 vs 지분 증명

이더리움

스마트 계약

  • 이더리움 네트워크에서 동작하는 가상머신(EVM)에서 동작하는 객체
  • 조건에 확인하여 다른 계좌로 송금 등의 처리 가능
  • 외부사용계좌에서 생성해서 네트워크에 등록(비용 부담)
  • 스마트 계약의 메소드를 호출하는 계좌는 비용 부담
  • 복잡한 분산 앱 개발 가능
  • Solidity: 이더리움에서 사용하는 smart contract 프로그래밍 언어

블록체인 기술 발전

  • 1세대 블록체인
    • 비트코인
    • 분산원장, 작업증명
  • 2세대 블록체인
    • 이더리움,...
    • 스마트 계약
  • 3세대 블록체인
    • 에이다, 이오스, 퀀텀, 카르다노, ..
    • 지분증명
    • 자체 의사결정기능, 유연한 soft fork
profile
으악

0개의 댓글