카테고리 없음

네트워크보안

Stone_Head 2012. 6. 5. 01:47

프로젝트

UART를 이용한 시리얼 통신을 이용하여 테트리스 게임을 구현

임베디드 보드를 이용함

리눅스 클라이언트가 데이터를 DP램에 쓰고 보드에 인터럽트를 걸면

보드가 DP램에저장된데이터를 MAX232(신호 증폭)를 거쳐서 UART로 상대방 보드에 전송

상대방 보드가 받으면 UART인터럽트가 걸리므로

인터럽트 핸들러에서 받은 데이터를 DP램에저장

리눅스 클라이언트에 인터럽트를 걸어서 데이터를 받았다는 것을 알림

클라이언트가 DP램의 데이터를 처리

 

데이터 전송은 임의의 프로토콜을 정의해서 구현

@xy1010 -> 좌표가 10,10 이다

@c가나다->채팅 가나다 와 같이 (예)

 

한 비트씩 전송하는 nonFIFO방식을 사용

FIFO는 블락으로 전송(인터럽트가 덜 걸리니깐 좀 더 빠르겟지)

 

클라이언트는 QT로 짜고 보드는 통신 중계 역할

arm9을 사용

 

 

네트워크 7계층

1.  Application Layer(응용계층) 7계층
사용자 인터페이스의 역할을 담당하는 계층
즉, 사용자들이 이용하는 네트워크 응용프로그램이라고 생각하면 된다.
ex)인터넷 익스플로러
사용자와 가장 가까운 프로토콜 정의
HTTP(80), FTP(20,21), Telnet(23), SMTP(25), DNS(53), TFTP(69)

 

2. Presentation Layer(표현계층)
전송하는 데이터의 Format을 결정
다양한 데이터 Format을 일관되게 상호 변환하고 압축 및 암호화 복호화 기능을 수행
AVI, MPEG, ASCII, EBCDIC, JPEG

 

3. Session Layer(세션계층)
네트워크 상에서 통신을 할 경우 양쪽 호스트 간에 최초 연결이 되게 하고 통신중 연결이 끊어지지 않도록 유지 시켜주는 역할을 한다.
즉, 통신을 하는 두 호스트들 사이에 세션을 열고,닫고 그리고 관리하는 기능을 담당

 

4. Transport Layer(전송계층)
정보를 분할하고, 상대편에 도달하기 전에 다시 합치는 과정을 담당
(Segment : Layer 4의 data 단위)
목적지 컴퓨터에서 발신지 컴퓨터 간의 통신에 있어서 에러제어(error control)와 흐름제어(flow control)을담당
Layer4 프로토콜 : TCP(연결 지향성, 신뢰성)3 hand shake 하고 보낸뒤 받았다는 응답 받는다, UDP(비신뢰성,비연결 지향성)

 

5. Network Layer(네트워크계층)
Logical address(IP, IPX)를 담당하고 패킷의 이동 경로를 결정한다
경로 선택, 라우팅, 논리적인 주소를 정의하는 계층
라우팅 프로토콜을 이용해서 best path(최적 경로)선택
Network 계층 장비 : Router


 
6. Data link Layer(데이터링크계층)
데이터 링크 계층은 물리적 계층을 통한 데이터 전송에 신뢰성을 제공한다
물리적 주소(MAC)지정, 네트워크 토폴로지, 오류통지, 프레임의 순차적 전송, 흐름제어 등의 기능이 있다.
이 계층에서는 로컬 네트워크에서 프레임을 안전하게 전송하는 것을 목적으로 한다.
Data link 계층 장비 : Switch, Bridge


 
7. Physical Layer(물리계층)
네트워크 통신을 위한 물리적인 표준 정의
두컴퓨터 간에 전지적인, 기계적인 그리고 절차적인 연결을 정의하는 계층
(케이블 종류, 데이터 송수신 속도 등)
Physical 계층 장비 : 리피터, 허브

 

 

허브(HUB)

컴퓨터들을 LAN에 접속시키는 네트워크 장치

기계 분야에서는 자전거 등에서 바큇살이 딸려 나오는 휠의 중심부를 가리키며 네트워크 분야에서는 LAN을 구성할 때 한 사무실이나 가까운 거리에 있는 장비들을 케이블을 사용하여 연결해 주는 장치를 말한다.

일반적으로 컴퓨터나 프린터들과 네트워크 연결, 근거리의 다른 네트워크(다른 허브)와 연결, 라우터등의 네트워크 장비와 연결, 네트워크 상태 점검, 신호 증폭 기능 등의 역할을 한다.

 

라우터

서로 다른 네트워크를 중계해주는 장치. 보내지는 송신정보에서 수신처 주소를 읽어 가장 적절한 통신통로를 지정하고, 다른 통신망으로 전송하는 장치를 말한다. 유지보수가 용이하고, 대규모 통신망을 쉽게 구성할 수 있으며, 다양한 경로를 따라 통신량을 분산시킬 수 있다.

서로 다른 근거리통신망(랜;LAN)을 중계하거나 근거리통신망을 광역통신망(WAN)에 연결할 때 주로 사용한다. 인터넷을 접속할 때는 반드시 필요한 장비로서, 서로 다른 프로토콜로 운영하는 통신망에서 정보를 전송하기 위해 경로를 설정하는 역할을 제공하는 핵심적인 통신장비이다.

 

브릿지

두 개의 근거리통신망(LAN)을 서로 연결해 주는 통신망 연결 장치로, OSI 참조 모델의 데이터 링크 계층에 속한다. 통신량을 조절하여 데이터가 다른 곳으로 가지 않도록 하며, 데이터를 재생성할 수 있다.

 

리피터

디지털 방식의 통신선로에서 신호를 전송할 때, 전송하는 거리가 멀어지면 신호가 감쇠하는 성질이 있다. 이 때 감쇠된 전송신호를 새롭게 재생하여 다시 전달하는 재생중계장치를 리피터라고 한다. 

 

응답 확인 방식 [handshake]

 둘 이상의 장치가 서로 보조를 맞추어서 처리를 하는 방식

PC통신에서는 흐름 제어에 사용

데이터 전송-> 받았음 확인(ACK) -> 알겠음 또는

데이터 전송->못 받았음 -> 다시 전송 같이

서로 정보를 주고받는 모습이 악수와 같다고 하여 핸드셰이크라 함 

 

 

가상회선

패킷 교환망에서, 통신하려는 두 접속점 사이의 전송 경로가 논리적으로 고정되어 통신하는 동안은 물리적으로 고정된 전송 경로상에서 통신하는 것과 같은 효과를 나타내도록 하는 연결 방식. 한 네트워크의 각 지점 간 경로가 마치 물리적인 경로로 보이지만 실제로는 회선 자원 관리 풀에서 트래픽의 필요에 따라 할당하는 특정 회선이다. 여기에는 전용 회선처럼 계속 사용할 수 있는 고정 가상 회선(PVC)과 통신하는 동안만 접속되는 가변 가상 회선(SVC)이 있다.

 

IPv6

IP(Internet Protocol)는 인터넷상의 한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는 데 사용되는 프로토콜이다. 인터넷상의 각 컴퓨터, 즉 호스트들은 다른 컴퓨터와 구별될 수 있도록 적어도 한 개 이상의 고유한 주소를 갖는다.

IPv4
현재 IP주소는 버전4(IPv4)으로 네 도막으로 나눠진 최대 12자리의 번호로 이뤄져있다. 예를 들면 「210.113.39.224」이다.

사용자가 늘어나서 v4로는 수요를 충족시킬수 없어서 v6으로 변경

 

IPv6주소는 128비트체계로 구성 되어 있으며, 그 표현방법은 128비트를 16비트씩 8부분으로 나누어 각 부분을 콜론(colon, ":")으로 구분하여 표현하며, 각 구분은 16진수로 표현한다.

예) 2001:230:abcd:ffff:0000:0000:ffff:1111

 

ddos[ Distributed Denial of Service ]

여러 대의 컴퓨터를 일제히 동작하게 하여 특정 사이트를 공격하는 해킹 방식의 하나.

서비스 거부(DoS)란 해킹수법의 하나로 한 명 또는 그 이상의 사용자가 시스템의 리소스를 독점하거나, 파괴함으로써 시스템이 더 이상 정상적인 서비스를 할 수 없도록 만드는 공격 방법이다.

분산 서비스거부(DDoS) 공격은 여러 대의 컴퓨터를 일제히 동작하게 하여 특정 사이트를 공격하는 방식이다.

시스템 과부화로 정상고객들이 접속을 할 수 없는 상태가 되는 것. 한 전화번호에 집중적으로 전화가 걸려오면 일시 불통되는 현상과 같다고 보면 된다.

 

 

 

보안에서

substitution :  치환 A-> X

permutation  : 자리 변경  ABCD  -> DCAB

feistel 구조 : 입력 비트를 반으로 나누어서 연산하는 구조

 

 

 

 

DES(data encryption standard )

 

 

 

AES(Advanced Encryption Standard )

 

 

RSA

공개키와 개인키를 세트로 만들어서 암호화와 복호화를 하는 인터넷 암호화 및 인증 시스템의 하나이다.

이 알고리즘은 두 개의 큰 소수(보통 140자리 이상의 수)를 이용한다. 이 수들의 곱과 추가연산을 통해 하나는 공개키를 구성하고 다른 하나는 개인키를 구성하는데, 사용되는 두 세트의 수 체계를 유도하는 작업이 수반된다. 이렇게 구성된 공개키와 개인키로 인터넷에서 사용하는 정보(특히 전자우편)를 암호화하고 복호화할 수 있는데, 동작원리는 매우 복잡한 수학

비트 수에 따라 다르나 펜티엄급 컴퓨터에서 공개키와 개인키를 만들려면 짧게는 20여 초, 길게는 몇 분까지 기다려야 한다. 복호화에도 많은 계산량이 요구되고 있어 휴대용 단말기에서는 사용하기 어렵다. 그러나 이런 문제를 해결하기 위해 최근에 타원곡선 알고리즘이 등장하기도 했다.  

 

공개키

비대칭형 암호 방식(asymmetric cryptosystem)에서 문서의 암호화를 위해 사용되는 키로 비밀 키(private key)와는 암호화에서 사용되는 함수의 역수 관계를 가지고 있으며, 일반적으로 다른 사람들이 문서를 암호화할 수 있도록 공개된다.

비밀키

공개키-비밀키(개인키) 암호화 방식에서는 자신만이 알고있는 키를 말함 (여기선 개인키라고 하는게 더 맞을 듯)

비밀키 암호화 방식에서는 통신하는 두명이 모두 가지고 있는 공개되지 않은 키를 말함

 

보안의 3요소는 CIA입니다

기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)

기밀성을 유지하려면 중요 데이터를 암호화 및 접근제어로 외부로 노출되는 것을 막아야 한다. 무결성은 중요 데이터가 내부 또는 외부의 위협으로부터 변조되거나 파괴되지 않도록 함으로써 유지할 수 있다. 그리고, 정당한 사용자는 원할 때 언제든지 정보를 열람할 수 있도록 가용성을 확보해야 한다.

 

클라우드 컴퓨팅

자신이 필요한 소프트웨어나 데이터를 자신의 컴퓨터에 따로 저장하지 않고 외부에 저장시켜놓는 방식

N드라이브 같은 것

보안에 취약 (따로 외부에 있기 때문)

 

빅데이터와 보안

다양한 IT서비스와 플랫폼이 등장하면서 엄청난 양의 데이터 (트위터, 페이스북 등과 같은 소셜네트워크서비스(SNS)의 출현이 한 몫했다.) 가 쏟아지고 있다. 바야흐로 '빅데이터' 시대가 도래하면서 빅데이터 솔루션 도입을 고려하고 있는 추세다. 그러나 기업들은 보안 때문에 도입을 망설이고 있는 것으로 나타났다. 결국 빅데이터 시대에도 보안이 화두란 이야기다.

기존에도 해결하지 못한 보안 문제를 빅데이터를 도입하게 되면 과연 엄청난 양의 데이터를 어떻게 보안유지를 할 수 있을지가 큰 숙제

빅데이터 도입이 필요한 기업들은 써드파티업체 서비스 이용을 꺼리는 이유로 51%가 보안이라고 응답하기도 했다.

 

하둡

대량의 자료를 처리할 수 있는 분산 응용 프로그램을 지원하는 소프트웨어 프레임워크

데이터를 빠르게 처리, 분석하기 위해, (보안과는 별개)

큰데이터 -> 분산처리 -> 결과

 

NoSQL

sql이 아니다 라고 번역 되기도 하고 not only SQL(sql뿐만 아니라 ) 라고도 번역됨

기존의 관계형 데이터베이스가 아닌 대량의 데이터에 맞는 데이터베이스 구조

기존 데이터베이스 보다 확장성,가용성에 중점을 둠

예를 들면 기존에는 1000원을 입금하고 나면 바로 1000원이 입금되어야 하지만

페이스북과 같은 경우 지금 올리지만 시간이 조금 지난 후에 뉴스피드에 등록이 되도 무방함

또는 올린 순서가 지금은 약간 틀려도 나중에 바로잡으면 됨 (신뢰성과 일관성 보다는 가용성과 확장성에 중점)

 

 

 

무선랜 보안기법 등등

1. SSID

ssid 는 말 그대로 ID 입니다. AP의 이름을 이야기 하는 것이고 SSID는 공개하거나 감출 수 있습니다.

보안과 연계를 한다면 공개되지 않은 SSID는 모르는 사람이 쉽게 접근을 할 수 없겠지요.

공개된 SSID는 PC로 부터 검색이 가능합니다. 검색이 된 SSID를 이용해서 AP에 접근을 할 수 있습니다.

기본값이 ANY 라고 되어 있지만 이걸 지키는 곳은 별로 없다고 봅니다. 대부분 장비들은 자사 브랜드를

초기 SSID로 사용하고 있습니다.

 

2. MAC Address

MAC 주소는 통신장비의 바뀌지 않는 주소 입니다. 무선랜에서 맥주소를 갖는 장비는 AP와 무선랜카드 입니다.

AP에서는 클라이언트 맥주소를 리스트화 하여 허용된 맥 주소만 접속이 가능하거나 불가하도록 할 수 있습니다.

맥주소는 변경이 안되거나 어렵기 때문에 안정한 보안설정이 될 수 있습니다.  단점이라면 관리자가 수시로

업데이트 해야 하기 때문에 조금 불편할 수 있네요.

 

3. WEP(Wired Equivalent Privacy)

정적인 암호키를 이용해서 보안을 합니다. HEX 코드느 아스키 코드로 지정된 길이만큼 키를 입력하고

공개키 방식과 공유기 방식으로 인증을 할 수 있습니다. 키가 길면 해킹하는데 시간이 오래 걸린다고 하지만

보안성이 필요한 곳에서는 거의 사용하지 않는 방식 입니다.

 

4. VPN(Virtual Private Network)

가상의 터널을 만들어 외부로 부터 보안을 하는 방법입니다. VPN은 현재 많이 사용하는 보안방법인데

인터넷 회선 같은것을 사설망처럼 이용해서 임대해주는 방식 같은것??

직접 데이터망을 구축하여서 네트워크감시 등을 할 수 있는 기능인듯

 

5. 802.1x

인증을 통해 네트워크를 보호하는 포트 액세스 프로토콜

Wi-Fi 환경에서 매우 유용
Wi-Fi 사용자가 802.1x를 통해 네트워크 액세스를 위한 인증을 받게 되면 액세스 포인트에서 VPN이 열려 통신이 허용
인증을 받지 못하면 VPN을 사용할 수 없어 통신이 차단
EAP(Extensible Authentication Protocol)라는 프로토콜에 의해 사용자와 인증서버 사이에 인증 정보를 전달하게 됨 

 

 

6. WPA(WI-PI Protected Access)

WEP를 보완하는 TKIP 802.11i 표준을 기반으로 한다고 하는군요.

특징은 수시로 바뀌는 비밀번호를 사용해서 WEP 보다 안전하다고 합니다.

WPA2 도 있네요.