관리 메뉴

I LOVE EJ

SSH (Secure Shell) 본문

Hobby/컴퓨터 관련지식

SSH (Secure Shell)

BeOne 2009. 5. 13. 23:11
개념
  공개키 암호화 기법에 기반을 두고 있고, 접속하고자 하는 컴퓨터에 안전하게 명령을 내릴 수 있는 가상의 보안 
  채널을 만들어 주는 역할을 한다.

  • 클라이언트가 먼저 서버에게 SSH 보안 채널을 만들 것을 요청하면, 서버는 자신의 공개 호스트키 (Public Host Key) 와 공개 서버키 (Public Server Key) 를 클라이언트에게 보내준다.
  • 서버로부터 두 개의 키를 받은 다음에 클라이언트는 랜덤키를 하나 생성한 후 이 랜덤키를 호스트 공개키와 서버 공개키를 가지고 차례로 암호화한다. 이 키를 서버에 보내고, 서버와 클라이언트는 이키를 대칭형 암호화 키로 사용하게 된다. 이와 같은 인증방법을 호스트 기반 인증 (Host-Based Authentication) 이라고 한다. 흔히 부르는 세션키가 이렇게 만들어진다. 
  • 클라이언트와 서버간의 채널이 만들어졌고, 서버는 클라이언트가 해당 서버를 사용할 수 있는 사용자인지 인증을 해야한다. 이 단계가 클라이언트 인증 단계이다. 클라이언트 인증 방법은 비비밀번호 기반 인증 기법 (Nonpassword authentication schemes) 과 비밀번호 기반 인증 기법 (Password authentication schemes) 가 있다.
  • SSH는 비비밀번호 기반 인증 기법을 사용한다.

▶ 비비밀번호 암호화 기법
  이 기법은 인증 수단에 따라 호스트 기반 인증 기법과 공개키 인증 기법이 있다.
  • 호스트 기반 인증 기법


           클라이언트가 서버에게 자신이 만든 Public 키를 보내고 서버는 클라이언트가 보낸 Public 키가 신뢰할 수           있는 호스트인지 리스트에서 찾는다. 만약 리스트에 있으면 서버는 클라이언트의 접속을 허용한다.
  • 공개키 인증 기법

      비비밀번호 인증 기법 중에서 가장 강력한 보안 능력을 가지고 있다.
  1. 클라이언트는 자신의 공개키를 서버에 보내고 개인키는 자신이 가지고 있는다. 이 키들은 ssh-keygen 명령어를 사용하여 한 쌍의 공개키와 개인키를 만들 수 있다. 
  2. 클라이언트로부터 공개키를 받은 서버는 임의의 256비트 랜덤값을 하나 만든 후 클라이언트의 공개키를 가지고 암호화해서 클라이언트로 보낸다.
  3. 클라이언트는 해석된 랜덤값을 128비트 MD5 해시값을 만들어서 서버에 보내고 서버는 다시 자신이 만든 랜덤값을 128비트 MD5 해시값으로 만든 후 클라이언트가 보낸 값과 비교한다. 만약 값이 일치하면 접근이 허용되고 그렇지 않으면 허용되지 않는다.
       
▶ SSH2
  SS2는 SS1보다 더 안전하고 효율적인 버전이며, FTP와 기능적으로 비슷하지만 SSH2로 암호화된 SFTP를 갖고 있다.


 출처 : http://blog.naver.com/hgh73