구분 | 소프트웨어 보안 약점 | 소프트웨어 보안 취약점 |
---|---|---|
정의 | - 소스코드에 존재하는 잠재적 위험 | - 보안 약점 중 침해 사고로 연결되는 위험 |
- 보안 약점은 취약점을 포함함 | ||
사례 | 시스템 개발단계의 보안 리스크 | - 시스템 운영/유지보수 단계의 보안 리스크 |
해결방안 | - 정적분석, 시큐어코딩 | - 동적분석방식, 테스팅, 웹스캔, 화이트해커 |
암호화 알고리즘 : 치환, 전치, 혼합, 블록화, 확장, 압축등과 같은 원리를 이용해서 평문을 암호문으로 만드는 과정
구분 | 대칭키 알고리즘 | 비대칭키 알고리즘 |
---|---|---|
키의 상호관계 | 암호화키 = 복호화키 | 암호화키 ≠ 복호화키 |
암호화 키 | 비밀키 | 공개키 |
복호화 키 | 비밀키 | 개인키 |
비밀키 전송여부 | 필요 | 불필요 |
키 관리 | 복잡(모든 전송 당사자 간 암/복호화키 공유) | 단순(인증기관을 통해 전송 당사자 별 개인키 발급) |
안전한 인증 | 곤란 | 용이 |
암호화 속도 | 고속 | 저속 |
경제성 | 높음 | 낮음 |
부인방지여부 | 불가능(대칭키로 인하여) | 가능(키의 2원화) |
속도 | 빠름 | 느림 |
구현방식 | 블록, 스트림 암호화 | 소인수분해, 이산대수, 근저백터 |
적용알고리즘 | DES, 3DES, SEED, AES, IDEA | RSA, ECC |
장점 | 구현용이, 변형가능 | 암호해독이 어려움, 전자서명 |
단점 | 쉽게 해독, 키 관리의 어려움 | 해독시간이 많이 걸림 |
구분 | 대칭키 알고리즘 | 비대칭키 알고리즘 |
---|---|---|
이미지 |
대칭키 암호화 종류에는 스트림 암호와 블록 암호가 있음.
구분 | 스트림 암호(Stream Cipher) | 블록 암호(Block Cipher) |
---|---|---|
개념 | - 하나의 bit, 또는 바이트 단위로 암호화 | - 여러 개의 Bit를 묶어 블록 단위로 암호화 |
방법 | - 평문을 XOR로 1bit 단위로 암호화 | - 블록 단위로 치환/대칭을 반복하여 암호화 |
장점 | - 실시간 암호, 복호화, 블록 암호보다 빠름 | - 대용량의 평문 암호화 |
종류 | - RC4, SEAL, OTP | - DES, 3DES, AES, IDEA, Blowfish, SEED |
블록 암호화 알고리즘 유형
유형 | 설명 | 활용 |
---|---|---|
AES | - AES(Advanced Encryption Standard) | WPA2 무선 인증 등 |
- 1998년 미국의 표준기술 연구소(NIST)에 의해 수행된 암호화 알고리즘 공모전에 선정된 암호화 기술 | ||
- 대칭키 암호이며 세 종류의 키(128비트, 192비트, 256비트)를 사용 | ||
DES | - DES(Data Encryption Standard) | 미사용 |
- 미국 NBS(National Bureau of Standards, 현재 NIST)에서 국가 표준으로 정한 암호 | ||
- DES는 대칭키 암호이며, 56비트의 키를 사용 | ||
- DES를 세 번 반복해서 사용하는 Triple-DES는 DES에 비해 안전한 것으로 알려져 있지만, 현재는 DES대신 AES가 새 표준으로 정해져 사용되고 있음 | ||
ARIA | - ARIA : Academy(학계), Research Institute, Agency(정부기관) 합작 | 국내 공공기관 |
- 경량 환경 및 하드웨어 구현을 위해 최적화된, Involutional SPN 구조를 갖는 범용 블록 암호화 알고리즘 | ||
IDEA | - IDEA(International Data Encryption Algorithm) | PGP 메일 암호 등 |
- 128비트의 키를 사용해 64비트의 평문을 8라운드에 거쳐 64비트의 암호문으로만 구성 | ||
- 모든 연산이 16비트 단위로 이루어지도록 16비트 프로세서에서 구현이 용이하며 주로 키 교환에 사용 | ||
RC5 | - RC5(Ron's Code 5)알고리즘은 1994년 미국 RSA연구소의 리베트(Rivest)가 개발 | RC4개선 |
- 비교적 간단한 연산으로 빠른 암호화와 복호화 기능을 제공하여 모든 하드웨어에 적합 | ||
- 입출력, Key, 라운드 수가 가변인 블록 알고리즘 | ||
- 32/64/128비트의 키를 사용 |
공개키 알고리즘에는 Diffle Hellman, RSA, DSA, ECC가 있음.
구분 | Diffle Hellman | RSA(Rivest-Shamir-Adleman,) | DSA(Digital Signature Algorithm) | ECC(타원 곡선 암호) |
---|---|---|---|---|
특징 | - 최초의 공개키 알고리즘 | - 대표적 공개키 알고리즘 | - 전자서명 알고리즘 표준 | - 짧은키로 높은 암호 강도 |
- 키 분배 전용 알고리즘 | ||||
원리 | - 이산대수 문제 | - 소인수 분해 | - 이산대수 문제 | - 타원 곡선 |
장점 | - 키 분배에 최적화 | - 여러 라이브러리 존재 | - 간단한 구조 | - 오버헤드 적음 |
- 키는 필요시에만 생성, 저장 불필요 | ||||
단점 | - 암호화 또는 서명 사용하지 않음(상대방에 대한 인증기능 없음) | - 컴퓨터 속도의 발전으로 키 길이 증가 | - 전자서명 전용 | - 키 테이블(20Kbyte)필요 |
- 위조에 취약 | - 암호화, 키 교환 불가 |
해시 알고리즘 : 전자서명에 많이 사용됨
유형 | 설명 | 활용 |
---|---|---|
SHA-1 | - 160비트 암호화 해시함수 | 전자서명 |
- 1993년 미국 NIST에서 개발 | ||
- 512비트를 입력받아서 160비트를 출력 | ||
- 보안강도가 약해 SHA-256, SHA-512로 대체되고 있음 | ||
MD5 | - 128비트 기반 암호화 해시함수 | 메시지 무결성 검사 |
- 결과 값이 16개 문자열 | ||
- 설계상 결함으로 사용이 줄어드는 추세 | ||
HAVAL | - MD5를 변형해 만든 해시 함수 | MD5 단점 보완 |
- 128비트에서 256비트까지 다양한 크기가 가능 | ||
Tiger | - 64비트 CPU에 최적화 | 64비트 CPU의 해시 |
- 32비트 CPU에서도 빠르게 동작 가능 |
SHA-1 해시 알고리즘의 보안 취약점 때문에 암호강도, 해시 크기, 블록 크기를 더 증가시켜서 나온 새로운 해시 알고리즘. 블록체인 기술에도 해당 해시 알고리즘을 사용하고 있음.
구분 | SHA-224 | SHA-256 | SHA-384 | SHA-512 |
---|---|---|---|---|
암호강도 | 112bit | 128bit | 192bit | 256bit |
해시크기 | 224bit | 256bit | 384bit | 521bit |
블록크기 | 512bit | 512bit | 1024bit | 1024bit |
라운드 | 64 | 64 | 80 | 80 |
SHA-2 알고리즘 동작방식
공격기법 | 설명 |
---|---|
SQL-Injection | 데이터베이스로 전달되는 SQL Query를 변경시키기 위해 Web Application에서 입력 받은 파라미터를 변조 후 삽입하여 비정상적인 데이터베이스 접근을 시도하거나 쿼리를 재구성하여 원하는 정보를 열람하는 해킹 기법 |
XSS(Cross-Site Scripting) | 타 사용자의 정보를 추출하기 위해 사용되는 공격기법으로 게시판에 악성 스크립트를 작성하여 다른 사람이 그 글을 보았을 때 그 글을 본 사람의 쿠키정보를 빼내가는 해킹 기법 |
CSRF(Cross-Site Request Forgery) | 공격자가 사용자의 쿠키값이나 세션정보를 의도한 사이트로 보내거나 특정한 동작을 유발하는 스크립트를 글에 삽입하여 사용자가 게시물 등을 클릭할 경우 공격자가 원하는 동작이 실행되는 해킹 기법 |
LAND Attack | 패킷을 전송할 때 출발지 IP주소와 목적지 IP주소를 똑같이 만들어서 공격 대상에게 보내는 공격 |