소프트웨어 개발 보안 구축
SW개발 보안 구현
- 암호 알고리즘의 개념과 암호 알고리즘의 종류별 특징을 이해
- 코드오류와 캡슐화, API 오용 개념과 각 보안 점검 항목별 보약 약점의 종류 및 특징을 이해
용어사전
- Hash 해시
- 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 단방향 암호 알고리즘
암호 알고리즘 개념
- 주민번호, 패스워드, 은행계좌 등 중요 정보를 보호하기 위해 평문을 암호문으로 만드는 절차 또는 방법
- 해시를 사용하는 단방향 암호화 방식과 개인키와 공개키로 분류되는 양방향 암호화 방식으로 구분됨
-
- Stream 방식
- 평문과 동일한 길이의 스트림을 생성하여 비트단위로 암호화
- Block 방식
- 한 번에 하나의 데이터 블록을 암호화
- Stream 방식
양방향 알고리즘
1. 비밀키(개인키, 대칭키) 암호 알고리즘 장/단점
- 암호화 및 복호화 할 때 사용하는 키가 같음
- 장점 : 암호화 복호화 속도가 빠르며, 알고리즘이 단순하고, 공개키 암호기법보다 파일의 크기가 작음
- 단점 : 사용자의 증가에 따라 관리해야할 키의 수가 많음
2. 공개키(비대칭키) 암호 알고리즘 장/단점
- 암호화할 때 사용하는 키와 복호화 할 때 사용하는 키가 다름
- 장점 : 키의 분배가 용이하고, 관리해야할 키의 개수가 적음
- 단점 : 암호화 및 복호화 속도가 느리며, 알고리즘이 복잡하고, 개인키 암호화 기법보다 파일의 크기가 큼
3. 양방향 암호 알고리즘의 종류
단방향 암호 알고리즘
- 해시
- 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미
- 해시 알고리즘을 해시 함수라고 부르며, 해시 함수로 변환된 값이나 키를 해시값 또는 해시키로 부름
- 데이터의 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에 활용