본문 바로가기

Web Development/CommonSense

[8장] 정보보안

☞ 본 포스팅은 공부 내용을 바탕으로 정리하는 것입니다. 주관적이며 정확하지 않은 내용이 포함 되어있을 수 있습니다.

☞본 포스팅은 한빛출판사의 '컴퓨터사이언스'책을 공부한 내용을 토대로 요약한 내용입니다.

 

이 장을 마지막으로 컴퓨터 사이언스는 마무리 짓습니다.

나머지 다루지 않은 주제로는

소프트웨어공학(소프트웨어개발론), 멀티미디어, 모바일기술, 미래컴퓨팅 기술(유비쿼터스, 빅데이터) 등이 있습니다.

주관적인 판단하에 위 내용은 차후 프로그래밍이

어느정도 익숙해진 뒤에 학습해도 늦지 않을것이라 판단되어 제외시켰습니다.

 

한빛출판사의 컴퓨터사이언스 책을 한번 쭉 읽어보았습니다.

비전공자 입장에서 대부분 전체적인 맥락 및 개념들을

허상세히 알 수 있도록 자세한 예시들과, 그림을 통해 쉽게 설명해 둔 책이었습니다.

전체적으로는 만족스러웠으나, 역시 개론책이라 그런지 부분부분 깊게 알고싶은 부분은 다른 전문적인 도서를 통해

습득해야 할 것 같습니다. 또하나 아쉬웠던점은, 주관적이지만 목차구성이 다소 아쉬웠습니다.

전반적으로 만족스러운 내용을 가진 책이었고 2주간 열심히 공부했는데,

비전공자 입장에서 컴퓨터공학에대해 큰 틀을 짤 수 있게 해준 고마운 책입니다.

아마 두고두고 공부하면서 부족한 부분이 생겨날때마다 챙겨 볼 것 같습니다.

 

그럼 마지막으로 정보보안을 달려보도록 하겠습니다 !

우선 정보보안이 무엇인지 간단히 개념적으로 살펴보겠습니다.

 

1. 정보보안 개요

"정보보안이란, 정보를 저장하고 송신 및 수신하는 과정에서 발생하는 정보의 훼손,변조,유출 등을 관리하기 위한 방법"

으로 정의할 수 있습니다.

 

정보보안의 궁극적 목표

① 기밀성

허가된 사용자에게만 정보를 열람할 수 있게하는 것

② 무결성

정보를 변조,훼손할 수 없게 하는 것

③ 가용성

언제어디서나 정보를 이용할 수 있게 하는 것

세가지가 있습니다.

 

그럼 정보보안이 하는 일들은 구체적으로 무엇일까요?

여러 정보보안 서비스가 있겠지만 크게 아래 세개로 구분됩니다.

① 인증(Authentication)

통신과정에서 송신자와 수신자의 신분을 확인하는 서비스를 통해 기밀성과 무결성을 유지합니다.

② 접근제어 (Access Control)

허가된 사용자만이 정보시스템에 접근할 수 있도록 비인가 사용자의 접근을 제어합니다.

③ 부인방지 (Nonrepudiation)

전송한 정보에대해서 송신자와 수신자가 그 사실을 부인하지 못하게 합니다.

 

다음은 그럼 공격자들이 하는 공격형태를 한번 알아보겠습니다.

상당히 다양한 악성코드, 바이러스들이 있으나 크게 아래 네가지로 구분됩니다.

① 정보 방해(Interruption)

네트워크 시간에 다루었던

송신자가 수신자에게 정보를 전송해도되나요?

했던 과정이 있었죠? 그 과정중에 발생하는 형태입니다.

송신자에게 수신자가 해야 할 답변을 공격자가 대신 "안됩니다."라고 답변하는 것입니다.

이렇게되면 수신자는 정보를 받지 못하겠죠.

 

② 정보 인터셉트(Interception)

말그대로 정보를 가로채는 것인데,

이것은 정보를 전송할 때 일어납니다.

전송중인 정보를 가로채 열람할 수 있고, 유출시킬 수 있습니다.

 

③ 정보 변조(Modification)

이것 또한 정보를 전송할 때 일어나는데요,

송신자가 수신자에게 정보를 전달할 때, 그 정보를 가로채 정보를 위,변조 후 수신자에게 전달합니다.

이렇게하면 송수신 당사자는 정보가 위변조된 것인지 아닌지 전혀 그 사실을 알 수 없습니다.

 

④ 정보 위조(Fabrication)

두가지 형태로 분류할 수 있는데,

송신자가 정보 전달 허락 요청을 해요.

근데 수신자가 이 허락요청을 들은 후 응답을 하는데,

여기서 발생합니다.

수신자가 "ㅇㅋ 정보내놔"이 응답을 공격자에게 전달하게 만드는 방법입니다.

그럼 공격자는 바이러스나 악성코드등을 수신자에게 전달해 2차피해를 확산시킬 수 있습니다.

두번째는,

아얘 송신자는 제외하고, 공격자가 송신자의 역할을 대신하는 방법입니다.

공격자가 정보전송요청을 수신자에게 하고

정보전송수락 또한 수신자가 공격자에게 하게됩니다.

그럼 공격자는 언제나 수신자를 공격할 수 있는 것이죠.

 

 

다음은 이제 악성코드 및 바이러스의 개념을 살펴보도록하겠습니다.

 

2. 악성코드

악성코드란? 컴퓨터에 악영향을 줄 수 있는 모든 소프트웨어를 총칭합니다.

악성코드는 크게 세가지로 분류됩니다.

① 바이러스 (Computer Virus)

저는 흔히 악성코드와 바이러스를 구분하지 못했는데요, 바이러스는 악성코드 중 한가지더라구요.

그래서 바이러스는 무엇일까요?

바이러스는 컴퓨터 시스템 내에 있는 프로그램 또는 데이터에 바이러스 프로그램이 자기 자신을 복제하고 증식함으로써 일어나는 형태입니다. 조금 더 쉽게 말하자면 세포균열처럼 자기를 막 복사하는 나쁜친구라는 거죠.

대표적 사례로는 '예루살렘 바이러스', '미켈란젤로 바이러스' 등이 있습니다.

 

②  웜 (Worm)

웜 또한 바이러스와 유사하게 자기자신을 복제, 증식하는 악성코드 중 한가지입니다.

바이러스와의 차이점은 바이러스는 사용자 컴퓨터 내 프로그램에 몰래 침투해 기생하는데 반해,

웜은 독자적으로 실행할 수 있다는 점에 차이점이 있습니다.

대표적 사례로 'I-Worm/Happy99', 'I-Worm/ExploreZip' 등이 있습니다.

 

③ 트로이목마(Trojan Horse)

트로이 목마 라는 이름은 어디서 많이 들어본 것 같지않나요?

트로이목마 악성코드의 이름의 어원은 우리가 알고있는 그리스 트로이 목마가 맞습니다.

목마를 이용해 몰래 침투한 그리스 병사들이 트로이를 멸망시킨 것처럼,

트로이목마 악성코드는 사용자의 컴퓨터에 몰래 보통 프로그램들처럼 숨어있다가,

사용자가 프로그램을 실행할 때 실행되는 형태입니다.

위 바이러스, 웜과는 자기자신을 증식시키지 않는다는 점에서 차이점이 있습니다.

대표적 사례로 'Trojan.Win32.Bymer', 'Win-Trojan/Quz' 등이 있습니다.

 

 

다음은 우리가 영화에서나 보던 '해킹'에 대해 한번 살펴볼까요?ㅎㅎ

 

3. 해킹 (Hacking)

 

해킹이 무엇일까요?

영화에서 나오는 멋진 탈취범?!

위에서 어느정도 지식이 쌓여 아마 유추가능하시겠지만,

해킹이란, 타인의 컴퓨터 및 데이터베이스에 접근하여 원하는 정보를 탈취,변조하는 것을 말합니다.

본래에는 이런 의미가 아니었다고 하는데요. 본래 해킹이란, 프로그래머들이 코딩하는 과정 자체를 즐기는 행위를 칭하는 말로 쓰였었지만 현재는 많이 변질된 상태라고해요.

우리가 알고있는 나쁜 해커들을 의미하는 말을 당시 '크래커(Craker)'라고 명명하였으나,

현재는 혼용해서 사용하는 경우가 많다고 합니다.

 

해킹에는 어떤것들이있나 한번 간단히 살펴볼까요?

도스, 디도스, 스푸핑, 스니핑, XXS, 피싱 등이 존재하는데 한번 간단히 개념만 잡고 넘어가도록 하겠습니다.

 

① 도스 (서비스거부공격, DoS, Denial Of Service)

크래커가 좀비컴퓨터를 통해 사용자의 컴퓨터에 과도한 데이터를 입력시켜 과부화를 시키는 형태입니다.

다른 정보를 빼가거나, 유출시킬려는 행위는 아니고 그저 컴퓨터 사용을 방해하는 요소지요.

 

② 디도스 (분산서비스거부, DDoS, Distributed Denial Of Service)

도스와 유사하게 좀비컴퓨터를 통해 사용자의 네트워크에 과부화를 시키는 형태입니다.

도스와의 차이점으로는 도스에서는 1대의 좀비컴퓨터를 이용했다면,

디도스는 여러대의 좀비컴퓨터를 이용해 1대의 사용자 컴퓨터를 공격합니다.

 

③ 스푸핑 (Spoofing)

스푸핑은 MAC주소, IP주소 등 주소체계를 이용해 사용자가 위장된 가짜사이트를 방문하도록 만드는 방식입니다.

Spoofing이라는 영어 자체를 검색하시면 '속이다'라는 뜻을 가진것을 볼 수 있는데요, 말그대로 주소체계를 이용해 속이는 것입니다.

 

④ 스니핑 (Sniffing)

일종의 정보인터셉트 방식으로 이루어진 해킹방식으로,

데이터를 전송하는 과정에서 이를 가로채 ID/비밀번호를 탈취하거나, 중요내용을 가로채는 방식입니다.

 

⑤ XSS (Cross Site Scriping)

XSS는 좀 생소한데요.

웹(World Wide Web)은 대부분 Javascirpt라는 언어로 구성되어있습니다.

그래서 이를 활용해, 게시판에 악의적 의도를 가진 스크립트(코드)를 작성해 배포하게됩니다.

그럼, 이용자는 이를 열람하게되고 그때 악성코드가 퍼져나가는 방식입니다.

 

⑥ 피싱 (Phishing)

피싱은 "Fishing(낚시하기)"와 "Sophisticated(정교함)"의 합성어라는 말이 많은데요,

풀어써보면 정교하게 낚시를 한다는 거죠~

말그대로 크래커가 금융기관, 기타 기관 등으로 위장해 이용자를 낚습니다.

그럼 이용자는 속고 주요정보를 유출하는 사고가 생기게 되는 것이죠.

 

 

 

 

다음은 정보보안의 핵심이되는 암호화기술과 인증기술 그리고 네트워크 보안 기술에 대해 한번 살펴보도록 하겠습니다.

 

4. 정보보안기술

 

첫번째로, '암호화'에 대해 살펴보겠습니다.

 

암호화란?

암호는 말그대로, 비밀유지를 목적으로 평문를 당사자간 약속된 기호로 변환하는 것 입니다.

 

이 과정에서는 평문을 암호화시키는 '암호화'

그리고, 암호화 된 문서를 평문으로 해독하는 '복호화'

과정으로 이루어집니다.

 

암호화방식은 두가지가 있는데요,

 

① 대체암호(Substitution Cipher)

대체암호방식은 로마의 시저장군이 군사목적에서 최초로 만들어냈다고 해요.

그래서 대체암호란?

일정 규칙을 적용해, 글자를 다른 글자로 바꾸는 것입니다.

예를들어, A는 C야..

B는 D야.. 이런식으로요.

간단하죠?

 

② 전치암호(Transposition Cipher)

전치암호방식은 그 유명한 스파르타 전쟁의 기밀문서에서 유래되었다고 합니다.

위에서는 일정규칙을 썻는데 여기서는

문자를 재배치하는 방식입니다.

예를들어 '거꾸로 재배치'라는 규칙을 적용하면

I LOVE YOU -> UOY EVOL I

이런식으로 말이죠.

 

다음은, 공개키와 암호키입니다.

위에서는 하도 옛날방식이라, 간단했지만

최근에는 기술발전이되면서 암호방식이 매우 복잡해졌죠.

따라서 열쇠(Key)를 이용한 암호화, 복호화를하게 됩니다.

우선, 비밀키는 말그대로 나만 알고있는 비밀키

공개키는 모두가 알 수 있는 공개키 입니다.

이제 살펴보겠습니다.

 

① 비밀키 암호화방식(대칭암호화, Secret Key Encryption)

비밀키 암호화방식은 암호화와 복호화과정을 모두 송신자의 비밀키로 하는 방식입니다.

따라서 하나의 키로 모든 일을 수행합니다.

예를들어,

A가 평문을 암호화해서 B에게 전달한다고 가정합시다.

A는 자신의 비밀키로 평문을 암호화한 후, 자신의 비밀키와 암호문을 같이 B에게 전달합니다.

그럼 B는 그 키를 이용해 암호문을 해독하는 방식입니다.

여기서 모든 것의 핵심은 키에 있으므로, 열쇠의 관리 보관 전달 방식이 상당히 중요하겠죠?

대표적인 비밀키 암호화방식에는 : DES(Data Encryption Standard)가 있습니다.

 

② 공개키 암호화방식(비대칭암호화, Public Key Encryption)

공개키 암호화방식은,

송신자가 평문을 암호화시킬 때, 수신자의 공개키를 이용합니다.

그리고 수신자는 평문을 받아 다시 복호화시키는 과정에서, 수신자의 비밀키를 이용하는 방식입니다.

따라서, 이는 누구나 쉽게 암호화할 수 있고 송신자가 될 수 있으나,

복호화하는 것은 공개키로 이용한 키의 주인(수신자)만이 해독할 수 있습니다.

대표적인 공개키 암호화방식으로는 : RSA(Rivest Shamir Adleman)가 있습니다.

 

 

 

두번째는, 인증(Authentification)기술에 대해 알아볼께요.

인증기술이란, 송신자와 수신자의 신원과 문서를 보증하는 기술이라고 정의됩니다.

인증 방식에는 세가지가 있습니다.

 

① 전자서명 (Electronic Signature)

전자서명방식은 그냥..

원래 우리가 종이에 싸인하거나, 도장찍는 것을 디지털로 하는 것입니다.

인터넷 민원서비스, 인터넷 쇼핑, 인터넷 뱅킹 등에서 주로 활용합니다.

 

② 디지털서명 (Digital Signature)

크래커들이 하는 수법들 정보를 위변조하는 것이 있었죠?

그것을 방지하기 위한 방식으로,

위에 암호키, 비밀키 암호화방식들을 적용해 이를 해결하는 것을 의미합니다.

메세지 인증과, 사용자를 인증하는 두가지로 구분됩니다.

 

③ 공인인증서 (CA, Certification Authority)

공인인증서는 아마 인터넷 뱅킹 사용하시는 분이라면 많이들 이용해 보셨을거 같은데요.

최근에는 공인인증서를 없애는 것으로 그 방향이 흐르고 있습니다.

공인인증서 인증방식은 신원확인, 정보 위변조 확인, 거래사실 증명에 암호방식을 적용한 것입니다.

 

 

 

마지막으로, 네트워크 보안기술이 무엇인지 살펴보겠습니다.

 

네트워크 보안 기술은, 네트워크상 크래커의 공격으로부터 하드웨어와 소프트웨어를 보호하는 기술입니다.

네트워크 보안기술은 크게 두가지로 구분되는데요.

하나는 침입을 원천적으로 차단시키는 '방화벽(Firewall)'과,

다른 하나는, 실시간으로 내외부를 감시하는 '침입탐지시스템(IDS, Intrusion Detection System)'입니다.

 

비유해보자면,

방화벽은 성벽에 해당해 쉽게 침입할 수 없도록 방지하는 것이고,

침입탐지시스템(IDS)는 내부와 외부를 감시하는 경비병으로 비유할 수 있겠습니다.

 

 

 

 

- E N D -

 

 

 

자 여기까지!!

아마 두서없는 부분도 꽤 있을 것입니다. 제가 많이 부족해서 그래요 ㅎㅎ

더 깊은 이해가 있었다면 더 자세히 다룰 수 있었을텐데 말이죠.

아마 이 지식들을 가지고 어디에서 어떻게 공부를 하시던,

앞으로 공부하고 한발짝 나아가는데 조금이나마 도움이 되었으면 좋겠습니다.

 

저도 이 포스팅 내용을 통해,

차근차근 복습하고 또 글을 조금씩 정리해나갈 예정입니다.

 

 

부족한 정리요약본을 읽어주신 분들께 진심으로 감사합니다.

 

정말 고생많으셨습니다. ^-^!

 

 

P.S :

이어서 제가 공부하고 있는 내용들..

깃&깃허브

리눅스(우분투)

Javascirpt,

Nodejs,

등등 웹 프로그래밍에 관련된 내용들과

블록체인에 관련된 내용들을 앞으로 다룰 예정입니다.

 

 

 

 

'Web Development > CommonSense' 카테고리의 다른 글

[WEB] API & Library & Framework  (0) 2020.08.14
[Network] IP & 공유기 (Router) & NAT  (0) 2020.07.25
[7장] 네트워크와 인터넷  (0) 2020.07.12
[6장] 데이터베이스  (0) 2020.07.11
[5장] 운영체제  (0) 2020.07.10