5 (3) 암호알고리즘 / 코드오류 / 캡슐화 / API 오용 취약점 정리

2022. 2. 10. 20:55·Computer Science/정보처리기사
728x90

1. 암호 알고리즘 (Encryption Algorithm) : 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법

2. 암호 알고리즘 방식

1) 양방향 방식 

a. 대칭키 암호 방식

- 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘이다. 

블록 암호 방식 긴 평문을 암호화하기 위해 고정 길이의 블록을 암호화하는 블록 암호 알고리즘을 반복하는 방법
ex) DES, AES, SEED
스트림 암호 방식  매우 긴 주기의 난수열을 발생시켜 평문과 더불어 암호문을 생성하는 방식 
ex) RC4

 

b. 비대칭 키 암호 방식 (= 공개키 암호 방식)

- 사전에 개인키를 나눠 가지지 않은 사용자들이 안전하게 통신하는 방식이다. 

- 공개키로 암호화된 메세지는 반드시 비밀키로 복호화해야 한다. 

- 비대칭 키 암호방식에서는 공개키와 비밀키가 존재하며, 공개키는 누구나 알 수 있지만, 그에 대응하는 비밀키는 키의 소유자만이 알 수 있어야 한다. (공개키는 공개적으로 배포가능)

ex ) RSA(소인수 분해 알고리즘 이용), ECC(타원곡선 군에서의 이산대수 문제에 기반), Elgamal, Diffie-Hellman(최초의 공개키 알고리즘, 유한 필드 내에서 이산대수의 계산이 어려움)

2) 일방향 암호 방식 (해시 암호 방식)

임의 길이의 정보를 입력받아, 고정된 길이의 암호를 출력하는 암호 방식이다. 

해시 암호화 알고리즘이 적용된 정보는 복호화가 불가능하다. 

MAC(키를 사용하는 메시지 인증 코드로 메시지의 무결성과 송신자의 인증 보장), MDC(키를 사용하지 않는 변경 감지 코드로 메세지의 무결성 보장)

 

2. 코드 오류 : 소프트웨어 구현 단계에서 개발자가 흔하게 실수하는 오류를 예방하기 위한 점검 목록

  • 코드 오류 취약점 

널포인터 역참조 / 정수를 문자로 변환 / 부적절한 자원 해제 / 초기화 되지 않은 변수 사용

 

3. 캡슐화 : 외부에 은닉이 필요한 중요한 데이터와 필요한 기능성을 불충분하게 캡슐화했을 때 인가되지 않은 사용자에게 데이터 유출, 권한 문제 등이 발생할 수 있는 보안 취약점 예방을 위한 보안 검증 항목들

  • 캡슐화 취약점

잘못된 세션에 의한 데이터 정보 노출 / 제거되지 않고 남은 디버그 코드 / 민감한 데이터를 가진 내부 클래스 사용 / 시스템 데이터 정보 노출 

 

4. API 오용 

서비스에서 제공되는 이용에 반하는 방법. API를 이용하거나 보안에 취약한 API를 오용하여 발생할 수 있는 보안 취약점 예방을 위한 보안 검증 항목들 

  • API 오용 취약점 

DNS Lookup에 의존한 보안 결정 / 위험하다고 알려진 함수 사용 / Null 매개변수 미검사 

728x90

'Computer Science > 정보처리기사' 카테고리의 다른 글

[정보처리기사] 오답노트 2  (0) 2022.02.20
[정보처리기사] 오답노트  (0) 2022.02.14
5 (3) 소프트웨어 개발 보안 구축 ( XSS/CSRF/SQL삽입 )  (0) 2022.02.10
빅데이터 기술의 종류, NoSQL 개념  (0) 2022.02.02
5(2) 클라우드 컴퓨팅 , 스토리지 시스템 DAS, NAS, SAN  (0) 2022.02.02
'Computer Science/정보처리기사' 카테고리의 다른 글
  • [정보처리기사] 오답노트 2
  • [정보처리기사] 오답노트
  • 5 (3) 소프트웨어 개발 보안 구축 ( XSS/CSRF/SQL삽입 )
  • 빅데이터 기술의 종류, NoSQL 개념
minjiwoo
minjiwoo
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
minji's engineering noteData Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
minjiwoo
minji's engineering note
minjiwoo
전체
오늘
어제
  • 분류 전체보기 (613)
    • Data Engineering (42)
      • Apache Spark (11)
      • Databricks & Delta Lake (9)
      • Airflow (3)
      • SQL (6)
      • Trouble Shooting (2)
      • Hadoop (2)
      • MLOps (1)
    • Cloud Engineering (104)
      • AWS (23)
      • Linux 🐧 (29)
      • Docker 🐳 (21)
      • Kubernetes ⚙️ (20)
      • Ansible (10)
    • Computer Science (87)
      • 네트워크 (9)
      • 운영체제 (25)
      • 정보처리기사 (48)
      • CS 기술 면접 스터디 (3)
    • Programming Languages (27)
      • Python (17)
      • C와 C++ (10)
    • Backend (5)
      • Django (2)
    • 프로젝트 (2)
      • 테크포임팩트 (2)
    • iOS (11)
      • 레이블러리 (2)
    • Algorithm (PS) (275)
      • LeetCode (6)
    • 개발일기 (30)
      • 내돈내산 후기🎮 (3)
      • 개발자 취준생 (5)
      • Today I Learned (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Hi there

인기 글

태그

  • Kubernetes
  • 코딩테스트
  • BFS
  • 클라우드
  • python
  • 카카오코딩테스트
  • 파이썬
  • SPARK
  • EC2
  • 데이터브릭스
  • 백준
  • dp
  • 운영체제
  • 데이터엔지니어
  • ansible
  • dfs
  • 리눅스
  • 쿠버네티스
  • docker
  • 프로그래머스
  • Leetcode
  • Swift
  • 알고리즘
  • 빅데이터
  • AWS
  • linux
  • 백트래킹
  • Databricks
  • 데이터엔지니어링
  • 스파크

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
minjiwoo
5 (3) 암호알고리즘 / 코드오류 / 캡슐화 / API 오용 취약점 정리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.