- 공개키 방식
- 개인키(Private Key)와 공개키(Public Key) 한쌍으로 이루어져 있음
- 개인키는 자기 혼자만 보유, 공개키는 누구에게나 제공 가능
- 개인키로 공개키를 연산해 내는 것은 쉬운데, 공개키로 개인키를 알아내는 것은 불가능
1) Diffie-Hellman
- 대칭키 교환 문제를 해결 : 서로 공개키를 교환하고, 자신의 개인키와 연산해 대칭키(세션키) 생성
- 이산대수의 어려움에 근거 : 한쪽 방향으로 계산하기 쉬움 (검증), 반대 방향으로는 계산하기 어려움
2) RSA (Rivest, Shamir, Adleman)
- 기밀성 : 수신자의 공개키로 암호화해 보냄
- 인증 : 송신자의 개인키로 암호화해서 보냄
- 소인수분해의 어려움
- 특징 : Boss (개인키,공개키) , Killer (개인키, 공개키)
3) ECC (Elliptic Curve Cryptography, 타원곡선 암호화)
- 이산대수의 어려움에 근거한 방식
- 짧은 키 길이로 강력한 암호화 제공 (키가 길수록 연산량이 많아짐 → CPU/Memory/Power 소모량 증가)
- Mobile 환경에 적합 → 인스타그램, 유튜브, 페이스북
- Hash Function
- 고정길이 출력 : 원문의 길이와 관계없이 고정길이로 출력
- 일방향 함수 : 원문으로 해시값을 계산하는 것은 매우 쉽지만, 해시값으로 원문을 알아내는 것은 거의 불가능
- 충돌 방지 : 해시값이 같은 원문은 거의 존재X
- 취약한 해시함수 : MD5, SHA-1 → 더 이상 사용하면 안 됨 (충돌쌍을 찾곤 한다)
- 안전한 해시함수 : SHA-256 이상 사용
- 전자서명
- 생성 : 원문의 해시값에 송신자의 개인키로 암호화(서명)해서 원문에 붙여서 보냄
- 검증 : 서명된 해시값을 송신자의 공개키로 복호화해서 원문의 해시값과 비교해봄 → 일치하면 무결성 증명, 일치하지 않으면 변조
- 인증서(Certificate)
- 생성 : 공개키의 해시값에 인증기관의 개인키로 암호화(서명)
- 검증 : 서명된 해시값을 인증기관의 공개키로 복호화해 공개키의 해시값과 비교해봄
- PKI
- 최상위 인증기관 (Root CA) : 인증기관 관리
- 인증기관(CA) : 인증서 발급하는 곳
- 등록기관(RA) : 인증서 신청한 조직 (회사, 기관 등)을 검증하고 접수 받음
- SSL/TLS
- 웹에서 암호화 통신을 하기 위해 사용하는 프로토콜
- 대칭키, 공개키, 해시함수도 사용 → Web Browser와 Web Server가 어떤 암호화 방식을 사용할 건지 협의 (우선순위 존재)
- 핵심 원리
웹서버가 자신의 공개키를 인증서 형식으로 제공
웹브라우저는 세션키를 생성해 웹서버의 공개키로 암호화해서 웹서버에게 보냄 → 웹서버는 자신의 개인키로 복호화(세션키 나옴) 웹브라우저와 웹서버는 데이터를 보낼 때 세션키로 암호화해 보냄 → 상대방에게 받은 암호문은 세션키로 복호화
※ 참고) OpenSSL 이용해 자가 인증서 생성 (RootCA생성 → 인증서 생성)
https://wnw1005.tistory.com/457
[Ubuntu 20.04 - Apache2 서버]자체서명 SSL/TLS 인증서를 이용한 https:// 프로토콜 연결 구축
[관련 게시물] 2020/11/10 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버] 가상호스트(VirtualHost) 설정 2020/11/12 - [서버 운영/APM 서버 구축] - [Ubuntu 20.04 - Apache2 서버]자체서명 SSL/T..
wnw1005.tistory.com
- 전자봉투
- 생성 : 원문의 해시값에 송신자의 개인키로 서명하고 원문 및 송신자의 공개키까지 첨부해서 세션키로 암호화, 세션키는 수신자의 공개키로 암호화해 첨부 (오프라인 전송 가능)
- 특징 : 기밀성, 무결성, 송신자에 대한 인증 및 부인봉쇄까지 모두 가능
- Exploit
- Asset (자산)
유형자산 : 컴퓨터, 회사건물, 공장, 인력, 고객 등
무형자산 : 브랜드 이미지, 데이터, 저작권, 특허, 평판 등
자산에는 약점 존재 : 현금, 보석, 무기명 채권 등의 약점 : 도난 및 분실 등
- 취약점은 특정 버전에만 존재하는 것
취약점이 존재하면 패치를 적용하면 해결됨 → 버전 달라짐
취약점 분석은 어떤 버전인지만 알면 됨 +그 버전에서 갖고 있는 취약점이 무엇인지 어떤 버전인지 확인(진단 기능) : SW로 해결 그 버전에서 가지고 있는 취약점이 무엇인지(지식) : 클라우드에서 해결 가능, 검색(모르면 구글)
Q. 패치가 나올 때까지 걸리는 평균 기간 (기준: 미국, 2018년 기준)은?
① 일주일 ② 한 달 ③ 두 달 ④ 6개월
A. 25일.... 45~60일
Q. 해킹을 당하고 그 사실을 인지하는 데 걸리는 기간은?
① 일주일 이내 ② 한 달 이내 ③ 3개월 이내 ④ 6개월 이내 ⑤ 6개월 이상
A. 6개월 이상
- Zeroday Exploit
- 패치가 배포되기 전에, Exploit code를 먼저 만들어 공격하는 사례
- 무방비 상태에서 공격 가능, 대응할 방법이 없는 상태임
- 알려지지 않은 취약점이라는 의미 → DarkWeb에서 거래가 되기도 함
- Oneday Exploit
- 알려진 취약점, 패치가 배포되었지만 아직 설치하지 않은 상태 (의존성 문제로 동작에 영향이 있을까 봐 우려되어)
- 패치를 설치하지 않은 시스템만 골라서 공격 가능
- 알려진 취약점 → 공격 방법도 유튜브, 블로그, SNS 등에 나와있음
- 약점(Weakness) 공식 번호 (CWE)
- CWE-nnnnn : Common Weakness Enumeration (보편적인 약점 목록화)
- http://cwe.mitre.org (약점 관리 공식기관) The CWE Top 25(2022)
CWE - Common Weakness Enumeration
CWE™ is a community-developed list of software and hardware weakness types. It serves as a common language, a measuring stick for security tools, and as a baseline for weakness identification, mitigation, and prevention efforts. Viewing Customized CWE in
cwe.mitre.org
- 취약점 공식 번호
- CVE-YYYY-NNNNnnn (NNNN(4자리부터) ~ NNNNnnn(7자리까지) 번호 부여)
- http://cve.mitre.org : 취약점을 관리하는 공식기관
CVE - CVE
The mission of the CVE® Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities.
cve.mitre.org
Q. MS 직원 중에 Tester의 비율은?
① 10% ② 30% ③ 50%
A. 50%
- Metasploitable2
- 각종 취약한 버전을 골라서 설치한 Victim용 실습 이미지 → Aexploit 가능
- Rapid7이라는 회사에서 Metasploit(공격도구)를 팔고 있는데, 테스트해보기 위해서 metasploitable2를 만듦
$ sudo ls ( PW : msfadmin ) $ sudo adduser ive
// adduser를 사용하면 마법사를 이용해서 PW, 전화번호 등 물어봄, 홈 디렉터리 만듦
$ sudo useradd astro // 계정만 만듦, 홈 디렉터리를 만들지 않음 → FTP 사용할 수 없음
'SK shieldus Rookies 9기 > 시스템 ,네트워크 보안' 카테고리의 다른 글
시스템/네트워크 보안 기술 수업 5일차 (22/09/21) (0) | 2022.09.27 |
---|---|
시스템/네트워크 보안 기술 수업 3일차 (22/09/19) (0) | 2022.09.19 |
시스템/네트워크 보안 기술 수업 2일차 (22/09/16) (0) | 2022.09.16 |
시스템/네트워크 보안 기술 수업 1일차 (22/09/15) (0) | 2022.09.15 |