SSL(Secure Sockets Layer)은 보안 소켓 계층이라는 뜻으로, 미국 넷스케이프 커뮤니케이션스(Netscape Communications)사가 웹 서버와 웹 브라우저 사이에 데이터를 안전하게 주고받기 위해 개발한 프로토콜이다.
개요
웹 서버와 웹 브라우저가 네트워크를 통해 개인정보와 같은 데이터를 전송할 때 개인정보 유출의 가능성이 있기 때문에 SSL과 SSO(Single Sign On)를 사용하여 데이터를 암호화하여 전송하는 것이 안전하다.[1]
특징
- 보안 강화 : SSL 인증을 받지 않은 홈페이지에 접속하면, 개인정보가 외부에 노출될 가능성이 있다. 이 개인정보 유출을 SSL로 보안서버를 구축할 수 있다.
- 위조 사이트 방지 : SSL 인증을 받은 홈페이지는 실제 홈페이지임을 증명하므로 해커가 유사 사이트를 만들어 피싱을 통해 개인정보를 획득하는 것을 막을 수 있다.
작동 원리
SSL은 기본적으로 다음의 작업을 수행한다.
- 서버 인증 : 사용자의 웹 브라우저가 웹 사이트에 접속할 때 서버를 인증하는 작업이다.
- 암호화 : 클라이언트와 서버 사이에 내용을 들키거나 변경되는 것을 방지하는 작업이다.
- 클라이언트 인증 : 서버 인증과 반대로 서버가 사용자를 인증하는 작업이다.[2]
SSL에서 웹 서버와 웹 브라우저 사이에 주고받을 데이터를 암호화하는 방법에는 2가지 방법이 있다.
- 대칭키 암호화 방식 : 대칭키 암호 알고리즘을 사용하는 방식으로, 송신자와 수신자가 공유키를 사용해야 한다. 송신자는 보낼 데이터를 공유키를 사용해 암호화하여 데이터를 전달하고, 수신자는 받은 데이터를 공유키를 사용해 복호화하여 데이터를 해석한다. 이 방식은 공유키가 유출된다면 누구나 데이터를 복호화 할 수 있다는 단점이 있다.
- 공개키 암호화 방식 : 이 방식은 대칭키 암호화 방식의 단점을 보완한 것으로, 공개키 암호 알고리즘을 사용한다. 송신자는 보낼 데이터를 공개키로 암호화하고, 수신자는 받은 데이터를 비밀키로 복호화하는 방식이다. 이 경우 수신자의 비밀키가 유출되지 않는다면, 데이터가 유출될 가능성이 매우 희박하다.
사용목적
- 스니핑 방지(Sniffing Prevention) : 네트워크를 공동으로 쓰는 PC방, 회사, 학교 등에서 간단한 스니핑 툴로 인해 개인정보가 누출되기 쉬운데 SSL인증서를 설치하면 모든 정보가 암호화되어 정보가 유출되더라도 상관없다. 특히 전자상거래 상에서는 정보 유출 방지를 위해 반드시 기본적으로 SSL을 적용해야하는 필수 요소입니다.
- 피싱 방지(Phishing Prevention) : 피싱이란 개인정보와 낚시의 합성어로 개인정보를 낚는다는 의미이다. SSL 보안서버 인증서를 구축한 사이트는 SSL인증서 발급 전 신뢰받은 인증기관에 의해 진짜 사이트임을 미리 확인 받게 되는데 인증을 받지 않으면 유사사이트에 대해서 SSL인증서를 발급받을 수 없기 때문에 SSl 인증서를 발급받게 되었을 시 클라이언트의 신뢰를 얻을 수 있습니다.
- 데이터변조 방지(Data Modulation Prevention) : 각종 통신 환경을 이용하여 컴퓨터내의 정보 또는 데이터의 전송결과를 임의로 변조하는 범죄의 일종으로 제 3자의 악의적인 개입으로 인하여 데이터 값이 변조될 가능성이 매우 크다. 직장 내 급여변경, 온라인 이체 시 금액변조, 학생의 성적 기록변조 등이 있는데 이러한 악의적인 데이터의 변조를 SSL보안서버 구축을 통해서 봉쇄할 수 있다.
- 기업 신뢰도 향상(Improved Business Confidence) : 정식으로 기업실체성인증을 받고 보안인증마크를 설치함으로써 기업자체에 대한 신뢰성을 향상 시킬 수 있다. 또한, 보안 접속체크박스 등의 안내로 보안 및 고객정보를 소중히 다루는 기업이라는 가시적인 홍보 효과까지 얻을 수 있다.[3]
SSL 인증서 종류
- 싱글(Single) 인증서 : 완전한 자격을 가진 하나의 도메인 또는 하나의 하위 도메인을 인증한다.
- 와일드카드(WildCard) 인증서 : 하나의 도메인 또는 여러 개의 하위 도메인을 인증한다.
- 멀티(MDC) 인증서 : 여러 개의 도메인을 인증한다.
각주
참고자료
같이 보기
이 SSL 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.
|
개발 : 프로그래밍 □■⊕, 소프트웨어, 데이터, 솔루션, 보안, 하드웨어, 컴퓨터, 사무자동화, 인터넷, 모바일, 사물인터넷, 게임, 메타버스, 디자인
|
|
프로그래밍 언어
|
ASP • C 언어 • C++ • C# • CSS • D 언어 • HTML • HTML5 • JSP • PHP • R • XHTML • XML • XSLT • 고(Go) • 고급언어 • 기계어 • 델파이 • 러스트 • 루비 • 루아 • 리액트 • 리퀴디티 • 무브 • 미켈슨 • 베이직 • 브이비스크립트 • 비주얼 C++ • 비주얼베이직(VB) • 비주얼베이직닷넷(VB.NET) • 솔리디티 • 스몰토크 • 스위프트 언어 • 스칼라 • 스크립트 언어 • 알골 • 어셈블리 • 언리얼스크립트 • 얼랭 • 에이잭스(Ajax) • 엠에프씨(MFC) • 오브젝티브-C • 오브젝트 파스칼 • 오카멜 • 웹어셈블리(WASM) • 이와즘(eWASM) • 자바 • 자바스크립트 • 저급언어 • 제이슨(JSON) • 제이쿼리(jQuery) • 카멜 • 코볼 • 코틀린 • 콜드퓨전 • 타입스크립트 • 파스칼 • 파워스크립트 • 파이썬 • 펄(Perl) • 포트란 • 프로씨(Pro-C) • 피엘에스큐엘(PL/SQL) • 피엘원(PL/I) • 하스켈
|
|
개발방법론
|
CBD 개발방법론 • EA • 구조적 개발방법론 • 객체지향 개발방법론 • 라이브러리 • 람다 아키텍처 • 모듈 • 모듈화 • 벤치마킹 • 소프트웨어 개발방법론 • 스크럼 • 스프린트 • 아키텍처 • 아키텍트 • 애자일 • 웹개발방법론 • 정보공학 개발방법론 • 컴포넌트 • 테일러링 • 템플릿 • 폭포수 모델 • 프로젝트 • 프로토타입 • 피드백
|
|
코딩
|
EUC-KR • UTF-8 • 값 • 글루웨어 • 노팔로우 링크 • 두팔로우 링크 • 디버깅 • 디코딩 • 마크업 • 버그 • 부트스트랩 • 세이브포인트 • 소스코드 • 시큐어코딩 • 아스키 • 액티브엑스 • 오픈소스 • 유니코드 • 인코딩 • 재컴파일 • 주석 • 컴파일 • 컴퓨터 프로그램 • 코드 • 코딩 • 태그 • 테스트 • 테이블 • 텍스트 • 파싱 • 퍼블리싱 • 퓨니코드 • 하드코딩 • 하이퍼링크 • 하이퍼텍스트
|
|
프로그래밍
|
C 명령어 • 객체 • 객체지향 • 객체지향 프로그래밍 • 거짓 • 관계연산자 • 기본형 변수 • 널 • 논리 • 논리연산 • 논리연산자 • 다중상속 • 다형성 • 대입 • 대입문 • 대입연산자 • 더블 • 도스 명령어 • 디폴트 • 레지스터변수 • 루프 • 리눅스 명령어 • 리턴 • 메모리 주소 • 메소드 • 멤버 • 명령문 • 명령어 • 무한루프 • 문자 • 문자열 • 바이트 • 반복문 • 배열 • 변수 • 분기 • 분기문 • 불린 • 브레이크 • 비교연산자 • 비트연산자 • 산술연산자 • 상속 • 상수 • 생성자 • 선언 • 선언문 • 설정자 • 속성 • 스위치 • 스태틱 • 시프트연산자 • 실행 • 실행문 • 어노테이션 • 에코 • 역참조 • 연산 • 연산문 • 연산자 • 오버로딩 • 오버라이딩 • 외부변수 • 윈도우 명령어 • 유닉스 명령어 • 인스턴스 • 인스트럭션 • 인클루드 • 인터페이스 • 임포트 • 입력 • 입력문 • 입출력 • 입출력문 • 자료형(데이터 타입) • 자바 명령어 • 자바 예약어 • 자바 컬렉션 • 전역변수 • 접근자 • 접근제어자 • 정보은닉 • 정수형 • 정적변수 • 제어 • 제어문 • 제어자 • 조건 • 조건문 • 조건연산자 • 주소 • 증감연산자 • 지역변수 • 참 • 참조 • 참조변수 • 초기화 • 추상메소드 • 추상클래스 • 추상화 • 출력 • 출력문 • 캡슐화 • 케이스 • 클래스 • 파라미터(매개변수) • 파이널 • 패키지 • 퍼블릭 • 포인터 • 프라이빗 • 프로텍티드 • 필드(멤버변수) • 함수 • 환경변수
|
|
명령어
|
abstract • array • boolean • break • byte • case • char • continue • default • double • do while • echo • elif • else • else if • false • final • float • for • gosub • goto • if • if else • import • include • int • join • long • long long • null • print • printf • println • private • protected • public • return • scanf • short • stdio.h • static • string • switch • temp • then • true • unsigned • void • while
|
|
디자인패턴
|
구조패턴 • 동시성패턴 • 동시실행패턴 • 모델-뷰-컨트롤러 패턴 • 상태패턴 • 생성패턴 • 싱글톤패턴 • 아키텍처패턴 • 전략패턴 • 커맨드패턴 • 행동패턴
|
|
프로그래밍 인물
|
귀도 반 로썸 • 그레이스 머레이 호퍼 • 니클라우스 비르트 • 댄 브릭클린 • 더그 커팅 • 데니스 리치 • 리누스 토르발스 • 리처드 그린블라트 • 마거릿 해밀턴 • 마크 앤드리슨 • 빈트 서프 • 빌 게이츠 • 빌 조이 • 스티브 잡스 • 에이다 러브레이스 • 제임스 고슬링 • 척 벤턴 • 켄 톰슨 • 팀 패터슨
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|