20060325발표_asp.net보안

Download Report

Transcript 20060325발표_asp.net보안

ASP.NET 보안
이 수 겸 – kenial
[email protected]
Microsoft C# MVP, MCSD.net/MCDBA
©2005 International .NET Association Asia Pacific
Agendas
• 보안의 의미와 성격
• 보안 통신 Secure communication, 인증
Authentication과 권한 Authorization,
• ASP.NET에서의 인증과 권한
©2005 International .NET Association Asia Pacific
보안의 의미와 성격
• 정보 시스템 보안Information System Security의 세
가지 요소
– CIA (기밀성Confidentiality, 무결성Integrity,
가용성Availability)
– 반대 개념 : DAD (노출Disclosure, 변질Alteration,
파괴Destruction)
• 공적/사적 성격의 보안
– 슈퍼마켓, 은행
– 생산관리, 인트라넷, 쇼핑몰
©2005 International .NET Association Asia Pacific
보안의 의미와 성격 (계속)
브루스 슈나이어
'보안은 사슬과 같아서, 가장 약한 부분이 끊어진다‘
• 보안 공격의 양상 ;
폭발물을 이용한 건물 테러에 비교할 수 있음
– Demo ; 패킷 캡처를 활용한 id/pw 알아내기
©2005 International .NET Association Asia Pacific
보안 통신 Secure communication, 인증
Authentication과 권한 Authorization,
• 닷넷에서의 정의
– 보안 통신 Secure communication ; 메시지가 사적(private)
이면서 권한이 없는 사용자에 의해 변조되지 않았음을 보장
– 인증 Authentication ; 어플리케이션의 사용자를 식별
– 권한 Authorization ; 식별된 사용자에게 액세스 권한을 할당
©2005 International .NET Association Asia Pacific
.NET Web application security
©2005 International .NET Association Asia Pacific
ASP.NET Security Architecture
©2005 International .NET Association Asia Pacific
Secure communication
• SSL Secure Socket Layer
– 채널 단위의 보안 기능 제공. 보통 브라우저와 웹 서버간의
http 채널 보안을 위해 사용되며, 웹 서비스 메시지 보안에도
사용된다.
• IPSec Internet Protocol Security
– 컴퓨터 간의 통신 보안에 사용. 예) 어플리케이션 서버와
데이터베이스 서버의 연결 보안
• RPC Remote Procedure Call encryption
– 클라이언트 / 서버간의 모든 rpc 패킷을 암호화. DCOM에서
사용
– 여기에서는 다루지 않음
©2005 International .NET Association Asia Pacific
Secure communication (계속)
• 위와 같은 구성이 꼭 절대적인 것은 아님
– 사용하는 프로토콜, 서버의 환경(하드웨어, OS), 방화벽 구성
등등에 따라 가변적일 수 있음
©2005 International .NET Association Asia Pacific
Secure communication (계속)
• SSL
– SSL이 적용되면 클라이언트는 https 프로토콜을 사용하며,
(https://URL) 서버는 443번 TCP 포트로 접속을 받아들인다.
– 보통 SSL의 최대 부하는 초기접속handshake시 보안 세션이
생성되기까지의 시간이며, 그 이후에는 상대적으로 빠른
속도를 보인다.
– SSL이 적용되는 웹 페이지는 가능한한 전송량을 줄인다.
– 설치하는데 서버 인증서가 필요함
©2005 International .NET Association Asia Pacific
Secure communication (계속)
• Demo ; set up SSL
– 인증 요청 생성
– 인증 요청을 발급 기관으로
발송
– 인증서 발급
– 인증서 웹 서버에 설치
– 웹서버에 SSL 접속 설정
– https://www.thawte.co.kr/fr
eecert.asp ; SSL 테스트용
인증서
©2005 International .NET Association Asia Pacific
Secure communication (계속)
• IPSec
– IPSec은 특정 컴퓨터와 주고받는 데이터의 보안에 사용된다.
– SSL이 주로 브라우저/웹 서버의 http 통신 보안에 사용되는
반면, IPSec은 TCP/UDP 및 특정 프로토콜, 특정 IP 별로
통신에 대한 보안을 설정할 수 있다.
– Kerberos(같은 포리스트에 있어야 함), 서버 인증서, 문자열
기반 암호화를 사용할 수 있다.
– Demo ; set up IPSec
• ‘관리 도구 -> 로컬 보안 정책’에서 설정
©2005 International .NET Association Asia Pacific
ASP.NET의 인증
•
•
•
•
Forms
Windows
Passport
None
©2005 International .NET Association Asia Pacific
Forms Authentication
• authentication ticket ; 로그온되었을 때 생성되어
사이트를 이용할 수 있게 함. 보통은 쿠키에 저장되나,
asp.net 2.0에서는 querystring을 통해서 쿠키를
사용하지 않을 수도 있음
• 접근 권한이 필요한 페이지에 접근하면, 로그온
페이지로 돌려보냄
• 유저 정보는 설정 파일이나 SQL Server에 저장될 수
있음
©2005 International .NET Association Asia Pacific
Forms Authentication (계속)
• Forms Authentication Demo (with sql server)
– 로그인 페이지 생성
• Login 컨트롤 사용
– 웹 어플리케이션의 인증 모드 설정
• web.config 파일 편집
– 회원정보를 위한 설정
• 회원정보 저장 공간 생성 ; aspnet_regsql.exe
• db 접근 권한 생성; grantMembershipDb.sql
• Asp.net이 지금 설정된 db에 접근할 수 있도록 설정
– connectionString Element
– membership Element
– 페이지 접근 권한 설정 ; location Element
©2005 International .NET Association Asia Pacific
Windows Authentication
• Anonymous
– 초기 IIS의 상태, form 기반 인증이나 다른 인증 방법 사용
• Basic
– 직접 ID와 패스워드를 입력, 인증함
• Digest
– Active Directory를 이용, 도메인 컨트롤러에서 인증
• Integrated Windows ; Kerberos, NTLM
• Certificate
– 인증서를 이용
©2005 International .NET Association Asia Pacific
Windows Authentication (계속)
• Windows Authentication Demo
– IIS 설정
– Web.config 설정
– Impersonate
• IIS 5.0 -> IIS 6.0에서의 변경
– ASPNET -> NT AUTHORITY\NETWORK SERVICE 계정 사용
©2005 International .NET Association Asia Pacific
Reference
• Building Secure ASP.NET Applications: Authentication,
Authorization, and Secure Communication
http://msdn.microsoft.com/library/enus/dnnetsec/html/secnetlpMSDN.asp
• International Information Systems Security
Certification Consortium http://www.isc2.org/
• Patterns & Practices Security Guidance for
Applications Index
http://msdn.microsoft.com/library/default.asp?url=/li
brary/en-us/dnpag2/html/SecurityGuidanceIndex.asp
©2005 International .NET Association Asia Pacific