[정보처리기사 실기] 5. 인터페이스 구현-Chapter 2. 인터페이스 기능 구현

Study/정보처리기사

[정보처리기사 실기] 5. 인터페이스 구현-Chapter 2. 인터페이스 기능 구현

tnddj1219 2022. 1. 12. 09:53
728x90

정리 내용은 [수제비 2020 정보처리기사 실기]책을 기반으로 작성하였습니다.

 

2020 수제비 정보처리기사 실기(1권+2권 합본세트)

NCS 반영! 출제기준으로 전면개편한 교재이다. NCS 기반 반영 문제(예상문제 340제, 단원종합문제 360제, 모의고사 100제, 2020년기출문제)를 수록하였다. 수제비는 합격만을 위한 다양한 학습 콘텐츠


1. 인터페이스 기능 구현 정의

모듈 간 세부 설계서 확인

컴포넌트 명세서: 컴포넌트 개요,내부 클래스의 동작,인터페이스를 통해 외부와 통신하는 명세 정의

인터페이스 명세서: 컴포넌트 명세서에 명시된 인터페이스 클래스의 세부적인 조건 및 기능을 명시한 명세서. 명칭, 사전/사후 조건, 인터페이스 데이터 및 인터페이스 완료 후 성공여부 반환하는 반환 값 등 정의

* 컴포넌트: 특정한 기능을 수행하기 위해 독립적으로 개발되어 보급되는 잘 정의된 인터페이스를 가지며 다른 부품과 조립되어 응용시스템을 구축하기 위해 사용되는 소프트웨어 프로그램

 

일관되고 정형화된 인터페이스 기능 정의
분석된 인터페이스의 기능, 데이터 표준, 모듈 설계 명세서를 통해 일관되고 정형화된 인터페이스 기능 정의

 

정의된 인터페이스 기능에 대한 정형화
정의된 인터페이스 기능을 표준화하고 사람들이 보기 쉽게 정형화
특정 하드웨어나 소프트웨어에 의존적이지 않게 작성하고, 가독성을 높이기 위해 프로세스 형태나 유스케이스 다이어그램의 형태로 작성

 

2. 인터페이스 기능 구현

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

기능 구현 정의 기능 분석결과
송신측에서 필요 대상을 선택하여 수신측에 데이터전송 대상자 선택 DB에 저장된 인사정보를 SQL로 선택하여 인터페이스 대상 확인
인터페이스 데이터 생성 JSON 또는 인터페이스 테이블 형식에 맞게 DB에 있는 정보 가공
인터페이스 데이터 전송 요청 인터페이스 데이터 생성 후 해당 데이터를 https에서 인터페이스 또는 수신 측으로 데이터 요청
필요 항목에 대해서 데이터 전달 인터페이스 데이터 전송 수신지 주소에 REST 방식으로 전달될 수 있으며 DB 커넥션을 이용하여 DB 프로시저, 트리거 등을 활용하여 전송
인터페이스 데이터 수신 인터페이스 데이터를 수신하고 데이터 형식이 맞는지 점검
각 규칙을 사전에 정의하고 이를 활용
인터페이스 데이터 파싱 인터페이스 객체를 파서를 이용하여 파싱을 하거나 인터페이스 테이블에서 선택
인터페이스 데이터 검증 각 세부 데이터의 포맷과 논리적인 제약조건의 오류 검사
후속 기능 수행 각 세부 데이터를 활용해서 수신 시스템에서 정의된 동작 진행
전달 후 수신 측으로부터 전달 여부에 대한 값을 반환 인터페이스 수신 결과 생성, 전송 정상적으로 수신되면 참, 아니면 거짓의 반환 값을 JSON 형태로 전송
수신 측에서 처리한 인터페이스 결과 반환 수신 측에서 보낸 응답 제이슨을 통해 수행여부를 확인하고 이를 화면상으로 표시

* JSON: 비동기 브라우저/서버 통신(AJAX)를 위해 속성-값 쌍, -값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하여 하는 개방형 표준 포멧
* REST:
웹과 같은 분산 하이퍼 미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메소드로 주고받는 웹 아키텍처

 

인터페이스 구현
데이터 통신을 사용하는 인터페이스 구현: 인터페이스 객체 생성 구현 / 인터페이스 객체 전송 후 전송 결과를 수신 측에서 반환 받도록 구현

인터페이스 개체를 사용하는 인터페이스 구현: 송수신 시스템 인터페이스 테이블이용

 

3. 인터페이스 예외 처리 방안

데이터 통신을 사용한 인터페이스에서 예외 처리 방법

 

송신 측에서 예외 처리 방법: AJAX 호출 후 반환 값을 받아 어떻게 처리할지를 호출하는 부분에서 사전 정의. 반환 값은 성공과 실패로 나뉘며 예외처리는 실패 시 발생

수신 측에서 예외 처리 방법: 수신 측에서 받은 JSON 객체를 처리 시에 try ~ catch 구문으로 이용하여 발생한 예외를 처리하고 이를 송신 측에 전달별도 예외 결과를 설정하지 않아도 에러 발생 시 에러 결과가 반환

* AJAX: 자바스크립트를 사용한 비동기 통신기술. 클라이언트와 서버간 XML 데이터를 주고 받는 기술

 

인터페이스 개체를 사용하는 인터페이스에서 예외 처리 방법

송신 인터페이스 테이블에서 예외 처리: 송신 인터페이스테이블의 예외유형에 따른 예외 코드와 원인을 함께 입력
송신 인터페이스 테이블에 프로시저,트리거 등을 통해 데이터 전송 시 발생하는 예외 유형을 정의하고 예외 원인을 함께 입력

수신 인터페이스 테이블에서 예외 처리: 수신 측에서 데이터가 없거나 잘못된 값을 읽을 경우 예외 발생예외 발생 시 사전에 정의된 예외 코드를 입력하고 예외 발생 사유와 함께 기록수신된 인터페이스 정보를 활용할 때 예외 발생 시 수신 인터페이스 테이블에 별도의 예외 사항을 기록

 

4. 인터페이스 보안 기능 적용

인터페이스 보안 취약점
데이터 탈취 위협: 인터페이스를 위한 송수신 시스템 간의 데이터 통신 시 스니핑을 통해 데이터 전송 내역을 감청하여 데이터를 탈취하는 위협이 존재
데이터 위변조 위협: 인터페이스를 위한 송수신 시스템 간의 데이터 통신 시 전송 데이터에 대하 삽입, 삭제, 변조 공격을 통한 시스템 위협이 존재
*
스니핑: 공격 대상에게 직접 공격하지 않고 데이터만 몰래 들여다 보는 수동적 공격 기법

 

인터페이스 보안 구현 방안
시큐어 코딩 가이드 적용 --> 뒤에 내용 참고


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

대칭 키 암호화 알고리즘: 암호화 알고리즘의 한 종류.암복호화에 같은 암호 키를 쓰는 알고리즘
ex)
ARIA 128/192/256, SEED

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

ex) RSA, ECC, ECDSA

해시 암호화 알고리즘: 해시 값으로 원래 입력값을 찾아낼 수 없는 일방향성의 특성을 가진 알고리즘
ex) SHA-256/384/512, HAS-160


데이터 베이스 암호화 기법

API 방식: 애플리케이션 레벨에서 암호모듈(API)를 적용하는 애플리케이션 수정방식 / 애플리케이션 서버에 암복호화, 정책관리, 키 관리 등의 부하 발생
Plug-In 방식: DB레벨의 확장성 프로시저 기능을 이용, DBMS에 Plug-In 모듈로 동작하는 방식DB 서버에 암복호화, 정책관리, 키 관리 등의 부하 발생

Hybrid 방식: API 방식+Plug-In 방식 결합 / DB 서버와 애플리케이션 서버로 부하 분산

 

중요 인터페이스 데이터 암호화
민감한 정보를 통신 채널을 통하여 전송 시에는 반드시 암복호화 과정을 거쳐야 하고 IPSec, SSL/TLS 등 보안 채널을 활용하여 전송
* IPSec: IP
계층에서 무결성과 인증을 보정하는 인증헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
* SSL/TLS:
응용계층-TCP/IP계층 사이에 웹데이터 암호화 및 전송기밀성을 보장하는 공개키기반의 보안 프로토콜

 

인터페이스 보안 기능 적용 프로세스
1.
인터페이스 각 구간의 보안 취약점 분석

2. 분석된 보안 취약점을 근거로 인터페이스 보안 기능 적용

 

네트워크 구간에 대한 보안 기능 적용

단계 보안 요구사항 보안 기능 적용
전송 계층 보안 상대방 인증 적용 IPSec, AH, IKE 프로토콜 적용
데이터 기밀성 보장 필요 IPSec, ESP 프로토콜 적용
응용 계층 보안 서버만 공개키 인증서 가지고 통신 SSH의 서버 인증 모드 적용
연결 단위 외 메시지 단위로도 인증 및 암호화 필요 S-HTTP 적용하여 메시지 암호화

* AH: 메시지 Checksum을 활용한 데이터 인증과 비연결형 무결성을 보장해주는 프로토콜
* IKE:
키 교환 알고리즘
* ESP:
암호화 알고리즘을 활용한 캡술화 기반 페이로드 기밀성을 제공하는 프로토콜

 

애플리케이션 보안 기능 적용

비인가적 접근 권한 관리: 객체 접근 권한을 고려하여 비인가자 접근이 제한되도록 구현
변수를 직접 처리할 수 없게 하고 접근 권한을 가진 함수만 접근할 수 있도록 구현

악의적 코드 삽입 금지: 특수 문자를 통한 SQL변조 시도 등 악의적인 공격 패턴을 입력하지 못하도록 사전 필터링 등의 기능을 통해 방지

악의적 시도 시 에러 처리: 악의적 공격 시도 시 사용자 정의 예외 처리를 적용하고 에러 처리 내용이 외부에서 조회되지 않도록 권한 관리 강화


데이터베이스 보안 기능 적용
데이터베이스 접근 권한: 데이터베이스, 스키마, 엔티티의 접근 권한 관리 강화(접근 권한 객체 관리 수준은 성능과 보안성의 고려가 필요)
악의적 코드 삽입 금지: 프로시저, 트리거, 배치 등 데이터베이스 객체의 동작 시 악의적인 코드가 삽입되지 않도록 반영
민감 데이터 관리: 개인 정보나 업무상 민감 데이터는 암복호화나 익명화 처리를 통해 관리
악의적 시도 시 에러 처리: 공격 패턴에 대한 사용자 정의 예외 처리를 적용하고, 에러처리 내용이 외부에서 조회되지 않도록 권한 관리 강화

728x90