728x90

SSL에 사용되는 프로토콜

① Record Protocol : 데이터 암호화, 무결성을 위한 MAC 생성, 상호 인증서 교환 및 검증의 역할, 상위계층 프로토콜의 캡슐화, MD5, SHA-1를 사용한다.
② Handshake Protocol :  세션 정보와 연결 정보를 공유, 보안인수의 결정, 인증, 협상된 보안인수의 설명 및 에러 조건의 보고를 위한 프로토콜이다.
③ Alert Protocol : 메시지의 암호화 오류, 인증서 오류 등을 전달하는데 사용된다.
④ Change Chiper Spec Protocol : 서버와 클라이언트 상호 간의 cipher spec 확인을 위해 메시지를 교환하는데 사용된다.

'IT > 네트워크(Network)' 카테고리의 다른 글

HTTP 에러 메시지  (1) 2021.09.27
ICMP (Internet Control Message Protocol)  (0) 2021.09.15
Zone Transfer  (0) 2021.09.15
방화벽(Firewall)의 종류  (0) 2021.09.14
VPN 터널 프로토콜(L2F, PPTP, L2TP)  (0) 2021.09.14
728x90

Syslog

개요 
Syslog 란 로깅 메세지 프로그램의 표준이다. Syslog는 다양한 프로그램들이 생성하는 메세지들을 저장하고, 이 들 메세지들을 이용해서 다양한 분석 등이 가능하도록 로그 메세지들을 제공한다. Syslog는 프로그램 뿐만 아니라 device와 같은 장비들도 Syslog를 사용할 수 있도록 제공한다. 관리자들은 device 장비에서의 로그 메세지들을 통해 문제사항이나, 성능 등을 확인할 수 있다.

Syslog는 컴퓨터 시스템의 관리, 보안 알림 뿐만 아니라 일반적인 정보, 분석, 디버깅 메세지 등을 제공해준다. 프린터나 라우터와 같은 다양한 장비 뿐만 아니라 다양한 플랫폼을 지원한다. 이런 이유로 syslog는 중앙 저장소에 다양한 타입의 시스템들의 로그 데이터의 저장소로 사용되기도 한다. 

Syslog에서는 메세지를 생성해내는 주체(facility)에 따라 다음과 같이 나눈다. (auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0.. local7) 그리고 메세지의 우선순위 / 메세지 중요도(level)에 따라 다음과 같이 나뉘어 진다. (Emergency, Alert, Critical, Error, Warning, Notice, Info or Debug). 

Syslog의 설정을 통해 로컬 디바이스 혹은 파일 및 심지어 다른 시스템의 Syslog Daemon에도 로그 메세지들을 전달할 수 있다. 이 때에 한 가지 주의해야 할 점은 설정 파일의 facility나 level을 잘못 설정 해서 중요한 메세지들을 제대로 써지지 않아 로그 메세지들을 모두 놓쳐 버릴 수도 있으니, 조심해야한다. 

logger라는 명령어를 통해 syslog에 특정 메세지를 보낼 수도 있다. 

syslog는 Syslog working 그룹인 IETF에서의 표준으로 지정되기도 하였다. 

역사 
Syslog는 1980년대 Eric Allman이라는 사람이 send mail 프로젝트의 한 부분으로 개발 되었다. Syslog가 개발된 이후로 Unix나 Unix 계열의 많은 시스템에서 로깅의 표준이 되었다. 다른 운영체제 시스템의 로그 체제를 위한 근간이 되기도 했으며, 라우터와 같은 네트워크 장비에도 사용되고 있는 것을 확인할 수 있다. 

Syslog 설정
Syslog에서는 크게 두 가지의 중요 개념이 있는데, 이들이 위에서 설명한 facility와 level 이다. 우선 설정 파일의 예를 통해 살펴 보도록 하자. 

Syslog의 설정 파일은 /etc/syslog.conf, 우분투 혹은 데비안 시스템의 경우 /etc/rsyslog.conf 파일에서 찾아 볼 수 있다.

< rsyslog는 데비안 리눅스가 etch에서 lenny로 변경되면서 syslog 대신에 더 개량이 된 rsyslog를 사용하기 시작했다. >

다시 설정 파일로 돌아가서 /etc/syslog.d 디렉토리 혹은 /etc/rsyslog.d 디렉토리를 살펴보면 세부 설정 파일들을 확인해볼 수 있다.

kern.*                          -/var/log/kern.log

위의 내용은 syslog 파일의 일부를 발췌한 것인데, 위 내용을 살펴보면 다음과 같다. kern은 facility로써, kernel 메세지들에 대한 설정을 말하는 것이고, 뒤의 '*' 표시는 level로써, 이 예에서는 모든 level에 대해 로그를 기록하겠다는 설정이 된다. 뒤의 (/var/log/kern.log)는 로그가 씌어지는 파일의 경로이다.

(facility).(level)   (로그가 씌어질 파일 경로)

예를 들어, kern.info 라고 설정이 되어 있으면 커널 메세지 중에서 메세지의 level이 info 이면 커널 메세지 들을 필터링해서 info 이상의 메세지만 로그파일에 기록을 하겠다는 이야기가 된다. 

728x90

XML의 구성요소

① SOAP(Simple Object Access Protocol) : 웹 서비스를 호출하고, 그 결과를 전달받을 때 사용되는 메시지 프로토콜
② WSDL(Web Service Desciption Language) : 해당 서비스에 대한 상세한 설명이 포함되어 있는 서비스 기술서
③ UDDI(Universal Description Discovery and Intergration) : 웹 서비스를 등록하고 검색할 수 있는 일종의 레지스트리와 관련된 표준

728x90

Zone Transfer

주 DNS(Domain Name System) 서버와 보조(Secondary) DNS 서버가 존재할 때 주 도메인의 Zone 정보를 보조 도메인으로 효과적으로 동기화 시킬 수 있는 방법이다. 주 DNS 서버의 Zone 정보가 변한 부분만 보조 DNS 서버로 복사할 수 있도록 하여 네트워크의 트래픽을 줄이고 더 빨리 DNS 정보가 업데이트 되도록 할 수 있다.

Zone Transfer 는 네임서버의 Master 와 Slave 간에 또는 Primary와 Secondary DNS 간에 Zone 파일을 동기화하기 위한 용도로 사용되는 기술이다. Slave 서버는 정기적으로 Master 서버에 접속을 시도해 해당 Zone 파일의 시리얼을 서로 비교해 보고 상황에 따라 Zone 파일을 전송받는다. 그런데 별도의 설정을 하지 않은 경우 기본적으로 Zone Tranfer는 모든 IP에 대해 허용되어 있어 누구나 접근 가능하다.

'IT > 네트워크(Network)' 카테고리의 다른 글

ICMP (Internet Control Message Protocol)  (0) 2021.09.15
SSL에 사용되는 프로토콜  (0) 2021.09.15
방화벽(Firewall)의 종류  (0) 2021.09.14
VPN 터널 프로토콜(L2F, PPTP, L2TP)  (0) 2021.09.14
SSL(Secure Socket Layer)  (0) 2021.09.14
728x90

유닉스 환경의 Log 종류

① utmp : 시스템에 현재 로그인한 사용자들에 대한 상태 정보를 수집한다. 상태 정보는 사용자 이름, 터미널 장치 이름, 원격 로그인 시 원격 호스트 이름, 사용자가 로그인한 시간 등을 기록한다. who, w, whodo, users, finger 등의 명령어를 사용하여 분석할 수 있다.

② wtmp : 사용자의 로그인, 로그아웃 시간과 시스템의 종료 시간, 시스템의 시작시간 등을 기록한다. last 명령어를 사용하여 분석할 수 있다.

③ pact : 사용자가 로그인한 후부터 로그아웃할 때까지 입력한 명령과 시간, 작동된 tty 등에 대한 정보를 수집한다. lastcomm 명령어를 이용하여 분석할 수 있다.

④ History : 사용자 별로 실행한 명령을 기록하는 로그이다. bash, sh, tcsh, csh 등 사용자들이 사용하는 셸에 따라서 각각 .bash_history, .sh_history, .history 등의 파일로 기록을 남기며, 명령어뿐만 아니라 파일 위치 및 파일명까지 기록된다. vi 편집기, history 명령어를 이용하여 로그분석이 가능하다.

⑤ sulog : su 명령어를 사용한 결과를 저장하는 로그이다.

⑥ lastlog : 서버에 접속한 사용자의 IP별로 가장 최근에 로그인한 시간을 기록한다. lastlog 명령어를 이용하여 분석할 수 있다.

⑦ btmp : 5번 이상 로그인을 실패했을 경우에 로그인 실패 정보를 기록한다. lastb 명령어를 이용하여 분석할 수 있다.

⑧ message : syslog 계열의 로그로서 콘솔상의 화면에 출력되는 메시지들을 저장하고 시스템의 장애에 대한 기록뿐만 아니라 보안측면에서 취약점에 의한 공격흔적을 기록으로 남기게 된다. vi 명령어를 이용하여 로그분석이 가능하다.

'IT > 리눅스(Linux)' 카테고리의 다른 글

lsof  (0) 2021.09.29
Syslog  (0) 2021.09.15
유닉스에서 SetUID와 SetGID가 설정된 파일 검색 명령어  (0) 2021.09.01
리눅스 특수권한(SetUID, SetGID, Stickybit)  (0) 2021.08.25
Virtualbox Centos 7 게스트확장설치  (0) 2021.08.11
728x90

윈도우 레지스트리 정보

① HKEY_CLASSES_ROOT : 파일 확장자 정보, 파일과 프로그램 간 연결 정보가 들어있다.
② HKEY_CURRENT_USER : 현재 로그인한 사용자의 환경설정 정보(응용 프로그램에 대한 정보)가 들어있다.
③ HKEY_LOCAL_MACHINE : 하드웨어와 소프트웨어 설치 드라이버 설정 정보가 들어있다.
④ HKEY_USERS : 데스크톱 설정, 네트워크 환경정보, 사용자 정보가 들어있다.
⑤ HKEY_CURRENT_CONFIG : 디스플레이와 프린터에 관한 정보가 들어있다.

728x90

Cisco에서 제안한 TCP SYN Flooding 공격 차단 솔루션

① Intercept 모드 : 라우터로 들어오는 SYN 패킷을 서버에 바로 넘기지 않고 라우터에서 클라이언트와 연결을 맺으며 연결이 정상적으로 이루어지면 클라이언트 대신 서버와 연결을 맺고 두 연결을 포워딩 시켜주는 방식이다.

② Watch 모드 : SYN 패킷을 그대로 통과시키고 일정시간 동안 연결이 이루어지지 않으면 라우터가 중간에서 SYN 패킷을 차단한다.

 

<TCP Intercept>

 

- Server 앞에 위치한 Network Device(ex. Router, Firewall..)에서 SYN Flooding 공격을 방어할 수 있는 방법

중간에 위치한 Network Device가 Clinet와 Server가 교환하는 3-way handshakes 과정을 중간에서 가로챈 다음 자신인 Server인 척 Client 대신 Connecton을 맺는다. 

만약 Client에게 최종 ACK를 30초 동안 수신하지 못할 경우에는 해당 연결을 차단  정상적으로 최종 ACK를 수신하게 되면 해당 Connection 정보를 Server에게 전달한다. 

 

- TCP Intercept 모드는 다음과 같다.   

1) Intercept 모드    

-> Default (기본) 모드, 위의 설명처럼 중간에 위치한 Network Device가 Server 대신 Connection을 수립하는 모드   

2) Watch 모드    

-> 수동적인 모드로 Network Device가 직접 Connection을 맺지 않고 Client와 Server 사이에서 3-way handshake 과정을 중간에서 지켜보다가 Client 측에서 최종 ACK를 전송하지 않을 경우 연결을 강제로 종료하게 만든다.

 

- L4 Switch의 경우도 'Delay Binding' 이라는 명칭으로 비슷한 기능을 지원한다.

 

1) watch 모드

 

<DSW1 / DSW2>

 

 

2) Intercept 모드

 

<DSW1/DSW2>

 

conf t

ip tcp intercept modr intercept

 

- 확인 방법

 

 

728x90

PGP(Pretty Good Privacy)

① 전자우편 암/복호화(기밀성), 메시지 인증(무결성), 사용자 인증, 송신처 부인 방지만 지원한다.
② 전자메일 송신자 신원 확인을 위해 DSS, RSA 암호 알고리즘을 이용한 전자서명 기능을 제공한다.
③ CAST, IDEA, 3DES와 같은 대칭키 암호 알고리즘을 이용하여 전자메일의 비밀성을 보장한다.
④ 대칭키 암호 알고리즘에 사용되는 대칭키 교환을 위해 RSA 공개키 암호시스템이나 Elgamal 키 전송 알고리즘, Diffie-Hellman 키 교환 알고리즘을 사용한다.
⑤ 메시지 기밀성을 위한 암호화 : RSA, IDEA
⑥ 사용자 인증의 전자서명 : ESA
⑦ 해시함수 : MD5
⑧ 키 관리 : RSA

PGP 구성요소
① 인증 받은 메시지와 파일에 대한 전자서명 생성과 확인 작업을 지원한다.
② RSA와 Diffie-Hellman 등 공개키 생성을 지원한다.
③ 공개키 분배 및 취득을 지원한다.
④ PGP 주요기능 : 전자서명, 기밀성, 압축, 단편화와 재조립

 

PGP는 'Pretty Good Privacy'의 약자로서, 컴퓨터 파일을 암호화하고 복호화하는 프로그램이다. 1991년 필립 짐머만이 개발하였으며, 현재 전 세계적으로 이메일 보안의 표준으로 자리잡았다.

 

암호학의 일대 혁명을 가져온 프로그램으로, 1991년 필 지머먼(Phil Zimmermann)이라는 프로그래머가 개발한 전자우편 암호화 프로그램과 그 파생작들을 말한다. 이 프로그램 전까지만 해도 암호화 기능은 정부나 군대, 그리고 정보기관의 전유물이었으나 PGP로 인해서 일반 사람들까지 암호가 퍼지게 되었다. 덕택에 개인 사용자가 암호를 쓴다는 것에 열받은 미국 정부(+NSA)는 PGP의 강력한 암호화 기능이 테러리스트를 도울수 있다는 이유로 필 지머먼을 군수물자 통제법 위반으로 조사하였으나, 나중엔 조사를 포기하게 된다.

여담으로 1997년 PGP 국제버전인 PGPi 5.0이 개발되었고, 필 지머먼은 이를 국외로 수출하려고 했으나 당시 미국 정부는 암호화 프로그램을 무기로 간주하여 이를 저지한다. 이에 지머먼은 법률을 검토하던 중, 소프트웨어는 수출 금지 항목에 포함되어 있어도, 종이에 인쇄된 책은 수출에 제약이 없다는 점을 발견했다. 법의 허점이라기 보다는, 미국에서는 강력한 수정헌법 1조 덕에 출판의 자유가 보장되어 내용이 무엇이든 책으로 배포가 가능했던 것.[2] 그리하여 총 6천여 페이지의 소스코드를 출력하여 12권의 책으로 묶었고, 이를 수출하고 국외에서 지원자를 모집하여 스캐너로 책 페이지의 이미지를 떠서 OCR을 통해 다시 프로그램 소스 코드로 변환하여 컴파일하는 대단한 삽질(...)을 통해 결국 해외 수출에 성공한다. 당시 70여명의 지원자가 있었다고 한다. 스캔과 OCR 변환, 빌드와 미국 국외에서 출시하기까지 걸린 총 시간은 1000시간 쯤 된다고 한다.(...) 이를 "PGPi Scanning Project"라고 부른다. 이후 개정판 버전이 다시 이러한 과정을 거쳐 수출에 성공했으며, 미 정부가 1999년에 적성국가를 제외한 나머지 국가에 암호화 프로그램 수출을 허가하도록 법령을 수정하여 이러한 삽질은 더 이상 일어나지 않게 되었다.

또한, 암호화 알고리즘을 사용하는 다른 소프트웨어들도 같은 이유로 수출이 제한되어 해외에서는 미국산 소프트웨어에서 대칭키 암호화 알고리즘은 키 길이가 40비트로 제한된 알고리즘을 쓸 수 밖에 없었다. 따라서, 한국에서는 전자상거래용으로 SEED라는 128비트 키를 사용하는 독자적인 암호화 알고리즘을 개발해 익스플로러에 ActiveX 형태로 적용했으며, 이 때부터 ActiveX와 함께하는 환장할 인증 시스템이 완전히 뿌리내리게 된다. 지금은 살짝 바뀌었지만 어차피 그게 그거.


간단히만 설명하자면, 이메일 내용 자체를 암호화하여 오로지 보내는 사람과 받는 사람만이 그 원문(Plain Text)을 알 수 있도록 하는 암호화 방식을 말한다. 물론 이메일 서비스 제공자(Google, Yahoo, Outlook 등)는 이메일의 전송 과정에서 TLS를 적용하는 등의 기본적인 보안을 제공한다. 하지만 이메일 서비스 제공자 자체를 신뢰할 수 없거나[3], 법원이 발부한 압수수색 영장에 의해 수사상 필요로 인해 이메일 서비스 제공자가 이메일을 수사기관과 법원에 제출해야 하는 경우에는 수사와 관련없는 이메일까지 내용이 그대로 노출될 수밖에 없다.[4] PGP등으로 암호화해서 메일을 송수신했더라도 개인키는 컴퓨터등에 있을 것이고, 송수신 과정에 여러 디지털 흔적이 남으므로 디지털 포렌식을 회피하기란 사실상 힘들다. 일반적인 경우에 이메일 제공자조차 이메일의 원문을 알 수 없도록 암호화를 할 필요가 있었고, 그것이 PGP이다.

공개키와 개인키를 통해 암호화와 복호화를 각각 개별적으로 수행한다. 공개키를 이용하여서 문서를 암호화 할 수는 있지만 그것을 복호하여 원래 문서로 되돌리는 것은 개인키를 이용해서만 가능하다. 따라서 공개키를 송신자에게 제공하여 송신전에 암호화를 수행하도록 하며 딱히 이것이 유출되는 것은 상관 없다. 그래서 공개키라 부른다. 사실상 개인키로만 복호화가 가능하므로 수신자가 가지고 있는 개인 키만 안전하게 보관이 가능하다면 상당히 높은 보안성을 유지할 수 있다.

처음 개발되었을 때 개인 사용자한테는 무료였지만, 현재는 유료로 시만텍에서 판매하고 있다. 그러나 PGP의 한 갈래인 OpenPGP는 현재 인터넷 표준으로 자리매김 하였으며, 이를 이용한 GnuPG같은 여러 프로그램이 등장했다. 당연하게 윈도우나 맥, 리눅스 버전도 존재한다.

리눅스는 패키지 보관소(Repository)에 보관된 소프트웨어를 보관소의 GPG 키를 이용하여 패키지에 문제가 있는지 없는지 확인하며, 몇몇 포럼의 Geek들은 자신이 직접 글을 썼다는걸 증명하기 위해 PGP를 사용해 사인하거나 암호화하여 글을 작성하기도 하며, 이러한 글은 작성자의 공개키를 바탕으로 PGP를 통해 해독하여 본인인지 아닌지 확인할 수 있다.

 

 

<전자서명>
PGP로 전자서명을 할 수도 있다. 원본 파일을 작성하고, 그 파일에 대해 sig 파일을 생성하여 상대방에게 원본 파일과 sig 파일을 함께 배포하며, 상대방은 PGP를 이용해 sig 파일을 검증한다. sig 파일이 생성된 후에 원본 파일이 변경되었으면, sig 파일 검증시 Bad signature라고 출력된다.

1991년 개발된 PGP 프로그램을 이용한 전자서명은, 전 세계적으로 보편화 되어, 일반적으로 사용하지만, 대한민국 전자서명법상의 보호를 받는 전자서명으로 인정받고 있지는 않다. 공인인증서만이 대한민국 전자서명법에 의해 인정받고 있다. PGP 전자서명은 무료인 반면에, 공인인증서 전자서명은 2011년 현재 1년 4,400원을 지불해야 한다.

 

<AES256>
위키리크스의 줄리언 어산지는 미국의 외교기밀문서를 압축하여 AES 256 비트 암호화를 하여 전 세계에 배포해, 자신이 형사처벌을 받으면 그 암호를 공개하겠다고 협박했다. PGP 프로그램을 통해 AES 256 비트 암호화와 복호화가 가능하다. 고급 암호화 표준(AES)는 미국 정부가 제정한 최신 암호화 기술이다.

미국 정부가 제정한 기존의 암호화 표준은 56비트 DES 암호 코드였다. 그러나 DES가 슈퍼컴퓨터를 사용하면 수시간내에 해독될 수 있게 되자, 256비트 키를 사용하는 차세대 표준 AES를 제정했다.

어산지가 배포한 파일 중 하나는 1.4기가바이트(GB) 용량인 insurance.aes256 인데, 영국 석유회사 BP와 관타나모 수용소 관련 기록 등을 담고 있는 것으로서, 슈퍼컴퓨터로도 해독에 수십년 이상이 걸리는 것으로 알려졌다.

'IT > 정보보안' 카테고리의 다른 글

ECC(Elliptic Curve Cryptography, 타원 곡선 암호)  (0) 2021.09.27
XML의 구성요소  (0) 2021.09.15
PEM(Privacy Enhanced Mail)  (0) 2021.09.14
키 복구 기술  (0) 2021.09.14
OECD 프라이버시 8원칙과 개인정보보호법  (0) 2021.09.14
728x90

PEM(Privacy Enhanced Mail)

 

① 중앙집중화된 키 인증 방식이다.

② 구현이 어렵고, 높은 보안성을 제공(군사, 은행 등)한다.

③ SMTP를 사용하는 기존의 전자우편 시스템의 보안 취약점을 보안하고 기밀성, 무결성, 인증, 세션키 분배를 수행한다.

④ IETF에서 만든 암호화 기법이며 인터넷 표준이다.

⑤ PGP에 비해 보안성이 좋지만 사용이 어렵다.

⑥ 전자우편 전송 전 자동으로 암호화를 한다.

'IT > 정보보안' 카테고리의 다른 글

XML의 구성요소  (0) 2021.09.15
PGP(Pretty Good Privacy)  (0) 2021.09.14
키 복구 기술  (0) 2021.09.14
OECD 프라이버시 8원칙과 개인정보보호법  (0) 2021.09.14
재해복구시스템 유형  (0) 2021.09.14
728x90

Trinoo는 Master / Agent 로 구성되어 있으며 Master의 명령으로 Agent가 작업을 수행하는 DDos 공격 도구이다. UDP Flooding 공격을 수행한다. 즉 공격자가 하나 혹은 그 이상의 시스템에 접속하여 여러 개의 데몬에게 명령을 내려 특정 시스템을 공격하도록 하는 공격 기법이다. 목표 시스템에 대량의 UDP 패킷이 전송되어 시스템이 다운된다.


'분산 서비스 거부' 또는 '분산 서비스 거부 공격'이라고도 한다. 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 해킹 방식의 하나이다. 서비스 공격을 위한 도구들을 여러 대의 컴퓨터에 심어놓고 공격 목표인 사이트의 컴퓨터시스템이 처리할 수 없을 정도로 엄청난 분량의 패킷을 동시에 범람시킴으로써 네트워크의 성능을 저하시키거나 시스템을 마비시키는 방식이다.

이로써 이용자는 정상적으로 접속할 수 없는 것은 물론 심한 경우에는 주컴퓨터의 기능에 치명적 손상을 입을 수 있다. 또 수많은 컴퓨터시스템이 운영자도 모르는 사이에 해킹의 숙주로 이용될 수도 있다. 공격은 일반적으로 악성코드나 이메일 등을 통하여 일반 사용자의 PC를 감염시켜 이른바 '좀비PC'로 만든 다음 C&C(명령제어) 서버의 제어를 통하여 특정한 시간대에 수행된다.

 

 

* Agent(Zombie)

- Trinoo는 Master/Agent로 구성되어 있으며 Agent는 Master의 명령하에 동작한다.

- 여러대의 단말기가 Master에게 붙을 수록 큰 트래픽 장애를 일으킬 수 있다.

 

 

[환경설정]

 

 

 

- trinoo 압축해제 후 해당 경로의 daemon 디렉토리에 접근하게 되면 ns.c 파일이 존재 하는데 Master와의 소켓 통신을 할 수 있도록Master가 될 단말기의 IP 주소를 입력하고 해당 IP에서 명령이 있을 때까지 대기 하게 된다.

 

 

[환경설정]

 

 

 

- 기본적으로 세팅되어 있던 Master 대신 Agent에 쓰일 기능들의 컴파일을 위해 위와같이 설정해 준다.

- make명령어로 디렉토리 전체를 컴파일 한 후 daemon을 실행 시켜놓고 Master의 명령에 따라 공격을 시작한다.

 

 

* Master 

 

[Master 실행]

 

 

- make 명령어로 master 디렉토리저체를 컴파일 후 master 파일을 실행 시켜준다.

- ps 명령어로 프로세스 동작상태에 master가 잘 동작하고 있는지 확인한다.

 

[Password 정보확인]

 

- 텔넷 접속 후 Master를 컨트럴 하기 위한 정보들이 포함되어있다.

 


[공격시작]

 

 

- 공격자는 Master 단말기, Agent 단말기 등을 순차적으로 이용해 DDos 발생시 추적이 곤란하도록 숨어서 공격을 진행한다. 따라서 공격자는 텔넷이나 원격접속 서비스를 이용하여 Master 단말기에 접속을 한다.
- bcast 명령으로 자신을 Master로 둔 Agent의 목록의 확인한다. Agent의 목록이 많을 수록 한번에 보낼 수 있는 트래픽이 늘어나 공격이 더 효과적이다.

- mdos 명령으로 공격할 IP를 설정해 주면 Master의 명령에 따라 Agent들은 해당 IP에게 무차별적으로 트래픽을 보내게 된다.

 

 

 

[공격 후]


- 1:1이 아닌 불특정 다수에게서 들어오는 트래픽 처리는 사실상 불가능 하므로 단말기의 과부하로 인한 다운이 통신 두절의 원인이 된다.

- 2 대의 Agent가 공격 했지만 3초를 버티지 못하고 Wireshark가 끊기고 통신이 불가한 결과를 가져왔다. 위의 결과와 같이 무차별적으로 패킷을 보내므로 이를 중간에서 제어 하기는 힘들다. 따라서 DDos 공격을 막는 최선의 방법은 예방이다.

728x90

공격 근원지 파악하기 힘든 DRDoS 공격
일반 디도스 공격보다 훨씬 강력해


지난해 12월 22일, 10대 청소년들이 게임사에 사이버공격을 감행했다 덜미를 잡혔다. 청소년들은 공격을 위해 DRDoS(Distributed Reflective Denial of Service) 라는 기존 디도스(DDoS) 공격보다 한층 진화된 기법을 사용했다. DRDoS는 이름 그대로 ‘분산 반사 서비스 거부 공격’이다.

지난해 8월에는 P2P 파일 공유 사이트인 비트토렌트(BitTorrent) 취약점을 이용해 DRDoS 공격이 가능하다는 소식이 전해졌다. 또한 지난 2014년 2월에 유럽 전역에 대대적으로 발생한 대규모 디도스 공격도 이와 같은 DRDoS 공격의 일종으로 밝혀진 바 있다.

DRDoS 공격은 공격자가 출발지 IP 주소를 공격 대상의 IP 주소로 위조해 정상적인 서비스를 제공하는 서버들에게 요청을 보내고, 그 응답을 공격 대상이 받게 되는 원리다. 여기에는 SYN 패킷이나 ICMP 패킷, DNS 쿼리 등 응답을 받을 수 있는 패킷이 이용된다.

 

▲DRDoS 공격방식(출처: 한국인터넷진흥원)

 


TCP 3-way handshake 방식을 예로 들어보자. 공격자가 출발지 IP 주소를 공격 대상의 IP 주소로 위조해 SYN 패킷을 다수의 정상 TCP서버나 라우터로 전송하면, 이들이 응답하는 SYN/ACK 패킷을 공격 대상이 받아 서비스 거부 상태가 되는 것이다.

한국인터넷진흥원(KISA)의 ‘DDoS 공격 대응 가이드’에 의하면 이러한 DRDoS 공격은 출발지 IP 주소를 변조하고 공격 트래픽이 수많은 반사서버를 경유하기 때문에 공격의 근원지를 파악해 역추적하는 것이 거의 불가능하다.

또한, DRDoS에 사용되는 반사 서버는 자신이 보낸 패킷에 의한 응답이 없을 경우 패킷을 재전송할 수 있기 때문에 공격자가 전송하는 패킷보다 몇 배 더 많은 패킷이 공격대상 서버에 전송될 수 있다. 일반 디도스 공격에 비해 적은 수의 좀비PC로도 공격 트래픽 양을 증가시킬 수 있다는 것.

패킷의 양만 문제가 아니다. 패킷 자체의 크기도 증폭이 될 수 있다. 한국인터넷진흥원 침해사고분석단 이동근 종합분석팀장은 “DRDoS가 무서운 이유는 증폭이 된다는 점이다. 특정 프로토콜의 경우 30바이트의 패킷을 보내면 응답과 관련한 추가 정보들이 덧붙여져 100바이트의 응답 패킷을 받게될 수도 있기 때문”이라고 전했다.

 

출처 : https://www.boannews.com/media/view.asp?idx=49145

728x90

① 스크리닝 라우터(Screening Router)
IP, TCP, UDP 헤더 부분에 포함된 내용만 분석하여 동작하며 내부 네트워크와 외부 네트워크 사이의 패킷 프래픽을 Perm/Drop하는 라우터이다.

② 배스천호스트(Bastion Host)
내부 네트워크 전면에서 내부 네트워크 전체를 보호하며 외부 인터넷과 내부 네트워크를 연결하는 라우터 뒤에 위치한다. Lock Down(폐쇄) 된 상태에 있으며 인터넷에서 접근이 가능한 서버이다.

③ 듀얼 홈드 호스트(Dual-Homed Host)
2개의 네트워크 인터페이스를 가진 배스천호스트로서 하나의 NIC는 내부 네트워크와 연결하고 다른 NIC는 외부 네트워크와 연결된다. 방화벽은 하나의 네트워크에서 다른 네트워크로 IP 패킷을 라우팅하지 않기 떄문에 프록시 기능을 부여한다.

④ 스크린드 호스트(Screened Host)
패킷 필터링 호스트와 배스천호스트로 구성되어 있다. 패킷 필터링 라우터는 외부 및 내부 네트워크에서 발생하는 패킷을 통과시킬 것인지를 검사하고 외부에서 내부로 유입되는 패킷에 대해서는 배스천호스트로 검사된 패킷을 전달한다. 배스천호스트는 내부 및 외부 네트워크 시스템에 대한 인증을 담당한다.

⑤ 스크린드 서브넷(Screened Subnet)
스크린드 호스트의 보안상 문제점을 보완한 모델이다. 외부 네트워크와 내부 네트워크 사이에 하나 이상의 경계 네트워크를 두어 내부 네트워크를 외부 네트워크로 분리하기 위한 구조이다.

'IT > 네트워크(Network)' 카테고리의 다른 글

SSL에 사용되는 프로토콜  (0) 2021.09.15
Zone Transfer  (0) 2021.09.15
VPN 터널 프로토콜(L2F, PPTP, L2TP)  (0) 2021.09.14
SSL(Secure Socket Layer)  (0) 2021.09.14
HTTPS와 S-HTTP의 차이점  (0) 2021.09.13
728x90

키 복구 기술

① 키 위탁 방식(Key Escrow) : 복구될 사용자의 비밀키, 비밀키의 부분 또는 키 관련 정보를 하나 이상의 신뢰기관에 위탁하는 방식이다.
② 캡슐화 방식(Encapsulation) : 키 위탁 방식과는 달리 암호문을 생성하는 각 세션마다 키를 복구해 낼 수 있는 정보를 포함하는 필드를 생성해서 해당 암호 메시지에 부가시키는 방식이다.
③ 제3기관 방식(TTP : Trusted Third Party) : 신뢰할 수 있는 제3자(TTP)가 암호 통신에 사용될 사용자의 비밀키를 직접 생성하고 사용자에게 분배하는 방식이다.

'IT > 정보보안' 카테고리의 다른 글

PGP(Pretty Good Privacy)  (0) 2021.09.14
PEM(Privacy Enhanced Mail)  (0) 2021.09.14
OECD 프라이버시 8원칙과 개인정보보호법  (0) 2021.09.14
재해복구시스템 유형  (0) 2021.09.14
해시 알고리즘의 조건  (0) 2021.09.14
728x90

L2F(Layer 2 Forwarding)
① Cisco에서 제안하였다.
② 원격 사용자의 홈 사이트에 주소가 할당, 사용자 인증은 홈 사이트의 게이트웨이에서 이루어진다.
③ 접속 서버(Access Server)는 주어진 도메인과 사용자 ID가 VPN 사용자인지 여부만을 검정한다.

PPTP(Point-to-Point Tunneling Protocol)
① Microsoft에서 개발하였다.
② PPTP 터널에 다이얼 업(Dial-Up) PPP 패킷을 캡슐화하였다.
③ 두 게이트웨이 또는 사용자와 게이트웨이 사이에서 사용자 패스워드 확인을 통한 인증과 암호화된 통신을 지원하기 위해 개발되었다.
④ PPTP 인증 중 사용자 인증은 MS-CHAP(PPP) 인증을 사용한다.
⑤ 하나의 터널에 하나의 연결만을 지원한다.
⑥ TCP 연결을 사용하여 IP, IPX, NetBEUI 트래픽 암호화 및 IP 헤더를 캡슐화하고 인터넷을 경유하여 전송한다.
⑦ RC4 알고리즘을 사용한다.
⑧ 주소 부분은 암호화 하지 않는다.
⑨ 6 Byte 헤더를 사용한다.

 

L2TP(Layer 2 Tunneling Protocol)

① L2F와 PPTP의 결합이다.

② DIal-Up 사용자 인증을 사용한다.

③ 헤더 압축 가능, 터널 유지를 위해 UDP와 L2TP 메시지를 사용한다.

④ 4 Byte 헤더를 사용한다.

⑤ 터널링에 대한 인증을 수행한다.

⑥ IPSec을 사용한 보안을 제공한다.

'IT > 네트워크(Network)' 카테고리의 다른 글

Zone Transfer  (0) 2021.09.15
방화벽(Firewall)의 종류  (0) 2021.09.14
SSL(Secure Socket Layer)  (0) 2021.09.14
HTTPS와 S-HTTP의 차이점  (0) 2021.09.13
FTP Active와 Passive 차이  (0) 2021.08.18
728x90

OECD 프라이버시 8원칙과 개인정보보호법 비교

 

1. 수집제한

2. 정보 정확성

3. 목적 명확화

4. 이용제한

5. 안전성 확보

6. 처리방침의 공개

7. 정보주체 참여

8. 책임

 

① 수집제한의 원칙 : 개인정보의 수집은 적법하고 정당한 절차에 의해 정보주체의 인지나 동의를 얻은 후 수집되어야 한다.
② 정보 정확성의 원칙 :  개인정보를 사용 목적과 범위가 부합되어야 하며, 정확하고 완전하며 갱신되어야 한다.
③ 목적 명확화의 원칙 : 개인정보를 수집할 때에는 목적이 명확해야 하고, 이를 이용할 경우에도 최초의 목적과 모순되지 않아야 한다.
④ 이용 제한의 원칙 : 개인정보를 정보주체의 동의가 있는 경우나 법률의 규정에 의한 경우를 제외하고는 명확화된 목적 이외의 용도로 공개되거나 이용되어서는 안 된다.
⑤ 안전보호의 원칙 : 기업이 수집, 보존하고 있는 개인정보가 분실, 불법적인 접근, 파괴, 정보 수정 및 공개와 같은 위험에 대비하여 합리적인 안전보호 장치를 마련해야 한다.
⑥ 개인 참가의 원칙 : 개인정보를 제공한 개인은 자신과 관련된 정보의 존재 확인, 열람 요구, 이의 제기 및 정정, 삭제, 보완 청구권을 가진다.
⑦ 공개의 원칙 : 개인정보에 관한 개발, 운용 및 정책에 있어 일반적인 공개의 원칙이 적용되어야 한다.
⑧ 책임의 원칙 : 개인정보를 관리하는 자는 이에 대한 책임을 져야 한다.

 

OECD 프라이버시 8원칙 개인정보보호법  제3조 (개인정보보호원칙)
 1원칙 : 수집제한의 원칙
개인정보의 수집은 적법하고 정당한 절차에 의해 정보주체의 인지나 동의를 얻은 후 수집되어야 한다.
 – 목적에 필요한 최소정보의 수집(제1항)
개인정보처리자는 개인정보의 처리 목적을 명확하게 하여야 하고 그 목적에 필요한 범위에서 최소한의 개인정보만을 적법하고 정당하게 수집하여야 한다.
 – 사생활 침해를 최소화하는 방법으로 처리(제6항)
⑥ 개인정보처리자는 정보주체의 사생활 침해를 최소화하는 방법으로 개인정보를 처리하여야 한다.
 – 익명처리의 원칙(제7항)
⑦ 개인정보처리자는 개인정보의 익명처리가 가능한 경우에는 익명에 의하여 처리될 수 있도록 하여야 한다.
 2원칙 : 정보 정확성의 원칙
개인정보는 그 이용목적에 부합되는 것이어야 하며 이용목적에 필요한 범위내에서 정확하고 완전하며 최신의 상태를 유지해야 한다.
 – 처리목적 내에서 정확성, 완전성, 최신성 보장(제3항)
③ 개인정보처리자는 개인정보의 처리 목적에 필요한 범위에서 개인정보의 정확성, 완전성 및 최신성이 보장되도록 하여야 한다.
 3원칙 : 목적 명확화의 원칙
개인정보의 수집목적은 수집시에 특정되어 있어야 하며 그 후의 이용은 구체회된 목적달성 또는 수집목적과 부합해야 한다.
 – 처리목적의 명확화(제1항)
① 개인정보처리자는 개인정보의 처리 목적을 명확하게 하여야 하고 그 목적에 필요한 범위에서 최소한의 개인정보만을 적법하고 정당하게 수집하여야 한다
 4원칙 : 이용제한의 원칙
개인정보는 특정된 목적 이외의 다른 목적을 위하여 공개,이용,제공될 수 없다
 – 목적 범위 내에서 적법하게 처리 및 목적외 활용금지 (제2항)
② 개인정보처리자는 개인정보의 처리 목적에 필요한 범위에서 적합하게 개인정보를 처리하여야 하며, 그 목적 외의 용도로 활용하여서는 아니 된다.
 5원칙 : 안전성 확보의 원칙
개인정보는 분실 또는 불법적인 접근,파괴,사용,위조변조,공개 위험에 대비하여 적절한 안전조치에 의해 보호되어야 한다.
 – 권리침해 가능성 등을 고려하여 안전하게 관리(제4항)
④ 개인정보처리자는 개인정보의 처리 방법 및 종류 등에 따라 정보주체의 권리가 침해받을 가능성과 그 위험 정도를 고려하여 개인정보를 안전하게 관리하여야 한다.
 6원칙 : 처리방침의 공개 원칙
정보주체가 제공한 개인정보가 어떠한 용도와 방식으로 이용되고 있으며 개인정보보호를 위하여 어떠한 조치를 취하고 있는지를 공개하여야 하며 정보주체가 자신의 정보에 대하여 쉽게 확인할 수 있어야 한다
 – 개인정보 처리방침 등 공개(제5항)
⑤ 개인정보처리자는 개인정보 처리방침 등 개인정보의 처리에 관한 사항을 공개하여야 하며, 열람청구권 등 정보주체의 권리를 보장하여야 한다.
 7원칙 : 정보주체 참여의 원칙
정보주체가 제공한 개인정보를 열람,정정,삭제를 요구할 수 있는 절차를 마련해야 한다
 – 열람청구권 등 정보주체의 권리보장(제5항)
⑤ 개인정보처리자는 개인정보 처리방침 등 개인정보의 처리에 관한 사항을 공개하여야 하며, 열람청구권 등 정보주체의 권리를 보장하여야 한다.
 8원칙 : 책임의 원칙
정보관리자는 위의 제 원칙이 지켜지도록 필요한 제반조치를 취해야할 책임이 있다
 – 개인정보처리자의 책임준수․신뢰확보 노력(제8항)
⑧ 개인정보처리자는 이 법 및 관계 법령에서 규정하고 있는 책임과 의무를 준수하고 실천함으로써 정보주체의 신뢰를 얻기 위하여 노력하여야 한다.

'IT > 정보보안' 카테고리의 다른 글

PEM(Privacy Enhanced Mail)  (0) 2021.09.14
키 복구 기술  (0) 2021.09.14
재해복구시스템 유형  (0) 2021.09.14
해시 알고리즘의 조건  (0) 2021.09.14
PKI(Public Key Infrastructure, 공개키 기반구조)의 구성요소  (0) 2021.09.14
728x90

재해복구시스템 유형

<구축형태별 구분>
① 독자구축 : 재해복구시스템을 독자적으로 구축하는 방식으로, 보안 유지 및 복구의 신뢰성이 가장 높으나, 구축 및 유지비용이 가장 많이 소요된다. 비교적 규모가 큰 금융기관 등에서 주로 채택하고 있는 방식이다.

② 공동구축 : 두 개 이상의 기관이 재해복구시스템을 공동으로 이용하는 방식이다. 비용 측면에서 독자구축의 경우보다 적게 소요되지만 보안과 운용 측면에서는 고려할 사항이 많고, 광역재해 발생 시 공동이용기관 간의 동시 재해복구가 불가능하다는 단점이 있다. 이 방식에서는 공동이용기관의 합의가 매우 중요하다.

③ 상호구축 : 별도의 재해복구시스템을 구축하는 대신, 두 개 이상의 기관이 상호 간의 재해복구시스템의 역할을 수행하거나, 단일 기관이 여러 개의 정보시스템 사이트를 가지고 있는 경우에는 사이트 상호간에 서로 재해복구센터의 역할을 수행하도록 하는 방식이다. 구축 및 운영비용이 저렴한 장점이 있으나 서로 다른 기관과 이러한 방식의 재해복구시스템을 구축하는 경우 보안성 및 재해복구에 대한 신뢰성이 대단히 낮다.

<운영 주체별 구분>
① 자체 운영 : 기관 자체의 인력으로 재해복구시스템을 운영하는 방식이다. 보안성 및 신뢰성이 가장 높으나, 재해복구를 위한 추가의 인력이 확보되어야 하며 운영비용이 높다. 일반적으로 독자구축형 재해복구센터에서 사용되는 운영방식이다.

② 공동운영 : 두 개 이상의 기관이 재해복구시스템의 운영인력을 상호 공유하는 방식이다. 일반적으로 공동구축형 또는 상호구축형 재해복구시스템에서 사용되는 운영방식이다. 자체 운영에 비해 운영비용을 절감할 수 있으나, 기관 간 신뢰가 전제되어야 하고, 보안성 유지를 위한 협의가 중요하다.

③ 위탁운영 : 재해복구시스템의 운영을 민간 IDC 운영자 등 외부의 다른 기관에 위탁하는 방식이다. 정보시스템 운영기관의 보안성 유지가 가장 큰 문제로 대두되나, 위탁 운영 업체의 보안 유지에 대한 신뢰성이 높다면 전문적인 재해복구서비스를 제공받을 수 있으며 초기투자 비용이 적게 드는 장점이 있어, 최근 사용이 증가하는 추세에 있다. 미국의 대형금융기관 및 공공기관 등에서 이러한 형태의 사용 예를 볼 수 있다.

<복구 수준별 유형>
① 미러 사이트(Mirror Site) : 주요 운영 시스템 DBMS에 대한 실시간 미러링으로 주 센터와 백업센터 간 동일한 시스템 이미지 구성 및 데이터 손실이 없어 재해/장애 발생 시에도 영향이 없는 복제 시스템을 구성한다. 또한 주 센터 및 백업센터간 네트워크 이중화 구성을 통해 신속한 복구가 가능하다. 말단 사용자는 장애 상황을 알 수가 없다. (Active-Active 방식). 즉시 복구 방식.

② 핫 사이트(Hot Site) : 미러 사이트와 거의 동일한 방식이나 시설 측면에서 완벽한 이중화는 아니고, 주 센터와 백업센터 간의 DB를 직접 이중화하는 방안이다. 백업센터에서 LOG를 적용하여 DB를 갱신하는 시간이 소요된다. 재난 발생으로 영향을 받는 업무기능을 즉시 복구할 수 있도록 전산센터와 동일한 모든 설비와 자원을 보유하고 있는 거의 완전한 시설로서 수 시간 안에 가동이 이루어질 수 있다. (Active-Stand by 방식)

③ 웜 사이트(Warm Site) : 주기적으로 시스템 및 데이터 백업 테이프를 로컬이나 원격지에 보관 및 소산하는 방식으로 전통적인 백업 방식이다. 저비용 구성이 가능하고 대부분의 테이프(TAPE) 및 디스크(DISK) 백업 방식이 여기에 속한다. 부분적으로 설비가 있는 백업 사이트로서 대개 디스크 드라이브, 테이프 드라이브와 같이 가격이 저렴한 선택적인 주변기기를 가지고 있으나 주 컴퓨터는 가지고 있지 않다.

④ 콜드 사이트(Cold Site) : 주요 업무에서 발생하는 데이터, 원격지 배치(Batch)형 작업 및 비실시간 백업으로 처리한다. 재난 발생 시 새로운 컴퓨터를 설치할 수 있는 컴퓨터실을 미리 준비해 둔 것으로 별다른 장비를 가지고 있지 않다.

 

728x90

해시 알고리즘의 조건

① 압축 : 임의의 길이의 평문을 고정된 길이의 출력 값으로 변환한다.
② 일방향 : 메시지에서 해시값(Hash Code)을 구하는 것은 쉽지만 반대로 해시값에서 원래의 메세지를 구하는 것은 매우 어렵다(역방향 계산 불가능)
③ 효율성 : 메시지로부터 h(메시지)를 구하는데 많은 자원과 노력이 소요되지 않아야 한다.
④ 충돌회피(Collision Free) : 충돌이란 다른 문장을 사용하였는데도 동일한 암호문이 나오는 현상이다. h(M1) = h(M2)인 서로 다른 M1과 M2를 구하기는 계산상 불가능해야 한다.

728x90

SSL(Secure Socket Layer)

특정 Web Application을 위한 보안 프로토콜이 아닌 일반적인 인터넷 환경에서 웹 브라우저와 웹 서버 사이에서 연결형식으로 동작하는 전자상거래 보안 프로토콜이다. 넷스케이프사에서 전자상거래 등의 보안을 위해 개발하였으며 특히 전송계층(Transport Layer)의 암호화 방식이기 때문에 HTTP, FTP, Telnet, NNPT, XMPP 등 응용계층(Application Layer) 프로토콜의 종류와 관계없이 사용할 수 있다.

Netscape에서 개발한 프로토콜이다. 암호문 전송을 위해 RSA 공개키 알고리즘을 사용하고, X.509 인증서를 지원, 443번 포트를 사용하고, Transport Layer ~ Application Layer에서 동작(http, FTP, telnet, mail)한다. 비밀성, 무결성, 인증의 3가지 보안 서비스를 제공한다.

사용되는 프로토콜
① Record Protocol : 데이터 암호화, 무결성을 위한 MAC 생성, 상호 인증서 교환 및 검증의 역할, 상위계층 프로토콜의 캡슐화, MD5, SHA-1을 사용한다.
② Handshake Protocol : 세션 정보와 연결 정보를 공유, 보안인수의 결정, 인증, 협상된 보안인수의 설명 및 에러조건을 보고하기 위한 프로토콜이다.
③ Alert Protocol : 메시지의 암호화 오류, 인증서 오류 등을 전달하는 데 사용된다.
④ Change Chiper Spec Protocol : 서버와 클라이언트 상호 간의 Cipher Spec 확인을 위해 메시지를 교환하는데 사용된다.

'IT > 네트워크(Network)' 카테고리의 다른 글

방화벽(Firewall)의 종류  (0) 2021.09.14
VPN 터널 프로토콜(L2F, PPTP, L2TP)  (0) 2021.09.14
HTTPS와 S-HTTP의 차이점  (0) 2021.09.13
FTP Active와 Passive 차이  (0) 2021.08.18
GET과 POST의 차이  (0) 2021.08.18
728x90

PKI(Public Key Infrastructure) : 인증기관에 인증서를 발급받아 네트워크상에서 안전한 비밀통신을 가능하게 하는 인증서 관리 기반 구조이다. PKI의 목적은 다음과 같다.

① 기밀성(Confidentiality)

② 무결성(Integrity)

③ 부인봉쇄(Non-Repudiation)

④ 접근제어(Access Control)

⑤ 키 관리(Key Management)

 

공개키 기반구조(Public Key Infrastructure, PKI)의 구성요소

 

1. 인증서(Certificate)
    - 공개키나 공개키의 정보를 포함
    - X.509 v3

 

2. 인증기관(Certification Authority, CA)
    - 공개키 인증서 인증서 폐기목록(Certification Revoation List, CRL) 생성, 발급

    - 인증 정책 수립, 인증서 및 인증서 폐기 목록을 관리한다.

    - 공개키 인증서를 자신의 개인키로 서명한다.

    - 공개키와 개인키 쌍의 소유자 신분을 증명한다.

    - 다른 CA와 상호 인증한다.

    - CRL(Certificate Revocation List, 인증서 폐기 목록) 등록 및 인증 절차를 작성한다.
    - 공개키에 대한 공신력있는 인증기관

 

3. 등록기관(Registration Authority, RA)
    - CA와 사용자 사이에서 신분확인 및 인증서 발급 중개, 전달
    
- 사용자의 인증서 발급 요청 등록

    - 사용자 신원 확인, 인증서 요구를 승인, CA에 인증서 발급을 요청한다.
    - 디지털 인증서 신청자의 식별과 인증을 책임진다.
    - PKI를 이용하는 Application과 CA 간 인터페이스를 제공한다.
    - 대표적인 RA로는 은행, 증권사가 있다.

 

4. 저장소(Repository)
    - 공개 저장소
    - DAP 및 LDAP 등을 이용하여 X.500 디렉토리 서비스 제공

 

5. 인증서 관리 시스템

 

6. 소유자
    - 인증서를 발급 받아 전자문서에 서명하고, 암호화를 할 수 있음

 

7. 인증기관의 공개키를 사용하여 인증경로 및 전자서명을 검증하는 사용자

'IT > 정보보안' 카테고리의 다른 글

재해복구시스템 유형  (0) 2021.09.14
해시 알고리즘의 조건  (0) 2021.09.14
PKI 의 기본 개념 간단 설명  (1) 2021.09.13
전자서명 요구조건  (0) 2021.09.13
RSA 키 교환 알고리즘  (0) 2021.09.13
728x90

 

같이 일하는 후배분들에게 PKI 기본 개념을 설명해 주기 위해서 만들었던 자료입니다. 기왕 만든 김에 공개해 볼까 합니다. (10년도 더 전에 했던 내용을 정리한 거라 요즘 트렌드랑은 안 맞을 수도 있지만 기본이야 어디 가겠습니까? ㅎㅎ) 

PKI 는 Public Key Infrastructure 의 약자 입니다. 그대로 해석해서 '공개 키 기반' , 또는 '공개 키 인프라' 라고 해석할 수가 있습니다.  

 

 

 
RFC 2459 바로 그 표준에 관한 문서입니다. 이 문서를 보시면 PKI 에 관한 상세한 내용을 다 아실 수가 있습니다. 예전에 눈에 모래바람이 일어날 정도로 열심히 봤던 기억이 나는군요. X.509 는 인증서 포맷을 의미합니다.


 

 


이 PKI 기반을 이해할려면 3가지 기본적으로 알고 있어야 하는게 있습니다. 바로 위의 세가지 입니다. 보통 '해쉬 함수' 라고 불리는 Message Digest 와 (그렇지만 일반적으로 Computer Science 에서 부르는 Hash 는 Data Structure 에서 쓰이는 형식을 의미 하기 때문에 보안쪽에서 쓰이는 '해쉬 함수'는 Cryptographic Hash Function 이라고 구별해서 부릅니다. ) 대칭키 (Symmetric Key Algorithm) 과 비 대칭키 (Asymmetric Key Algorithm) 입니다. 

 

 


해쉬 (Cryptographic Hash - 암호화 해쉬) 함수입니다. 주로 하는일은 메시지 축약 (Message Digest) 입니다. 아무리 긴 파일이라도 간단하게 축약시킵니다. 대표적인 암호화 해쉬 알고리즘으로는 MD5 와 SHA-1 이 있습니다. MD5 는 128bit 이고 SHA-1 은 160bit 입니다. 즉 결과가 MD5 는 16바이트 , SHA-1 은 20 바이트로 나온다는 것입니다.
사실 토렌트를 사용하시는 분이면 이 암호화 해쉬가 사용된 부분을 심심치 않게 볼 수가 있습니다. 토렌트상에 존재하는 영화파일들은 파일 이름을 자기 맘대로 정할수가 있기 때문에, 이 해쉬값으로 같은 파일인지 체크할 수가 있습니다. 즉 파일 이름이 다르더라도, 크기와 해쉬값이 같다면 같은 파일이라고 볼 수 있다는 것이지요. 
 

 

 


일반적으로 '암호화' , '복호화' 라는 말을 쓰긴 합니다. 그런데 이 용어는 나중에 전자서명쪽을 설명 하다보면 혼선을 줄 수가 있습니다.  따라서 Encryption 과 Decryption 이라는 용어로 통일하기로 합니다.  무엇인가 변경을 가하는 것을 인크립션 (Encryption) 이라 하고, 변경된 것을 다시 원 상태로 돌리는 것을 디크립션(Decryption) 이라고 보시면 됩니다. 

 

 

 
대칭키 알고리즘 입니다. 말 그대로 키를 한개만 이용하는 것을 말합니다. 즉 인크립션 (Encryption) 과 디크립션 (Decryption) 시 한개의 같은 키를 이용합니다. (원리만 설명하는 것이니 패딩이니 , 이니셜 벡터니 하는 것을 건너 뛰겠습니다) 일반적으로 영화 같은데서 나오는 암호관련한 비밀번호 원리는  거의 이것에 해당합니다. 물론 유닉스의 비밀번호는 단방향이라 암호화 해쉬 함수를 쓰긴 합니다만. 무엇인가 암호화 된 것을 풀어낸다는 말이 나온다면 거의 이것을 의미합니다. 알고리즘 자체는 바이트열에 대해서 XOR 연산등을 적용하는 것들이 대부분 이기 때문에 속도가 빠른편에 속합니다. 트리플 데스 (3DES) 나 AES 가 대표적인 알고리즘 입니다. 

 

 


바로 이런식으로 활용됩니다. 평문(Plain Text) 는 아무 변조가 가해지지 않은 글을 의미합니다. 원본이라고 보셔도 무방합니다. 일반적으로 누구나 볼 수 있는 문서 같은 의미로 받아들이면 됩니다. 반면 싸이퍼 텍스트(Cipher Text)는 변조된 문서입니다. 암호문이라고도 볼 수 있습니다. 내용을 알아볼 수가 없는 문서라고 보시면 됩니다.
이런 변경은 양방향이며 인크립션 (Encryption)과 디크립션 (Decryption)시 같은 대칭키 (Symmetric Key)를 이용합니다.

 

 

 
비대칭키 알고리즘 (Asymmetric Key) 입니다. 대칭키가 아니라는 말입니다. 이 알고리즘은 두개의 키를 이용합니다. 개인키 (Private Key)와 공개키 (Public Key) 가 바로 그것입니다. 키를 두개 쓰기 때문에 '대칭키가 아니다' 라는 비대칭키 알고리즘이라고 합니다. 이 알고리즘은 인크립션(Encryption)과 디크립션(Decryption)시 서로 다른 키를 씁니다.  대표적인 알고리즘으로 RSA가 있습니다. 세사람의 이름을 따서 부릅니다. 이 알고리즘은 소수(Prime Number: 1과 그 자신외에는 나눠지는 수가 없는 수)를 이용합니다. 따라서 조금 긴 내용을 인크립션(Encryption) 이나 디크립션 (Decryption)하면 시간이 걸립니다. 이 알고리즘의 근거는 리만 가설에 근거하기 때문에 미드 넘버스(Numbers) 에서는 이 가설을 깨서 모든 보안 상황을 다 제거하는 내용도 등장합니다. (뭐 현실은... -ㅅ- )

 

 

 


평문 (Plain Text)를 공개키(Public Key) 를 이용해서 인크립션(Encryption)합니다. 여기서 싸이퍼 텍스트(Cipher Text)라는 말을 안쓰고 Encrypted Text 라는 용어를 쓴것은 이게 딱히 암호화다 아니다 라고 말하기가 애매하기 때문입니다. 바로 뒷 장에 개인키(Private Key)를 이용해서 인크립션(Encryption)하는 내용도 나오기 때문입니다. 그림에서 보듯이 공개키(Public Key)를 이용해서 인크립션(Encryption)을 한다면 다시 디크립션(Decryption)할려면 꼭 쌍이 이루어 지는 개인키(Private Key)를 이용해야 합니다. 

보통 공개키를 가지고 인크립션을 하능 경우는 원하는 상대만 풀어주기를 바라기 때문에 암호화쪽에서 많이 씁니다. 그래서 통칭 공개키 '암호화', 개인키 '복호화' 라는 용어를 쓸때도 있습니다. (절대적인것이 절대 아닙니다) 

 

 


이 부분은 개인키(Private Key)를 가지고 인크립션(Encryption) 하는 경우입니다. 역시나 Encrypted Text 를 쌍이 되는 공개키(Public Key)로 풀어줍니다. 개인키 (Private Key)는 개인만 가지고 있고 공개키(Public Key)는 공개적으로 공개가 되어 있다는 가정하에 이러한 케이스는 개인이 보낸 내용을 증명할 때 많이 쓰입니다.  따라서 이러한 경우를 보통 개인키'전자서명' , 공개키 '서명 검증' 이라고 불립니다. 


 

 



이런 내용의 기반이 되는 가정이 있습니다. 바로 이름 그대로의 '공개키(Public Key)' 와 '개인키(Private Key)' 입니다. 

 

개인키 (Private Key) 
오직 개인 혼자만이 가지고 있는 키 입니다. 누구에게도 공유하지 않고 자기 자신만 가지고 있습니다. 

공개키 (Public Key)
공개적으로 공개가 되어 있는 키입니다. 누구나 이 공개키를 얻을 수 있습니다. 

 


위와 같은 가정하에서 A 라는 사람만 풀어볼 수 있는 내용을 전달하고 싶으면, 만천하에 공개되어 있는 공개키로 인크립션 (Encryption) 한다면 , 그 당사자만 풀어볼 수가 있습니다. (A의 개인키는 A만 가지고 있으니까요) 

또 A 라는 사람이 어떠한 문서를 보냈다는 것을 확인하고 싶다면, A의 개인키로 인크립션 (Enctyption) 한 내용을 추가하면 됩니다. 그러면 공개키로 디크립션(Decryption) 해서 A 가 보냈는지 증명할 수가 있습니다.   

이 두가지가 바로 공개키 암호화 와 전자서명의 원리입니다. 그리고 이런 공개키 암호화와 전자서명을 사용할 수 있게 기반을 마련해둔 것이 PKI (Public Key Infrastructure) 입니다. 

 

 


그러면 실제세계에서 어떻게 쓰이는지 알아보기로 합니다. 설명에서 잠깐 언급했듯이 비대칭키 알고리즘은 대칭키 알고리즘에 비해서 많이 느립니다. 이 속도차이 때문에 현실세계에서는 살짝 복잡한 구조를 이용합니다. 

 

 


공개키 암호화에 쓰이는 포맷입니다. 물론 이보다 더 자세히 들어가면 더 복잡해지지만, 일단 이정도로 개념을 알고 있어도 충분할 것입니다. 앞에서 설명했듯이 공개키 암호화의 핵심은 받을 당사자만 풀어볼 수 있게 당사자의 공개키로 내용을 인크립션 (Encryption) 하는 것이 목적입니다.

그런데 위의 그림을 보면 임시 대칭키를 생성합니다. 이 이유가 바로 속도 차이입니다. 평문 (Plain Text) 가 만약 크기가 많이 크다면 이를 공개키를 이용해서 Encrypt 하는데 시간이 많이 걸립니다. 그래서 임시 대칭키를 자동으로 생성하고 이 대칭키로 평문 (Plain Text)을 Encrypt 해서 싸이퍼 문(Cipher Text)로 변경합니다. 그리고 그 생성한 대칭키를 메시지를 받을 A의 공개키(Public Key)로 Encrypt 합니다. (이 Encrypt 된 임시 대칭키를 풀 수 있는 사람은 세상에 A 본인 밖에 없습니다) 그래서 'Cipher Text' 와 A의 공개키로 Encrypt 한 'Encrypted Key' 를 한꺼번에 A에게 보내면 A는 'Encrypted Key'를 자신의 개인키 (Private Key) 로 Decrypt 해서 임시 대칭키를 얻어내고 그 임시 대칭키로 다시 Cipher Text 를 Decrypt 합니다. 그러면 평문(Plain Text)를 얻어낼 수 있는 것이지요. 

 

 


전자서명 프로세스의 간단한 설명입니다. 전자서명은 보낸 당사자가 보냈다는 것을 확인하는 절차입니다. 즉 평문 (Plain Text) 자체를 Encrypt 할 필요가 없다는 것입니다. 따라서 평문(Plain Text)를 암호화 해쉬 함수 (Cryptographic Hash Function) 로 축약을 하고 그 축약된 결과를 개인키(Private Key)로 Encrypt 합니다. 이 것을 Signature 라고 편의상 부르기로 합니다. (16 바이트 아니면 20바이트를 Encrypt 하기 때문에 속도가 빠릅니다) 이 Encrypt 한 결과와 평문(Plain Text)을 함께 받을 사람에게 보냅니다. 그러면 메시지를 받는 사람은 보낸 사람의 공개키(Public Key)를 구해서 (공개키 이기 때문에 쉽게 구할 수가 있습니다) Signature 를 Decrypt 합니다. 그러면 축약된 결과가 나오면 같이 들어 있는 평문 (Plain Text) 을 암호화 해쉬 함수로 축약을 하고 그 결과를 앞에서 Signature 를 Decrypt 한 결과와 비교합니다. 같다면 A 가 보낸 문서임을 확신할 수가 있는 것입니다. 말 그대로 서명을 확인 하는 것입니다. 


 

 


자 그렇다면 '공인 인증서'란 무엇일까요? 인터넷 뱅킹을 이용한다면 필수적으로 사용할 수밖에 없는 '공인 인증서' 그것에 관해서 이야기 해 보겠습니다. 

 

 


PKI 의 기본 가정중에서 개인키(Private Key)는 자신만이 소유하고, 공개키 (Public Key)는 공개해서 다른 사람도 쉽게 구할 수 있다고 했었습니다. 사실 PKI 란 이런 일이 쉽게 가능하도록 인프라를 갖춰두는 것입니다. 

 

 


그래서 공인 인증 기관이 등장하는 것입니다. 인증서 비밀번호니, 인증서를 다운 받는다는 둥, 모든 것이 인증서에 집중되어 있는 것처럼 보이지만 사실 가장 중요한 것은 개인키(Private Key)입니다. 보안회사들이나 은행권들은 저 개인키(Private Key)의 존재를 숨기고 싶어서 숨긴것이 아니라, 이 PKI 개념 자체를 설명하기가 부담스러워서 숨긴 것입니다. (사실 은행의 담당자들도 제대로 알지 못할것입니다 ㅎㅎ) 

 

 


그래서 공인 인증 기관은 인증서를 발행하는 것이 주요 업무가 아니라 실은 개인키와 공개키 쌍을 만들고 자신이 그 키들을 만들었다고 인증서를 발행하는 것입니다. 

즉 제일 중요한 개인키(Private Key)와 공개키(Public Key) 쌍을 만들고, 그 개인키(Private Key)를 공인 인증 기관에서 적법한 절차를 통해서 만들었다고 인증서를 발행하는 것입니다. (명품백이나 보석류를 사면 주는 인증서나, 강아지 분양 보증서 등등하고 연관 지어보면 명확할 것입니다) 그 개인키(Private Key) 를 보증하기 위해서 그 쌍이 되는 공개키(Public Key)가 바로 인증서에 들어 있습니다. 그리고 그 인증서를 공인 인증 기관이 정식으로 발행했다는 것을 알리기 위해서 '공인 인증 기관의 전자 서명'이 바로 인증서에 들어 있습니다. (그리고 인증서의 대상, 유효기간 등등도 포함되어 있습니다.) 그리고 나서 이 인증서는 신청한 사람한테만 주는 것이 아니라, 공개된 위치에 저장해서 요청하는 사람에게 내려보내 줄 수 있는 시스템이 갖춰져 있습니다. (보통 공인 인증 기관의 LDAP 에 저장됩니다) 

그래서 은행에서 발급받는 '공인 인증서'라는 것은 실은 '개인키 + 인증서' 쌍으로 되어 있습니다. 못 믿겠으면 Windows 사용자 분들은 NPKI 폴더를 뒤져서 자신의 CN 폴더 안에 저장된 파일들을 살펴보세요. 

 

 


그러면 공개가 원칙인 인증서에 왠 비밀번호 인가? 라는 생각이 드실만 할것입니다. 이제 지금까지 설명을 통해서 대충 눈치를 채셨겠지만, 바로 개인키 (Private Key)에 대한 비밀번호입니다. 

 

 


개인만이 소유해야 하는 개인키(Private Key)가 아무런 보안 장치 없이 공개되어 있으면 곤란하겠지요? 그래서 개인키(Private Key)에는 기본적으로 저장하는 형식이 있습니다. (물론 비밀번호를 필요로 하는 형식입니다) PKCS7 이나 PKCS12 가 바로 그것입니다. 

 

 


이상으로 길고 긴 글을 마치게 되었습니다. 이걸 통해서 PKI 를 다 이해할 수 있을 것이라고는 생각하지 않고 만들었습니다. 다만 같이 일하게 되는 후학들에게 PKI 의 기본 개념을 조금이라도 쉽게 설명하고 싶어서 작성한 KeyNote 입니다. 이 블로그에 올리는 이유는 혹시라도 이 내용을 바탕으로 또 다른 사람에게 이 자료를 가지고 설명할 때 설명이 조금이라도 매끄러우면 좋겠다고 사족을 달아둔 것입니다. 올려둔 그림으로 충분하리라 판단하지만 KeyNote 원본을 요청하실 분은 메일 주소를 달아 주시거나, 아니면 제가 전달할 수 있는 다른 방법을 찾아보겠습니다. 

 

출처 : https://crazia.tistory.com/entry/PKI-PKI-%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%EA%B0%84%EB%8B%A8-%EC%84%A4%EB%AA%85

'IT > 정보보안' 카테고리의 다른 글

해시 알고리즘의 조건  (0) 2021.09.14
PKI(Public Key Infrastructure, 공개키 기반구조)의 구성요소  (0) 2021.09.14
전자서명 요구조건  (0) 2021.09.13
RSA 키 교환 알고리즘  (0) 2021.09.13
커버로스(Kerberos)  (0) 2021.09.13
728x90

① 서명자 인증(Authentication) : 전자서명을 생성한 서명인을 검증 가능(서명자의 공개키로)
② 부인방지(Non-Repudiation) :  서명인은 자신이 서명한 사실을 부인 불가
③ 위조불가(Unforgeable) : 서명인의 개인키가 없으면 서명을 위조하는 것은 불가함
④ 변경불가(Unalterable) : 이미 한 서명을 변경하는 것은 불가
⑤ 재사용불가(Not-Reusable) :  한 문서의 서명을 다른 문서의 서명으로 재사용 불가
⑥ 재생방지(Replay Protection) : 메시지를 유일하게 하기 위해 연속번호 또는 타임스탬프(Timestamp)를 포함시킨다면 수신자가 검사하여 메시지가 탈취되거나 재생되지 않았음을 보장할 수 있음(재생공격에 강하게 함)
⑦ 무결성 (Integrity) 기능 제공 : 문서내용 변경 여부를 확인할 수 있어야 함

728x90

HTTPS와 S-HTTP의 차이점

① https

먼저 사전적 정의를 시작으로 알아보도록 하겠습니다.

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)는 하이퍼 텍스트 전송 규약(HTTP) 계층 아래의 SSL 서브 계층에서 사용자 페이지 요청을 암호화, 복호화하는 브라우저에 설치된 넷 스케이프 웹 프로토콜. TCP/IP에서 HTTP 포트 80 대신에 포트 443을 사용하고, SSL은 RC4 스트림 암호 알고리즘 용으로 40Bit 키 크기를 사용한다. 넷 스케이프 브라우저에서 https://URL로 페이지를 지정하면 HTTPS는 그것을 암호화하고, 도착된 https://URL은 HTTPS 서브 계층에서 복호화된다. HTTPS와 SSL은 사용자의 송신자 인증을 위해 서버로부터 X.509 디지털 인증서 사용을 지원한다.

사전적 정의의 단어가 어렵지만 자세히 읽어보시면 쉽게 이해하실 수 있으실거라 생각됩니다. 쉽게말하자면, HTTP에 SSL을 합친것이 바로 HTTPS입니다. 

인터넷의 URL을 예시로 간단하게 설명해보겠습니다.
https://www.naver.com

사용자는 http라는 통신 문법으로 www에 있는 naver라는 이름의 아이와 인터넷 연결을 통해 이야기하고 자료를 주고 받고 하고싶어합니다. 이때, http라는 문법에 다른사람들이 엿보거나 훔쳐갈 수 없도록 SSL이라는 도구를 이용해 안전성과 보안성을 높입니다. 그리하여 http라는 통신 문법과 SSL이란 보안 도구를 합쳐 https라는 이름의 통신 문법이 탄생하게 됩니다. 

② shttp(S-HTTP)

먼저 앞서 설명한 바와 같이 사전적 정의와 함께 알아보겠습니다.

S-HTTP(Secure Hypertext Transfer Protocol)는 웹 상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나이다. 웹 상에서 네트워크 트래픽을 암호화하는 것에는 주로 2가지 방법을 사용하는데 한 가지는 S-HTTP이고 다른 하나는 SSL(Secure Socket Layer)이다. S-HTTP는 클라이언트와 서버간에 전송되는 모든 메시지를 각각 암호화 한다. S-HTTP에서 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능하다.

정의를 잘 읽어보시면 https와의 차이점을 찾아보실 수 있으실거라 생각됩니다. shttp와 https의 차이점은 바로 암호화 방식에서의 차이입니다. https의 암호화 방식은 스트림으로서 모든 통신의 데이터를 암호화하는 방식이지만, shttp는 SSL을 사용하지 않고, http와 같은 포트를 사용하면서 Message 단위로 암호화를 하게됩니다.

둘의 차이를 좀 더 쉽게 설명해보겠습니다. 

ex) [송신] 나는 밥을 먹는다. 

라는 문장이 있다면 https는 1fae8afs153fesf5s135af3라고 모든것이 암호화되어 전송된다고 가정한다면, shttp는 [송신] a4e6s8f4ase86ffsd15라고 메시지 단위로만 암호화를 하여 전송하고 수신하는 방식입니다.

-----------------------------------------------------------------------------------------------------------------------------------

S-HTTP (Secure HTTP)

S-HTTP는 월드와이드웹 상의 파일들이 안전하게 교환될 수 있게 해주는 HTTP의 확장판이다. 각 S-HTTP 파일은 암호화되며, 전자서명을 포함한다. S-HTTP는 잘 알려진 또다른 보안 프로토콜인 SSL의 대안이다. 두 가지의 주요 차이점은, S-HTTP는 틀림없는 사용자라는 것을 입증하기 위한 인증서를 클라이언트에서 보낼 수 있는 반면에, SSL에서는 오직 서버만이 인증할 수 있다는 점이다. S-HTTP는 은행을 대리해 서버가 있는 곳, 또는 사용자ID와 패스워드를 사용하는 것보다 좀더 안전한 사용자로부터 인증이 필요한 상황에서 보다 많이 사용될 것 같다.

S-HTTP는 어떠한 단일 암호화 시스템을 사용하지 않지만, RSA 공개키/개인키 암호화 시스템은 지원한다. SSL은 TCP 계층보다 더 상위의 프로그램 계층에서 동작한다. S-HTTP는 HTTP 응용의 상위 계층에서 동작한다. 두 개의 보안 프로토콜들 모두가 한 사용자에 의해 사용될 수 있지만, 주어진 문서에 대해서는 오직 그중 하나만이 사용될 수 있다. Terisa Systems은 인터넷 보안도구 내에 SSL과 S-HTTP 모두를 포함한다.

AOL, 컴퓨서브, IBM, 넷스케이프, Prodigy, 그리고 Spyglass 등이 S-HTTP를 지원한다. 새로 나오는 브라우저들은 SSL과 S-HTTP를 모두 지원한다. S-HTTP는 IETF에 표준안으로 상정되었다. RFC 2660에 S-HTTP에 대해 자세한 설명이 나와있다.

 

-----------------------------------------------------------------------------------------------------------------------------------

 

sHTTP는 각각의 메시지를 안전하게 전송하기 위해 사용하며, 웹상의 파일들이 안전하게 교환될 수 있도록 해주는 HTTP의 확장판(HTTP만 지원하는 한계점)이다. HTTP를 캡슐화하면서도 HTTP와 같은 Message Base 프로토콜이며, HTTP와 동일한 요청(Request)과 응답(Response) 구조를 이용한다. SSL이 전송계층에서 작동하는 것에 비해 sHTTP는 응용계층에서 보안 기능을 제공하므로 더 효율적이다. (shttp://형식)

728x90

① 대칭키 알고리즘의 종류를 3가지 이상 쓰시오.

DES, 3DES, AES, IDEA, Blow, SEED

 

② 공개키 알고리즘의 종류를 3가지 이상 쓰시오.

RSA, Rabin, ECC, ElGamal

728x90

<RSA(Revest, Adi Shamir, Leonard Adelman) 키 교환 알고리즘>


Rivest, Adi Shamir, Lernard Adelman이 설계하였으며 소인수분해의 어려움에 기반을 둔 공개키 암호 알고리즘이다. RSA 방법은 공개키 암호화 기법으로 송신자는 수신자의 공개키를 이용해서 암호화를 수행하고 수신자는 전송된 암호문을 자신만 보유한 수신자의 개인키를 사용하여 복호화를 수행하는 방법이다. 즉, 공개키로 암호화를 수행하고 개인키로 복호화를 수행하는 공개키 암호화 알고리즘의 원칙을 준수한다는 것이다.

아래는 위키백과 내용입니다.

-----------------------------------------------------------------------------------------------------------------------------------

RSA 암호는 공개키 암호시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다. RSA가 갖는 전자서명 기능은 인증을 요구하는 전자 상거래 등에 RSA의 광범위한 활용을 가능하게 하였다.

1978년 로널드 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 레너드 애들먼(Leonard Adleman)의 연구에 의해 체계화되었으며, RSA라는 이름은 이들 3명의 이름 앞글자를 딴 것이다. 이 세 발명자는 이 공로로 2002년 튜링상을 수상했다. 그러나 RSA 방식을 제일 먼저 개발한 사람은 영국 GCHQ에 근무하던 수학자였으며, 이보다 빠른 1973년도에 개발하게 된다. 이 내용은 GCHQ에서 비밀로 취급되었으며, 이후 1997년 세상으로 발표되게 된다.

RSA 암호체계의 안정성은 큰 숫자를 소인수 분해하는 것이 어렵다는 것에 기반을 두고 있다. 그러므로 큰 수의 소인수 분해를 획기적으로 빠르게 할 수 있는 알고리즘이 발견된다면 이 암호 체계는 가치가 떨어질 것이다. 1993년 피터 쇼어는 쇼어 알고리즘을 발표하여, 양자 컴퓨터를 이용하여 임의의 정수를 다항 시간 안에 소인수 분해하는 방법을 발표하였다. 따라서 양자 컴퓨터가 본격적으로 실용화되면 RSA 알고리즘은 무용지물이 될 것이다. 그러나 양자 컴퓨터가 이 정도 수준으로 실용화되려면 아직 여러 해가 더 필요할 것으로 보인다.

RSA 암호화 알고리즘은 1983년에 발명자들이 소속되어 있던 매사추세츠 공과대학교(MIT)에 의해 미국에 특허로 등록되었고, 2000년 9월 21일에 그 특허가 만료되었다.

RSA는 두 개의 키를 사용한다. 여기서 키란 메시지를 열고 잠그는 상수(constant)를 의미한다. 일반적으로 많은 공개키 알고리즘의 공개키(public key)는 모두에게 알려져 있으며 메시지를 암호화(encrypt)하는데 쓰이며, 암호화된 메시지는 개인키(private key)를 가진 자만이 복호화(decrypt)하여 열어볼 수 있다.

공개키 알고리즘은 누구나 어떤 메시지를 암호화할 수 있지만, 그것을 해독하여 열람할 수 있는 사람은 개인키를 지닌 단 한 사람만이 존재한다는 점에서 대칭키 알고리즘과 차이를 가진다.

RSA는 소인수 분해의 난해함에 기반하여, 공개키만을 가지고는 개인키를 쉽게 짐작할 수 없도록 디자인되어 있다.

보다 이해하기 쉬운 예를 들자면, A라는 사람에게 B라는 사람이 메시지를 전하고자 할 때 B는 A의 열린 자물쇠를 들고 와 그의 메시지를 봉인(공개키 암호화 과정에 해당)하고, 그런 다음 A에게 전해 주면, 자물쇠의 열쇠(개인키에 해당)를 가지고 있는 A가 그 메시지를 열어보는(개인키 복호화 과정에 해당) 식이 된다. 중간에 그 메시지를 가로채는 사람은 그 열쇠를 가지고 있지 않으므로 메시지를 열람할 수 없다.

메시지와 공개키 모두를 알 수 있다면 변조된 메시지를 보낼 수 있기 때문에, 실제로는 수신측의 공개키만을 사용하여 암호화하는 경우는 드물다. 송수신 양측의 키쌍을 사용하는 방법으로는 A의 개인키로 암호화 -> B의 공개키로 암호화 한 메시지를 전달하고 복호화 과정은 B의 개인키로 복호화 -> A의 공개키로 복호화로 구성된 방식이 일반적이다. RSA의 디자인 상, 그 열쇠(개인키에 해당)는 자물쇠의 형태(공개키에 해당)만 보고서는 쉽게 제작할 수가 없게 되어 있다.

'IT > 정보보안' 카테고리의 다른 글

PKI 의 기본 개념 간단 설명  (1) 2021.09.13
전자서명 요구조건  (0) 2021.09.13
커버로스(Kerberos)  (0) 2021.09.13
AES(Advanced Encryption Standard)  (0) 2021.09.13
암호문 공격방식  (0) 2021.09.13
728x90

티켓 발급 서버(TGS : Ticker Granting Server)를 사용하며, TTP(Trusted Third Party) 방식이다. TGS에서 발급받은 티켓을 사용하여 서버 인증을 하며 대칭키 암호 방식을 사용한다. 키 분배 센터를 통해 메시지 인증을 할 수 있으므로 MITM 공격이 불가능하다.

 

장점

커버로스는 당사자와 당사자가 인증을 요청하는 서비스 간의 통신 내용을 암호화 키 및 암호 프로세스를 이용하여 보호하기 때문에 데이터의 기밀성과 무결성을 보장할 수 있다.

 

단점

커버로스는 모든 당사자와 서비스의 암호화 키를 키 분배 센터에서 가지고 있기 때문에 키 분배 센터가 단일 오류 지점(Single point of failure)이 되어 키 분배 센터에 오류가 발생하면 전체 서비스를 사용할 수 없다. 또한 커버로스 시스템에서는 사용자의 비밀키가 사용자의 워크스테이션에 임시로 저장되기 때문에 사용자의 워크스테이션에 침입하는 침입자에 의하여 유출될 수 있으며, 사용자의 세션키도 사용자의 워크스테이션에 임시로 저장되기 때문에 침입에 취약하다. 커버로스는 패스워드 추득(Password guessing) 공격에 취약하며, 사용자가 패스워드를 바꾸면 비밀키도 변경해야 하는 번거로움이 있다.

'IT > 정보보안' 카테고리의 다른 글

전자서명 요구조건  (0) 2021.09.13
RSA 키 교환 알고리즘  (0) 2021.09.13
AES(Advanced Encryption Standard)  (0) 2021.09.13
암호문 공격방식  (0) 2021.09.13
스테가노그래피와 크립토그래피  (0) 2021.09.13
728x90

① 대칭키 알고리즘 중 하나이다.

② DES의 단점을 극복하기 위해 공모를 통해 만들어진 암호화 기법, 현 미국 표준 암호화 알고리즘이다.

③ 공모 시 규칙 : 공개적으로 밝혀야 함. 로열티 없이 사용 가능. 128Bit 블록을 위한 대칭적인 블록암호이어야 함. 128, 192, 256Bit의 키 길이를 제공해야 함. 10/12/14 Round

④ Rijndael 알고리즘을 사용한다.

⑤ AES 선정 기준 : Security, Speed, Robustness

⑥ H/W, S/W의 구현이 용이하고 Smart Phone 등 Mobile 단말기 암호화에 좋다.

'IT > 정보보안' 카테고리의 다른 글

RSA 키 교환 알고리즘  (0) 2021.09.13
커버로스(Kerberos)  (0) 2021.09.13
암호문 공격방식  (0) 2021.09.13
스테가노그래피와 크립토그래피  (0) 2021.09.13
해시함수 공격 기법  (0) 2021.09.01
728x90

<암호문 공격방식>

① 암호문 단독 공격(Ciphertext Only Attack)

 : 암호 해독자는 단지 암호문 C만을 갖고, 이로부터 평문 P나 키 K를 찾아내는 방법이다. 평문 P의 통계적 성질, 문장의 특성 등을 추정하여 해독한다.

② 기지 평문 공격(Known Plaintext Attack)

 : 암호 해독자는 일정량의 평문 P에 대응하는 암호문 C를 알고 있는 상태에서 해독하는 방법이다. 암호문 C와 평문 P의 관계로부터 키 K나 평문 P를 추정하여 해독한다.

③ 선택 평문 공격(Choosen Plaintext Attack)

 : 암호 해독자가 사용된 암호기에 접근할 수 있다. 평문 P를 선택하여 그 평문 P에 해당하는 암호문 C를 얻어 키 K나 평문 P를 추정하여 암호를 해독하는 방법이다.

④ 선택 암호문 공격(Choosen Ciphertext Attack)

 : 암호 해독자가 암호 복호기에 접근할 수 있어 암호문 C에 대한 평문 P를 얻어내 암호를 해독하는 방법이다.

'IT > 정보보안' 카테고리의 다른 글

커버로스(Kerberos)  (0) 2021.09.13
AES(Advanced Encryption Standard)  (0) 2021.09.13
스테가노그래피와 크립토그래피  (0) 2021.09.13
해시함수 공격 기법  (0) 2021.09.01
블록암호화 공격 기법  (0) 2021.09.01
728x90

<스테가노그래피> - 비밀통신(메시지 존재 자체를 은닉)
스테가노그래피(steganography)는 전달하려는 기밀 정보를 파일, 메시지, 이미지 또는 비디오를 다른 파일, 메시지, 이미지 또는 비디오 안에 숨기는 심층 암호 기술이다. 스테가노그라피라고도 쓴다.
스테가노그래피라는 단어는 그리스어 스테가노(στεγᾰνός)는 "덮어지거나 감추어진" 뜻과 "통신하다"는 그래피(γραφή)를 결합한 것이다.
스테가노그래피는 비밀키 암호라고 볼 수 있다. 스테가노그래피 방법은 메시지의 존재 자체를 은폐하는 방법이다. 간단한 예로는 고전부터 쓰이는 단순한 메시지를 숨기는 방식으로 식초나 레몬을 이용하여 종이에 쓴 글자를 보면 전혀 보이지 않지만, 종이에 살짝 불로 가열해 주면 식초 안의 아세트산에서 산수와 산소가 날아가고 남아 있는 탄소가 열에 타서 글자가 나타나는 방식이지만, 현대에서는 파일의 LSB나 이미지 파일의 픽셀 RGB정보에서 각 픽셀의 LSB를 변화시켜 메시지를 숨기는 방식 등이 있다. 스테가노그래피가 많이 쓰이는 파일은 주로 이미지와 MP3 등의 매체이며 문서파일에 메시지를 숨기는 경우 또한 많이 쓰이고 있다. 문서파일의 경우, docs나 pptx의 경우에는 압축파일의 기능을 가지고 있으므로 압축해제로 그 안에 숨기거나 또는 문서내용과 섞어 메시지를 숨기기도 한다. 장점으로는 파일안에 파일을 숨기는 방식이며 숨긴 방식을 모르면 제 3자가 알아채기 힘들다. 암호화의 경우 제 3자도 역시 암호화된 데이터라는 것을 간파하고 복호화를 시도할 수 있지만 스테가노그래피의 경우 암호화 여부 조차 알기 힘들기 때문에 더욱 안전하다. 하지만 본래 파일의 해시값(MD5, SHA1)을 알고 있다면 해시값 대조를 통하여 알아낼 수 있다. 잘못된 알고리즘으로 인하여 커버데이터를 손상시켜 의심을 유발할 수 있으며 대량의 데이터를 은닉하기 힘들다는 단점이 있다. 또한 평범한 파일 안에 비밀 파일을 넣기 때문에 겉으로 드러나는 메시지보다 파일 용량이부풀려질 수밖에 없어 의심을 살 수 있다는 것이며 스테가노그래피 기법을 통해 숨기려는 파일은 대부분 암호화가 되어 있지 않기 때문에 스테가노그래피라는 점만 확인되면 툴을 이용해 비밀 메시지가 바로 드러날 수 있다는 단점이 있다.

<크립토그래피> - (내용의 암호화)
=->전치법(transposition)
=->대체법(substitution)  =-> 코드(code) (단어의 대체)
=->사이퍼(cipher)(글자의 대체)

'숨겨진'이라는 뜻의 그리스어 크립토스(kryptos)에서 유래한 크립토그래피의 목적은 메시지의 존재 자체를 감추는 것이 아니라, 그 의미를 감추는 것이다.

크립토그래피에서는 메시지를 주고받는 사람들 사이에 미리 정해 놓은 규칙에 따라 메시지를 의미 없는 문자의 나열로 바꾸어 놓는다.

<전치법(transposition)>
의미 : 메시지 안에 들어 있는 문자의 위치를 바꾸는 방법

전치법의 대표적인 방법으로 스키테일 암호가 있다. 사용자는 동일한 원통형 막대기를 나눠 갖고 비밀리에 보내야할 메시지가 있을경우 스키테일에 가느다란 양피지 리본을 위에서 아래로 감은 다음 옆으로 메시지를 적는다. 리본을 풀어내면 그 내용은 아무나 읽을 수 없고 오직 같은 굵기의 원통 막대기를 가진 사람만이 메시지를 읽을 수 있다.

또한 글자의 위치를 무작위로 바꾸는 방법은 보안성이 매우 좋지만 아무런 논리가 없이 글자를 섞었다면 적 뿐만이 아니라 자기편도 해독해내기가 어렵다는 것이다.

<대체법(substitution)>
의미 : 배열은 그대로 이지만 각각의 글자가 다른 글자로 바꾸는 방법

대체법에는 두가지 방법이 있는데, 코드와 사이퍼 입니다.

위에 썼듯이 코드는 단어를 대체하는 것이고 사이퍼는 글자를 대체 하는 것입니다.

대체법의 대표적인 방법으로 시저암호가 있습니다. A는 D로 B는 E로 바꿔 읽는 단순 대치식 암호입니다.

코드는 사이퍼보다 보안성이 높은 것처럼 보입니다. 단어가 낱개의 글자보다 빈도분석법을 사용한 암호해독에 의해 무너질 확률이 훨씬 작기 때문입니다. 코드의 경우에는 수천 개에 달하는 코드워드의 참뜻이 무엇인지 밝혀내야 하기 때문이다.

그러나 조금만 더 생각해보면 코드는 사이퍼보다 두가지 결점을 가지고 있습니다. 송신자와 수신자간에 정확한 의사소통이 되기 위해서 원문 텍스트를 대체할 수 있는 코드를 미리 만들어 놓아야합니다.

1. 이 코드를 모두 담은 코드북은 수백쪽에 달하는 사전과 같아서 이를 만드는 데만도 엄청난 노력이 필요합니다. 이것을 가지고 다니는 것도 매우 불편한 일입니다.
2. 이 코드북이 적의 손에 넘어가는 상황을 상상해 봅시다. 그 피해는 상상을 초월하며, 처음부터 새로운 코드북을 만들기 위해서는 많은 노력이 필요합니다.

'IT > 정보보안' 카테고리의 다른 글

AES(Advanced Encryption Standard)  (0) 2021.09.13
암호문 공격방식  (0) 2021.09.13
해시함수 공격 기법  (0) 2021.09.01
블록암호화 공격 기법  (0) 2021.09.01
대칭키 vs 공개키(비대칭키) 암호화 차이  (0) 2021.08.25
728x90

싱글모드에서 저장된 폴더 내네 해당 파일을 압축 푼 후 실행하세요.

 

경로 - C:\Users\<사용자명>\Saved Games\Diablo II

 

UdieToo.zip
0.11MB

728x90

생일자 파라독스

- 생일이 어느 날이라도 상관없으므로 일치할 확률이 높아지는 것이다. 특정 해시값을 생성하는 메시지를 구하는 것이 아니라 해시값은 뭐든지 괜찮으며 같은 해시값을 생성하는 2개의 메세지를 구하는 것이다. 강한 충돌 내성을 깨고자 하는 공격이다.

무차별 공격

- 약한 충돌 내성을 깨고자 하는 공격이다. SHA-1의 경우 해시값이 160비트이므로 2^160회를 시행하면 원하는 메시지가 발견될 것이라 기대할 수 있다.

일치블록 연쇄 공격

- 새로운 메시지 M'을 사전에 다양하게 만들어 놓았다가 해시함수값 h(M)이 일치하는 것을 골라 사용하는 공격이다.

중간자 연쇄 공격

- 해시 중간 결과에 대한 충돌 쌍을 찾고 특정 포인트로 공격하는 방법이다.

고정점 연쇄 공격

- 메시지 블록과 연쇄변수 쌍을 얻으면 연쇄변수가 발생하는 특정점에서 동일블록을 메시지 중간에 삽입해도 전체 해시값이 변하지 않는다.

차분 연쇄 공격

- 입출력값 차이의 통계적 특성을 조사하는 기법이다.

'IT > 정보보안' 카테고리의 다른 글

암호문 공격방식  (0) 2021.09.13
스테가노그래피와 크립토그래피  (0) 2021.09.13
블록암호화 공격 기법  (0) 2021.09.01
대칭키 vs 공개키(비대칭키) 암호화 차이  (0) 2021.08.25
전자서명과 은닉서명  (0) 2021.08.25

+ Recent posts