4. 5 (목) - 암호 (DES)

DES의 순서 M block(64) → 초기전치 → DES Round ------------------------------------------------------------------------------------------------------------------------- DES Round 순서 L(i-1)(32) / R(i-1)(32) →  R(i-1)(32)를 F함수 연산 → ========================================================= F함수 순서 R(i-1)(32) → 48비트로 확장(확장 순열) → Key(48)와 XOR 연산 → S-box를 통한 치환선택 (48->32) → 순열 ========================================================= → F함수의 결과와 L(i-1)(32) 를 XOR 연산 = R(i) → R(i-1)은 그대로 L(i)가 됨 ------------------------------------------------------------------------------------------------------------------------- → 16라운드가 끝나면 역전치 → 암호문 C(64) 생성 ◎ DES의 Key  - 64비트를 56비트로 축약하여 서브키 생성  - 8번째 비트마다 패리티 비트 포함시켜 64비트를 키로 사용  - 사용시엔 패리티 비트 제거하여 56비트로 이용  - 암호화 과정에 맞춰 16 Round 실행  - 각 Round 별 서버키 생성  - 64비트 키는 PC-1을 지나며 패리티 비트(8비트) 제거  - 남은 56 비트 키는 C0(28개비트)비트로 양분할 됨.  - Round별 정해진 Left-Shift를 적용하고, PC-2(순열/수축) 한 뒤 나온 C1(28개비트) ...

4. 5 (목) - Linux (FTP)

Linux Server - FTP ◎ Linux FTP의 특징   - 가벼움, 기능은 더 적지만 사용에 큰 지장은 없음.   - 대용량 파일 전송 서비스에 적합 → 큰 차이는 없음   - 주로 엔지니어들이 사용   - xinetd 보다는 standalone 형태로 운영 미리 띄워져있는 프로그램 : 데몬 데몬을 띄우는 방법 1. standalone : Listening을 본인이 스스로 2. superdemon : super demon이 Listening 담당 (xinetd) 둘의 차이는? 요즘은 2 → 1로 가는 추세, 이유는 리소스가 풍부해졌기 때문   - 시스템에 리소스를 많이 차지하는 서비스   - Out of band     21번 포트 : control connection     20번 포트 : data connection (Active mode)                   - Passive mode : 임의의 1024번 이후의 포트를 사용 (위험하다고 생각할 경우)     * 이와는 무관하게 클라이언트는 모두 1024번 이후의 포트를 사용 ◎ 접속 및 전송 과정  1. FTP client는 21번 포트를 통해 서버와 control connection을 설정  2. 이 제어연결을 통해 사용자 계정과 비밀번호를 전송  3. client는 제어연결을 통해 원격지의 디렉토리 변경과 같은 명령을 전송.  4. 서버는 제어연결을 통해 파일 전송을 위한 명령을 받으면 TCP data connection을 초기화  5. 하나의 파일 전송이 끝나면 data 연결은 close 됨.  6. 다음 파일 전송을 위해서는 새로운 TCP connection을 생성 ◎ Acti...

4. 4 (수) - 암호 (DES 암호 / F함수 구조)

이미지
◎ DES 암호   - 64비트 단위로 블럭 암호화   - 56 비트로 key 사용, 매 8번째 비트는 parity check bit   - 16 Round ◎ Feistel 암호   - 항상 짝수번 Round를 돌려줘야함. 이유는?   - Round 1회는 암호화를 절반 밖에 안함 (R), 그렇기에 전체 암호화는 2회 반복되어야 함. ◎ 전치행렬을 이용한 전치암호화 (초기전치) ◎ F 함수   - key와 입력값을 XOR 연산, 왜 XOR 연산을 이용할까?   - 암호시스템과 비슷한 XOR 연산   - 다음의 예시처럼, XOR 연산을 같은 값에 두번 적용하면 원래의 값이 나오게 된다.    ● P ⊕ K = C            00001010   ⊕  10101010  = 10100000 ●     C ⊕ K = P            10100000  ⊕  10101010  = 00001010         같다!    ● A ⊕ B = C    ● C ⊕ B = A                    - 진리표 -          0 ⊕ 0 = 0 0 ⊕ 1 = 1 1 ⊕ 0 = 1 1 ⊕ 1 = 1 ◎ 확장순열   - 입력된 32개의 비트 중 16개의 비트를 2회 사용한 전치로 입력 비트를 48비트로 확장 ◎ 치환 선택 ...

Linux Server - NFS 실습 (1 / 1) : NFS 서버 구축

● NFS 실습 ◎ 개요  - NFS 서버 : 네트워크를 통해 파티션을 공유하도록 제공  - 서버의 리소스를 제공하는 서비스 ◎ 설정 - 기존의 Apache 서버를 클라이언트로 사용 - 기존의 DNS 서버를 NFS 서버로 사용 ◎ 유저 디렉토리 옵션 default - root_squash / no_all_squash a1) no root squash a2) all squash a3) no all squash a4) root squash / all squash a5) no root squash / all squash a6) root squash / no all squash a7) no root squash / no all squash ◎ 실습 순서 1) 서버 - NFS의 설치 확인 [root@DNS-Server ~]# rpm -qa |grep nfs-utils nfs-utils-lib-1.0.8-7.2.z2.SUL2 nfs-utils-1.0.9-47.SUL2 [root@DNS-Server ~]# rpm -qa |grep portmap portmap-4.0-65.2.2.1 2) 서버 - 계정 생성 [root@DNS-Server ~]# groupadd -g 800 a [root@DNS-Server ~]# useradd -g 800 -u 801 a1 .. [root@DNS-Server ~]# useradd -g 800 -u 807 a7 [root@DNS-Server ~]# cat /etc/passwd |grep a a1:x:801:800::/home/a1:/bin/bash a2:x:802:800::/home/a2:/bin/bash a3:x:803:800::/home/a3:/bin/bash a4:x:804:800::/home/a4:/bin/bash a5:x:805:800::/home/a5:/bin/bash a6:x:806:800::/home/a6:/bin/bash a7...

4. 3 (화) - Linux (NFS)

◎ NFS   - 서버와 클라이언트 모두 유닉스이다.   - Sun사에서 개발 ◎ NFS 서버 설치 확인  # rpm -qa | grep nfs-utils   nfs-utils-1.2.3-64.el6.x86_64   nfs-utils-lib-1.1.5-11.el6.x86_64 # rpm -qa | grep rpcbind   rpcbind-0.2.0-13.el6_9.1.x86_64 ◎ 관련 파일  • 데몬 : /usr/sbin/rpc.nfsd           /sbin/rpcbind • 관리 스크립트 : /etc/rc.d/init.d/rpcbind                      /etc/rc.d/init.d/nfs • 환경 설정 파일 : /etc/exports                       → 기본 제공되는 파일이 아님 (만들자)   ※ 이전 버전은 portmap을 이용한다. (rpcbind 대신에)      → 둘은 같다고 봐도 무방하다. portmap 버전 up해서 나온게 rpcbind ◎ NFS - export • 허가할 클라이언트 지정   - 주소/넷마스크의 표현 형식으로 사용가능     ex. 203.228.182.0/24 → 203.228.182. 네트워크의 모든 주소   - 하나의 IP 및 호스트의 주소로 적을 수 있음     ex. *.msmc.or.kr → msmc 도메인에 있는 모든 서버     ▷ UID를 이용해 사용자를 구분 ◎ NFS - export 옵션 (서버) ...

4. 3 (화) - 보안(대칭키 / feistel 암호 알고리즘 / DES)

◎ 대칭키 암호 (비밀키 암호)   - 장점 : 다양한 알고리즘, 알고리즘 수행 속도의 빠름   - 단점 : ① 키 관리/분배의 어려움, ② 디지털 서명의 어려움             ② → 책임 추적성이 전혀 없다. (누구의 키가 유출된건지 모르기 때문에) ◎ Feistel 암호 알고리즘   - 구조적인 결함이 없다는 것이 증명된 암호 알고리즘   - 똑같이 그릴 줄 알아야함.   - 블록 암호화 (64bits / 128bits)   - L (Left) / R (Right)   - F = K(i) 와 R(i-1)의 F연산   - L(i) = R(i-1)   - R(i) = F (+) L(i-1) ◎ 대칭키 암호의 종류   - DES, AES, IDEA, RC4, etc... ○ 가이드라인 / 스탠다드   - 스탠다드 : 정부에서 공인하는 알고리즘의 암호를 일컫는 보안용어   - 가이드라인 : 스탠다드의 암호는 아니지만 스탠다드와 동일한 보안성을 입증할 수 있는                    암호 알고리즘을 일컫는 보안용어. ◎ DES   - IBM에서 Lucifer System을 개선하여 만든 암호 알고리즘   - 1977년 NBS에서 표준 알고리즘으로 채택   - 암호화 키 = 복호화 키   - 대칭키 암호 / 단일키 암호 / 관용 암호   - Confusion(혼합), Diffusion(확산)을 이용해 원문과 암호문 간 통계적 연관을 숨김   - 64비트 블록 암호 알고리즘   - 56비트 키 (8비트 Parity check)   - 48비트 키 사용 (8비트를 더 제거) ...

Linux Server - Apache 실습 (4 / 4) : vhosts.conf - 단일 IP주소로 여러 개의 홈페이지

이미지
◎ IP 주소 하나로 여러 개의 홈페이지를 띄우는 방법   ▷ 기존의 방식의 단점 : ip주소의 부족으로 홈페이지 전부를 출력하기에 무리가 있음.   ▷ Web 서버의 IP는 한 개, 도메인 네임은 두 개.   ▷ 도메인 주소마다 서로 다른 홈페이지가 열리게 하고 싶은 경우 ◎ conf/extra/httpd-vhosts.conf 파일 설정   ▷ 구조    NameVirtualHost *:80       ← * 대신 IP 지정이 가능하다.        <VirtualHost *:80>  ServerAdmin [메일 주소] : 문제 시 문의 메일 DocumentRoot "[Web 홈 디렉토리]"    : 열 홈페이지 파일 ServerName [접속 도메인명] : 도메인 1 ServerAlias [별명] : 도메인 2 (역시 ns에서 ip를 알려줘야 함) ErrorLog "logs/[에러 로그 파일명]" : 에러 파일 CustomLog "logs/[접속 로그 파일명]"  common        </VirtualHost> ◎ 실습  1) 기본 설정은 Apache 실습 내용을 따른다     → Tag : Apache 를 통해 열람 - DNS Server (.175)  2) named.conf 파일 생성  3) ast008.zone 파일의 생성  4) named 서비스 재시작    #service named restart - Apache (.172)  3) /~/conf/httpd.conf 내용 수정  ...