////
Search

RSA 암호화 (with. EC2)

“공개 키 & 개인 키 Pair” 개인 키는 사용자에게, 공개 키는 서버에 저장되어 인증에 사용
우선 “암호화”란, “평문”을 권한이 있는 사람만 해독할 수 있는 “난잡한 데이터”로 바꾸는 과정이라고 생각한다.
우리가 ec2 인스턴스에 ssh 접속할 때 .pem 파일을 사용한다. 이 .pem 키는 인스턴스를 생성할 당시 다운로드 받게된다. 이걸 개인키라고 하는데, 공개키는 ec2 인스턴스에 존재한다. 만약 공개키를 확인해보고 싶다면,
cat ~/.ssh/authorized_keys 명령어를 통해 공개키 내용을 확인해볼 수 있다.
그럼 개인키와 공개키를 통해 어떻게 .pem 파일이 본인이 맞음을 증명하는 걸까? ”공개키로 암호화하고 개인키로 복호화”하는게 핵심이다. 구체적인 과정은 다음과 같다 :
1.
EC2 인스턴스 생성 시
AWS : "키페어 생성" -> 공개키는 EC2에 저장 -> 개인키는 다운로드(.pem)
Markdown
복사
2.
SSH 접속 시도
ssh -i key.pem ec2-user@IP 명령어 입력 (그럼 이제 인증 과정을 거침) 1. EC2가 랜덤 문자열을 생성(예 : ABC222) 2. EC2가 공개키로 "ABC222"를 암호화 -> "x2#@^7" 3. EC2가 접속하고자 하는 유저에게 "x2#@^7"를 풀어보라고 요청 4. 유저의 로컬에서 개인키로 "x2#@^7"를 복호화해 "ABC222"로 변환해냄 5. 유저가 EC2에 "ABC222"라고 답 6. 그럼 EC2가 개인키를 가진 본인임을 확신
Markdown
복사
이때 EC2가 만들어낸 랜덤 문자열은 “랜덤 난수”이다. 매번 다른 값을 사용함으로써 이전 접속 기록을 활용해도 의미가 없게끔 한다 (즉, EC2 인스턴스 이름과 같은 의미있는 내용이 아니다)