일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- appbar
- Navigation
- Dialog
- 앱바
- tabbar
- data
- CustomScrollView
- viewmodel
- intent
- DART
- textfield
- drift
- LifeCycle
- ScrollView
- livedata
- activity
- Button
- binding
- scroll
- TEST
- 안드로이드
- Kotlin
- Flutter
- 앱
- 계측
- Compose
- android
- 테스트
- Coroutines
- textview
- Today
- Total
Study Record
[암호] GPG CMD 본문
1. GPG CMD 의 간단한 사용법
※ GPG 자세한 사용법 - https://devhints.io/gnupg
1-1. key 생성과 관리
☞ key 생성 : ~/.gnupg
gpg --gen-key
gpg --full-gen-key /* 모든 옵션을 위한 dialogs 가지고 새로운 키 생성 */
☞ key 목록 확인
gpg -k # public Key
gpg -K # private key
gpg --list-key
☞ 원격 서버에 key upload
public key 를 key를 보관하는 원격 서버에 등록한다.
gpg --send-keys <KEY ID> --keyserver <서버URL>
☞ 원격 서버에서 key 검색
gpg --keyserver <서버URL> --search-keys "<SEARCH SHTRING>"
☞ 원격 서버에서 key import
gpg --recv-keys <KEY ID> --keyserver <서버URL>
gpg --recv-keys <KEY ID>
gpg --import <key파일>
gpg --armor --import <key 파일>
gpg --import test.gpg
gpg --armor --import test2.gpg
// --batch --yes : 모든 대답을 y로 한다.
gpg --batch --yes --import $pubKey >/dev/null 2>&1
[ keyserver ]
vks://keys.openpgp.org
hkps://hkps.pool.sks-keyservers.net
hkps://pgp.mit.edu
cryptonomicon.mit.edu
※ <SEARCH SHTRING> 으로 사용할 수 있는 값
Key ID : 4AB8A56E
이름 : Kim, YunHee
내용 : This is a test.
이메일 : lauwedifigy@daum.net
ex) gpg --keyserver cryptonomicon.mit.edu --search-keys lauwedifigy@daum.net
gpg --keyserver cryptonomicon.mit.edu --search-keys 4AB8A56E
☞ gpg key exporting
gpg -o key.gpg --export <KEY ID>
gpg -o key.asc --armor --export <KEY ID> /* ASCII 키로 내보내기 */
☞ gpg key 삭제
gpg --delete-key [key-ID | email ..] # public keyring 삭제
gpg --delete-secret-keys [key-ID | email ..] # secret keyring 삭제
☞ 해지 인증서 생성(revocation certificate)
암호를 잊어 버렸거나, 개인 키가 손상되거나, 분실 된 경우 해지 인증서가 공개 키를 더 이상 사용해서는 안됨을 다른 사람들에게 알리기 위해 게시 될수 있다. revocation certificate(해지 인증서)는 안전한 장소에 보관해야 한다.
gpg -o <해지인증서 파일이름> --gen-revoke <Search String>
# Search String : 이름, 이메일, keyID, 내용이 사용될 수 있다.
gpg -o revoke.asc --gen-revoke 'name, namename'
gpg -o revoke.asc --gen-revoke 'D6C4055D'
gpg -o revoke.asc --gen-revoke 'lauwefifd@hanmail.net'
gpg -o revoke.asc --gen-revoke 'GPG Test'
1-2. 암호화/복호화
sub 의 key ID 인 C476B268 로 암호화한다.
ssb 의 key ID 인 C476B268 로 복호화한다.
☞ 공개키로 암호화
gpg -e -o <암호화된 파일 이름> -r <Recipient> <암호화할 파일>
# Recipient : [Key ID | "이름" | 이메일]
gpg -e -r <KEY ID> secret.txt
gpg -e -r "이름" secret.txt
gpg -e -r "jang4sc@hanmail.net" secret.txt
gpg -e -r <Recipient> -r <Another recipient> secret.txt
// --trust-model always : 항상 puclic key 를 신뢰한다.
gpg -e -r "jang4sc@hanmail.net" --trust-model always -o file.txt.gpg txt.gpg
☞ 개인키로 복호화
gpg -o <복호화된 파일 이름> --default-key <Search String> -d <복호화할 파일>
gpg -o secret.txt --default-key "SEARCH SHTRING" -d secret.txt.gpg
☞ 블록암호를 이용한 암호화
gpg -c secret.txt
☞ 블록암호를 이용한 복호화
// -o 옵션이 빠지면 stdout 출력
gpg -d -o secret.txt secret.txt.gpg
// --passphrase-fd 0 : 패스워드를 앞 명령어인 soldesk1. 으로 설정한다.
// --batch --yes : 모든 대답을 y로 한다.
echo soldesk1. | gpg --batch --yes --passphrase-fd 0 -d -o install.sh install.sh.gpg
1-3. 서명/검증
pub 의 4AB8A56E 로 서명한다.
sec 의 4AB8A56E 로 검증한다.
☞ Signing
gpg -o <서명값이 저장될 파일> -s <서명할 파일> --default-key <Recipient>
gpg -o signed-file.txt.gpg -s file.txt
gpg -o signed-file.txt.gpg -s file.txt --default-key 711AED
# encryption + sign
gpg -s -o secret.txt.gpg -r <Recipient> secret.txt
☞ Verifying a signature
gpg --verify file.txt.gpg
☞ 사인된 파일 내용 보기
gpg -d signed-file.txt.gpg
2. gpg 실습해보기
2-1. key 생성과 확인
㉮ key 생성
# gpg --gen-key
key ID 가 71195EEC 인 key를 생성했다.
㉯ 생성한 key 목록 확인해본다.
# gpg -K
# gpg -k
key ID 가 71195EEC 로 생성한 key가 잘 보인다.
2-2. key를 원격 서버에 등록하기 - Key ID : 4AB8A56E
㉮ key ID 를 이용해서 원격 키 서버(cryptonomicon.mit.edu) 에 등록해본다.
# gpg --keyserver cryptonomicon.mit.edu --send-keys 4AB8A56E
㉯ 원격 키 서버에 가서 키가 등록됐는지 확인해본다.
# gpg --keyserver cryptonomicon.mit.edu --search-keys lauwedifigy@daum.net
등록된 키가 잘 확인된다.
+ 홈페이지에 직접 방문해서 확인하는 방법
2-3. key import / export 와 delete
Linux200 : 192.168.10.200 - key export
KaliLinux : 192.168.10.60 - Linux200에서 export한 키를 import 해본다.
[Linux200] - key ID : 4AB8A56E
㉮ key를 export 해본다. binary 파일로 생성한다.
# gpg -o key.gpg --export 4AB8A56E
binary 파일로 되어있기 때문에 cat 명령어로 읽을 수는 없다.
㉯ key를 export 하는데 --armor 옵션을 붙여 해본다. ASCII 파일로 생성된다.
# gpg -o key_armor.gpg --export 4AB8A56E --armor
cat 명령어로도 읽을 수 있다.
[KaliLinux]
㉰ Linux200 서버에서 만든 key.gpg 와 key_armor.gpg 를 가져온다.
# scp 192.168.10.200:/home/user01/test/* .
㉱ key.gpg 파일을 import 해본다.
# gpg --import key.gpg
㉲ import 한 key를 삭제해보자
# gpg --delete-keys kim
㉱ ascii 형식의 key 파일을 imort 해보자
# gpg --armor --import key_armor.gpg
'암호' 카테고리의 다른 글
[암호] 디지털 서명 (0) | 2021.12.13 |
---|---|
[암호] HTTPS 패킷 분석 - 복호화 작업 (0) | 2021.12.13 |
[암호] Window에서 private key를 가지고 리눅스 서버 접속 - putty (0) | 2021.12.10 |
[암호] 메시지 인증 코드(MAC) (0) | 2021.12.10 |
[암호] Window 사용자 암호 크랙 - chntpw CMD (0) | 2021.12.10 |