반응형
  • Security (보안)
    • authentication : 인증
  • Protection (보호)
    • authorization : 인가, 권한 보호

16.1 Security Problem

  • 컴퓨터 자원
    • 실수로 혹은 고의로 잘못 사용되는 것을 방어함
    • 공격을 감지하여 방어하고, 실수를 제어함
    • cryptography(암호학)
  • 컴퓨터 자원 보안
    • 보안은 컴퓨터 자원을 보호해야함
    • 권한이 없는데 접근하는 것을 막아야함
    • 악의적인 침입이나 변경을 막아야함
    • 실수로 데이터의 일관성을 해치는 행위도 방어해야함
  • 보안 위배 요소
    • threat(위험) : 주로 실수에 의해 발생
    • attack : 악의적인 공격
  • 보안 위배 사항 분류
    • 무결성 침해 confidentiality
    • 데이터 안정성 침해 integrity
    • 유용성 침해 availability
    • 서비스 도둑질 Theft of service
    • 서비스 방해 : Dos 혹은 DDos 등의 공격 Dinial of service
  • 보안 측면에서 4가지 레벨로 살펴볼 수 있음 (우리는 OS에 대해서만 배울거)
    • Physical
    • Network
    • Operating System : 공격 포인트 줄이고 침입을 못하게 방어함
    • Application

16.2 Program Threats

  • Security Holes in Programs(or Processes)
    • Malware : 컴퓨터 시스템을 망치거나 사용 불가능하게 하는 소프트웨어
    • Code Injection : Malware들을 만드는 가장 기본적인 기법. 특정 소프트웨어에 코드를 심어서 의도적으로 변경시킴
    • Viruses and Worms :
      • 바이러스 : 다른 노드를 감염시키는 것을 목적으로 함
      • 웜 : 특별히 사용자가 액션을 취하지 않아도 동작함

16.3 System and Network Threats

  • Threats in the System and the Network
    • 네트워크 트래픽을 통한 공격
      • sniffing : 네트워크 트래픽을 intercept해서 정보를 훔침
      • spoofing : 국민은행 사이트인척 하면서 사용자의 개인정보를 얻어냄 (다른 사이트인척 위장하는 것)
    • Denial of Service : 리소스를 훔치는 것을 목표로 하지 않고 괴롭힘이 목적
    • Port Scanning
      • Port Scanning 자체는 정상적인 동작이나 공격용도로 이용할 때가 있음
      • 노드의 Port 정보를 스캐닝하여 취약점을 찾아냄 (방화벽을 둬서 방어함)

16.4 Cryptography as a Security Tool

  • Cryptography (암호학)
    • 네트워킹을 하는 컴퓨터에서 senders와 receivers가 메시지를 주고 받을 때, 그 메시지를 어떻게 신뢰할 수 있을까?
    • 암호학를 통해 해당 네트워크에 신뢰성을 부여함
    • key를 가지고 해당 네트워크 통신을 할때 메시지 암복호화 하는데 사용함
  • Encryption (암호화)
    • 전송자는 수신자가 key를 가지고 메시지를 읽을 수 있도록 암호화함
    • 암호화 알고리즘
  • 암호화 알고리즘의 핵심적인 특성 (대칭키, 비대칭키 합해서 공통적인 특성 설명)
    • key를 갖고 있다면 암호화된 메시지를 복호화할 수 있으나, 없다면 복호화 불가능함
    • 하지만 해커가 key를 만드는 알고리즘을 알고 있다면 메시지 암복호화를 할 수 있겠지? 키를 이용한 암호화 방법 크게 두 가지 유형을 다룸
  • 키를 이용한 암호화
    • 대칭 (sysmmetric) : A와 B가 동일한 key를 사용함
    • 비대칭 (asymmertric) : A와 B와 키가 다름
      • public key(공개키) : 아무나! (ex: 계좌번호)
      • private key : 나만! (ex: 계좌 비밀번호)
  • 대칭 암호화
    • 노드 간 공개키를 공유할 때 해커가 네트워킹을 가로채면 모든 메시지를 복호화해서 훔칠 수 있음
    • 그래서 공신력있는 제 3의 기관의 도움을 받음 (SSL 인증서 == https)
    • 대칭키 암호화 알고리즘 : 보안의 레벨이 높게 요구되지 않는 경우에는 많이 사용되는 방법임!
      • DES
      • AES
  • 비대칭키 암호화
    • 대칭키 방식의 경우 키를 교환해야한다는 한계가 있어 보안에 취약함. 이를 개선한 알고리즘 탄생!
    • Diffie와 hellman이 수학적으로 증명함
    • 암호화된 메시지는 아무나 가져도 됨
    • RSA algorithm : 요즘도 많이 씀! 특히 git ssh 통신을 위해서도!! Diffie와 Hellman을 현실적으로 사용할 수 있에 구현함 → https://youtu.be/joYFr6y9uXE
  • Authentication
    • 전송자의 메시지를 보호
    • hashing (해쉬 함수의 이해 동영상)
    • 해당 메시지가 중간에 수정되지 않았음도 보장함
    • 인증 알고리즘
    • 어떤 메시지가 주어지면 key를 통해 해당 메시지가 정상적인지 아닌지 판단할 수 있음 (ex: 전자서명)
  • 두 가지 유형의 Authentication 알고리즘
    • MAC
    • Digital Signature Algorithm

17.1 Goals of Protection

  • Protection은 정상적 권한을 가지고만 컴퓨터 자원에 접근할 수 있도록 보호함

17.2

  • Least Privilege(최소한의 권한) 원칙
    • ex) root 계정과 user 계정을 분리하여 권한 부여
    • ex) permission을 얻어야 특정 기능들을 이용할 수 있게 함

17.5

  • Access Matrix : 매트릭스를 이용하여 ACL(access control list, 권한의 집합)를 만듦
  • 액세스 매트릭스를 이용하여 어떤 도메인들에게 어떤 자원들에 접근할 수 있는 권한을 줄 것인지 정책(policy)을 관리할 수 있음

17.11

  • Sandboxing : 아예 어떤 credentials을 받아서 유효한 범위의 행위만 가능하게 함
  • Code Signing
    • 어떤 프로그램이나 스크립트를 어떻게 실행할 수 있을까? 만약 이 프로그램이나 스크립트가 중간에 변경된다면?
    • 구글플레이스토어나 앱스토어는 프로그램에 Code Signing (앱에 디지털서명 작업을 거침)을 하여 안전한 프로그램임을 인증해줌

마지막 질문

반응형