[CS] I/O 시스템 및 보안과 보호

Ryong·2024년 5월 30일

CS

목록 보기
5/16
post-thumbnail

9. I/O 시스템

I/O 하드웨어와 소프트웨어

I/O 하드웨어: I/O 하드웨어는 컴퓨터 시스템의 입력 및 출력 장치. 예로는 키보드, 마우스, 모니터, 프린터, 디스크 드라이브, 네트워크 어댑터 등이 있다. 각 장치는 고유의 특성과 인터페이스를 가지고 있으며, CPU와 메모리와 통신할 수 있도록 설계되어 있다.

I/O 소프트웨어: I/O 소프트웨어는 운영 체제가 하드웨어 장치와 상호작용하는 방식을 정의한다. I/O 소프트웨어의 주요 역할은 다음과 같다

  • 장치 드라이버(Device Driver): 특정 하드웨어 장치를 제어하는 소프트웨어. 운영 체제와 장치 간의 인터페이스를 제공하여 하드웨어를 추상화.
  • 인터럽트 핸들러(Interrupt Handler): I/O 작업이 완료되었음을 CPU에 알리기 위해 사용되는 소프트웨어 루틴.
  • I/O 관리 소프트웨어: I/O 요청을 큐에 저장하고 스케줄링하는 역할을 한다.

I/O 인터페이스와 장치 드라이버

I/O 인터페이스: I/O 인터페이스는 운영 체제와 하드웨어 장치 간의 통신 경로. 인터페이스는 표준화되어 있어 다양한 장치를 동일한 방식으로 제어할 수 있다. 일반적인 인터페이스로는 PCI, USB, SCSI 등이 있다.

장치 드라이버: 장치 드라이버는 특정 하드웨어 장치를 제어하는 소프트웨어 모듈. 운영 체제가 하드웨어 장치와 통신할 수 있도록 하며, 하드웨어의 구체적인 세부 사항을 추상화하여 응용 프로그램이 쉽게 사용할 수 있게 한다. 드라이버는 하드웨어와 직접 통신하며, 인터럽트 처리, 데이터 전송, 장치 초기화 등을 수행한다.

직접 메모리 접근 (DMA)

직접 메모리 접근 (DMA): DMA는 CPU의 개입 없이 메모리와 I/O 장치 간에 데이터를 직접 전송하는 기능. DMA 컨트롤러는 데이터 전송을 관리하며, 이를 통해 CPU가 데이터 전송 작업에서 해방되어 다른 작업을 수행할 수 있다. DMA의 장점은 데이터 전송 속도의 향상과 CPU 자원의 효율적 사용이다.

I/O 스케줄링

I/O 스케줄링: I/O 스케줄링은 여러 I/O 요청이 동시에 발생할 때, 요청을 처리할 순서를 결정하는 알고리즘. I/O 스케줄링의 주요 목표는 디스크 접근 시간을 최소화하고, 시스템의 응답성을 향상시키는 것이다. 대표적인 I/O 스케줄링 알고리즘은 다음과 같다

  • FCFS (First-Come, First-Served): 먼저 도착한 요청을 먼저 처리.
  • SSTF (Shortest Seek Time First): 현재 위치에서 가장 가까운 요청을 먼저 처리.
  • SCAN (엘리베이터 알고리즘): 디스크의 끝까지 이동하면서 요청을 처리한 후, 반대 방향으로 이동하며 요청을 처리.
  • C-SCAN (Circular SCAN): 디스크의 끝까지 이동하며 요청을 처리한 후, 반대 방향으로 돌아오지 않고 다시 처음부터 이동하면서 요청을 처리.

10. 보안과 보호

운영 체제의 보안 개념

운영 체제의 보안 개념: 운영 체제 보안은 시스템의 무결성, 기밀성, 가용성을 보호하는 것을 목표. 운영 체제는 자원과 데이터를 보호하고, 불법적인 접근 및 악의적인 공격으로부터 시스템을 방어해야 한다.

사용자 인증과 권한 관리

사용자 인증: 사용자 인증은 시스템에 접근하려는 사용자의 신원을 확인하는 과정. 일반적인 인증 방법으로는 비밀번호, 생체 인식(지문, 얼굴 인식 등), 토큰 등이 있다.

권한 관리: 권한 관리는 인증된 사용자가 시스템 자원에 접근할 수 있는 권한을 제어하는 과정. 사용자와 그룹에게 특정 자원에 대한 접근 권한을 부여하거나 제한.

접근 제어 메커니즘 (ACL, 캡빌리티 등)

접근 제어 목록 (ACL, Access Control List): 각 자원에 대해 접근 권한을 갖는 사용자 목록을 정의. ACL은 자원 단위로 접근 권한을 관리하며, 자원에 대한 접근 요청 시 ACL을 참조하여 접근 허용 여부를 결정.

캡빌리티 (Capability): 자원에 대한 접근 권한을 사용자에게 부여하는 방식. 사용자는 자원에 대한 접근 권한을 나타내는 캡빌리티 토큰을 가지고 있으며, 자원 접근 시 이를 제시하여 접근을 허용받는다.

암호화와 네트워크 보안

암호화: 암호화는 데이터를 인코딩하여 권한이 없는 사용자가 내용을 이해하지 못하도록 보호하는 기술. 대칭 키 암호화(예: AES)와 비대칭 키 암호화(예: RSA)가 있다.

  • 대칭 키 암호화는 하나의 비밀 키를 사용하여 데이터를 암호화하고 복호화하는 방법. 암호화와 복호화에 동일한 키를 사용하므로, 이 키를 안전하게 공유하고 관리하는 것이 중요.

    • AES (Advanced Encryption Standard)
      • AES는 널리 사용되는 대칭 키 암호화 알고리즘으로, 블록 암호 방식.
      • 128, 192, 256 비트의 다양한 키 길이를 지원.
      • 빠른 속도와 높은 보안성을 제공하여, 파일 암호화, 디스크 암호화, 네트워크 보안 등에 사용.
      • 장점: 속도가 빠르고, 구현이 간단.
      • 단점: 키 분배 및 관리가 어렵다.
  • 비대칭 키 암호화는 두 개의 키(공개 키와 개인 키)를 사용하여 데이터를 암호화하고 복호화하는 방법. 공개 키는 누구나 알 수 있지만, 개인 키는 비밀로 유지. 데이터를 암호화할 때는 수신자의 공개 키를 사용하고, 복호화할 때는 수신자의 개인 키를 사용.

    • RSA (Rivest-Shamir-Adleman)
      • RSA는 널리 사용되는 비대칭 키 암호화 알고리즘.
      • 공개 키와 개인 키 쌍을 생성하여 데이터를 암호화하고 복호화.
      • 전자 서명, 키 교환, 데이터 암호화 등 다양한 보안 기능을 제공.
      • 장점: 키 분배가 상대적으로 쉽고, 비밀 키의 안전성을 높인다.
      • 단점: 대칭 키 암호화에 비해 속도가 느리고, 계산이 복잡하다.

네트워크 보안: 네트워크 보안은 네트워크를 통해 전송되는 데이터의 기밀성, 무결성, 가용성을 보호하는 것을 목표로 한다. 주요 기술로는 방화벽, 침입 탐지 시스템(IDS), 가상 사설망(VPN), 보안 소켓 계층(SSL/TLS) 등이 있다.

  • 방화벽은 네트워크 보안 장치로, 허가된 트래픽은 통과시키고, 허가되지 않은 트래픽은 차단. 방화벽은 네트워크의 경계에서 트래픽을 필터링하여 외부의 공격으로부터 내부 네트워크를 보호.

    • 종류:
      • 패킷 필터링 방화벽: IP 주소, 포트 번호 등을 기반으로 패킷을 필터링.
      • 상태 기반 방화벽: 패킷의 상태 정보를 추적하여 트래픽을 필터링.
      • 애플리케이션 레벨 방화벽: 애플리케이션 계층에서 트래픽을 필터링.
      • 차세대 방화벽 (NGFW): 침입 방지, 애플리케이션 제어, 사용자 식별 등의 고급 기능을 제공.
  • 침입 탐지 시스템 (IDS)는 네트워크나 시스템을 모니터링하여 비정상적인 활동이나 공격을 탐지하는 보안 시스템. IDS는 트래픽 패턴, 로그 파일 등을 분석하여 침입 시도를 감지하고, 관리자에게 경고를 보낸다.

    • 종류:
      • 네트워크 기반 IDS (NIDS): 네트워크 트래픽을 모니터링하여 침입을 탐지.
      • 호스트 기반 IDS (HIDS): 개별 호스트의 로그 파일, 시스템 콜 등을 모니터링하여 침입을 탐지.
      • 서명 기반 IDS: 알려진 공격 패턴(서명)과 비교하여 침입을 탐지.
      • 행위 기반 IDS: 정상적인 동작과 비교하여 비정상적인 행위를 탐지.
  • 가상 사설망 (VPN)은 공용 네트워크(인터넷)를 통해 사설 네트워크를 안전하게 연결하는 기술. VPN은 터널링, 암호화, 인증 등을 사용하여 데이터의 기밀성과 무결성을 보호.

    • 기능:
      • 터널링: 데이터 패킷을 안전한 터널을 통해 전송.
      • 암호화: 전송되는 데이터를 암호화하여 도청을 방지.
      • 인증: 사용자와 장치의 신원을 확인하여 불법 접근을 방지.
  • 보안 소켓 계층 (SSL, Secure Sockets Layer)과 전송 계층 보안 (TLS, Transport Layer Security)은 인터넷에서 데이터를 안전하게 전송하기 위한 암호화 프로토콜. TLS는 SSL의 후속 버전으로, 더 강화된 보안을 제공.

    • 기능:

      • 암호화: 전송되는 데이터를 암호화하여 기밀성을 유지.
      • 인증: 서버와 클라이언트 간의 신원을 확인하여 신뢰성을 보장.
      • 무결성: 전송된 데이터가 변경되지 않았음을 확인.
    • 사용 사례:

      • 웹 브라우저와 웹 서버 간의 안전한 통신(HTTPS)
      • 이메일 전송 보안
      • VPN 연결

보안 위협과 취약점

보안 위협: 보안 위협은 시스템의 보안을 해칠 수 있는 다양한 요소. 대표적인 보안 위협에는 악성 코드, 바이러스, 트로이 목마, 웜, 스파이웨어, 랜섬웨어 등이 있다.

취약점: 취약점은 시스템의 보안상 허점이나 결함을 말한다. 이러한 취약점은 악의적인 공격자가 시스템을 침해하거나 데이터를 탈취할 수 있는 기회를 제공한다. 소프트웨어의 버그, 잘못된 설정, 약한 암호 등이 취약점에 해당한다.

profile
새로운 시작. 그리고 도약

0개의 댓글