일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자바스크립트
- S-HTTP
- rest
- SSL/TLS
- 리눅스
- 정처기 실기
- 브레인스토밍
- esb
- input
- 인스펙션
- 라디오 버튼
- 소프트웨어
- 키보드 이벤트
- 프로시저
- 비동기
- 정보처리기사 실기
- 인터페이스
- 형상관리
- 델파이 기법
- 동기
- 트리거
- 정처기
- 모듈화
- javascript
- Ajax
- 워크스루
- 서버
- 정보처리기사
- EAI
- 모듈
- Today
- Total
방구석 상상코딩
14. 인터페이스 기능 구현 본문
사전에 정의된 기능에 대한 구체적 분석
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 |