2023/04

Kerberos 커버로스는 대칭 암호 원리 기초를 기반으로하는 컴퓨터 네트워크 인증프로토콜이다 주로 클라이언트-서버 시스템에 사용 되며, 인터넷 같이 보안이 보장되지 않는 네트워크에서 사용자 인증, 데이터 무결성, 기밀성 제공합니다 인터넷에서 데이터를 주고 받을 때의 위협은 무엇인가? 사용자 위장 네트워크 주소 변경 (Spoofing) 재전송 공격 커버로스에서 사용자는 서버를 인증할 수 있는 기능을 갖춘 중앙 집중식 인증 서버를 가지게 된다 커버로스 프로토콜의 핵심 요소 클라이언트(Client) : 서비스를 사용하려는 사용자 또는 시스템 서비스 서버(Service Server) : 클라이언트에게 서비스를 제공하는 시스템 인증서버(Authentication Server, AS) : 사용자의 인증 정보를 확..
Kerberos 5 Kerberos 4에 비해 개선 된 부분을 위주로 버전 5 kerberos 프로토콜에 대해 알아보자 버전 4와 버전 5의 차이점 환경적 결함 : Athena 프로젝트 환경에 국한해 설계해서 발생 암호화 시스템 의존성 : 기존의 버전 4는 DES 를 사용하였다 인터넷 프로토콜 의존성 : 버전 4는 IP 주소만을 사용해야 했다 메시지 바이트 순서 : 버전 4의 바이트 순서가 전통적인 방법을 따르지 않았음 티켓 유효 기간 : 버전 4는 티켓 유효기간이 21시간 정도로 짧았음 인증 전달 공동체 간 인증 기술적 결함 이중 암호화 PCBC 암호화 세션 키 패스워드 공격 버전 5의 인증 절차 인증 서비스 교환 티켓 - 발행 티켓 취득 용어 공동체(Realm) : 사용자의 공동체 선택 사항(Opti..
커버로스 4는 내부 암호로 DES를 사용하며, 설명을 위해 Athena 프로젝트의 Bill Bryant가 사용한 방법으로 구조 설명을 하겠다 단순 인증 절차 : 인증서버(AS:authentication server) AS는 각 서버와 유일한 비밀 키를 공유한다 이 때 비밀 키는 물리적으로 분배되거나 다른 안전한 방법을 통해서 분배 된다. 아래의 가상 절차를 고려해보자 (1) 사용자가 워크스테이션에 로그온하고, 서버 V에 접근 요청 사용자 워크 스테이션 내 클라이언트 모듈 C는 사용자 패스워드 요구 사용자의 ID와 서버 ID 그리고 사용자 패스워드를 포함하는 메시지를 AS에 보낸다 (2) AS의 티켓 발행 AS는 데이터베이스 조회 사용자가 자신의 ID와 일치하는 패숴워드를 입력했는지 서버 V에 접근 허가가..
프로그래밍 언어란 프로그래밍 언어 동작시키는 프로그램을 작성하기 위한 인공적인 언어 프로그래밍 언어의 분류 저급 언어 : 기계어, [[어셈블리어]] 하드웨어 지향의 기계 중심 언어 고급 언어 : C, C++, Java 등 대부분의 언어 컴퓨터 기종에 따라 다르게 표현 되는 저급 언어 문제 해결 사람이 사용하는 기호 체계와 유사
논리형 언어 논리형 언어는 기호 논리 형태의 규칙과 사실을 정의하는 방식으로 동작하는 프로그래밍 언어입니다. 선언형 프로그래밍 패러다임을 따르며, 주어진 사실과 규칙을 기반으로 새로운 사실을 유추하거나 질의를 수행합니다. 논리형 언어가 필요해진 이유는 명령형 언어의 기계 친화적인 특성 때문에 프로그래머가 더 사람 친화적이고 추상화된 언어를 원하기 시작했기 때문입니다. 논리형 언어를 사용하면 미리 관계 규칙을 선언하고 값을 입력하면 답이 나오는 구조로 동작하게 됩니다. 예를 들어, "저는 전남대 교수입니다."라는 사실을 선언한 후, 규칙들을 서술하고, 규칙이 맞는지 확인하면서 프로그램을 작성할 수 있습니다. 예시 저는 전남대 교수입니다. 규칙들을 서술해서, 규칙이 맞아? 이게 맞아? 했을 때? 미리 관계 ..
프로그래밍 패러다임 : 계산의 본질을 보는 관점에 따른 분류 지금까지 공부한 순서를 보면 전개 과정이 보입니다. 처음엔 프로그래밍 언어란에서 고급 언어와 저급 언어를 분류하였습니다. 프로그래밍 언어 설계 원칙에서 언어가 가지는 속성을 알게 되었습니다. 이를 토대로, 만들어진 언어가 어떻게 처리 되었는지 [[프로그램 처리 기법]]에서 보았죠 이번 시간에는 그렇다면, 프로그램 생성과 처리 단계도 알았고, 언어가 가지는 속성도 알았으니 프로그래밍 언어의 패러다임에 대해 알아봅시다 즉 언어 자체의 패턴을 보는 것입니다 제가 흔히 쓰는 언어는 명령형 언어인데, 왜 다른 패러다임으로 전환을 시도하는가, 어떤게 필요했을까에 대해 고민한 흔적이 보이니 조금은 더 즐겁게 공부 할 수 있었던거 같습니다 명령형 언어 논리형..
구문 분석(syntax analysis) 구문 분석(syntax analysis)은 소스 코드를 구문적으로 분석하여 프로그램의 구조를 분석하고, 이를 통해 프로그램이 올바른 구조로 작성되었는지 검사하는 과정입니다. 구문 분석은 프로그래밍 언어의 문법 규칙을 따르는지 검사하며, 일반적으로 컴파일러나 인터프리터에서 수행됩니다. 구문 분석 과정에서는 프로그래밍 언어의 문법 규칙을 나타내는 문법이 사용됩니다. 문법은 토큰(token)과 규칙(rule)로 이루어져 있으며, 토큰은 문법적으로 의미 있는 최소 단위이고 규칙은 토큰의 조합을 나타냅니다. 구문 분석기는 이러한 문법을 사용하여 소스 코드를 토큰으로 분해하고, 토큰의 조합이 문법 규칙을 따르는지 검사합니다. 구문 분석 과정은 프로그래밍 언어의 구조를 이해하..
객체 지향 언어 객체 지향 언어는 프로그래밍의 다른 패러다임인 명령형, 함수형, 논리형 언어와 함께 사용할 수 있는 프로그래밍 패러다임입니다. 객체 지향 언어의 등장 계기는 주로 코드의 유지보수와 대규모 시스템을 다루기 위한 목적이었습니다. 객체 지향 프로그래밍은 데이터와 데이터와 관련된 기능을 클래스라는 구조로 묶어 처리하는 방식입니다. 이를 통해 데이터와 기능을 함께 캡슐화하며, 코드의 재사용성과 모듈성을 높입니다. 이러한 특징은 유지보수의 용이성과 대규모 시스템 개발에 큰 이점을 가져다 줍니다. 객체 지향 언어는 현재 프로그래밍 분야에서 매우 인기있는 패러다임으로 인식되고 있으며, 대표적인 객체 지향 언어로는 Java, C++, Python, C# 등이 있습니다. 이러한 언어들은 객체 지향의 개념을..
함수형 언어 함수형 언어는 명령형 언어와 달리, 사람에게 친화적이고 추상화된 프로그래밍 패러다임을 추구하고자 생성 되었다 이를 통해 프로그래머가 사람의 생각과 가까운 방식으로 코드를 작성할 수 있다. 함수형 언어는 함수와 논리형 언어의 개념을 기반으로 하며, 코드를 더 간결하고 이해하기 쉬운 형태로 표현할 수 있다. 이러한 특성 덕분에 함수형 언어는 코드의 예측성과 가독성을 높이며, 테스트와 디버깅에 유리하다. [[@최지우]] 간사님 : 최근 언어에 함수형 프로그래밍을 접목하는 시도가 늘어나고 있다 고차 함수란, 함수 자체를 인자로 전달하거나 반환 값으로 사용할 수 있는 함수를 말합니다. 이를 통해 코드를 더 간결하게 작성하고, 더 유연한 프로그래밍 스타일을 지원할 수 있습니다. 최근에는 함수형 프로그래..
리스트를 다루는 연산 문법 자체는 일관성이 있고 간단하다 함수 자체를 매개 변수로 전달 할 수 있다 Dynamic typing 동적 타입 지원 꼬리 재귀(tail recursion) 최적화 데이터 타입은 Atom, List 기타 등등 일단은 2가지로 표현 된다 Atom : symbol과 number로 표현한다 List s-expression 리스프 언어에서는 모든 데이터나 코드를 트리로 표현 할 수 있음 리스트 프로세싱 언어라 이름을 가진 이유는 그 당시에는 리스트에 최적화 된 언어는 혁신이었다 앞에 ’ 도 신경 써야 함 car 처음 요소를 반환한다 cdr 첫 번째 것 빼고 나머지를 반환한다 cdr을 먼저하고 car을 하는거임 이게 우선순위가 그냥 뒤에서부터 차례대로 실행하는구조임 일종의 스택 같기도 하..
berom
'2023/04 글 목록 (6 Page)