방구석 상상코딩

14. 인터페이스 기능 구현 본문

정보처리기사 실기

14. 인터페이스 기능 구현

구석탱 2022. 1. 21. 20:57

사전에 정의된 기능에 대한 구체적 분석

1. 송신 측에서 필요한 대상을 선택하여 수신 측에 데이터 전송

  • 대상자 선택 : DB에 저장된 인사 정보를 SQL로 선택하여 인터페이스 대상을 확인
  • 인터페이스 데이터 생성 : Json 또는 인터페이스 테이블 형식에 맞게 DB에 있는 정보 가공
  • 인터페이스 데이터 전송 요청 : 인터페이스 데이터를 생성 후 해당 데이터를 https에서 인터페이스 또는 수신 측으로 전송 요청

2. 필요 항목에 대해서 데이터 전달

  • 인터페이스 데이터 전송 : 수신지 주소에 REST 방식으로 전달될 수도 있으며 DB 커넥션을 이용하여 DB 프로시저, 트리거 등을 활용하여 전송
  • 인터페이스 데이터 수신 : 인터페이스 데이터를 수신한 후 데이터의 형식이 맞는지 점검, 각 규칙을 사전에 정의하고 이를 활용
  • 인터페이스 데이터 파싱 : 인터페이스 객체는 파서를 이용하여 파싱 하거나 인터페이스 테이블에서 선택
  • 인터페이스 데이터 검증 : 각 세부 데이터의 포맷과 논리적인 제약조건의 오류 검사
  • 후속 기능 수행 : 각 세부 데이터를 활용해서 수신 시스템에서 정의된 동작을 진행

3. 전달 후 수신 측으로부터 전달 여부에 대한 값을 반환

  • 인터페이스 수신 결과 생성, 전송 : 정상적으로 수신되면 참, 아니면 거짓의 반환 값을 Json 형태로 전송
  • 수신 측에서 처리한 인터페이스 결과 반환 : 수신 측에서 보낸 응답 제이슨을 통해 수행 여부를 확인하고 이를 화면상으로 표시

JSON (Javascript Object Notation)

JSON은 속성-값(Attribute-Value Pair) 쌍 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷

  • 숫자 (Number) : 기본 자료형의 수는 정수, 실수로 표현
  • 문자열 (String) : 항상 큰 따옴표로 묶어야 하며, 그 안에는 유니코드 문자열이 나열
  • 배열 (Array) : 배열은 대괄호로 표시, 배열의 각 요소는 기본 자료형이거나 배열, 객체이며 각 요소들은 쉼표로 구별되고 각 요소가 나타나는 순서에 의미가 있음
  • 객체 (Object) : 객체는 이름/값 쌍의 집합으로, 중괄호를 사용하며 이름은 문자열이기 때문에 반드시 따옴표를 사용하고 값은 기본 자료형을 사용한다. 각 쌍들은 쉼표로 구별되고, 각 쌍이 나오는 순서에는 의미가 없음

XML (Extensible Markup Language)

XML은 HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어

송 수신 시스템 간 데이터 연계의 편의성을 위해서 전송되는 데이터 구조를 동일한 형태로 정의하고, 인간과 기계가 모두 이해할 수 있는 텍스트 형태로 마크업 포맷을 정의하기 위한 매타 언어. 사용자가 직접 문서의 태그를 정의할 수 있으며, 다른 사용자가 정의한 태그를 사용할 수 있음

AJAX (Asynchronous Javascript And XML)의 주요 기술

주요 기술 설명
XMLHttpRequest 웹 브라우저와 웹 서버 간에 메서드가 데이터를 전송하는 객체 폼의 API
비동기 통신을 담당하는 자바스크립트 객체
JavaScript 객체 기반의 스크립트 프로그래밍 언어
웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능 소유
XML
(Entensible Markup
Language)
HTML의 단점을 보완한 인터넷 언어로서 SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어
DOM
(Document Object Model)
XML 문서를 트리 구조의 형태로 접근할 수 있게 해주는 API
플랫폼/언어 중립적으로 구조화된 문서를 표현하는 객체지향 모델
XSLT
(Entensible Stylesheet
Language Transformations)
XML 문서를 다른 XML 문서로 변환하는 데 사용하는 XML 기반 언어
W3C에서 제정한 표준으로 XML 변환 언어를 사용하여 XML 문서로 바꿔주며, 탐색하기 위해 XPath를 사용
HTML
(HyperText Markup
Language)
인터넷 웹(WWW) 문서를 표현하는 표준화 된 마크업 언어
CSS
(Cascading Stytle Sheets)
마크업 언어가 실제 표시되는 방법을 기술하는 언어
운영체제나 사용 프로그램과 관계없이 글자 크기, 글자체, 줄 간격, 색상 등을 자유롭게 선택할 수 있는 스타일 시트

REST (Representational State Transfer)

웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처

REST는 크게 리소스(자원), 메서드(처리), 메시지 3가지 요소로 구성

인터페이스 구현

1. 데이터 통신을 사용하는 인터페이스 구현

  • 인터페이스 객체를 생성하기 위해서 데이터베이스에 있는 정보를  SQL을 통하여 선택한 후 이를 JSON으로 생성
  • 송신 측에서 JSON으로 작성된 인터페이스 객체를  AJAX 기술을 이용하여 수신 측에 송신
  • 수신 측에서는 JSON 인터페이스 객체를 수신받고 이를 파싱 후 처리
  • 수신 측의 처리 결괏값은 송신 측에 True/False 값을 전달하여 인터페이스 성공 여부를 확인 전달

2. 인터페이스 개체(Entity)를 사용하는 인터페이스 구현

  • 인터페이스 이벤트 발생 시 인터페이스 테이블에 인터페이스 내용이 기록되도록 구현
  • 데이터 전송을 위해서 DB 커넥션(DB Connection)이 수신 측 인터페이스 테이블과 연계되도록 구현
  • 프로시저, 트리거, 배치작업 등의 방법을 통해서 수신 테이블로 데이터를 전송
    - 프로시저 (Procedure) : SQL을 이용해 생성된 데이터를 조작하는 프로그램으로 데이터베이스 내부에 저장되고 일정한 조건이 되면 자동으로 수행
    - 트리거(Trigger) : 특정 테이블에 삽입, 수정, 삭제 등의 변경 이벤트 발생 시 DBMS에서 자동 실행되도록 구현된 프로그램
    - 배치작업(Batch Job) : 실시간 작업의 반대 개념으로 일련의 작업을 하나의 작업 단위로 묶어서 일괄로 처리하는 작업

시큐어 코딩 가이드

적용대상 보안 악점 대응 방안
입력데이터
검증 및 표현
프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정 사용자 프로그램 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 기능 설계 및 구현
보안 기능 인증, 접근제어, 기밀성, 암호화, 권한관리 등의 부적절한 구현 인증, 접근통제, 권환관리, 비밀번호 등의 정책이 적절하게 반영되도록 설계 및 구현
시간 및 상태 거의 동시에 수행 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용, 블록문 내에서만 재귀 함수 호출
에러 처리 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함 에러 상황을 처리하지 않거나, 불충분하게 처리되어 중요 정보 유출 등 보안 약점 발생하지 않도록 시스템 설계 및 구현
코드 오류 개발자가 범할 수 있는 코딩 오류로 인해 유발 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거
캡슐화 가능서이 불충분한 캡슐화로 인해 인가 되지 않은 사용자에게 데이터 누출 디버거 코드 제거와 필수정보 외의 클래스 내 프라이빗 접근자 지정
API 오용 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API의 사용 개발 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용

* 스니핑 (Sniffing) : 공격 대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격 기법

데이터베이스 암호화 알고리즘

1. 대칭 키 암호화 알고리즘

암호화 알고리즘의 한 종류로 암/복호화에 같은 암호키를 쓰는 알고리즘

예 ) ARIA 128/192/256, SEED

 

2. 비대칭 키 암호화 알고리즘

공개키는 누구나 알 수 있지만, 그에 대응하는 비밀키는 키의 소유자만이 알 수 있도록, 공개키와 비밀키를 사용하는 알고리즘

예 ) RSA, ECC, ECDSA

 

3. 해시 암호화 알고리즘

해시값으로 원래 입력값을 찾아낼 수 없는 일방향성의 특성을 가진 알고리즘

예 ) SHA-256/384/512, HAS-160

데이터베이스 암호화 기법

1. API 방식

애플리케이션 레벨에서 암호 모듈(API)을 적용하는 애플리케이션 수정 방식으로, 애플리케이션 서버에 암/복호화, 정책 관리, 키 관리 등의 부하 발생

 

2. Plug-in 방식

암/복호화 모듈이 DB 서버에 설치된 방식으로, DB서버에 암/복호화, 정책 관리, 키 관리 등의 부하가 발생

 

3. TDE (Transparent Data Encryption) 방식

DB 서버의 DBMS 커널이 자체적으로 암/복호화 기능을 수행하는 방식으로 내장되어 있는 암호화 기능(TDE)을 이용

 

4. Hybrid 방식

API 방식과 Plug-in 방식을 결합하는 방식으로, DB 서버와 애플리케이션 서버로 부하 분산

중요 인터페이스 데이터의 암호화 전송 보안 기술

1. IPSec (IP Security)

  • IP 계층(3 계층)에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단 간(End Poing) 구간에 보안 서비스를 제공하는 터널링 프로토콜
  • 동작 모드는 전송(Transport) 모드와 터널(Tunnel) 모드가 있음
  • 주요 프로토콜은 AH, ESP, IKE(키 교환)가 있고, IPSec 정책에는 SPD, SAD가 있음

2. SSL/TLS

  • 전송계층(4 계층)과 응용계층(7 계층) 사이에서 클라이언트와 서버 간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
  • 인증 모드는 익명 모드, 서버인증 모드, 클라이언트-서버인증 모드가 있음
  • IPSec와는 다르게 클라이언트와 서버 간에 상호인증, 암호 방식에 대해 협상을 거치는 특징이 있음
  • 대칭 키 암호화, 공개키 암호화, 일방향 해시함수, 메시지 인증코드 등 특정 암호 기술에 의존하지 않고 다양한 암호기술 적용
  • Https://~ 표시 형식과 443 포트 이용

3. S-HTTP (Secure Hypertext Transfer protocol)

  • 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로서 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송
  • S-HTTP에서 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능
  • S-HTTP 서버 접속 시 shttp://URL 사용

'정보처리기사 실기' 카테고리의 다른 글

16. 프로그래밍 언어 활용  (0) 2022.01.22
15. 인터페이스 구현 검증  (0) 2022.01.21
13. 인터페이스 설계 확인  (0) 2022.01.20
12. 내외부 연계 모듈 구현  (0) 2022.01.19
11. 연계 메커니즘 구성  (0) 2022.01.19