블로그 이미지

허브, 스위치, 라우터, 공유기의 차이점을 알아보자.

2014. 3. 7. 17:30

허브: L1장비, 물리적으로 연결된 모든 선에도 똑같은 내용의 신호 분배 (더미 허브일 경우, 대역폭이 연결된 수 많큼 감소함)

스위치: L2장비, 패킷을 한 단계 깐 뒤, MAC 주소를 확인한 뒤 해당 신호의 선으로 패킷 전달(스위칭 허브 == 스위치)

라우터: L3장비, 패킷을 두 단계 깐 뒤, IP주소를 확인하여 해당 선으로 패킷을 전달, 외부 네트워크 끼리 전달 시에 사용

공유기: 스위치 기능과 라우터의 기능을 모두 갖춘 장비, 일반적으로 장비 뒷 편을 보면 꼽을 수 있는 두 종류의 포트가 있다. WAN 포트는 라우터 기능을 수행 나머지 포트들은 스위치 기능을 수행한다.



블로그 이미지

[보안] 대칭키 암호 알고리즘

2013. 4. 24. 10:15

출처 : http://destiny738.tistory.com/m/post/view/id/468


* 대칭키 알고리즘

 - 스트림 암호와 블럭 암호가 존재

 

* 스트림 암호

 

 - n bit의 키를 이용하여 긴 키 스트림(Long key stream)을 생성하여 Message와 XOR하여 사용한다.

 - 송신자와 수신자는 동일한 스트림 알고리즘과 Key Stream생성값(Key)값을 알고 있어야 한다.

 - 스트림 암호 중에서 A5/1과 RC4를 소개한다.

 ⓐ A5/1

  - HW로 구현되는 스트림 암호를 사용한다.

  - bit단위로 키 스트림이 생성된다.

  - 64bit의 길이를 가진 Key를 사용한다. Key는 3개의 Linear feedback shift register로 구성된다. 

  

  - 알고리즘

   ㄱ. m = maj(x[8], y[10], z[10])                 // maj : 집단에서 가장 많은 수를 뽑아내는 함수

   ㄴ. If ( x[8] == m ) {                                // majority 값과 x의 8번째 bit의 값이 같으면 

          t = x[13] XOR x[17] XOR x[18];         // t값을 구한다. 

          for ( i = 18 ; i > 0 ; i-- ) x[i] = x[i-1];  // key값을 한칸씩 옆으로 민다.

          x[0] = t;                                          // 새로구해진 key 값을 0번째 bit 값에 적용한다.

        } 

   ㄷ. If( y[10] == m ) {

          t = y[20] XOR y[21];

          for ( i = 21 ; i > 0 ; i-- ) y[i] = y[i-1];  // key값을 한칸씩 옆으로 민다.

          y[0] = t;                                          // 새로구해진 key 값을 0번째 bit 값에 적용한다.

        }

    ㄹ. If( z[10] == m ) {

          t = z[7] XOR z[20] XOR z[21] XOR z[22];

          for ( i = 22 ; i > 0 ; i-- ) z[i] = z[i-1];  // key값을 한칸씩 옆으로 민다.

          z[0] = t;                                          // 새로구해진 key 값을 0번째 bit 값에 적용한다.

        }

     ㅁ. Key stream 값을 생성 : x[18] xor y[21] xor z[22]

     ㅂ. ㄱ으로 돌아가서 다시 실행한다. (Message의 길이만큼 반복)

 ⓑ RC4 

  - byte단위로 키스트림이 생성된다.

  - SW로 구현하기에 최적화 되있다.

  - 0부터 255바이트 사이의 랜덤한 길이로 Key를 사용한다.

  - 일회성 암호와 같이 생성한 스트림 바이트를 사용한다.

  - 처음의 키는 반듯이 패기해야한다.

  - 알고리즘

   > N is key length.

   ㄱ. Reset

    for ( i = 0 ; i < 255 ; i++ ){

       S[i] = i;

       K[i] = key[i%N]

    }

    j = 0;

   ㄴ. Shuffle array

   for ( i = 0 ; i < 255 ; i++ ){

      j = ( j + S[i] + K[i] ) % 256;

     swap(S[i], S[j]);

   }

   i = j = 0;

  ㄷ. Make stream

  i = (i+1) % 256;

  j = (j+S[i]) %256;

  swap(S[i],S[j]);

  t = (S[i] + S[j])%256;

  keystreamByte = S[t];


* Feistel cipher

 

 - Message를 블럭단위로 짤라서 암호화 한다.

 - 암호문 : 평문에 반복되는 함수를 적용한 것

  > Feistel cipher 구조, 방식이라고한다.

  > 매 단계 같은 방식으로 섞는다.

  


* DES(Data Encryption standard)

 - 미국 정부 표준

 - IBM의 Lucifer 알고리즘을 수정

 - Block 길이 : 64bit, Key 길이 : 56bit, 16번 섞기를 함.

 

 - 안전성

  ~ Back door가 없다

  ~ S-box에 안전성이 달려 있다.

  ~ 공격을 위해선 exhaustive key search를 사용

  ~ Key길이가 짧고, 현대 컴퓨터의 발달로 exhaustive key search로 찾아 낼 수 있다.

  ~ AES의 탄생(Key길이가 128bit로 늘어남)


* Double DES

 - AEs이전에  DEs를 계속 사용하기 위해서 만들어진 방법

 - 키의 길이를 2배로 늘린다. 하지만 같은 키로 2번을 암호화 하는 것이므로, 실질적인 키의 길이는 56bit로 변화가 없다.

 - C = E(E(P,K),K)

 - single DEs와 같은 계산량을 통해서 해독이 가능하므로 안전하지 못하다.


* Triple DES

 - 키의 길이를 3배로 늘리는 것이다.

 - 하지만, 사용되는 키는 2종류 이므로 실제 키길이는 112bit라고 할 수 있다.

 - C = E(D(E(P,K1),K2),K1)

 - 112bit의 키길이로 현재 사용해도 안전한 알고리즘이다. 하지만, AEs의 탄생으로 사용추세가 줄어들고 있다.


* Advanced Encryption STD(AES)

 - 3DES의 단점 : 효율적인 소프트웨어 코드가 없고, 속도가 느리다. 블럭크기가 작다.

 - AES 모집시 요구사항

  > 저작권 없이 전세계에서 사용할 수 있는 알고리즘

  > 대칭키 방식

  > 블럭 크기는 최소한 128bit, 키 길이는 128-, 192-, 256bit로 가변

 - 안전성과, 견고성, 속도를 사용하여 알고리즘을 체택하였다.

 - Rijndael(초기 버전 이름)

  > 가변의 블럭 크기 및 키 크기

  > 블럭과 키의 키기에 따라 반복 횟수가 정해진다.

 - 최종 선택된 AES

  > 키의 길이는 128, 192, 256bit을 사용한다.(128bit이여도 안전하므로 128bit을 많이 사용한다.)

  > 블럭크기는 128bit로 고정되었다. 

  > 이에 따라 반복횟수는 키의 길이에 따라 각각 10, 12, 14로 고정되게 되었다.

 - DES와의 비교

  > 페이스텔 암호형태가 아니다.

  > 반복적인 블럭 암호이다.(공통점)

 - 알고리즘

  ㄱ. AES AddRoundKey

    ~ Round Key를 key schedule 알고리즘을 이용하여 생성한다.

    ~ 평문 위치와 같은 위치에 있는 키를 XOR 계산을 한다.

  ㄴ. AES BytesSub(S-box 기능)

    ~ S-box를 이용하여 문자를 치환 시킨다.

  ㄷ. AES ShiftRow(P-box 기능)

    ~ 1행은 그대로, 2행은 8bit, 3행은 16bit, 4행은 24bit을 좌측으로 shift시킨다.

  ㄹ. Mix Column

    ~ 각 행을 섞는다.(S-box)

 - AES의 복호화 : 복호화를 하기 위한 역기능이 존재한다.

  ⓐ AddRoundKey 역 : 자신이 역이다.

  ⓑ MixColumn : lookup table을 통해서 찾을 수 있다.

  ⓒ ShiftRow : cyclic shift를 통해서 원래 모습을 찾을 수 있다.

  ⓓ ByteSub : lookup table을 통해서 찾을 수 있다.


* Block Cipher Modes

 - 여러개의 블록으로 구성된 메세지를 어떻게 암호화 할 것인가?

 - ECB(Electronic Codebook mode), CBC(Chiper Block Chaning mode), CMR(Counter Mode mode)가 존재한다.

 - 여기서 CTR과 ECB는 병렬 처리, 랜덤 엑세스가 가능하다.

 ⓐ ECB

  - 고정된 Key K를 갖고 모든 블럭을 암호화 한다.

  - 공격자에게 정보를 줄 가능성이 크다.

  - 전자 코드북을 만드는 방법과 유사

  - 동일한 평문의 블럭을 동일한 암호문이 나오기 때문에 문서의 형태가 나타날 수 있다.

  - 암호문의 블럭 순서를 바꿔서 다른 의미의 문장으로 변환될 가능성이 크다.

 ⓑ CBC 

  - 이전에 생성된 암호문을 Key와 함께 XOR하여 다음 암호문을 생성(처음에는 Initial Vector를 이용하여 생성한다)

  - 동일한 평문 블록도 서로 다른 암호문 블록으로 변환된다.

     

  

  - 전송시 에러가 발생할 경우를 생각해보자.

   > P1, P2, P3, P4를 각각 암호화하여 C1, C2, C3, C4로 전송했다고 하자.

   > 하지만 받는 전송중 에러가 발생하여 C1, G, C3, C4로 받았다고 하자.

   > 이때 받은 사람은 다음과 같이 계산을 할 것이다.

    P1 = Ci(Initial vector) XOR D(C1, Key)  // P1으로 복구가 된다.

    P2 = C1 XOR D(G, Key)  // P2로 복구가 되지 않는다.

    P3 = G XOR D(C3, Key)  // P3로 복구가 되지 않는다.

    P4 = C3 XOR D(C4, Key) // P4로 북구가 된다.

   > 여기서 에러가 발생할 경우 에러가 난 자신의 블럭과 다음 블럭에만 영향을 끼치는 것을 알 수 있다.

   > 오류의 확산 범위가 좁다.

 ⓒ CTR

  - CBC와 비슷한 방식이지만, 암호문을 다시 재사용 하는 것이 아니라, Initial Vector의 값을 shift하면서 XOR연산을 한다.

 

* MAC

 - Message Authentication Code

 - 데이터 무결성을 위해서 MAC이라는 값을 사용한다.

 - MAC을 생성하는 방식은 2가지가 존재한다.

  ⓐ CBC를 사용할 경우, 맨마지막 블럭을 암호화한 결과물을 MAC으로 붙여서 보낸다.

   > 수신자는 동일한 계산을 수행해서 MAC과 자신이 계산한 값을 비교한다.

   > 마지막에 암호화된 Cn과 MAC이 같으면 안되기 때문에(공격자에게 단서제공), MAC전용 Key가 또 필요하다.

  ⓑ Hash 함수를 이용하여 MAC 메세지를 만들어 붙여서 보낸다. (digest message를 생성한다.)

   > ⓐ의 단점에 의해서(MAC전용 Key필요) ⓑ방법을 다 많이쓴다.


* 키분배

 - 대칭키를 분배하는 방법이 필요하다.(추후에 다시 설명, 또는 네트워크 컴퓨팅의 보안 Part를 참조하길 바란다)

  1. KeenCat 2017.03.14 10:01  address  modify / delete  reply

    도움 많이 되었습니다. RC4 알고리즘에서 처음 생성된 키는 반드시 폐기해야 한다고 글 수정하셔야 될 거 같습니다! 덕분에 많이 배우고 갑니다.


블로그 이미지

Filezilla(파일질라) FTP 서버 구축하기

2013. 3. 31. 02:01

Filezilla 특징 : 

1. 오픈소스 무료 FTP(기업내 사용 가능)

2. 가장 빠른 전송 속도


1. 설치

 가. 다운로드

공식사이트 : http://filezilla-project.org/

FileZilla Server를 다운로드 한다.

 나. 설치

Windows 7 환경에서 실행하며, 0_9_34버젼으로 안내해드리겟습니다.



   가. 파일질라 서버를 실행합니다.
 
 
 
   나. 약관에 동의하시고, 소스코드가 필요하시면, 체크하시고, 일반 유저분들은, 바로 Next를 누릅니다.

 


 

    다. 설치하고싶으신 경로를 선택하시고, Next를 누릅니다.




 
 
   라. 파일질라 서버를 어떻게 시작할껀지 묻습니다.
   Install as service, started with windows(default)를 선택합니다.

   관리자 서버의 포트 선택입니다. 전문적인 사용자가 아니라면, 기본값을 사용합니다.

   Next를 눌러서 다음화면으로 갑니다.

 Install as service, started with windows(default)
서비스를 설치하고, 윈도우가 시작할때 시작한다(기본값)
 Install as service, started manually
서비스를 설치하고, 수동으로 시작한다.

 Do not install as service, start server automatically(not recommended)
서비스를 설치하지않고, 서버를 자동으로 시작한다(비추천)

 


 

   마. 서버를 실행하고 나서, 어떻게 할것인지 묻습니다.
   이것또한, 기본값으로 하고 Install을 누릅니다.
 start if user logs on , apply to all users (default)
사용자가 로그온하는 경우 시작, 모든 사용자에게 적용(기본값)
 start if user logs on , apply only to current user
사용자가 로그온하는 경우 시작, 모든 사용자에게 적용

 start manually
수동으로 시작




   바. 설치가 완료되었습니다.
   Close를 눌러서 닫기를 눌러줍니다.



 

   사. 연결서버 설정화면입니다.
   Always connect to this server 를 체크하신 후 OK버튼을 누릅니다.

 

파랑: 서버의 주소와, 포트
(ip 주소 127.0.0.1 은 루프백 ip주소라고하여서 자기 자신의 컴퓨터를 가리킵니다.)

 초록: 관리자의 비밀번호
보라: 항상 이 서버로 연결하기


2. 한글패치 (문자 인코딩 EUC-KR)로 변경

※FileZilla Server로 파일 목록을 보여줄때의 기본 문자셋 인코딩 방식은 UTF-8이다. 따라서 Client의 접속환경에 따라서 한글 폴더명이 깨져서 보일 수도 있다. 이때 해결책은 두 가지 방법이 있다.

(1) Client 접속 환경을 UTF-8로 설정해준다.

(2) FileZilla Server의 환경을 EUC-KR으로 설정해준다.

이 글에서는 (2) 방법을 이용하여 한글문제를 해결해 본다.

 

   가. 다운로드

http://sourceforge.net/projects/filezillapv/files/

[사이트 접속] - [Patched FileZilla Server] - '최신 버전' 다운로드

   나. 설치

압축 해제 후 나온 파일을 FileZilla Server가 설치되어 있는 폴더에 있는 복사&붙여넣기(덮어쓰기) 한다.

 

3. 방화벽 해제 (Windows 방화벽)

※윈도우 이외의 방화벽 사용시 별도의 방화벽 예외 규칙을 추가해야 합니다.

   가. 제어판에서 '방화벽'으로 검색한다.
   [Windows 방화벽에서 프로그램 허용]을 클릭합니다.


   나. 좌측에 [windows 방화벽을 통해 프로그램 또는 기능 허용] 부분을 클릭한다.


   다. 상단에 [설정 변경] 클릭 후 하단에 [다른 프로그램 허용] 을 클릭한다.

 

   라. [찾아보기] 클릭

 

   마. Program Files / FileZilla Server 폴더에서 FileZilla server를 선택하고 [열기] 를 누른다.




   바. 다시 이 화면에서 FileZilla Server 를 선택하고 [추가] 버튼 클릭. 

 

 
   사. 두개의 체크박스에 체크를 해둔다.


   아. Start FileZilla Server 를 실행하여 서버를 재실행 해준다.

4. 설정

   가. Edit 버턴을 누르면 나오는 User를 선택해 봅니다.

   나. Users에 add를 눌러서 사용자를 추가해줍니다.
   계정 추가 후 password를 클릭한후 기입하면, 비밀번호가 걸리게됩니다.

 

파란색 안에는 사용할 이름을 기입하고,
아래 그륩은, 그륩별로 접속제어에 쓰입니다.
(사용자 이름에 따라서, 그륩에 따라서 권한설정 및 공유하는 폴더가 달라질 수 있음)
간단한 사용방법만 안내해 드릴 것이므로, OK를 누릅니다.
(섭섭해 하지 말아요. 직관적으로 알기 쉬운 기능들 이므로 혼자 할수 있으실꺼에요 :-) )

모든 사용자가 비밀번호 없이 사용이 가능하게 하려면 사용자이름을 Anonymous 로 기입합니다.


   다. 사용자가 설정되었으면, 공유폴더의 추가를 위하여 Add 를 클릭하여줍니다.

 

저는 E드라이브 통째로 공유해서 씁니다.
이 드라이브는 주요백업프로그램, software, 기타 등등이 들어가있습니다.

win32plus의 사용자에 대해서, 공유폴더는 E드라이브이고, 파일및 폴더는 읽기만 가능합니다.
적절히 체크를 하여주시고, admin 계정을 따로 생성하셔서 비밀번호를 걸어주시고, 모든권한을 주는것도 좋아요.


   라. 설정을 다 하셨으면, 속도제한으로 가봅니다.

win32plus 계정에 대하여, 다운로드 최고속도는 기본값, 업로드 최고속도도 기본값으로 되어잇습니다.
우리는 쾌적한 환경을 위하여No Lomit 를 해줍니다.
그리고 OK버튼을 눌러줍니다.

 

위의 과정이 끝나면 FileZilla Server 구축이 완료 됩니다.

  1. 김상기 2014.03.19 07:53  address  modify / delete  reply

    잘 보고 갑니다.
    님 것 보고 잘 처리했네요.
    고맙습니다.


블로그 이미지

윈도우7 암호없이 폴더 공유

2013. 3. 30. 23:37

참고 및 출처  : http://www.eunicorn.co.kr/kimsboard7/bbs.php?table=unicorn_faq&query=view&uid=897&p=1

검색 키워드 : 폴더 공유 guest , 윈도우7 폴더공유 암호없이 하는 방법

 

윈도우 7 에서 네트워크 공유하는 방법입니다. 다음 안내에 따라 진행하시기 바랍니다.

1. 공유를 시키고자 하는 위치로 간 다음 폴더를 선택 후 마우스 오른쪽 버튼을 클릭 -> 속성 을 클릭합니다. 

 

2. 속성창의 '공유' 탭메뉴 선택 ->네트워크 및 공유센터 를 선택합니다.

 

3.  아래와 같이 네트워크 공유 옵션을 지정하십시오. 암호화 공유 옵션이 켜져 있으면 접근이 불가능해 집니다.
또한 이 설정은 '현재 프로필에 대한 설정값으로 무선환경, 또는 연결환경상태가 변화되어 설정값(프로필) 또한 원복될 수 있으므로 갑자기 차단되었을 경우 아래 설정을 다시 확인하도록 합니다.

 
4. 속성창의 '공유' 탭메뉴 선택 -> 고급공유 를 선택합니다. 

 
5. 선택한 폴더 공유 -> 체크 -> 권한을 클릭합니다. 

 

6. Guest 계정이 없다면 추가를 클릭합니다. 네트워크에서 정상적인 공유를 하려면
Everyone 과 Guest 계정 이 모두 있어야 합니다. 

 

7. guest를 아래와 같이 입력한 후 '확인'을 클릭합니다. 

 

8. Guest 계정이 추가된 것을 확인 -> 적용 -> 확인 순서로 클릭합니다. 

 

9. 공유 탭메뉴에 이어서 '보안' 탭메뉴 에서도 Guest를 추가해주도록 합니다.
 Guest 와 Everyone 두가지가 반드시 있어야 합니다. 없을 경우 공유가 원할하지 않습니다. 

 

10. 아래 그림과 같이 '추가'를 클릭합니다. 

 

11. guest 입력 후 확인을 클릭 합니다. 

 
12. Guest 계정이 추가된 것을 확인 -> 적용 -> 확인 을 순서대로 클릭하여 설정을 완료 하도록 합니다. 
 

 
13. 공유 탭메뉴와 보안 탭메뉴 에서 Everyone, Guest 가 모두 추가되어있어야 합니다.
공유탭메뉴에서는 보통 Everyone은 추가되어 있으나 보안탭메뉴에서는 Everyone 이 없는 경우가 있습니다.
없을 경우 Everyone 을 guest 추가 방법을 응용하여 추가시키시기 바랍니다.


블로그 이미지

[운영체제][윈도우서버] 윈도우즈 서버 2003, 2008에서 익스플로러 보안 설정 완화하기

2013. 2. 13. 16:03

윈도우 서버 버전에 설치된 인터넷 익스플로러는 최초 설치시 보안 설정이 '높음'으로 되어 있다.
인터넷 익스플로러 인터넷 옵션의 보안 항목에서 보안 레벨을 보통 내지 낮음 수준으로 낮출 수 없다; 

처음엔 인터넷 옵션 항목의 고급 탭에서 수동으로 XP의 항목과 같게 조정해 주는 바보짓을 했는데, 알고 보니 아주 간단한 방법이 있었다.

A. Windows Server 2003

"제어판-프로그램 추가/제거-Windows 구성 요소 설치"에서 'Internet Explorer 보안 강화 구성' 항목을 해제해 준다.




B. Windows Server 2008

1. 시작버튼-실행 창에 compmgmtlauncher 라고 입력하거나 서버 관리자로 들어간다.

2. 화면 중간쯤에 있는 'IE ESC 구성'을 클릭한다.

 



3. '관리자'와 '사용자' 탭 모두 '사용 안 함'을 선택하고 확인 버튼을 누른다.