Công nghệ chương trình kèm chứng cứ: Nghiên cứu và ứng dụng tại VNU

Luận văn thạc sĩ phân tích vnu technologies des programmes accompagnés de preuves, đánh giá thực trạng, chỉ ra hạn chế, đề xuất giải pháp khả thi cho thực tiễn.

Trường đại học

Université Laval

Chuyên ngành

Informatique et Génie Logiciel

Người đăng

Ẩn danh

Thể loại

Luan Van

2009

51
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

Remerciements

Table des matières

List des figures

Résumé

Abstract

1. Chapitre I: Introduction

1.1. Contexte du stage

1.2. Problématique

1.3. Principes d’assurer la sécurité pour le consommateur

1.4. Contributions

1.5. Structure du rapport

2. Chapitre II: Techniques principales de PCC

2.1. Technique PCC traditionnel

2.1.1. Architecture du système PCC traditionnel

2.1.2. Protocole de PCC traditionnel

2.1.3. Implémentation du technique PCC traditionnel

Tóm tắt

I. Tổng quan về công nghệ chương trình kèm chứng cứ trong giáo dục

Công nghệ chương trình kèm chứng cứ (Proof Carrying Code - PCC) đã trở thành một công cụ quan trọng trong việc đảm bảo an toàn cho các phần mềm không đáng tin cậy. Được giới thiệu lần đầu vào năm 1996, PCC cho phép người tiêu dùng kiểm tra tính an toàn của mã nguồn thông qua các chứng cứ được cung cấp bởi nhà sản xuất mã. Điều này không chỉ giúp bảo vệ người dùng mà còn nâng cao độ tin cậy của phần mềm trong các hệ thống giáo dục.

1.1. Khái niệm và nguyên lý hoạt động của PCC

PCC hoạt động dựa trên nguyên lý rằng nhà sản xuất mã phải cung cấp chứng cứ chứng minh rằng mã nguồn tuân thủ các chính sách an toàn đã được xác định. Chứng cứ này được kiểm tra bởi người tiêu dùng trước khi mã được thực thi.

1.2. Lợi ích của việc áp dụng PCC trong giáo dục

Việc áp dụng PCC trong giáo dục giúp đảm bảo rằng các phần mềm giảng dạy và học tập không gây ra rủi ro cho người dùng. Nó cũng tạo ra một môi trường học tập an toàn hơn, nơi mà các sinh viên có thể yên tâm sử dụng các công cụ công nghệ mà không lo ngại về an toàn thông tin.

II. Vấn đề và thách thức trong việc triển khai PCC

Mặc dù PCC mang lại nhiều lợi ích, nhưng việc triển khai nó trong thực tế vẫn gặp phải nhiều thách thức. Một trong những vấn đề lớn nhất là sự phức tạp trong việc tạo ra và kiểm tra chứng cứ. Ngoài ra, việc giảm thiểu kích thước của chứng cứ cũng là một thách thức lớn.

2.1. Khó khăn trong việc tạo chứng cứ an toàn

Việc tạo ra chứng cứ an toàn đòi hỏi sự hiểu biết sâu sắc về mã nguồn và các chính sách an toàn. Điều này có thể gây khó khăn cho các nhà phát triển, đặc biệt là trong các dự án lớn.

2.2. Vấn đề về hiệu suất khi sử dụng PCC

Một trong những lo ngại chính khi áp dụng PCC là hiệu suất của chương trình. Việc kiểm tra chứng cứ có thể làm chậm quá trình thực thi mã, điều này có thể không chấp nhận được trong các ứng dụng yêu cầu hiệu suất cao.

III. Phương pháp chính trong công nghệ PCC

Có nhiều phương pháp khác nhau trong công nghệ PCC, mỗi phương pháp đều có những ưu điểm và nhược điểm riêng. Các phương pháp này bao gồm PCC truyền thống, PCC mở rộng và PCC dựa trên oracle.

3.1. Phương pháp PCC truyền thống

PCC truyền thống yêu cầu nhà sản xuất mã cung cấp chứng cứ cho từng phần mềm. Điều này giúp người tiêu dùng có thể kiểm tra tính an toàn của mã trước khi thực thi.

3.2. Phương pháp PCC mở rộng

PCC mở rộng cho phép sử dụng các chứng cứ phức tạp hơn, giúp cải thiện tính an toàn và giảm thiểu kích thước của chứng cứ. Phương pháp này được áp dụng rộng rãi trong các hệ thống giáo dục hiện đại.

IV. Ứng dụng thực tiễn của PCC trong giáo dục

Công nghệ PCC đã được áp dụng trong nhiều lĩnh vực giáo dục, từ việc phát triển phần mềm giảng dạy đến các hệ thống quản lý học tập. Việc sử dụng PCC giúp đảm bảo rằng các phần mềm này an toàn và đáng tin cậy.

4.1. Ứng dụng trong phát triển phần mềm giáo dục

Nhiều phần mềm giáo dục hiện nay đã tích hợp công nghệ PCC để đảm bảo an toàn cho người dùng. Điều này giúp nâng cao chất lượng giảng dạy và học tập.

4.2. Kết quả nghiên cứu về PCC trong giáo dục

Nghiên cứu cho thấy rằng việc áp dụng PCC không chỉ cải thiện tính an toàn mà còn nâng cao hiệu quả học tập của sinh viên. Các trường học và tổ chức giáo dục đang ngày càng nhận thức được tầm quan trọng của công nghệ này.

V. Kết luận và tương lai của công nghệ PCC

Công nghệ PCC đang ngày càng trở nên quan trọng trong việc đảm bảo an toàn cho phần mềm trong giáo dục. Tương lai của PCC hứa hẹn sẽ mang lại nhiều cải tiến và ứng dụng mới, giúp nâng cao chất lượng giáo dục và bảo vệ người dùng.

5.1. Triển vọng phát triển công nghệ PCC

Với sự phát triển không ngừng của công nghệ thông tin, PCC sẽ tiếp tục được cải tiến và mở rộng ứng dụng trong nhiều lĩnh vực khác nhau, không chỉ trong giáo dục mà còn trong các ngành công nghiệp khác.

5.2. Tầm quan trọng của nghiên cứu và phát triển PCC

Nghiên cứu và phát triển PCC sẽ đóng vai trò quan trọng trong việc đảm bảo an toàn cho các phần mềm trong tương lai. Các nhà nghiên cứu cần tiếp tục tìm kiếm các giải pháp mới để cải thiện hiệu suất và tính an toàn của công nghệ này.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

22/07/2025
Luận văn thạc sĩ vnu technologies des programmes accompagnés de preuves

Trích đoạn nội dung tài liệu

Technologies des programmes accompagnés de preuves Hoang Minh Tien 13 septembre, 2009 Sous la direction de Professeur. Danny Dubé Département d’informatique et de génie logiciel Faculté des sciences et de génie Université Laval Copyright © 2009 Hoang Minh Tien LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mot clés : programme accompagné de preuves, condition de vérification, programme accompagné de preuves étendues, programme accompagné de preuves d’oracle, logique de premier ordre, lambda calcul, consommateur de code, producteur de code. Keywords: proof carrying code, verification condition, extended proof carrying code, oracle based proof carrying code, foundational proof carrying code, type safe, logical framework, first order logic, lambda calculus, code consumer, code producer. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Remerciements Je tiens à remercier vivement Monsieur Danny Dubé, professeur de l’Université Laval, de m’avoir accueilli au sein de son équipe de recherche, de m’avoir toujours encouragé, de m’avoir donné des suggestions précieuses dans la recherche.

Je lui en suis très reconnaissant. Je tiens à remercier également les professeurs et les personnels de l’Institut de la Francophonie pour l’Informatique, des professeurs invités de m’avoir donné des cours de haut qualité et pour leur soutien tout au long de mes études. Je voudrais remercier mes amis dans mon laboratoire de recherche, Bui Nguyen Minh, Haythem Kefi, Joseph Assouramou, Marieme Doua, Ishagh Mayouf de m’avoir donnée leurs conseils, leurs commentaires et leurs soutiens pendant le temps j’effectuais ma recherche. J’adresse un grande merci à ma famille pour leur soutien et leur encouragement de toute l’instance.

LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Table des matières List des figures. Contexte du stage. Principes d’assurer la sécurité pour le consommateur. Structure du rapport.

4 Techniques principales de PCC. Technique PCC traditionnel .1 Architecture du système PCC traditionnel .2 Protocole de PCC traditionnel.3 Implémentation du technique PCC traditionnel .4 Contributions du technique PCC traditionnel .1 Architecture du système OPCC .2 Contribution du technique OPCC .1 Architecture du système FPCC .2 Implémentation de technique FPCC .3 Contribution de technique FPCC .16 -i- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.1 Architecture du technique EPCC .2 Contribution de technique EPCC .18 Vérification de la sécurité du machine virtuelle d’EPCC. Présentation de la machine virtuelle VEP .2 Gestion de mémoire .3 Ensemble des instructions de VEP .4 Assurance la sécurité de VEP. Vérification de la sécurité de la VEP .1 Vérification manuelle de la VEP .2 Vérification automatique de la VEP .34 Conclusion et perspectives.

Outil pour le prouveur de théorème. Utilisation de Frama-C. Spécification de sécurité du tas dans la VEP .42 -ii- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com List des figures Figure 1. Architecture du système PCC [6].

Représentation des axiomes et règles d’inférence. Spécification de la fonction inc. Une condition de vérification. La machine abstraite DEC Alpha [9].

Calcule de condition de vérification [9]. Architecture de technique OPCC. Architecture de technique FPCC. Instructions sont encodées avec un mot 32-bit [16].

EPCC pour le PCC traditionnel [2]. Architecture de la VEP. Représentation de données dans la VEP. Stockage des paires dans le tas.

Algorithme pour récupérer automatiquement la mémoire. Problème de référence cyclique [3]. Ensemble des instructions de la VEP [19]. Sémantiques des instructions de VEP [3].

Assurance de sécurité sur la VEP [3]. Tests de la sécurité sur la VEP [3]. Architecture de Frama-C [20]. Catégoriser l’ensemble des instructions de la VEP.

Vérifier l’instruction BAND. Structure du tas. Paires libres forment une liste chainée. Algorithme non-récursif de récupérateur de mémoire.33 -iii- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Résumé La technologie des programmes accompagnés de preuves (Proof Carrying Code, PCC) a été introduite pour la première fois en Novembre 1996 dans le projet de recherche de George Necula et Peter Lee [1] de l’université Carnegie Melon.

Cette méthode est pour but de vérifier la sécurité d’un programme inéprouvé sur le consommateur de code en utilisant des preuves générées par le producteur de codes. Car la vérification entre les codes et les preuves est effectuée une seule fois dès le premier démarrage du programme, sa performance est donc préservée. La méthode est connu aussi par sa simplifié, sa flexibilité dans le déploiement. Pourtant il existe encore des points faibles qui empêche l’application de PCC en réalité, en basant sur les points de vue différents, les chercheurs ont donné leur façon d’améliorer le modèle primitif comme limiter la taille de l’infrastructure présumée fiable (dans le modèle FPCC [5], Andrew W.

Appel), réduire la taille des preuves (dans le modèle OPCC[4], Necula) … Ce mémoire vise à réaliser une recherche sur les techniques principales de programmes accompagnés de preuves, à analyser ses avantages et aussi ses inconvénients. On se concentrera sur la méthode programmes accompagnés de preuves étendu (EPCC [2]) proposé par Danny Dubé et Heidar Pirzadeh Tabari de l’Université Laval. On discutera également l’architecture d’une machine virtuelle (VEP [3]), le cœur du EPCC, et proposer un prototype pour prouver automatiquement la sécurité de cette machine. -iv- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Abstract Introduced for the first time in November 1996 by George Necula and Peter Lee [1] from university Carnegie Melon, proof carrying code (PCC) is a promising method for verifying the security of an untrusted program executed on a code consumer by using proofs generated by code producer.

The verification is performed only for the first run of the program so the performance of program is not affected. This technique is also attractive for the simplicity and flexibility in the deployment process. However, there are still some disadvantages that make it difficult to apply the model widely in reality. Some of them are solved in the research of Andrew W.

Appel et al (FPCC [5], reducing the trusted computing based), of George Necula (OPCC [4], reducing the size of proof) … This thesis aims to carry out a research on major techniques of proof carrying code, to analyse the advantages and disadvantage of each technique. An important part in this thesis concentrates on the framework EPCC (Extended framework for Proof Carrying Code) proposed by Danny Dubé and Heidar Pirzadeh Tabari from University Laval, the architecture of the virtual machine for EPCC (VEP [3]), the heart of EPCC as well as some propositions for proving automatically its security. -v- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chapitre I Introduction 1. Contexte du stage Le stage est réalisé au sein de l’équipe LSFM (Langages, Sémantique et Méthodes formelles) de l’Université Laval.

Le thème du stage est la sécurité informatique, surtout la technique de programme accompagné de preuves et ses variantes. Ce sont des méthodes formelles qui permettent de représenter les politiques de sécurité d’un système et le logiciel sous forme d’une formule logique, la satisfaisant de cette formule assure que le logiciel est sécuritaire. Dans l’extension EPCC proposée par cette équipe (Danny Dubé et Heidar Pirzadeh[2]), une version d’une machine virtuelle a été développé et prouvé manuellement. Pour convaincre l’utilisateur de absolument se fier à la sécurité de cette extension il faut que la machine soit automatiquement prouvée.

Dans le cadre du stage, on propose des changements nécessaires de la machine virtuelle pour que sa sécurité soit automatiquement prouvée. Problématique Le rôle important des logiciels dans tous les domaines de la vie est une réalité indéniable. On peut voir leur utilisation sur des systèmes de haute capacité sur lesquels on peut appliquer plusieurs politiques de sécurité. Dans les années récentes, on les utilise de plus en plus sur divers systèmes de capacité limitée comme le micro contrôleur, la carte à puce … On ne peut pas prendre des mesures de sécurité comme dans le grand système, on ne peut non plus le laisser non-vérifié, spécialement dans le cas on fournit une solution complète dans laquelle il y a des coopérations de tous les ensembles mentionnés.

C’est à cause d’une vérité : si la sécurité d’un système est considérée comme une chaine, elle dépende toujours au nœud le plus faible. Comment pourrait-on alors construire un cadre pour assurer la sécurité des systèmes de capacité limitée ? Il existe une contradiction, les producteurs de logiciel prétendent toujours que leurs logiciels sont sécuritaires tandis que leurs clients doivent régulièrement mettre à jour les correctifs afin de prévenir les failles de sécurité. Les géants dans l’industrie de 1 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chapitre I - Introduction logiciel ne sont pas exceptions. En effet, le correctif le plus récent de Microsoft (8- Sep-2009) corrige 31 failles de sécurité dans lesquelles 5 failles sont classées dans la catégorie des failles critiques.

Dans l’attente du prochain correctif, comment le client pourrait-il se protéger contre des attaques? Il faudrait par conséquent disposer d'un moyen simple, mais assez forge pour contrer les actions qui violent les politiques de sécurité au niveau du client. Avec l’aide de technique programme accompagné des preuves (Proof Carrying Code, PCC) le consommateur peut vérifier est ce que le logiciel fournit par le producteur est conforme à sa politique de sécurité ou non. D’ailleurs, l’application de PCC ne diminue pas la performance de programme et la consommation de ressources (mémoire, processeur) de PCC sur le consommateur est limitée au maximum. En basant sur les principes d’assurer la sécurité, on analysera les points forts, points faibles de chaque technique PCC et leurs applications en réalité et fournit un prototype pour vérifier la sécurité de la machine virtuelle.

Principes d’assurer la sécurité pour le consommateur Pour le consommateur, en général, on est capable de contrôler la sécurité d’un logiciel avant ou pendant son exécution. Pour assurer la sécurité avant l’exécution, on effectue une analyse statique sur le code en utilisant un outil qui décompose le programme sans l’exécuter et analyse tous les comportements possibles pour prouver que le programme soit sécurité. Les implémentations en réalité de ce type d’assurance sont le « Model checking » [24], analyser flux de donnée [25], interprétation abstraite [14]. Pendant l’exécution, on a l’analyse dynamique, où on fait marcher le programme et utilise un « runtime monitor » pour l’observer, et l’arrêter si dans l’étape suivante, le programme causera une violation.

Toutes les mesures de sécurité sur le client suivent un principe de base: minimiser l’infrastructure présumée fiable (Trusted Computing Based, TCB [15]), le TCB d'un système est l'ensemble des matériaux, des microprogrammes et des logiciels qui se font confiance entre eux et auxquels le client fait confiance, s’il existe des bugs à l'intérieur du TCB, la sécurité du système pourrait être compromise. Par contre, les autres composants en dehors du TCB ne pourront jamais toucher sa sécurité. 2 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chapitre I - Introduction 4. Contributions Il y a deux contributions principales dans le cadre du stage :  Analyser des techniques principales de PCC dans la pointe de vue de l’utilisateur, ses avantages et aussi des inconvénients dans l’application en réalité.

 Proposer un changement dans l’algorithme de récupérateur de mémoire de la machine virtuelle d’EPCC et un prototype pour prouver sa sécurité automatiquement. Structure du rapport La suite de ce mémoire se compose de quatre parties  Chapitre II – Techniques principales de PCC : présenter l’idée principale de trois techniques de programme accompagné de preuves, leurs forces et faiblesses, spécialement le cadre EPCC.  Chapitre III – Vérification de la machine virtuelle d’EPCC : Introduire en détail l’architecture de la VEP, proposer un algorithme pour le récupérateur de mémoire et un prototype pour prouver automatiquement la sécurité de VEP.  Chapitre IV – Conclusion et perspectives : Remarques dans l’application de technique PCC en réalité et quelques l’extension de recherche.

 Appendice : Informations supplémentaires de l’utilisation d’interface graphique pour le prouveur de théorème, l’utilisation de Frama-C et un exemple des spécifications pour prouver une partie de VEP. 3 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chapitre II Techniques principales de PCC 1. Technique PCC traditionnel 1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ