평문 메시지나 데이터를 송수신할 때 송수신자만 이해 할 수 있도록 원문 메시지나 데이터를 변형 시켜서 암호문으로 만드는 작업을 암호화
파일 단위의 암호화 파일 시스템 단위(Bit Locker) 의 함호화를 사용할 수 있음
Bit Locker: 하드디스크를 소프트웨어적으로 처리하여 암호화함
Linux 암호화 시 GPG 사용
PGP 암호화 기법과 호환되며 공유키 암호화해서 모두 사용 될 수 있음
개인키/공유키에 관련된 키를 GPG 명령어를 사용
알고리즘은 Feistel 기법을 사용, 블록 암호의 일종으로 특정 계산 함수를 반복해서 암호화가 이루어짐-> 라운드 함수
블록 암호가 파이스텔 구조를 가짐
송신자가 평문자를 일정한 알고리즘(키)로 암호화해서 암호문을 보냄
수신자는 동일한 알고리즘(키)를 사용해서 복호화해서 읽는 프로세스
암호화와 복호화해서 동일한 키를 사용하면 대칭키 , 서로 다른 키를 사용하면 비대칭키
암호화는 정보 은닉을 위해서 사용 (무결성 검사는 Hash)
대칭키는 DES, 3DES, AES, SEED,ARIA, IDEA RC5 등의 알고리즘을 사용
송수신자가 모두 같은 키를 가지게 되므로 공유키 개념
송신자는 자신이 사용했던 키와 암호문을 함께 수시자에게 전송해야됨
공유키는 대칭키(단일키)에 속하는 공유키 암호화로 개인적인 파일을 암호화 할 때 사용하는 것이 좋으며 gpg -c로 생성
암호 문구를 대칭키로 사용하여 암호문 생성
암호문 생성 시 .gpg 확장자가 붙은 파일 생성: 대칭키(암호문구)로 암호화된 파일
외부에서 암호문 파일을 받아 복호하 할 때 대칭키 입력
외부에서 암호문을 확인할 때 위에서 생성한 암호 문구를 모를 경우 복호화 되지 못함
송수신가 서로 다른 암호화 키(공개키,개인키)를 사용
알고리즘: DSA,RSA
수신자가 개인키와 공개키 생성 한 뒤 송신자에게 공개키를 전송
송신자는 수신자로부터 받은 공개키를 이용하여 암호화 한 뒤 수신자에게 암호화 파일 전송
수신자는 암호화 파일을 받아 개인키로 복호화하여 파일을 읽을 수 있음
설정 중 암호문을 입력하면 pinentry가 뜸 > passphrase가 최소 8글자 이상 사용하라고 뜰 수 있음
gpg 사용하여 공개키와 개인키 생성
키 생성 시 Keysize, 유효일자, 상대방에 대한 정보 등을 입력
키 항목을 보면 공개키 pub, 개인키 uid
수신자로부터 받은 공개키를 이용하여 송신자는 평문장을 암호화 한 후 전송
수신자는 송신자로부터 온 암화문을 자신의 개인키로 gpg ~ 로 복호화해서 평문장 확인
gpgdir: 디렉터리를 암호화
암호화: 데이터를 다른 사용자가 읽지 못하는 포맷으로 변경하는 것
복호화: 암호화된 데이터를 다시 읽을 수 있는 포맷으로 변경하는 것
데이터를 해킹 당해도 해커는 복호키가 없으면 해독할 수 없어서 데이터가 안전
HDD, USB 암호화 해두면 들어있는 모든 디렉터리와 파일들이 동시에 암호화 됨
BitLocker로 저장장치를 암호화시키는데 파일 /폴더 암호화인 EFS보다 강력한 기법
gpgdir 도구는 재귀적으로 디렉터리 암호화와 복호화를 수행 할 수 있음
암호화: gpgdir -encrypt ~, 복호화: gpgdir -decrypt
gpg 키에 대한 정보를 확인 할 수 있음
gpgdir public 공개키로 다운로드 받은 bz2.asc 파일을 전자서명
wget http://cipherdyne.org/gpgdir/download/gpgdir-1.9.5.tar.bz2
wget http://cipherdyne.org/gpgdir/download/gpgdir-1.9.5.tar.bz2.asc
- gpgdir update (v2.2.9) repository 추가
$ vim /etc/yum.repos.d/gpg.repo
name=Copr repo for keepassxc owned by bugzy
baseurl=https://copr-be.cloud.fedoraproject.org/results/bugzy/keepassxc/epel-7-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/bugzy/keepassxc/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1
gpgdir 실행하여 .gpgdirrc 파일 생성됨- Install
$ sudo yum install make autoamke gcc-c++ cmake
$ sudo yum install qt5-qtbase-devel qt5-linguist qt5-qttools qt5-qtsvg-devel libgcrypt-devel libargon2-devel qrencode-devel zlib-devel
$ sudo yum install bzip2- upgrade to 2.2.x
curl -OL "https://gist.githubusercontent.com/simbo1905/ba3e8af9a45435db6093aea35c6150e8/raw/83561e214e36f6556fd6b1ec0a384cf28cb2debf/install-gnupg22.sh" && sudo -H bash ./install-gnupg22.sh
공개키와 사설키 생성
재귀적으로 디렉터리 암호화
재귀적 디렉터리 암호화 된 파일 확인
리눅스의 경우 윈도우처럼 상속의 개념이 없어 암호화된 디렉터리에 새로운 파일을 생성하면 새로운 파일들은 암호화 되지 않으므로 유의해야됨
데이터를 저장하는 하드디스크를 암호화,
중요한 데이터가 저장된 드라이브를 감출 때 저장된 데이터의 유출을 방지
BitLocker나 파일/폴더를 암호화해두는 EFS와 유사한 기법
Linux에서는 HDD, USB 같은 블록 장치들의 마운트를 통해 조절
RedHat_LLKS, Linux_EncFS, 블록단위의 암호화 TrueCrupt
HDD 전체를 암호화해서 함부로 마운트 할 수 없게 해주는 도구
install cryptsetup && HDD 인식한 뒤 암호화 해주기
SDB는 암호화된 디스크 이름, 패스워드를 입력하면 일반적인 볼륨으로 인식 디바이스 맵핑이 생성
SDB의 설정 정보 확인
파티션과 포맷
SDB를 마운트하고 용량을 확인하고 마운트를 확인하면 SDB의 마운트 되었음에도 마운트가 보이지 않음
/sdb에 파일을 몇가지 복사 한 뒤 암호화가 해제된 파일 시스템을 만들려면 umount 한 뒤 /SDB 장치가 보이지 않음
SDB 장치 암호화 해제
암호화 파일시스템 만들려면
파일 시스템 점검
특정 디렉터리 감춰두기, 마운트로 조절
중요한 파일/폴더가 디스크를 암호화된 볼륨으로 만들어 두고,필요시 어디에나 마운트시켜 사용한 뒤, umount해서 감추는 기능
64개의 가상 디스크를 볼 수 있음
이 많은 가상 디스크에서 파일을 감출 수 있음
creat Volume > Create an encrypted > Standard > Location 설정 > Option: AES > password 설정 시 key: Generate key file 생성 후 add files > Format Options: EXT3 > Format > Volume create exit
적당한 드라이브에서 select file > exit
dismount 할 경우
sdb에 대한 것도 사라져서 하드디스크를 확인 할 수 있는 길이 별로 없음
11번에 생성했었던 txt파일을확인할 수 있음
SSH 클라이언트가 서버로 접속할 때 사용자_명과 패스워드를 인증 사용
패스워드 대신 공개키와 개인키로 인증받고 연결할 수 있음
외부사용자에게 패스워드 노출이 되어도 암호화되어 있어 풀 수 없기 때문에 보안상 우수
SSH 클라이언트들은 자신의 공개키와 개인키를 생성하고
공개키는 서버의 공개 키링에 저장해 두고 자신의 개인키만 보유하다가
SSH 서버에 로그인할 때 로컬의 개인키와 서버에 저장된 자신의 공개키로 인증 받아 연결
Centos 운영체제를 서버로 사용하여 sshd 서비스를 시작한 뒤 22번 port 활성화
centos 홈 디렉터리 아래에 .ssh 디렉터리가 필요
ssh 서버에서 각 SSH 클라이언트의 공개키를 저장할 키링파일 생성
win7에서 생성한 pub.txt 파일을 복사해옴,
sshd_config: sshd 설정파일 편집
pubkey 인증의 주석을 지우고, KeyFile 경로 설정
원격지의 있는 Rhost를 무시, Password Authetication 설정 no
이후 서비스 재 실행
일반적으로 접속할 경우 패스워드 접속을 안되게 막아뒀기에 키로 인증해야됨
putty 재 접속하여 좌측 SSH>Auth private key 경로 지정 후 접속
별도의 login 없이 rsa-key로 접속함
키 생성
SSH 접속
데이터의 무결성을 보장을 위해서 사용
해시는 아주 드믄 경우 A와 B의 원본 데이터가 달라도 두 해시문이 같을 수도 있음
해시는 역으로 진행되지는 못함,
해시된 문장과 해시된 문장의 원본을 비교해서 해시를 봄
해시 알고리즘: MD2,MD5,SHA256 등이 있음
해시 복호화: John the ripper, Cain&Abel, hashcrack와 같은 도구를 사용
어느 파일을 받은 뒤 서명파일도 같이 다운로드 받는데, 패키지 배포자는 패키지가 무결성한 것을 보증 하기 위해서 패키지에 Hash 키 or ~.asc(전자서명 공개키) 두어 패키지 사용하는 사용자들이 손상되지 않은 원본을 사용하고 있음을 확인시켜줌