정보처리기사
🙈

정보처리기사

Created
Apr 18, 2024 08:33 AM
Last edited time
Last updated April 26, 2024
Tags
CS
Language
URL

Intro::

정보처리기사 정리본입니다.
 

XML

XML은 웹브라우저 간 HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위하여 개발된 다목적 마크업 언어이다.
 

JSON

속성-값 쌍(attribute-value pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷이다. AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷이다. 언어 독립형 데이터 포맷으로 다양한 프로그래밍 언어에서 사용되고 있다.
 

OAuth

  • 사용자가 사용자 이름 및 암호와 같은 자격 증명을 공유하지 않고도 타사 애플리케이션이 데이터 또는 리소스에 액세스할 수 있도록 권한을 부여할 수 있는 개방형 표준 프로토콜이다.
  • 사용자가 데이터에 대한 제어를 유지하면서 리소스에 대한 액세스 권한을 부여할 수 있는 안전하고 표준화된 방법을 제공하며, 액세스 토큰을 사용하여 타사 애플리케이션에 리소스에 대한 액세스 권한을 부여하는 메커니즘을 사용자에게 제공하는 방식으로 작동한다.
  • 사용자가 응용 프로그램에 대한 액세스 권한을 부여하면 응용 프로그램은 사용자를 대신하여 사용자의 리소스 또는 데이터에 액세스하는 데 사용할 수 있는 액세스 토큰을 받는다.
  • 암호와 같은 사용자의 자격 증명은 타사 응용 프로그램과 공유되지 않으며, 클라우드 스토리지 서비스, 온라인 마켓 플레이스 및 금융 서비스를 포함한 다른 많은 응용 프로그램 및 서비스에서도 사용된다.
  • Facebook, Twitter 및 LinkedIn과 같은 소셜 미디어 플랫폼에서 널리 사용되어 사용자가 소셜 미디어 데이터에 대한 액세스 권한을 타사 애플리케이션에 부여할 수 있도록 한다.
  • 타사 애플리케이션에 대한 사용자 자격 증명의 노출을 최소화하여 향상된 보안, 간소화된 애플리케이션 개발, 사용자가 리소스에 대한 액세스 권한을 쉽게 부여하거나 취소할 수 있도록 하여 향상된 사용자 환경 등 여러 가지 이점을 제공한다.
 

JWT

JWT (JSON Web Token)는 웹 표준으로 인터넷 상에서 두 컴퓨터 간에 정보를 JSON 형식으로 안전하게 전송하기 위한 방법입니다. JWT는 주로 사용자의 인증 정보를 서버에 전송할 때 사용되며, 이 토큰 자체가 필요한 모든 정보를 담고 있어서 데이터베이스 조회 없이도 사용자를 인증할 수 있는 장점이 있습니다.
JWT는 세 부분으로 구성됩니다:
  1. Header(헤더): 토큰의 타입을 정의하고, 사용된 알고리즘(예: HMAC SHA256, RSA 등)이 무엇인지 설명합니다.
  1. Payload(페이로드): 실제로 전달하고자 하는 데이터가 담겨 있습니다. 이 정보는 클레임(claim)이라고 불리며, 사용자 ID, 만료 시간 등이 포함될 수 있습니다.
  1. Signature(서명): 헤더와 페이로드를 합친 후, 제공된 비밀 키로 해시하여 생성된 서명입니다. 이 서명은 토큰이 중간에 변경되지 않았는지 확인하는 데 사용됩니다.
JWT는 이렇게 생성된 후, 통신 중에 Authorization 헤더를 통해 전송되며, 서버는 이 토큰의 서명을 확인하여 유효성을 검증합니다. 이 방식은 토큰 기반 인증 시스템에서 중요한 역할을 하며, 세션을 유지하지 않아도 되므로 서버 자원을 아낄 수 있습니다.

SAML

SAML(Security Assertion Markup Language)은 인터넷 상에서 인증과 권한 부여 데이터를 교환하기 위한 XML 기반의 오픈 표준입니다. 이 표준은 주로 기업 환경에서 싱글 사인온(Single Sign-On, SSO) 서비스를 제공하는 데 사용됩니다. SSO는 사용자가 한 번의 로그인으로 여러 시스템이나 애플리케이션에 접근할 수 있게 해 주는 기능입니다.
SAML은 크게 세 가지 주요 구성요소로 이루어져 있습니다:
  1. 얼설션(Assertion): 사용자의 인증 정보, 속성 정보(예: 이메일, 이름 등), 권한 부여에 대한 정보를 담고 있습니다. 이 정보는 SAML 프로토콜을 통해 교환됩니다.
  1. 프로바이더(Provider): 두 종류의 프로바이더가 있습니다.
      • 아이덴티티 프로바이더(Identity Provider, IdP): 사용자의 인증을 담당하며, 사용자 정보를 가지고 얼설션을 생성합니다.
      • 서비스 프로바이더(Service Provider, SP): 사용자가 접근하려는 서비스로, IdP로부터 얼설션을 받아 사용자가 누구인지와 어떤 권한이 있는지를 판단합니다.
  1. 프로토콜(Protocol): 사용자 인증 및 데이터 교환을 위한 규칙과 절차를 정의합니다. 예를 들어, IdP와 SP 사이에서 얼설션을 안전하게 전송하는 방법 등이 포함됩니다.

AccessToken

AccessToken은 사용자가 인증 서버로부터 인증(로그인)을 성공적으로 완료한 후 받는 자격 증명입니다. 이 토큰은 사용자가 서버에 대해 자신의 정체성을 증명하고 서비스에 접근할 수 있는 권한을 부여받은 것을 나타냅니다.
AccessToken의 주요 목적은 보안을 유지하면서 사용자의 세션을 효율적으로 관리하는 것입니다. 사용자가 로그인을 완료하면, 서버는 AccessToken을 발급하고, 이후 사용자는 이 토큰을 사용하여 자신이 인증된 사용자임을 증명하고 추가적인 서비스나 데이터에 접근할 수 있습니다.

AccessToken의 특징:

  1. 제한된 유효 시간: AccessToken은 보통 짧은 유효 시간을 가집니다. 이는 보안을 강화하기 위해 설계된 것으로, 토큰이 도난당하거나 노출되더라도 제한된 시간 동안만 유효합니다.
  1. 접근 권한 부여: 토큰은 사용자가 접근할 수 있는 서비스나 리소스의 범위를 정의합니다. 예를 들어, 어떤 API 엔드포인트에 요청을 보낼 수 있는지 결정합니다.
  1. 서버 부하 감소: 서버는 사용자의 세션 정보를 유지할 필요 없이 토큰만 검증함으로써 리소스를 효율적으로 사용할 수 있습니다.
AccessToken은 일반적으로 OAuth 2.0, OpenID Connect 같은 인증 프레임워크에서 사용되며, JWT 형식으로 발급될 수 있습니다. 이 토큰은 HTTP 요청의 헤더에 포함되어 서버로 전송되며, 서버는 이를 검증하여 요청이 유효한지 판단합니다.

SSO

SSO(Single Sign-On, 싱글 사인온)는 사용자가 하나의 로그인 절차를 통해 여러 시스템이나 애플리케이션에 접근할 수 있게 해 주는 인증 과정입니다. 이 기술은 주로 대기업이나 교육 기관과 같이 다수의 다양한 서비스를 제공하는 조직에서 사용자 편의성을 높이고, 보안 관리를 효율적으로 수행하기 위해 널리 사용됩니다.

OIDC

OpenID Connect (OIDC)는 인터넷에서 사용자 인증을 위한 오픈 표준 프로토콜입니다. OIDC는 OAuth 2.0 프로토콜을 기반으로 하며, 사용자의 인증 정보를 안전하게 교환할 수 있도록 확장된 기능을 제공합니다. 주로 웹, 모바일, 그리고 다양한 종류의 어플리케이션에서 사용자의 인증을 관리하는 데 사용됩니다.

OIDC의 주요 특징:

  1. 인증과 인가 통합: OAuth 2.0이 제공하는 인가(authorization) 기능에 추가하여, OIDC는 사용자의 신원을 확인하는 인증(authentication) 기능을 제공합니다. 이는 사용자가 누구인지 뿐만 아니라, 어떤 권한을 가지고 있는지도 확인할 수 있게 해줍니다.
  1. ID 토큰: OIDC에서는 인증 후 사용자 정보를 담은 ID 토큰을 발급받습니다. 이 토큰은 JWT (JSON Web Token) 형식으로 제공되며, 사용자의 프로필 정보, 인증 시간, 토큰의 유효성 등이 포함됩니다.
  1. 세션 관리: OIDC는 사용자가 로그인하고 있는 동안의 세션을 관리할 수 있는 메커니즘을 제공합니다. 이를 통해 사용자가 다른 탭이나 애플리케이션에서 로그인 상태를 유지할 수 있습니다.
  1. 표준 기반 보안: OIDC는 인증 정보를 교환할 때 HTTPS와 같은 보안 연결을 사용하여 데이터의 안전성을 보장합니다. 또한, 암호화와 디지털 서명을 통해 데이터의 무결성과 신뢰성을 확보합니다.

Authentication

인증
 

Cookie

쿠키(Cookie)는 웹사이트가 사용자의 웹 브라우저에 저장하는 작은 텍스트 파일입니다. 이를 통해 웹사이트는 사용자의 세션 정보나 개인화 설정과 같은 데이터를 저장할 수 있으며, 사용자가 다시 사이트를 방문할 때 이 정보를 읽어 사용자에게 맞춤화된 경험을 제공할 수 있습니다.

쿠키의 주요 특징:

  1. 상태 정보 유지: 웹은 기본적으로 상태를 유지하지 않는 구조입니다. 쿠키를 통해 서버는 사용자의 이전 활동(예: 로그인 상태, 장바구니에 담긴 상품 등)을 기억하고 다음 방문 때 이 정보를 활용할 수 있습니다.
  1. 세션 관리: 로그인, 장바구니, 게임 점수 등 사용자의 세션 정보를 저장하는 데 사용됩니다.
  1. 개인화: 사용자의 선호도나 행동 패턴을 저장하여 맞춤형 콘텐츠나 광고를 제공합니다.
  1. 트래킹: 사용자의 웹사이트 방문 행동을 추적하여 웹사이트 사용성 개선, 마케팅 전략 수립 등에 활용됩니다.

쿠키의 종류:

  1. 세션 쿠키 (Session Cookies): 브라우저가 열려 있는 동안에만 존재하며, 브라우저를 닫으면 자동으로 삭제됩니다. 일시적인 데이터 저장에 사용됩니다.
  1. 영구 쿠키 (Persistent Cookies): 브라우저를 닫아도 삭제되지 않고, 설정된 만료 기간이 지날 때까지 남아 있습니다. 사용자의 장기적인 선호도를 기억하는 데 사용됩니다.
  1. 써드파티 쿠키 (Third-party Cookies): 현재 방문 중인 웹사이트가 아닌 다른 측의 서버에서 생성되는 쿠키입니다. 주로 광고 네트워크에서 사용자의 행동을 추적하고 맞춤형 광고를 제공하는 데 사용됩니다.
웹 개발자는 쿠키를 활용하여 사용자 경험을 향상시키고, 사용자 세션을 효율적으로 관리할 수 있습니다. 하지만, 개인 정보 보호와 관련하여 사용자의 동의를 받는 것이 중요하며, 쿠키 사용에 대한 명확한 정보를 제공해야 합니다.

Refresh Token

Refresh Token은 웹 애플리케이션에서 사용자의 인증 상태를 유지 관리하는 데 사용되는 토큰 중 하나로, AccessToken과 함께 발급되며, AccessToken이 만료된 후에도 사용자가 다시 로그인하지 않고 새로운 AccessToken을 받을 수 있게 해 줍니다. 이는 보안과 사용 편의성을 동시에 증가시키는 중요한 메커니즘입니다.

Refresh Token의 주요 기능:

  1. 장기 인증 유지: 사용자가 자주 로그인해야 하는 번거로움을 줄여줍니다. AccessToken이 만료되더라도, Refresh Token을 사용하여 새로운 AccessToken을 발급받을 수 있습니다.
  1. 보안 강화: AccessToken은 비교적 짧은 시간 동안만 유효하며, 만료가 잦기 때문에 노출될 위험이 상대적으로 낮습니다. Refresh Token은 보다 민감하게 다루어지며, 일반적으로 더 안전하게 저장됩니다.
  1. 접근 토큰과 분리된 관리: Refresh Token은 AccessToken과 별도로 관리되며, 일반적으로 AccessToken보다 더 긴 수명을 가집니다. 이를 통해 시스템은 인증 상태를 더 장기간 유지할 수 있습니다.

MAC

규칙 기반(Rule-Based) 접근통제 정책으로, 객체에 포함된 정보의 허용 등급과 접근 정보에 대하여 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한하는 방법이다.

RBAC

중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제한하는 방법이다.

DAC

신분 기반(Identity-Based) 접근통제 정책으로, 주체나 그룹의 신분에 근거하여 객체에 대한 접근을 제한하는 방법이다.
 

ATM(Asynchronous Transfer Mode)

  • 자료를 일정한 크기로 정하여 순서대로 전송하는 자료의 전송 방식이다.
  • 셀이라 부르는 고정 길이 패킷을 이용하여 처리가 단순하고 고속망에 적합하며, 연속적으로 셀을 보낼 때 다중화를 하지 않고 셀단위로 동기가 이루어지지만 경우에 따라 동기식 시간 분할 다중화를 사용하기도 한다.
  • 가상 채널 (Virtual Channel) 기반의 연결 지향 서비스로 셀이라 부르는 고정 길이(53바이트) 패킷을 사용하며 통계적 다중화 방식을 이용한다.
 

NAT(Network Address Transformation)

IP 패킷에서 외부의 공인 IP주소와 포트 주소에 해당하는 내부 IP주소를 재기록하여 라우터를 통해 네트워크 트래픽을 주고받는 기술
 

Equivalence Partitioning

  • 시스템이나 시스템 구성요소(component) 또는 소프트웨어 프로그램의 입력값과 출력값이 특정 그룹으로 분류되며, 분류된 그룹내의 값들이 시스템에 의해 동일하게 취급된다는 특성을 이용하여 시험하는 기법
  • 유사한 입력값들이 시스템을 거치면서 유사한 답변이 나온다는 것을 가정하여 테스트
  • 하나의 값은 그 분할 내 모든 값을 대표하는 것으로 간주하는 기법
  • 모든 입력 값을 시험할 필요가 없게 하여 시험을 효율적으로 수행하도록 지원
  • 일반적으로 경계값 분석기법(boundary value analysis)과 함께 테스트 케이스 도출하는데 사용
 

클라우드 유형

IaaS

IaaS는 가장 기본적인 클라우드 서비스 모델로, 가상화된 컴퓨팅 자원을 인터넷을 통해 제공합니다. 이 모델에서 사용자는 가상 서버, 스토리지, 네트워크 등의 인프라를 임대하여 사용할 수 있습니다. 사용자는 운영 체제나 필요한 소프트웨어를 자유롭게 설치하고 관리할 수 있으며, 클라우드 제공업체는 하드웨어 유지 관리를 담당합니다.

SaaS

PaaS는 개발자가 애플리케이션을 개발하고 배포할 수 있는 플랫폼과 도구를 제공합니다. 이 서비스는 개발에 필요한 환경(하드웨어, 소프트웨어 개발 키트, 프레임워크 등)을 모두 포함하므로, 개발자는 코드 작성과 데이터 관리에 집중할 수 있습니다. 서버, 저장 공간, 네트워킹 및 데이터베이스 관리는 클라우드 제공업체가 담당합니다.

PaaS

SaaS는 인터넷을 통해 애플리케이션을 제공하는 서비스 모델입니다. 사용자는 소프트웨어를 직접 설치하거나 유지보수할 필요 없이 웹 브라우저를 통해 액세스할 수 있습니다. SaaS 제공업체는 애플리케이션의 호스팅, 유지 관리 및 보안 업데이트를 포함한 모든 것을 관리합니다. 사용자는 주로 구독 형태로 서비스를 이용하며, 사무용 소프트웨어, 이메일, 협업 도구 등 다양한 애플리케이션을 사용할 수 있습니다.

참조 무결성

  • 관계 데이터베이스 관계 모델에서 2개의 관련 있던 관계 변수(테이블) 간의 일관성(데이터 무결성)을 말한다.
  • 종종 기본 키 또는 키가 아닌 후보 키와 외래 키의 조합으로 강제 적용된다.
  • 외래 키가 선언된 관계 변수의 외래 키를 구성하는 속성(열)의 값은 그 관계 변수의 부모가 되는 관계 변수의 기본 키 값 또는 기본 키가 아닌 후보 키 값으로 존재해야 한다.
 

템퍼 프루핑(Tamper proofing)

  • 소프트웨어에서 워터마크 삭제 등과 같이 소프트웨어가 불법으로 변경(unauthorized modifications)되었을 경우, 그 소프트웨어가 정상 수행되지 않게 하는 기법이다.
  • 소프트웨어 변조 공격을 방어하기 위해 프로그램에 변조검증코드(tamper-proofing code)를 삽입하는 것도 한 방법으로, 변조검증코드의 용도는 첫째 프로그램이 변경되었는지를 탐지하는 것이고, 둘째는 변조가 탐지되었다면 프로그램이 실행되지 않게 한다.
  • 소프트웨어의 위변조 방지 역공학 기술의 일종으로 디지털 콘텐츠의 관련 산업이나 전자상거래 또는 보호해야 할 소프트웨어가 있는 다양한 산업 분야에 적용된다.
 

EAC

💡
프로젝트, 시스템, 또는 기술 구현의 예상 연간 비용을 의미합니다. IT 프로젝트 관리나 시스템 유지 관리에서 비용 계획과 분석을 할 때 자주 사용됩니다.

FEC

송신측이 전송할 문자나 프레임에 부가적 정보(Redundancy)를 첨가하여 전송하고 수신측이 이 부가적 정보를 이용하여 에러검출 및 에러정정을 하는 방식이다.

Hamming

Code는 데이터 전송시 1 비트의 에러를 정정할 수 있는, 오류정정부호의 일종으로 미국의 Bell 연구소의 Hamming에 의해 고안되었다. 선형블록부호 및 순회부호에 속에 속한다.

CRC

네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식을 말한다.

PDS

Personal Data Store는 사용자가 자신의 데이터를 중앙 집중식 클라우드 서비스가 아닌, 개인의 제어 하에 보관할 수 있는 시스템 또는 서비스를 의미합니다. 이 개념은 데이터 소유권과 프라이버시 보호에 큰 중점을 둡니다. 사용자는 자신의 데이터를 관리하고, 어떻게 공유될지를 직접 결정할 수 있습니다.

Parity

데이터가 저장장치 내의 한 장소에서 다른 장소로 이동되거나, 컴퓨터들간에 전송될 때, 데이터가 유실 또는 손상되었는지 여부를 점검하는 기술과 관련된 용어이다.

BEC

공격자가 전자 메일을 사용하여 상대방이 금전을 보내거나 기밀 회사 정보를 누설하도록 유도하는 사이버 범죄의 일종이다. 공격자는 신뢰할 수 있는 인물로 가장한 다음 가짜 청구서의 지불을 요청하거나 다른 사기에서 사용할 중요한 데이터를 요구한다.
 

대칭키 비대칭키

대칭키 암호화 (Symmetric-key Encryption)

  • 대칭키 암호화는 같은 키를 암호화와 복호화에 모두 사용합니다.
  • 키 관리가 비교적 단순하며, 암호화 및 복호화 속도가 빠른 장점이 있습니다.
  • 그러나 키를 안전하게 교환하는 것이 중요한데, 키가 노출되면 암호화된 데이터의 보안이 위협받을 수 있습니다.
  • 예를 들어, AES(Advanced Encryption Standard)가 대칭키 암호화 방식에 해당합니다.

비대칭키 암호화 (Asymmetric-key Encryption)

  • 비대칭키 암호화는 암호화에 사용하는 공개키(Public Key)와 복호화에 사용하는 비밀키(Private Key) 두 개의 키를 사용합니다. 두 키는 서로 수학적으로 연관되어 있지만, 비밀키로부터 공개키를 유도하는 것은 계산상 불가능에 가깝습니다.
  • 공개키는 누구에게나 제공할 수 있으나, 비밀키는 사용자만이 가지고 있어야 합니다.
  • 대칭키 암호화에 비해 계산 속도는 느리지만, 키 교환 문제를 보다 안전하게 해결할 수 있습니다.
  • 예를 들어, RSA(Rivest-Shamir-Adleman) 암호화 방식이 비대칭키 암호화에 해당합니다.
 
💡
핸드셰이크 동안에 클라이언트와 서버는 서로 안전하게 대칭키를 교환하고, 이 대칭키를 통해 세션 동안의 모든 데이터를 암호화하여 통신합니다. 비대칭키는 대칭키를 교환하는 초기 단계에서만 사용되고, 그 후로는 더 빠른 대칭키 암호화 방식이 사용됩니다. 이 방식은 보안이 중요한 웹 트래픽 보호에 필수적이며, HTTPS 통신에서 흔히 볼 수 있습니다.

스텁

  • 하향식 테스트 시 상위 모듈은 존재하나 하위 모듈이 없는 경우의 테스트를 위해 임시 제공되는 모듈이다.
  • 특별한 목적의 소프트웨어를 구현하는 것으로 컴포넌트를 개발하거나 테스트할 때 사용된다.
  • 서버-클라이언트 구조에서 서버만 구현된 상태로 테스트를 해보고 싶을때 단순히 값만 넘겨주는 가상의 클라이언트를 만들어서 테스트 할 수 있다.

드라이버

  • 상향식 테스트 시 상위 모듈 없이 하위 모듈이 존재할 때 하위 모듈 구동 시 자료 입출력을 제어하기 위한 제어 모듈(소프트웨어)이다.
  • 서버-클라이언트 구조에서 클라이언트만 구현된 상태로 테스트를 해보고 싶을때 접속 인증 등의 간단한 기능만 하는 가상의 서버를 만들어서 테스트 할 수 있다.
 

AJAX

AJAX(Asynchronous JavaScript and XML)는 웹 페이지에서 서버에 비동기적으로 데이터를 교환하고, 웹 페이지의 일부만을 업데이트하기 위해 사용되는 프로그래밍 기법입니다. AJAX를 사용하면, 전체 페이지를 새로 고침하지 않고도 페이지의 특정 부분만을 업데이트할 수 있어 사용자 경험이 향상됩니다.

가상회선, 데이터그램

가상회선 (Virtual Circuit)

가상회선은 통신하는 두 지점 간에 논리적인 경로를 설정하고, 데이터가 이 경로를 따라 전송되는 방식입니다. 이 경로는 데이터 전송이 시작되기 전에 설정되며, 전송이 끝날 때까지 유지됩니다. 가상회선은 실제 물리적 회선을 사용하는 것처럼 동작하지만, 물리적인 회선을 공유하는 여러 가상회선들이 존재할 수 있습니다.

데이터그램 (Datagram)

데이터그램 방식에서는 각각의 패킷이 독립적으로 전송됩니다. 각 패킷은 출발지와 목적지 주소를 가지고 있으며, 네트워크 내에서 독립적인 경로를 통해 전송됩니다. 패킷들이 서로 다른 경로를 통해 갈 수 있기 때문에, 같은 메시지의 패킷들은 다른 순서로 도착할 수 있습니다.

웜, 트로이 목마, 바이러스

 

ICMP

 

릴레이션

열 = 세로 = 차수 = 속성 = 애드리뷰트
행 = 가로 = 기수 = 튜플 = 카디널리티
 

XSS

XSS는 웹 사이트의 보안 취약점 중 하나로, 악의적인 스크립트가 웹 페이지에 삽입되어 사용자의 브라우저에서 실행될 때 발생합니다. 이 공격은 주로 사용자가 입력한 데이터를 적절히 검증하거나 이스케이프 처리하지 않은 웹 애플리케이션에서 자주 발생합니다. 공격자는 XSS 취약점을 이용해 사용자의 세션 쿠키를 탈취하거나, 피싱 공격을 시도하거나, 사용자의 계정을 제어하는 등 다양한 악의적 행위를 할 수 있습니다.

CSRF

SRF는 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(예: 비밀번호 변경, 전송 요청 등)를 웹 애플리케이션에 요청하게 만드는 공격입니다. 이 공격은 사용자가 이미 로그인한 상태에서 공격자가 준비한 악의적인 웹 페이지나 링크를 통해 발생합니다.

외부, 내부, 개념 스키마

1. 외부 스키마 (External Schema)

  • 정의: 외부 스키마는 데이터베이스 사용자의 관점을 기술합니다. 사용자나 응용 프로그램이 데이터베이스와 상호작용하는 방식을 정의하는 스키마로, 사용자 인터페이스를 설계할 때 중요하게 고려됩니다.
  • 특징: 이 스키마는 사용자가 접근할 수 있는 데이터베이스의 부분 뷰를 제공합니다. 다양한 사용자 그룹이 각기 다른 외부 스키마를 가질 수 있으며, 이는 각 사용자가 필요로 하는 데이터만을 보여주어 보안성을 높이고 복잡성을 줄입니다.
  • 예시: 금융 기관에서 고객은 계좌 정보만을, 직원은 고객 정보와 거래 내역을, 관리자는 전체적인 금융 데이터에 접근할 수 있는 여러 외부 스키마가 존재할 수 있습니다.

2. 개념 스키마 (Conceptual Schema)

  • 정의: 개념 스키마는 전체 데이터베이스의 구조와 정책을 모두 포함하는 중앙의 스키마로, 모든 응용 프로그램과 사용자에게 공통적인 관점을 제공합니다.
  • 특징: 이 스키마는 데이터베이스의 논리적 구조를 정의하며, 데이터베이스의 모든 관계, 제약 조건, 그리고 인터레이션을 포함합니다. 데이터베이스의 구조를 변경하지 않고도 다양한 외부 스키마를 지원할 수 있습니다.
  • 예시: 개념 스키마는 회사의 전체적인 자원, 부서, 직원 관계 등을 정의하며, 이는 회사 데이터베이스의 중심적인 구조가 됩니다.

3. 내부 스키마 (Internal Schema)

  • 정의: 내부 스키마는 데이터베이스의 물리적 저장 구조를 설명합니다. 이는 데이터가 실제로 저장되는 방식에 대한 스키마로, 데이터베이스의 물리적인 저장 세부 사항을 포함합니다.
  • 특징: 내부 스키마는 데이터의 물리적 저장, 인덱싱 방법, 데이터 액세스 경로 등을 정의합니다. 이 스키마는 데이터베이스의 성능 최적화에 중요한 역할을 합니다.
  • 예시: 내부 스키마는 하드 드라이브에 저장된 데이터의 블록 구조, 인덱스 구조, 해시 테이블 등을 포함할 수 있습니다.
이 세 가지 스키마는 서로 다른 추상화 수준을 제공하며, 데이터베이스 설계 및 운영에서 중요한 역할

사회공학

보안학적 측면에서 기술적인 방법이 아닌 사람들간의 기본적인 신뢰를 기반으로 사람을 속려 비밀 정보를 획득하는 기법이다

다크 데이터

빅데이터(Big Data)와 비슷하면서도 구조화돼 있지 않고, 더는 사용하지 않는 ‘죽은’ 데이터를 의미한다. 일반적으로 정보를 수집해 저장한 이후 분석이나 특별한 목적을 위해 활용하는 데이터가 아니며, 저장공간만 차지하고 이러한 이유로 심각한 보안 위험을 초래할 수 있다.
 

SIEM

머신러닝 기술을 이용하여 IT 시스템에서 발생하는 대량의 로그를 통합관리 및 분석하여 사전에 위협에 대응하는 보안 솔루션이다. 서로 다른 기종의 보안솔루션 로그 및 이벤트를 중앙에서 통합 수집하여 분석할 수 있으며, 네트워크 상태의 monitoring 및 이상징후를 미리 감지할 수 있다.

형상관리

소프트웨어 개발 프로세스 각 단계에서 소프트웨어의 변경점을 체계적으로 관리하는 일련의 활동
  • git
  • CVS
  • SVN
 

Trustzone

프로세서(processor) 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 ARM사에서 개발한 하드웨어 기반의 보안 기술로 프로세서(processor) 안에 독립적인 보안 구역을 별도로 하여, 중요한 정보를 보호하는 하드웨어 기반의 보안 기술이다.

typosquatting

사용자들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 유사한 유명 도메인을 미리 등록하는 일로 URL 하이재킹(hijacking)이라고도 한다.
 
 

스케줄링

  • FCFS: 먼저 들어온 프로세스 먼저 처리
  • SJF: 처리시간이 짧은 프로세스부터 처리
  • HRN: 짧은 작업시간이면서 대기시간이 긴 프로세스부터 처리
  • RR: 먼저 들어온 순서대로 일정 시간만큼 처리
  • SRT: 남은 시간이 짧은 프로세스부터 처리
  • MLQ: 우선순위별로 큐를 분리하여 다양한 스케줄링 적용
 

UML

UML은 통합 모델링 언어로써, 시스템을 모델로 표현해주는 대표적인 모델링 언어이다.
구성 요소로는 사물, 관계, 다이어그램으로 이루어져 있으며, 구조 다이어그램 중, 클래스 다이어그램은 시스템에서 사용되는 객체 타입을 정의하고, 그들 간의 존재하는 정적인 관계를 다양한 방식으로 표현한 다이어그램이다. 또한 UML 모델링에서 인터페이스는 클래스와 같은 기타 모델 요소 또는 컴포넌트가 구현해야 하는 오퍼레이션 세트를 정의하는 모델 요소이다.
 

E-R 다이어그램

notion image
 
A 개체 타입
B 약한 개체 타입
C 관계 타입
D 약한 관계 타입
E 속성
F 키 속성
G 다중값 속성
 

관계대수

절차적
 

관계해석

비절차적
 

IDEA

Xuejia Lai와 James Messey 가 만든 알고리즘으로 PES(Proposed Encryption Standard)에서 IPES(Improved PES)로 변경되었다가, 1991년에 제작된 블록 암호 알고리즘으로 현재 국제 데이터 암호화 알고리즘으로 사용되고 있다. 64비트 블록을 128비트의 key를 이용하여 8개의 라운드로 구성되어 있다.

SKIPJACK

미국의 NSA에서 개발한 Clipper 칩에 내장되는 블록 알고리즘이다. 전화기와 같은 음성을 암호화 하는데 주로 사용되며 64비트 입출력에 80비트의 키 총 32라운드를 가진다.
 

VPN

인터넷을 통해 디바이스 간에 사설 네트워크 연결을 생성하며, 퍼블릭 네트워크를 통해 데이터를 안전하게 익명으로 전송하는 데 사용된다. 또한 사용자 IP 주소를 마스킹하고 데이터를 암호화하여 수신 권한이 없는 사람이 읽을 수 없도록 한다.
 

Regression 회귀 테스트

오류를 제거하거나 수정한 시스템이나 시스템 컴포넌트 또는 프로그램이 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지를 확인하는 일종의 반복 시험이다. 반복적인 시험이 필요한 이유는 오류가 제거·수정되는 상당수의 시스템이 의도치 않았던 오동작이나 새로운 형태의 오류를 일으키기 때문이다. 결국, 수정·변경된 시스템이나 시스템 컴포넌트 또는 프로그램이 명세된 요구 사항을 충족시키는지를 확인하는 시험의 한 형태이다.
 

프로토콜

IGP: Interior Gateway Protocol, 동일 그룹 내 라우팅 정보를 교환할 때 사용하는 프로토콜
EGP: Exterior Gateway routing Protocol, 다른 그룹과 라우팅 정보를 교환하는 프로토콜
OSPF: Open Shortest Path First, IP 네트워크를 위해 개발되고 SPF(Shortest Path First) 알고리즘을 기반으로 하는 링크 상태 라우팅 프로토콜
BGP: Border Gateway Protocol, 서로 다른 조직의 네트워크를 연결할 때 사용하는 라우팅 프로토콜
 

테스트 기법

경계값 분석

 
 

AAA

  • 인증: 시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증
  • 인가: 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용
  • 계정 정리: 사용자의 자원(시간,정보,위치 등)에 대한 사용 정보를 수집
 

ARP

ARP(Access Resolution Protocol, 주소 결정 프로토콜)는 인터넷 프로토콜 스위트의 일부로, 네트워크 상에서 IP 주소를 해당하는 MAC(Media Access Control) 주소로 매핑하는 데 사용됩니다. ARP는 주로 로컬 네트워크 내에서 통신하는 기기들 사이에서 필요하며, IP 네트워크 계층 주소를 데이터 링크 계층 주소로 변환하는 데 중요한 역할을 합니다.
 

OSI 7 Layer

  1. 물리 - 기계적, 전기적 특성. X.21, 리피터, 허브
  1. 데이터 링크 - 흐름 제어, 오류 검출과 회복, HDLC, MAC, 랜카드, 브리지, 스위치
  1. 네트워크 - 경로 설정(Routing), 트래픽 제어, 패킷, X.25, IP, 라우터
  1. 전송 - 다중화, 오류 제어, 흐름 제어, TCP, UDP, 게이트웨이
  1. 세션 - 송수신 측 간의 관련성을 유지, 대화 제어
  1. 표현 - 데이터 암호화, 데이터 압축, 형식 변환
  1. 응용 - 파일 전송, 전자 사서함(메일), 정보 교환, 가상 터미널
 

테스트 기법

동등분할 테스트: 도메인 별로 유무효 그룹핑
경계값 분석 테스트: 등가분할 후 경계 값 포함
결정 테이블 테스트: 조건과 행위 모두 조합
상태 전이 테스트: 상태 전이되는 경우의 수 수행
유스케이스 테스트: 프로세스 흐름 기반 명세화
분류 트리 테스트: SW 부분을 트리구조로 분석
페어와이즈 테스트: 값을 최소한 한 번씩 조합
원인-결과 그래프 테스트: 입출력 조건간 논리적 관계 분석 후 도출
비교 테스트:
 

IPC

공유메모리, 소켓, 세마포어, 메세지 큐 등 프로세스 간 통신하는 기술

스니핑

네트워크상에 흘러다니는 트레픽을 훔쳐보는 행위. 주로 자신에게 와야할 정보가 아닌 정보를 자신이 받도록 조작하는 행위
 

Ad-hoc

네트워크 장치를 필요로하지 않고 네트워크 토폴로지가 동적으로 변화되는 특징이 있으며 응용 분야로는 긴급 구조, 긴급 회의, 전쟁터에서의 군사 네트워크에 활용되는 네트워크
 

References::

Loading Comments...