일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자가격리
- 정보처리기사2022
- 대외활동
- 다음에 또 만나자
- 수제비 2022
- 재택치료
- 2022 정보처리기사
- 모바일 청첩장
- FLUTTER
- CRUDS
- 스프링 MVC
- 아싸의 생일
- N-Queen
- 교육봉사
- 개강해짐
- AWS
- 레이튼 교수와 이상한 마을
- 다들 안잊어서
- 대학생
- 교수님 과제 이제 그만..
- 다행이야...ㅎ
- 플러터
- 지독한 컨셉충
- pem키 분실
- 정보처리기사 2022
- 얘들아 잘 지내니
- 생일축하해 나 자신
- 수제비2022 정리
- 확진
- 뽀모도로 타이머
- Today
- Total
Rei’s Tech diary
Chapter 5. 인터페이스 구현 본문
[1] 인터페이스 설계 확인
#. 시스템 인터페이스 정의서 주요 항복 (인최 크시데)
- 인터페이스 ID
- 최대 처리 횟수
- 데이터 크기
- 시스템 정보
- 데이터 정보
#. 내·외부 인터페이스 기술 표준 확인
① EAI(Enterprise Application Integration) 방식
- 기업에서 운영되는 서로 다른 플랫폼 및 어플리케이션 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
- EAI를 사용함으로써 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높여줄 수 있으며 각 시스템 간의 확장성을 높여줄 수 있음
▶ EAI 구축 유형
1) 포인트 투 포인트 (Point-to-Point)
- 중간에 미들웨어를 두지 않고 각각의 애플리케이션 간에 점 대 점 형태로 연결
2) 허브 앤 스포크 (Hub & Spoke)
- 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식
- 허브 장애 시 전체 장애 발생
3) 메시지 버스 (Message Bus)
- 애플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식
- 뛰어난 확장성과 대용량 데이터 처리 가능
4) 하이브리드 (Hybrid)
- 그룹 내는 허브 앤 스포크 방식을 사용, 그룹 간에는 메시지 버스 방식을 사용하는 통합방식
② ESB (Enterprise Service Bus) 방식
- 기업에서 운영되는 서로 다른 플랫폼 및 어플리케이션들 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처 또는 기술
- ESB는 버스를 중심으로 각각 프로토콜이 호환이 가능하도록 애플리케이션의 통합을 낮은 결합 방식으로 지원하는 방식
[2] 인터페이스 기능 구현
#. 인터페이스 보안의 중요성
- 인터페이스는 시스템 모듈 간 통신 및 정보 교환의 중요한 접점이기 때문에 인터페이스 보안 취약성은 시스템에 심각한 피해를 입힐 수 있다.
- 인터페이스 모듈 자체의 보안 취약점으로 인해 "데이터 변조 및 탈취" 등의 보안 사고가 발생할 수 있다.
#. 시큐어 코딩 가이드 ★
적용 대상 | 보안 약점 | 대응 방안 |
입력 데이터 검증 및 표현 |
프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정 | 사용자, 프로그램 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 설계 및 구현 |
보안 기능 | 보안 기능(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등)의 부적절한 구현 | 인증, 접근 통제, 권한 관리, 비밀 번호 등의 정책이 적절하게 반영되도록 설계 및 구현 |
시간 및 상태 | 거의 동시에 수행 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리 | 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용, 블록문 내에서만 재귀 함수 호출 |
에러 처리 | 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함 | 에러 또는 오류 상황을 처리하지 않거나, 불충분하게 처리되어 중요 정보 유출 등 보안 약점이 발생하지 않도록 시스템 설계 및 구현 |
코드 오류 | 개발자가 범할 수 있는 코딩 오류로 인해 유발 | 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거 |
캡슐화 | 기능성이 불충분한 캡슐화로 인해 인사되지 않은 사용자에게 데이터 누출 | 디버거 제거와 필수 정보 외의 클래스 내 프라이빗 접근자 지정 |
API 오용 | 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API 사용 | 개발 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용 |
#. 데이터베이스 암호화 알고리즘
구분 | 의미파악 |
대칭 키 암호화 알고리즘 | 암호화 알고리즘의 한 종류로, 암˙복호화에 같은 암호 키를 쓰는 알고리즘을 의미 ex) ARIA 128/192/256, SEED |
비대칭 키 암호화 알고리즘 | 공개키는 누구나 알 수 있지만 그에 대응하는 비밀키는 키의 소유자만이 알 수 있도로그 공개키와 비밀키를 사용하는 알고리즘 ex) RSA, ECC, ECDSA |
해시 암호화 알고리즘 | 해시 값으로 원래 입력값을 찾아낼 수 없는, 일방향성의 특성을 가진 알고리즘 ex) SHA-256/384/512, HAS-160 |
참고) DES, 3DES 암호화 알고리즘은 낮은 보안성 때문에 인터페이스 구현 시 사용하지 않는다.
#. 데이터베이스 암호화 기법
구분 | 설명 |
API 방식 | - 애플리케이션 레벨에서 암호 모듈(API)를 적용하는 애플리케이션 수정 방식 - 애플리케이션 서버에 암˙복호화, 정책 관리, 키 관리 등의 부하 발생 |
Plug-in 방식 | - DB 레벨의 확장성 프러시저 기능을 이용, DBMS에 Plug-in 모듈로 동작하는 방식 - DB 서버에 암˙복호화, 정책 관리, 키 관리 등의 부하 발생 |
Hybrid 방식 | - API 방식 + Plug-in 방식 - DB 서버와 애플리케이션 서버로 부하 분산 |
#. 중요 인터페이스 데이터의 암호화 전송
1) IPSec (IP Security)
- IP 계층에서 무결성과 인증을 보장하는 인증헤더와 기밀성을 보장하는 암호화를 이용하여 양 종단 간 구간에 보안 서비스를 제공하는 터널링 프로토콜
- 주요 프로토콜은 AH, ESP, IKE 가 있고, 정책에는 SPD, SAD가 있다.
2) SSL/TLS
- 전송계층과 응용계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
3) S-HTTP
- 웹 상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송
[3] 인터페이스 구현 검증
#. 인터페이스 구현 검증 도구 ★
도구 | 설명 |
xUnit | ˙ java(junit), C++(Cppunit), .Net(Nunit)등 다양한 언어를 지원하는 단위 테스트 프레임 워크 ˙ 소프트웨어의 함수나 클래스 같은 서로 다른 구성 원소(단위)를 테스트 할 수 있게 해주는 도구 |
STAF | ˙ 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크 ˙ 각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 대상프로그램을 통해 테스트를 수행, 통합하며 자동화하는 검증 도구 |
FitNesse | ˙ 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크 ˙ 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대한 테스트를 할 수 있다는 장점이 있음 |
NTAF | ˙ FitNesse와 STAF의 장점을 결합하여 개발된 테스트 자동화 프레임워크 ˙ STAF의 분산환경 지원기능과 FitNesse의 효율적인 테스트 케이스 디자인 및 레포팅 기능이 NTAF에서 지원 |
Selenium | ˙ 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크 ˙ 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 플레이백 도구를 제공 |
watir | ˙ Ruby 기반 웹 애플리케이션 테스트 프레임워크 ˙ 모든 언어 기반의 웹 어플리케이션 테스트와 브라우저 호환성 테스팅 가능 |
'정보처리기사 > [2] 소프트웨어 개발' 카테고리의 다른 글
Chapter 4. 애플리케이션 테스트 케이스 관리 (0) | 2022.03.12 |
---|---|
Chapter 3. 제품 소프트웨어 패키징 (2) | 2022.03.10 |
Chapter 2. 통합 구현 (0) | 2022.03.08 |
Chapter 1. 데이터 입출력 구현 (0) | 2022.03.08 |